From 24c53042101bdf4c9dbf1060981b5ab61fa8ac5c Mon Sep 17 00:00:00 2001 From: elnuage Date: Sun, 14 Jun 2026 21:31:07 +0200 Subject: [PATCH 01/13] add french support --- .../Settings/ProfileUpdateRequest.php | 2 +- app/Http/Requests/StoreUserLeadRequest.php | 2 +- lang/fr.json | 2079 +++++++++++++++++ lang/fr/auth.php | 20 + package-lock.json | 917 +++++++- resources/js/types/language.ts | 3 +- whisper_money | Bin 0 -> 143360 bytes 7 files changed, 3017 insertions(+), 6 deletions(-) create mode 100644 lang/fr.json create mode 100644 lang/fr/auth.php create mode 100644 whisper_money diff --git a/app/Http/Requests/Settings/ProfileUpdateRequest.php b/app/Http/Requests/Settings/ProfileUpdateRequest.php index 962e9803..1c2af4fa 100644 --- a/app/Http/Requests/Settings/ProfileUpdateRequest.php +++ b/app/Http/Requests/Settings/ProfileUpdateRequest.php @@ -31,7 +31,7 @@ class ProfileUpdateRequest extends FormRequest Rule::unique(User::class)->ignore($this->user()->id), ], 'currency_code' => ['required', 'string', 'max:3', Rule::in($currencyOptions->primaryCodes())], - 'locale' => ['nullable', 'string', Rule::in(['en', 'es'])], + 'locale' => ['nullable', 'string', Rule::in(['en', 'es', 'fr'])], ]; } } diff --git a/app/Http/Requests/StoreUserLeadRequest.php b/app/Http/Requests/StoreUserLeadRequest.php index 602ae690..c4d22f3d 100644 --- a/app/Http/Requests/StoreUserLeadRequest.php +++ b/app/Http/Requests/StoreUserLeadRequest.php @@ -25,7 +25,7 @@ class StoreUserLeadRequest extends FormRequest return [ 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:user_leads,email'], 'referrer_code' => ['nullable', 'string', 'max:12'], - 'locale' => ['nullable', 'string', 'in:en,es'], + 'locale' => ['nullable', 'string', 'in:en,es,fr'], ]; } diff --git a/lang/fr.json b/lang/fr.json new file mode 100644 index 00000000..04735ab5 --- /dev/null +++ b/lang/fr.json @@ -0,0 +1,2079 @@ +{ + "Analyze": "Analyse", + "Monthly average": "Media mensual", + "Trend": "Tendencia", + "Not enough history": "Historial insuficiente", + "vs. previous 6 months": "vs. 6 meses anteriores", + "Category analysis": "Análisis de categoría", + "How much you spent on this category each month over the last 12 months.": "Cuánto gastaste en esta categoría cada mes durante los últimos 12 meses.", + "Pick a category to see its monthly spending.": "Elige una categoría para ver su gasto mensual.", + "No spending in the last 12 months.": "Sin gastos en los últimos 12 meses.", + "Analysis": "Análisis", + "Apply a filter to enable this button": "Aplica un filtro para activar este botón", + "A breakdown of the transactions matching your current filters.": "Un desglose de las transacciones que coinciden con tus filtros actuales.", + "Could not load the analysis. Please try again.": "No se pudo cargar el análisis. Inténtalo de nuevo.", + "No transactions match the current filters.": "Ninguna transacción coincide con los filtros actuales.", + "Avg / day": "Media / día", + "transactions": "transacciones", + "days": "días", + "Spending over time": "Gasto a lo largo del tiempo", + "Cumulative spend": "Gasto acumulado", + "Spending by category": "Gasto por categoría", + "Spending by tag": "Gasto por etiqueta", + "Spending by payee": "Gasto por beneficiario", + "Spending by account": "Gasto por cuenta", + "Cumulative net": "Neto acumulado", + "Net result": "Resultado neto", + "Margin": "Margen", + "Total spent": "Total gastado", + "Largest expenses": "Mayores gastos", + "Show more": "Ver más", + "Show less": "Ver menos", + "Analysis view": "Vista de análisis", + "Automatic": "Automático", + "Expenses only": "Solo gastos", + "Income & expenses": "Ingresos y gastos", + "adjusted": "ajustado", + "Adjust number of days": "Ajustar número de días", + "Days for daily average": "Días para la media diaria", + "Override the date span when it does not match the real duration.": "Anula el rango de fechas cuando no coincide con la duración real.", + "Saved with this filter.": "Guardado con este filtro.", + "Reset to auto": "Restablecer a automático", + "Bank account connected": "Cuenta bancaria conectada", + "Connection unsuccessful": "Conexión fallida", + "You can close this window and go back to the app to continue.": "Puedes cerrar esta ventana y volver a la app para continuar.", + "Your bank account is connected.": "Tu cuenta bancaria está conectada.", + "A filter with that name already exists": "Ya existe un filtro con ese nombre", + "Delete saved filter": "Eliminar filtro guardado", + "Failed to delete the saved filter": "No se pudo eliminar el filtro guardado", + "Failed to save the filter": "No se pudo guardar el filtro", + "Failed to update the saved filter": "No se pudo actualizar el filtro guardado", + "Filter saved": "Filtro guardado", + "Filter updated": "Filtro actualizado", + "No saved filters yet": "Aún no hay filtros guardados", + "Save as new filter…": "Guardar como nuevo filtro…", + "Save filter": "Guardar filtro", + "Saved filters": "Filtros guardados", + "Saving…": "Guardando…", + "Unsaved changes": "Cambios sin guardar", + "Update “:name”": "Actualizar «:name»", + "e.g. Japan trip, Utilities": "p. ej. Viaje a Japón, Servicios", + "Give this set of filters a name so you can reuse it later.": "Dale un nombre a este conjunto de filtros para reutilizarlo más tarde.", + "+:count": "+:count", + ":count selected": ":count seleccionadas", + "Categories": "Categorías", + "Labels": "Etiquetas", + "No results.": "Sin resultados.", + "Remove :label": "Eliminar :label", + "Search categories…": "Buscar categorías…", + "Search labels…": "Buscar etiquetas…", + "Search…": "Buscar…", + "Select at least one category or label to track.": "Selecciona al menos una categoría o etiqueta para seguir.", + "Select categories": "Seleccionar categorías", + "Select…": "Seleccionar…", + "Set up a spending limit across one or more categories or labels.": "Configura un límite de gasto en una o más categorías o etiquetas.", + "Tracked categories and labels cannot be changed after creation.": "Las categorías y etiquetas seguidas no se pueden cambiar después de la creación.", + "You must select at least one category or label.": "Debes seleccionar al menos una categoría o etiqueta.", + " All communications between your device and our servers are protected using TLS (Transport Layer Security)": " Todas las comunicaciones entre tu dispositivo y nuestros servidores están protegidas con TLS (Transport Layer Security)", + " All data is stored on secure servers with encryption at rest, protecting your information from unauthorized access": " Todos los datos se almacenan en servidores seguros con cifrado en reposo, protegiendo tu información del acceso no autorizado", + " Strict access controls and authentication mechanisms protect against unauthorized access": " Controles de acceso estrictos y mecanismos de autenticación protegen contra el acceso no autorizado", + " We regularly review and update our security practices": " Revisamos y actualizamos regularmente nuestras prácticas de seguridad", + " Your financial data is never shared with advertisers, data brokers, or any third party": " Tus datos financieros nunca se comparten con anunciantes, intermediarios de datos ni ningún tercero", + "\"? This action cannot be undone.": "\"? Esta acción no se puede deshacer.", + "\"? This action cannot be undone. All budget periods, allocations, and transaction assignments will be permanently removed.": "\"? Esta acción no se puede deshacer. Todos los períodos de presupuesto, asignaciones y asignaciones de transacciones serán eliminados permanentemente.", + "\"? This\\n action cannot be undone.": "\"? Esta acción no se puede deshacer.", + "\"? This\\n action cannot be undone. All budget periods,\\n allocations, and transaction assignments will be\\n permanently removed.": "\"? Esta acción no se puede deshacer. Todos los períodos de presupuesto, asignaciones y asignaciones de transacciones serán eliminados permanentemente.", + "$KO!F6LMHU1W%TAEQFZMD9": "$KO!F6LMHU1W%TAEQFZMD9", + "**All your accounts in one place** — bank accounts, savings, investments, crypto, and more": "**Todas tus cuentas en un lugar** — cuentas bancarias, ahorros, inversiones, cripto y más", + "**Automation rules** — categorize transactions automatically, your way": "**Reglas de automatización** — categoriza transacciones automáticamente, a tu manera", + "**Cashflow at a glance** — see exactly where your money goes and how it evolves": "**Flujo de caja de un vistazo** — ve exactamente adónde va tu dinero y cómo evoluciona", + "**Connect your banks** via Open Banking or import from CSV — your choice": "**Conecta tus bancos** mediante Open Banking o importa desde CSV, tú eliges", + "**Every transaction tracked** — import from CSV/XLS or connect via Open Banking": "**Cada transacción registrada** — importa desde CSV/XLS o conecta vía Open Banking", + "**Have feedback? Questions? Issues?** Just hit reply to this email. We read and respond to every message personally.": "**¿Tienes comentarios? ¿Preguntas? ¿Problemas?** Solo responde a este correo. Leemos y respondemos personalmente cada mensaje.", + "**Monthly plan**: 60 days free": "**Plan mensual**: 60 días gratis", + "**No middlemen** — we don't sell insights about your habits": "**Sin intermediarios** — no vendemos información sobre tus hábitos", + "**Smart budgets** — set goals, track progress, and stay on track every month": "**Presupuestos inteligentes** — fija metas, sigue el progreso y mantente en marcha cada mes", + "**Yearly plan**: 90 days free on your first year": "**Plan anual**: 90 días gratis durante el primer año", + "**You're always in control** — export or delete your data anytime": "**Siempre tienes el control** — exporta o elimina tus datos en cualquier momento", + "**Your data stays yours** — never shared with third parties": "**Tus datos siguen siendo tuyos** — nunca se comparten con terceros", + "**Your data, always** — never shared with third parties, always under your control": "**Tus datos, siempre** — nunca compartidos con terceros, siempre bajo tu control", + "+ Add another column": "+ Agregar otra columna", + "+ note": "+ nota", + ", and press": ", y presiona", + "- we never sell your data": "- nunca vendemos tus datos", + "...and 40+ more": "...y más de 40", + "/12 min": "/12 min", + "/month": "/mes", + "/year": "/año", + "1,200+ users": "1.200+ usuarios", + "1. Data Controller": "1. Controlador de Datos", + "10. Children's Privacy": "10. Privacidad de los Niños", + "10. Limitation of Liability": "10. Limitación de Responsabilidad", + "100% private": "100% privado", + "11. Changes to This Privacy Policy": "11. Cambios a Esta Política de Privacidad", + "11. Indemnification": "11. Indemnización", + "12. Contact Us": "12. Contáctanos", + "12. Governing Law and Dispute Resolution": "12. Ley Aplicable y Resolución de Disputas", + "13. Changes to Terms": "13. Cambios a los Términos", + "14. Severability": "14. Divisibilidad", + "15% more savings": "15% más de ahorro", + "15. Entire Agreement": "15. Acuerdo Completo", + "16. Contact Us": "16. Contáctanos", + "2. Acceptance of Terms": "2. Aceptación de Términos", + "2. Information We Collect": "2. Información que Recopilamos", + "23% better": "23% mejor", + "2FA Recovery Codes": "Códigos de Recuperación 2FA", + "3. How We Use Your Information": "3. Cómo Usamos Tu Información", + "3. Service Description": "3. Descripción del Servicio", + "4. Data Security and Encryption": "4. Seguridad de Datos y Encriptación", + "4. User Accounts and Responsibilities": "4. Cuentas de Usuario y Responsabilidades", + "401k, IRA, pension funds": "401k, planes de pensiones", + "5. Data Ownership and License": "5. Propiedad de Datos y Licencia", + "5. Third-Party Services": "5. Servicios de Terceros", + "6. Data Retention": "6. Retención de Datos", + "6. Intellectual Property Rights": "6. Derechos de Propiedad Intelectual", + "7. International Data Transfers": "7. Transferencias Internacionales de Datos", + "7. Payment Terms": "7. Términos de Pago", + "8. Termination": "8. Cancelación", + "8. Your Rights Under GDPR": "8. Tus Derechos Bajo GDPR", + "9. Cookies and Tracking": "9. Cookies y Rastreo", + "9. Disclaimers and Warranties": "9. Descargos de Responsabilidad y Garantías", + ":count matching transaction(s)": ":count transacción(es) coincidente(s)", + ":count new transactions synced on Whisper Money": ":count nuevas transacciones sincronizadas en Whisper Money", + ":count transaction": ":count transacción", + ":count transaction(s) will be affected.": ":count transacción(es) serán afectadas.", + ":count transactions": ":count transacciones", + "@alext_money": "@alext_money", + "@davidk_dev": "@davidk_dev", + "@emmalou": "@emmalou", + "@jessicap": "@jessicap", + "@mike_tech": "@mike_tech", + "@sarahm_finance": "@sarahm_finance", + "A Few Quick Questions": "Unas Preguntas Rápidas", + "A Special Offer for You": "Una Oferta Especial para Ti", + "A category with the same name already exists at the destination level. Rename it first.": "Ya existe una categoría con el mismo nombre en el nivel de destino. Renómbrala primero.", + "A new verification link has been sent to the email address you provided during registration.": "Se ha enviado un nuevo enlace de verificación a la dirección de correo electrónico que proporcionaste durante el registro.", + "A new verification link has been sent to your email address.": "Se ha enviado un nuevo enlace de verificación a tu dirección de correo electrónico.", + "A new verification link has\\n been sent to your email\\n address.": "Se ha enviado un nuevo enlace de verificación a tu dirección de correo electrónico.", + "A unique encryption key is generated on your device. Only you have access to it—we never see or store it.": "Se genera una clave de encriptación única en tu dispositivo. Solo tú tienes acceso a ella, nosotros nunca la vemos ni la almacenamos.", + "AI can't help you with your transactions because we never share your data with third parties. This is intentional—we believe your financial data should never be fed into AI systems that you don't control.": "La IA no puede ayudarte con tus transacciones porque nunca compartimos tus datos con terceros. Esto es intencional: creemos que tus datos financieros nunca deben ser alimentados a sistemas de IA que no controlas.", + "AI requires sending your data to external servers": "La IA requiere enviar tus datos a servidores externos", + "AI requires sending your data to external\\n servers": "La IA requiere enviar tus datos a servidores externos", + "API Key": "Clave API", + "API Key Management": "Gestión de Claves API", + "API Key Name": "Nombre de la Clave API", + "API Keys": "Claves API", + "API Management": "Gestión de API", + "API Secret": "Secreto API", + "API Token": "Token API", + "Absolutely. You own your data. You can export all your financial data at any time, and you can permanently delete your account and all associated data whenever you want.": "Por supuesto. Tus datos son tuyos. Puedes exportar todos tus datos financieros en cualquier momento y puedes eliminar permanentemente tu cuenta y todos los datos asociados cuando quieras.", + "Accept responsibility for all activities that occur under your account": "Acepta la responsabilidad de todas las actividades que ocurran en tu cuenta", + "Accept responsibility for all activities\\n that occur under your account": "Acepta la responsabilidad de todas las actividades que ocurran en tu cuenta", + "Access Controls:": "Controles de Acceso:", + "Access your data securely from any device with automatic syncing.": "Accede a tus datos de forma segura desde cualquier dispositivo con sincronización automática.", + "Access your data securely—your information is never shared with third parties": "Accede a tus datos de forma segura—tu información nunca se comparte con terceros", + "Access your finances on any device, anytime, anywhere.": "Accede a tus finanzas desde cualquier dispositivo, en cualquier momento y lugar.", + "Account": "Cuenta", + "Account Details": "Detalles de Cuenta", + "Account Holder": "Titular de la cuenta", + "Account Information:": "Información de Cuenta:", + "Account Name": "Nombre de Cuenta", + "Account No.": "Nº de cuenta", + "Account Type": "Tipo de Cuenta", + "Account Types": "Tipos de Cuenta", + "Account is required": "Se requiere una cuenta", + "Account name": "Nombre de cuenta", + "Accounts": "Cuentas", + "Accounts Created": "Cuentas Creadas", + "Accounts need to be mapped before syncing can begin.": "Las cuentas deben mapearse antes de que pueda comenzar la sincronización.", + "Accounts will become manual. All transactions and balances will be preserved.": "Las cuentas pasarán a ser manuales. Todas las transacciones y saldos se conservarán.", + "Action required: :provider connection needs attention": "Acción requerida: la conexión con :provider necesita atención", + "Actions": "Acciones", + "Add": "Agregar", + "Add Another Account": "Agregar Otra Cuenta", + "Add Condition": "Agregar Condición", + "Add Group": "Agregar Grupo", + "Add Labels": "Agregar Etiquetas", + "Add Loan Details": "Agregar Detalles del Préstamo", + "Add More Accounts": "Agregar Más Cuentas", + "Add More Accounts?": "¿Agregar Más Cuentas?", + "Add Transaction": "Agregar Transacción", + "Add a bank account, loan, or property to your workspace.": "Agrega una cuenta bancaria, un prestamo o una propiedad a tu espacio de trabajo.", + "Add a new category to organize your transactions.": "Agrega una nueva categoría para organizar tus transacciones.", + "Add a new label to tag your transactions.": "Agrega una nueva etiqueta para etiquetar tus transacciones.", + "Add another account": "Agregar otra cuenta", + "Add another account to track more of your finances.": "Agrega otra cuenta para rastrear más de tus finanzas.", + "Add labels": "Agregar etiquetas", + "Add labels...": "Agregar etiquetas...", + "Add more accounts or continue to set up your categories.": "Agrega más cuentas o continúa para configurar tus categorías.", + "Add note": "Agregar nota", + "Add notes...": "Agregar notas...", + "Add the app to your home screen for the best experience.": "Añade la app a tu pantalla de inicio para la mejor experiencia.", + "Add this description to a rule.": "Agrega esta descripción a una regla.", + "Add to Home Screen": "Añadir a pantalla de inicio", + "Add transaction": "Agregar transacción", + "Additional notes about this property": "Notas adicionales sobre esta propiedad", + "Address": "Dirección", + "Address:": "Dirección:", + "Alex T.": "Alex T.", + "All": "Todo", + "All Done!": "¡Todo Listo!", + "All Set!": "¡Todo Listo!", + "All Your Accounts": "Todas Tus Cuentas", + "All associated accounts, transactions and balances will be permanently deleted.": "Todas las cuentas, transacciones y saldos asociados serán eliminados permanentemente.", + "All categories": "Todas las categorías", + "All data is stored on secure servers with encryption at rest": "Todos los datos se almacenan en servidores seguros con encriptación en reposo", + "All fees are non-refundable except as required by law or explicitly stated otherwise": "Todas las tarifas no son reembolsables excepto según lo requiera la ley o se indique explícitamente de otra manera", + "All fees are non-refundable except as\\n required by law or explicitly stated\\n otherwise": "Todas las tarifas no son reembolsables excepto cuando lo exija la ley o se indique explícitamente lo contrario", + "All matching filters": "Todas por filtro", + "All transactions appear to be duplicates. No new transactions will be imported.": "Todas las transacciones parecen ser duplicadas. No se importarán transacciones nuevas.", + "All transactions failed to import": "Todas las transacciones fallaron al importar", + "All your accounts at a glance": "Todas tus cuentas de un vistazo", + "All your bank accounts at a glance": "Todas tus cuentas bancarias de un vistazo", + "All your money in one place. No spreadsheets. Private.": "Todo tu dinero en un solo sitio. Sin Excels. Privado.", + "All your transactions are already categorized.": "Todas tus transacciones ya están categorizadas.", + "All your transactions are already categorized. You are all set!": "Todas tus transacciones ya están categorizadas. ¡Estás listo!", + "Allocated Amount": "Cantidad Asignado", + "Allocated:": "Asignado:", + "Almost there, just double-checking the math...": "Casi listo, revisando los números una vez más...", + "Already have an account?": "¿Ya tienes una cuenta?", + "Amount": "Valor", + "Amount is required": "Se requiere un valor", + "An unexpected error occurred during sync.": "Se produjo un error inesperado durante la sincronización.", + "An unexpected error occurred during sync. Please try again later.": "Ocurrió un error inesperado durante la sincronización. Inténtalo de nuevo más tarde.", + "Annual": "Anual", + "Annual Interest Rate": "Tasa de Interés Anual", + "Annual Interest Rate (%)": "Tasa de Interés Anual (%)", + "Annual Revaluation": "Revalorización anual", + "Annual Revaluation (%)": "Revalorización anual (%)", + "Annual percentage applied monthly. Use negative values for depreciation.": "Porcentaje anual aplicado mensualmente. Usa valores negativos para depreciación.", + "Any bugs, viruses, or similar harmful components transmitted through the service": "Cualquier error, virus o componente dañino similar transmitido a través del servicio", + "Any bugs, viruses, or similar harmful\\n components transmitted through the service": "Cualquier error, virus u otros componentes dañinos transmitidos a través del servicio", + "Any errors or omissions in content or any loss or damage incurred from using content": "Cualquier error u omisión en el contenido o cualquier pérdida o daño incurrido por usar el contenido", + "Any errors or omissions in content or any\\n loss or damage incurred from using content": "Cualquier error u omisión en el contenido o cualquier pérdida o daño derivado del uso del contenido", + "Any interruption or cessation of transmission to or from the service": "Cualquier interrupción o cese de transmisión hacia o desde el servicio", + "Any interruption or cessation of\\n transmission to or from the service": "Cualquier interrupción o cese de la transmisión hacia o desde el servicio", + "Any unauthorized access to or use of our servers and/or personal information": "Cualquier acceso no autorizado o uso de nuestros servidores y/o información personal", + "Any unauthorized access to or use of our\\n servers and/or personal information": "Cualquier acceso no autorizado o uso de nuestros servidores y/o información personal", + "App Key ID": "ID de la Clave API", + "Appearance": "Apariencia", + "Appearance settings": "Configuración de apariencia", + "Apply": "Aplicar", + "Apply rule to existing transactions": "Aplicar regla a transacciones existentes", + "Apply rules to remaining transactions?": "¿Aplicar reglas a las transacciones restantes?", + "Apply this rule to your existing transactions?": "¿Aplicar esta regla a tus transacciones existentes?", + "Apply to :count transaction(s)": "Aplicar a :count transacción(es)", + "Apply to existing transactions": "Aplicar a transacciones existentes", + "Applying rule…": "Aplicando regla…", + "Applying rule… :processed of :total processed": "Aplicando regla… :processed de :total procesadas", + "Are you overspending? Know exactly where you stand.": "¿Estás gastando de más? Conoce exactamente dónde estás parado.", + "Are you sure you want to delete": "¿Estás seguro de que deseas eliminar", + "Are you sure you want to delete \"": "¿Estás seguro de que deseas eliminar \"", + "Are you sure you want to delete this balance record? This action cannot be undone.": "¿Estás seguro de que deseas eliminar este registro de balance? Esta acción no se puede deshacer.", + "Are you sure you want to delete this owed amount record? This action cannot be undone.": "¿Estás seguro de que deseas eliminar este registro de monto adeudado? Esta acción no se puede deshacer.", + "Are you sure you want to delete this transaction? This action cannot be undone.": "¿Estás seguro de que quieres eliminar esta transacción? Esta acción no se puede deshacer.", + "Are you sure you want to delete your account?": "¿Estás seguro de que deseas eliminar tu cuenta?", + "Area": "Superficie", + "Argentine Peso": "Peso argentino", + "As a developer, I appreciate the security architecture. This is how finance apps should be built.": "Como desarrollador, aprecio la arquitectura de seguridad. Así es como deberían construirse las apps de finanzas.", + "As a solo founder, your feedback directly shapes what I build next. I personally read every response and take your suggestions seriously. When you subscribe, you're not just supporting some big corporation - you're helping me continue building something I'm passionate about.": "Como fundador en solitario, tus comentarios moldean directamente lo que construyo a continuación. Leo personalmente cada respuesta y tomo tus sugerencias en serio. Cuando te suscribes, no estás apoyando a una gran corporación, estás ayudándome a seguir construyendo algo que me apasiona.", + "As a thank you for believing in us this early, you get **Whisper Money Pro free, forever**. No trials, no expirations. Use the code below at checkout and we'll cover everything from your side.": "Como agradecimiento por confiar en nosotros desde el principio, te llevas **Whisper Money Pro gratis, para siempre**. Sin pruebas ni caducidades. Usa este código al pagar y nosotros nos encargamos del resto.", + "As a user in the European Union, you have the following rights regarding your personal data:": "Como usuario en la Unión Europea, tienes los siguientes derechos con respecto a tus datos personales:", + "As a user in the European Union, you have the\\n following rights regarding your personal data:": "Como usuario en la Unión Europea, tienes los siguientes derechos sobre tus datos personales:", + "As one of our early users, I want to offer you a special founder's discount. When you subscribe, you're not just getting a great app - you're directly supporting me as I continue building Whisper Money. Every subscription helps me keep the lights on and build features you actually want.": "Como uno de nuestros primeros usuarios, quiero ofrecerte un descuento especial de fundador. Cuando te suscribes, no solo obtienes una gran app, estás apoyándome directamente mientras sigo construyendo Whisper Money. Cada suscripción me ayuda a mantener el proyecto y construir las funciones que realmente quieres.", + "As one of our early users, we want to offer you a special founder's discount. When you subscribe, you're not just getting a great app - you're directly supporting us as we continue building Whisper Money. Every subscription helps us keep the lights on and build features you actually want.": "Como uno de nuestros primeros usuarios, queremos ofrecerte un descuento especial de fundadores. Cuando te suscribes, no solo obtienes una gran app, estás apoyándonos directamente mientras seguimos construyendo Whisper Money. Cada suscripción nos ayuda a mantener el proyecto y construir las funciones que realmente quieres.", + "As the founders, your feedback directly shapes what we build next. We personally read every response and take your suggestions seriously. When you subscribe, you're not just supporting some big corporation - you're helping us continue building something we're passionate about.": "Como fundadores, tus comentarios moldean directamente lo que construimos a continuación. Leemos personalmente cada respuesta y tomamos tus sugerencias en serio. Cuando te suscribes, no estás apoyando a una gran corporación, estás ayudándonos a seguir construyendo algo que nos apasiona.", + "Assign a new category": "Asignar una nueva categoría", + "At least one action is required": "Se requiere al menos una acción", + "Australian Dollar": "Dólar australiano", + "Authentication failed. Your credentials may have expired or been revoked.": "Autenticación fallida. Tus credenciales pueden haber expirado o sido revocadas.", + "Auto-detect": "Detectar automáticamente", + "Auto-sync transactions directly from your bank": "Sincroniza automáticamente las transacciones desde tu banco", + "Automate over time": "Automatiza con el tiempo", + "Automated categorization rules": "Reglas de categorización automática", + "Automatic categorization": "Categorización automática", + "Automatic sync": "Sincronización automática", + "Automatically categorize transactions with customizable rules and patterns.": "Categoriza automáticamente las transacciones con reglas y patrones personalizables.", + "Automatically sync transactions directly from your bank. No manual imports needed.": "Sincroniza automáticamente las transacciones desde tu banco. Sin importaciones manuales.", + "Automation Rules": "Reglas de Automatización", + "Automation rules": "Reglas de automatización", + "Automation rules settings": "Configuración de reglas de automatización", + "Automation rules to categorize transactions automatically.": "Reglas de automatización para categorizar transacciones automáticamente.", + "Automatize": "Automatizar", + "Automatize Categorization": "Automatizar categorización", + "Automatize the categorization of future transactions like this one": "Automatizar la categorización de futuras transacciones como esta", + "Available:": "Disponible:", + "Back": "Atrás", + "Back to Transactions": "Volver a Transacciones", + "Back to accounts": "Volver a las cuentas", + "Back to edit": "Volver a editar", + "Back to home": "Volver al inicio", + "Balance": "Balance", + "Balance (Optional)": "Balance (Opcional)", + "Balance Date": "Fecha del Balance", + "Balance History": "Historial de Balance", + "Balance Tracking": "Seguimiento de Balance", + "Balance evolution": "Evolución del balance", + "Balance on": "Balance del", + "Balances": "Balances", + "Bank": "Banco", + "Bank Account": "Cuenta Bancaria", + "Bank Connections": "Conexiones Bancarias", + "Bank Name": "Nombre del Banco", + "Bank account reconnected successfully.": "Cuenta bancaria reconectada exitosamente.", + "Bank accounts": "Cuentas bancarias", + "Bank connections automatically sync your transactions directly from your bank. This feature requires the Standard Plan.": "Las conexiones bancarias sincronizan automáticamente tus transacciones desde tu banco. Esta función requiere el Plan Standard.", + "Bank logo preview": "Vista previa del logo del banco", + "Bank name": "Nombre del banco", + "Be Smart About Spending & Investing": "Sé Inteligente con tus Gastos e Inversiones", + "Beautiful charts and graphs help you understand your spending patterns.": "Gráficos hermosos te ayudan a entender tus patrones de gasto.", + "Because you helped one of our first 10 join us, you get **Whisper Money Pro free, forever**. No trials, no expirations. Use the code below at checkout.": "Por ayudar a que uno de nuestros 10 primeros se uniera, te llevas **Whisper Money Pro gratis, para siempre**. Sin pruebas ni caducidades. Usa este código al pagar.", + "Before you go...": "Antes de irte...", + "Best Value": "Mejor Valor", + "Best,": "Saludos,", + "Bi-weekly": "Quincenal", + "Billed annually at": "Facturado anualmente a", + "Billed annually at $": "Facturado anualmente a $", + "Billing management is not available on the demo account.": "La gestión de facturación no está disponible en la cuenta demo.", + "Billing management is not available on the demo\\n account.": "La gestión de facturación no está disponible en la cuenta de demostración.", + "Bitcoin": "Bitcoin", + "Blue": "Azul", + "Bolivian Boliviano": "Boliviano", + "British Pound": "Libra esterlina", + "Browse Files": "Explorar Archivos", + "Budget Name": "Nombre del Presupuesto", + "Budget Spending": "Gasto del Presupuesto", + "Budget Tracking": "Seguimiento de Presupuesto", + "Budget alert and limit adjustment": "Alerta de presupuesto y ajuste de límite", + "Budget goals by category": "Objetivos de presupuesto por categoría", + "Budget insights and alerts": "Informes y alertas de presupuesto", + "Budget progress for Groceries": "Progreso del presupuesto de Supermercado", + "Budget resets to zero at the start of each period.": "El presupuesto se reinicia a cero al inicio de cada período.", + "Budgets": "Presupuestos", + "Build better budgets": "Crea mejores presupuestos", + "Built by two people, for real people": "Construido por dos personas, para personas reales", + "Built for speed with instant sync and smooth interactions.": "Construido para velocidad con sincronización instantánea e interacciones fluidas.", + "By creating an account or using Whisper Money, you agree to be bound by these Terms of Service and our Privacy Policy. If you do not agree to these terms, you may not use our service. These terms constitute a legally binding agreement between you and Whisper Money.": "Al crear una cuenta o usar Whisper Money, aceptas estar sujeto a estos Términos de Servicio y nuestra Política de Privacidad. Si no aceptas estos términos, no puedes usar nuestro servicio. Estos términos constituyen un acuerdo legalmente vinculante entre tú y Whisper Money.", + "By creating an account or using Whisper Money,\\n you agree to be bound by these Terms of Service\\n and our Privacy Policy. If you do not agree to\\n these terms, you may not use our service. These\\n terms constitute a legally binding agreement\\n between you and Whisper Money.": "Al crear una cuenta o usar Whisper Money, aceptas quedar vinculado por estos Términos de Servicio y nuestra Política de Privacidad. Si no aceptas estos términos, no puedes usar nuestro servicio. Estos términos constituyen un acuerdo legalmente vinculante entre tú y Whisper Money.", + "CSV, XLS, XLSX files": "Archivos CSV, XLS, XLSX", + "Cafes, restaurants, bars": "Cafeterías, restaurantes, bares", + "Calculate balances from transactions": "Calcular balances a partir de transacciones", + "Calendar month (1st)": "Mes calendario (día 1)", + "Can I connect my bank accounts directly?": "¿Puedo conectar mis cuentas bancarias directamente?", + "Can I export or delete my data?": "¿Puedo exportar o eliminar mis datos?", + "Canadian Dollar": "Dólar canadiense", + "Cancel": "Cancelar", + "Carry Over": "Acumular", + "Cash inflow": "Entrada de dinero", + "Cash outflow": "Salida de dinero", + "Cashflow": "Flujo de Caja", + "Cashflow Trend": "Tendencia del Flujo de Caja", + "Cashflow analytics": "Analitica de flujo de caja", + "Cashflow and charts": "Flujo de caja y gráficos", + "Cashflow at a Glance": "Flujo de Caja de un Vistazo", + "Cashflow income vs expenses bar chart": "Gráfico de barras de ingresos frente a gastos", + "Cashflow periods and analysis will start on this day.": "Los períodos y análisis de flujo de caja empezarán este día.", + "Cashflow visualization": "Visualización del flujo de caja", + "Categories below 5% of total": "Categorías por debajo del 5% del total", + "Categories settings": "Configuración de categorías", + "Categorize": "Categorizar", + "Categorize Transactions": "Categorizar Transacciones", + "Categorize Your Transactions": "Categoriza tus transacciones", + "Category": "Categoría", + "Category (Optional)": "Categoría (Opcional)", + "Category name": "Nombre de categoría", + "Change": "Cambiar", + "Change category": "Cambiar categoría", + "Change the category type above to change how this category appears in cashflow analytics.": "Cambia el tipo de categoría arriba para cambiar cómo aparece esta categoría en la analítica de flujo de caja.", + "Chart color scheme": "Esquema de colores del gráfico", + "Chart type": "Tipo de gráfico", + "Check Demo": "Ver Demo", + "Check that everything looks correct and click \"Import\". Your transactions are stored securely and never shared with anyone.": "Verifica que todo se vea correcto y haz clic en \"Importar\". Tus transacciones se almacenan de forma segura y nunca se comparten con nadie.", + "Check that everything looks correct and click \"Import\". Your transactions will be encrypted and stored securely.": "Verifica que todo se vea correcto y haz clic en \"Importar\". Tus transacciones serán encriptadas y almacenadas de forma segura.", + "Check your inbox — we've sent you an email.": "Revisa tu bandeja de entrada — te hemos enviado un correo.", + "Checking": "Cuenta Corriente", + "Child categories inherit their parent’s type and cashflow settings.": "Las categorías hijas heredan el tipo y la configuración de flujo de caja de su categoría padre.", + "Chilean Peso": "Peso chileno", + "Chinese Yuan": "Yuan chino", + "Choose Sankey chart visibility": "Elige la visibilidad en el gráfico Sankey", + "Choose a category type to see how it affects cashflow and charts.": "Elige un tipo de categoría para ver cómo afecta al flujo de caja y a los gráficos.", + "Choose a category type to see how this category will affect cashflow analytics.": "Elige un tipo de categoría para ver cómo afectará esta categoría a la analítica de flujo de caja.", + "Choose cashflow chart visibility": "Elige la visibilidad en el gráfico de flujo de caja", + "Choose how to handle each account from :bank. You can create new accounts, link to existing ones, or skip.": "Elige cómo gestionar cada cuenta de :bank. Puedes crear nuevas cuentas, vincularlas a las existentes u omitirlas.", + "Choose how to report this category": "Elige cómo reportar esta categoría", + "Choose how to report this transfer": "Elige como mostrar esta transferencia", + "Choose the account where transactions will be imported": "Elige la cuenta donde se importarán las transacciones", + "Choose the color palette for your charts": "Elige la paleta de colores para tus gráficos", + "Choose the plan that works for you": "Elige el plan que funcione para ti", + "Choose the plan that works for you. No hidden fees.": "Elige el plan que mejor se adapte a ti. Sin tarifas ocultas.", + "Choose your billing cycle": "Elige tu ciclo de facturación", + "City Electric Co.": "City Electric Co.", + "Claim Your Discount": "Reclama Tu Descuento", + "Clean interface, powerful features, and zero compromise on privacy. What more could you want?": "Interfaz limpia, funciones potentes y cero compromisos con la privacidad. ¿Qué más podrías querer?", + "Clear": "Limpiar", + "Clear Encryption Key?": "¿Borrar Clave de Encriptación?", + "Clear Key": "Borrar Clave", + "Clear selection": "Limpiar selección", + "Click here to resend the verification email.": "Haz clic aquí para reenviar el correo de verificación.", + "Click here to resend the\\n verification email.": "Haz clic aquí para reenviar el correo de verificación.", + "Click to lock encryption key": "Haz clic para bloquear la clave de encriptación", + "Click to unlock encryption key": "Haz clic para desbloquear la clave de encriptación", + "Client-Side Encryption": "Encriptación del Lado del Cliente", + "Close": "Cerrar", + "Coffee Lab": "Coffee Lab", + "Colombian Peso": "Peso colombiano", + "Color": "Color", + "Colorful": "Colorido", + "Columns": "Columnas", + "Commercial": "Comercial", + "Common Questions": "Preguntas Frecuentes", + "Community": "Comunidad", + "Company Name:": "Nombre de la Empresa:", + "Conditions": "Condiciones", + "Conditions joined by:": "Condiciones unidas por:", + "Confirm": "Confirmar", + "Confirm Password": "Confirmar Contraseña", + "Confirm password": "Confirmar contraseña", + "Confirm your email - Whisper Money": "Confirma tu correo electrónico - Whisper Money", + "Confirm your email address to reserve your Whisper Money waitlist spot.": "Confirma tu dirección de correo electrónico para reservar tu puesto en la lista de espera de Whisper Money.", + "Confirm your email to join the list": "Confirma tu correo electrónico para unirte a la lista", + "Confirm your encryption password": "Confirma tu contraseña de encriptación", + "Confirm your password": "Confirma tu contraseña", + "Confirm your waitlist spot - Whisper Money": "Confirma tu plaza en la lista de espera - Whisper Money", + "Confirmation": "Confirmación", + "Connect": "Conectar", + "Connect Bank": "Conectar Banco", + "Connect Bank Account": "Conectar Cuenta Bancaria", + "Connect Your Bank": "Conecta tu banco", + "Connect Your Banks": "Conecta tus bancos", + "Connect bank accounts": "Conectar cuentas bancarias", + "Connect in seconds": "Conecta en segundos", + "Connect your Binance account using your API Key and Secret.": "Conecta tu cuenta de Binance usando tu Clave API y Secreto.", + "Connect your Bitpanda account using your API Key.": "Conecta tu cuenta de Bitpanda usando tu Clave API.", + "Connect your Coinbase account using a CDP API key.": "Conecta tu cuenta de Coinbase usando una clave API de CDP.", + "Connect your Indexa Capital account using your API token.": "Conecta tu cuenta de Indexa Capital usando tu token API.", + "Connect your bank accounts": "Conecta tus cuentas bancarias", + "Connect your bank accounts, savings, investments, and more — all in a single dashboard. No more switching between apps or losing track of accounts.": "Conecta tus cuentas bancarias, ahorros, inversiones y más, todo en un único panel. Sin más cambiar entre apps ni perder el control de tus cuentas.", + "Connect your bank and sync transactions automatically.": "Conecta tu banco y sincroniza las transacciones automáticamente.", + "Connected": "Conectado", + "Connected Bank Accounts": "Cuentas Bancarias Conectadas", + "Connected account": "Cuenta conectada", + "Connected accounts are a Standard Plan feature. You'll choose a plan at the end of the onboarding.": "Las cuentas conectadas son una función del plan Standard. Elegirás un plan al final del proceso de incorporación.", + "Connected banks": "Bancos conectados", + "Connecting the dots in your finances...": "Conectando los puntos de tus finanzas...", + "Connecting...": "Conectando...", + "Connections": "Conexiones", + "Consider saving more if possible.": "Considera ahorrar más si es posible.", + "Continue": "Continuar", + "Continue Setup": "Continuar Configuración", + "Continue for free": "Continuar gratis", + "Continue to Import": "Continuar con Importación", + "Copied!": "¡Copiado!", + "Copy link": "Copiar enlace", + "Counterparties": "Contrapartes", + "Counting every penny...": "Contando cada céntimo...", + "Country": "País", + "Create": "Crear", + "Create \"": "Crear \"", + "Create Account": "Crear Cuenta", + "Create Automation Rule": "Crear Regla de Automatización", + "Create Budget": "Crear Presupuesto", + "Create Category": "Crear Categoría", + "Create Label": "Crear Etiqueta", + "Create Rule": "Crear Regla", + "Create Transaction": "Crear Transacción", + "Create Your Encryption Password": "Crea Tu Contraseña de Encriptación", + "Create Your First Account": "Crea Tu Primera Cuenta", + "Create a CDP API key (Ed25519 recommended) in the Coinbase Developer Platform under": "Crea una clave API de CDP (Ed25519 recomendado) en la Coinbase Developer Platform en", + "Create a CDP API key in the Coinbase Developer Platform under": "Crea una clave API de CDP en la Coinbase Developer Platform en", + "Create a Password": "Crear una Contraseña", + "Create a bank account, loan, or property to track it manually.": "Crea una cuenta bancaria, un prestamo o una propiedad para seguirla manualmente.", + "Create a new rule": "Crear una nueva regla", + "Create a new transaction": "Crea una nueva transacción", + "Create a new transaction.": "Crea una nueva transacción.", + "Create a rule to automatically categorize transactions and add labels.": "Crea una regla para categorizar automáticamente transacciones y agregar etiquetas.", + "Create a strong encryption password to secure your data": "Crea una contraseña de encriptación fuerte para proteger tus datos", + "Create account": "Crear cuenta", + "Create an Account": "Crear una Cuenta", + "Create an account": "Crear una cuenta", + "Create bank accounts, loans, or properties manually and import transactions.": "Crea cuentas bancarias, prestamos o propiedades manualmente e importa transacciones.", + "Create budgets that adapt to your spending habits and goals.": "Crea presupuestos que se adaptan a tus hábitos de gasto y metas.", + "Create budgets that adapt to your spending habits and help you reach your goals.": "Crea presupuestos que se adapten a tus hábitos de gasto y te ayuden a alcanzar tus objetivos.", + "Create new account": "Crear nueva cuenta", + "Create or update a rule so future transactions with this description are categorized automatically.": "Crea o actualiza una regla para que futuras transacciones con esta descripción se categoricen automáticamente.", + "Create realistic budgets based on your actual spending habits.": "Crea presupuestos realistas basados en tus hábitos de gasto reales.", + "Create rules like \"If description contains 'AMAZON', categorize as Shopping\"": "Crea reglas como \"Si la descripción contiene 'AMAZON', categorizar como Compras\"", + "Create rules like \"If description contains \\'AMAZON\\', categorize as Shopping\"": "Crea reglas como \"Si la descripción contiene 'AMAZON', categorizar como Compras\"", + "Create rules to automatically categorize your transactions based on patterns you define.": "Crea reglas para categorizar automáticamente tus transacciones basándote en patrones que definas.", + "Create the account now, update at any moment": "Crea la cuenta ahora, actualízala en cualquier momento", + "Create your account": "Crear mi cuenta", + "Create, edit, and delete rules anytime": "Crea, edita y elimina reglas en cualquier momento", + "Creating subscription...": "Creando suscripción...", + "Creating...": "Creando...", + "Credentials updated. Sync started.": "Credenciales actualizadas. Sincronización iniciada.", + "Credit": "Crédito", + "Credit Card": "Tarjeta de Crédito", + "Creditor": "Acreedor", + "Creditor Name": "Nombre del acreedor", + "Creditor name": "Nombre del acreedor", + "Creditor name (Optional)": "Nombre del acreedor (opcional)", + "Crunching the numbers...": "Calculando los números...", + "Ctrl+B": "Ctrl+B", + "Ctrl+N": "Ctrl+N", + "Ctrl+R": "Ctrl+R", + "Currency": "Moneda", + "Current Balance": "Balance Actual", + "Current password": "Contraseña actual", + "Custom": "Personalizado", + "Custom Labels": "Etiquetas Personalizadas", + "Customize Categories": "Personalizar Categorías", + "Customize Your Categories": "Personaliza Tus Categorías", + "DD-MM-YYYY (e.g., 31-12-2024)": "DD-MM-YYYY (ej., 31-12-2024)", + "DELETE": "ELIMINAR", + "Daily": "Diario", + "Daily spending and transactions": "Gastos diarios y transacciones", + "Dark": "Oscuro", + "Dashboard": "Panel", + "Data Accuracy:": "Precisión de Datos:", + "Data Imported": "Datos Importados", + "Data is Encrypted": "Los Datos Están Encriptados", + "Date": "Fecha", + "Date Format": "Formato de Fecha", + "Date is required": "Se requiere una fecha", + "David K.": "David K.", + "Day :day": "Día :day", + "Day of the month when the period starts (1-31)": "Día del mes en que comienza el período (1-31)", + "Day of week (0=Sunday, 6=Saturday)": "Día de la semana (0=Domingo, 6=Sábado)", + "Debtor": "Deudor", + "Debtor Name": "Nombre del deudor", + "Debtor name": "Nombre del deudor", + "Debtor name (Optional)": "Nombre del deudor (opcional)", + "Define monthly budgets by category. Know exactly how much you can spend.": "Define presupuestos mensuales por categoría. Sabe exactamente cuánto puedes gastar.", + "Delete": "Eliminar", + "Delete :count Transactions": "Borrar :count transacciones", + "Delete Account": "Eliminar Cuenta", + "Delete Automation Rule": "Eliminar Regla de Automatización", + "Delete Budget": "Eliminar Presupuesto", + "Delete Category": "Eliminar Categoría", + "Delete Label": "Eliminar Etiqueta", + "Delete Transaction": "Eliminar Transacción", + "Delete Transactions": "Eliminar Transacciones", + "Delete account": "Eliminar cuenta", + "Delete accounts": "Eliminar cuentas", + "Delete balance": "Eliminar balance", + "Delete budget": "Eliminar presupuesto", + "Delete owed amount": "Eliminar monto adeudado", + "Delete this category and all of its children": "Eliminar esta categoría y todas sus categorías hijas", + "Delete your account and all of its resources": "Elimina tu cuenta y todos sus recursos", + "Deleting...": "Eliminando...", + "Demo encryption password:": "Contraseña de encriptación de demo:", + "Description": "Descripción", + "Description is required": "Se requiere una descripción", + "Details": "Detalles", + "Details →": "Detalles →", + "Dining Out": "Cenas y restaurantes", + "Disable 2FA": "Desactivar 2FA", + "Disable privacy mode": "Desactivar modo privado", + "Disabled": "Desactivado", + "Disconnect": "Desconectar", + "Disconnect Bank": "Desconectar Banco", + "Disconnecting...": "Desconectando...", + "Discord": "Discord", + "Discord for 80% off": "Discord con 80% de descuento", + "Do not show": "No mostrar", + "Do not show in Sankey": "No mostrar en Sankey", + "Do not show in cashflow chart": "No mostrar en el gráfico de flujo de caja", + "Don't have an account?": "¿No tienes una cuenta?", + "Don't want these emails? You can manage your notifications in your [account settings](:url).": "¿No quieres recibir estos correos? Puedes gestionar tus notificaciones en los [ajustes de tu cuenta](:url).", + "Download as CSV or Excel format": "Descargar en formato CSV o Excel", + "Drop your CSV or Excel file here, or click to browse": "Arrastra tu archivo CSV o Excel aquí, o haz clic para buscar", + "Drop your file here, or click to browse": "Arrastra tu archivo aquí, o haz clic para explorar", + "Duplicate": "Duplicado", + "Duplicates": "Duplicados", + "Each code is single-use and tied to your email — please keep them private.": "Cada código es de un solo uso y está vinculado a tu email — guárdalos en privado.", + "Each confirmed referral moves you 10 spots forward.": "Cada referido confirmado te adelanta 10 puestos.", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click": "Cada código de recuperación se puede usar una vez para acceder a tu cuenta y será eliminado después de usarse. Si necesitas más, haz clic", + "Each recovery code can be used once to\\n access your account and will be removed\\n after use. If you need more, click": "Cada código de recuperación se puede usar una vez para acceder a tu cuenta y se eliminará después de su uso. Si necesitas más, haz clic", + "Edit": "Editar", + "Edit Account": "Editar Cuenta", + "Edit Automation Rule": "Editar Regla de Automatización", + "Edit Balance": "Editar Balance", + "Edit Budget": "Editar Presupuesto", + "Edit Category": "Editar Categoría", + "Edit Label": "Editar Etiqueta", + "Edit Loan Details": "Editar Detalles del Préstamo", + "Edit Owed Amount": "Editar Monto Adeudado", + "Edit Property Details": "Editar Detalles de Propiedad", + "Edit Transaction": "Editar transacción", + "Edit account": "Editar cuenta", + "Edit budget": "Editar presupuesto", + "Edit loan details": "Editar detalles del préstamo", + "Electricity": "Electricidad", + "Email": "Correo Electrónico", + "Email address": "Dirección de correo electrónico", + "Email address, name, and password (encrypted)": "Dirección de correo electrónico, nombre y contraseña (encriptados)", + "Email password reset link": "Enviar enlace para restablecer contraseña", + "Email verification": "Verificación de correo electrónico", + "Email:": "Correo:", + "Email\\n address, name, and password (encrypted)": "Dirección de correo electrónico, nombre y contraseña (cifrada)", + "Emergency Fund": "Fondo de Emergencia", + "Emma L.": "Emma L.", + "Enable 2FA": "Activar 2FA", + "Enable privacy mode": "Activar modo privado", + "Enabled": "Activado", + "Encrypted on your device": "Encriptado en tu dispositivo", + "Encryption Password": "Contraseña de Encriptación", + "Encryption Set": "Encriptación Configurada", + "Encryption at Rest:": "Cifrado en Reposo:", + "Encryption in Transit:": "Cifrado en Tránsito:", + "Encryption key not available": "Clave de encriptación no disponible", + "Encryption key not available. Please go back and set up encryption.": "Clave de encriptación no disponible. Por favor, vuelve atrás y configura la encriptación.", + "English": "Inglés", + "Ensure your account is using a long, random password to stay secure": "Asegúrate de que tu cuenta esté usando una contraseña larga y aleatoria para mantenerse segura", + "Ensure your account is using a long, random password to stay secure.": "Asegúrate de que tu cuenta esté usando una contraseña larga y aleatoria para mantenerte seguro.", + "Enter a strong encryption password": "Ingresa una contraseña de encriptación fuerte", + "Enter a strong password": "Ingresa una contraseña fuerte", + "Enter recovery code": "Ingresar código de recuperación", + "Enter transactions yourself or import a CSV file": "Introduce transacciones tú mismo o importa un archivo CSV", + "Enter your API Key and Secret to connect your Binance account.": "Introduce tu Clave API y Secreto para conectar tu cuenta de Binance.", + "Enter your API Key to connect your Bitpanda account.": "Introduce tu Clave API para conectar tu cuenta de Bitpanda.", + "Enter your API token to connect your Indexa Capital account.": "Introduce tu token API para conectar tu cuenta de Indexa Capital.", + "Enter your CDP API key name and private key to connect your Coinbase account.": "Introduce el nombre de tu clave API de CDP y la clave privada para conectar tu cuenta de Coinbase.", + "Enter your CDP App Key ID and Secret to connect your Coinbase account.": "Introduce el ID de tu Clave API de CDP y el Secreto para conectar tu cuenta de Coinbase.", + "Enter your details below to create your account": "Ingresa tus datos a continuación para crear tu cuenta", + "Enter your email and password below to log in": "Ingresa tu correo electrónico y contraseña a continuación para iniciar sesión", + "Enter your email to receive a password reset link": "Ingresa tu correo electrónico para recibir un enlace para restablecer contraseña", + "Enter your encryption password": "Ingresa tu contraseña de encriptación", + "Enter your encryption password to decrypt transactions information and accounts name.": "Ingresa tu contraseña de encriptación para descifrar la información de transacciones y nombres de cuentas.", + "Enter your encryption password to decrypt your transactions information.": "Introduce tu contraseña de cifrado para descifrar la información de tus transacciones.", + "Enter your new API credentials for :provider.": "Introduce tus nuevas credenciales API para :provider.", + "Entertainment": "Entretenimiento", + "Entertainment (Movies, Sports, Hobbies)": "Entretenimiento (Películas, Deportes, Hobbies)", + "Entertainment · Only $8 remaining this month": "Entretenimiento · Solo $8 restante este mes", + "Entertainment → $100": "Entretenimiento → $100", + "Equity": "Patrimonio neto", + "Error": "Error", + "Errors (": "Errores (", + "Español": "Español", + "Euro": "Euro", + "Even we can't access your data. It's truly private.": "Ni siquiera nosotros podemos acceder a tus datos. Es verdaderamente privado.", + "Every Transaction": "Cada Transacción", + "Every person who joins through your link moves you **10 positions forward** in the queue.": "Cada persona que se una a través de tu enlace te adelanta **10 posiciones** en la fila.", + "Every person who joins through your link moves you another 10 spots closer to the front — so keep sharing!": "Cada persona que se una a través de tu enlace te acerca otros 10 puestos al frente — ¡sigue compartiendo!", + "Every transaction belongs to one of three types:": "Cada transacción pertenece a uno de tres tipos:", + "Every transaction tracked": "Cada transacción registrada", + "Everything in One Place": "Todo en Un Solo Lugar", + "Everything you need to know before getting started.": "Todo lo que necesitas saber antes de empezar.", + "Everything you need to manage your finances securely.": "Todo lo que necesitas para gestionar tus finanzas de forma segura.", + "Everything you need. Nothing you don't.": "Todo lo que necesitas. Nada que no.", + "Expense": "Gasto", + "Expense Categories": "Categorías de Gastos", + "Expense categories automatically appear as cash outflows in cashflow analytics.": "Las categorías de gasto aparecen automáticamente como salidas de dinero en la analítica de flujo de caja.", + "Expense categories count as cash outflow and appear in spending charts, including top spending categories.": "Las categorías de gasto cuentan como salida de dinero y aparecen en los gráficos de gasto, incluidas las categorías con más gasto.", + "Expense tracking": "Seguimiento de gastos", + "Expenses": "Gastos", + "Expires": "Vence", + "Export": "Exportar", + "Export Data": "Exportar Datos", + "Export a CSV or XLS from your bank and drag it in. A year's worth of transactions imported in under 10 seconds.": "Exporta un CSV o XLS de tu banco y arrástralo aquí. Un año de transacciones importado en menos de 10 segundos.", + "Export from any bank": "Exporta desde cualquier banco", + "Failed to apply rule to transactions.": "No se pudo aplicar la regla a las transacciones.", + "Failed to connect. Please try again.": "Error al conectar. Por favor, inténtalo de nuevo.", + "Failed to create account. Please try again.": "Error al crear la cuenta. Por favor, inténtalo de nuevo.", + "Failed to create transaction": "Error al crear la transacción", + "Failed to decrypt message. Please check your password and try again.": "Error al descifrar el mensaje. Por favor verifica tu contraseña e inténtalo de nuevo.", + "Failed to load banks. Please try again.": "Error al cargar los bancos. Por favor, inténtalo de nuevo.", + "Failed to load import data": "No se pudieron cargar los datos de importación", + "Failed to load matching transactions.": "No se pudieron cargar las transacciones coincidentes.", + "Failed to re-evaluate rules. Please try again.": "No se pudieron reevaluar las reglas. Inténtalo de nuevo.", + "Failed to reconnect. Please try again.": "Error al reconectar. Por favor, inténtalo de nuevo.", + "Failed to set balance. Please try again.": "Error al establecer el balance. Por favor, inténtalo de nuevo.", + "Failed to setup encryption. Please try again.": "Error al configurar la encriptación. Por favor, inténtalo de nuevo.", + "Failed to start re-authorization.": "Error al iniciar la reautorización.", + "Failed to sync with the provider. Please try again later.": "No se pudo sincronizar con el proveedor. Inténtalo de nuevo más tarde.", + "Failed to update credentials. Please try again.": "Error al actualizar las credenciales. Por favor, inténtalo de nuevo.", + "Failed to update transaction": "Error al actualizar la transacción", + "Failed to update transactions": "No se pudieron actualizar las transacciones", + "Failed to update transactions with labels": "No se pudieron actualizar las transacciones con etiquetas", + "Fair": "Aceptable", + "Feedback": "Comentarios", + "Fetching your transactions...": "Obteniendo tus transacciones...", + "Filter": "Filtrar", + "Filter accounts...": "Filtrar cuentas...", + "Filter categories...": "Filtrar categorías...", + "Filter labels...": "Filtrar etiquetas...", + "Filter rules...": "Filtrar reglas...", + "Filter rules....": "Filtrar reglas....", + "Filters": "Filtros", + "Finally, a finance app that respects my privacy. Knowing my data isn't being shared gives me peace of mind.": "Por fin, una aplicación financiera que respeta mi privacidad. Saber que mis datos no se comparten me da tranquilidad.", + "Finally, a finance app that respects my privacy. The encryption gives me peace of mind.": "Finalmente, una app de finanzas que respeta mi privacidad. La encriptación me da tranquilidad.", + "Financial Advice Disclaimer:": "Descargo de Responsabilidad sobre Asesoramiento Financiero:", + "Financial Data:": "Datos Financieros:", + "Financial decisions made based on data in the application": "Decisiones financieras tomadas basándose en datos de la aplicación", + "Financial decisions made based on data in\\n the application": "Decisiones financieras tomadas basándose en los datos de la aplicación", + "Finding historical transactions": "Buscando transacciones históricas", + "Finish Setup": "Finalizar Configuración", + "First, thank you for giving Whisper Money a try. I hope it helped you get a better handle on your finances while keeping your data private.": "Primero, gracias por probar Whisper Money. Espero que te haya ayudado a manejar mejor tus finanzas mientras mantenías tus datos privados.", + "First, thank you for giving Whisper Money a try. We hope it helped you get a better handle on your finances while keeping your data private.": "Primero, gracias por probar Whisper Money. Esperamos que te haya ayudado a manejar mejor tus finanzas mientras mantenías tus datos privados.", + "Food & Dining (Groceries, Restaurants, Delivery)": "Alimentación (Supermercado, Restaurantes, Delivery)", + "Forgot password": "Olvidé mi contraseña", + "Forgot password?": "¿Olvidaste tu contraseña?", + "Founders of Whisper Money": "Fundadores de Whisper Money", + "Free": "Gratis", + "Freelance Invoice": "Factura Freelance", + "Frequently Asked Questions": "Preguntas Frecuentes", + "From": "Desde", + "Full name": "Nombre completo", + "Fully transparent and open source. Review the code yourself.": "Totalmente transparente y de código abierto. Revisa el código tú mismo.", + "Future transactions will be categorized automatically either way. You can preview the matches before confirming.": "Las transacciones futuras se categorizarán automáticamente de todos modos. Puedes previsualizar las coincidencias antes de confirmar.", + "Gain/loss": "Ganancia/pérdida", + "Get Started": "Comenzar", + "Get Started Free": "Empieza Gratis", + "Get Started for Free": "Empieza Gratis", + "Get a clear picture of where your money goes every month.": "Obtén una imagen clara de a dónde va tu dinero cada mes.", + "Get a clear picture of where your money goes every month. Track spending across all your accounts, spot patterns, and make sense of your financial life at a glance.": "Obtén una imagen clara de a dónde va tu dinero cada mes. Rastrea gastos en todas tus cuentas, detecta patrones y entiende tu vida financiera de un vistazo.", + "Get help when you need it with priority email support.": "Obtén ayuda cuando la necesites con soporte prioritario por correo electrónico.", + "Get notified when you're close to your limit. Never overspend again.": "Recibe notificaciones cuando estés cerca de tu límite. Nunca vuelvas a gastar de más.", + "Get started at no cost. No bank connections included.": "Empieza sin coste. Sin conexiones bancarias incluidas.", + "Get started quickly with your existing financial data.": "Comienza rápidamente con tus datos financieros existentes.", + "Github": "Github", + "Go now": "Ir ahora", + "Go to Dashboard": "Ir al Panel", + "Go to Settings": "Ir a Configuración", + "Go to your account's transaction history": "Ve al historial de transacciones de tu cuenta", + "Go to your dashboard and click \"Import Transactions\". Select your CSV file and I'll map the columns automatically.": "Ve a tu panel y haz clic en \"Importar Transacciones\". Selecciona tu archivo CSV y mapearé las columnas automáticamente.", + "Go to your dashboard and click \"Import Transactions\". Select your CSV file and we'll map the columns automatically.": "Ve a tu panel y haz clic en \"Importar Transacciones\". Selecciona tu archivo CSV y mapearemos las columnas automáticamente.", + "Gold Card": "Tarjeta Oro", + "Good": "Buena", + "Good progress on your savings.": "Buen progreso en tus ahorros.", + "Got it": "Entendido", + "Great Progress!": "¡Gran Progreso!", + "Great job! You're saving well.": "¡Excelente trabajo! Estás ahorrando bien.", + "Groceries": "Supermercado", + "Groups joined by:": "Grupos unidos por:", + "Health & Wellness (Medical, Pharmacy, Fitness)": "Salud y Bienestar (Médico, Farmacia, Gimnasio)", + "Health and pharmaceuticals": "Salud y farmacia", + "Healthy Pharmacy": "Healthy Pharmacy", + "Help Me Improve": "Ayúdame a Mejorar", + "Help Us Improve": "Ayúdanos a Mejorar", + "Hey :name, is everything okay?": "Hey :name, ¿está todo bien?", + "Hey there!": "¡Hola!", + "Hey! A quick heads-up.": "¡Hola! Un aviso rápido.", + "Hey! We have some great news.": "¡Hola! Tenemos buenas noticias.", + "Hide password": "Ocultar contraseña", + "Hide subcategories": "Ocultar subcategorías", + "Hi :name,": "Hola :name,", + "Hi! I'm Victor, the founder of Whisper Money. I wanted to personally welcome you and thank you for joining us.": "¡Hola! Soy Víctor, el fundador de Whisper Money. Quería darte la bienvenida personalmente y agradecerte por unirte.", + "Hi! It's Victor and Álvaro here, the founders of Whisper Money. You've been using the app for a few days now, and we'd love to hear how it's working for you.": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Llevas unos días usando la app y nos encantaría saber cómo te está funcionando.", + "Hi! It's Victor and Álvaro, the founders of Whisper Money. We noticed you've cancelled your subscription, and we wanted to reach out personally.": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Notamos que cancelaste tu suscripción y queríamos contactarte personalmente.", + "Hi! It's Victor and Álvaro, the founders of Whisper Money. We noticed you've completed your setup but haven't imported any transactions yet. Let us help you get started!": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Notamos que completaste tu configuración pero aún no has importado transacciones. ¡Déjanos ayudarte a empezar!", + "Hi! It's Victor and Álvaro, the founders of Whisper Money. We see you've already started importing your transactions - that's awesome! You're well on your way to taking control of your finances while keeping your data private.": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Vemos que ya has empezado a importar tus transacciones, ¡genial! Estás en camino de tomar el control de tus finanzas mientras mantienes tus datos privados.", + "Hi! It's Victor here, the founder of Whisper Money. You've been using the app for a few days now, and I'd love to hear how it's working for you.": "¡Hola! Soy Víctor, el fundador de Whisper Money. Llevas unos días usando la app y me encantaría saber cómo te está funcionando.", + "Hi! It's Victor, the founder of Whisper Money. I noticed you signed up but haven't completed your setup yet. I wanted to check in personally and see if something went wrong or if you need any help.": "¡Hola! Soy Víctor, el fundador de Whisper Money. Noté que te registraste pero aún no has completado tu configuración. Quería contactarte personalmente para ver si algo salió mal o si necesitas ayuda.", + "Hi! It's Victor, the founder of Whisper Money. I noticed you've cancelled your subscription, and I wanted to reach out personally.": "¡Hola! Soy Víctor, el fundador de Whisper Money. Noté que cancelaste tu suscripción y quería contactarte personalmente.", + "Hi! It's Victor, the founder of Whisper Money. I noticed you've completed your setup but haven't imported any transactions yet. Let me help you get started!": "¡Hola! Soy Víctor, el fundador de Whisper Money. Noté que completaste tu configuración pero aún no has importado transacciones. ¡Déjame ayudarte a empezar!", + "Hi! It's Victor, the founder of Whisper Money. I see you've already started importing your transactions - that's awesome! You're well on your way to taking control of your finances while keeping your data private.": "¡Hola! Soy Víctor, el fundador de Whisper Money. Veo que ya has empezado a importar tus transacciones, ¡genial! Estás en camino de tomar el control de tus finanzas mientras mantienes tus datos privados.", + "Hi! We're Victor and Álvaro, the founders of Whisper Money. We noticed you signed up but haven't completed your setup yet. We wanted to check in personally and see if something went wrong or if you need any help.": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Notamos que te registraste pero aún no has completado tu configuración. Queríamos contactarte personalmente para ver si algo salió mal o si necesitas ayuda.", + "Hi! We're Victor and Álvaro, the founders of Whisper Money. We wanted to personally welcome you and thank you for joining us.": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Queríamos darte la bienvenida personalmente y agradecerte por unirte.", + "High-Yield Savings": "Ahorro de Alta Rentabilidad", + "Housing (Rent, Utilities, Maintenance)": "Vivienda (Alquiler, Suministros, Mantenimiento)", + "How We Protect Your Privacy": "Cómo Protegemos Tu Privacidad", + "How is my financial data kept private?": "¿Cómo se mantienen privados mis datos financieros?", + "How much do you want to budget per period?": "¿Cuánto deseas presupuestar por período?", + "How to Export from Your Bank:": "Cómo Exportar desde Tu Banco:", + "How to Import Your Transactions": "Cómo Importar Tus Transacciones", + "How would you like to set up this account?": "¿Cómo te gustaría configurar esta cuenta?", + "How's Your Experience So Far?": "¿Cómo Va Tu Experiencia Hasta Ahora?", + "How's it going, :name?": "¿Cómo va todo, :name?", + "I Understand, Continue": "Entiendo, Continuar", + "I built Whisper Money because I believe **your financial data should be yours alone**:": "Construí Whisper Money porque creo que **tus datos financieros deben ser solo tuyos**:", + "I don't use AI to analyze your spending or sell insights about your habits. Your financial data stays between you and your spreadsheet-loving self.": "No uso IA para analizar tus gastos ni vender información sobre tus hábitos. Tus datos financieros quedan entre tú y tu afición por las hojas de cálculo.", + "I know setting up a new app can be overwhelming, and I want to make sure you have everything you need to get started.": "Sé que configurar una nueva app puede ser abrumador, y quiero asegurarme de que tengas todo lo que necesitas para empezar.", + "I support CSV imports from most banks. Just export your transactions and upload them - it takes less than a minute. If your bank format is different, just let me know and I can help.": "Soporto importación CSV de la mayoría de bancos. Solo exporta tus transacciones y súbelas, toma menos de un minuto. Si el formato de tu banco es diferente, avísame y te ayudo.", + "I switched from Mint and haven't looked back. The privacy features are unmatched.": "Cambié desde Mint y no he mirado atrás. Las características de privacidad no tienen comparación.", + "IP address, browser type, device information, and operating system": "Dirección IP, tipo de navegador, información del dispositivo y sistema operativo", + "IP\\n address, browser type, device information,\\n and operating system": "Dirección IP, tipo de navegador, información del dispositivo y sistema operativo", + "Icon": "Ícono", + "Identify categories where you can cut back and save more.": "Identifica las categorías donde puedes gastar menos y ahorrar más.", + "If a transaction repeats with a certain frequency or is recurring, you can create an automatic rule for it by clicking this button.": "Si una transacción se repite con cierta frecuencia o es recurrente, puedes crear una regla automática para ella haciendo clic en este botón.", + "If privacy-first personal finance still sounds useful, your early access is still ready. Whisper Money helps you import transactions, organize spending, and understand your money without selling or sharing your financial data.": "Si una app de finanzas personales centrada en la privacidad sigue sonándote útil, tu acceso anticipado sigue listo. Whisper Money te ayuda a importar transacciones, organizar tus gastos y entender tu dinero sin vender ni compartir tus datos financieros.", + "If there's anything that didn't work well for you, or if you have suggestions for improvement, I'd genuinely love to hear about it. As a solo founder, your feedback is invaluable in making Whisper Money better.": "Si hay algo que no funcionó bien para ti, o si tienes sugerencias para mejorar, me encantaría saberlo. Como fundador en solitario, tus comentarios son invaluables para mejorar Whisper Money.", + "If there's anything that didn't work well for you, or if you have suggestions for improvement, we'd genuinely love to hear about it. As the founders, your feedback is invaluable in making Whisper Money better.": "Si hay algo que no funcionó bien para ti, o si tienes sugerencias para mejorar, nos encantaría saberlo. Como fundadores, tus comentarios son invaluables para mejorar Whisper Money.", + "If you didn't create a Whisper Money account, you can safely ignore this email.": "Si no creaste una cuenta en Whisper Money, puedes ignorar este correo.", + "If you have any questions or just want to chat, simply reply to this email. I read and respond to every message personally.": "Si tienes alguna pregunta o simplemente quieres charlar, responde a este correo. Leo y respondo personalmente cada mensaje.", + "If you have any questions or just want to chat, simply reply to this email. We read and respond to every message personally.": "Si tienes alguna pregunta o simplemente quieres charlar, responde a este correo. Leemos y respondemos personalmente cada mensaje.", + "If you have any questions or run into any issues, **just reply to this email**. I personally read every message and I'm here to help!": "Si tienes alguna pregunta o problema, **simplemente responde a este correo**. Leo personalmente cada mensaje y estoy aquí para ayudar.", + "If you have any questions or run into any issues, **just reply to this email**. We personally read every message and we're here to help!": "Si tienes alguna pregunta o problema, **simplemente responde a este correo**. Leemos personalmente cada mensaje y estamos aquí para ayudar.", + "If you have any questions, concerns, or feedback about these Terms of Service, please contact us:": "Si tienes alguna pregunta, inquietud o comentario sobre estos Términos de Servicio, por favor contáctanos:", + "If you have any questions, concerns, or feedback\\n about these Terms of Service, please contact us:": "Si tienes alguna pregunta, inquietud o comentario sobre estos Términos de Servicio, contáctanos:", + "If you have any questions, concerns, or requests regarding this Privacy Policy or our data practices, please contact us:": "Si tienes alguna pregunta, inquietud o solicitud con respecto a esta Política de Privacidad o nuestras prácticas de datos, por favor contáctanos:", + "If you have any questions, concerns, or requests\\n regarding this Privacy Policy or our data\\n practices, please contact us:": "Si tienes alguna pregunta, inquietud o solicitud sobre esta Política de Privacidad o nuestras prácticas de datos, contáctanos:", + "If you skip, rules will still apply automatically to future transactions.": "Si omites este paso, las reglas se seguirán aplicando automáticamente a futuras transacciones.", + "If you'd like to come back, here's a special offer just for you:": "Si te gustaría volver, aquí tienes una oferta especial solo para ti:", + "If you're having trouble clicking the \"Verify Email Address\" button, copy and paste the URL below into your web browser:": "Si tienes problemas para hacer clic en el botón \"Verificar Correo Electrónico\", copia y pega la URL de abajo en tu navegador web:", + "If you're having trouble with the import or need help with your specific bank's format, just reply to this email. I personally handle support and I'm happy to help you figure it out.": "Si tienes problemas con la importación o necesitas ayuda con el formato de tu banco, simplemente responde a este correo. Yo personalmente manejo el soporte y estaré encantado de ayudarte.", + "If you're having trouble with the import or need help with your specific bank's format, just reply to this email. We personally handle support and we're happy to help you figure it out.": "Si tienes problemas con la importación o necesitas ayuda con el formato de tu banco, simplemente responde a este correo. Nosotros personalmente gestionamos el soporte y estaremos encantados de ayudarte.", + "Ignore": "Ignorar", + "Import": "Importar", + "Import Transactions": "Importar Transacciones", + "Import Your Transactions": "Importa Tus Transacciones", + "Import Your Transactions in Seconds": "Importa Tus Transacciones en Segundos", + "Import a year's worth of transactions in under 10 seconds. Simply export a CSV or XLS file from your bank and drag it into Whisper Money. All data is encrypted locally before upload.": "Importa transacciones de un año completo en menos de 10 segundos. Simplemente exporta un archivo CSV o XLS desde tu banco y arrástralo a Whisper Money. Todos los datos se encriptan localmente antes de subirse.", + "Import balance history from CSV files": "Importar historial de balances desde archivos CSV", + "Import balances": "Importar balances", + "Import in Seconds": "Importa en Segundos", + "Import in seconds": "Importa en segundos", + "Import market values": "Importar valores de mercado", + "Import owed amounts": "Importar montos adeudados", + "Import transactions": "Importar transacciones", + "Import transactions for your account. You can export transaction history from your bank's website.": "Importa transacciones para tu cuenta. Puedes exportar el historial de transacciones desde la web de tu banco.", + "Import transactions from CSV or Excel files": "Importar transacciones desde archivos CSV o Excel", + "Import transactions from CSV/Excel": "Importar transacciones desde CSV/Excel", + "Import transactions from a CSV file": "Importar transacciones desde un archivo CSV", + "Import transactions in seconds": "Importa transacciones en segundos", + "Import your transaction history to start tracking your finances.": "Importa tu historial de transacciones para empezar a rastrear tus finanzas.", + "Imported": "Importado", + "Importing Transactions": "Importando Transacciones", + "Importing your balances...": "Importando tus saldos...", + "Include loan balances in the net worth totals and chart": "Incluir los saldos de préstamos en los totales y el gráfico del patrimonio neto", + "Include loans": "Incluir préstamos", + "Include real estate": "Incluir bienes raíces", + "Include real estate assets in the net worth totals and chart": "Incluir bienes raíces en los totales y gráfico de patrimonio neto", + "Income": "Ingresos", + "Income (Salary, Freelance, Investments)": "Ingresos (Salario, Freelance, Inversiones)", + "Income Sources": "Fuentes de Ingresos", + "Income categories automatically appear as cash inflows in cashflow analytics.": "Las categorías de ingreso aparecen automáticamente como entradas de dinero en la analítica de flujo de caja.", + "Income categories count as cash inflow and appear in income charts. They do not appear in top spending categories.": "Las categorías de ingreso cuentan como entrada de dinero y aparecen en los gráficos de ingresos. No aparecen en las categorías con más gasto.", + "Income minus expenses": "Ingresos menos gastos", + "Indian Rupee": "Rupia india", + "Information about how you use our service, including access times and features used": "Información sobre cómo usas nuestro servicio, incluyendo horarios de acceso y funciones utilizadas", + "Information about how you use our service,\\n including access times and features used": "Información sobre cómo usas nuestro servicio, incluyendo tiempos de acceso y funciones utilizadas", + "Inherited from parent": "Heredado de la categoría padre", + "Install App": "Instalar App", + "Install Whisper Money": "Instalar Whisper Money", + "Instant Application": "Aplicación Instantánea", + "Intelligent insights": "Análisis inteligentes", + "Invalid credentials. Please check and try again.": "Credenciales inválidas. Revísalas e inténtalo de nuevo.", + "Invested": "Invertido", + "Invested Amount": "Cantidad Invertida", + "Invested amount": "Cantidad invertida", + "Investment": "Inversión", + "Investment Portfolio": "Cartera de Inversión", + "Investment categories appear as invested money at the top of cashflow and as cash outflow in the cashflow chart. They stay out of income, expenses, and top spending categories.": "Las categorías de inversión aparecen como dinero invertido en la parte superior del flujo de caja y como salida de dinero en el gráfico de flujo de caja. Quedan fuera de ingresos, gastos y categorías con más gasto.", + "Investment categories stay out of income and expense totals in cashflow analytics.": "Las categorías de inversión quedan fuera de los totales de ingresos y gastos en la analítica de flujo de caja.", + "Investment categories stay out of income, expenses, cashflow totals, and top spending categories.": "Las categorías de inversión quedan fuera de ingresos, gastos, totales de flujo de caja y categorías con más gasto.", + "Is Whisper Money open source?": "¿Es Whisper Money de código abierto?", + "Is the app meeting your expectations?": "¿La app cumple con tus expectativas?", + "Is the encryption confusing?": "¿La encriptación es confusa?", + "Is there anything confusing or frustrating?": "¿Hay algo confuso o frustrante?", + "It's personal finance, but actually private.": "Son tus finanzas personales, pero realmente privadas.", + "Japanese Yen": "Yen japonés", + "Jessica P.": "Jessica P.", + "Join Waitlist": "Unirse a la lista", + "Join our Discord": "Únete a nuestro Discord", + "Join the waiting list. We'll let you know when you're in.": "Únete a la lista de espera. Te avisaremos cuando sea tu turno.", + "Join thousands of users who have taken control of their finances without compromising their privacy.": "Únete a miles de usuarios que han tomado el control de sus finanzas sin comprometer su privacidad.", + "Just reply to this email and let me know what's happening. I personally read every response and will help you get started. This is my project, so I care about making sure it works for you.": "Simplemente responde a este correo y cuéntame qué está pasando. Leo personalmente cada respuesta y te ayudaré a empezar. Este es mi proyecto, así que me importa que funcione para ti.", + "Just reply to this email and let us know what's happening. We personally read every response and will help you get started.": "Simplemente responde a este correo y cuéntanos qué está pasando. Leemos personalmente cada respuesta y te ayudaremos a empezar.", + "Just reply to this email with your feedback. No surveys, no forms, just a direct conversation with me.": "Simplemente responde a este correo con tus comentarios. Sin encuestas, sin formularios, solo una conversación directa conmigo.", + "Just reply to this email with your feedback. No surveys, no forms, just a direct conversation with us.": "Simplemente responde a este correo con tus comentarios. Sin encuestas, sin formularios, solo una conversación directa con nosotros.", + "KB max.": "KB máx.", + "Keep accounts": "Mantener cuentas", + "Keep me logged in": "Mantenerme conectado", + "Keep me logged in (convenient)": "Mantenerme conectado (conveniente)", + "Keep me logged in (less secure)": "Mantenerme conectado (menos seguro)", + "Keep this category out of cashflow analytics.": "Mantén esta categoría fuera de la analítica de flujo de caja.", + "Keep this transfer out of cashflow analytics.": "Mantiene esta transferencia fuera de la analitica de flujo de caja.", + "Key Storage": "Almacenamiento de Clave", + "Label (Optional)": "Etiqueta (Opcional)", + "Label name": "Nombre de etiqueta", + "Labels settings": "Configuración de etiquetas", + "Land": "Terreno", + "Language": "Idioma", + "Last Login": "Último acceso", + "Last period:": "Período anterior:", + "Last synced": "Última sincronización", + "Last updated:": "Última actualización:", + "Latest transactions in this account": "Últimas transacciones en esta cuenta", + "Let's Get Started": "Comencemos", + "Let's Import Your Transactions": "Importemos Tus Transacciones", + "Let's set up your first account to start tracking your finances.": "Configuremos tu primera cuenta para empezar a rastrear tus finanzas.", + "Let's start": "Vamos a empezar", + "Let's start with your main checking account. You can add more accounts later.": "Empecemos con tu cuenta corriente principal. Puedes agregar más cuentas después.", + "Lifetime": "De por vida", + "Lifetime License": "Licencia de Por Vida", + "Lifetime updates": "Actualizaciones de por vida", + "Light": "Claro", + "Lightning fast": "Ultrarrápido", + "Lightning-Fast CSV/XLS Import": "Importación Ultrarrápida de CSV/XLS", + "Limit adjusted": "Límite ajustado", + "Link a loan account to track equity (market value minus owed amount).": "Vincula una cuenta de préstamo para rastrear el patrimonio (valor de mercado menos monto adeudado).", + "Link to existing account": "Vincular a cuenta existente", + "Link your bank accounts directly. Transactions sync automatically, giving you a real-time view of your finances.": "Vincula tus cuentas bancarias directamente. Las transacciones se sincronizan automáticamente, dándote una vista en tiempo real de tus finanzas.", + "Linked Mortgage / Loan": "Hipoteca / Préstamo Vinculado", + "Linked Property": "Propiedad vinculada", + "Load more": "Cargar más", + "Loading": "Cargando", + "Loading last balance...": "Cargando último balance...", + "Loading last owed amount...": "Cargando último monto adeudado...", + "Loading matches…": "Cargando coincidencias…", + "Loading recovery codes": "Cargando códigos de recuperación", + "Loading...": "Cargando...", + "Loan": "Préstamo", + "Loan Details": "Detalles del Préstamo", + "Loan Start Date": "Fecha de Inicio del Préstamo", + "Loan Term": "Plazo del Préstamo", + "Loan Term (months)": "Plazo del Préstamo (meses)", + "Loans": "Préstamos", + "Lock encryption key": "Bloquear clave de encriptación", + "Log in": "Iniciar sesión", + "Log in to your account": "Inicia sesión en tu cuenta", + "Log in to your bank": "Inicia sesión en tu banco", + "Log in to your bank's website or app": "Inicia sesión en el sitio web o app de tu banco", + "Log into your bank's website and look for \"Export\" or \"Download transactions\". Choose CSV format if available.": "Inicia sesión en la web de tu banco y busca \"Exportar\" o \"Descargar transacciones\". Elige formato CSV si está disponible.", + "Log out": "Cerrar sesión", + "Logo": "Logo", + "Look for \"Export\" or \"Download\" option": "Busca la opción \"Exportar\" o \"Descargar\"", + "Looking forward to hearing from you! And if you decide Whisper Money isn't for you, that's totally fine - but I'd love to know why so I can improve.": "¡Espero tus comentarios! Y si decides que Whisper Money no es para ti, está totalmente bien, pero me encantaría saber por qué para poder mejorar.", + "Looking forward to hearing from you! And if you decide Whisper Money isn't for you, that's totally fine - but we'd love to know why so we can improve.": "¡Esperamos saber de ti! Y si decides que Whisper Money no es para ti, está totalmente bien, pero nos encantaría saber por qué para poder mejorar.", + "Love that my financial data is encrypted. No more worrying about data breaches!": "Me encanta que mis datos financieros estén encriptados. ¡No más preocupaciones por violaciones de datos!", + "Love that my financial data stays private. No more worrying about who has access to my spending habits!": "Me encanta que mis datos financieros sean privados. ¡Ya no me preocupa quién tiene acceso a mis hábitos de gasto!", + "Love the simplicity. It's powerful but not overwhelming like other apps.": "Me encanta la simplicidad. Es potente pero no abrumadora como otras apps.", + "Lower numbers execute first": "Los números más bajos se ejecutan primero", + "MM-DD-YYYY (e.g., 12-31-2024)": "MM-DD-YYYY (ej., 12-31-2024)", + "Main Checking": "Cuenta Corriente Principal", + "Maintain and promptly update your account information": "Mantén y actualiza prontamente tu información de cuenta", + "Maintain and promptly update your account\\n information": "Mantén y actualiza puntualmente la información de tu cuenta", + "Make child categories top level": "Convertir las categorías hijas en categorías principales", + "Making your money talk...": "Haciendo que tu dinero hable...", + "Manage Plan": "Gestionar Plan", + "Manage Subscription": "Gestionar Suscripción", + "Manage rules that categorize transactions and add labels automatically": "Gestiona reglas que categorizan transacciones y agregan etiquetas automáticamente", + "Manage the automatic notifications you receive": "Gestiona las notificaciones automáticas que recibes", + "Manage your bank accounts": "Gestiona tus cuentas bancarias", + "Manage your connected bank accounts for automatic transaction syncing.": "Gestiona tus cuentas bancarias conectadas para sincronización automática de transacciones.", + "Manage your profile and account settings": "Gestiona tu perfil y configuración de cuenta", + "Manage your subscription, update payment methods, or view invoices through the Stripe billing portal.": "Gestiona tu suscripción, actualiza métodos de pago o consulta facturas a través del portal de facturación de Stripe.", + "Manage your subscription, update payment methods, or\\n view invoices through the Stripe billing portal.": "Gestiona tu suscripción, actualiza métodos de pago o consulta facturas a través del portal de facturación de Stripe.", + "Manage your transaction automation rules": "Gestiona tus reglas de automatización de transacciones", + "Manage your transaction automation rules. Rules will be applied to categorize transactions automatically.": "Gestiona tus reglas de automatización de transacciones. Las reglas se aplicarán para categorizar transacciones automáticamente.", + "Manage your transaction automation rules. Rules will categorize transactions and add labels automatically.": "Gestiona tus reglas de automatización de transacciones. Las reglas categorizarán transacciones y agregarán etiquetas automáticamente.", + "Manage your transaction categories": "Gestiona tus categorías de transacciones", + "Manage your transaction labels": "Gestiona tus etiquetas de transacciones", + "Manage your two-factor authentication settings": "Gestiona tu configuración de autenticación de dos factores", + "Manual": "Manual", + "Manually record and track your financial transactions, budgets, and expenses": "Registra y rastrea manualmente tus transacciones financieras, presupuestos y gastos", + "Manually record and track your financial\\n transactions, budgets, and expenses": "Registra y realiza un seguimiento manual de tus transacciones financieras, presupuestos y gastos", + "Map Accounts": "Mapear Cuentas", + "Map Bank Accounts": "Mapear Cuentas Bancarias", + "Map Columns": "Mapear Columnas", + "Mark your account as deleted and disable access": "Marca tu cuenta como eliminada y desactiva el acceso", + "Market Value": "Valor de Mercado", + "Market Values": "Valores de Mercado", + "Market value": "Valor de mercado", + "Market value evolution": "Evolución del valor de mercado", + "Match your file columns to transaction fields": "Asocia las columnas de tu archivo con los campos de transacción", + "Max": "Máx", + "Maybe later": "Quizás más tarde", + "Metro Transit": "Metro Transit", + "Mexican Peso": "Peso mexicano", + "Michael R.": "Michael R.", + "Min": "Mín", + "Mobile app (iOS & Android)": "App móvil (iOS y Android)", + "Modify an existing rule": "Modificar una regla existente", + "Money Flow": "Flujo de Caja", + "Money coming into an account from a source (e.g., salary, refunds, interest). Increases your balance.": "Dinero que entra en una cuenta desde una fuente (ej., salario, reembolsos, intereses). Aumenta tu balance.", + "Money going out of an account to pay for something (e.g., groceries, rent, subscriptions). Decreases your balance.": "Dinero que sale de una cuenta para pagar algo (ej., supermercado, alquiler, suscripciones). Disminuye tu balance.", + "Month": "Mes", + "Monthly": "Mensual", + "Monthly Payment": "Pago Mensual", + "Monthly code": "Código mensual", + "Monthly income, expenses, and net cashflow for the selected period": "Ingresos, gastos y flujo de dinero neto mensual para el período seleccionado", + "Monthly income, expenses, and net cashflow over the last 12 months": "Ingresos, gastos y flujo de dinero neto mensual durante los últimos 12 meses", + "Monthly income, expenses, tracked transfers, and net cashflow over the last 12 months": "Ingresos, gastos, transferencias seguidas y flujo de caja neto mensual durante los ultimos 12 meses", + "More": "Más", + "More actions": "Más acciones", + "More options": "Más opciones", + "Mortgage Owed": "Hipoteca pendiente", + "Mortgage at": "Hipoteca en", + "Mortgage owed": "Hipoteca pendiente", + "Mortgages and loans": "Hipotecas y préstamos", + "Most Popular": "Más Popular", + "Move Up — Share Your Personal Link": "Sube puestos — Comparte Tu Enlace Personal", + "Move child categories to the top level": "Mover las categorías hijas al nivel principal", + "Move child categories up to the parent": "Mover las categorías hijas a la categoría padre", + "Move up 10 spots per referral": "Avanza 10 puestos por referido", + "Movie Night": "Noche de Cine", + "Moving money between accounts. It does not count in expenses or income charts.": "Mover dinero entre cuentas. No cuenta en los gráficos de gastos o ingresos.", + "Multi-Device Sync": "Sincronización Multi-Dispositivo", + "Multiple account tracking": "Seguimiento de múltiples cuentas", + "Name": "Nombre", + "Navigate to...": "Navegar a...", + "Need Help Getting Started?": "¿Necesitas Ayuda para Empezar?", + "Need help importing your transactions, :name?": "¿Necesitas ayuda para importar tus transacciones, :name?", + "Need help? Join our Discord": "¿Necesitas ayuda? Únete a nuestro Discord", + "Net": "Neto", + "Net Cashflow": "Flujo Neto", + "Net Worth Evolution": "Evolución del Patrimonio Neto", + "Neutral": "Neutro", + "Never": "Nunca", + "New": "Nuevo", + "New Zealand Dollar": "Dólar neozelandés", + "New password": "Nueva contraseña", + "New transactions from connected banks": "Nuevas transacciones de bancos conectados", + "New transactions synced, :name!": "¡Nuevas transacciones sincronizadas, :name!", + "Next": "Siguiente", + "Next month": "Mes siguiente", + "Next period": "Período siguiente", + "No AI Snooping": "Sin Espionaje por IA", + "No AI, No Data Mining": "Sin IA, Sin Minería de Datos", + "No AI. No bank connections. Your privacy is our priority.": "Sin IA. Sin conexiones bancarias. Tu privacidad es nuestra prioridad.", + "No Bank Access Required": "Sin Acceso Bancario Requerido", + "No Third-Party Data Sharing:": "Sin Compartir Datos con Terceros:", + "No Uncategorized Transactions": "Sin Transacciones Sin Categorizar", + "No account data available": "No hay datos de cuentas disponibles", + "No accounts found.": "No se encontraron cuentas.", + "No accounts found. Add your first account in Settings.": "No se encontraron cuentas. Agrega tu primera cuenta en Configuración.", + "No accounts found. Please create an account first.": "No se encontraron cuentas. Por favor crea una cuenta primero.", + "No action set": "Sin acción establecida", + "No active period": "Sin periodo activo", + "No automation rules available.": "No hay reglas de automatización disponibles.", + "No automation rules found.": "No se encontraron reglas de automatización.", + "No balance data available": "No hay datos de balance disponibles", + "No balance records found.": "No se encontraron registros de balance.", + "No bank connections yet. Connect a bank to automatically sync your transactions.": "Aún no hay conexiones bancarias. Conecta un banco para sincronizar automáticamente tus transacciones.", + "No bank found.": "No se encontró ningún banco.", + "No banks found.": "No se encontraron bancos.", + "No cashflow data for this period": "Sin datos de flujo de dinero para este período", + "No categories found.": "No se encontraron categorías.", + "No category found.": "No se encontró categoría.", + "No category set": "Sin categoría definida", + "No expenses this period": "Sin gastos en este período", + "No income this period": "Sin ingresos en este período", + "No labels found.": "No se encontraron etiquetas.", + "No limits on bank accounts, transactions, or categories.": "Sin límites en cuentas bancarias, transacciones o categorías.", + "No linked loan": "Sin préstamo vinculado", + "No linked property": "Sin propiedad vinculada", + "No loan details yet. Add interest rate, term, and amount to track amortization.": "Aún no hay detalles del préstamo. Añade tipo de interés, plazo e importe para seguir la amortización.", + "No market value data available": "No hay datos de valor de mercado disponibles", + "No matching transactions. Future transactions will still be categorized automatically.": "Sin transacciones coincidentes. Las transacciones futuras se categorizarán automáticamente.", + "No owed amount data available": "No hay datos de monto adeudado disponibles", + "No owed amount records found.": "No se encontraron registros de monto adeudado.", + "No pressure—if now is not the right time, you can ignore this email.": "Sin presión: si ahora no es el momento, puedes ignorar este correo.", + "No results found": "No se encontraron resultados", + "No spending data this month": "Sin datos de gasto este mes", + "No third-party sharing, no AI snooping. Your financial data belongs to you and only you.": "Sin compartir con terceros, sin espionaje de IA. Tus datos financieros te pertenecen a ti y solo a ti.", + "No tracking": "Sin seguimiento", + "No transactions found.": "No se encontraron transacciones.", + "No valid balances found": "No se encontraron balances válidos", + "No valid owed amounts found": "No se encontraron montos adeudados válidos", + "No worries! Your encryption key is automatically generated and stored securely on your device. You don't need to remember anything - I've made it as simple as possible.": "¡No te preocupes! Tu clave de encriptación se genera automáticamente y se almacena de forma segura en tu dispositivo. No necesitas recordar nada, lo he hecho lo más simple posible.", + "None": "Ninguno", + "None (Remove)": "Ninguno (Eliminar)", + "None (top level)": "Ninguna (nivel principal)", + "Not sure how to import transactions?": "¿No sabes cómo importar transacciones?", + "Notes": "Notas", + "Notifications": "Notificaciones", + "Nothing in these Terms excludes or limits our liability for death or personal injury caused by negligence, fraud, or any liability that cannot be excluded or limited under applicable law.": "Nada en estos Términos excluye o limita nuestra responsabilidad por muerte o lesiones personales causadas por negligencia, fraude, o cualquier responsabilidad que no pueda ser excluida o limitada bajo la ley aplicable.", + "Nothing in these Terms excludes or limits our\\n liability for death or personal injury caused by\\n negligence, fraud, or any liability that cannot\\n be excluded or limited under applicable law.": "Nada en estos Términos excluye o limita nuestra responsabilidad por muerte o lesiones personales causadas por negligencia, fraude o cualquier responsabilidad que no pueda ser excluida o limitada según la ley aplicable.", + "Notify us immediately of any unauthorized access or security breach": "Notifícanos inmediatamente de cualquier acceso no autorizado o violación de seguridad", + "Notify us immediately of any unauthorized\\n access or security breach": "Notifícanos inmediatamente de cualquier acceso no autorizado o brecha de seguridad", + "Once verified, you'll be able to set up your encryption key and start tracking your finances with full privacy.": "Una vez verificado, podrás configurar tu clave de encriptación y empezar a rastrear tus finanzas con total privacidad.", + "Once your account is deleted, all of its resources and data will also be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Una vez que tu cuenta sea eliminada, todos sus recursos y datos también serán eliminados permanentemente. Por favor ingresa tu contraseña para confirmar que deseas eliminar permanentemente tu cuenta.", + "Once your account is deleted, all of its resources\\n and data will also be permanently deleted. Please\\n enter your password to confirm you would like to\\n permanently delete your account.": "Una vez que tu cuenta sea eliminada, todos sus recursos y datos también serán eliminados permanentemente. Por favor, introduce tu contraseña para confirmar que deseas eliminar permanentemente tu cuenta.", + "Once your account is deleted, you will be signed out\\n and your access will be disabled. Your data will\\n remain in the database. Please enter your password\\n to confirm you would like to mark your account as\\n deleted.": "Una vez que tu cuenta se marque como eliminada, se cerrará tu sesión y tu acceso quedará desactivado. Tus datos permanecerán en la base de datos. Por favor, introduce tu contraseña para confirmar que deseas marcar tu cuenta como eliminada.", + "Only apply to uncategorized": "Aplicar solo a las no categorizadas", + "Only you know this password. It never leaves your device.": "Solo tú conoces esta contraseña. Nunca sale de tu dispositivo.", + "Open menu": "Abrir menú", + "Open source": "Código abierto", + "Optional. Provide loan details to automatically project your owed amount over time.": "Opcional. Proporciona los detalles del préstamo para proyectar automáticamente el monto adeudado a lo largo del tiempo.", + "Optional. Set the current balance for this account.": "Opcional. Establece el balance actual de esta cuenta.", + "Optionally link this loan to an existing unlinked real-estate account.": "Opcionalmente vincula este préstamo a una cuenta inmobiliaria existente que aún no esté vinculada.", + "Or, return to": "O, regresar a", + "Organize financial data with categories and custom labels": "Organiza datos financieros con categorías y etiquetas personalizadas", + "Organize financial data with categories and\\n custom labels": "Organiza los datos financieros con categorías y etiquetas personalizadas", + "Organize transactions with tags that make sense for your workflow.": "Organiza transacciones con etiquetas que tengan sentido para tu flujo de trabajo.", + "Original Amount": "Monto Original", + "Original Loan Amount": "Monto Original del Préstamo", + "Other": "Otros", + "Other Categories (": "Otras Categorías (", + "Others": "Otros", + "Our service is not intended for users under the age of 16. We do not knowingly collect personal information from children. If you believe we have collected information from a child, please contact us immediately, and we will delete it.": "Nuestro servicio no está destinado a usuarios menores de 16 años. No recopilamos intencionalmente información personal de niños. Si crees que hemos recopilado información de un niño, por favor contáctanos inmediatamente y la eliminaremos.", + "Our service is not intended for users under the\\n age of 16. We do not knowingly collect personal\\n information from children. If you believe we\\n have collected information from a child, please\\n contact us immediately, and we will delete it.": "Nuestro servicio no está destinado a usuarios menores de 16 años. No recopilamos intencionalmente información personal de niños. Si crees que hemos recopilado información de un niño, contáctanos de inmediato y la eliminaremos.", + "Overview of your financial health": "Vista general de tu salud financiera", + "Owed Amount": "Monto Adeudado", + "Owed Amount History": "Historial de Monto Adeudado", + "Owed Amounts": "Montos Adeudados", + "Owed amount evolution": "Evolución del monto adeudado", + "Page": "Página", + "Paraguayan Guarani": "Guaraní paraguayo", + "Parent": "Padre", + "Direct": "Directo", + "Parent category": "Categoría padre", + "Password": "Contraseña", + "Password changes are disabled on the demo account.": "Los cambios de contraseña están deshabilitados en la cuenta demo.", + "Password changes are disabled on the demo\\n account.": "Los cambios de contraseña están desactivados en la cuenta de demostración.", + "Password must be at least 12 characters": "La contraseña debe tener al menos 12 caracteres", + "Password settings": "Configuración de contraseña", + "Passwords do not match": "Las contraseñas no coinciden", + "Passwords match": "Las contraseñas coinciden", + "Paste your Binance API Key": "Pega tu Clave API de Binance", + "Paste your Binance API Secret": "Pega tu Secreto API de Binance", + "Paste your Bitpanda API Key": "Pega tu Clave API de Bitpanda", + "Paste your Indexa Capital API token": "Pega tu token API de Indexa Capital", + "Patience is a virtue (especially with money)...": "La paciencia es una virtud (especialmente con el dinero)...", + "Pattern Matching": "Coincidencia de Patrones", + "Payment Processors:": "Procesadores de Pago:", + "Payments are processed by third-party payment processors and subject to their terms": "Los pagos son procesados por procesadores de pago de terceros y están sujetos a sus términos", + "Payments are processed by third-party\\n payment processors and subject to their\\n terms": "Los pagos son procesados por procesadores de pago de terceros y están sujetos a sus términos", + "Payroll Deposit": "Depósito de Nómina", + "Percentage of income saved": "Porcentaje de ingresos ahorrados", + "Perfect for investment portfolios and retirement accounts": "Perfecto para carteras de inversión y cuentas de jubilación", + "Perfect for investment portfolios and retirement\\n accounts": "Perfecto para carteras de inversión y cuentas de jubilación", + "Period": "Período", + "Period Duration (days)": "Duración del Período (días)", + "Period Type": "Tipo de Período", + "Period and carry-over settings cannot be changed after a budget is created because budgets are calculated historically. If you need different settings, delete this budget and create a new one.": "La configuración de período y arrastre no se puede cambiar después de crear un presupuesto porque los presupuestos se calculan históricamente. Si necesitas una configuración diferente, elimina este presupuesto y crea uno nuevo.", + "Personal transfers": "Transferencias personales", + "Peruvian Sol": "Sol peruano", + "Pick whichever plan fits you, paste the matching code at checkout, and you are set.": "Elige el plan que prefieras, pega el código correspondiente al pagar y listo.", + "Pink": "Rosa", + "Platform": "Plataforma", + "Please enter a balance": "Por favor, ingresa un balance", + "Please enter a bank name.": "Por favor, ingresa un nombre de banco.", + "Please enter an account name.": "Por favor, ingresa un nombre de cuenta.", + "Please enter your new password below": "Por favor ingresa tu nueva contraseña a continuación", + "Please fill in all required fields.": "Por favor, completa todos los campos obligatorios.", + "Please proceed with caution, this cannot be undone.": "Por favor procede con precaución, esto no se puede deshacer.", + "Please select a bank.": "Por favor, selecciona un banco.", + "Please unlock your encryption key to add transactions": "Por favor desbloquea tu clave de encriptación para agregar transacciones", + "Please unlock your encryption key to import transactions": "Por favor desbloquea tu clave de encriptación para importar transacciones", + "Please unlock your encryption key to save transactions": "Por favor desbloquea tu clave de encriptación para guardar transacciones", + "Please verify your email address by clicking on the link we just emailed to you.": "Por favor verifica tu dirección de correo electrónico haciendo clic en el enlace que te acabamos de enviar.", + "Please wait while we import your transactions": "Por favor, espera mientras importamos tus transacciones", + "Popular banks available to connect": "Bancos populares disponibles para conectar", + "Pre-filled from an existing balance for this date.": "Rellenado con un balance existente para esta fecha.", + "Prefer to Connect Your Bank?": "¿Prefieres Conectar Tu Banco?", + "Prefer to Start Fresh?": "¿Prefieres Empezar de Cero?", + "Prev": "Ant", + "Preview (first 3 rows)": "Vista previa (primeras 3 filas)", + "Preview Balances": "Vista Previa de Balances", + "Preview Owed Amounts": "Vista Previa de Montos Adeudados", + "Preview Transactions": "Vista Previa de Transacciones", + "Preview the transactions these rules will categorize before applying them.": "Previsualiza las transacciones que estas reglas categorizarán antes de aplicarlas.", + "Preview the transactions this rule will affect and apply its actions.": "Previsualiza las transacciones que esta regla afectará y aplica sus acciones.", + "Previous": "Anterior", + "Previous month": "Mes anterior", + "Previous period": "Período anterior", + "Priority": "Prioridad", + "Priority Support": "Soporte Prioritario", + "Priority support": "Soporte prioritario", + "Privacy First": "Privacidad Primero", + "Privacy First:": "Privacidad Primero:", + "Privacy Policy": "Política de Privacidad", + "Privacy Policy - Whisper Money": "Política de Privacidad - Whisper Money", + "Privacy by Design": "Privacidad por Diseño", + "Privacy comes first": "La privacidad es lo primero", + "Privacy policy for Whisper Money. Learn how we collect, use, and protect your personal information.": "Política de privacidad de Whisper Money. Aprende cómo recopilamos, usamos y protegemos tu información personal.", + "Privacy policy for Whisper Money. Learn how we collect, use, and protect your personal information. Your data is never shared with third parties.": "Política de privacidad de Whisper Money. Aprende cómo recopilamos, usamos y protegemos tu información personal. Tus datos nunca se comparten con terceros.", + "Private & Secure": "Privado y seguro", + "Private Key": "Clave Privada", + "Private by Design": "Privado por Diseño", + "Pro Monthly": "Pro Mensual", + "Pro Plan Active": "Plan Pro Activo", + "Pro Yearly": "Pro Anual", + "Profile Settings": "Configuración del Perfil", + "Profile information": "Información del perfil", + "Projected": "Proyectado", + "Projected mortgage": "Hipoteca proyectada", + "Property Details": "Detalles de Propiedad", + "Property Type": "Tipo de Propiedad", + "Property address": "Dirección de la propiedad", + "Protect your privacy with no tracking or third-party analytics.": "Protege tu privacidad sin rastreo ni análisis de terceros.", + "Purchase Date": "Fecha de Compra", + "Purchase Price": "Precio de Compra", + "Q": "T", + "Quartely": "Cada 4 meses", + "Quarter": "Trimestre", + "Questions or feedback? Reply to this email. We read every message personally.": "¿Tienes preguntas o comentarios? Responde a este correo. Leemos cada mensaje personalmente.", + "Rate limit exceeded. Please wait a few minutes and try again.": "Límite de solicitudes superado. Espera unos minutos e inténtalo de nuevo.", + "Re-evaluate rules": "Reevaluar reglas", + "Reactivate Your Subscription": "Reactiva Tu Suscripción", + "Receive an email when new transactions are imported from your connected banks. Sent at most once a day.": "Recibe un correo cuando se importen nuevas transacciones de tus bancos conectados. Se envía como máximo una vez al día.", + "Ready to take control of your finances?": "¿Listo para tomar el control de tus finanzas?", + "Real Estate": "Bienes Raíces", + "Reconnect": "Reconectar", + "Reconnect to resume automatic syncing.": "Reconecta para reanudar la sincronización automática.", + "Recovery Codes": "Códigos de Recuperación", + "Recovery codes": "Códigos de recuperación", + "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Los códigos de recuperación te permiten recuperar acceso si pierdes tu dispositivo 2FA. Guárdalos en un administrador de contraseñas seguro.", + "Recovery codes let you regain access if you lose your 2FA\\n device. Store them in a secure password manager.": "Los códigos de recuperación te permiten recuperar el acceso si pierdes tu dispositivo 2FA. Guárdalos en un gestor de contraseñas seguro.", + "Redirect progress": "Progreso de redirección", + "Redirecting to your dashboard": "Redirigiendo a tu panel", + "Redirecting...": "Redirigiendo...", + "Regenerate Codes": "Regenerar Códigos", + "Register": "Registrarse", + "Regular Security Audits:": "Auditorías de Seguridad Regulares:", + "Remaining": "Restante", + "Remaining balance carries over to next period": "El saldo restante se acumula al siguiente período", + "Remaining balance returns to available money pool": "El saldo restante vuelve al fondo de dinero disponible", + "Remember me": "Recuérdame", + "Remove all labels": "Eliminar todas las etiquetas", + "Rent Payment": "Pago de Alquiler", + "Rent and maintanence": "Alquiler y mantenimiento", + "Resend verification email": "Reenviar correo de verificación", + "Reset password": "Restablecer contraseña", + "Reset/Pool": "Reiniciar/Fondo", + "Residential": "Residencial", + "Retirement": "Jubilación", + "Retirement / Pension": "Jubilación / Pensión", + "Retry": "Reintentar", + "Review and contribute to our open-source codebase on GitHub.": "Revisa y contribuye a nuestro código de código abierto en GitHub.", + "Review matches": "Revisar coincidencias", + "Review transactions before importing": "Revisa las transacciones antes de importar", + "Right of Access:": "Derecho de Acceso:", + "Right to Data Portability:": "Derecho a la Portabilidad de Datos:", + "Right to Erasure:": "Derecho al Olvido:", + "Right to Lodge a Complaint:": "Derecho a Presentar una Queja:", + "Right to Object:": "Derecho a Objetar:", + "Right to Rectification:": "Derecho de Rectificación:", + "Right to Restriction:": "Derecho de Restricción:", + "Right to Withdraw Consent:": "Derecho a Retirar el Consentimiento:", + "Roadmap": "Hoja de Ruta", + "Rollover Type": "Tipo de Transferencia", + "Row": "Fila", + "Rule \":rule\" applied": "Regla \":rule\" aplicada", + "Rule applied to :count transaction(s).": "Regla aplicada a :count transacción(es).", + "Rule title": "Título de regla", + "Rules": "Reglas", + "Rules apply automatically when you import new transactions": "Las reglas se aplican automáticamente cuando importas nuevas transacciones", + "Rules will categorize future transactions for you automatically.": "Las reglas categorizarán las transacciones futuras por ti automáticamente.", + "STARBUCKS@TEKKA PLC": "STARBUCKS@TEKKA PLC", + "Salary": "Salario", + "Sample transactions with a curved scrolling effect": "Transacciones de muestra con efecto de desplazamiento", + "Sarah M.": "Sarah M.", + "Save": "Guardar", + "Save & Sync": "Guardar y Sincronizar", + "Save :percent%": "Ahorra :percent%", + "Save Balance": "Guardar Balance", + "Save Changes": "Guardar Cambios", + "Save money for goals": "Ahorra dinero para tus metas", + "Save password": "Guardar contraseña", + "Saved": "Guardado", + "Saved (cashflow)": "Ahorrado", + "Saved & Invested": "Ahorrado e invertido", + "Share of net cashflow set aside": "Porcentaje del flujo neto destinado", + "Where do these numbers come from?": "¿De dónde salen estos números?", + "These figures come from transactions categorized with a \"saving\" or \"investment\" category type. Make sure you use those category types so all the money set aside is counted here.": "Estas cifras provienen de transacciones categorizadas con un tipo de categoría \"ahorro\" o \"inversión\". Asegúrate de usar esos tipos de categoría para que todo el dinero apartado se contabilice aquí.", + "Saving": "Ahorro", + "Saving...": "Guardando...", + "Savings": "Ahorros", + "Savings Rate": "Tasa de Ahorro", + "Savings Transfer": "Transferencia a Ahorros", + "Savings categories appear as saved money at the top of cashflow and as cash outflow in the cashflow chart. They stay out of income, expenses, and top spending categories.": "Las categorías de ahorro aparecen como dinero ahorrado en la parte superior del flujo de caja y como salida de dinero en el gráfico de flujo de caja. Quedan fuera de ingresos, gastos y categorías con más gasto.", + "Savings categories stay out of income and expense totals in cashflow analytics.": "Las categorías de ahorro quedan fuera de los totales de ingresos y gastos en la analítica de flujo de caja.", + "Savings categories stay out of income, expenses, cashflow totals, and top spending categories.": "Las categorías de ahorro quedan fuera de ingresos, gastos, totales de flujo de caja y categorías con más gasto.", + "Savings rate": "Tasa de ahorro", + "Search": "Buscar", + "Search bank...": "Buscar banco...", + "Search banks...": "Buscar bancos...", + "Search categories...": "Buscar categorías...", + "Search description or notes...": "Buscar descripción o notas...", + "Search disabled (encryption key not set)": "Búsqueda deshabilitada (clave de encriptación no configurada)", + "Search labels...": "Buscar etiquetas...", + "Search or create labels...": "Buscar o crear etiquetas...", + "Search, filter, and categorize with ease. Understand exactly where your money goes.": "Busca, filtra y categoriza con facilidad. Entiende exactamente a dónde va tu dinero.", + "Search, move": "Buscar, mover", + "Searching...": "Buscando...", + "Secret": "Secreto", + "Secure & encrypted": "Seguro y cifrado", + "Secure Storage:": "Almacenamiento Seguro:", + "Secure upload": "Carga segura", + "See balances": "Ver balances", + "See every account in one place. Track balances, monitor changes, and always know where you stand.": "Ve todas tus cuentas en un solo lugar. Sigue los saldos, monitoriza los cambios y sabe siempre cómo estás.", + "See market values": "Ver valores de mercado", + "See owed amounts": "Ver montos adeudados", + "See where you spend": "Ve en qué gastas", + "See where you stand in real-time. Visual progress bars show spending vs. budget.": "Ve tu situación en tiempo real. Las barras de progreso visuales muestran el gasto frente al presupuesto.", + "Select Account": "Seleccionar Cuenta", + "Select a category": "Seleccionar una categoría", + "Select a category (optional)": "Seleccionar una categoría (opcional)", + "Select a color": "Seleccionar un color", + "Select a label": "Seleccionar una etiqueta", + "Select a type": "Seleccionar un tipo", + "Select account": "Seleccionar cuenta", + "Select account type": "Seleccionar tipo de cuenta", + "Select all": "Seleccionar todo", + "Select all transactions": "Seleccionar todas las transacciones", + "Select all transactions matching filter": "Seleccionar todas las transacciones que coinciden con el filtro", + "Select amount column": "Seleccionar columna de valor", + "Select an account": "Selecciona una cuenta", + "Select an icon": "Seleccionar un icono", + "Select at least a category or a label to track.": "Selecciona al menos una categoría o etiqueta para rastrear.", + "Select balance column": "Seleccionar columna de balance", + "Select balance column (optional)": "Seleccionar columna de balance (opcional)", + "Select bank...": "Seleccionar banco...", + "Select categories...": "Seleccionar categorías...", + "Select country": "Seleccionar país", + "Select creditor column (optional)": "Seleccionar columna de acreedor (opcional)", + "Select currency": "Seleccionar moneda", + "Select date column": "Seleccionar columna de fecha", + "Select debtor column (optional)": "Seleccionar columna de deudor (opcional)", + "Select description column": "Seleccionar columna de descripción", + "Select invested amount column (optional)": "Seleccionar columna de cantidad invertida (opcional)", + "Select labels": "Seleccionar etiquetas", + "Select labels (optional)": "Seleccionar etiquetas (opcional)", + "Select labels...": "Seleccionar etiquetas...", + "Select language": "Seleccionar idioma", + "Select owed amount column": "Seleccionar columna de monto adeudado", + "Select property type": "Seleccionar tipo de propiedad", + "Select row": "Seleccionar fila", + "Select start of month": "Selecciona el inicio del mes", + "Select the country where your bank is located.": "Selecciona el país donde está ubicado tu banco.", + "Select unit": "Seleccionar unidad", + "Select your bank.": "Selecciona tu banco.", + "Select your country and bank to get started.": "Selecciona tu país y banco para empezar.", + "Selected": "Seleccionado", + "Selected account not found": "Cuenta seleccionada no encontrada", + "Self-Employment Income": "Ingresos por Cuenta Propia", + "Service Availability:": "Disponibilidad del Servicio:", + "Session only": "Solo sesión", + "Session only (more secure)": "Solo sesión (más seguro)", + "Set Account Balance": "Establecer Balance de Cuenta", + "Set Balance": "Establecer Balance", + "Set Category": "Establecer Categoría", + "Set Your Goals": "Establece Tus Objetivos", + "Set budgets, track your goals, and see how your money is working for you. Whether you're cutting costs or growing your wealth, Whisper Money helps you make better decisions.": "Establece presupuestos, sigue tus objetivos y ve cómo trabaja tu dinero para ti. Ya sea que estés recortando gastos o haciendo crecer tu patrimonio, Whisper Money te ayuda a tomar mejores decisiones.", + "Set interest rate, term, and amount to track amortization.": "Configura el tipo de interés, plazo y monto para seguir la amortización.", + "Set spending limits and get real-time updates on your financial goals.": "Establece límites de gasto y obtén actualizaciones en tiempo real sobre tus metas financieras.", + "Set the balance for this account on a specific date.": "Actualiza el balance de esta cuenta.", + "Set the current balance for this account to start tracking.": "Establece el balance actual de esta cuenta para empezar a rastrear.", + "Set the owed amount for this account on a specific date.": "Establece el monto adeudado de esta cuenta en una fecha específica.", + "Set up a spending limit for a category or label.": "Configura un límite de gasto para un categoría o etiqueta.", + "Set your budget goals": "Establece tus objetivos de presupuesto", + "Setting things up...": "Configurando...", + "Setting up encryption...": "Configurando encriptación...", + "Settings": "Configuración", + "Settings > Applications": "Configuración > Aplicaciones", + "Setup Encryption": "Configura tu encriptación", + "Share": "Compartir", + "Share Your Link": "Comparte Tu Enlace", + "Share Your Link Again": "Comparte Tu Enlace de Nuevo", + "Share it with anyone who cares about their financial privacy — friends, family, your group chat. Each sign-up is 10 spots closer to the front.": "Compártelo con quien valore su privacidad financiera — amigos, familia, tu grupo de chat. Cada registro son 10 puestos más cerca del frente.", + "Share it with friends, family, or anyone who cares about their financial privacy. Every sign-up moves you 10 spots closer to the front.": "Compártelo con amigos, familia o cualquier persona que valore su privacidad financiera. Cada registro te acerca 10 puestos al frente.", + "Share your personal link. Every person who joins through it moves you 10 positions forward.": "Comparte tu enlace personal. Cada persona que se una a través de él te adelanta 10 posiciones.", + "Shared": "Compartido", + "Shared with": "Compartido con", + "Shopping (Clothing, Electronics, Gifts)": "Compras (Ropa, Electrónica, Regalos)", + "Show as cash inflow": "Mostrar como entrada de dinero", + "Show password": "Mostrar contraseña", + "Show subcategories": "Mostrar subcategorías", + "Show as cash outflow": "Mostrar como salida de dinero", + "Show in account currency (:currency)": "Mostrar en moneda de la cuenta (:currency)", + "Show in cashflow chart as inflow": "Mostrar en el gráfico de flujo de caja como entrada", + "Show in cashflow chart as outflow": "Mostrar en el gráfico de flujo de caja como salida", + "Show in your currency (:currency)": "Mostrar en tu moneda (:currency)", + "Show this transfer category as money entering available cash.": "Muestra esta categoría de transferencia como dinero que entra en el saldo disponible.", + "Show this transfer category as money leaving available cash.": "Muestra esta categoría de transferencia como dinero que sale del saldo disponible.", + "Sign up": "Crear cuenta", + "Simple, transparent pricing": "Precios simples y transparentes", + "Single-use. Works on monthly or yearly plans. Tied to your email — please keep it private.": "Un solo uso. Funciona con el plan mensual o anual. Está vinculado a tu email — guárdalo en privado.", + "Skip": "Saltar", + "Skip for now": "Omitir por ahora", + "Smart Automation": "Automatización Inteligente", + "Smart Automation Rules": "Reglas automáticas", + "Smart Budgets": "Presupuestos Inteligentes", + "Smart Categorization": "Categorización Inteligente", + "Smart Rules": "Reglas Inteligentes", + "Smart budgeting": "Presupuestos inteligentes", + "Smart categorization": "Categorización inteligente", + "Someone just joined Whisper Money with your link!": "¡Alguien acaba de unirse a Whisper Money con tu enlace!", + "Someone just joined with your link!": "¡Alguien se acaba de unir con tu enlace!", + "Someone just overtook you in the Whisper Money queue!": "¡Alguien te acaba de adelantar en la lista de espera de Whisper Money!", + "Someone just overtook you in the queue!": "¡Alguien te acaba de adelantar en la fila!", + "Someone just signed up to the Whisper Money waiting list using **your referral link**. We've moved you **10 positions forward** in the queue as a thank you.": "Alguien acaba de registrarse en la lista de espera de Whisper Money usando **tu enlace de referido**. Te hemos adelantado **10 posiciones** en la fila como agradecimiento.", + "Someone on the Whisper Money waiting list just invited a friend, which moved them ahead of you in the queue.": "Alguien en la lista de espera de Whisper Money acaba de invitar a un amigo, lo que le ha adelantado en la fila.", + "Something not working?": "¿Algo no funciona?", + "Spending exceeds income this period.": "El gasto excede el ingreso en este período.", + "Spent": "Gastado", + "Spent:": "Gastado:", + "Spot savings opportunities": "Identifica oportunidades de ahorro", + "Square images only (max": "Solo imágenes cuadradas (máx", + "Standard": "Estandar", + "Standard Plan required": "Plan Standard requerido", + "Start Date": "Fecha de Inicio", + "Start Day": "Día de inicio", + "Start Day of Month": "Día de inicio del mes", + "Start My Financial Journey": "Comenzar Mi Viaje Financiero", + "Start Your Financial Journey": "Comienza Tu Viaje Financiero", + "Start managing your money privately. No credit card required.": "Empieza a gestionar tu dinero de forma privada. No se requiere tarjeta de crédito.", + "Start of month": "Inicio del mes", + "Start with this category and transaction description.": "Empieza con esta categoría y descripción de transacción.", + "Starting day": "Día de inicio", + "Statement": "Extracto", + "Status": "Estado", + "Stay on Track": "Mantente en el Camino", + "Step 1: Export from your bank": "Paso 1: Exporta desde tu banco", + "Step 2: Upload to Whisper Money": "Paso 2: Sube a Whisper Money", + "Step 3: Review and confirm": "Paso 3: Revisa y confirma", + "Still interested in Whisper Money?": "¿Sigues interesado en Whisper Money?", + "Still want to try Whisper Money?": "¿Todavía quieres probar Whisper Money?", + "Stocks, ETFs, and portfolios": "Acciones, ETFs y carteras", + "Storage Preference": "Preferencia de Almacenamiento", + "Strict access controls and authentication mechanisms protect against unauthorized access": "Controles de acceso estrictos y mecanismos de autenticación protegen contra acceso no autorizado", + "Strong": "Fuerte", + "Subscription fees are billed in advance on a recurring basis until cancelled": "Las tarifas de suscripción se facturan por adelantado de forma recurrente hasta que se cancele", + "Subscription fees are billed in advance on a\\n recurring basis until cancelled": "Las tarifas de suscripción se facturan por adelantado de forma recurrente hasta que se cancelen", + "Supported formats": "Formatos soportados", + "Supports CSV, XLS, and XLSX files": "Soporta archivos CSV, XLS y XLSX", + "Swiss Franc": "Franco suizo", + "Switch to daily view": "Cambiar a vista diaria", + "Switch to monthly view": "Cambiar a vista mensual", + "Sync Now": "Sincronizar Ahora", + "Sync now": "Sincronizar ahora", + "Sync transactions and balances automatically. Forget about manually importing CSVs from your bank.": "Sincroniza transacciones y saldos automáticamente. Olvídate de importar CSVs manualmente desde tu banco.", + "Sync your encrypted financial data across multiple devices via cloud storage": "Sincroniza tus datos financieros encriptados en múltiples dispositivos a través de almacenamiento en la nube", + "Sync your encrypted financial data across\\n multiple devices via cloud storage": "Sincroniza tus datos financieros cifrados en varios dispositivos a través del almacenamiento en la nube", + "Syncing": "Sincronizando", + "Syncing balances…": "Sincronizando balances…", + "Syncing transactions and balances…": "Sincronizando transacciones y balances…", + "System": "Sistema", + "Take control of your finances with privacy-first money tracking. Let's set up your account in just a few minutes.": "Toma el control de tus finanzas con un seguimiento privado de tu dinero. Vamos a configurar tu cuenta en pocos minutos.", + "Tap": "Toca", + "Tap the": "Toca el botón", + "Teaching the robots to count...": "Enseñándole a los robots a contar...", + "Technical Information:": "Información Técnica:", + "Terms of Service": "Términos de Servicio", + "Terms of Service - Whisper Money": "Términos de Servicio - Whisper Money", + "Terms of service for Whisper Money. Review the rules and regulations for using our platform.": "Términos de servicio de Whisper Money. Revisa las reglas y regulaciones para usar nuestra plataforma.", + "Terms of service for Whisper Money. Review the rules and regulations for using our secure personal finance platform.": "Términos de servicio de Whisper Money. Revisa las reglas y regulaciones para usar nuestra plataforma segura de finanzas personales.", + "Thanks again for being part of this journey!": "¡Gracias de nuevo por ser parte de este viaje!", + "Thanks for being interested in what we're building!": "¡Gracias por estar interesado en lo que estamos construyendo!", + "Thanks for being one of the first.": "Gracias por estar entre los primeros.", + "Thanks for being part of Whisper Money. It really means a lot.": "Gracias por ser parte de Whisper Money. Realmente significa mucho.", + "Thanks for being part of this journey with me!": "¡Gracias por ser parte de este viaje conmigo!", + "Thanks for being part of this journey with us!": "¡Gracias por ser parte de este camino con nosotros!", + "Thanks for giving Whisper Money a try!": "¡Gracias por probar Whisper Money!", + "Thanks for giving Whisper Money a try. It means a lot to me.": "Gracias por probar Whisper Money. Significa mucho para mí.", + "Thanks for giving Whisper Money a try. It means a lot to us.": "Gracias por darle una oportunidad a Whisper Money. Significa mucho para nosotros.", + "Thanks for signing up — I just need you to verify your email address to get started.": "Gracias por registrarte — solo necesito que verifiques tu dirección de correo electrónico para comenzar.", + "Thanks for signing up — we just need you to verify your email address to get started.": "Gracias por registrarte — solo necesitamos que verifiques tu dirección de correo electrónico para comenzar.", + "Thanks for spreading the word.": "Gracias por correr la voz.", + "Thanks for spreading the word. It means everything to us.": "Gracias por correr la voz. Significa todo para nosotros.", + "The Whisper Money name and logo are trademarks of Whisper Money. You may not use these trademarks without our prior written consent.": "El nombre y logo de Whisper Money son marcas registradas de Whisper Money. No puedes usar estas marcas sin nuestro consentimiento previo por escrito.", + "The Whisper Money name and logo are trademarks\\n of Whisper Money. You may not use these\\n trademarks without our prior written consent.": "El nombre y el logotipo de Whisper Money son marcas registradas de Whisper Money. No puedes usar estas marcas sin nuestro consentimiento previo por escrito.", + "The Whisper Money platform, including its software, design, text, graphics, logos, and other content (excluding your personal data), is owned by Whisper Money and protected by copyright, trademark, and other intellectual property laws. You may not copy, modify, distribute, sell, or lease any part of our service or software without our explicit written permission.": "La plataforma Whisper Money, incluyendo su software, diseño, texto, gráficos, logos y otro contenido (excluyendo tus datos personales), es propiedad de Whisper Money y está protegida por derechos de autor, marcas registradas y otras leyes de propiedad intelectual. No puedes copiar, modificar, distribuir, vender o arrendar ninguna parte de nuestro servicio o software sin nuestro permiso explícito por escrito.", + "The Whisper Money platform, including its\\n software, design, text, graphics, logos, and\\n other content (excluding your personal data), is\\n owned by Whisper Money and protected by\\n copyright, trademark, and other intellectual\\n property laws. You may not copy, modify,\\n distribute, sell, or lease any part of our\\n service or software without our explicit written\\n permission.": "La plataforma Whisper Money, incluyendo su software, diseño, texto, gráficos, logotipos y otro contenido (excluyendo tus datos personales), es propiedad de Whisper Money y está protegida por leyes de derechos de autor, marcas registradas y otras leyes de propiedad intelectual. No puedes copiar, modificar, distribuir, vender ni arrendar ninguna parte de nuestro servicio o software sin nuestro permiso expreso por escrito.", + "The automation rules save me so much time. And knowing my data is private? Priceless.": "Las reglas de automatización me ahorran mucho tiempo. ¿Y saber que mis datos son privados? No tiene precio.", + "The budgeting features are intuitive and the dark mode is gorgeous. Best finance app I've used.": "Las funciones de presupuesto son intuitivas y el modo oscuro es hermoso. La mejor app de finanzas que he usado.", + "The demo account cannot be deleted.": "La cuenta demo no se puede eliminar.", + "The good news? You can do exactly the same thing — share your personal link and jump **10 positions forward** for every person who joins through it.": "¿La buena noticia? Puedes hacer exactamente lo mismo — comparte tu enlace personal y avanza **10 posiciones** por cada persona que se una a través de él.", + "The import feature saved me hours. Got all my transactions in seconds.": "La función de importación me ahorró horas. Obtuve todas mis transacciones en segundos.", + "The legal basis for processing your data includes: performance of our contract with you, your consent, our legitimate interests in improving the service, and compliance with legal obligations.": "La base legal para procesar tus datos incluye: ejecución de nuestro contrato contigo, tu consentimiento, nuestros intereses legítimos en mejorar el servicio y cumplimiento de obligaciones legales.", + "The legal basis for processing your data\\n includes: performance of our contract with you,\\n your consent, our legitimate interests in\\n improving the service, and compliance with legal\\n obligations.": "La base legal para procesar tus datos incluye: la ejecución de nuestro contrato contigo, tu consentimiento, nuestros intereses legítimos en mejorar el servicio y el cumplimiento de obligaciones legales.", + "The most secure personal finance app. Your data is never shared with third parties. Track expenses, create budgets, and manage your money privately.": "La app más segura de finanzas personales. Tus datos nunca se comparten con terceros. Rastrea gastos, crea presupuestos y administra tu dinero de forma privada.", + "The most secure privacy-first personal finance app. Track expenses, create budgets, and manage your money privately.": "La aplicación de finanzas personales más segura y centrada en la privacidad. Realiza un seguimiento de gastos, crea presupuestos y gestiona tu dinero de forma privada.", + "The most secure way to understand your finances": "La forma más segura de entender tus finanzas", + "The provider is experiencing issues. Please try again later.": "El proveedor está teniendo problemas. Inténtalo de nuevo más tarde.", + "The rule was saved. Optionally apply it to your existing transactions.": "La regla se guardó. Opcionalmente, aplícala a tus transacciones existentes.", + "The selected property cannot be linked.": "La propiedad seleccionada no se puede vincular.", + "The selected property is already linked to a loan.": "La propiedad seleccionada ya está vinculada a un préstamo.", + "The verification link is invalid.": "El enlace de verificación no es válido.", + "Theatre, music, cinema": "Teatro, música, cine", + "There are different account types. Some track transactions, others just track balance over time.": "Hay diferentes tipos de cuenta. Algunas rastrean transacciones, otras solo rastrean el balance a lo largo del tiempo.", + "These Terms of Service govern your use of the Whisper Money personal finance platform.": "Estos Términos de Servicio rigen tu uso de la plataforma de finanzas personales Whisper Money.", + "These Terms of Service govern your use of the\\n Whisper Money personal finance platform.": "Estos Términos de Servicio rigen tu uso de la plataforma de finanzas personales Whisper Money.", + "These Terms, together with our Privacy Policy, constitute the entire agreement between you and Whisper Money regarding the use of our service and supersede any prior agreements or understandings, whether written or oral.": "Estos Términos, junto con nuestra Política de Privacidad, constituyen el acuerdo completo entre tú y Whisper Money con respecto al uso de nuestro servicio y reemplazan cualquier acuerdo o entendimiento previo, ya sea escrito u oral.", + "These Terms, together with our Privacy Policy,\\n constitute the entire agreement between you and\\n Whisper Money regarding the use of our service\\n and supersede any prior agreements or\\n understandings, whether written or oral.": "Estos Términos, junto con nuestra Política de Privacidad, constituyen el acuerdo completo entre tú y Whisper Money respecto al uso de nuestro servicio y reemplazan cualquier acuerdo o entendimiento previo, ya sea escrito u oral.", + "This account tracks balance changes over time instead of individual transactions.": "Esta cuenta rastrea cambios de balance a lo largo del tiempo en lugar de transacciones individuales.", + "This account type is for balance tracking only and doesn't support transactions.": "Este tipo de cuenta es solo para rastreo de balance y no soporta transacciones.", + "This account type is for balance tracking only and\\n doesn't support transactions.": "Este tipo de cuenta es solo para seguimiento de saldo y no admite transacciones.", + "This action cannot be undone.": "Esta acción no se puede deshacer.", + "This action cannot be undone. To confirm, type": "Esta acción no se puede deshacer. Para confirmar, escribe", + "This action is irreversible. All transactions in this account will also be permanently deleted.": "Esta acción es irreversible. Todas las transacciones en esta cuenta también serán eliminadas permanentemente.", + "This code won't last forever, but more importantly, your support means the world to me. As a solo founder, every subscriber helps me continue building something I'm passionate about.": "Este código no durará para siempre, pero lo más importante es que tu apoyo significa mucho para mí. Como fundador en solitario, cada suscriptor me ayuda a seguir construyendo algo que me apasiona.", + "This code won't last forever, but more importantly, your support means the world to us. As the founders, every subscriber helps us continue building something we're passionate about.": "Este código no durará para siempre, pero lo más importante es que tu apoyo significa mucho para nosotros. Como fundadores, cada suscriptor nos ayuda a seguir construyendo algo que nos apasiona.", + "This connection has :count associated account(s). What would you like to do with them?": "Esta conexión tiene :count cuenta(s) asociada(s). ¿Qué te gustaría hacer con ellas?", + "This field is required.": "Este campo es obligatorio.", + "This gives you full access to all Whisper Money features:": "Esto te da acceso completo a todas las funciones de Whisper Money:", + "This is a secure area of the application. Please confirm your password before continuing.": "Esta es un área segura de la aplicación. Por favor confirma tu contraseña antes de continuar.", + "This is your exclusive invitation to get full access to everything:": "Esta es tu invitación exclusiva para obtener acceso completo a todo:", + "This month's income and expenses": "Ingresos y gastos de este mes", + "This password will encrypt all your financial data. Make it strong and memorable — we can't recover it for you.": "Esta contraseña encriptará todos tus datos financieros. Hazla fuerte y memorable: no podemos recuperarla por ti.", + "This setting follows the selected category type and cannot be changed here.": "Esta configuración sigue el tipo de categoría seleccionado y no se puede cambiar aquí.", + "This transaction was imported from a file. The description cannot be modified.": "Esta transacción fue importada de un archivo. La descripción no se puede modificar.", + "This transaction was imported from a\\n file. The description cannot be\\n modified.": "Esta transacción fue importada desde un archivo. La descripción no se puede modificar.", + "This transfer category stays out of the Sankey money flow chart.": "Esta categoría de transferencia queda fuera del gráfico Sankey de flujo de dinero.", + "This transfer category stays out of the cashflow chart.": "Esta categoría de transferencia queda fuera del gráfico de flujo de caja.", + "This will only take a moment.": "Esto solo tardará un momento.", + "This will remove your encryption key from this browser session. You'll need to enter your password again to unlock encrypted content.": "Esto eliminará tu clave de encriptación de esta sesión del navegador. Necesitarás ingresar tu contraseña nuevamente para desbloquear el contenido encriptado.", + "This will revoke access to your bank account data from :bank.": "Esto revocará el acceso a los datos de tu cuenta bancaria de :bank.", + "This will take less than 5 minutes": "Esto tomará menos de 5 minutos", + "This will update the allocated amount for the current and future periods.": "Esto actualizará el valor asignado para el período actual y futuro.", + "This will update the allocated amount for the\\n current and future periods.": "Esto actualizará el monto asignado para los períodos actuales y futuros.", + "This would mean sharing your data with third parties": "Esto significaría compartir tus datos con terceros", + "Title": "Título", + "To": "Para", + "To authenticate your access and protect your account security": "Para autenticar tu acceso y proteger la seguridad de tu cuenta", + "To authenticate your access and protect your\\n account security": "Para autenticar tu acceso y proteger la seguridad de tu cuenta", + "To comply with legal obligations and enforce our terms": "Para cumplir con obligaciones legales y hacer cumplir nuestros términos", + "To comply with legal obligations and enforce\\n our terms": "Para cumplir con las obligaciones legales y hacer cumplir nuestros términos", + "To continue, you need to categorize at least :count transactions.": "Para continuar, debes categorizar al menos :count transacciones.", + "To enable cloud synchronization of your encrypted financial data across devices": "Para habilitar la sincronización en la nube de tus datos financieros encriptados entre dispositivos", + "To enable cloud synchronization of your\\n encrypted financial data across devices": "Para habilitar la sincronización en la nube de tus datos financieros cifrados entre dispositivos", + "To exercise any of these rights, please contact us at victor@whisper.money. We will respond to your request within 30 days.": "Para ejercer cualquiera de estos derechos, por favor contáctanos en victor@whisper.money. Responderemos a tu solicitud dentro de 30 días.", + "To exercise any of these rights, please contact\\n us at victor@whisper.money. We will respond to\\n your request within 30 days.": "Para ejercer cualquiera de estos derechos, contáctanos en victor@whisper.money. Responderemos a tu solicitud en un plazo de 30 días.", + "To fix this, generate a new API token from your :provider account and update it in your connection settings.": "Para solucionar esto, genera un nuevo token API desde tu cuenta de :provider y actualízalo en la configuración de tu conexión.", + "To improve and optimize our service based on usage patterns": "Para mejorar y optimizar nuestro servicio basándonos en patrones de uso", + "To improve and optimize our service based on\\n usage patterns": "Para mejorar y optimizar nuestro servicio basándonos en los patrones de uso", + "To process payments for premium features or subscriptions": "Para procesar pagos por funciones premium o suscripciones", + "To process payments for premium features or\\n subscriptions": "Para procesar pagos por funciones premium o suscripciones", + "To process subscription payments and transactions. These processors have access only to the information necessary to perform their functions and are obligated to protect your data": "Para procesar pagos de suscripción y transacciones. Estos procesadores tienen acceso solo a la información necesaria para realizar sus funciones y están obligados a proteger tus datos", + "To send transactional emails, password resets, and service notifications": "Para enviar correos transaccionales, restablecimientos de contraseña y notificaciones del servicio", + "To send you service-related notifications, updates, and security alerts via email": "Para enviarte notificaciones relacionadas con el servicio, actualizaciones y alertas de seguridad por correo electrónico", + "To send you service-related notifications,\\n updates, and security alerts via email": "Para enviarte notificaciones relacionadas con el servicio, actualizaciones y alertas de seguridad por correo electrónico", + "To\\n process subscription payments and\\n transactions. These processors have access\\n only to the information necessary to perform\\n their functions and are obligated to protect\\n your data": "Para procesar pagos de suscripciones y transacciones. Estos procesadores tienen acceso solo a la información necesaria para realizar sus funciones y están obligados a proteger tus datos", + "To\\n send transactional emails, password resets,\\n and service notifications": "Para enviar correos transaccionales, restablecimientos de contraseña y notificaciones del servicio", + "Today": "Hoy", + "Toggle theme": "Cambiar tema", + "Top Spending Categories": "Principales Categorías de Gasto", + "Top spending categories": "Principales categorías de gasto", + "Total": "Total", + "Total money you put into this account. Used to calculate gains/losses.": "Dinero total que has puesto en esta cuenta. Usado para calcular ganancias/pérdidas.", + "Track Progress": "Seguir el Progreso", + "Track all your finances in one place \\u2014 checking,\\n savings, credit cards, investments, and more.": "Realiza un seguimiento de todas tus finanzas en un solo lugar: cuentas corrientes, ahorros, tarjetas de crédito, inversiones y más.", + "Track all your finances in one place — checking, savings, credit cards, investments, and more.": "Rastrea todas tus finanzas en un solo lugar: cuenta corriente, ahorros, tarjetas de crédito, inversiones y más.", + "Track credit card spending": "Rastrea los gastos de tarjeta de crédito", + "Track money entering your available cash without counting it as income.": "Sigue el dinero que entra en tu saldo disponible sin contarlo como ingreso.", + "Track money leaving your available cash, like investments or savings transfers.": "Sigue el dinero que sale de tu saldo disponible, como inversiones o transferencias a ahorros.", + "Track your budget progress": "Sigue el progreso de tu presupuesto", + "Track your income, expenses, and savings": "Rastrea tus ingresos, gastos y ahorros", + "Track your property market value over time. Transactions are not supported.": "Rastrea el valor de mercado de tu propiedad a lo largo del tiempo. Las transacciones no están soportadas.", + "Track your spending with flexible budgets": "Rastrea tus gastos con presupuestos flexibles", + "Tracked Inflows": "Entradas seguidas", + "Tracked Outflows": "Salidas seguidas", + "Tracked transfers appear in the money flow Sankey chart. They are not counted as income or expenses.": "Las transferencias seguidas aparecen en el diagrama Sankey de flujo de dinero. No se cuentan como ingresos ni gastos.", + "Tracked transfers appear only in the monthly cashflow trend. They are not counted as income, expenses, or shown in the money flow Sankey.": "Las transferencias seguidas solo aparecen en la tendencia mensual del flujo de caja. No cuentan como ingresos ni gastos, ni se muestran en el Sankey de flujo de dinero.", + "Tracking": "Seguimiento", + "Tracking spending for": "Rastreando gastos para", + "Tracking:": "Seguimiento:", + "Transaction": "Transacción", + "Transaction Date": "Fecha transaccion", + "Transaction categorized": "Transacción categorizada", + "Transaction created successfully": "Transacción creada exitosamente", + "Transaction created, but failed to update balance": "Transacción creada, pero no se pudo actualizar el balance", + "Transaction description": "Descripción", + "Transaction details, budgets, categories, and other financial information you manually enter into the application": "Detalles de transacciones, presupuestos, categorías y otra información financiera que ingresas manualmente en la aplicación", + "Transaction updated successfully": "Transacción actualizada exitosamente", + "Transaction\\n details, budgets, categories, and other\\n financial information you manually enter\\n into the application": "Detalles de transacciones, presupuestos, categorías y otra información financiera que introduces manualmente en la aplicación", + "Transactions": "Transacciones", + "Transactions + Balance": "Transacciones + Balance", + "Transactions in the deleted categories will become uncategorized.": "Las transacciones de las categorías eliminadas quedarán sin categoría.", + "Transactions in this category will not be counted in top expenses or income. Transfer categories are mainly used for transactions between accounts.": "Las transacciones en esta categoría no se contarán entre los principales gastos o ingresos. Las categorías de transferencia se usan principalmente para transacciones entre cuentas.", + "Transactions in this category will\\n not be counted in top expenses or\\n income. Transfer categories are\\n mainly used for transactions between\\n accounts.": "Las transacciones en esta categoría no se contarán entre los principales gastos o ingresos. Las categorías de transferencia se usan principalmente para transacciones entre cuentas.", + "Transfer": "Transferencia", + "Transfer categories are excluded from income, expenses, and top spending categories. Choose whether to show them in the Sankey money flow chart.": "Las categorías de transferencia se excluyen de ingresos, gastos y categorías con más gasto. Elige si quieres mostrarlas en el gráfico Sankey de flujo de dinero.", + "Transfer categories are excluded from income, expenses, and top spending categories. Choose whether to show them in the cashflow chart.": "Las categorías de transferencia se excluyen de ingresos, gastos y categorías con más gasto. Elige si quieres mostrarlas en el gráfico de flujo de caja.", + "Transfer categories stay out of income and expense totals, but you can still track them in the money flow chart.": "Las categorías de transferencia quedan fuera de los totales de ingresos y gastos, pero aún puedes seguirlas en el gráfico de flujo de dinero.", + "Transfer categories stay out of income and expense totals, but you can still track them in the monthly chart.": "Las categorias de transferencia quedan fuera de los totales de ingresos y gastos, pero aun puedes seguirlas en el grafico mensual.", + "Transfers (Between accounts, Savings)": "Transferencias (Entre cuentas, Ahorros)", + "Transportation": "Transporte", + "Transportation (Fuel, Public Transit, Parking)": "Transporte (Combustible, Transporte público, Aparcamiento)", + "Trusted by people who value their privacy": "Confiado por personas que valoran su privacidad", + "Trusted by thousands of users": "Confiado por miles de usuarios", + "Two-Factor Authentication": "Autenticación en dos pasas", + "Two-factor authentication settings cannot be changed on the demo account.": "La configuración de autenticación de dos factores no se puede cambiar en la cuenta demo.", + "Two-factor authentication settings cannot be\\n changed on the demo account.": "La configuración de autenticación de dos factores no se puede cambiar en la cuenta de demostración.", + "Type": "Tipo", + "Type \"delete all\" to confirm:": "Escribe \"delete all\" para confirmar:", + "Type :word to confirm.": "Escribe :word para confirmar.", + "Type DELETE": "Escribe ELIMINAR", + "Type at least 3 characters to search": "Escribe al menos 3 caracteres para buscar", + "US Dollar": "Dólar estadounidense", + "Uncategorized": "Sin categorizar", + "Understand Your Finances": "Entiende Tus Finanzas", + "Understand your finances and make better decisions without the friction. Track expenses, create budgets, and achieve your goals\\u2014all in one place.": "Entiende tus finanzas y toma mejores decisiones sin complicaciones. Registra gastos, crea presupuestos y alcanza tus objetivos, todo en un solo lugar.", + "Understand your finances and make better decisions without the friction. Track expenses, create budgets, and achieve your goals—all in one place.": "Entiende tus finanzas para tomar mejores decisiones sin fricción. Rastrea gastos, crea presupuestos y alcanza tus metas, todo en un solo sitio.", + "Understand your spending with beautiful charts and reports.": "Entiende tus gastos con gráficos y reportes hermosos.", + "Understanding Categories": "Entendiendo las Categorías", + "Unit": "Unidad", + "Unknown Bank": "Banco desconocido", + "Unknown Expense": "Gasto desconocido", + "Unknown Income": "Ingreso desconocido", + "Unknown error": "Error desconocido", + "Unlimited Everything": "Sin Límites en Todo", + "Unlimited accounts": "Cuentas ilimitadas", + "Unlimited transaction imports": "Importaciones de transacciones ilimitadas", + "Unlimited transactions": "Transacciones ilimitadas", + "Unlock": "Desbloquear", + "Unlock Encrypted Data": "Desbloquear Datos Encriptados", + "Unlock all features and take full control of your finances.": "Desbloquea todas las funciones y toma el control total de tus finanzas.", + "Unlock encryption key": "Desbloquear clave de encriptación", + "Unlock encryption to add transactions": "Desbloquea la encriptación crear una transacción", + "Unlock encryption to import transactions": "Desbloquea la encriptación para importar transacciones", + "Unused budget will carry over to the next period.": "El presupuesto no utilizado se acumulará al siguiente período.", + "Update": "Actualizar", + "Update Credentials": "Actualizar Credenciales", + "Update account balance": "Actualizar balance de cuenta", + "Update balance": "Actualizar balance", + "Update balances periodically to track growth": "Actualiza los balances periódicamente para rastrear el crecimiento", + "Update categories automatically": "Actualizar categorías automáticamente", + "Update market value": "Actualizar valor de mercado", + "Update owed amount": "Actualizar monto adeudado", + "Update password": "Actualizar contraseña", + "Update payment": "Actualizar pago", + "Update the account information.": "Actualiza la información de la cuenta.", + "Update the balance record.": "Actualiza el registro de balance.", + "Update the category and notes for this transaction.": "Actualiza la categoría y notas de esta transacción.", + "Update the category information.": "Actualiza la información de la categoría.", + "Update the current balance of the affected manual accounts to reflect this change.": "Actualiza el saldo actual de las cuentas manuales afectadas para reflejar este cambio.", + "Update the current balance of the manual account to reflect this change.": "Actualiza el saldo actual de la cuenta manual para reflejar este cambio.", + "Update the label information.": "Actualiza la información de la etiqueta.", + "Update the owed amount record.": "Actualiza el registro de monto adeudado.", + "Update the rule to automatically categorize transactions and add labels.": "Actualiza la regla para categorizar automáticamente transacciones y agregar etiquetas.", + "Update the rule to automatically categorize transactions.": "Actualiza la regla para categorizar transacciones automáticamente.", + "Update your account's appearance settings": "Actualiza la configuración de apariencia de tu cuenta", + "Update your budget settings. To change the allocated amount or tracking, use the budget page directly.": "Actualiza la configuración de tu presupuesto. Para cambiar el valor asignado o el seguimiento, usa la página de presupuesto directamente.", + "Update your budget settings. To change the allocated\\n amount or tracking, use the budget page directly.": "Actualiza la configuración de tu presupuesto. Para cambiar el monto asignado o el seguimiento, usa la página de presupuesto directamente.", + "Update your name and email address": "Actualiza tu nombre y dirección de correo electrónico", + "Updated :count transactions": "Se actualizaron :count transacciones", + "Updating transactions...": "Actualizando transacciones...", + "Updating...": "Actualizando...", + "Upgrade to Standard Plan": "Actualizar al Plan Standard", + "Upload File": "Subir Archivo", + "Upon termination, we will delete your personal data in accordance with our Privacy Policy and applicable law, typically within 30 days.": "Al cancelar, eliminaremos tus datos personales de acuerdo con nuestra Política de Privacidad y la ley aplicable, típicamente dentro de 30 días.", + "Upon termination, we will delete your personal\\n data in accordance with our Privacy Policy and\\n applicable law, typically within 30 days.": "Tras la terminación, eliminaremos tus datos personales de acuerdo con nuestra Política de Privacidad y la ley aplicable, normalmente en un plazo de 30 días.", + "Uruguayan Peso": "Peso uruguayo", + "Usage Information:": "Información de Uso:", + "Use Defaults": "Usar Valores Predeterminados", + "Use a negative value for expenses (e.g. -21.99) and a positive value for income.": "Usa un valor negativo para gastos (ej. -21,99) y un valor positivo para ingresos.", + "Use a strong password (minimum 12 characters). This password will encrypt your data.": "Usa una contraseña fuerte (mínimo 12 caracteres). Esta contraseña encriptará tus datos.", + "Use a strong password (minimum 12 characters). This\\n password will encrypt your data.": "Usa una contraseña segura (mínimo 12 caracteres). Esta contraseña cifrará tus datos.", + "Use a view-only key.": "Usa una clave de solo lectura.", + "Use code **:code** to get **80% off** your first period (monthly or yearly!)": "Usa el código **:code** para obtener **80% de descuento** en tu primer período (¡mensual o anual!)", + "Use code **CONTINUE50** to get **50% off** all current and future payments - works for both monthly and yearly subscriptions.": "Usa el código **CONTINUE50** para obtener **50% de descuento** en todos los pagos actuales y futuros, funciona para suscripciones mensuales y anuales.", + "Use the balance on the latest transaction date as a reference to compute balances for older dates.": "Usa el balance de la fecha de la última transacción como referencia para calcular los balances de fechas anteriores.", + "Use the service only for lawful purposes and in compliance with all applicable laws": "Usa el servicio solo para fines legales y en cumplimiento de todas las leyes aplicables", + "Use the service only for lawful purposes and\\n in compliance with all applicable laws": "Usa el servicio solo para fines legales y de conformidad con todas las leyes aplicables", + "User account": "Cuenta de usuario", + "Vacation": "Vacacional", + "Value": "Valor", + "Venezuelan Bolívar": "Bolívar venezolano", + "Verify Email Address": "Verificar Correo Electrónico", + "Verify Your Email - Whisper Money": "Verifica Tu Email - Whisper Money", + "Verify email": "Verificar correo electrónico", + "Verify your email, :name!": "¡Verifica tu correo, :name!", + "Version:": "Versión:", + "View Details": "Ver Detalles", + "View Transactions": "Ver Transacciones", + "View and manage balance records for this account.": "Ver y gestionar registros de balance para esta cuenta.", + "View and manage owed amount records for this account.": "Ver y gestionar registros de monto adeudado para esta cuenta.", + "View and manage your bank accounts": "Ver y administrar tus cuentas bancarias", + "View and manage your transactions": "Ver y gestionar tus transacciones", + "View balance evolution over time": "Ver evolución del balance a lo largo del tiempo", + "View details": "Ver detalles", + "View in Transactions": "Ver en Transacciones", + "Visual Reports": "Reportes Visuales", + "Visual insights": "Análisis visuales", + "Visual insights & reports": "Análisis visuales e informes", + "Visualize your money flow over time. See income vs. expenses and spot trends before they become problems.": "Visualiza el flujo de tu dinero a lo largo del tiempo. Ve ingresos frente a gastos e identifica tendencias antes de que se conviertan en problemas.", + "Víctor & Álvaro": "Víctor y Álvaro", + "Want to connect your bank directly?": "¿Quieres conectar tu banco directamente?", + "Want to continue for free? Disconnect all bank connections in Settings.": "¿Quieres continuar gratis? Desconecta todas las conexiones bancarias en Configuración.", + "Warning": "Advertencia", + "We Can't Read It": "No Podemos Leerlo", + "We also support Open Banking connections so your transactions sync automatically. Head to Settings > Connections to link your bank directly.": "También admitimos conexiones de Open Banking para que tus transacciones se sincronicen automáticamente. Ve a Configuración > Conexiones para vincular tu banco directamente.", + "We are processing your payment...": "Estamos procesando tu pago...", + "We built Whisper Money because we were tired of finance apps that mine your data and sell your habits to third parties. We wanted something simple, private, and actually useful.": "Creamos Whisper Money porque estábamos cansados de apps de finanzas que explotan tus datos y venden tus hábitos a terceros. Queríamos algo simple, privado y realmente útil.", + "We built Whisper Money because we were tired of giving our financial data to big companies who use it for who knows what. Whisper Money **never shares your data with third parties** - you are always the owner of your financial information.": "Creamos Whisper Money porque estábamos cansados de dar nuestros datos financieros a grandes empresas que los usan para quién sabe qué. Whisper Money **nunca comparte tus datos con terceros**: tú eres siempre el propietario de tu información financiera.", + "We built Whisper Money to help you truly understand your finances — without giving up your privacy to do it. Here's what you can look forward to:": "Creamos Whisper Money para ayudarte a entender de verdad tus finanzas, sin sacrificar tu privacidad para ello. Esto es lo que puedes esperar:", + "We collect the following types of personal information:": "Recopilamos los siguientes tipos de información personal:", + "We collect the following types of personal\\n information:": "Recopilamos los siguientes tipos de información personal:", + "We could not collect your subscription payment.": "No hemos podido cobrar el pago de tu suscripción.", + "We disconnected your bank connection to keep your account on free access. Automatic bank sync is now paused, but all your accounts, transactions, and balances remain in Whisper Money.|We disconnected your :count bank connections to keep your account on free access. Automatic bank sync is now paused, but all your accounts, transactions, and balances remain in Whisper Money.": "Desconectamos tu conexión bancaria para mantener tu cuenta con acceso gratuito. La sincronización bancaria automática está ahora en pausa, pero todas tus cuentas, transacciones y saldos permanecen en Whisper Money.|Desconectamos tus :count conexiones bancarias para mantener tu cuenta con acceso gratuito. La sincronización bancaria automática está ahora en pausa, pero todas tus cuentas, transacciones y saldos permanecen en Whisper Money.", + "We do not sell, trade, or rent your personal information to third parties for marketing purposes.": "No vendemos, comercializamos ni alquilamos tu información personal a terceros con fines de marketing.", + "We do not sell, trade, or rent your personal\\n information to third parties for marketing\\n purposes.": "No vendemos, intercambiamos ni alquilamos tu información personal a terceros con fines de marketing.", + "We don't need direct access to your bank accounts. No sharing credentials, no third-party integrations, no security risks. You stay in complete control of your financial data.": "No necesitamos acceso directo a tus cuentas bancarias. Sin compartir credenciales, sin integraciones de terceros, sin riesgos de seguridad. Mantienes el control total de tus datos financieros.", + "We don't sell, trade, or give away your personal information": "No vendemos, intercambiamos ni cedemos tu información personal", + "We don't track, sell, or share your data. Ever.": "No rastreamos, vendemos ni compartimos tus datos. Nunca.", + "We encourage you to contact us directly at victor@whisper.money to resolve any disputes before initiating legal proceedings.": "Te animamos a contactarnos directamente en victor@whisper.money para resolver cualquier disputa antes de iniciar procedimientos legales.", + "We encourage you to contact us directly at\\n victor@whisper.money to resolve any disputes\\n before initiating legal proceedings.": "Te animamos a contactarnos directamente en victor@whisper.money para resolver cualquier disputa antes de iniciar procedimientos legales.", + "We implement robust security measures to protect your personal information:": "Implementamos medidas de seguridad robustas para proteger tu información personal:", + "We implement robust security measures to protect\\n your personal information:": "Implementamos medidas de seguridad robustas para proteger tu información personal:", + "We just synced new transactions from your connected banks:": "Acabamos de sincronizar nuevas transacciones de tus bancos conectados:", + "We know setting up a new app can be overwhelming, and we want to make sure you have everything you need to get started.": "Sabemos que configurar una nueva app puede ser abrumador, y queremos asegurarnos de que tengas todo lo que necesitas para empezar.", + "We may update this Privacy Policy from time to time to reflect changes in our practices or for legal, operational, or regulatory reasons. When we make material changes, we will notify you by email and/or by posting a notice on our website at least 30 days before the changes take effect. Your continued use of the service after changes become effective constitutes acceptance of the updated policy.": "Podemos actualizar esta Política de Privacidad de vez en cuando para reflejar cambios en nuestras prácticas o por razones legales, operativas o regulatorias. Cuando hagamos cambios materiales, te notificaremos por correo electrónico y/o publicando un aviso en nuestro sitio web al menos 30 días antes de que los cambios entren en vigor. Tu uso continuado del servicio después de que los cambios entren en vigor constituye la aceptación de la política actualizada.", + "We may update this Privacy Policy from time to\\n time to reflect changes in our practices or for\\n legal, operational, or regulatory reasons. When\\n we make material changes, we will notify you by\\n email and/or by posting a notice on our website\\n at least 30 days before the changes take effect.\\n Your continued use of the service after changes\\n become effective constitutes acceptance of the\\n updated policy.": "Podemos actualizar esta Política de Privacidad periódicamente para reflejar cambios en nuestras prácticas o por razones legales, operativas o regulatorias. Cuando realicemos cambios sustanciales, te notificaremos por correo electrónico y/o publicando un aviso en nuestro sitio web al menos 30 días antes de que los cambios entren en vigor. Tu uso continuado del servicio después de que los cambios sean efectivos constituye la aceptación de la política actualizada.", + "We never see your transaction descriptions": "Nunca vemos las descripciones de tus transacciones", + "We process your personal data for the following purposes:": "Procesamos tus datos personales para los siguientes propósitos:", + "We process your personal data for the following\\n purposes:": "Procesamos tus datos personales para los siguientes fines:", + "We regularly review and update our security practices": "Revisamos y actualizamos regularmente nuestras prácticas de seguridad", + "We reserve the right to change our pricing with 30 days advance notice to subscribers": "Nos reservamos el derecho de cambiar nuestros precios con 30 días de aviso previo a los suscriptores", + "We reserve the right to change our pricing\\n with 30 days advance notice to subscribers": "Nos reservamos el derecho de cambiar nuestros precios con 30 días de antelación a los suscriptores", + "We reserve the right to modify, suspend, or discontinue any part of the service at any time, with or without notice. We will not be liable to you or any third party for any modification, suspension, or discontinuation of the service.": "Nos reservamos el derecho de modificar, suspender o descontinuar cualquier parte del servicio en cualquier momento, con o sin previo aviso. No seremos responsables ante ti o cualquier tercero por cualquier modificación, suspensión o descontinuación del servicio.", + "We reserve the right to modify, suspend, or\\n discontinue any part of the service at any time,\\n with or without notice. We will not be liable to\\n you or any third party for any modification,\\n suspension, or discontinuation of the service.": "Nos reservamos el derecho de modificar, suspender o interrumpir cualquier parte del servicio en cualquier momento, con o sin previo aviso. No seremos responsables ante ti ni ante ningún tercero por cualquier modificación, suspensión o interrupción del servicio.", + "We see:": "Vemos:", + "We sent a confirmation link to :email. Click it to reserve your waitlist spot and unlock your referral link.": "Te enviamos un enlace de confirmación a :email. Haz clic para reservar tu puesto en la lista de espera y desbloquear tu enlace de referidos.", + "We sent you an invitation to Whisper Money, but it looks like you have not created your account yet.": "Te enviamos una invitación a Whisper Money, pero parece que aún no has creado tu cuenta.", + "We store encrypted data we can't read. Even if our servers were compromised, your data stays secure.": "Almacenamos datos encriptados que no podemos leer. Incluso si nuestros servidores fueran comprometidos, tus datos permanecen seguros.", + "We support CSV and XLS files. Most banks allow you to export your transaction history in one of these formats. The import process automatically maps columns and categorizes transactions.": "Admitimos archivos CSV y XLS. La mayoría de los bancos permiten exportar el historial de transacciones en uno de estos formatos. El proceso de importación mapea automáticamente las columnas y categoriza las transacciones.", + "We support CSV imports from most banks. Just export your transactions and upload them - it takes less than a minute. If your bank format is different, just let us know and we can help.": "Admitimos importaciones CSV de la mayoría de bancos. Solo exporta tus transacciones y súbelas, toma menos de un minuto. Si el formato de tu banco es diferente, haznos saber y te ayudamos.", + "We support Open Banking connections so your transactions sync automatically. Head to Settings > Connections to get started.": "Admitimos conexiones de Open Banking para que tus transacciones se sincronicen automáticamente. Ve a Configuración > Conexiones para empezar.", + "We use essential cookies to maintain your session and ensure the proper functioning of our service. These cookies are necessary for the service to work and cannot be disabled. We do not use tracking cookies or analytics cookies without your explicit consent.": "Usamos cookies esenciales para mantener tu sesión y asegurar el funcionamiento adecuado de nuestro servicio. Estas cookies son necesarias para que el servicio funcione y no se pueden desactivar. No usamos cookies de seguimiento o análisis sin tu consentimiento explícito.", + "We use essential cookies to maintain your\\n session and ensure the proper functioning of our\\n service. These cookies are necessary for the\\n service to work and cannot be disabled. We do\\n not use tracking cookies or analytics cookies\\n without your explicit consent.": "Usamos cookies esenciales para mantener tu sesión y garantizar el correcto funcionamiento de nuestro servicio. Estas cookies son necesarias para que el servicio funcione y no se pueden deshabilitar. No usamos cookies de seguimiento ni de análisis sin tu consentimiento explícito.", + "We use the following third-party services to operate our platform:": "Usamos los siguientes servicios de terceros para operar nuestra plataforma:", + "We use the following third-party services to\\n operate our platform:": "Utilizamos los siguientes servicios de terceros para operar nuestra plataforma:", + "We were unable to sync your :provider connection because your credentials appear to have expired or been revoked.": "No pudimos sincronizar tu conexión con :provider porque tus credenciales parecen haber expirado o sido revocadas.", + "We will retry up to 4 times during the week. You keep access for now, but the subscription will be canceled if all retries fail.": "Lo reintentaremos hasta 4 veces durante la semana. Mantienes el acceso por ahora, pero la suscripción se cancelará si fallan todos los reintentos.", + "We're **Victor and Alvaro**, the founders of Whisper Money. Thanks so much for joining the list — it genuinely means a lot to us.": "Somos **Víctor y Álvaro**, los fundadores de Whisper Money. Muchísimas gracias por unirte a la lista — significa mucho para nosotros.", + "We're Victor and Álvaro, the founders of Whisper Money. You signed up a while back to hear about our privacy-first personal finance app, and we're excited to tell you - we're live!": "Somos Víctor y Álvaro, los fundadores de Whisper Money. Te registraste hace un tiempo para recibir noticias sobre nuestra app de finanzas personales centrada en la privacidad, y estamos emocionados de contarte: ¡ya estamos en vivo!", + "We're Víctor and Álvaro, the founders of Whisper Money. Now Whisper Money is open. As a thank you, your first months are on us.": "Somos Víctor y Álvaro, los fundadores de Whisper Money. Ya puedes registrate. Como agradecimiento, los primeros meses los invitamos nosotros.", + "We're Víctor and Álvaro, the founders of Whisper Money. Someone you invited landed in our top 10 — that makes you a Whisper Money founder too.": "Somos Víctor y Álvaro, los fundadores de Whisper Money. Alguien a quien invitaste está entre los 10 primeros — eso te convierte en un usuario de Whisper Money desde el día uno también.", + "We're Víctor and Álvaro, the founders of Whisper Money. You joined the waitlist a while back — thanks for waiting. Whisper Money is open, and we saved a welcome gift for you.": "Somos Víctor y Álvaro, los fundadores de Whisper Money. Te apuntaste a la lista de espera hace un tiempo — gracias por esperar. Ya puedes registrarte y te hemos guardado un regalo de bienvenida.", + "We're Víctor and Álvaro, the founders of Whisper Money. You're one of our first 10. That makes you a Whisper Money founder user.": "Somos Víctor y Álvaro, los fundadores de Whisper Money. Estás entre los 10 primeros. Eso te convierte en un usuario de Whisper Money desde el día uno.", + "We're looking through your transaction history to find expenses that match this budget. This usually takes a few seconds.": "Estamos revisando tu historial de transacciones para encontrar gastos que coincidan con este presupuesto. Esto usualmente toma unos segundos.", + "We're looking through your transaction\\n history to find expenses that match this\\n budget. This usually takes a few seconds.": "Estamos buscando en tu historial de transacciones gastos que coincidan con este presupuesto. Esto suele tardar unos segundos.", + "We're sorry to see you go": "Lamentamos que te vayas", + "We're sorry to see you go, :name": "Lamentamos que te vayas, :name", + "We're two founders building this because we believe you deserve a finance app that actually respects your privacy. Every subscription helps us keep the lights on and build features you actually want. No investors, no board meetings, just us trying to build something useful and private.": "Somos dos fundadores construyendo esto porque creemos que mereces una app de finanzas que realmente respete tu privacidad. Cada suscripción nos ayuda a mantener el proyecto y construir las funciones que realmente quieres. Sin inversores, sin reuniones de directorio, solo nosotros intentando construir algo útil y privado.", + "We're working hard to open things up, and we can't wait to share Whisper Money with you.": "Estamos trabajando duro para abrir el acceso, y no podemos esperar para compartir Whisper Money contigo.", + "We've created a comprehensive set of categories for you. You can customize them now or adjust them later in settings.": "Hemos creado un conjunto completo de categorías para ti. Puedes personalizarlas ahora o ajustarlas más tarde en la configuración.", + "Weak": "Débil", + "Weekly": "Semanal", + "Welcome": "Bienvenido", + "Welcome aboard, :name!": "¡Bienvenido a bordo, :name!", + "Welcome to Pro!": "¡Bienvenido a Pro!", + "Welcome to Whisper Money - Your Privacy-First Finance App": "Bienvenido a Whisper Money - Tu App de Finanzas con Privacidad", + "Welcome to Whisper Money, :name!": "¡Bienvenido a Whisper Money, :name!", + "Welcome to
Whisper Money": "Bienvenido a
Whisper Money", + "What do you want to do?": "¿Qué quieres hacer?", + "What features would make Whisper Money more useful for you?": "¿Qué funciones harían que Whisper Money fuera más útil para ti?", + "What file formats are supported for import?": "¿Qué formatos de archivo se admiten para la importación?", + "What happens after you confirm?": "¿Qué pasa después de confirmar?", + "What is Whisper Money?": "¿Qué es Whisper Money?", + "What people are saying": "Lo que la gente dice", + "What should happen to its child categories?": "¿Qué debería pasar con sus categorías hijas?", + "What you get": "Lo que obtienes", + "What's more, even if I wanted to use it, I couldn't, since you're the only one who has the key to read the data.": "Es más, aunque quisiera usarlos, no podría, ya que tú eres el único que tiene la clave para leer los datos.", + "When I started building Whisper Money, I was frustrated with finance apps that wanted to mine my data or use AI to analyze my spending. I just wanted a simple, private way to track my finances - and I figured others might too.": "Cuando empecé a construir Whisper Money, estaba frustrado con las apps de finanzas que querían minar mis datos o usar IA para analizar mis gastos. Solo quería una forma simple y privada de rastrear mis finanzas - y pensé que otros también.", + "When you create an account with Whisper Money, you agree to:": "Cuando creas una cuenta con Whisper Money, aceptas:", + "When you create an account with Whisper Money,\\n you agree to:": "Al crear una cuenta con Whisper Money, aceptas:", + "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "Cuando actives la autenticación de dos factores, se te pedirá un pin seguro durante el inicio de sesión. Este pin se puede obtener de una aplicación compatible con TOTP en tu teléfono.", + "When you enable two-factor authentication, you\\n will be prompted for a secure pin during login.\\n This pin can be retrieved from a TOTP-supported\\n application on your phone.": "Cuando actives la autenticación de dos factores, se te pedirá un PIN seguro durante el inicio de sesión. Este PIN se puede obtener de una aplicación compatible con TOTP en tu teléfono.", + "Where processing is based on consent, you can withdraw it at any time": "Cuando el procesamiento se basa en el consentimiento, puedes retirarlo en cualquier momento", + "Where processing is based on consent, you\\n can withdraw it at any time": "Cuando el procesamiento se base en el consentimiento, puedes retirarlo en cualquier momento", + "Where your money comes from": "De dónde viene tu dinero", + "Where your money goes": "A dónde va tu dinero", + "Whether it's a bug you've found, a feature you'd love to see, or just general thoughts - I want to hear it all. This is my project, and I care deeply about making it work well for you.": "Ya sea un error que hayas encontrado, una función que te gustaría ver, o simplemente pensamientos generales, quiero escucharlo todo. Este es mi proyecto y me importa mucho que funcione bien para ti.", + "Whether it's a bug you've found, a feature you'd love to see, or just general thoughts - we want to hear it all. This is our project, and we care deeply about making it work well for you.": "Ya sea un error que hayas encontrado, una función que te gustaría ver, o simplemente pensamientos generales, queremos escucharlo todo. Este es nuestro proyecto y nos importa profundamente que funcione bien para ti.", + "While we use industry-standard security measures, no method of transmission over the internet or electronic storage is 100% secure. We cannot guarantee absolute security but continuously work to protect your data.": "Aunque usamos medidas de seguridad estándar de la industria, ningún método de transmisión por internet o almacenamiento electrónico es 100% seguro. No podemos garantizar seguridad absoluta pero trabajamos continuamente para proteger tus datos.", + "While we use industry-standard security\\n measures, no method of transmission over the\\n internet or electronic storage is 100% secure.\\n We cannot guarantee absolute security but\\n continuously work to protect your data.": "Aunque utilizamos medidas de seguridad estándar del sector, ningún método de transmisión por internet o almacenamiento electrónico es 100% seguro. No podemos garantizar seguridad absoluta, pero trabajamos continuamente para proteger tus datos.", + "Whisper Money - Secure Personal Finance App": "Whisper Money - App Segura de Finanzas Personales", + "Whisper Money - The Most Secure Personal Finance App": "Whisper Money - La App Más Segura de Finanzas Personales", + "Whisper Money is a **privacy-first personal finance app** that puts you in control:": "Whisper Money es una **app de finanzas personales centrada en la privacidad** que te pone en control:", + "Whisper Money is a personal finance tracking application that allows you to:": "Whisper Money es una aplicación de seguimiento de finanzas personales que te permite:", + "Whisper Money is a personal finance tracking\\n application that allows you to:": "Whisper Money es una aplicación de seguimiento de finanzas personales que te permite:", + "Whisper Money is the data controller responsible for your personal information.": "Whisper Money es el controlador de datos responsable de tu información personal.", + "Whisper Money is the data controller responsible\\n for your personal information.": "Whisper Money es el responsable del tratamiento de tus datos personales.", + "Whisper Money never shares your data with third parties. Here's how we protect your privacy:": "Whisper Money nunca comparte tus datos con terceros. Así es como protegemos tu privacidad:", + "Whisper Money. All rights reserved.": "Whisper Money. Todos los derechos reservados.", + "Whisper Money. All\\n rights reserved.": "Whisper Money. Todos los derechos reservados.", + "Whole Foods Market": "Whole Foods Market", + "Why No AI Auto-Categorization?": "¿Por Qué No Hay Auto-Categorización por IA?", + "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "Con la autenticación de dos factores activada, se te pedirá un pin seguro y aleatorio durante el inicio de sesión, que puedes obtener de la aplicación compatible con TOTP en tu teléfono.", + "With two-factor authentication enabled, you will\\n be prompted for a secure, random pin during\\n login, which you can retrieve from the\\n TOTP-supported application on your phone.": "Con la autenticación de dos factores activada, se te pedirá un PIN seguro y aleatorio durante el inicio de sesión, que puedes obtener de la aplicación compatible con TOTP en tu teléfono.", + "Works everywhere": "Funciona en todas partes", + "Would you like to add more accounts or continue to the dashboard?": "¿Quieres agregar más cuentas o continuar al panel?", + "YYYY-MM-DD (e.g., 2024-12-31)": "YYYY-MM-DD (ej., 2024-12-31)", + "YYYYMMDD (e.g., 20241231)": "YYYYMMDD (ej., 20241231)", + "Year": "Año", + "Yearly": "Anual", + "Yearly code": "Código anual", + "Yes! Whisper Money is fully open source. You can review the code, suggest improvements, or even self-host it. Transparency is a core part of our privacy commitment.": "¡Sí! Whisper Money es completamente de código abierto. Puedes revisar el código, sugerir mejoras o incluso alojarlo tú mismo. La transparencia es una parte fundamental de nuestro compromiso con la privacidad.", + "Yes. Bank connections use secure Open Banking and never require your bank credentials, so transactions can sync automatically. This is a Pro feature; free users can import everything, but only through the CSV/Excel importer.": "Sí. Las conexiones bancarias usan Open Banking seguro y nunca requieren tus credenciales bancarias, por lo que las transacciones se sincronizan automáticamente. Es una función Pro; los usuarios gratuitos pueden importarlo todo, pero solo mediante el importador CSV/Excel.", + "Yesterday": "Ayer", + "You agree to indemnify, defend, and hold harmless Whisper Money and its officers, directors, employees, and agents from any claims, liabilities, damages, losses, and expenses, including reasonable legal fees, arising out of or related to your use of the service, violation of these Terms, or violation of any rights of another party.": "Aceptas indemnizar, defender y eximir de responsabilidad a Whisper Money y sus funcionarios, directores, empleados y agentes de cualquier reclamo, responsabilidad, daño, pérdida y gasto, incluidos los honorarios legales razonables, que surjan de o estén relacionados con tu uso del servicio, violación de estos Términos o violación de los derechos de otra parte.", + "You agree to indemnify, defend, and hold\\n harmless Whisper Money and its officers,\\n directors, employees, and agents from any\\n claims, liabilities, damages, losses, and\\n expenses, including reasonable legal fees,\\n arising out of or related to your use of the\\n service, violation of these Terms, or violation\\n of any rights of another party.": "Aceptas indemnizar, defender y eximir de responsabilidad a Whisper Money y sus directivos, directores, empleados y agentes de cualquier reclamación, responsabilidad, daño, pérdida y gasto, incluidos los honorarios legales razonables, derivados de o relacionados con tu uso del servicio, la violación de estos Términos o la violación de los derechos de otra parte.", + "You agree to pay all applicable fees as described at the time of purchase": "Aceptas pagar todas las tarifas aplicables según se describan en el momento de la compra", + "You agree to pay all applicable fees as\\n described at the time of purchase": "Aceptas pagar todas las tarifas aplicables tal como se describen en el momento de la compra", + "You already have accounts set up. Let's continue with the onboarding.": "Ya tienes cuentas configuradas. Continuemos con la configuración.", + "You are always the owner of your data": "Siempre eres el dueño de tus datos", + "You are being redirected in 3 seconds.": "Serás redirigido en 3 segundos.", + "You are currently **#:position** in line for early access.": "Actualmente estás en el puesto **#:position** para el acceso anticipado.", + "You are now **#:position** in line for early access.": "Ahora estás en el puesto **#:position** para el acceso anticipado.", + "You are responsible for all taxes associated with your purchase": "Eres responsable de todos los impuestos asociados con tu compra", + "You are responsible for all taxes associated\\n with your purchase": "Eres responsable de todos los impuestos asociados con tu compra", + "You are responsible for maintaining backups of your data. While we implement reasonable backup procedures, we recommend you export and save copies of important data regularly.": "Eres responsable de mantener copias de seguridad de tus datos. Aunque implementamos procedimientos razonables de respaldo, recomendamos que exportes y guardes copias de datos importantes regularmente.", + "You are responsible for maintaining backups of\\n your data. While we implement reasonable backup\\n procedures, we recommend you export and save\\n copies of important data regularly.": "Eres responsable de mantener copias de seguridad de tus datos. Aunque implementamos procedimientos de respaldo razonables, te recomendamos que exportes y guardes copias de los datos importantes regularmente.", + "You can also manually add transactions and account balances. Some users prefer to start tracking from today rather than importing history - that's totally fine! Do whatever works best for you.": "También puedes agregar transacciones y balances de cuentas manualmente. Algunos usuarios prefieren empezar a rastrear desde hoy en lugar de importar historial, ¡eso está totalmente bien! Haz lo que funcione mejor para ti.", + "You can always customize categories later in Settings \\u2192\\n Categories": "Siempre puedes personalizar las categorías más tarde en Configuración → Categorías", + "You can always customize categories later in Settings → Categories": "Siempre puedes personalizar las categorías más tarde en Configuración → Categorías", + "You can continue using the app on the free plan, and you can reconnect your bank later if you upgrade again.": "Puedes seguir usando la app con el plan gratuito y volver a conectar tu banco más adelante si actualizas de nuevo.", + "You can create API keys from your Binance account under": "Puedes crear claves API desde tu cuenta de Binance en", + "You can create API keys from your Bitpanda account under": "Puedes crear claves API desde tu cuenta de Bitpanda en", + "You can file a complaint with your local data protection authority": "Puedes presentar una queja ante tu autoridad local de protección de datos", + "You can file a complaint with your local\\n data protection authority": "Puedes presentar una queja ante tu autoridad local de protección de datos", + "You can generate your API token from your Indexa Capital dashboard under": "Puedes generar tu token API desde el panel de Indexa Capital en", + "You can object to processing of your data based on legitimate interests": "Puedes objetar el procesamiento de tus datos basándose en intereses legítimos", + "You can request a copy of the personal data we hold about you": "Puedes solicitar una copia de los datos personales que tenemos sobre ti", + "You can request correction of inaccurate or incomplete data": "Puedes solicitar la corrección de datos inexactos o incompletos", + "You can request deletion of your personal data (right to be forgotten)": "Puedes solicitar la eliminación de tus datos personales (derecho al olvido)", + "You can request restriction of processing in certain circumstances": "Puedes solicitar la restricción del procesamiento en ciertas circunstancias", + "You can request your data in a structured, machine-readable format": "Puedes solicitar tus datos en un formato estructurado y legible por máquina", + "You can request your data in a structured,\\n machine-readable format": "Puedes solicitar tus datos en un formato estructurado y legible por máquina", + "You can\\n object to processing of your data based on\\n legitimate interests": "Puedes oponerte al procesamiento de tus datos basado en intereses legítimos", + "You can\\n request a copy of the personal data we hold\\n about you": "Puedes solicitar una copia de los datos personales que tenemos sobre ti", + "You can\\n request deletion of your personal data\\n (right to be forgotten)": "Puedes solicitar la eliminación de tus datos personales (derecho al olvido)", + "You get your personal referral link.": "Obtienes tu enlace personal de referidos.", + "You have :count expired bank connections.": "Tienes :count conexiones bancarias caducadas.", + "You may cancel your subscription at any time. Upon cancellation, you will retain access until the end of your current billing period, after which your subscription will not renew.": "Puedes cancelar tu suscripción en cualquier momento. Al cancelar, mantendrás acceso hasta el final de tu período de facturación actual, después del cual tu suscripción no se renovará.", + "You may cancel your subscription at any time.\\n Upon cancellation, you will retain access until\\n the end of your current billing period, after\\n which your subscription will not renew.": "Puedes cancelar tu suscripción en cualquier momento. Tras la cancelación, mantendrás el acceso hasta el final de tu período de facturación actual, después del cual tu suscripción no se renovará.", + "You may not use the service to engage in any illegal activity, transmit malicious code, attempt to gain unauthorized access to our systems, or interfere with the proper functioning of the service.": "No puedes usar el servicio para participar en ninguna actividad ilegal, transmitir código malicioso, intentar obtener acceso no autorizado a nuestros sistemas o interferir con el funcionamiento adecuado del servicio.", + "You may not use the service to engage in any\\n illegal activity, transmit malicious code,\\n attempt to gain unauthorized access to our\\n systems, or interfere with the proper\\n functioning of the service.": "No puedes usar el servicio para realizar actividades ilegales, transmitir código malicioso, intentar obtener acceso no autorizado a nuestros sistemas o interferir con el correcto funcionamiento del servicio.", + "You may terminate your account at any time by deleting your account through the application settings or by contacting us. Upon termination, your right to use the service will immediately cease.": "Puedes cancelar tu cuenta en cualquier momento eliminándola a través de la configuración de la aplicación o contactándonos. Al cancelar, tu derecho a usar el servicio cesará inmediatamente.", + "You may terminate your account at any time by\\n deleting your account through the application\\n settings or by contacting us. Upon termination,\\n your right to use the service will immediately\\n cease.": "Puedes terminar tu cuenta en cualquier momento eliminándola a través de la configuración de la aplicación o contactándonos. Tras la terminación, tu derecho a usar el servicio cesará de inmediato.", + "You must be at least 16 years old to use this service. By using Whisper Money, you represent and warrant that you meet this age requirement.": "Debes tener al menos 16 años para usar este servicio. Al usar Whisper Money, declaras y garantizas que cumples con este requisito de edad.", + "You must be at least 16 years old to use this\\n service. By using Whisper Money, you represent\\n and warrant that you meet this age requirement.": "Debes tener al menos 16 años para usar este servicio. Al usar Whisper Money, declaras y garantizas que cumples con este requisito de edad.", + "You must select either a category or a label.": "Debes seleccionar una categoría o una etiqueta.", + "You now have full access to all Whisper Money features. Thank you for supporting us!": "¡Ahora tienes acceso completo a todas las funciones de Whisper Money. Gracias por apoyarnos!", + "You retain all ownership rights to the financial data and information you enter into Whisper Money. We do not claim any ownership over your personal financial information.": "Conservas todos los derechos de propiedad sobre los datos financieros e información que ingresas en Whisper Money. No reclamamos ninguna propiedad sobre tu información financiera personal.", + "You retain all\\n ownership rights to the financial data and\\n information you enter into Whisper Money. We do\\n not claim any ownership over your personal\\n financial information.": "Conservas todos los derechos de propiedad sobre los datos financieros e información que introduces en Whisper Money. No reclamamos ningún derecho de propiedad sobre tu información financiera personal.", + "You see:": "Ves:", + "You will be redirected to authorize access to your account data.": "Serás redirigido para autorizar el acceso a los datos de tu cuenta.", + "You will be redirected to your bank to authorize access.": "Serás redirigido a tu banco para autorizar el acceso.", + "You'll receive an exclusive promo code via DM!": "¡Recibirás un código promocional exclusivo por mensaje directo!", + "You'll receive an\\n exclusive promo code via\\n DM!": "¡Recibirás un código promocional exclusivo por DM!", + "You're All Set!": "¡Estás Todo Listo!", + "You're a Whisper Money founder — free forever 🎁": "Eres uno de los pioneros en Whisper Money — gratis para siempre 🎁", + "You're a Whisper Money founder 🎁": "Eres uno de los pioneros en Whisper Money 🎁", + "You're enjoying all the benefits of Whisper Money Pro": "Estás disfrutando de todos los beneficios de Whisper Money Pro", + "You're in complete control": "Tienes control completo", + "You're in early — months on us at Whisper Money": "Llegas pronto — los primeros meses los invitamos nosotros", + "You're in early — months on us 🎉": "Llegas pronto — los primeros meses los invitamos nosotros 🎉", + "You're on the Whisper Money waiting list!": "¡Estás en la lista de espera de Whisper Money!", + "You're on the list!": "¡Estás en la lista!", + "You're on the waiting list — Whisper Money": "Estás en la lista de espera — Whisper Money", + "You've categorized all your transactions.": "Has categorizado todas tus transacciones.", + "You've joined the Whisper Money waiting list. Share your referral link to move up the queue.": "Te has unido a la lista de espera de Whisper Money. Comparte tu enlace de referido para avanzar en la fila.", + "You've used 90% of your budget": "Has usado el 90% de tu presupuesto", + "You\\n can request correction of inaccurate or\\n incomplete data": "Puedes solicitar la corrección de datos inexactos o incompletos", + "You\\n can request restriction of processing in\\n certain circumstances": "Puedes solicitar la restricción del procesamiento en determinadas circunstancias", + "Your :provider connection has expired.": "Tu conexión con :provider ha caducado.", + "Your :provider connection needs attention": "Tu conexión con :provider necesita atención", + "Your Accounts": "Tus Cuentas", + "Your Categories Include:": "Tus Categorías Incluyen:", + "Your Data is Truly Private": "Tus Datos Son Verdaderamente Privados", + "Your Data, Your Privacy": "Tus Datos, Tu Privacidad", + "Your Data, Your Rules": "Tus Datos, Tus Reglas", + "Your Data:": "Tus Datos:", + "Your Founder Discount - 80% Off First Period": "Tu Descuento de Fundador - 80% de Descuento en el Primer Período", + "Your Position in the Queue": "Tu Posición en la Fila", + "Your Private Key": "Tu Clave Privada", + "Your Pro Plan": "Tu Plan Pro", + "Your Whisper Money invitation is here": "Tu invitación a Whisper Money ya está aquí", + "Your accounts are ready and your data is securely encrypted. Welcome to Whisper Money!": "Tus cuentas están listas y tus datos están encriptados de forma segura. ¡Bienvenido a Whisper Money!", + "Your bank connections were disconnected": "Tus conexiones bancarias fueron desconectadas", + "Your continued use of the service after the effective date of revised Terms constitutes your acceptance of the changes. If you do not agree to the new terms, you must stop using the service and may delete your account.": "Tu uso continuado del servicio después de la fecha efectiva de los Términos revisados constituye tu aceptación de los cambios. Si no estás de acuerdo con los nuevos términos, debes dejar de usar el servicio y puedes eliminar tu cuenta.", + "Your continued use of the service after the\\n effective date of revised Terms constitutes your\\n acceptance of the changes. If you do not agree\\n to the new terms, you must stop using the\\n service and may delete your account.": "Tu uso continuado del servicio después de la fecha de entrada en vigor de los Términos revisados constituye tu aceptación de los cambios. Si no estás de acuerdo con los nuevos términos, debes dejar de usar el servicio y puedes eliminar tu cuenta.", + "Your data and settings will be preserved, so you can pick up right where you left off.": "Tus datos y configuración se conservarán, así que puedes retomar donde lo dejaste.", + "Your data encrypted and private": "Tus datos cifrados y privados", + "Your data is encrypted before it leaves your browser.": "Tus datos se encriptan antes de salir de tu navegador.", + "Your data is never shared with third parties": "Tus datos nunca se comparten con terceros", + "Your data is never shared with third parties. You are always the owner.": "Tus datos nunca se comparten con terceros. Tú eres siempre el propietario.", + "Your data is ready": "Tus datos están listos", + "Your data is stored securely and never shared with third parties. We don't use your financial data for AI training, advertising, or any purpose other than providing you the service.": "Tus datos se almacenan de forma segura y nunca se comparten con terceros. No usamos tus datos financieros para entrenamiento de IA, publicidad ni ningún otro propósito que no sea proporcionarte el servicio.", + "Your data is yours alone. Sign up to get started.": "Tus datos son solo tuyos. Regístrate para comenzar.", + "Your data is yours. Export it anytime in standard formats.": "Tus datos son tuyos. Expórtalos en cualquier momento en formatos estándar.", + "Your data stays private. Always.": "Tus datos permanecen privados. Siempre.", + "Your data stays private—never shared with third parties.": "Tus datos permanecen privados—nunca se comparten con terceros.", + "Your data stays yours": "Tus datos son solo tuyos", + "Your data stays yours—never shared with third parties": "Tus datos son solo tuyos—nunca se comparten con terceros", + "Your early access to Whisper Money is ready": "Tu acceso anticipado a Whisper Money está listo", + "Your early-access gift": "Tu regalo por llegar pronto", + "Your email address": "Tu correo electrónico", + "Your email address is unverified.": "Tu dirección de correo electrónico no está verificada.", + "Your financial data belongs to you — not us, not advertisers, not anyone else:": "Tus datos financieros te pertenecen a ti, no a nosotros, no a los anunciantes, a nadie más:", + "Your financial data is encrypted on your device before being transmitted to our servers, ensuring that only you can access your information": "Tus datos financieros se encriptan en tu dispositivo antes de ser transmitidos a nuestros servidores, asegurando que solo tú puedas acceder a tu información", + "Your financial data is encrypted on your device before it ever reaches our servers.": "Tus datos financieros se encriptan en tu dispositivo antes de que lleguen a nuestros servidores.", + "Your financial data is encrypted on your device. Only you can access it.": "Tus datos financieros se encriptan en tu dispositivo. Solo tú puedes acceder a ellos.", + "Your financial data stays private and is never shared": "Tus datos financieros son privados y nunca se comparten", + "Your financial data stays private. The most secure way to manage your personal finances.": "Tus datos financieros permanecen privados. La forma más segura de gestionar tus finanzas personales.", + "Your financial data stays private—never shared with third parties. The most secure way to manage your personal finances.": "Tus datos financieros permanecen privados—nunca se comparten con terceros. La forma más segura de gestionar tus finanzas personales.", + "Your financial data stays private—never shared with third parties. Track expenses, create budgets, and achieve your goals—all while keeping your information completely secure.": "Tus datos financieros permanecen privados—nunca se comparten con terceros. Rastrea gastos, crea presupuestos y alcanza tus metas, todo mientras mantienes tu información completamente segura.", + "Your first account must be a": "Tu primera cuenta debe ser una", + "Your first account must be a checking account.": "Tu primera cuenta debe ser una cuenta corriente.", + "Your gift: Whisper Money Pro, free forever": "Tu regalo: Whisper Money Pro, gratis para siempre", + "Your key will be cleared when you close the browser.": "Tu clave se borrará cuando cierres el navegador.", + "Your key will be stored until you log out.": "Tu clave se almacenará hasta que cierres sesión.", + "Your launch codes are still available:": "Tus códigos de lanzamiento siguen disponibles:", + "Your personal code": "Tu código personal", + "Your place in the queue is reserved.": "Tu lugar en la cola queda reservado.", + "Your position in the queue": "Tu posición en la fila", + "Your referral made you a Whisper Money founder — free forever 🎁": "Tu invitación te ha convertido en fundador de Whisper Money — gratis para siempre 🎁", + "Your referral made you a founder 🎁": "Tu invitación te ha convertido en fundador 🎁", + "Your rules run entirely in your browser": "Tus reglas se ejecutan completamente en tu navegador", + "Your subscription is now active": "Tu suscripción ya está activa", + "Your transactions, accounts, and budgets are encrypted on your device before syncing to the cloud.": "Tus transacciones, cuentas y presupuestos se encriptan en tu dispositivo antes de sincronizarse con la nube.", + "Your use or inability to use the service": "Tu uso o incapacidad para usar el servicio", + "Your welcome gift": "Tu regalo de bienvenida", + "Zero tracking": "Sin rastreo", + "Zero-Knowledge Architecture": "Arquitectura de Conocimiento Cero", + "[Loading...]": "[Cargando...]", + "\\u2014 $9/month": "\\u2014 9$/mes", + "\\u2190 Back to home": "\\u2190 Volver al inicio", + "\\uD83C\\uDF89 Get a founder discount \\u2022": "\\uD83C\\uDF89 Obtén un descuento de fundador \\u2022", + "above.": "arriba.", + "account": "cuenta", + "account.": "cuenta.", + "accounts": "cuentas", + "acres": "acres", + "after 3 months with Whisper Money": "después de 3 meses con Whisper Money", + "amber": "ámbar", + "balance": "balance", + "balance record": "registro de balance", + "balance records": "registros de balance", + "balances": "balances", + "balances imported": "balances importados", + "blue": "azul", + "button in your browser toolbar": "en la barra de herramientas de tu navegador", + "category(ies) total.": "categoría(s) en total.", + "contains": "contiene", + "cyan": "cian", + "direct": "directo", + "e.g. 360 for a 30-year mortgage": "ej. 360 para una hipoteca a 30 años", + "e.g., Monthly Budget": "ej., Presupuesto Mensual", + "e.g., Padel Budget": "ej., Presupuesto de Pádel", + "email@example.com": "email@example.com", + "emerald": "esmeralda", + "en_US": "es_ES", + "equals": "es igual a", + "finance app, budgeting, expense tracking, privacy-first, secure finance, personal finance, money management, privacy, no data sharing": "app de finanzas, presupuestos, seguimiento de gastos, privacidad primero, finanzas seguras, finanzas personales, gestión del dinero, privacidad, sin compartir datos", + "finance app, budgeting, expense tracking, secure finance, personal finance, money management, privacy, privacy-first finance app": "aplicación financiera, presupuesto, seguimiento de gastos, finanzas seguras, finanzas personales, gestión del dinero, privacidad, aplicación financiera centrada en la privacidad", + "for the last 12 months": "en los últimos 12 meses", + "for the last 30 days": "en los últimos 30 días", + "forever": "siempre", + "ft²": "ft²", + "fuchsia": "fucsia", + "gray": "gris", + "greater than": "mayor que", + "green": "verde", + "ha": "ha", + "index, follow": "index, follow", + "indigo": "índigo", + "is empty": "está vacío", + "is not empty": "no está vacío", + "label(s) total.": "etiqueta(s) en total.", + "less than": "menor que", + "lime": "lima", + "log in": "iniciar sesión", + "market value": "valor de mercado", + "market values": "valores de mercado", + "months": "meses", + "m²": "m²", + "neutral": "neutro", + "of": "de", + "on the last 30 days": "en los últimos 30 días", + "one-time": "pago único", + "only with you": "solo contigo", + "or you can": "o puedes", + "or, enter the code manually": "o, ingresa el código manualmente", + "orange": "naranja", + "owed amount": "monto adeudado", + "owed amount record": "registro de monto adeudado", + "owed amount records": "registros de monto adeudado", + "owed amounts": "montos adeudados", + "owed amounts imported": "montos adeudados importados", + "per month": "por mes", + "per year": "por año", + "pink": "rosa", + "purple": "púrpura", + "px) /": "px) /", + "red": "rojo", + "remaining": "restantes", + "rose": "rosado", + "row(s) total": "fila(s) en total", + "rule(s) total.": "regla(s) en total.", + "slate": "pizarra", + "spending awareness reported": "conocimiento del gasto reportado", + "stone": "piedra", + "summary_large_image": "summary_large_image", + "taking control of their finances": "tomando el control de sus finanzas", + "teal": "cerceta", + "this month": "este mes", + "to confirm.": "para confirmar.", + "today": "hoy", + "transactions imported": "transacciones importadas", + "transactions loaded": "transacciones cargadas", + "transactions total": "transacciones en total", + "used": "usado", + "victor@whisper.money": "victor@whisper.money", + "violet": "violeta", + "vs last month": "vs mes anterior", + "vs last period": "vs período anterior", + "vs start": "vs inicio", + "will be updated or created.": "será actualizado o creado.", + "years": "años", + "yellow": "amarillo", + "— $9/month": "— $9/mes", + "← Back to home": "← Volver al inicio", + "🎉 Get a founder discount •": "🎉 Obtén un descuento de fundador •", + "I just started syncing my accounts and it already feels like a great app. The interface is lovely and it looks like a really solid tool. Great work!": "Acabo de empezar a sincronizar cuentas y ya me parece una gran app. La interfaz me encanta y parece una herramienta muy sólida. ¡Muy buen trabajo!", + "I have a lot of faith in this project — it's really well built and your MVP is fantastic. Thanks for everything!": "Confío mucho en este proyecto, está muy bien montado y vuestro MVP está de lujo. ¡Gracias por todo!", + "I'm exploring the web app and the design and UX are excellent. Thanks, team!": "Estoy descubriendo la aplicación web y, a nivel de diseño y UX, está excelente. ¡Gracias, chicos!", + "Thank you for developing Whisper Money. The focus on privacy and centralizing finances is an excellent proposition.": "Gracias por desarrollar Whisper Money. El enfoque en la privacidad y en centralizar las finanzas es una propuesta excelente.", + "I found Whisper Money and instantly knew I needed it. I was stuck doing everything in a spreadsheet — a chore I kept putting off. This makes it effortless.": "Descubrí Whisper Money y supe al instante que lo necesitaba. Estaba haciéndolo todo en una hoja de cálculo, una tarea que acababa posponiendo siempre. Esto lo hace facilísimo.", + "Thank you so much for creating such a clean, simple app.": "Muchísimas gracias por crear una app tan limpia y sencilla.", + "Great project!": "¡Gran proyecto!", + "I love this project!": "¡Me encanta este proyecto!", + "I'm genuinely happy using an open-source project with a real commitment to privacy — that's exactly what I want from a finance app.": "Estoy realmente contento usando un proyecto open-source con un compromiso real con la privacidad: es exactamente lo que quiero de una app de finanzas.", + "I can't wait to discover everything the app can do. Thank you — it must have taken a tremendous effort. Congratulations!": "Con muchas ganas de ir descubriendo todo lo que se puede hacer con la aplicación. ¡Gracias! Debe haber sido un esfuerzo tremendo. ¡Enhorabuena!", + "The app is intuitive, functional, and a real help for managing my finances day to day. What stands out most is how much the free version offers — it really shows your commitment to your users. I’ll keep recommending it!": "La aplicación es intuitiva, funcional y de gran ayuda para gestionar mis finanzas en el día a día. Lo que más destaca es la cantidad de opciones de la versión gratuita: demuestra vuestro compromiso con los usuarios. ¡Seguiré recomendándola!", + "I built the app I needed to make better decisions. Understanding how I spend and where my income comes from has brought me real financial peace of mind.": "He construido la app que necesitaba para tomar mejores decisiones. Entender cómo gasto y de dónde vienen mis ingresos me ha dado una verdadera tranquilidad financiera.", + "AI Suggestions": "Sugerencias de IA", + "AI suggestions are a Standard Plan feature. You'll choose a plan at the end of the onboarding.": "Las sugerencias de IA son una función del plan Standard. Elegirás un plan al final del proceso de incorporación.", + "Rules created": "Reglas creadas", + "We created :rules rules and categorized :count transactions for you.": "Hemos creado :rules reglas y categorizado :count transacciones por ti.", + "Looking for patterns": "Buscando patrones", + "We’re finding the rules that will categorize most of your transactions automatically.": "Estamos encontrando las reglas que categorizarán la mayoría de tus transacciones automáticamente.", + "Analysing your transactions…": "Analizando tus transacciones…", + "Finding related groups…": "Buscando grupos relacionados…", + "Finding the right categories…": "Encontrando las categorías adecuadas…", + "Grouping everything together…": "Agrupándolo todo…", + "Polishing your suggestions…": "Puliendo tus sugerencias…", + "This can take up to two minutes.": "Esto puede tardar hasta dos minutos.", + "Let AI organize your money": "Deja que la IA organice tu dinero", + "With your permission, we’ll send merchant names from your transactions to our AI provider to suggest categorization rules. We never send your full financial picture, and you review every rule before it’s created.": "Con tu permiso, enviaremos los nombres de los comercios de tus transacciones a nuestro proveedor de IA para sugerir reglas de categorización. Nunca enviamos tu situación financiera completa y revisas cada regla antes de crearla.", + "Suggest my rules with AI": "Sugerir mis reglas con IA", + "No thanks": "No, gracias", + "AI suggestions need more data": "Las sugerencias de IA necesitan más datos", + "Once you have at least :count transactions, you can generate rule suggestions from Settings → Automation rules.": "Cuando tengas al menos :count transacciones, podrás generar sugerencias de reglas desde Ajustes → Reglas de automatización.", + "We couldn’t generate suggestions": "No pudimos generar sugerencias", + "Something went wrong. You can try again or skip for now.": "Algo salió mal. Puedes intentarlo de nuevo u omitirlo por ahora.", + "Try again": "Intentar de nuevo", + "No clear patterns yet": "Aún no hay patrones claros", + "We couldn’t find confident rules to suggest right now. You can categorize your transactions in the next step.": "No encontramos reglas fiables que sugerir ahora mismo. Puedes categorizar tus transacciones en el siguiente paso.", + "Review your suggested rules": "Revisa las reglas sugeridas", + "We found these patterns. Tweak anything you like, then create the rules — we’ll apply them to your transactions right away.": "Encontramos estos patrones. Ajusta lo que quieras y crea las reglas: las aplicaremos a tus transacciones de inmediato.", + "Create :count rules & apply": "Crear :count reglas y aplicar", + "Applying…": "Aplicando…", + "Include this rule": "Incluir esta regla", + "Payee": "Beneficiario", + "Sender": "Remitente", + "is": "es", + "Match text": "Texto a coincidir", + "Categorize as": "Categorizar como", + "New: :name": "Nueva: :name", + "Preview matching transactions": "Ver transacciones coincidentes", + "Loading…": "Cargando…", + ":count of :total uncategorized transactions match": ":count de :total transacciones sin categorizar coinciden", + "Matching transactions": "Transacciones coincidentes", + "Preview :count matching transactions": "Ver :count transacciones coincidentes", + "If the transaction": "Si la transacción", + "If the transaction matches any of": "Si la transacción coincide con alguno de", + "Add value": "Añadir valor", + "Remove value": "Eliminar valor", + "or": "o", + "Create rule": "Crear regla", + "Ignore rule": "Ignorar regla", + ":count matches": ":count coincidencias" +} diff --git a/lang/fr/auth.php b/lang/fr/auth.php new file mode 100644 index 00000000..6598e2c0 --- /dev/null +++ b/lang/fr/auth.php @@ -0,0 +1,20 @@ + 'These credentials do not match our records.', + 'password' => 'The provided password is incorrect.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + +]; diff --git a/package-lock.json b/package-lock.json index af7eddb4..1326559f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,6 +67,7 @@ "devDependencies": { "@eslint/js": "^9.39.3", "@laravel/vite-plugin-wayfinder": "^0.1.7", + "@modelcontextprotocol/sdk": "^1.29.0", "@release-it/conventional-changelog": "^10.0.5", "@sentry/vite-plugin": "^4.9.1", "@testing-library/jest-dom": "^6.9.1", @@ -80,6 +81,7 @@ "eslint-plugin-react-hooks": "^7.0.1", "jsdom": "^25.0.1", "playwright": "^1.58.2", + "portless": "^0.9.2", "prettier": "^3.8.1", "prettier-plugin-organize-imports": "^4.3.0", "prettier-plugin-tailwindcss": "^0.6.14", @@ -1187,6 +1189,19 @@ "react-dom": "^18 || ^19 || ^19.0.0-rc" } }, + "node_modules/@hono/node-server": { + "version": "1.19.14", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.14.tgz", + "integrity": "sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.14.1" + }, + "peerDependencies": { + "hono": "^4" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -1792,6 +1807,71 @@ "dev": true, "license": "MIT" }, + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz", + "integrity": "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@hono/node-server": "^1.19.9", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", + "express": "^5.2.1", + "express-rate-limit": "^8.2.1", + "hono": "^4.11.4", + "jose": "^6.1.3", + "json-schema-typed": "^8.0.2", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.25 || ^4.0", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@cfworker/json-schema": "^4.1.1", + "zod": "^3.25 || ^4.0" + }, + "peerDependenciesMeta": { + "@cfworker/json-schema": { + "optional": true + }, + "zod": { + "optional": false + } + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, "node_modules/@nodeutils/defaults-deep": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@nodeutils/defaults-deep/-/defaults-deep-1.1.0.tgz", @@ -5419,6 +5499,47 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", @@ -5478,6 +5599,48 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -5810,6 +5973,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/body-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -5888,6 +6076,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/c12": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.3.tgz", @@ -6326,6 +6524,30 @@ "node": "^14.18.0 || >=16.10.0" } }, + "node_modules/content-disposition": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/conventional-changelog": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-7.1.1.tgz", @@ -6468,6 +6690,26 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, "node_modules/core-js": { "version": "3.48.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz", @@ -6479,6 +6721,24 @@ "url": "https://opencollective.com/core-js" } }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", @@ -6897,6 +7157,16 @@ "node": ">=0.4.0" } }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -7019,6 +7289,13 @@ "dev": true, "license": "MIT" }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, "node_modules/electron-to-chromium": { "version": "1.5.307", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.307.tgz", @@ -7030,6 +7307,16 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/enhanced-resolve": { "version": "5.20.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz", @@ -7287,6 +7574,13 @@ "node": ">=6" } }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -7572,12 +7866,45 @@ "url": "https://github.com/bgub/eta?sponsor=1" } }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.0.tgz", + "integrity": "sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", @@ -7628,6 +7955,96 @@ "node": ">=12.0.0" } }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.5.2.tgz", + "integrity": "sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.2.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "node_modules/express/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/exsolve": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", @@ -7690,6 +8107,23 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fd-package-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fd-package-json/-/fd-package-json-2.0.0.tgz", @@ -7730,6 +8164,28 @@ "node": ">=8" } }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -7833,6 +8289,16 @@ "node": ">= 6" } }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/frac": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", @@ -7869,6 +8335,16 @@ } } }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -8301,6 +8777,16 @@ "hermes-estree": "0.25.1" } }, + "node_modules/hono": { + "version": "4.12.25", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.25.tgz", + "integrity": "sha512-2NFaIyNVgJmBs/ecmtGzlmluTFs5cHEWGTdu0t1HBwYzoGXOL5nUQBRMXsXWla5i4KkG//QMzVP88m1+I3fdAQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.9.0" + } + }, "node_modules/hosted-git-info": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz", @@ -8334,6 +8820,27 @@ "node": ">=18" } }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", @@ -8520,15 +9027,25 @@ } }, "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", + "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", "dev": true, "license": "MIT", "engines": { "node": ">= 12" } }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -8845,6 +9362,13 @@ "dev": true, "license": "MIT" }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -9103,6 +9627,16 @@ "jiti": "lib/jiti-cli.mjs" } }, + "node_modules/jose": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.3.tgz", + "integrity": "sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -9215,6 +9749,13 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -9723,6 +10264,16 @@ "node": ">= 0.4" } }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/meow": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", @@ -9736,6 +10287,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -9908,6 +10472,16 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -10206,6 +10780,29 @@ "dev": true, "license": "MIT" }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/onetime": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", @@ -10519,6 +11116,16 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -10566,6 +11173,17 @@ "dev": true, "license": "ISC" }, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -10606,6 +11224,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkce-challenge": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/pkg-types": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", @@ -10665,6 +11293,24 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/portless": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/portless/-/portless-0.9.6.tgz", + "integrity": "sha512-imtPnrQ6NNqwYMeCDaJ0PhNx/98Y2piukiMGd0MNCquDuoi7n7mHOf5P1VwhUoqx7s6z+DIqzELein1vAjf/JA==", + "dev": true, + "license": "Apache-2.0", + "os": [ + "darwin", + "linux", + "win32" + ], + "bin": { + "portless": "dist/cli.js" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -10950,6 +11596,20 @@ "dev": true, "license": "MIT" }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/proxy-agent": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", @@ -11039,6 +11699,32 @@ "integrity": "sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==", "license": "MIT" }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/rc9": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", @@ -11400,6 +12086,16 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/reselect": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", @@ -11521,6 +12217,23 @@ "win32" ] }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/rrweb-cssom": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", @@ -11666,6 +12379,80 @@ "semver": "bin/semver.js" } }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/send/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -11712,6 +12499,13 @@ "node": ">= 0.4" } }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -11964,6 +12758,16 @@ "dev": true, "license": "MIT" }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/std-env": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", @@ -12386,6 +13190,16 @@ "node": ">=8.0" } }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, "node_modules/tough-cookie": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", @@ -12472,6 +13286,66 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/type-is": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "dev": true, + "license": "MIT", + "dependencies": { + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -12644,6 +13518,16 @@ "dev": true, "license": "ISC" }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/unplugin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.0.1.tgz", @@ -12833,6 +13717,16 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/vaul": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vaul/-/vaul-1.1.2.tgz", @@ -14436,6 +15330,13 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, "node_modules/ws": { "version": "8.19.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", @@ -14599,6 +15500,16 @@ "url": "https://github.com/sponsors/colinhacks" } }, + "node_modules/zod-to-json-schema": { + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", + "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "zod": "^3.25.28 || ^4" + } + }, "node_modules/zod-validation-error": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", diff --git a/resources/js/types/language.ts b/resources/js/types/language.ts index 164b1a94..8877527c 100644 --- a/resources/js/types/language.ts +++ b/resources/js/types/language.ts @@ -1,6 +1,7 @@ export const LANGUAGE_OPTIONS = [ { code: 'en', label: 'English' }, { code: 'es', label: 'Español' }, + { code: 'fr', label: 'Français' }, ] as const; -export type LocaleCode = 'en' | 'es'; +export type LocaleCode = 'en' | 'es' | 'fr'; diff --git a/whisper_money b/whisper_money new file mode 100644 index 0000000000000000000000000000000000000000..bec3783f098cdb54882371fce903fe08c04bcb4e GIT binary patch literal 143360 zcmeI)%X1t@9l-G!Yps=RNozZCHeejqs~CIBcCxF7?T~2Y%PjaTfzsw}x)+XyPN+5t`1weM6anx+)xh{5d6m3i2oY zrKcb6^Y;bqnYZ8CD>LY&&%%*2ib+GxMU+5Dod~x%soRXN7sgaF#6*c!uK}W?;LHFO0U^aRL#z zV$oiiFh2jAN-t9vk8Vy-@aRd+{fR1l@ zVdV`+V%Y7~R+z~#+SarC`ma1+KRf?i+CQ1TjZSxFyr7B9g=K-pY+4|ZveRBUHCE7m z)|b68Gm~ad`akLSlf{B|y)ScpRx-rFqBLrLw4k|}oU`*YviV6)%Q3z6)xc_sw&nZA za$1}7dkb1;OR@QgC@B+0m2b475DwLnsy$yQXz#=&WoXTu6*3;@WDkYW72I;gk{kf8 zCrr21Y0F^{_G_>3iIIYKb-Z4$H$?JVey(>BZn}#pz@8AGKVu_pmT8zb-jd)bS2$oxa$^S}H@|NKG#0R#|0009ILKmY**5I_KdAr{ydwvFfiA?{(Ch5!Nx zAbOpC~{80R#|0009ILKmY**5I|t~1$h5I{C!Ld5kLR|1Q0*~ z0R#|0009IL;Qc=_fB*srAb{00IagfB*srAbh2AeM}1xKmY**5I_I{1Q0*~0R#}>{Xa2)00IagfB*srAb7VgLaI5I_I{1Q0*~0R#|00D<8b;Qjyb z_c1L*009ILKmY**5I_I{1Q0-g_y5EI0tg_000IagfB*srAb7A*HEW)pc5!ihBaIxHI z=yxv$#$wB|9MfB04XmbUTfT2BTmIG~Ph7gPaPitg<=Vv;Us-!V`VTL;o@FmPVLeZF>r<#mM zjU%?xv~Dj+B3byRyXcEf$8L&_W53n0l*5OUe!BkJ_htZaE4BaPy9ZY|_MSu#4UpmOQ@l`9LcT@%+Xzq)Ys+QnC2 zugxDCEnlA2wWx>uw_0{!iFlTfJr?$rSTq9jhUJTf^5wD3UmT2t?-e6qB}w^sC@ZX_ zq{2BtKX8ZzZeX;c=;_UE$}F{NIZfMH9-JZ5!Rh3voS>I3C&FX^bOq%|a3lEM$S@5# zDYe3g4$YGj_KnTF%h-!;PSWxGR=av&w0!2U?ngZ%?R*hMi|BqonD8dUq(4hM zKEk7+b{uK7O}$hsA3m(#vC@9?!yE^;^i)(xy& z^5h-RTkFTF8f$VY32&Gxz1mmm{Mdim+Q!q9QS5G(A_LQq;VoLOxgzf(-H%gQ5hW$m zl=rCaET>-Az2#V5Zi;n#)%J{d==Rs>bmkr%pS@O_pSs`3R4ODI%9qkcX@7JR+<3Rw zx+r}jr$zT`%bL;3o13=ZklMs(`CH{dQ%qdt-@< zy<(DFt!@0cSS%kss^8J0Zc1yF{ymoMtn_eL>2Ofy46yXf=`fNrk-aL6W>bzKIk=J% z@@SM%t}WAboIEseaAtwhQ!5d#&I-xA_3YSa`O?ur-JP~XG}2Gw8{ghrET224Zyt## z(j}1y2Y(Q+ef->mqgkZfJfYa&#aVV?rL=3n3M<>(_`J2+<sz7)Hl?95qeTpLm#Om*Fh? z`kvA9sZ;u!@u-Z~L%t>NYvB_}_UlL{{Q444hU=KqvZTD-=*9A}WBTS}(K*}pa(o}~ zd!P1X&Q$Fsq~krkW2o^r@Fv_X-W~O7U`NZjtvB1+;vYVAUGw0!l)0kFc3$MLTZUnLp~7t#iKwQ6HGLw^OH7DZ5#hBn;lK>woN#jjGk|9;-x@ zA9P|$xnbFk9-D;MX<2@F(^J2Ht&g%VIi=jz{WDxB4cZG0?4Xsu11N9Jt|uQ)w(@p& zUry9dNb0B^;-;Us9~2KXVaj2$?8?13rJrTVBvp2JvS*Y%CX`)RnG$b~_V2PjL{FzK z*=~-Pm4o(VPggSAx;gF3o-Jv)Eq5TdoKijwMBCMJ<*J={fNA^Qm8Xm4+RR{F0+;ufQd%*6VlBjmGdR3+3(L5V(xvM#hb~r(A z4Nw^@X2%OR+2h^c+;w9Zb@Dkf+>w;|qi;@6`JePqZSx0DMh{?jMMTyMp5CV;S-f7tqZPE} zE0pfw3P+6Fa(ml_@<1AsDTq3HABA{kc%>K11Zq@;oXNNQj_pU~Xy5AnU&Z(5c#S7l zh|yZle=-Z19^MgSTE9GuI7s_nkAz3nNlE1k2ZVY*RnxwB_6ycm^KbkA7roLqZqlY^ zJ2svX22DUU{{8<0EGfu>00IagfB*srAbaF?B(flY00IagfB*srAb Date: Mon, 15 Jun 2026 10:39:17 +0200 Subject: [PATCH 02/13] Create french .json --- lang/fr.json | 4156 +++++++++++++++++++++++++------------------------- 1 file changed, 2078 insertions(+), 2078 deletions(-) diff --git a/lang/fr.json b/lang/fr.json index 04735ab5..d01dbfa2 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -1,2079 +1,2079 @@ { - "Analyze": "Analyse", - "Monthly average": "Media mensual", - "Trend": "Tendencia", - "Not enough history": "Historial insuficiente", - "vs. previous 6 months": "vs. 6 meses anteriores", - "Category analysis": "Análisis de categoría", - "How much you spent on this category each month over the last 12 months.": "Cuánto gastaste en esta categoría cada mes durante los últimos 12 meses.", - "Pick a category to see its monthly spending.": "Elige una categoría para ver su gasto mensual.", - "No spending in the last 12 months.": "Sin gastos en los últimos 12 meses.", - "Analysis": "Análisis", - "Apply a filter to enable this button": "Aplica un filtro para activar este botón", - "A breakdown of the transactions matching your current filters.": "Un desglose de las transacciones que coinciden con tus filtros actuales.", - "Could not load the analysis. Please try again.": "No se pudo cargar el análisis. Inténtalo de nuevo.", - "No transactions match the current filters.": "Ninguna transacción coincide con los filtros actuales.", - "Avg / day": "Media / día", - "transactions": "transacciones", - "days": "días", - "Spending over time": "Gasto a lo largo del tiempo", - "Cumulative spend": "Gasto acumulado", - "Spending by category": "Gasto por categoría", - "Spending by tag": "Gasto por etiqueta", - "Spending by payee": "Gasto por beneficiario", - "Spending by account": "Gasto por cuenta", - "Cumulative net": "Neto acumulado", - "Net result": "Resultado neto", - "Margin": "Margen", - "Total spent": "Total gastado", - "Largest expenses": "Mayores gastos", - "Show more": "Ver más", - "Show less": "Ver menos", - "Analysis view": "Vista de análisis", - "Automatic": "Automático", - "Expenses only": "Solo gastos", - "Income & expenses": "Ingresos y gastos", - "adjusted": "ajustado", - "Adjust number of days": "Ajustar número de días", - "Days for daily average": "Días para la media diaria", - "Override the date span when it does not match the real duration.": "Anula el rango de fechas cuando no coincide con la duración real.", - "Saved with this filter.": "Guardado con este filtro.", - "Reset to auto": "Restablecer a automático", - "Bank account connected": "Cuenta bancaria conectada", - "Connection unsuccessful": "Conexión fallida", - "You can close this window and go back to the app to continue.": "Puedes cerrar esta ventana y volver a la app para continuar.", - "Your bank account is connected.": "Tu cuenta bancaria está conectada.", - "A filter with that name already exists": "Ya existe un filtro con ese nombre", - "Delete saved filter": "Eliminar filtro guardado", - "Failed to delete the saved filter": "No se pudo eliminar el filtro guardado", - "Failed to save the filter": "No se pudo guardar el filtro", - "Failed to update the saved filter": "No se pudo actualizar el filtro guardado", - "Filter saved": "Filtro guardado", - "Filter updated": "Filtro actualizado", - "No saved filters yet": "Aún no hay filtros guardados", - "Save as new filter…": "Guardar como nuevo filtro…", - "Save filter": "Guardar filtro", - "Saved filters": "Filtros guardados", - "Saving…": "Guardando…", - "Unsaved changes": "Cambios sin guardar", - "Update “:name”": "Actualizar «:name»", - "e.g. Japan trip, Utilities": "p. ej. Viaje a Japón, Servicios", - "Give this set of filters a name so you can reuse it later.": "Dale un nombre a este conjunto de filtros para reutilizarlo más tarde.", - "+:count": "+:count", - ":count selected": ":count seleccionadas", - "Categories": "Categorías", - "Labels": "Etiquetas", - "No results.": "Sin resultados.", - "Remove :label": "Eliminar :label", - "Search categories…": "Buscar categorías…", - "Search labels…": "Buscar etiquetas…", - "Search…": "Buscar…", - "Select at least one category or label to track.": "Selecciona al menos una categoría o etiqueta para seguir.", - "Select categories": "Seleccionar categorías", - "Select…": "Seleccionar…", - "Set up a spending limit across one or more categories or labels.": "Configura un límite de gasto en una o más categorías o etiquetas.", - "Tracked categories and labels cannot be changed after creation.": "Las categorías y etiquetas seguidas no se pueden cambiar después de la creación.", - "You must select at least one category or label.": "Debes seleccionar al menos una categoría o etiqueta.", - " All communications between your device and our servers are protected using TLS (Transport Layer Security)": " Todas las comunicaciones entre tu dispositivo y nuestros servidores están protegidas con TLS (Transport Layer Security)", - " All data is stored on secure servers with encryption at rest, protecting your information from unauthorized access": " Todos los datos se almacenan en servidores seguros con cifrado en reposo, protegiendo tu información del acceso no autorizado", - " Strict access controls and authentication mechanisms protect against unauthorized access": " Controles de acceso estrictos y mecanismos de autenticación protegen contra el acceso no autorizado", - " We regularly review and update our security practices": " Revisamos y actualizamos regularmente nuestras prácticas de seguridad", - " Your financial data is never shared with advertisers, data brokers, or any third party": " Tus datos financieros nunca se comparten con anunciantes, intermediarios de datos ni ningún tercero", - "\"? This action cannot be undone.": "\"? Esta acción no se puede deshacer.", - "\"? This action cannot be undone. All budget periods, allocations, and transaction assignments will be permanently removed.": "\"? Esta acción no se puede deshacer. Todos los períodos de presupuesto, asignaciones y asignaciones de transacciones serán eliminados permanentemente.", - "\"? This\\n action cannot be undone.": "\"? Esta acción no se puede deshacer.", - "\"? This\\n action cannot be undone. All budget periods,\\n allocations, and transaction assignments will be\\n permanently removed.": "\"? Esta acción no se puede deshacer. Todos los períodos de presupuesto, asignaciones y asignaciones de transacciones serán eliminados permanentemente.", - "$KO!F6LMHU1W%TAEQFZMD9": "$KO!F6LMHU1W%TAEQFZMD9", - "**All your accounts in one place** — bank accounts, savings, investments, crypto, and more": "**Todas tus cuentas en un lugar** — cuentas bancarias, ahorros, inversiones, cripto y más", - "**Automation rules** — categorize transactions automatically, your way": "**Reglas de automatización** — categoriza transacciones automáticamente, a tu manera", - "**Cashflow at a glance** — see exactly where your money goes and how it evolves": "**Flujo de caja de un vistazo** — ve exactamente adónde va tu dinero y cómo evoluciona", - "**Connect your banks** via Open Banking or import from CSV — your choice": "**Conecta tus bancos** mediante Open Banking o importa desde CSV, tú eliges", - "**Every transaction tracked** — import from CSV/XLS or connect via Open Banking": "**Cada transacción registrada** — importa desde CSV/XLS o conecta vía Open Banking", - "**Have feedback? Questions? Issues?** Just hit reply to this email. We read and respond to every message personally.": "**¿Tienes comentarios? ¿Preguntas? ¿Problemas?** Solo responde a este correo. Leemos y respondemos personalmente cada mensaje.", - "**Monthly plan**: 60 days free": "**Plan mensual**: 60 días gratis", - "**No middlemen** — we don't sell insights about your habits": "**Sin intermediarios** — no vendemos información sobre tus hábitos", - "**Smart budgets** — set goals, track progress, and stay on track every month": "**Presupuestos inteligentes** — fija metas, sigue el progreso y mantente en marcha cada mes", - "**Yearly plan**: 90 days free on your first year": "**Plan anual**: 90 días gratis durante el primer año", - "**You're always in control** — export or delete your data anytime": "**Siempre tienes el control** — exporta o elimina tus datos en cualquier momento", - "**Your data stays yours** — never shared with third parties": "**Tus datos siguen siendo tuyos** — nunca se comparten con terceros", - "**Your data, always** — never shared with third parties, always under your control": "**Tus datos, siempre** — nunca compartidos con terceros, siempre bajo tu control", - "+ Add another column": "+ Agregar otra columna", - "+ note": "+ nota", - ", and press": ", y presiona", - "- we never sell your data": "- nunca vendemos tus datos", - "...and 40+ more": "...y más de 40", - "/12 min": "/12 min", - "/month": "/mes", - "/year": "/año", - "1,200+ users": "1.200+ usuarios", - "1. Data Controller": "1. Controlador de Datos", - "10. Children's Privacy": "10. Privacidad de los Niños", - "10. Limitation of Liability": "10. Limitación de Responsabilidad", - "100% private": "100% privado", - "11. Changes to This Privacy Policy": "11. Cambios a Esta Política de Privacidad", - "11. Indemnification": "11. Indemnización", - "12. Contact Us": "12. Contáctanos", - "12. Governing Law and Dispute Resolution": "12. Ley Aplicable y Resolución de Disputas", - "13. Changes to Terms": "13. Cambios a los Términos", - "14. Severability": "14. Divisibilidad", - "15% more savings": "15% más de ahorro", - "15. Entire Agreement": "15. Acuerdo Completo", - "16. Contact Us": "16. Contáctanos", - "2. Acceptance of Terms": "2. Aceptación de Términos", - "2. Information We Collect": "2. Información que Recopilamos", - "23% better": "23% mejor", - "2FA Recovery Codes": "Códigos de Recuperación 2FA", - "3. How We Use Your Information": "3. Cómo Usamos Tu Información", - "3. Service Description": "3. Descripción del Servicio", - "4. Data Security and Encryption": "4. Seguridad de Datos y Encriptación", - "4. User Accounts and Responsibilities": "4. Cuentas de Usuario y Responsabilidades", - "401k, IRA, pension funds": "401k, planes de pensiones", - "5. Data Ownership and License": "5. Propiedad de Datos y Licencia", - "5. Third-Party Services": "5. Servicios de Terceros", - "6. Data Retention": "6. Retención de Datos", - "6. Intellectual Property Rights": "6. Derechos de Propiedad Intelectual", - "7. International Data Transfers": "7. Transferencias Internacionales de Datos", - "7. Payment Terms": "7. Términos de Pago", - "8. Termination": "8. Cancelación", - "8. Your Rights Under GDPR": "8. Tus Derechos Bajo GDPR", - "9. Cookies and Tracking": "9. Cookies y Rastreo", - "9. Disclaimers and Warranties": "9. Descargos de Responsabilidad y Garantías", - ":count matching transaction(s)": ":count transacción(es) coincidente(s)", - ":count new transactions synced on Whisper Money": ":count nuevas transacciones sincronizadas en Whisper Money", - ":count transaction": ":count transacción", - ":count transaction(s) will be affected.": ":count transacción(es) serán afectadas.", - ":count transactions": ":count transacciones", - "@alext_money": "@alext_money", - "@davidk_dev": "@davidk_dev", - "@emmalou": "@emmalou", - "@jessicap": "@jessicap", - "@mike_tech": "@mike_tech", - "@sarahm_finance": "@sarahm_finance", - "A Few Quick Questions": "Unas Preguntas Rápidas", - "A Special Offer for You": "Una Oferta Especial para Ti", - "A category with the same name already exists at the destination level. Rename it first.": "Ya existe una categoría con el mismo nombre en el nivel de destino. Renómbrala primero.", - "A new verification link has been sent to the email address you provided during registration.": "Se ha enviado un nuevo enlace de verificación a la dirección de correo electrónico que proporcionaste durante el registro.", - "A new verification link has been sent to your email address.": "Se ha enviado un nuevo enlace de verificación a tu dirección de correo electrónico.", - "A new verification link has\\n been sent to your email\\n address.": "Se ha enviado un nuevo enlace de verificación a tu dirección de correo electrónico.", - "A unique encryption key is generated on your device. Only you have access to it—we never see or store it.": "Se genera una clave de encriptación única en tu dispositivo. Solo tú tienes acceso a ella, nosotros nunca la vemos ni la almacenamos.", - "AI can't help you with your transactions because we never share your data with third parties. This is intentional—we believe your financial data should never be fed into AI systems that you don't control.": "La IA no puede ayudarte con tus transacciones porque nunca compartimos tus datos con terceros. Esto es intencional: creemos que tus datos financieros nunca deben ser alimentados a sistemas de IA que no controlas.", - "AI requires sending your data to external servers": "La IA requiere enviar tus datos a servidores externos", - "AI requires sending your data to external\\n servers": "La IA requiere enviar tus datos a servidores externos", - "API Key": "Clave API", - "API Key Management": "Gestión de Claves API", - "API Key Name": "Nombre de la Clave API", - "API Keys": "Claves API", - "API Management": "Gestión de API", - "API Secret": "Secreto API", - "API Token": "Token API", - "Absolutely. You own your data. You can export all your financial data at any time, and you can permanently delete your account and all associated data whenever you want.": "Por supuesto. Tus datos son tuyos. Puedes exportar todos tus datos financieros en cualquier momento y puedes eliminar permanentemente tu cuenta y todos los datos asociados cuando quieras.", - "Accept responsibility for all activities that occur under your account": "Acepta la responsabilidad de todas las actividades que ocurran en tu cuenta", - "Accept responsibility for all activities\\n that occur under your account": "Acepta la responsabilidad de todas las actividades que ocurran en tu cuenta", - "Access Controls:": "Controles de Acceso:", - "Access your data securely from any device with automatic syncing.": "Accede a tus datos de forma segura desde cualquier dispositivo con sincronización automática.", - "Access your data securely—your information is never shared with third parties": "Accede a tus datos de forma segura—tu información nunca se comparte con terceros", - "Access your finances on any device, anytime, anywhere.": "Accede a tus finanzas desde cualquier dispositivo, en cualquier momento y lugar.", - "Account": "Cuenta", - "Account Details": "Detalles de Cuenta", - "Account Holder": "Titular de la cuenta", - "Account Information:": "Información de Cuenta:", - "Account Name": "Nombre de Cuenta", - "Account No.": "Nº de cuenta", - "Account Type": "Tipo de Cuenta", - "Account Types": "Tipos de Cuenta", - "Account is required": "Se requiere una cuenta", - "Account name": "Nombre de cuenta", - "Accounts": "Cuentas", - "Accounts Created": "Cuentas Creadas", - "Accounts need to be mapped before syncing can begin.": "Las cuentas deben mapearse antes de que pueda comenzar la sincronización.", - "Accounts will become manual. All transactions and balances will be preserved.": "Las cuentas pasarán a ser manuales. Todas las transacciones y saldos se conservarán.", - "Action required: :provider connection needs attention": "Acción requerida: la conexión con :provider necesita atención", - "Actions": "Acciones", - "Add": "Agregar", - "Add Another Account": "Agregar Otra Cuenta", - "Add Condition": "Agregar Condición", - "Add Group": "Agregar Grupo", - "Add Labels": "Agregar Etiquetas", - "Add Loan Details": "Agregar Detalles del Préstamo", - "Add More Accounts": "Agregar Más Cuentas", - "Add More Accounts?": "¿Agregar Más Cuentas?", - "Add Transaction": "Agregar Transacción", - "Add a bank account, loan, or property to your workspace.": "Agrega una cuenta bancaria, un prestamo o una propiedad a tu espacio de trabajo.", - "Add a new category to organize your transactions.": "Agrega una nueva categoría para organizar tus transacciones.", - "Add a new label to tag your transactions.": "Agrega una nueva etiqueta para etiquetar tus transacciones.", - "Add another account": "Agregar otra cuenta", - "Add another account to track more of your finances.": "Agrega otra cuenta para rastrear más de tus finanzas.", - "Add labels": "Agregar etiquetas", - "Add labels...": "Agregar etiquetas...", - "Add more accounts or continue to set up your categories.": "Agrega más cuentas o continúa para configurar tus categorías.", - "Add note": "Agregar nota", - "Add notes...": "Agregar notas...", - "Add the app to your home screen for the best experience.": "Añade la app a tu pantalla de inicio para la mejor experiencia.", - "Add this description to a rule.": "Agrega esta descripción a una regla.", - "Add to Home Screen": "Añadir a pantalla de inicio", - "Add transaction": "Agregar transacción", - "Additional notes about this property": "Notas adicionales sobre esta propiedad", - "Address": "Dirección", - "Address:": "Dirección:", - "Alex T.": "Alex T.", - "All": "Todo", - "All Done!": "¡Todo Listo!", - "All Set!": "¡Todo Listo!", - "All Your Accounts": "Todas Tus Cuentas", - "All associated accounts, transactions and balances will be permanently deleted.": "Todas las cuentas, transacciones y saldos asociados serán eliminados permanentemente.", - "All categories": "Todas las categorías", - "All data is stored on secure servers with encryption at rest": "Todos los datos se almacenan en servidores seguros con encriptación en reposo", - "All fees are non-refundable except as required by law or explicitly stated otherwise": "Todas las tarifas no son reembolsables excepto según lo requiera la ley o se indique explícitamente de otra manera", - "All fees are non-refundable except as\\n required by law or explicitly stated\\n otherwise": "Todas las tarifas no son reembolsables excepto cuando lo exija la ley o se indique explícitamente lo contrario", - "All matching filters": "Todas por filtro", - "All transactions appear to be duplicates. No new transactions will be imported.": "Todas las transacciones parecen ser duplicadas. No se importarán transacciones nuevas.", - "All transactions failed to import": "Todas las transacciones fallaron al importar", - "All your accounts at a glance": "Todas tus cuentas de un vistazo", - "All your bank accounts at a glance": "Todas tus cuentas bancarias de un vistazo", - "All your money in one place. No spreadsheets. Private.": "Todo tu dinero en un solo sitio. Sin Excels. Privado.", - "All your transactions are already categorized.": "Todas tus transacciones ya están categorizadas.", - "All your transactions are already categorized. You are all set!": "Todas tus transacciones ya están categorizadas. ¡Estás listo!", - "Allocated Amount": "Cantidad Asignado", - "Allocated:": "Asignado:", - "Almost there, just double-checking the math...": "Casi listo, revisando los números una vez más...", - "Already have an account?": "¿Ya tienes una cuenta?", - "Amount": "Valor", - "Amount is required": "Se requiere un valor", - "An unexpected error occurred during sync.": "Se produjo un error inesperado durante la sincronización.", - "An unexpected error occurred during sync. Please try again later.": "Ocurrió un error inesperado durante la sincronización. Inténtalo de nuevo más tarde.", - "Annual": "Anual", - "Annual Interest Rate": "Tasa de Interés Anual", - "Annual Interest Rate (%)": "Tasa de Interés Anual (%)", - "Annual Revaluation": "Revalorización anual", - "Annual Revaluation (%)": "Revalorización anual (%)", - "Annual percentage applied monthly. Use negative values for depreciation.": "Porcentaje anual aplicado mensualmente. Usa valores negativos para depreciación.", - "Any bugs, viruses, or similar harmful components transmitted through the service": "Cualquier error, virus o componente dañino similar transmitido a través del servicio", - "Any bugs, viruses, or similar harmful\\n components transmitted through the service": "Cualquier error, virus u otros componentes dañinos transmitidos a través del servicio", - "Any errors or omissions in content or any loss or damage incurred from using content": "Cualquier error u omisión en el contenido o cualquier pérdida o daño incurrido por usar el contenido", - "Any errors or omissions in content or any\\n loss or damage incurred from using content": "Cualquier error u omisión en el contenido o cualquier pérdida o daño derivado del uso del contenido", - "Any interruption or cessation of transmission to or from the service": "Cualquier interrupción o cese de transmisión hacia o desde el servicio", - "Any interruption or cessation of\\n transmission to or from the service": "Cualquier interrupción o cese de la transmisión hacia o desde el servicio", - "Any unauthorized access to or use of our servers and/or personal information": "Cualquier acceso no autorizado o uso de nuestros servidores y/o información personal", - "Any unauthorized access to or use of our\\n servers and/or personal information": "Cualquier acceso no autorizado o uso de nuestros servidores y/o información personal", - "App Key ID": "ID de la Clave API", - "Appearance": "Apariencia", - "Appearance settings": "Configuración de apariencia", - "Apply": "Aplicar", - "Apply rule to existing transactions": "Aplicar regla a transacciones existentes", - "Apply rules to remaining transactions?": "¿Aplicar reglas a las transacciones restantes?", - "Apply this rule to your existing transactions?": "¿Aplicar esta regla a tus transacciones existentes?", - "Apply to :count transaction(s)": "Aplicar a :count transacción(es)", - "Apply to existing transactions": "Aplicar a transacciones existentes", - "Applying rule…": "Aplicando regla…", - "Applying rule… :processed of :total processed": "Aplicando regla… :processed de :total procesadas", - "Are you overspending? Know exactly where you stand.": "¿Estás gastando de más? Conoce exactamente dónde estás parado.", - "Are you sure you want to delete": "¿Estás seguro de que deseas eliminar", - "Are you sure you want to delete \"": "¿Estás seguro de que deseas eliminar \"", - "Are you sure you want to delete this balance record? This action cannot be undone.": "¿Estás seguro de que deseas eliminar este registro de balance? Esta acción no se puede deshacer.", - "Are you sure you want to delete this owed amount record? This action cannot be undone.": "¿Estás seguro de que deseas eliminar este registro de monto adeudado? Esta acción no se puede deshacer.", - "Are you sure you want to delete this transaction? This action cannot be undone.": "¿Estás seguro de que quieres eliminar esta transacción? Esta acción no se puede deshacer.", - "Are you sure you want to delete your account?": "¿Estás seguro de que deseas eliminar tu cuenta?", - "Area": "Superficie", - "Argentine Peso": "Peso argentino", - "As a developer, I appreciate the security architecture. This is how finance apps should be built.": "Como desarrollador, aprecio la arquitectura de seguridad. Así es como deberían construirse las apps de finanzas.", - "As a solo founder, your feedback directly shapes what I build next. I personally read every response and take your suggestions seriously. When you subscribe, you're not just supporting some big corporation - you're helping me continue building something I'm passionate about.": "Como fundador en solitario, tus comentarios moldean directamente lo que construyo a continuación. Leo personalmente cada respuesta y tomo tus sugerencias en serio. Cuando te suscribes, no estás apoyando a una gran corporación, estás ayudándome a seguir construyendo algo que me apasiona.", - "As a thank you for believing in us this early, you get **Whisper Money Pro free, forever**. No trials, no expirations. Use the code below at checkout and we'll cover everything from your side.": "Como agradecimiento por confiar en nosotros desde el principio, te llevas **Whisper Money Pro gratis, para siempre**. Sin pruebas ni caducidades. Usa este código al pagar y nosotros nos encargamos del resto.", - "As a user in the European Union, you have the following rights regarding your personal data:": "Como usuario en la Unión Europea, tienes los siguientes derechos con respecto a tus datos personales:", - "As a user in the European Union, you have the\\n following rights regarding your personal data:": "Como usuario en la Unión Europea, tienes los siguientes derechos sobre tus datos personales:", - "As one of our early users, I want to offer you a special founder's discount. When you subscribe, you're not just getting a great app - you're directly supporting me as I continue building Whisper Money. Every subscription helps me keep the lights on and build features you actually want.": "Como uno de nuestros primeros usuarios, quiero ofrecerte un descuento especial de fundador. Cuando te suscribes, no solo obtienes una gran app, estás apoyándome directamente mientras sigo construyendo Whisper Money. Cada suscripción me ayuda a mantener el proyecto y construir las funciones que realmente quieres.", - "As one of our early users, we want to offer you a special founder's discount. When you subscribe, you're not just getting a great app - you're directly supporting us as we continue building Whisper Money. Every subscription helps us keep the lights on and build features you actually want.": "Como uno de nuestros primeros usuarios, queremos ofrecerte un descuento especial de fundadores. Cuando te suscribes, no solo obtienes una gran app, estás apoyándonos directamente mientras seguimos construyendo Whisper Money. Cada suscripción nos ayuda a mantener el proyecto y construir las funciones que realmente quieres.", - "As the founders, your feedback directly shapes what we build next. We personally read every response and take your suggestions seriously. When you subscribe, you're not just supporting some big corporation - you're helping us continue building something we're passionate about.": "Como fundadores, tus comentarios moldean directamente lo que construimos a continuación. Leemos personalmente cada respuesta y tomamos tus sugerencias en serio. Cuando te suscribes, no estás apoyando a una gran corporación, estás ayudándonos a seguir construyendo algo que nos apasiona.", - "Assign a new category": "Asignar una nueva categoría", - "At least one action is required": "Se requiere al menos una acción", - "Australian Dollar": "Dólar australiano", - "Authentication failed. Your credentials may have expired or been revoked.": "Autenticación fallida. Tus credenciales pueden haber expirado o sido revocadas.", - "Auto-detect": "Detectar automáticamente", - "Auto-sync transactions directly from your bank": "Sincroniza automáticamente las transacciones desde tu banco", - "Automate over time": "Automatiza con el tiempo", - "Automated categorization rules": "Reglas de categorización automática", - "Automatic categorization": "Categorización automática", - "Automatic sync": "Sincronización automática", - "Automatically categorize transactions with customizable rules and patterns.": "Categoriza automáticamente las transacciones con reglas y patrones personalizables.", - "Automatically sync transactions directly from your bank. No manual imports needed.": "Sincroniza automáticamente las transacciones desde tu banco. Sin importaciones manuales.", - "Automation Rules": "Reglas de Automatización", - "Automation rules": "Reglas de automatización", - "Automation rules settings": "Configuración de reglas de automatización", - "Automation rules to categorize transactions automatically.": "Reglas de automatización para categorizar transacciones automáticamente.", - "Automatize": "Automatizar", - "Automatize Categorization": "Automatizar categorización", - "Automatize the categorization of future transactions like this one": "Automatizar la categorización de futuras transacciones como esta", - "Available:": "Disponible:", - "Back": "Atrás", - "Back to Transactions": "Volver a Transacciones", - "Back to accounts": "Volver a las cuentas", - "Back to edit": "Volver a editar", - "Back to home": "Volver al inicio", - "Balance": "Balance", - "Balance (Optional)": "Balance (Opcional)", - "Balance Date": "Fecha del Balance", - "Balance History": "Historial de Balance", - "Balance Tracking": "Seguimiento de Balance", - "Balance evolution": "Evolución del balance", - "Balance on": "Balance del", - "Balances": "Balances", - "Bank": "Banco", - "Bank Account": "Cuenta Bancaria", - "Bank Connections": "Conexiones Bancarias", - "Bank Name": "Nombre del Banco", - "Bank account reconnected successfully.": "Cuenta bancaria reconectada exitosamente.", - "Bank accounts": "Cuentas bancarias", - "Bank connections automatically sync your transactions directly from your bank. This feature requires the Standard Plan.": "Las conexiones bancarias sincronizan automáticamente tus transacciones desde tu banco. Esta función requiere el Plan Standard.", - "Bank logo preview": "Vista previa del logo del banco", - "Bank name": "Nombre del banco", - "Be Smart About Spending & Investing": "Sé Inteligente con tus Gastos e Inversiones", - "Beautiful charts and graphs help you understand your spending patterns.": "Gráficos hermosos te ayudan a entender tus patrones de gasto.", - "Because you helped one of our first 10 join us, you get **Whisper Money Pro free, forever**. No trials, no expirations. Use the code below at checkout.": "Por ayudar a que uno de nuestros 10 primeros se uniera, te llevas **Whisper Money Pro gratis, para siempre**. Sin pruebas ni caducidades. Usa este código al pagar.", - "Before you go...": "Antes de irte...", - "Best Value": "Mejor Valor", - "Best,": "Saludos,", - "Bi-weekly": "Quincenal", - "Billed annually at": "Facturado anualmente a", - "Billed annually at $": "Facturado anualmente a $", - "Billing management is not available on the demo account.": "La gestión de facturación no está disponible en la cuenta demo.", - "Billing management is not available on the demo\\n account.": "La gestión de facturación no está disponible en la cuenta de demostración.", - "Bitcoin": "Bitcoin", - "Blue": "Azul", - "Bolivian Boliviano": "Boliviano", - "British Pound": "Libra esterlina", - "Browse Files": "Explorar Archivos", - "Budget Name": "Nombre del Presupuesto", - "Budget Spending": "Gasto del Presupuesto", - "Budget Tracking": "Seguimiento de Presupuesto", - "Budget alert and limit adjustment": "Alerta de presupuesto y ajuste de límite", - "Budget goals by category": "Objetivos de presupuesto por categoría", - "Budget insights and alerts": "Informes y alertas de presupuesto", - "Budget progress for Groceries": "Progreso del presupuesto de Supermercado", - "Budget resets to zero at the start of each period.": "El presupuesto se reinicia a cero al inicio de cada período.", - "Budgets": "Presupuestos", - "Build better budgets": "Crea mejores presupuestos", - "Built by two people, for real people": "Construido por dos personas, para personas reales", - "Built for speed with instant sync and smooth interactions.": "Construido para velocidad con sincronización instantánea e interacciones fluidas.", - "By creating an account or using Whisper Money, you agree to be bound by these Terms of Service and our Privacy Policy. If you do not agree to these terms, you may not use our service. These terms constitute a legally binding agreement between you and Whisper Money.": "Al crear una cuenta o usar Whisper Money, aceptas estar sujeto a estos Términos de Servicio y nuestra Política de Privacidad. Si no aceptas estos términos, no puedes usar nuestro servicio. Estos términos constituyen un acuerdo legalmente vinculante entre tú y Whisper Money.", - "By creating an account or using Whisper Money,\\n you agree to be bound by these Terms of Service\\n and our Privacy Policy. If you do not agree to\\n these terms, you may not use our service. These\\n terms constitute a legally binding agreement\\n between you and Whisper Money.": "Al crear una cuenta o usar Whisper Money, aceptas quedar vinculado por estos Términos de Servicio y nuestra Política de Privacidad. Si no aceptas estos términos, no puedes usar nuestro servicio. Estos términos constituyen un acuerdo legalmente vinculante entre tú y Whisper Money.", - "CSV, XLS, XLSX files": "Archivos CSV, XLS, XLSX", - "Cafes, restaurants, bars": "Cafeterías, restaurantes, bares", - "Calculate balances from transactions": "Calcular balances a partir de transacciones", - "Calendar month (1st)": "Mes calendario (día 1)", - "Can I connect my bank accounts directly?": "¿Puedo conectar mis cuentas bancarias directamente?", - "Can I export or delete my data?": "¿Puedo exportar o eliminar mis datos?", - "Canadian Dollar": "Dólar canadiense", - "Cancel": "Cancelar", - "Carry Over": "Acumular", - "Cash inflow": "Entrada de dinero", - "Cash outflow": "Salida de dinero", - "Cashflow": "Flujo de Caja", - "Cashflow Trend": "Tendencia del Flujo de Caja", - "Cashflow analytics": "Analitica de flujo de caja", - "Cashflow and charts": "Flujo de caja y gráficos", - "Cashflow at a Glance": "Flujo de Caja de un Vistazo", - "Cashflow income vs expenses bar chart": "Gráfico de barras de ingresos frente a gastos", - "Cashflow periods and analysis will start on this day.": "Los períodos y análisis de flujo de caja empezarán este día.", - "Cashflow visualization": "Visualización del flujo de caja", - "Categories below 5% of total": "Categorías por debajo del 5% del total", - "Categories settings": "Configuración de categorías", - "Categorize": "Categorizar", - "Categorize Transactions": "Categorizar Transacciones", - "Categorize Your Transactions": "Categoriza tus transacciones", - "Category": "Categoría", - "Category (Optional)": "Categoría (Opcional)", - "Category name": "Nombre de categoría", - "Change": "Cambiar", - "Change category": "Cambiar categoría", - "Change the category type above to change how this category appears in cashflow analytics.": "Cambia el tipo de categoría arriba para cambiar cómo aparece esta categoría en la analítica de flujo de caja.", - "Chart color scheme": "Esquema de colores del gráfico", - "Chart type": "Tipo de gráfico", - "Check Demo": "Ver Demo", - "Check that everything looks correct and click \"Import\". Your transactions are stored securely and never shared with anyone.": "Verifica que todo se vea correcto y haz clic en \"Importar\". Tus transacciones se almacenan de forma segura y nunca se comparten con nadie.", - "Check that everything looks correct and click \"Import\". Your transactions will be encrypted and stored securely.": "Verifica que todo se vea correcto y haz clic en \"Importar\". Tus transacciones serán encriptadas y almacenadas de forma segura.", - "Check your inbox — we've sent you an email.": "Revisa tu bandeja de entrada — te hemos enviado un correo.", - "Checking": "Cuenta Corriente", - "Child categories inherit their parent’s type and cashflow settings.": "Las categorías hijas heredan el tipo y la configuración de flujo de caja de su categoría padre.", - "Chilean Peso": "Peso chileno", - "Chinese Yuan": "Yuan chino", - "Choose Sankey chart visibility": "Elige la visibilidad en el gráfico Sankey", - "Choose a category type to see how it affects cashflow and charts.": "Elige un tipo de categoría para ver cómo afecta al flujo de caja y a los gráficos.", - "Choose a category type to see how this category will affect cashflow analytics.": "Elige un tipo de categoría para ver cómo afectará esta categoría a la analítica de flujo de caja.", - "Choose cashflow chart visibility": "Elige la visibilidad en el gráfico de flujo de caja", - "Choose how to handle each account from :bank. You can create new accounts, link to existing ones, or skip.": "Elige cómo gestionar cada cuenta de :bank. Puedes crear nuevas cuentas, vincularlas a las existentes u omitirlas.", - "Choose how to report this category": "Elige cómo reportar esta categoría", - "Choose how to report this transfer": "Elige como mostrar esta transferencia", - "Choose the account where transactions will be imported": "Elige la cuenta donde se importarán las transacciones", - "Choose the color palette for your charts": "Elige la paleta de colores para tus gráficos", - "Choose the plan that works for you": "Elige el plan que funcione para ti", - "Choose the plan that works for you. No hidden fees.": "Elige el plan que mejor se adapte a ti. Sin tarifas ocultas.", - "Choose your billing cycle": "Elige tu ciclo de facturación", - "City Electric Co.": "City Electric Co.", - "Claim Your Discount": "Reclama Tu Descuento", - "Clean interface, powerful features, and zero compromise on privacy. What more could you want?": "Interfaz limpia, funciones potentes y cero compromisos con la privacidad. ¿Qué más podrías querer?", - "Clear": "Limpiar", - "Clear Encryption Key?": "¿Borrar Clave de Encriptación?", - "Clear Key": "Borrar Clave", - "Clear selection": "Limpiar selección", - "Click here to resend the verification email.": "Haz clic aquí para reenviar el correo de verificación.", - "Click here to resend the\\n verification email.": "Haz clic aquí para reenviar el correo de verificación.", - "Click to lock encryption key": "Haz clic para bloquear la clave de encriptación", - "Click to unlock encryption key": "Haz clic para desbloquear la clave de encriptación", - "Client-Side Encryption": "Encriptación del Lado del Cliente", - "Close": "Cerrar", - "Coffee Lab": "Coffee Lab", - "Colombian Peso": "Peso colombiano", - "Color": "Color", - "Colorful": "Colorido", - "Columns": "Columnas", - "Commercial": "Comercial", - "Common Questions": "Preguntas Frecuentes", - "Community": "Comunidad", - "Company Name:": "Nombre de la Empresa:", - "Conditions": "Condiciones", - "Conditions joined by:": "Condiciones unidas por:", - "Confirm": "Confirmar", - "Confirm Password": "Confirmar Contraseña", - "Confirm password": "Confirmar contraseña", - "Confirm your email - Whisper Money": "Confirma tu correo electrónico - Whisper Money", - "Confirm your email address to reserve your Whisper Money waitlist spot.": "Confirma tu dirección de correo electrónico para reservar tu puesto en la lista de espera de Whisper Money.", - "Confirm your email to join the list": "Confirma tu correo electrónico para unirte a la lista", - "Confirm your encryption password": "Confirma tu contraseña de encriptación", - "Confirm your password": "Confirma tu contraseña", - "Confirm your waitlist spot - Whisper Money": "Confirma tu plaza en la lista de espera - Whisper Money", - "Confirmation": "Confirmación", - "Connect": "Conectar", - "Connect Bank": "Conectar Banco", - "Connect Bank Account": "Conectar Cuenta Bancaria", - "Connect Your Bank": "Conecta tu banco", - "Connect Your Banks": "Conecta tus bancos", - "Connect bank accounts": "Conectar cuentas bancarias", - "Connect in seconds": "Conecta en segundos", - "Connect your Binance account using your API Key and Secret.": "Conecta tu cuenta de Binance usando tu Clave API y Secreto.", - "Connect your Bitpanda account using your API Key.": "Conecta tu cuenta de Bitpanda usando tu Clave API.", - "Connect your Coinbase account using a CDP API key.": "Conecta tu cuenta de Coinbase usando una clave API de CDP.", - "Connect your Indexa Capital account using your API token.": "Conecta tu cuenta de Indexa Capital usando tu token API.", - "Connect your bank accounts": "Conecta tus cuentas bancarias", - "Connect your bank accounts, savings, investments, and more — all in a single dashboard. No more switching between apps or losing track of accounts.": "Conecta tus cuentas bancarias, ahorros, inversiones y más, todo en un único panel. Sin más cambiar entre apps ni perder el control de tus cuentas.", - "Connect your bank and sync transactions automatically.": "Conecta tu banco y sincroniza las transacciones automáticamente.", - "Connected": "Conectado", - "Connected Bank Accounts": "Cuentas Bancarias Conectadas", - "Connected account": "Cuenta conectada", - "Connected accounts are a Standard Plan feature. You'll choose a plan at the end of the onboarding.": "Las cuentas conectadas son una función del plan Standard. Elegirás un plan al final del proceso de incorporación.", - "Connected banks": "Bancos conectados", - "Connecting the dots in your finances...": "Conectando los puntos de tus finanzas...", - "Connecting...": "Conectando...", - "Connections": "Conexiones", - "Consider saving more if possible.": "Considera ahorrar más si es posible.", - "Continue": "Continuar", - "Continue Setup": "Continuar Configuración", - "Continue for free": "Continuar gratis", - "Continue to Import": "Continuar con Importación", - "Copied!": "¡Copiado!", - "Copy link": "Copiar enlace", - "Counterparties": "Contrapartes", - "Counting every penny...": "Contando cada céntimo...", - "Country": "País", - "Create": "Crear", - "Create \"": "Crear \"", - "Create Account": "Crear Cuenta", - "Create Automation Rule": "Crear Regla de Automatización", - "Create Budget": "Crear Presupuesto", - "Create Category": "Crear Categoría", - "Create Label": "Crear Etiqueta", - "Create Rule": "Crear Regla", - "Create Transaction": "Crear Transacción", - "Create Your Encryption Password": "Crea Tu Contraseña de Encriptación", - "Create Your First Account": "Crea Tu Primera Cuenta", - "Create a CDP API key (Ed25519 recommended) in the Coinbase Developer Platform under": "Crea una clave API de CDP (Ed25519 recomendado) en la Coinbase Developer Platform en", - "Create a CDP API key in the Coinbase Developer Platform under": "Crea una clave API de CDP en la Coinbase Developer Platform en", - "Create a Password": "Crear una Contraseña", - "Create a bank account, loan, or property to track it manually.": "Crea una cuenta bancaria, un prestamo o una propiedad para seguirla manualmente.", - "Create a new rule": "Crear una nueva regla", - "Create a new transaction": "Crea una nueva transacción", - "Create a new transaction.": "Crea una nueva transacción.", - "Create a rule to automatically categorize transactions and add labels.": "Crea una regla para categorizar automáticamente transacciones y agregar etiquetas.", - "Create a strong encryption password to secure your data": "Crea una contraseña de encriptación fuerte para proteger tus datos", - "Create account": "Crear cuenta", - "Create an Account": "Crear una Cuenta", - "Create an account": "Crear una cuenta", - "Create bank accounts, loans, or properties manually and import transactions.": "Crea cuentas bancarias, prestamos o propiedades manualmente e importa transacciones.", - "Create budgets that adapt to your spending habits and goals.": "Crea presupuestos que se adaptan a tus hábitos de gasto y metas.", - "Create budgets that adapt to your spending habits and help you reach your goals.": "Crea presupuestos que se adapten a tus hábitos de gasto y te ayuden a alcanzar tus objetivos.", - "Create new account": "Crear nueva cuenta", - "Create or update a rule so future transactions with this description are categorized automatically.": "Crea o actualiza una regla para que futuras transacciones con esta descripción se categoricen automáticamente.", - "Create realistic budgets based on your actual spending habits.": "Crea presupuestos realistas basados en tus hábitos de gasto reales.", - "Create rules like \"If description contains 'AMAZON', categorize as Shopping\"": "Crea reglas como \"Si la descripción contiene 'AMAZON', categorizar como Compras\"", - "Create rules like \"If description contains \\'AMAZON\\', categorize as Shopping\"": "Crea reglas como \"Si la descripción contiene 'AMAZON', categorizar como Compras\"", - "Create rules to automatically categorize your transactions based on patterns you define.": "Crea reglas para categorizar automáticamente tus transacciones basándote en patrones que definas.", - "Create the account now, update at any moment": "Crea la cuenta ahora, actualízala en cualquier momento", - "Create your account": "Crear mi cuenta", - "Create, edit, and delete rules anytime": "Crea, edita y elimina reglas en cualquier momento", - "Creating subscription...": "Creando suscripción...", - "Creating...": "Creando...", - "Credentials updated. Sync started.": "Credenciales actualizadas. Sincronización iniciada.", - "Credit": "Crédito", - "Credit Card": "Tarjeta de Crédito", - "Creditor": "Acreedor", - "Creditor Name": "Nombre del acreedor", - "Creditor name": "Nombre del acreedor", - "Creditor name (Optional)": "Nombre del acreedor (opcional)", - "Crunching the numbers...": "Calculando los números...", - "Ctrl+B": "Ctrl+B", - "Ctrl+N": "Ctrl+N", - "Ctrl+R": "Ctrl+R", - "Currency": "Moneda", - "Current Balance": "Balance Actual", - "Current password": "Contraseña actual", - "Custom": "Personalizado", - "Custom Labels": "Etiquetas Personalizadas", - "Customize Categories": "Personalizar Categorías", - "Customize Your Categories": "Personaliza Tus Categorías", - "DD-MM-YYYY (e.g., 31-12-2024)": "DD-MM-YYYY (ej., 31-12-2024)", - "DELETE": "ELIMINAR", - "Daily": "Diario", - "Daily spending and transactions": "Gastos diarios y transacciones", - "Dark": "Oscuro", - "Dashboard": "Panel", - "Data Accuracy:": "Precisión de Datos:", - "Data Imported": "Datos Importados", - "Data is Encrypted": "Los Datos Están Encriptados", - "Date": "Fecha", - "Date Format": "Formato de Fecha", - "Date is required": "Se requiere una fecha", - "David K.": "David K.", - "Day :day": "Día :day", - "Day of the month when the period starts (1-31)": "Día del mes en que comienza el período (1-31)", - "Day of week (0=Sunday, 6=Saturday)": "Día de la semana (0=Domingo, 6=Sábado)", - "Debtor": "Deudor", - "Debtor Name": "Nombre del deudor", - "Debtor name": "Nombre del deudor", - "Debtor name (Optional)": "Nombre del deudor (opcional)", - "Define monthly budgets by category. Know exactly how much you can spend.": "Define presupuestos mensuales por categoría. Sabe exactamente cuánto puedes gastar.", - "Delete": "Eliminar", - "Delete :count Transactions": "Borrar :count transacciones", - "Delete Account": "Eliminar Cuenta", - "Delete Automation Rule": "Eliminar Regla de Automatización", - "Delete Budget": "Eliminar Presupuesto", - "Delete Category": "Eliminar Categoría", - "Delete Label": "Eliminar Etiqueta", - "Delete Transaction": "Eliminar Transacción", - "Delete Transactions": "Eliminar Transacciones", - "Delete account": "Eliminar cuenta", - "Delete accounts": "Eliminar cuentas", - "Delete balance": "Eliminar balance", - "Delete budget": "Eliminar presupuesto", - "Delete owed amount": "Eliminar monto adeudado", - "Delete this category and all of its children": "Eliminar esta categoría y todas sus categorías hijas", - "Delete your account and all of its resources": "Elimina tu cuenta y todos sus recursos", - "Deleting...": "Eliminando...", - "Demo encryption password:": "Contraseña de encriptación de demo:", - "Description": "Descripción", - "Description is required": "Se requiere una descripción", - "Details": "Detalles", - "Details →": "Detalles →", - "Dining Out": "Cenas y restaurantes", - "Disable 2FA": "Desactivar 2FA", - "Disable privacy mode": "Desactivar modo privado", - "Disabled": "Desactivado", - "Disconnect": "Desconectar", - "Disconnect Bank": "Desconectar Banco", - "Disconnecting...": "Desconectando...", - "Discord": "Discord", - "Discord for 80% off": "Discord con 80% de descuento", - "Do not show": "No mostrar", - "Do not show in Sankey": "No mostrar en Sankey", - "Do not show in cashflow chart": "No mostrar en el gráfico de flujo de caja", - "Don't have an account?": "¿No tienes una cuenta?", - "Don't want these emails? You can manage your notifications in your [account settings](:url).": "¿No quieres recibir estos correos? Puedes gestionar tus notificaciones en los [ajustes de tu cuenta](:url).", - "Download as CSV or Excel format": "Descargar en formato CSV o Excel", - "Drop your CSV or Excel file here, or click to browse": "Arrastra tu archivo CSV o Excel aquí, o haz clic para buscar", - "Drop your file here, or click to browse": "Arrastra tu archivo aquí, o haz clic para explorar", - "Duplicate": "Duplicado", - "Duplicates": "Duplicados", - "Each code is single-use and tied to your email — please keep them private.": "Cada código es de un solo uso y está vinculado a tu email — guárdalos en privado.", - "Each confirmed referral moves you 10 spots forward.": "Cada referido confirmado te adelanta 10 puestos.", - "Each recovery code can be used once to access your account and will be removed after use. If you need more, click": "Cada código de recuperación se puede usar una vez para acceder a tu cuenta y será eliminado después de usarse. Si necesitas más, haz clic", - "Each recovery code can be used once to\\n access your account and will be removed\\n after use. If you need more, click": "Cada código de recuperación se puede usar una vez para acceder a tu cuenta y se eliminará después de su uso. Si necesitas más, haz clic", - "Edit": "Editar", - "Edit Account": "Editar Cuenta", - "Edit Automation Rule": "Editar Regla de Automatización", - "Edit Balance": "Editar Balance", - "Edit Budget": "Editar Presupuesto", - "Edit Category": "Editar Categoría", - "Edit Label": "Editar Etiqueta", - "Edit Loan Details": "Editar Detalles del Préstamo", - "Edit Owed Amount": "Editar Monto Adeudado", - "Edit Property Details": "Editar Detalles de Propiedad", - "Edit Transaction": "Editar transacción", - "Edit account": "Editar cuenta", - "Edit budget": "Editar presupuesto", - "Edit loan details": "Editar detalles del préstamo", - "Electricity": "Electricidad", - "Email": "Correo Electrónico", - "Email address": "Dirección de correo electrónico", - "Email address, name, and password (encrypted)": "Dirección de correo electrónico, nombre y contraseña (encriptados)", - "Email password reset link": "Enviar enlace para restablecer contraseña", - "Email verification": "Verificación de correo electrónico", - "Email:": "Correo:", - "Email\\n address, name, and password (encrypted)": "Dirección de correo electrónico, nombre y contraseña (cifrada)", - "Emergency Fund": "Fondo de Emergencia", - "Emma L.": "Emma L.", - "Enable 2FA": "Activar 2FA", - "Enable privacy mode": "Activar modo privado", - "Enabled": "Activado", - "Encrypted on your device": "Encriptado en tu dispositivo", - "Encryption Password": "Contraseña de Encriptación", - "Encryption Set": "Encriptación Configurada", - "Encryption at Rest:": "Cifrado en Reposo:", - "Encryption in Transit:": "Cifrado en Tránsito:", - "Encryption key not available": "Clave de encriptación no disponible", - "Encryption key not available. Please go back and set up encryption.": "Clave de encriptación no disponible. Por favor, vuelve atrás y configura la encriptación.", - "English": "Inglés", - "Ensure your account is using a long, random password to stay secure": "Asegúrate de que tu cuenta esté usando una contraseña larga y aleatoria para mantenerse segura", - "Ensure your account is using a long, random password to stay secure.": "Asegúrate de que tu cuenta esté usando una contraseña larga y aleatoria para mantenerte seguro.", - "Enter a strong encryption password": "Ingresa una contraseña de encriptación fuerte", - "Enter a strong password": "Ingresa una contraseña fuerte", - "Enter recovery code": "Ingresar código de recuperación", - "Enter transactions yourself or import a CSV file": "Introduce transacciones tú mismo o importa un archivo CSV", - "Enter your API Key and Secret to connect your Binance account.": "Introduce tu Clave API y Secreto para conectar tu cuenta de Binance.", - "Enter your API Key to connect your Bitpanda account.": "Introduce tu Clave API para conectar tu cuenta de Bitpanda.", - "Enter your API token to connect your Indexa Capital account.": "Introduce tu token API para conectar tu cuenta de Indexa Capital.", - "Enter your CDP API key name and private key to connect your Coinbase account.": "Introduce el nombre de tu clave API de CDP y la clave privada para conectar tu cuenta de Coinbase.", - "Enter your CDP App Key ID and Secret to connect your Coinbase account.": "Introduce el ID de tu Clave API de CDP y el Secreto para conectar tu cuenta de Coinbase.", - "Enter your details below to create your account": "Ingresa tus datos a continuación para crear tu cuenta", - "Enter your email and password below to log in": "Ingresa tu correo electrónico y contraseña a continuación para iniciar sesión", - "Enter your email to receive a password reset link": "Ingresa tu correo electrónico para recibir un enlace para restablecer contraseña", - "Enter your encryption password": "Ingresa tu contraseña de encriptación", - "Enter your encryption password to decrypt transactions information and accounts name.": "Ingresa tu contraseña de encriptación para descifrar la información de transacciones y nombres de cuentas.", - "Enter your encryption password to decrypt your transactions information.": "Introduce tu contraseña de cifrado para descifrar la información de tus transacciones.", - "Enter your new API credentials for :provider.": "Introduce tus nuevas credenciales API para :provider.", - "Entertainment": "Entretenimiento", - "Entertainment (Movies, Sports, Hobbies)": "Entretenimiento (Películas, Deportes, Hobbies)", - "Entertainment · Only $8 remaining this month": "Entretenimiento · Solo $8 restante este mes", - "Entertainment → $100": "Entretenimiento → $100", - "Equity": "Patrimonio neto", - "Error": "Error", - "Errors (": "Errores (", - "Español": "Español", - "Euro": "Euro", - "Even we can't access your data. It's truly private.": "Ni siquiera nosotros podemos acceder a tus datos. Es verdaderamente privado.", - "Every Transaction": "Cada Transacción", - "Every person who joins through your link moves you **10 positions forward** in the queue.": "Cada persona que se una a través de tu enlace te adelanta **10 posiciones** en la fila.", - "Every person who joins through your link moves you another 10 spots closer to the front — so keep sharing!": "Cada persona que se una a través de tu enlace te acerca otros 10 puestos al frente — ¡sigue compartiendo!", - "Every transaction belongs to one of three types:": "Cada transacción pertenece a uno de tres tipos:", - "Every transaction tracked": "Cada transacción registrada", - "Everything in One Place": "Todo en Un Solo Lugar", - "Everything you need to know before getting started.": "Todo lo que necesitas saber antes de empezar.", - "Everything you need to manage your finances securely.": "Todo lo que necesitas para gestionar tus finanzas de forma segura.", - "Everything you need. Nothing you don't.": "Todo lo que necesitas. Nada que no.", - "Expense": "Gasto", - "Expense Categories": "Categorías de Gastos", - "Expense categories automatically appear as cash outflows in cashflow analytics.": "Las categorías de gasto aparecen automáticamente como salidas de dinero en la analítica de flujo de caja.", - "Expense categories count as cash outflow and appear in spending charts, including top spending categories.": "Las categorías de gasto cuentan como salida de dinero y aparecen en los gráficos de gasto, incluidas las categorías con más gasto.", - "Expense tracking": "Seguimiento de gastos", - "Expenses": "Gastos", - "Expires": "Vence", - "Export": "Exportar", - "Export Data": "Exportar Datos", - "Export a CSV or XLS from your bank and drag it in. A year's worth of transactions imported in under 10 seconds.": "Exporta un CSV o XLS de tu banco y arrástralo aquí. Un año de transacciones importado en menos de 10 segundos.", - "Export from any bank": "Exporta desde cualquier banco", - "Failed to apply rule to transactions.": "No se pudo aplicar la regla a las transacciones.", - "Failed to connect. Please try again.": "Error al conectar. Por favor, inténtalo de nuevo.", - "Failed to create account. Please try again.": "Error al crear la cuenta. Por favor, inténtalo de nuevo.", - "Failed to create transaction": "Error al crear la transacción", - "Failed to decrypt message. Please check your password and try again.": "Error al descifrar el mensaje. Por favor verifica tu contraseña e inténtalo de nuevo.", - "Failed to load banks. Please try again.": "Error al cargar los bancos. Por favor, inténtalo de nuevo.", - "Failed to load import data": "No se pudieron cargar los datos de importación", - "Failed to load matching transactions.": "No se pudieron cargar las transacciones coincidentes.", - "Failed to re-evaluate rules. Please try again.": "No se pudieron reevaluar las reglas. Inténtalo de nuevo.", - "Failed to reconnect. Please try again.": "Error al reconectar. Por favor, inténtalo de nuevo.", - "Failed to set balance. Please try again.": "Error al establecer el balance. Por favor, inténtalo de nuevo.", - "Failed to setup encryption. Please try again.": "Error al configurar la encriptación. Por favor, inténtalo de nuevo.", - "Failed to start re-authorization.": "Error al iniciar la reautorización.", - "Failed to sync with the provider. Please try again later.": "No se pudo sincronizar con el proveedor. Inténtalo de nuevo más tarde.", - "Failed to update credentials. Please try again.": "Error al actualizar las credenciales. Por favor, inténtalo de nuevo.", - "Failed to update transaction": "Error al actualizar la transacción", - "Failed to update transactions": "No se pudieron actualizar las transacciones", - "Failed to update transactions with labels": "No se pudieron actualizar las transacciones con etiquetas", - "Fair": "Aceptable", - "Feedback": "Comentarios", - "Fetching your transactions...": "Obteniendo tus transacciones...", - "Filter": "Filtrar", - "Filter accounts...": "Filtrar cuentas...", - "Filter categories...": "Filtrar categorías...", - "Filter labels...": "Filtrar etiquetas...", - "Filter rules...": "Filtrar reglas...", - "Filter rules....": "Filtrar reglas....", - "Filters": "Filtros", - "Finally, a finance app that respects my privacy. Knowing my data isn't being shared gives me peace of mind.": "Por fin, una aplicación financiera que respeta mi privacidad. Saber que mis datos no se comparten me da tranquilidad.", - "Finally, a finance app that respects my privacy. The encryption gives me peace of mind.": "Finalmente, una app de finanzas que respeta mi privacidad. La encriptación me da tranquilidad.", - "Financial Advice Disclaimer:": "Descargo de Responsabilidad sobre Asesoramiento Financiero:", - "Financial Data:": "Datos Financieros:", - "Financial decisions made based on data in the application": "Decisiones financieras tomadas basándose en datos de la aplicación", - "Financial decisions made based on data in\\n the application": "Decisiones financieras tomadas basándose en los datos de la aplicación", - "Finding historical transactions": "Buscando transacciones históricas", - "Finish Setup": "Finalizar Configuración", - "First, thank you for giving Whisper Money a try. I hope it helped you get a better handle on your finances while keeping your data private.": "Primero, gracias por probar Whisper Money. Espero que te haya ayudado a manejar mejor tus finanzas mientras mantenías tus datos privados.", - "First, thank you for giving Whisper Money a try. We hope it helped you get a better handle on your finances while keeping your data private.": "Primero, gracias por probar Whisper Money. Esperamos que te haya ayudado a manejar mejor tus finanzas mientras mantenías tus datos privados.", - "Food & Dining (Groceries, Restaurants, Delivery)": "Alimentación (Supermercado, Restaurantes, Delivery)", - "Forgot password": "Olvidé mi contraseña", - "Forgot password?": "¿Olvidaste tu contraseña?", - "Founders of Whisper Money": "Fundadores de Whisper Money", - "Free": "Gratis", - "Freelance Invoice": "Factura Freelance", - "Frequently Asked Questions": "Preguntas Frecuentes", - "From": "Desde", - "Full name": "Nombre completo", - "Fully transparent and open source. Review the code yourself.": "Totalmente transparente y de código abierto. Revisa el código tú mismo.", - "Future transactions will be categorized automatically either way. You can preview the matches before confirming.": "Las transacciones futuras se categorizarán automáticamente de todos modos. Puedes previsualizar las coincidencias antes de confirmar.", - "Gain/loss": "Ganancia/pérdida", - "Get Started": "Comenzar", - "Get Started Free": "Empieza Gratis", - "Get Started for Free": "Empieza Gratis", - "Get a clear picture of where your money goes every month.": "Obtén una imagen clara de a dónde va tu dinero cada mes.", - "Get a clear picture of where your money goes every month. Track spending across all your accounts, spot patterns, and make sense of your financial life at a glance.": "Obtén una imagen clara de a dónde va tu dinero cada mes. Rastrea gastos en todas tus cuentas, detecta patrones y entiende tu vida financiera de un vistazo.", - "Get help when you need it with priority email support.": "Obtén ayuda cuando la necesites con soporte prioritario por correo electrónico.", - "Get notified when you're close to your limit. Never overspend again.": "Recibe notificaciones cuando estés cerca de tu límite. Nunca vuelvas a gastar de más.", - "Get started at no cost. No bank connections included.": "Empieza sin coste. Sin conexiones bancarias incluidas.", - "Get started quickly with your existing financial data.": "Comienza rápidamente con tus datos financieros existentes.", - "Github": "Github", - "Go now": "Ir ahora", - "Go to Dashboard": "Ir al Panel", - "Go to Settings": "Ir a Configuración", - "Go to your account's transaction history": "Ve al historial de transacciones de tu cuenta", - "Go to your dashboard and click \"Import Transactions\". Select your CSV file and I'll map the columns automatically.": "Ve a tu panel y haz clic en \"Importar Transacciones\". Selecciona tu archivo CSV y mapearé las columnas automáticamente.", - "Go to your dashboard and click \"Import Transactions\". Select your CSV file and we'll map the columns automatically.": "Ve a tu panel y haz clic en \"Importar Transacciones\". Selecciona tu archivo CSV y mapearemos las columnas automáticamente.", - "Gold Card": "Tarjeta Oro", - "Good": "Buena", - "Good progress on your savings.": "Buen progreso en tus ahorros.", - "Got it": "Entendido", - "Great Progress!": "¡Gran Progreso!", - "Great job! You're saving well.": "¡Excelente trabajo! Estás ahorrando bien.", - "Groceries": "Supermercado", - "Groups joined by:": "Grupos unidos por:", - "Health & Wellness (Medical, Pharmacy, Fitness)": "Salud y Bienestar (Médico, Farmacia, Gimnasio)", - "Health and pharmaceuticals": "Salud y farmacia", - "Healthy Pharmacy": "Healthy Pharmacy", - "Help Me Improve": "Ayúdame a Mejorar", - "Help Us Improve": "Ayúdanos a Mejorar", - "Hey :name, is everything okay?": "Hey :name, ¿está todo bien?", - "Hey there!": "¡Hola!", - "Hey! A quick heads-up.": "¡Hola! Un aviso rápido.", - "Hey! We have some great news.": "¡Hola! Tenemos buenas noticias.", - "Hide password": "Ocultar contraseña", - "Hide subcategories": "Ocultar subcategorías", - "Hi :name,": "Hola :name,", - "Hi! I'm Victor, the founder of Whisper Money. I wanted to personally welcome you and thank you for joining us.": "¡Hola! Soy Víctor, el fundador de Whisper Money. Quería darte la bienvenida personalmente y agradecerte por unirte.", - "Hi! It's Victor and Álvaro here, the founders of Whisper Money. You've been using the app for a few days now, and we'd love to hear how it's working for you.": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Llevas unos días usando la app y nos encantaría saber cómo te está funcionando.", - "Hi! It's Victor and Álvaro, the founders of Whisper Money. We noticed you've cancelled your subscription, and we wanted to reach out personally.": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Notamos que cancelaste tu suscripción y queríamos contactarte personalmente.", - "Hi! It's Victor and Álvaro, the founders of Whisper Money. We noticed you've completed your setup but haven't imported any transactions yet. Let us help you get started!": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Notamos que completaste tu configuración pero aún no has importado transacciones. ¡Déjanos ayudarte a empezar!", - "Hi! It's Victor and Álvaro, the founders of Whisper Money. We see you've already started importing your transactions - that's awesome! You're well on your way to taking control of your finances while keeping your data private.": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Vemos que ya has empezado a importar tus transacciones, ¡genial! Estás en camino de tomar el control de tus finanzas mientras mantienes tus datos privados.", - "Hi! It's Victor here, the founder of Whisper Money. You've been using the app for a few days now, and I'd love to hear how it's working for you.": "¡Hola! Soy Víctor, el fundador de Whisper Money. Llevas unos días usando la app y me encantaría saber cómo te está funcionando.", - "Hi! It's Victor, the founder of Whisper Money. I noticed you signed up but haven't completed your setup yet. I wanted to check in personally and see if something went wrong or if you need any help.": "¡Hola! Soy Víctor, el fundador de Whisper Money. Noté que te registraste pero aún no has completado tu configuración. Quería contactarte personalmente para ver si algo salió mal o si necesitas ayuda.", - "Hi! It's Victor, the founder of Whisper Money. I noticed you've cancelled your subscription, and I wanted to reach out personally.": "¡Hola! Soy Víctor, el fundador de Whisper Money. Noté que cancelaste tu suscripción y quería contactarte personalmente.", - "Hi! It's Victor, the founder of Whisper Money. I noticed you've completed your setup but haven't imported any transactions yet. Let me help you get started!": "¡Hola! Soy Víctor, el fundador de Whisper Money. Noté que completaste tu configuración pero aún no has importado transacciones. ¡Déjame ayudarte a empezar!", - "Hi! It's Victor, the founder of Whisper Money. I see you've already started importing your transactions - that's awesome! You're well on your way to taking control of your finances while keeping your data private.": "¡Hola! Soy Víctor, el fundador de Whisper Money. Veo que ya has empezado a importar tus transacciones, ¡genial! Estás en camino de tomar el control de tus finanzas mientras mantienes tus datos privados.", - "Hi! We're Victor and Álvaro, the founders of Whisper Money. We noticed you signed up but haven't completed your setup yet. We wanted to check in personally and see if something went wrong or if you need any help.": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Notamos que te registraste pero aún no has completado tu configuración. Queríamos contactarte personalmente para ver si algo salió mal o si necesitas ayuda.", - "Hi! We're Victor and Álvaro, the founders of Whisper Money. We wanted to personally welcome you and thank you for joining us.": "¡Hola! Somos Víctor y Álvaro, los fundadores de Whisper Money. Queríamos darte la bienvenida personalmente y agradecerte por unirte.", - "High-Yield Savings": "Ahorro de Alta Rentabilidad", - "Housing (Rent, Utilities, Maintenance)": "Vivienda (Alquiler, Suministros, Mantenimiento)", - "How We Protect Your Privacy": "Cómo Protegemos Tu Privacidad", - "How is my financial data kept private?": "¿Cómo se mantienen privados mis datos financieros?", - "How much do you want to budget per period?": "¿Cuánto deseas presupuestar por período?", - "How to Export from Your Bank:": "Cómo Exportar desde Tu Banco:", - "How to Import Your Transactions": "Cómo Importar Tus Transacciones", - "How would you like to set up this account?": "¿Cómo te gustaría configurar esta cuenta?", - "How's Your Experience So Far?": "¿Cómo Va Tu Experiencia Hasta Ahora?", - "How's it going, :name?": "¿Cómo va todo, :name?", - "I Understand, Continue": "Entiendo, Continuar", - "I built Whisper Money because I believe **your financial data should be yours alone**:": "Construí Whisper Money porque creo que **tus datos financieros deben ser solo tuyos**:", - "I don't use AI to analyze your spending or sell insights about your habits. Your financial data stays between you and your spreadsheet-loving self.": "No uso IA para analizar tus gastos ni vender información sobre tus hábitos. Tus datos financieros quedan entre tú y tu afición por las hojas de cálculo.", - "I know setting up a new app can be overwhelming, and I want to make sure you have everything you need to get started.": "Sé que configurar una nueva app puede ser abrumador, y quiero asegurarme de que tengas todo lo que necesitas para empezar.", - "I support CSV imports from most banks. Just export your transactions and upload them - it takes less than a minute. If your bank format is different, just let me know and I can help.": "Soporto importación CSV de la mayoría de bancos. Solo exporta tus transacciones y súbelas, toma menos de un minuto. Si el formato de tu banco es diferente, avísame y te ayudo.", - "I switched from Mint and haven't looked back. The privacy features are unmatched.": "Cambié desde Mint y no he mirado atrás. Las características de privacidad no tienen comparación.", - "IP address, browser type, device information, and operating system": "Dirección IP, tipo de navegador, información del dispositivo y sistema operativo", - "IP\\n address, browser type, device information,\\n and operating system": "Dirección IP, tipo de navegador, información del dispositivo y sistema operativo", - "Icon": "Ícono", - "Identify categories where you can cut back and save more.": "Identifica las categorías donde puedes gastar menos y ahorrar más.", - "If a transaction repeats with a certain frequency or is recurring, you can create an automatic rule for it by clicking this button.": "Si una transacción se repite con cierta frecuencia o es recurrente, puedes crear una regla automática para ella haciendo clic en este botón.", - "If privacy-first personal finance still sounds useful, your early access is still ready. Whisper Money helps you import transactions, organize spending, and understand your money without selling or sharing your financial data.": "Si una app de finanzas personales centrada en la privacidad sigue sonándote útil, tu acceso anticipado sigue listo. Whisper Money te ayuda a importar transacciones, organizar tus gastos y entender tu dinero sin vender ni compartir tus datos financieros.", - "If there's anything that didn't work well for you, or if you have suggestions for improvement, I'd genuinely love to hear about it. As a solo founder, your feedback is invaluable in making Whisper Money better.": "Si hay algo que no funcionó bien para ti, o si tienes sugerencias para mejorar, me encantaría saberlo. Como fundador en solitario, tus comentarios son invaluables para mejorar Whisper Money.", - "If there's anything that didn't work well for you, or if you have suggestions for improvement, we'd genuinely love to hear about it. As the founders, your feedback is invaluable in making Whisper Money better.": "Si hay algo que no funcionó bien para ti, o si tienes sugerencias para mejorar, nos encantaría saberlo. Como fundadores, tus comentarios son invaluables para mejorar Whisper Money.", - "If you didn't create a Whisper Money account, you can safely ignore this email.": "Si no creaste una cuenta en Whisper Money, puedes ignorar este correo.", - "If you have any questions or just want to chat, simply reply to this email. I read and respond to every message personally.": "Si tienes alguna pregunta o simplemente quieres charlar, responde a este correo. Leo y respondo personalmente cada mensaje.", - "If you have any questions or just want to chat, simply reply to this email. We read and respond to every message personally.": "Si tienes alguna pregunta o simplemente quieres charlar, responde a este correo. Leemos y respondemos personalmente cada mensaje.", - "If you have any questions or run into any issues, **just reply to this email**. I personally read every message and I'm here to help!": "Si tienes alguna pregunta o problema, **simplemente responde a este correo**. Leo personalmente cada mensaje y estoy aquí para ayudar.", - "If you have any questions or run into any issues, **just reply to this email**. We personally read every message and we're here to help!": "Si tienes alguna pregunta o problema, **simplemente responde a este correo**. Leemos personalmente cada mensaje y estamos aquí para ayudar.", - "If you have any questions, concerns, or feedback about these Terms of Service, please contact us:": "Si tienes alguna pregunta, inquietud o comentario sobre estos Términos de Servicio, por favor contáctanos:", - "If you have any questions, concerns, or feedback\\n about these Terms of Service, please contact us:": "Si tienes alguna pregunta, inquietud o comentario sobre estos Términos de Servicio, contáctanos:", - "If you have any questions, concerns, or requests regarding this Privacy Policy or our data practices, please contact us:": "Si tienes alguna pregunta, inquietud o solicitud con respecto a esta Política de Privacidad o nuestras prácticas de datos, por favor contáctanos:", - "If you have any questions, concerns, or requests\\n regarding this Privacy Policy or our data\\n practices, please contact us:": "Si tienes alguna pregunta, inquietud o solicitud sobre esta Política de Privacidad o nuestras prácticas de datos, contáctanos:", - "If you skip, rules will still apply automatically to future transactions.": "Si omites este paso, las reglas se seguirán aplicando automáticamente a futuras transacciones.", - "If you'd like to come back, here's a special offer just for you:": "Si te gustaría volver, aquí tienes una oferta especial solo para ti:", - "If you're having trouble clicking the \"Verify Email Address\" button, copy and paste the URL below into your web browser:": "Si tienes problemas para hacer clic en el botón \"Verificar Correo Electrónico\", copia y pega la URL de abajo en tu navegador web:", - "If you're having trouble with the import or need help with your specific bank's format, just reply to this email. I personally handle support and I'm happy to help you figure it out.": "Si tienes problemas con la importación o necesitas ayuda con el formato de tu banco, simplemente responde a este correo. Yo personalmente manejo el soporte y estaré encantado de ayudarte.", - "If you're having trouble with the import or need help with your specific bank's format, just reply to this email. We personally handle support and we're happy to help you figure it out.": "Si tienes problemas con la importación o necesitas ayuda con el formato de tu banco, simplemente responde a este correo. Nosotros personalmente gestionamos el soporte y estaremos encantados de ayudarte.", - "Ignore": "Ignorar", - "Import": "Importar", - "Import Transactions": "Importar Transacciones", - "Import Your Transactions": "Importa Tus Transacciones", - "Import Your Transactions in Seconds": "Importa Tus Transacciones en Segundos", - "Import a year's worth of transactions in under 10 seconds. Simply export a CSV or XLS file from your bank and drag it into Whisper Money. All data is encrypted locally before upload.": "Importa transacciones de un año completo en menos de 10 segundos. Simplemente exporta un archivo CSV o XLS desde tu banco y arrástralo a Whisper Money. Todos los datos se encriptan localmente antes de subirse.", - "Import balance history from CSV files": "Importar historial de balances desde archivos CSV", - "Import balances": "Importar balances", - "Import in Seconds": "Importa en Segundos", - "Import in seconds": "Importa en segundos", - "Import market values": "Importar valores de mercado", - "Import owed amounts": "Importar montos adeudados", - "Import transactions": "Importar transacciones", - "Import transactions for your account. You can export transaction history from your bank's website.": "Importa transacciones para tu cuenta. Puedes exportar el historial de transacciones desde la web de tu banco.", - "Import transactions from CSV or Excel files": "Importar transacciones desde archivos CSV o Excel", - "Import transactions from CSV/Excel": "Importar transacciones desde CSV/Excel", - "Import transactions from a CSV file": "Importar transacciones desde un archivo CSV", - "Import transactions in seconds": "Importa transacciones en segundos", - "Import your transaction history to start tracking your finances.": "Importa tu historial de transacciones para empezar a rastrear tus finanzas.", - "Imported": "Importado", - "Importing Transactions": "Importando Transacciones", - "Importing your balances...": "Importando tus saldos...", - "Include loan balances in the net worth totals and chart": "Incluir los saldos de préstamos en los totales y el gráfico del patrimonio neto", - "Include loans": "Incluir préstamos", - "Include real estate": "Incluir bienes raíces", - "Include real estate assets in the net worth totals and chart": "Incluir bienes raíces en los totales y gráfico de patrimonio neto", - "Income": "Ingresos", - "Income (Salary, Freelance, Investments)": "Ingresos (Salario, Freelance, Inversiones)", - "Income Sources": "Fuentes de Ingresos", - "Income categories automatically appear as cash inflows in cashflow analytics.": "Las categorías de ingreso aparecen automáticamente como entradas de dinero en la analítica de flujo de caja.", - "Income categories count as cash inflow and appear in income charts. They do not appear in top spending categories.": "Las categorías de ingreso cuentan como entrada de dinero y aparecen en los gráficos de ingresos. No aparecen en las categorías con más gasto.", - "Income minus expenses": "Ingresos menos gastos", - "Indian Rupee": "Rupia india", - "Information about how you use our service, including access times and features used": "Información sobre cómo usas nuestro servicio, incluyendo horarios de acceso y funciones utilizadas", - "Information about how you use our service,\\n including access times and features used": "Información sobre cómo usas nuestro servicio, incluyendo tiempos de acceso y funciones utilizadas", - "Inherited from parent": "Heredado de la categoría padre", - "Install App": "Instalar App", - "Install Whisper Money": "Instalar Whisper Money", - "Instant Application": "Aplicación Instantánea", - "Intelligent insights": "Análisis inteligentes", - "Invalid credentials. Please check and try again.": "Credenciales inválidas. Revísalas e inténtalo de nuevo.", - "Invested": "Invertido", - "Invested Amount": "Cantidad Invertida", - "Invested amount": "Cantidad invertida", - "Investment": "Inversión", - "Investment Portfolio": "Cartera de Inversión", - "Investment categories appear as invested money at the top of cashflow and as cash outflow in the cashflow chart. They stay out of income, expenses, and top spending categories.": "Las categorías de inversión aparecen como dinero invertido en la parte superior del flujo de caja y como salida de dinero en el gráfico de flujo de caja. Quedan fuera de ingresos, gastos y categorías con más gasto.", - "Investment categories stay out of income and expense totals in cashflow analytics.": "Las categorías de inversión quedan fuera de los totales de ingresos y gastos en la analítica de flujo de caja.", - "Investment categories stay out of income, expenses, cashflow totals, and top spending categories.": "Las categorías de inversión quedan fuera de ingresos, gastos, totales de flujo de caja y categorías con más gasto.", - "Is Whisper Money open source?": "¿Es Whisper Money de código abierto?", - "Is the app meeting your expectations?": "¿La app cumple con tus expectativas?", - "Is the encryption confusing?": "¿La encriptación es confusa?", - "Is there anything confusing or frustrating?": "¿Hay algo confuso o frustrante?", - "It's personal finance, but actually private.": "Son tus finanzas personales, pero realmente privadas.", - "Japanese Yen": "Yen japonés", - "Jessica P.": "Jessica P.", - "Join Waitlist": "Unirse a la lista", - "Join our Discord": "Únete a nuestro Discord", - "Join the waiting list. We'll let you know when you're in.": "Únete a la lista de espera. Te avisaremos cuando sea tu turno.", - "Join thousands of users who have taken control of their finances without compromising their privacy.": "Únete a miles de usuarios que han tomado el control de sus finanzas sin comprometer su privacidad.", - "Just reply to this email and let me know what's happening. I personally read every response and will help you get started. This is my project, so I care about making sure it works for you.": "Simplemente responde a este correo y cuéntame qué está pasando. Leo personalmente cada respuesta y te ayudaré a empezar. Este es mi proyecto, así que me importa que funcione para ti.", - "Just reply to this email and let us know what's happening. We personally read every response and will help you get started.": "Simplemente responde a este correo y cuéntanos qué está pasando. Leemos personalmente cada respuesta y te ayudaremos a empezar.", - "Just reply to this email with your feedback. No surveys, no forms, just a direct conversation with me.": "Simplemente responde a este correo con tus comentarios. Sin encuestas, sin formularios, solo una conversación directa conmigo.", - "Just reply to this email with your feedback. No surveys, no forms, just a direct conversation with us.": "Simplemente responde a este correo con tus comentarios. Sin encuestas, sin formularios, solo una conversación directa con nosotros.", - "KB max.": "KB máx.", - "Keep accounts": "Mantener cuentas", - "Keep me logged in": "Mantenerme conectado", - "Keep me logged in (convenient)": "Mantenerme conectado (conveniente)", - "Keep me logged in (less secure)": "Mantenerme conectado (menos seguro)", - "Keep this category out of cashflow analytics.": "Mantén esta categoría fuera de la analítica de flujo de caja.", - "Keep this transfer out of cashflow analytics.": "Mantiene esta transferencia fuera de la analitica de flujo de caja.", - "Key Storage": "Almacenamiento de Clave", - "Label (Optional)": "Etiqueta (Opcional)", - "Label name": "Nombre de etiqueta", - "Labels settings": "Configuración de etiquetas", - "Land": "Terreno", - "Language": "Idioma", - "Last Login": "Último acceso", - "Last period:": "Período anterior:", - "Last synced": "Última sincronización", - "Last updated:": "Última actualización:", - "Latest transactions in this account": "Últimas transacciones en esta cuenta", - "Let's Get Started": "Comencemos", - "Let's Import Your Transactions": "Importemos Tus Transacciones", - "Let's set up your first account to start tracking your finances.": "Configuremos tu primera cuenta para empezar a rastrear tus finanzas.", - "Let's start": "Vamos a empezar", - "Let's start with your main checking account. You can add more accounts later.": "Empecemos con tu cuenta corriente principal. Puedes agregar más cuentas después.", - "Lifetime": "De por vida", - "Lifetime License": "Licencia de Por Vida", - "Lifetime updates": "Actualizaciones de por vida", - "Light": "Claro", - "Lightning fast": "Ultrarrápido", - "Lightning-Fast CSV/XLS Import": "Importación Ultrarrápida de CSV/XLS", - "Limit adjusted": "Límite ajustado", - "Link a loan account to track equity (market value minus owed amount).": "Vincula una cuenta de préstamo para rastrear el patrimonio (valor de mercado menos monto adeudado).", - "Link to existing account": "Vincular a cuenta existente", - "Link your bank accounts directly. Transactions sync automatically, giving you a real-time view of your finances.": "Vincula tus cuentas bancarias directamente. Las transacciones se sincronizan automáticamente, dándote una vista en tiempo real de tus finanzas.", - "Linked Mortgage / Loan": "Hipoteca / Préstamo Vinculado", - "Linked Property": "Propiedad vinculada", - "Load more": "Cargar más", - "Loading": "Cargando", - "Loading last balance...": "Cargando último balance...", - "Loading last owed amount...": "Cargando último monto adeudado...", - "Loading matches…": "Cargando coincidencias…", - "Loading recovery codes": "Cargando códigos de recuperación", - "Loading...": "Cargando...", - "Loan": "Préstamo", - "Loan Details": "Detalles del Préstamo", - "Loan Start Date": "Fecha de Inicio del Préstamo", - "Loan Term": "Plazo del Préstamo", - "Loan Term (months)": "Plazo del Préstamo (meses)", - "Loans": "Préstamos", - "Lock encryption key": "Bloquear clave de encriptación", - "Log in": "Iniciar sesión", - "Log in to your account": "Inicia sesión en tu cuenta", - "Log in to your bank": "Inicia sesión en tu banco", - "Log in to your bank's website or app": "Inicia sesión en el sitio web o app de tu banco", - "Log into your bank's website and look for \"Export\" or \"Download transactions\". Choose CSV format if available.": "Inicia sesión en la web de tu banco y busca \"Exportar\" o \"Descargar transacciones\". Elige formato CSV si está disponible.", - "Log out": "Cerrar sesión", - "Logo": "Logo", - "Look for \"Export\" or \"Download\" option": "Busca la opción \"Exportar\" o \"Descargar\"", - "Looking forward to hearing from you! And if you decide Whisper Money isn't for you, that's totally fine - but I'd love to know why so I can improve.": "¡Espero tus comentarios! Y si decides que Whisper Money no es para ti, está totalmente bien, pero me encantaría saber por qué para poder mejorar.", - "Looking forward to hearing from you! And if you decide Whisper Money isn't for you, that's totally fine - but we'd love to know why so we can improve.": "¡Esperamos saber de ti! Y si decides que Whisper Money no es para ti, está totalmente bien, pero nos encantaría saber por qué para poder mejorar.", - "Love that my financial data is encrypted. No more worrying about data breaches!": "Me encanta que mis datos financieros estén encriptados. ¡No más preocupaciones por violaciones de datos!", - "Love that my financial data stays private. No more worrying about who has access to my spending habits!": "Me encanta que mis datos financieros sean privados. ¡Ya no me preocupa quién tiene acceso a mis hábitos de gasto!", - "Love the simplicity. It's powerful but not overwhelming like other apps.": "Me encanta la simplicidad. Es potente pero no abrumadora como otras apps.", - "Lower numbers execute first": "Los números más bajos se ejecutan primero", - "MM-DD-YYYY (e.g., 12-31-2024)": "MM-DD-YYYY (ej., 12-31-2024)", - "Main Checking": "Cuenta Corriente Principal", - "Maintain and promptly update your account information": "Mantén y actualiza prontamente tu información de cuenta", - "Maintain and promptly update your account\\n information": "Mantén y actualiza puntualmente la información de tu cuenta", - "Make child categories top level": "Convertir las categorías hijas en categorías principales", - "Making your money talk...": "Haciendo que tu dinero hable...", - "Manage Plan": "Gestionar Plan", - "Manage Subscription": "Gestionar Suscripción", - "Manage rules that categorize transactions and add labels automatically": "Gestiona reglas que categorizan transacciones y agregan etiquetas automáticamente", - "Manage the automatic notifications you receive": "Gestiona las notificaciones automáticas que recibes", - "Manage your bank accounts": "Gestiona tus cuentas bancarias", - "Manage your connected bank accounts for automatic transaction syncing.": "Gestiona tus cuentas bancarias conectadas para sincronización automática de transacciones.", - "Manage your profile and account settings": "Gestiona tu perfil y configuración de cuenta", - "Manage your subscription, update payment methods, or view invoices through the Stripe billing portal.": "Gestiona tu suscripción, actualiza métodos de pago o consulta facturas a través del portal de facturación de Stripe.", - "Manage your subscription, update payment methods, or\\n view invoices through the Stripe billing portal.": "Gestiona tu suscripción, actualiza métodos de pago o consulta facturas a través del portal de facturación de Stripe.", - "Manage your transaction automation rules": "Gestiona tus reglas de automatización de transacciones", - "Manage your transaction automation rules. Rules will be applied to categorize transactions automatically.": "Gestiona tus reglas de automatización de transacciones. Las reglas se aplicarán para categorizar transacciones automáticamente.", - "Manage your transaction automation rules. Rules will categorize transactions and add labels automatically.": "Gestiona tus reglas de automatización de transacciones. Las reglas categorizarán transacciones y agregarán etiquetas automáticamente.", - "Manage your transaction categories": "Gestiona tus categorías de transacciones", - "Manage your transaction labels": "Gestiona tus etiquetas de transacciones", - "Manage your two-factor authentication settings": "Gestiona tu configuración de autenticación de dos factores", - "Manual": "Manual", - "Manually record and track your financial transactions, budgets, and expenses": "Registra y rastrea manualmente tus transacciones financieras, presupuestos y gastos", - "Manually record and track your financial\\n transactions, budgets, and expenses": "Registra y realiza un seguimiento manual de tus transacciones financieras, presupuestos y gastos", - "Map Accounts": "Mapear Cuentas", - "Map Bank Accounts": "Mapear Cuentas Bancarias", - "Map Columns": "Mapear Columnas", - "Mark your account as deleted and disable access": "Marca tu cuenta como eliminada y desactiva el acceso", - "Market Value": "Valor de Mercado", - "Market Values": "Valores de Mercado", - "Market value": "Valor de mercado", - "Market value evolution": "Evolución del valor de mercado", - "Match your file columns to transaction fields": "Asocia las columnas de tu archivo con los campos de transacción", - "Max": "Máx", - "Maybe later": "Quizás más tarde", - "Metro Transit": "Metro Transit", - "Mexican Peso": "Peso mexicano", - "Michael R.": "Michael R.", - "Min": "Mín", - "Mobile app (iOS & Android)": "App móvil (iOS y Android)", - "Modify an existing rule": "Modificar una regla existente", - "Money Flow": "Flujo de Caja", - "Money coming into an account from a source (e.g., salary, refunds, interest). Increases your balance.": "Dinero que entra en una cuenta desde una fuente (ej., salario, reembolsos, intereses). Aumenta tu balance.", - "Money going out of an account to pay for something (e.g., groceries, rent, subscriptions). Decreases your balance.": "Dinero que sale de una cuenta para pagar algo (ej., supermercado, alquiler, suscripciones). Disminuye tu balance.", - "Month": "Mes", - "Monthly": "Mensual", - "Monthly Payment": "Pago Mensual", - "Monthly code": "Código mensual", - "Monthly income, expenses, and net cashflow for the selected period": "Ingresos, gastos y flujo de dinero neto mensual para el período seleccionado", - "Monthly income, expenses, and net cashflow over the last 12 months": "Ingresos, gastos y flujo de dinero neto mensual durante los últimos 12 meses", - "Monthly income, expenses, tracked transfers, and net cashflow over the last 12 months": "Ingresos, gastos, transferencias seguidas y flujo de caja neto mensual durante los ultimos 12 meses", - "More": "Más", - "More actions": "Más acciones", - "More options": "Más opciones", - "Mortgage Owed": "Hipoteca pendiente", - "Mortgage at": "Hipoteca en", - "Mortgage owed": "Hipoteca pendiente", - "Mortgages and loans": "Hipotecas y préstamos", - "Most Popular": "Más Popular", - "Move Up — Share Your Personal Link": "Sube puestos — Comparte Tu Enlace Personal", - "Move child categories to the top level": "Mover las categorías hijas al nivel principal", - "Move child categories up to the parent": "Mover las categorías hijas a la categoría padre", - "Move up 10 spots per referral": "Avanza 10 puestos por referido", - "Movie Night": "Noche de Cine", - "Moving money between accounts. It does not count in expenses or income charts.": "Mover dinero entre cuentas. No cuenta en los gráficos de gastos o ingresos.", - "Multi-Device Sync": "Sincronización Multi-Dispositivo", - "Multiple account tracking": "Seguimiento de múltiples cuentas", - "Name": "Nombre", - "Navigate to...": "Navegar a...", - "Need Help Getting Started?": "¿Necesitas Ayuda para Empezar?", - "Need help importing your transactions, :name?": "¿Necesitas ayuda para importar tus transacciones, :name?", - "Need help? Join our Discord": "¿Necesitas ayuda? Únete a nuestro Discord", - "Net": "Neto", - "Net Cashflow": "Flujo Neto", - "Net Worth Evolution": "Evolución del Patrimonio Neto", - "Neutral": "Neutro", - "Never": "Nunca", - "New": "Nuevo", - "New Zealand Dollar": "Dólar neozelandés", - "New password": "Nueva contraseña", - "New transactions from connected banks": "Nuevas transacciones de bancos conectados", - "New transactions synced, :name!": "¡Nuevas transacciones sincronizadas, :name!", - "Next": "Siguiente", - "Next month": "Mes siguiente", - "Next period": "Período siguiente", - "No AI Snooping": "Sin Espionaje por IA", - "No AI, No Data Mining": "Sin IA, Sin Minería de Datos", - "No AI. No bank connections. Your privacy is our priority.": "Sin IA. Sin conexiones bancarias. Tu privacidad es nuestra prioridad.", - "No Bank Access Required": "Sin Acceso Bancario Requerido", - "No Third-Party Data Sharing:": "Sin Compartir Datos con Terceros:", - "No Uncategorized Transactions": "Sin Transacciones Sin Categorizar", - "No account data available": "No hay datos de cuentas disponibles", - "No accounts found.": "No se encontraron cuentas.", - "No accounts found. Add your first account in Settings.": "No se encontraron cuentas. Agrega tu primera cuenta en Configuración.", - "No accounts found. Please create an account first.": "No se encontraron cuentas. Por favor crea una cuenta primero.", - "No action set": "Sin acción establecida", - "No active period": "Sin periodo activo", - "No automation rules available.": "No hay reglas de automatización disponibles.", - "No automation rules found.": "No se encontraron reglas de automatización.", - "No balance data available": "No hay datos de balance disponibles", - "No balance records found.": "No se encontraron registros de balance.", - "No bank connections yet. Connect a bank to automatically sync your transactions.": "Aún no hay conexiones bancarias. Conecta un banco para sincronizar automáticamente tus transacciones.", - "No bank found.": "No se encontró ningún banco.", - "No banks found.": "No se encontraron bancos.", - "No cashflow data for this period": "Sin datos de flujo de dinero para este período", - "No categories found.": "No se encontraron categorías.", - "No category found.": "No se encontró categoría.", - "No category set": "Sin categoría definida", - "No expenses this period": "Sin gastos en este período", - "No income this period": "Sin ingresos en este período", - "No labels found.": "No se encontraron etiquetas.", - "No limits on bank accounts, transactions, or categories.": "Sin límites en cuentas bancarias, transacciones o categorías.", - "No linked loan": "Sin préstamo vinculado", - "No linked property": "Sin propiedad vinculada", - "No loan details yet. Add interest rate, term, and amount to track amortization.": "Aún no hay detalles del préstamo. Añade tipo de interés, plazo e importe para seguir la amortización.", - "No market value data available": "No hay datos de valor de mercado disponibles", - "No matching transactions. Future transactions will still be categorized automatically.": "Sin transacciones coincidentes. Las transacciones futuras se categorizarán automáticamente.", - "No owed amount data available": "No hay datos de monto adeudado disponibles", - "No owed amount records found.": "No se encontraron registros de monto adeudado.", - "No pressure—if now is not the right time, you can ignore this email.": "Sin presión: si ahora no es el momento, puedes ignorar este correo.", - "No results found": "No se encontraron resultados", - "No spending data this month": "Sin datos de gasto este mes", - "No third-party sharing, no AI snooping. Your financial data belongs to you and only you.": "Sin compartir con terceros, sin espionaje de IA. Tus datos financieros te pertenecen a ti y solo a ti.", - "No tracking": "Sin seguimiento", - "No transactions found.": "No se encontraron transacciones.", - "No valid balances found": "No se encontraron balances válidos", - "No valid owed amounts found": "No se encontraron montos adeudados válidos", - "No worries! Your encryption key is automatically generated and stored securely on your device. You don't need to remember anything - I've made it as simple as possible.": "¡No te preocupes! Tu clave de encriptación se genera automáticamente y se almacena de forma segura en tu dispositivo. No necesitas recordar nada, lo he hecho lo más simple posible.", - "None": "Ninguno", - "None (Remove)": "Ninguno (Eliminar)", - "None (top level)": "Ninguna (nivel principal)", - "Not sure how to import transactions?": "¿No sabes cómo importar transacciones?", - "Notes": "Notas", - "Notifications": "Notificaciones", - "Nothing in these Terms excludes or limits our liability for death or personal injury caused by negligence, fraud, or any liability that cannot be excluded or limited under applicable law.": "Nada en estos Términos excluye o limita nuestra responsabilidad por muerte o lesiones personales causadas por negligencia, fraude, o cualquier responsabilidad que no pueda ser excluida o limitada bajo la ley aplicable.", - "Nothing in these Terms excludes or limits our\\n liability for death or personal injury caused by\\n negligence, fraud, or any liability that cannot\\n be excluded or limited under applicable law.": "Nada en estos Términos excluye o limita nuestra responsabilidad por muerte o lesiones personales causadas por negligencia, fraude o cualquier responsabilidad que no pueda ser excluida o limitada según la ley aplicable.", - "Notify us immediately of any unauthorized access or security breach": "Notifícanos inmediatamente de cualquier acceso no autorizado o violación de seguridad", - "Notify us immediately of any unauthorized\\n access or security breach": "Notifícanos inmediatamente de cualquier acceso no autorizado o brecha de seguridad", - "Once verified, you'll be able to set up your encryption key and start tracking your finances with full privacy.": "Una vez verificado, podrás configurar tu clave de encriptación y empezar a rastrear tus finanzas con total privacidad.", - "Once your account is deleted, all of its resources and data will also be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Una vez que tu cuenta sea eliminada, todos sus recursos y datos también serán eliminados permanentemente. Por favor ingresa tu contraseña para confirmar que deseas eliminar permanentemente tu cuenta.", - "Once your account is deleted, all of its resources\\n and data will also be permanently deleted. Please\\n enter your password to confirm you would like to\\n permanently delete your account.": "Una vez que tu cuenta sea eliminada, todos sus recursos y datos también serán eliminados permanentemente. Por favor, introduce tu contraseña para confirmar que deseas eliminar permanentemente tu cuenta.", - "Once your account is deleted, you will be signed out\\n and your access will be disabled. Your data will\\n remain in the database. Please enter your password\\n to confirm you would like to mark your account as\\n deleted.": "Una vez que tu cuenta se marque como eliminada, se cerrará tu sesión y tu acceso quedará desactivado. Tus datos permanecerán en la base de datos. Por favor, introduce tu contraseña para confirmar que deseas marcar tu cuenta como eliminada.", - "Only apply to uncategorized": "Aplicar solo a las no categorizadas", - "Only you know this password. It never leaves your device.": "Solo tú conoces esta contraseña. Nunca sale de tu dispositivo.", - "Open menu": "Abrir menú", - "Open source": "Código abierto", - "Optional. Provide loan details to automatically project your owed amount over time.": "Opcional. Proporciona los detalles del préstamo para proyectar automáticamente el monto adeudado a lo largo del tiempo.", - "Optional. Set the current balance for this account.": "Opcional. Establece el balance actual de esta cuenta.", - "Optionally link this loan to an existing unlinked real-estate account.": "Opcionalmente vincula este préstamo a una cuenta inmobiliaria existente que aún no esté vinculada.", - "Or, return to": "O, regresar a", - "Organize financial data with categories and custom labels": "Organiza datos financieros con categorías y etiquetas personalizadas", - "Organize financial data with categories and\\n custom labels": "Organiza los datos financieros con categorías y etiquetas personalizadas", - "Organize transactions with tags that make sense for your workflow.": "Organiza transacciones con etiquetas que tengan sentido para tu flujo de trabajo.", - "Original Amount": "Monto Original", - "Original Loan Amount": "Monto Original del Préstamo", - "Other": "Otros", - "Other Categories (": "Otras Categorías (", - "Others": "Otros", - "Our service is not intended for users under the age of 16. We do not knowingly collect personal information from children. If you believe we have collected information from a child, please contact us immediately, and we will delete it.": "Nuestro servicio no está destinado a usuarios menores de 16 años. No recopilamos intencionalmente información personal de niños. Si crees que hemos recopilado información de un niño, por favor contáctanos inmediatamente y la eliminaremos.", - "Our service is not intended for users under the\\n age of 16. We do not knowingly collect personal\\n information from children. If you believe we\\n have collected information from a child, please\\n contact us immediately, and we will delete it.": "Nuestro servicio no está destinado a usuarios menores de 16 años. No recopilamos intencionalmente información personal de niños. Si crees que hemos recopilado información de un niño, contáctanos de inmediato y la eliminaremos.", - "Overview of your financial health": "Vista general de tu salud financiera", - "Owed Amount": "Monto Adeudado", - "Owed Amount History": "Historial de Monto Adeudado", - "Owed Amounts": "Montos Adeudados", - "Owed amount evolution": "Evolución del monto adeudado", - "Page": "Página", - "Paraguayan Guarani": "Guaraní paraguayo", - "Parent": "Padre", - "Direct": "Directo", - "Parent category": "Categoría padre", - "Password": "Contraseña", - "Password changes are disabled on the demo account.": "Los cambios de contraseña están deshabilitados en la cuenta demo.", - "Password changes are disabled on the demo\\n account.": "Los cambios de contraseña están desactivados en la cuenta de demostración.", - "Password must be at least 12 characters": "La contraseña debe tener al menos 12 caracteres", - "Password settings": "Configuración de contraseña", - "Passwords do not match": "Las contraseñas no coinciden", - "Passwords match": "Las contraseñas coinciden", - "Paste your Binance API Key": "Pega tu Clave API de Binance", - "Paste your Binance API Secret": "Pega tu Secreto API de Binance", - "Paste your Bitpanda API Key": "Pega tu Clave API de Bitpanda", - "Paste your Indexa Capital API token": "Pega tu token API de Indexa Capital", - "Patience is a virtue (especially with money)...": "La paciencia es una virtud (especialmente con el dinero)...", - "Pattern Matching": "Coincidencia de Patrones", - "Payment Processors:": "Procesadores de Pago:", - "Payments are processed by third-party payment processors and subject to their terms": "Los pagos son procesados por procesadores de pago de terceros y están sujetos a sus términos", - "Payments are processed by third-party\\n payment processors and subject to their\\n terms": "Los pagos son procesados por procesadores de pago de terceros y están sujetos a sus términos", - "Payroll Deposit": "Depósito de Nómina", - "Percentage of income saved": "Porcentaje de ingresos ahorrados", - "Perfect for investment portfolios and retirement accounts": "Perfecto para carteras de inversión y cuentas de jubilación", - "Perfect for investment portfolios and retirement\\n accounts": "Perfecto para carteras de inversión y cuentas de jubilación", - "Period": "Período", - "Period Duration (days)": "Duración del Período (días)", - "Period Type": "Tipo de Período", - "Period and carry-over settings cannot be changed after a budget is created because budgets are calculated historically. If you need different settings, delete this budget and create a new one.": "La configuración de período y arrastre no se puede cambiar después de crear un presupuesto porque los presupuestos se calculan históricamente. Si necesitas una configuración diferente, elimina este presupuesto y crea uno nuevo.", - "Personal transfers": "Transferencias personales", - "Peruvian Sol": "Sol peruano", - "Pick whichever plan fits you, paste the matching code at checkout, and you are set.": "Elige el plan que prefieras, pega el código correspondiente al pagar y listo.", - "Pink": "Rosa", - "Platform": "Plataforma", - "Please enter a balance": "Por favor, ingresa un balance", - "Please enter a bank name.": "Por favor, ingresa un nombre de banco.", - "Please enter an account name.": "Por favor, ingresa un nombre de cuenta.", - "Please enter your new password below": "Por favor ingresa tu nueva contraseña a continuación", - "Please fill in all required fields.": "Por favor, completa todos los campos obligatorios.", - "Please proceed with caution, this cannot be undone.": "Por favor procede con precaución, esto no se puede deshacer.", - "Please select a bank.": "Por favor, selecciona un banco.", - "Please unlock your encryption key to add transactions": "Por favor desbloquea tu clave de encriptación para agregar transacciones", - "Please unlock your encryption key to import transactions": "Por favor desbloquea tu clave de encriptación para importar transacciones", - "Please unlock your encryption key to save transactions": "Por favor desbloquea tu clave de encriptación para guardar transacciones", - "Please verify your email address by clicking on the link we just emailed to you.": "Por favor verifica tu dirección de correo electrónico haciendo clic en el enlace que te acabamos de enviar.", - "Please wait while we import your transactions": "Por favor, espera mientras importamos tus transacciones", - "Popular banks available to connect": "Bancos populares disponibles para conectar", - "Pre-filled from an existing balance for this date.": "Rellenado con un balance existente para esta fecha.", - "Prefer to Connect Your Bank?": "¿Prefieres Conectar Tu Banco?", - "Prefer to Start Fresh?": "¿Prefieres Empezar de Cero?", - "Prev": "Ant", - "Preview (first 3 rows)": "Vista previa (primeras 3 filas)", - "Preview Balances": "Vista Previa de Balances", - "Preview Owed Amounts": "Vista Previa de Montos Adeudados", - "Preview Transactions": "Vista Previa de Transacciones", - "Preview the transactions these rules will categorize before applying them.": "Previsualiza las transacciones que estas reglas categorizarán antes de aplicarlas.", - "Preview the transactions this rule will affect and apply its actions.": "Previsualiza las transacciones que esta regla afectará y aplica sus acciones.", - "Previous": "Anterior", - "Previous month": "Mes anterior", - "Previous period": "Período anterior", - "Priority": "Prioridad", - "Priority Support": "Soporte Prioritario", - "Priority support": "Soporte prioritario", - "Privacy First": "Privacidad Primero", - "Privacy First:": "Privacidad Primero:", - "Privacy Policy": "Política de Privacidad", - "Privacy Policy - Whisper Money": "Política de Privacidad - Whisper Money", - "Privacy by Design": "Privacidad por Diseño", - "Privacy comes first": "La privacidad es lo primero", - "Privacy policy for Whisper Money. Learn how we collect, use, and protect your personal information.": "Política de privacidad de Whisper Money. Aprende cómo recopilamos, usamos y protegemos tu información personal.", - "Privacy policy for Whisper Money. Learn how we collect, use, and protect your personal information. Your data is never shared with third parties.": "Política de privacidad de Whisper Money. Aprende cómo recopilamos, usamos y protegemos tu información personal. Tus datos nunca se comparten con terceros.", - "Private & Secure": "Privado y seguro", - "Private Key": "Clave Privada", - "Private by Design": "Privado por Diseño", - "Pro Monthly": "Pro Mensual", - "Pro Plan Active": "Plan Pro Activo", - "Pro Yearly": "Pro Anual", - "Profile Settings": "Configuración del Perfil", - "Profile information": "Información del perfil", - "Projected": "Proyectado", - "Projected mortgage": "Hipoteca proyectada", - "Property Details": "Detalles de Propiedad", - "Property Type": "Tipo de Propiedad", - "Property address": "Dirección de la propiedad", - "Protect your privacy with no tracking or third-party analytics.": "Protege tu privacidad sin rastreo ni análisis de terceros.", - "Purchase Date": "Fecha de Compra", - "Purchase Price": "Precio de Compra", - "Q": "T", - "Quartely": "Cada 4 meses", - "Quarter": "Trimestre", - "Questions or feedback? Reply to this email. We read every message personally.": "¿Tienes preguntas o comentarios? Responde a este correo. Leemos cada mensaje personalmente.", - "Rate limit exceeded. Please wait a few minutes and try again.": "Límite de solicitudes superado. Espera unos minutos e inténtalo de nuevo.", - "Re-evaluate rules": "Reevaluar reglas", - "Reactivate Your Subscription": "Reactiva Tu Suscripción", - "Receive an email when new transactions are imported from your connected banks. Sent at most once a day.": "Recibe un correo cuando se importen nuevas transacciones de tus bancos conectados. Se envía como máximo una vez al día.", - "Ready to take control of your finances?": "¿Listo para tomar el control de tus finanzas?", - "Real Estate": "Bienes Raíces", - "Reconnect": "Reconectar", - "Reconnect to resume automatic syncing.": "Reconecta para reanudar la sincronización automática.", - "Recovery Codes": "Códigos de Recuperación", - "Recovery codes": "Códigos de recuperación", - "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Los códigos de recuperación te permiten recuperar acceso si pierdes tu dispositivo 2FA. Guárdalos en un administrador de contraseñas seguro.", - "Recovery codes let you regain access if you lose your 2FA\\n device. Store them in a secure password manager.": "Los códigos de recuperación te permiten recuperar el acceso si pierdes tu dispositivo 2FA. Guárdalos en un gestor de contraseñas seguro.", - "Redirect progress": "Progreso de redirección", - "Redirecting to your dashboard": "Redirigiendo a tu panel", - "Redirecting...": "Redirigiendo...", - "Regenerate Codes": "Regenerar Códigos", - "Register": "Registrarse", - "Regular Security Audits:": "Auditorías de Seguridad Regulares:", - "Remaining": "Restante", - "Remaining balance carries over to next period": "El saldo restante se acumula al siguiente período", - "Remaining balance returns to available money pool": "El saldo restante vuelve al fondo de dinero disponible", - "Remember me": "Recuérdame", - "Remove all labels": "Eliminar todas las etiquetas", - "Rent Payment": "Pago de Alquiler", - "Rent and maintanence": "Alquiler y mantenimiento", - "Resend verification email": "Reenviar correo de verificación", - "Reset password": "Restablecer contraseña", - "Reset/Pool": "Reiniciar/Fondo", - "Residential": "Residencial", - "Retirement": "Jubilación", - "Retirement / Pension": "Jubilación / Pensión", - "Retry": "Reintentar", - "Review and contribute to our open-source codebase on GitHub.": "Revisa y contribuye a nuestro código de código abierto en GitHub.", - "Review matches": "Revisar coincidencias", - "Review transactions before importing": "Revisa las transacciones antes de importar", - "Right of Access:": "Derecho de Acceso:", - "Right to Data Portability:": "Derecho a la Portabilidad de Datos:", - "Right to Erasure:": "Derecho al Olvido:", - "Right to Lodge a Complaint:": "Derecho a Presentar una Queja:", - "Right to Object:": "Derecho a Objetar:", - "Right to Rectification:": "Derecho de Rectificación:", - "Right to Restriction:": "Derecho de Restricción:", - "Right to Withdraw Consent:": "Derecho a Retirar el Consentimiento:", - "Roadmap": "Hoja de Ruta", - "Rollover Type": "Tipo de Transferencia", - "Row": "Fila", - "Rule \":rule\" applied": "Regla \":rule\" aplicada", - "Rule applied to :count transaction(s).": "Regla aplicada a :count transacción(es).", - "Rule title": "Título de regla", - "Rules": "Reglas", - "Rules apply automatically when you import new transactions": "Las reglas se aplican automáticamente cuando importas nuevas transacciones", - "Rules will categorize future transactions for you automatically.": "Las reglas categorizarán las transacciones futuras por ti automáticamente.", - "STARBUCKS@TEKKA PLC": "STARBUCKS@TEKKA PLC", - "Salary": "Salario", - "Sample transactions with a curved scrolling effect": "Transacciones de muestra con efecto de desplazamiento", - "Sarah M.": "Sarah M.", - "Save": "Guardar", - "Save & Sync": "Guardar y Sincronizar", - "Save :percent%": "Ahorra :percent%", - "Save Balance": "Guardar Balance", - "Save Changes": "Guardar Cambios", - "Save money for goals": "Ahorra dinero para tus metas", - "Save password": "Guardar contraseña", - "Saved": "Guardado", - "Saved (cashflow)": "Ahorrado", - "Saved & Invested": "Ahorrado e invertido", - "Share of net cashflow set aside": "Porcentaje del flujo neto destinado", - "Where do these numbers come from?": "¿De dónde salen estos números?", - "These figures come from transactions categorized with a \"saving\" or \"investment\" category type. Make sure you use those category types so all the money set aside is counted here.": "Estas cifras provienen de transacciones categorizadas con un tipo de categoría \"ahorro\" o \"inversión\". Asegúrate de usar esos tipos de categoría para que todo el dinero apartado se contabilice aquí.", - "Saving": "Ahorro", - "Saving...": "Guardando...", - "Savings": "Ahorros", - "Savings Rate": "Tasa de Ahorro", - "Savings Transfer": "Transferencia a Ahorros", - "Savings categories appear as saved money at the top of cashflow and as cash outflow in the cashflow chart. They stay out of income, expenses, and top spending categories.": "Las categorías de ahorro aparecen como dinero ahorrado en la parte superior del flujo de caja y como salida de dinero en el gráfico de flujo de caja. Quedan fuera de ingresos, gastos y categorías con más gasto.", - "Savings categories stay out of income and expense totals in cashflow analytics.": "Las categorías de ahorro quedan fuera de los totales de ingresos y gastos en la analítica de flujo de caja.", - "Savings categories stay out of income, expenses, cashflow totals, and top spending categories.": "Las categorías de ahorro quedan fuera de ingresos, gastos, totales de flujo de caja y categorías con más gasto.", - "Savings rate": "Tasa de ahorro", - "Search": "Buscar", - "Search bank...": "Buscar banco...", - "Search banks...": "Buscar bancos...", - "Search categories...": "Buscar categorías...", - "Search description or notes...": "Buscar descripción o notas...", - "Search disabled (encryption key not set)": "Búsqueda deshabilitada (clave de encriptación no configurada)", - "Search labels...": "Buscar etiquetas...", - "Search or create labels...": "Buscar o crear etiquetas...", - "Search, filter, and categorize with ease. Understand exactly where your money goes.": "Busca, filtra y categoriza con facilidad. Entiende exactamente a dónde va tu dinero.", - "Search, move": "Buscar, mover", - "Searching...": "Buscando...", - "Secret": "Secreto", - "Secure & encrypted": "Seguro y cifrado", - "Secure Storage:": "Almacenamiento Seguro:", - "Secure upload": "Carga segura", - "See balances": "Ver balances", - "See every account in one place. Track balances, monitor changes, and always know where you stand.": "Ve todas tus cuentas en un solo lugar. Sigue los saldos, monitoriza los cambios y sabe siempre cómo estás.", - "See market values": "Ver valores de mercado", - "See owed amounts": "Ver montos adeudados", - "See where you spend": "Ve en qué gastas", - "See where you stand in real-time. Visual progress bars show spending vs. budget.": "Ve tu situación en tiempo real. Las barras de progreso visuales muestran el gasto frente al presupuesto.", - "Select Account": "Seleccionar Cuenta", - "Select a category": "Seleccionar una categoría", - "Select a category (optional)": "Seleccionar una categoría (opcional)", - "Select a color": "Seleccionar un color", - "Select a label": "Seleccionar una etiqueta", - "Select a type": "Seleccionar un tipo", - "Select account": "Seleccionar cuenta", - "Select account type": "Seleccionar tipo de cuenta", - "Select all": "Seleccionar todo", - "Select all transactions": "Seleccionar todas las transacciones", - "Select all transactions matching filter": "Seleccionar todas las transacciones que coinciden con el filtro", - "Select amount column": "Seleccionar columna de valor", - "Select an account": "Selecciona una cuenta", - "Select an icon": "Seleccionar un icono", - "Select at least a category or a label to track.": "Selecciona al menos una categoría o etiqueta para rastrear.", - "Select balance column": "Seleccionar columna de balance", - "Select balance column (optional)": "Seleccionar columna de balance (opcional)", - "Select bank...": "Seleccionar banco...", - "Select categories...": "Seleccionar categorías...", - "Select country": "Seleccionar país", - "Select creditor column (optional)": "Seleccionar columna de acreedor (opcional)", - "Select currency": "Seleccionar moneda", - "Select date column": "Seleccionar columna de fecha", - "Select debtor column (optional)": "Seleccionar columna de deudor (opcional)", - "Select description column": "Seleccionar columna de descripción", - "Select invested amount column (optional)": "Seleccionar columna de cantidad invertida (opcional)", - "Select labels": "Seleccionar etiquetas", - "Select labels (optional)": "Seleccionar etiquetas (opcional)", - "Select labels...": "Seleccionar etiquetas...", - "Select language": "Seleccionar idioma", - "Select owed amount column": "Seleccionar columna de monto adeudado", - "Select property type": "Seleccionar tipo de propiedad", - "Select row": "Seleccionar fila", - "Select start of month": "Selecciona el inicio del mes", - "Select the country where your bank is located.": "Selecciona el país donde está ubicado tu banco.", - "Select unit": "Seleccionar unidad", - "Select your bank.": "Selecciona tu banco.", - "Select your country and bank to get started.": "Selecciona tu país y banco para empezar.", - "Selected": "Seleccionado", - "Selected account not found": "Cuenta seleccionada no encontrada", - "Self-Employment Income": "Ingresos por Cuenta Propia", - "Service Availability:": "Disponibilidad del Servicio:", - "Session only": "Solo sesión", - "Session only (more secure)": "Solo sesión (más seguro)", - "Set Account Balance": "Establecer Balance de Cuenta", - "Set Balance": "Establecer Balance", - "Set Category": "Establecer Categoría", - "Set Your Goals": "Establece Tus Objetivos", - "Set budgets, track your goals, and see how your money is working for you. Whether you're cutting costs or growing your wealth, Whisper Money helps you make better decisions.": "Establece presupuestos, sigue tus objetivos y ve cómo trabaja tu dinero para ti. Ya sea que estés recortando gastos o haciendo crecer tu patrimonio, Whisper Money te ayuda a tomar mejores decisiones.", - "Set interest rate, term, and amount to track amortization.": "Configura el tipo de interés, plazo y monto para seguir la amortización.", - "Set spending limits and get real-time updates on your financial goals.": "Establece límites de gasto y obtén actualizaciones en tiempo real sobre tus metas financieras.", - "Set the balance for this account on a specific date.": "Actualiza el balance de esta cuenta.", - "Set the current balance for this account to start tracking.": "Establece el balance actual de esta cuenta para empezar a rastrear.", - "Set the owed amount for this account on a specific date.": "Establece el monto adeudado de esta cuenta en una fecha específica.", - "Set up a spending limit for a category or label.": "Configura un límite de gasto para un categoría o etiqueta.", - "Set your budget goals": "Establece tus objetivos de presupuesto", - "Setting things up...": "Configurando...", - "Setting up encryption...": "Configurando encriptación...", - "Settings": "Configuración", - "Settings > Applications": "Configuración > Aplicaciones", - "Setup Encryption": "Configura tu encriptación", - "Share": "Compartir", - "Share Your Link": "Comparte Tu Enlace", - "Share Your Link Again": "Comparte Tu Enlace de Nuevo", - "Share it with anyone who cares about their financial privacy — friends, family, your group chat. Each sign-up is 10 spots closer to the front.": "Compártelo con quien valore su privacidad financiera — amigos, familia, tu grupo de chat. Cada registro son 10 puestos más cerca del frente.", - "Share it with friends, family, or anyone who cares about their financial privacy. Every sign-up moves you 10 spots closer to the front.": "Compártelo con amigos, familia o cualquier persona que valore su privacidad financiera. Cada registro te acerca 10 puestos al frente.", - "Share your personal link. Every person who joins through it moves you 10 positions forward.": "Comparte tu enlace personal. Cada persona que se una a través de él te adelanta 10 posiciones.", - "Shared": "Compartido", - "Shared with": "Compartido con", - "Shopping (Clothing, Electronics, Gifts)": "Compras (Ropa, Electrónica, Regalos)", - "Show as cash inflow": "Mostrar como entrada de dinero", - "Show password": "Mostrar contraseña", - "Show subcategories": "Mostrar subcategorías", - "Show as cash outflow": "Mostrar como salida de dinero", - "Show in account currency (:currency)": "Mostrar en moneda de la cuenta (:currency)", - "Show in cashflow chart as inflow": "Mostrar en el gráfico de flujo de caja como entrada", - "Show in cashflow chart as outflow": "Mostrar en el gráfico de flujo de caja como salida", - "Show in your currency (:currency)": "Mostrar en tu moneda (:currency)", - "Show this transfer category as money entering available cash.": "Muestra esta categoría de transferencia como dinero que entra en el saldo disponible.", - "Show this transfer category as money leaving available cash.": "Muestra esta categoría de transferencia como dinero que sale del saldo disponible.", - "Sign up": "Crear cuenta", - "Simple, transparent pricing": "Precios simples y transparentes", - "Single-use. Works on monthly or yearly plans. Tied to your email — please keep it private.": "Un solo uso. Funciona con el plan mensual o anual. Está vinculado a tu email — guárdalo en privado.", - "Skip": "Saltar", - "Skip for now": "Omitir por ahora", - "Smart Automation": "Automatización Inteligente", - "Smart Automation Rules": "Reglas automáticas", - "Smart Budgets": "Presupuestos Inteligentes", - "Smart Categorization": "Categorización Inteligente", - "Smart Rules": "Reglas Inteligentes", - "Smart budgeting": "Presupuestos inteligentes", - "Smart categorization": "Categorización inteligente", - "Someone just joined Whisper Money with your link!": "¡Alguien acaba de unirse a Whisper Money con tu enlace!", - "Someone just joined with your link!": "¡Alguien se acaba de unir con tu enlace!", - "Someone just overtook you in the Whisper Money queue!": "¡Alguien te acaba de adelantar en la lista de espera de Whisper Money!", - "Someone just overtook you in the queue!": "¡Alguien te acaba de adelantar en la fila!", - "Someone just signed up to the Whisper Money waiting list using **your referral link**. We've moved you **10 positions forward** in the queue as a thank you.": "Alguien acaba de registrarse en la lista de espera de Whisper Money usando **tu enlace de referido**. Te hemos adelantado **10 posiciones** en la fila como agradecimiento.", - "Someone on the Whisper Money waiting list just invited a friend, which moved them ahead of you in the queue.": "Alguien en la lista de espera de Whisper Money acaba de invitar a un amigo, lo que le ha adelantado en la fila.", - "Something not working?": "¿Algo no funciona?", - "Spending exceeds income this period.": "El gasto excede el ingreso en este período.", - "Spent": "Gastado", - "Spent:": "Gastado:", - "Spot savings opportunities": "Identifica oportunidades de ahorro", - "Square images only (max": "Solo imágenes cuadradas (máx", - "Standard": "Estandar", - "Standard Plan required": "Plan Standard requerido", - "Start Date": "Fecha de Inicio", - "Start Day": "Día de inicio", - "Start Day of Month": "Día de inicio del mes", - "Start My Financial Journey": "Comenzar Mi Viaje Financiero", - "Start Your Financial Journey": "Comienza Tu Viaje Financiero", - "Start managing your money privately. No credit card required.": "Empieza a gestionar tu dinero de forma privada. No se requiere tarjeta de crédito.", - "Start of month": "Inicio del mes", - "Start with this category and transaction description.": "Empieza con esta categoría y descripción de transacción.", - "Starting day": "Día de inicio", - "Statement": "Extracto", - "Status": "Estado", - "Stay on Track": "Mantente en el Camino", - "Step 1: Export from your bank": "Paso 1: Exporta desde tu banco", - "Step 2: Upload to Whisper Money": "Paso 2: Sube a Whisper Money", - "Step 3: Review and confirm": "Paso 3: Revisa y confirma", - "Still interested in Whisper Money?": "¿Sigues interesado en Whisper Money?", - "Still want to try Whisper Money?": "¿Todavía quieres probar Whisper Money?", - "Stocks, ETFs, and portfolios": "Acciones, ETFs y carteras", - "Storage Preference": "Preferencia de Almacenamiento", - "Strict access controls and authentication mechanisms protect against unauthorized access": "Controles de acceso estrictos y mecanismos de autenticación protegen contra acceso no autorizado", - "Strong": "Fuerte", - "Subscription fees are billed in advance on a recurring basis until cancelled": "Las tarifas de suscripción se facturan por adelantado de forma recurrente hasta que se cancele", - "Subscription fees are billed in advance on a\\n recurring basis until cancelled": "Las tarifas de suscripción se facturan por adelantado de forma recurrente hasta que se cancelen", - "Supported formats": "Formatos soportados", - "Supports CSV, XLS, and XLSX files": "Soporta archivos CSV, XLS y XLSX", - "Swiss Franc": "Franco suizo", - "Switch to daily view": "Cambiar a vista diaria", - "Switch to monthly view": "Cambiar a vista mensual", - "Sync Now": "Sincronizar Ahora", - "Sync now": "Sincronizar ahora", - "Sync transactions and balances automatically. Forget about manually importing CSVs from your bank.": "Sincroniza transacciones y saldos automáticamente. Olvídate de importar CSVs manualmente desde tu banco.", - "Sync your encrypted financial data across multiple devices via cloud storage": "Sincroniza tus datos financieros encriptados en múltiples dispositivos a través de almacenamiento en la nube", - "Sync your encrypted financial data across\\n multiple devices via cloud storage": "Sincroniza tus datos financieros cifrados en varios dispositivos a través del almacenamiento en la nube", - "Syncing": "Sincronizando", - "Syncing balances…": "Sincronizando balances…", - "Syncing transactions and balances…": "Sincronizando transacciones y balances…", - "System": "Sistema", - "Take control of your finances with privacy-first money tracking. Let's set up your account in just a few minutes.": "Toma el control de tus finanzas con un seguimiento privado de tu dinero. Vamos a configurar tu cuenta en pocos minutos.", - "Tap": "Toca", - "Tap the": "Toca el botón", - "Teaching the robots to count...": "Enseñándole a los robots a contar...", - "Technical Information:": "Información Técnica:", - "Terms of Service": "Términos de Servicio", - "Terms of Service - Whisper Money": "Términos de Servicio - Whisper Money", - "Terms of service for Whisper Money. Review the rules and regulations for using our platform.": "Términos de servicio de Whisper Money. Revisa las reglas y regulaciones para usar nuestra plataforma.", - "Terms of service for Whisper Money. Review the rules and regulations for using our secure personal finance platform.": "Términos de servicio de Whisper Money. Revisa las reglas y regulaciones para usar nuestra plataforma segura de finanzas personales.", - "Thanks again for being part of this journey!": "¡Gracias de nuevo por ser parte de este viaje!", - "Thanks for being interested in what we're building!": "¡Gracias por estar interesado en lo que estamos construyendo!", - "Thanks for being one of the first.": "Gracias por estar entre los primeros.", - "Thanks for being part of Whisper Money. It really means a lot.": "Gracias por ser parte de Whisper Money. Realmente significa mucho.", - "Thanks for being part of this journey with me!": "¡Gracias por ser parte de este viaje conmigo!", - "Thanks for being part of this journey with us!": "¡Gracias por ser parte de este camino con nosotros!", - "Thanks for giving Whisper Money a try!": "¡Gracias por probar Whisper Money!", - "Thanks for giving Whisper Money a try. It means a lot to me.": "Gracias por probar Whisper Money. Significa mucho para mí.", - "Thanks for giving Whisper Money a try. It means a lot to us.": "Gracias por darle una oportunidad a Whisper Money. Significa mucho para nosotros.", - "Thanks for signing up — I just need you to verify your email address to get started.": "Gracias por registrarte — solo necesito que verifiques tu dirección de correo electrónico para comenzar.", - "Thanks for signing up — we just need you to verify your email address to get started.": "Gracias por registrarte — solo necesitamos que verifiques tu dirección de correo electrónico para comenzar.", - "Thanks for spreading the word.": "Gracias por correr la voz.", - "Thanks for spreading the word. It means everything to us.": "Gracias por correr la voz. Significa todo para nosotros.", - "The Whisper Money name and logo are trademarks of Whisper Money. You may not use these trademarks without our prior written consent.": "El nombre y logo de Whisper Money son marcas registradas de Whisper Money. No puedes usar estas marcas sin nuestro consentimiento previo por escrito.", - "The Whisper Money name and logo are trademarks\\n of Whisper Money. You may not use these\\n trademarks without our prior written consent.": "El nombre y el logotipo de Whisper Money son marcas registradas de Whisper Money. No puedes usar estas marcas sin nuestro consentimiento previo por escrito.", - "The Whisper Money platform, including its software, design, text, graphics, logos, and other content (excluding your personal data), is owned by Whisper Money and protected by copyright, trademark, and other intellectual property laws. You may not copy, modify, distribute, sell, or lease any part of our service or software without our explicit written permission.": "La plataforma Whisper Money, incluyendo su software, diseño, texto, gráficos, logos y otro contenido (excluyendo tus datos personales), es propiedad de Whisper Money y está protegida por derechos de autor, marcas registradas y otras leyes de propiedad intelectual. No puedes copiar, modificar, distribuir, vender o arrendar ninguna parte de nuestro servicio o software sin nuestro permiso explícito por escrito.", - "The Whisper Money platform, including its\\n software, design, text, graphics, logos, and\\n other content (excluding your personal data), is\\n owned by Whisper Money and protected by\\n copyright, trademark, and other intellectual\\n property laws. You may not copy, modify,\\n distribute, sell, or lease any part of our\\n service or software without our explicit written\\n permission.": "La plataforma Whisper Money, incluyendo su software, diseño, texto, gráficos, logotipos y otro contenido (excluyendo tus datos personales), es propiedad de Whisper Money y está protegida por leyes de derechos de autor, marcas registradas y otras leyes de propiedad intelectual. No puedes copiar, modificar, distribuir, vender ni arrendar ninguna parte de nuestro servicio o software sin nuestro permiso expreso por escrito.", - "The automation rules save me so much time. And knowing my data is private? Priceless.": "Las reglas de automatización me ahorran mucho tiempo. ¿Y saber que mis datos son privados? No tiene precio.", - "The budgeting features are intuitive and the dark mode is gorgeous. Best finance app I've used.": "Las funciones de presupuesto son intuitivas y el modo oscuro es hermoso. La mejor app de finanzas que he usado.", - "The demo account cannot be deleted.": "La cuenta demo no se puede eliminar.", - "The good news? You can do exactly the same thing — share your personal link and jump **10 positions forward** for every person who joins through it.": "¿La buena noticia? Puedes hacer exactamente lo mismo — comparte tu enlace personal y avanza **10 posiciones** por cada persona que se una a través de él.", - "The import feature saved me hours. Got all my transactions in seconds.": "La función de importación me ahorró horas. Obtuve todas mis transacciones en segundos.", - "The legal basis for processing your data includes: performance of our contract with you, your consent, our legitimate interests in improving the service, and compliance with legal obligations.": "La base legal para procesar tus datos incluye: ejecución de nuestro contrato contigo, tu consentimiento, nuestros intereses legítimos en mejorar el servicio y cumplimiento de obligaciones legales.", - "The legal basis for processing your data\\n includes: performance of our contract with you,\\n your consent, our legitimate interests in\\n improving the service, and compliance with legal\\n obligations.": "La base legal para procesar tus datos incluye: la ejecución de nuestro contrato contigo, tu consentimiento, nuestros intereses legítimos en mejorar el servicio y el cumplimiento de obligaciones legales.", - "The most secure personal finance app. Your data is never shared with third parties. Track expenses, create budgets, and manage your money privately.": "La app más segura de finanzas personales. Tus datos nunca se comparten con terceros. Rastrea gastos, crea presupuestos y administra tu dinero de forma privada.", - "The most secure privacy-first personal finance app. Track expenses, create budgets, and manage your money privately.": "La aplicación de finanzas personales más segura y centrada en la privacidad. Realiza un seguimiento de gastos, crea presupuestos y gestiona tu dinero de forma privada.", - "The most secure way to understand your finances": "La forma más segura de entender tus finanzas", - "The provider is experiencing issues. Please try again later.": "El proveedor está teniendo problemas. Inténtalo de nuevo más tarde.", - "The rule was saved. Optionally apply it to your existing transactions.": "La regla se guardó. Opcionalmente, aplícala a tus transacciones existentes.", - "The selected property cannot be linked.": "La propiedad seleccionada no se puede vincular.", - "The selected property is already linked to a loan.": "La propiedad seleccionada ya está vinculada a un préstamo.", - "The verification link is invalid.": "El enlace de verificación no es válido.", - "Theatre, music, cinema": "Teatro, música, cine", - "There are different account types. Some track transactions, others just track balance over time.": "Hay diferentes tipos de cuenta. Algunas rastrean transacciones, otras solo rastrean el balance a lo largo del tiempo.", - "These Terms of Service govern your use of the Whisper Money personal finance platform.": "Estos Términos de Servicio rigen tu uso de la plataforma de finanzas personales Whisper Money.", - "These Terms of Service govern your use of the\\n Whisper Money personal finance platform.": "Estos Términos de Servicio rigen tu uso de la plataforma de finanzas personales Whisper Money.", - "These Terms, together with our Privacy Policy, constitute the entire agreement between you and Whisper Money regarding the use of our service and supersede any prior agreements or understandings, whether written or oral.": "Estos Términos, junto con nuestra Política de Privacidad, constituyen el acuerdo completo entre tú y Whisper Money con respecto al uso de nuestro servicio y reemplazan cualquier acuerdo o entendimiento previo, ya sea escrito u oral.", - "These Terms, together with our Privacy Policy,\\n constitute the entire agreement between you and\\n Whisper Money regarding the use of our service\\n and supersede any prior agreements or\\n understandings, whether written or oral.": "Estos Términos, junto con nuestra Política de Privacidad, constituyen el acuerdo completo entre tú y Whisper Money respecto al uso de nuestro servicio y reemplazan cualquier acuerdo o entendimiento previo, ya sea escrito u oral.", - "This account tracks balance changes over time instead of individual transactions.": "Esta cuenta rastrea cambios de balance a lo largo del tiempo en lugar de transacciones individuales.", - "This account type is for balance tracking only and doesn't support transactions.": "Este tipo de cuenta es solo para rastreo de balance y no soporta transacciones.", - "This account type is for balance tracking only and\\n doesn't support transactions.": "Este tipo de cuenta es solo para seguimiento de saldo y no admite transacciones.", - "This action cannot be undone.": "Esta acción no se puede deshacer.", - "This action cannot be undone. To confirm, type": "Esta acción no se puede deshacer. Para confirmar, escribe", - "This action is irreversible. All transactions in this account will also be permanently deleted.": "Esta acción es irreversible. Todas las transacciones en esta cuenta también serán eliminadas permanentemente.", - "This code won't last forever, but more importantly, your support means the world to me. As a solo founder, every subscriber helps me continue building something I'm passionate about.": "Este código no durará para siempre, pero lo más importante es que tu apoyo significa mucho para mí. Como fundador en solitario, cada suscriptor me ayuda a seguir construyendo algo que me apasiona.", - "This code won't last forever, but more importantly, your support means the world to us. As the founders, every subscriber helps us continue building something we're passionate about.": "Este código no durará para siempre, pero lo más importante es que tu apoyo significa mucho para nosotros. Como fundadores, cada suscriptor nos ayuda a seguir construyendo algo que nos apasiona.", - "This connection has :count associated account(s). What would you like to do with them?": "Esta conexión tiene :count cuenta(s) asociada(s). ¿Qué te gustaría hacer con ellas?", - "This field is required.": "Este campo es obligatorio.", - "This gives you full access to all Whisper Money features:": "Esto te da acceso completo a todas las funciones de Whisper Money:", - "This is a secure area of the application. Please confirm your password before continuing.": "Esta es un área segura de la aplicación. Por favor confirma tu contraseña antes de continuar.", - "This is your exclusive invitation to get full access to everything:": "Esta es tu invitación exclusiva para obtener acceso completo a todo:", - "This month's income and expenses": "Ingresos y gastos de este mes", - "This password will encrypt all your financial data. Make it strong and memorable — we can't recover it for you.": "Esta contraseña encriptará todos tus datos financieros. Hazla fuerte y memorable: no podemos recuperarla por ti.", - "This setting follows the selected category type and cannot be changed here.": "Esta configuración sigue el tipo de categoría seleccionado y no se puede cambiar aquí.", - "This transaction was imported from a file. The description cannot be modified.": "Esta transacción fue importada de un archivo. La descripción no se puede modificar.", - "This transaction was imported from a\\n file. The description cannot be\\n modified.": "Esta transacción fue importada desde un archivo. La descripción no se puede modificar.", - "This transfer category stays out of the Sankey money flow chart.": "Esta categoría de transferencia queda fuera del gráfico Sankey de flujo de dinero.", - "This transfer category stays out of the cashflow chart.": "Esta categoría de transferencia queda fuera del gráfico de flujo de caja.", - "This will only take a moment.": "Esto solo tardará un momento.", - "This will remove your encryption key from this browser session. You'll need to enter your password again to unlock encrypted content.": "Esto eliminará tu clave de encriptación de esta sesión del navegador. Necesitarás ingresar tu contraseña nuevamente para desbloquear el contenido encriptado.", - "This will revoke access to your bank account data from :bank.": "Esto revocará el acceso a los datos de tu cuenta bancaria de :bank.", - "This will take less than 5 minutes": "Esto tomará menos de 5 minutos", - "This will update the allocated amount for the current and future periods.": "Esto actualizará el valor asignado para el período actual y futuro.", - "This will update the allocated amount for the\\n current and future periods.": "Esto actualizará el monto asignado para los períodos actuales y futuros.", - "This would mean sharing your data with third parties": "Esto significaría compartir tus datos con terceros", - "Title": "Título", - "To": "Para", - "To authenticate your access and protect your account security": "Para autenticar tu acceso y proteger la seguridad de tu cuenta", - "To authenticate your access and protect your\\n account security": "Para autenticar tu acceso y proteger la seguridad de tu cuenta", - "To comply with legal obligations and enforce our terms": "Para cumplir con obligaciones legales y hacer cumplir nuestros términos", - "To comply with legal obligations and enforce\\n our terms": "Para cumplir con las obligaciones legales y hacer cumplir nuestros términos", - "To continue, you need to categorize at least :count transactions.": "Para continuar, debes categorizar al menos :count transacciones.", - "To enable cloud synchronization of your encrypted financial data across devices": "Para habilitar la sincronización en la nube de tus datos financieros encriptados entre dispositivos", - "To enable cloud synchronization of your\\n encrypted financial data across devices": "Para habilitar la sincronización en la nube de tus datos financieros cifrados entre dispositivos", - "To exercise any of these rights, please contact us at victor@whisper.money. We will respond to your request within 30 days.": "Para ejercer cualquiera de estos derechos, por favor contáctanos en victor@whisper.money. Responderemos a tu solicitud dentro de 30 días.", - "To exercise any of these rights, please contact\\n us at victor@whisper.money. We will respond to\\n your request within 30 days.": "Para ejercer cualquiera de estos derechos, contáctanos en victor@whisper.money. Responderemos a tu solicitud en un plazo de 30 días.", - "To fix this, generate a new API token from your :provider account and update it in your connection settings.": "Para solucionar esto, genera un nuevo token API desde tu cuenta de :provider y actualízalo en la configuración de tu conexión.", - "To improve and optimize our service based on usage patterns": "Para mejorar y optimizar nuestro servicio basándonos en patrones de uso", - "To improve and optimize our service based on\\n usage patterns": "Para mejorar y optimizar nuestro servicio basándonos en los patrones de uso", - "To process payments for premium features or subscriptions": "Para procesar pagos por funciones premium o suscripciones", - "To process payments for premium features or\\n subscriptions": "Para procesar pagos por funciones premium o suscripciones", - "To process subscription payments and transactions. These processors have access only to the information necessary to perform their functions and are obligated to protect your data": "Para procesar pagos de suscripción y transacciones. Estos procesadores tienen acceso solo a la información necesaria para realizar sus funciones y están obligados a proteger tus datos", - "To send transactional emails, password resets, and service notifications": "Para enviar correos transaccionales, restablecimientos de contraseña y notificaciones del servicio", - "To send you service-related notifications, updates, and security alerts via email": "Para enviarte notificaciones relacionadas con el servicio, actualizaciones y alertas de seguridad por correo electrónico", - "To send you service-related notifications,\\n updates, and security alerts via email": "Para enviarte notificaciones relacionadas con el servicio, actualizaciones y alertas de seguridad por correo electrónico", - "To\\n process subscription payments and\\n transactions. These processors have access\\n only to the information necessary to perform\\n their functions and are obligated to protect\\n your data": "Para procesar pagos de suscripciones y transacciones. Estos procesadores tienen acceso solo a la información necesaria para realizar sus funciones y están obligados a proteger tus datos", - "To\\n send transactional emails, password resets,\\n and service notifications": "Para enviar correos transaccionales, restablecimientos de contraseña y notificaciones del servicio", - "Today": "Hoy", - "Toggle theme": "Cambiar tema", - "Top Spending Categories": "Principales Categorías de Gasto", - "Top spending categories": "Principales categorías de gasto", - "Total": "Total", - "Total money you put into this account. Used to calculate gains/losses.": "Dinero total que has puesto en esta cuenta. Usado para calcular ganancias/pérdidas.", - "Track Progress": "Seguir el Progreso", - "Track all your finances in one place \\u2014 checking,\\n savings, credit cards, investments, and more.": "Realiza un seguimiento de todas tus finanzas en un solo lugar: cuentas corrientes, ahorros, tarjetas de crédito, inversiones y más.", - "Track all your finances in one place — checking, savings, credit cards, investments, and more.": "Rastrea todas tus finanzas en un solo lugar: cuenta corriente, ahorros, tarjetas de crédito, inversiones y más.", - "Track credit card spending": "Rastrea los gastos de tarjeta de crédito", - "Track money entering your available cash without counting it as income.": "Sigue el dinero que entra en tu saldo disponible sin contarlo como ingreso.", - "Track money leaving your available cash, like investments or savings transfers.": "Sigue el dinero que sale de tu saldo disponible, como inversiones o transferencias a ahorros.", - "Track your budget progress": "Sigue el progreso de tu presupuesto", - "Track your income, expenses, and savings": "Rastrea tus ingresos, gastos y ahorros", - "Track your property market value over time. Transactions are not supported.": "Rastrea el valor de mercado de tu propiedad a lo largo del tiempo. Las transacciones no están soportadas.", - "Track your spending with flexible budgets": "Rastrea tus gastos con presupuestos flexibles", - "Tracked Inflows": "Entradas seguidas", - "Tracked Outflows": "Salidas seguidas", - "Tracked transfers appear in the money flow Sankey chart. They are not counted as income or expenses.": "Las transferencias seguidas aparecen en el diagrama Sankey de flujo de dinero. No se cuentan como ingresos ni gastos.", - "Tracked transfers appear only in the monthly cashflow trend. They are not counted as income, expenses, or shown in the money flow Sankey.": "Las transferencias seguidas solo aparecen en la tendencia mensual del flujo de caja. No cuentan como ingresos ni gastos, ni se muestran en el Sankey de flujo de dinero.", - "Tracking": "Seguimiento", - "Tracking spending for": "Rastreando gastos para", - "Tracking:": "Seguimiento:", - "Transaction": "Transacción", - "Transaction Date": "Fecha transaccion", - "Transaction categorized": "Transacción categorizada", - "Transaction created successfully": "Transacción creada exitosamente", - "Transaction created, but failed to update balance": "Transacción creada, pero no se pudo actualizar el balance", - "Transaction description": "Descripción", - "Transaction details, budgets, categories, and other financial information you manually enter into the application": "Detalles de transacciones, presupuestos, categorías y otra información financiera que ingresas manualmente en la aplicación", - "Transaction updated successfully": "Transacción actualizada exitosamente", - "Transaction\\n details, budgets, categories, and other\\n financial information you manually enter\\n into the application": "Detalles de transacciones, presupuestos, categorías y otra información financiera que introduces manualmente en la aplicación", - "Transactions": "Transacciones", - "Transactions + Balance": "Transacciones + Balance", - "Transactions in the deleted categories will become uncategorized.": "Las transacciones de las categorías eliminadas quedarán sin categoría.", - "Transactions in this category will not be counted in top expenses or income. Transfer categories are mainly used for transactions between accounts.": "Las transacciones en esta categoría no se contarán entre los principales gastos o ingresos. Las categorías de transferencia se usan principalmente para transacciones entre cuentas.", - "Transactions in this category will\\n not be counted in top expenses or\\n income. Transfer categories are\\n mainly used for transactions between\\n accounts.": "Las transacciones en esta categoría no se contarán entre los principales gastos o ingresos. Las categorías de transferencia se usan principalmente para transacciones entre cuentas.", - "Transfer": "Transferencia", - "Transfer categories are excluded from income, expenses, and top spending categories. Choose whether to show them in the Sankey money flow chart.": "Las categorías de transferencia se excluyen de ingresos, gastos y categorías con más gasto. Elige si quieres mostrarlas en el gráfico Sankey de flujo de dinero.", - "Transfer categories are excluded from income, expenses, and top spending categories. Choose whether to show them in the cashflow chart.": "Las categorías de transferencia se excluyen de ingresos, gastos y categorías con más gasto. Elige si quieres mostrarlas en el gráfico de flujo de caja.", - "Transfer categories stay out of income and expense totals, but you can still track them in the money flow chart.": "Las categorías de transferencia quedan fuera de los totales de ingresos y gastos, pero aún puedes seguirlas en el gráfico de flujo de dinero.", - "Transfer categories stay out of income and expense totals, but you can still track them in the monthly chart.": "Las categorias de transferencia quedan fuera de los totales de ingresos y gastos, pero aun puedes seguirlas en el grafico mensual.", - "Transfers (Between accounts, Savings)": "Transferencias (Entre cuentas, Ahorros)", - "Transportation": "Transporte", - "Transportation (Fuel, Public Transit, Parking)": "Transporte (Combustible, Transporte público, Aparcamiento)", - "Trusted by people who value their privacy": "Confiado por personas que valoran su privacidad", - "Trusted by thousands of users": "Confiado por miles de usuarios", - "Two-Factor Authentication": "Autenticación en dos pasas", - "Two-factor authentication settings cannot be changed on the demo account.": "La configuración de autenticación de dos factores no se puede cambiar en la cuenta demo.", - "Two-factor authentication settings cannot be\\n changed on the demo account.": "La configuración de autenticación de dos factores no se puede cambiar en la cuenta de demostración.", - "Type": "Tipo", - "Type \"delete all\" to confirm:": "Escribe \"delete all\" para confirmar:", - "Type :word to confirm.": "Escribe :word para confirmar.", - "Type DELETE": "Escribe ELIMINAR", - "Type at least 3 characters to search": "Escribe al menos 3 caracteres para buscar", - "US Dollar": "Dólar estadounidense", - "Uncategorized": "Sin categorizar", - "Understand Your Finances": "Entiende Tus Finanzas", - "Understand your finances and make better decisions without the friction. Track expenses, create budgets, and achieve your goals\\u2014all in one place.": "Entiende tus finanzas y toma mejores decisiones sin complicaciones. Registra gastos, crea presupuestos y alcanza tus objetivos, todo en un solo lugar.", - "Understand your finances and make better decisions without the friction. Track expenses, create budgets, and achieve your goals—all in one place.": "Entiende tus finanzas para tomar mejores decisiones sin fricción. Rastrea gastos, crea presupuestos y alcanza tus metas, todo en un solo sitio.", - "Understand your spending with beautiful charts and reports.": "Entiende tus gastos con gráficos y reportes hermosos.", - "Understanding Categories": "Entendiendo las Categorías", - "Unit": "Unidad", - "Unknown Bank": "Banco desconocido", - "Unknown Expense": "Gasto desconocido", - "Unknown Income": "Ingreso desconocido", - "Unknown error": "Error desconocido", - "Unlimited Everything": "Sin Límites en Todo", - "Unlimited accounts": "Cuentas ilimitadas", - "Unlimited transaction imports": "Importaciones de transacciones ilimitadas", - "Unlimited transactions": "Transacciones ilimitadas", - "Unlock": "Desbloquear", - "Unlock Encrypted Data": "Desbloquear Datos Encriptados", - "Unlock all features and take full control of your finances.": "Desbloquea todas las funciones y toma el control total de tus finanzas.", - "Unlock encryption key": "Desbloquear clave de encriptación", - "Unlock encryption to add transactions": "Desbloquea la encriptación crear una transacción", - "Unlock encryption to import transactions": "Desbloquea la encriptación para importar transacciones", - "Unused budget will carry over to the next period.": "El presupuesto no utilizado se acumulará al siguiente período.", - "Update": "Actualizar", - "Update Credentials": "Actualizar Credenciales", - "Update account balance": "Actualizar balance de cuenta", - "Update balance": "Actualizar balance", - "Update balances periodically to track growth": "Actualiza los balances periódicamente para rastrear el crecimiento", - "Update categories automatically": "Actualizar categorías automáticamente", - "Update market value": "Actualizar valor de mercado", - "Update owed amount": "Actualizar monto adeudado", - "Update password": "Actualizar contraseña", - "Update payment": "Actualizar pago", - "Update the account information.": "Actualiza la información de la cuenta.", - "Update the balance record.": "Actualiza el registro de balance.", - "Update the category and notes for this transaction.": "Actualiza la categoría y notas de esta transacción.", - "Update the category information.": "Actualiza la información de la categoría.", - "Update the current balance of the affected manual accounts to reflect this change.": "Actualiza el saldo actual de las cuentas manuales afectadas para reflejar este cambio.", - "Update the current balance of the manual account to reflect this change.": "Actualiza el saldo actual de la cuenta manual para reflejar este cambio.", - "Update the label information.": "Actualiza la información de la etiqueta.", - "Update the owed amount record.": "Actualiza el registro de monto adeudado.", - "Update the rule to automatically categorize transactions and add labels.": "Actualiza la regla para categorizar automáticamente transacciones y agregar etiquetas.", - "Update the rule to automatically categorize transactions.": "Actualiza la regla para categorizar transacciones automáticamente.", - "Update your account's appearance settings": "Actualiza la configuración de apariencia de tu cuenta", - "Update your budget settings. To change the allocated amount or tracking, use the budget page directly.": "Actualiza la configuración de tu presupuesto. Para cambiar el valor asignado o el seguimiento, usa la página de presupuesto directamente.", - "Update your budget settings. To change the allocated\\n amount or tracking, use the budget page directly.": "Actualiza la configuración de tu presupuesto. Para cambiar el monto asignado o el seguimiento, usa la página de presupuesto directamente.", - "Update your name and email address": "Actualiza tu nombre y dirección de correo electrónico", - "Updated :count transactions": "Se actualizaron :count transacciones", - "Updating transactions...": "Actualizando transacciones...", - "Updating...": "Actualizando...", - "Upgrade to Standard Plan": "Actualizar al Plan Standard", - "Upload File": "Subir Archivo", - "Upon termination, we will delete your personal data in accordance with our Privacy Policy and applicable law, typically within 30 days.": "Al cancelar, eliminaremos tus datos personales de acuerdo con nuestra Política de Privacidad y la ley aplicable, típicamente dentro de 30 días.", - "Upon termination, we will delete your personal\\n data in accordance with our Privacy Policy and\\n applicable law, typically within 30 days.": "Tras la terminación, eliminaremos tus datos personales de acuerdo con nuestra Política de Privacidad y la ley aplicable, normalmente en un plazo de 30 días.", - "Uruguayan Peso": "Peso uruguayo", - "Usage Information:": "Información de Uso:", - "Use Defaults": "Usar Valores Predeterminados", - "Use a negative value for expenses (e.g. -21.99) and a positive value for income.": "Usa un valor negativo para gastos (ej. -21,99) y un valor positivo para ingresos.", - "Use a strong password (minimum 12 characters). This password will encrypt your data.": "Usa una contraseña fuerte (mínimo 12 caracteres). Esta contraseña encriptará tus datos.", - "Use a strong password (minimum 12 characters). This\\n password will encrypt your data.": "Usa una contraseña segura (mínimo 12 caracteres). Esta contraseña cifrará tus datos.", - "Use a view-only key.": "Usa una clave de solo lectura.", - "Use code **:code** to get **80% off** your first period (monthly or yearly!)": "Usa el código **:code** para obtener **80% de descuento** en tu primer período (¡mensual o anual!)", - "Use code **CONTINUE50** to get **50% off** all current and future payments - works for both monthly and yearly subscriptions.": "Usa el código **CONTINUE50** para obtener **50% de descuento** en todos los pagos actuales y futuros, funciona para suscripciones mensuales y anuales.", - "Use the balance on the latest transaction date as a reference to compute balances for older dates.": "Usa el balance de la fecha de la última transacción como referencia para calcular los balances de fechas anteriores.", - "Use the service only for lawful purposes and in compliance with all applicable laws": "Usa el servicio solo para fines legales y en cumplimiento de todas las leyes aplicables", - "Use the service only for lawful purposes and\\n in compliance with all applicable laws": "Usa el servicio solo para fines legales y de conformidad con todas las leyes aplicables", - "User account": "Cuenta de usuario", - "Vacation": "Vacacional", - "Value": "Valor", - "Venezuelan Bolívar": "Bolívar venezolano", - "Verify Email Address": "Verificar Correo Electrónico", - "Verify Your Email - Whisper Money": "Verifica Tu Email - Whisper Money", - "Verify email": "Verificar correo electrónico", - "Verify your email, :name!": "¡Verifica tu correo, :name!", - "Version:": "Versión:", - "View Details": "Ver Detalles", - "View Transactions": "Ver Transacciones", - "View and manage balance records for this account.": "Ver y gestionar registros de balance para esta cuenta.", - "View and manage owed amount records for this account.": "Ver y gestionar registros de monto adeudado para esta cuenta.", - "View and manage your bank accounts": "Ver y administrar tus cuentas bancarias", - "View and manage your transactions": "Ver y gestionar tus transacciones", - "View balance evolution over time": "Ver evolución del balance a lo largo del tiempo", - "View details": "Ver detalles", - "View in Transactions": "Ver en Transacciones", - "Visual Reports": "Reportes Visuales", - "Visual insights": "Análisis visuales", - "Visual insights & reports": "Análisis visuales e informes", - "Visualize your money flow over time. See income vs. expenses and spot trends before they become problems.": "Visualiza el flujo de tu dinero a lo largo del tiempo. Ve ingresos frente a gastos e identifica tendencias antes de que se conviertan en problemas.", - "Víctor & Álvaro": "Víctor y Álvaro", - "Want to connect your bank directly?": "¿Quieres conectar tu banco directamente?", - "Want to continue for free? Disconnect all bank connections in Settings.": "¿Quieres continuar gratis? Desconecta todas las conexiones bancarias en Configuración.", - "Warning": "Advertencia", - "We Can't Read It": "No Podemos Leerlo", - "We also support Open Banking connections so your transactions sync automatically. Head to Settings > Connections to link your bank directly.": "También admitimos conexiones de Open Banking para que tus transacciones se sincronicen automáticamente. Ve a Configuración > Conexiones para vincular tu banco directamente.", - "We are processing your payment...": "Estamos procesando tu pago...", - "We built Whisper Money because we were tired of finance apps that mine your data and sell your habits to third parties. We wanted something simple, private, and actually useful.": "Creamos Whisper Money porque estábamos cansados de apps de finanzas que explotan tus datos y venden tus hábitos a terceros. Queríamos algo simple, privado y realmente útil.", - "We built Whisper Money because we were tired of giving our financial data to big companies who use it for who knows what. Whisper Money **never shares your data with third parties** - you are always the owner of your financial information.": "Creamos Whisper Money porque estábamos cansados de dar nuestros datos financieros a grandes empresas que los usan para quién sabe qué. Whisper Money **nunca comparte tus datos con terceros**: tú eres siempre el propietario de tu información financiera.", - "We built Whisper Money to help you truly understand your finances — without giving up your privacy to do it. Here's what you can look forward to:": "Creamos Whisper Money para ayudarte a entender de verdad tus finanzas, sin sacrificar tu privacidad para ello. Esto es lo que puedes esperar:", - "We collect the following types of personal information:": "Recopilamos los siguientes tipos de información personal:", - "We collect the following types of personal\\n information:": "Recopilamos los siguientes tipos de información personal:", - "We could not collect your subscription payment.": "No hemos podido cobrar el pago de tu suscripción.", - "We disconnected your bank connection to keep your account on free access. Automatic bank sync is now paused, but all your accounts, transactions, and balances remain in Whisper Money.|We disconnected your :count bank connections to keep your account on free access. Automatic bank sync is now paused, but all your accounts, transactions, and balances remain in Whisper Money.": "Desconectamos tu conexión bancaria para mantener tu cuenta con acceso gratuito. La sincronización bancaria automática está ahora en pausa, pero todas tus cuentas, transacciones y saldos permanecen en Whisper Money.|Desconectamos tus :count conexiones bancarias para mantener tu cuenta con acceso gratuito. La sincronización bancaria automática está ahora en pausa, pero todas tus cuentas, transacciones y saldos permanecen en Whisper Money.", - "We do not sell, trade, or rent your personal information to third parties for marketing purposes.": "No vendemos, comercializamos ni alquilamos tu información personal a terceros con fines de marketing.", - "We do not sell, trade, or rent your personal\\n information to third parties for marketing\\n purposes.": "No vendemos, intercambiamos ni alquilamos tu información personal a terceros con fines de marketing.", - "We don't need direct access to your bank accounts. No sharing credentials, no third-party integrations, no security risks. You stay in complete control of your financial data.": "No necesitamos acceso directo a tus cuentas bancarias. Sin compartir credenciales, sin integraciones de terceros, sin riesgos de seguridad. Mantienes el control total de tus datos financieros.", - "We don't sell, trade, or give away your personal information": "No vendemos, intercambiamos ni cedemos tu información personal", - "We don't track, sell, or share your data. Ever.": "No rastreamos, vendemos ni compartimos tus datos. Nunca.", - "We encourage you to contact us directly at victor@whisper.money to resolve any disputes before initiating legal proceedings.": "Te animamos a contactarnos directamente en victor@whisper.money para resolver cualquier disputa antes de iniciar procedimientos legales.", - "We encourage you to contact us directly at\\n victor@whisper.money to resolve any disputes\\n before initiating legal proceedings.": "Te animamos a contactarnos directamente en victor@whisper.money para resolver cualquier disputa antes de iniciar procedimientos legales.", - "We implement robust security measures to protect your personal information:": "Implementamos medidas de seguridad robustas para proteger tu información personal:", - "We implement robust security measures to protect\\n your personal information:": "Implementamos medidas de seguridad robustas para proteger tu información personal:", - "We just synced new transactions from your connected banks:": "Acabamos de sincronizar nuevas transacciones de tus bancos conectados:", - "We know setting up a new app can be overwhelming, and we want to make sure you have everything you need to get started.": "Sabemos que configurar una nueva app puede ser abrumador, y queremos asegurarnos de que tengas todo lo que necesitas para empezar.", - "We may update this Privacy Policy from time to time to reflect changes in our practices or for legal, operational, or regulatory reasons. When we make material changes, we will notify you by email and/or by posting a notice on our website at least 30 days before the changes take effect. Your continued use of the service after changes become effective constitutes acceptance of the updated policy.": "Podemos actualizar esta Política de Privacidad de vez en cuando para reflejar cambios en nuestras prácticas o por razones legales, operativas o regulatorias. Cuando hagamos cambios materiales, te notificaremos por correo electrónico y/o publicando un aviso en nuestro sitio web al menos 30 días antes de que los cambios entren en vigor. Tu uso continuado del servicio después de que los cambios entren en vigor constituye la aceptación de la política actualizada.", - "We may update this Privacy Policy from time to\\n time to reflect changes in our practices or for\\n legal, operational, or regulatory reasons. When\\n we make material changes, we will notify you by\\n email and/or by posting a notice on our website\\n at least 30 days before the changes take effect.\\n Your continued use of the service after changes\\n become effective constitutes acceptance of the\\n updated policy.": "Podemos actualizar esta Política de Privacidad periódicamente para reflejar cambios en nuestras prácticas o por razones legales, operativas o regulatorias. Cuando realicemos cambios sustanciales, te notificaremos por correo electrónico y/o publicando un aviso en nuestro sitio web al menos 30 días antes de que los cambios entren en vigor. Tu uso continuado del servicio después de que los cambios sean efectivos constituye la aceptación de la política actualizada.", - "We never see your transaction descriptions": "Nunca vemos las descripciones de tus transacciones", - "We process your personal data for the following purposes:": "Procesamos tus datos personales para los siguientes propósitos:", - "We process your personal data for the following\\n purposes:": "Procesamos tus datos personales para los siguientes fines:", - "We regularly review and update our security practices": "Revisamos y actualizamos regularmente nuestras prácticas de seguridad", - "We reserve the right to change our pricing with 30 days advance notice to subscribers": "Nos reservamos el derecho de cambiar nuestros precios con 30 días de aviso previo a los suscriptores", - "We reserve the right to change our pricing\\n with 30 days advance notice to subscribers": "Nos reservamos el derecho de cambiar nuestros precios con 30 días de antelación a los suscriptores", - "We reserve the right to modify, suspend, or discontinue any part of the service at any time, with or without notice. We will not be liable to you or any third party for any modification, suspension, or discontinuation of the service.": "Nos reservamos el derecho de modificar, suspender o descontinuar cualquier parte del servicio en cualquier momento, con o sin previo aviso. No seremos responsables ante ti o cualquier tercero por cualquier modificación, suspensión o descontinuación del servicio.", - "We reserve the right to modify, suspend, or\\n discontinue any part of the service at any time,\\n with or without notice. We will not be liable to\\n you or any third party for any modification,\\n suspension, or discontinuation of the service.": "Nos reservamos el derecho de modificar, suspender o interrumpir cualquier parte del servicio en cualquier momento, con o sin previo aviso. No seremos responsables ante ti ni ante ningún tercero por cualquier modificación, suspensión o interrupción del servicio.", - "We see:": "Vemos:", - "We sent a confirmation link to :email. Click it to reserve your waitlist spot and unlock your referral link.": "Te enviamos un enlace de confirmación a :email. Haz clic para reservar tu puesto en la lista de espera y desbloquear tu enlace de referidos.", - "We sent you an invitation to Whisper Money, but it looks like you have not created your account yet.": "Te enviamos una invitación a Whisper Money, pero parece que aún no has creado tu cuenta.", - "We store encrypted data we can't read. Even if our servers were compromised, your data stays secure.": "Almacenamos datos encriptados que no podemos leer. Incluso si nuestros servidores fueran comprometidos, tus datos permanecen seguros.", - "We support CSV and XLS files. Most banks allow you to export your transaction history in one of these formats. The import process automatically maps columns and categorizes transactions.": "Admitimos archivos CSV y XLS. La mayoría de los bancos permiten exportar el historial de transacciones en uno de estos formatos. El proceso de importación mapea automáticamente las columnas y categoriza las transacciones.", - "We support CSV imports from most banks. Just export your transactions and upload them - it takes less than a minute. If your bank format is different, just let us know and we can help.": "Admitimos importaciones CSV de la mayoría de bancos. Solo exporta tus transacciones y súbelas, toma menos de un minuto. Si el formato de tu banco es diferente, haznos saber y te ayudamos.", - "We support Open Banking connections so your transactions sync automatically. Head to Settings > Connections to get started.": "Admitimos conexiones de Open Banking para que tus transacciones se sincronicen automáticamente. Ve a Configuración > Conexiones para empezar.", - "We use essential cookies to maintain your session and ensure the proper functioning of our service. These cookies are necessary for the service to work and cannot be disabled. We do not use tracking cookies or analytics cookies without your explicit consent.": "Usamos cookies esenciales para mantener tu sesión y asegurar el funcionamiento adecuado de nuestro servicio. Estas cookies son necesarias para que el servicio funcione y no se pueden desactivar. No usamos cookies de seguimiento o análisis sin tu consentimiento explícito.", - "We use essential cookies to maintain your\\n session and ensure the proper functioning of our\\n service. These cookies are necessary for the\\n service to work and cannot be disabled. We do\\n not use tracking cookies or analytics cookies\\n without your explicit consent.": "Usamos cookies esenciales para mantener tu sesión y garantizar el correcto funcionamiento de nuestro servicio. Estas cookies son necesarias para que el servicio funcione y no se pueden deshabilitar. No usamos cookies de seguimiento ni de análisis sin tu consentimiento explícito.", - "We use the following third-party services to operate our platform:": "Usamos los siguientes servicios de terceros para operar nuestra plataforma:", - "We use the following third-party services to\\n operate our platform:": "Utilizamos los siguientes servicios de terceros para operar nuestra plataforma:", - "We were unable to sync your :provider connection because your credentials appear to have expired or been revoked.": "No pudimos sincronizar tu conexión con :provider porque tus credenciales parecen haber expirado o sido revocadas.", - "We will retry up to 4 times during the week. You keep access for now, but the subscription will be canceled if all retries fail.": "Lo reintentaremos hasta 4 veces durante la semana. Mantienes el acceso por ahora, pero la suscripción se cancelará si fallan todos los reintentos.", - "We're **Victor and Alvaro**, the founders of Whisper Money. Thanks so much for joining the list — it genuinely means a lot to us.": "Somos **Víctor y Álvaro**, los fundadores de Whisper Money. Muchísimas gracias por unirte a la lista — significa mucho para nosotros.", - "We're Victor and Álvaro, the founders of Whisper Money. You signed up a while back to hear about our privacy-first personal finance app, and we're excited to tell you - we're live!": "Somos Víctor y Álvaro, los fundadores de Whisper Money. Te registraste hace un tiempo para recibir noticias sobre nuestra app de finanzas personales centrada en la privacidad, y estamos emocionados de contarte: ¡ya estamos en vivo!", - "We're Víctor and Álvaro, the founders of Whisper Money. Now Whisper Money is open. As a thank you, your first months are on us.": "Somos Víctor y Álvaro, los fundadores de Whisper Money. Ya puedes registrate. Como agradecimiento, los primeros meses los invitamos nosotros.", - "We're Víctor and Álvaro, the founders of Whisper Money. Someone you invited landed in our top 10 — that makes you a Whisper Money founder too.": "Somos Víctor y Álvaro, los fundadores de Whisper Money. Alguien a quien invitaste está entre los 10 primeros — eso te convierte en un usuario de Whisper Money desde el día uno también.", - "We're Víctor and Álvaro, the founders of Whisper Money. You joined the waitlist a while back — thanks for waiting. Whisper Money is open, and we saved a welcome gift for you.": "Somos Víctor y Álvaro, los fundadores de Whisper Money. Te apuntaste a la lista de espera hace un tiempo — gracias por esperar. Ya puedes registrarte y te hemos guardado un regalo de bienvenida.", - "We're Víctor and Álvaro, the founders of Whisper Money. You're one of our first 10. That makes you a Whisper Money founder user.": "Somos Víctor y Álvaro, los fundadores de Whisper Money. Estás entre los 10 primeros. Eso te convierte en un usuario de Whisper Money desde el día uno.", - "We're looking through your transaction history to find expenses that match this budget. This usually takes a few seconds.": "Estamos revisando tu historial de transacciones para encontrar gastos que coincidan con este presupuesto. Esto usualmente toma unos segundos.", - "We're looking through your transaction\\n history to find expenses that match this\\n budget. This usually takes a few seconds.": "Estamos buscando en tu historial de transacciones gastos que coincidan con este presupuesto. Esto suele tardar unos segundos.", - "We're sorry to see you go": "Lamentamos que te vayas", - "We're sorry to see you go, :name": "Lamentamos que te vayas, :name", - "We're two founders building this because we believe you deserve a finance app that actually respects your privacy. Every subscription helps us keep the lights on and build features you actually want. No investors, no board meetings, just us trying to build something useful and private.": "Somos dos fundadores construyendo esto porque creemos que mereces una app de finanzas que realmente respete tu privacidad. Cada suscripción nos ayuda a mantener el proyecto y construir las funciones que realmente quieres. Sin inversores, sin reuniones de directorio, solo nosotros intentando construir algo útil y privado.", - "We're working hard to open things up, and we can't wait to share Whisper Money with you.": "Estamos trabajando duro para abrir el acceso, y no podemos esperar para compartir Whisper Money contigo.", - "We've created a comprehensive set of categories for you. You can customize them now or adjust them later in settings.": "Hemos creado un conjunto completo de categorías para ti. Puedes personalizarlas ahora o ajustarlas más tarde en la configuración.", - "Weak": "Débil", - "Weekly": "Semanal", - "Welcome": "Bienvenido", - "Welcome aboard, :name!": "¡Bienvenido a bordo, :name!", - "Welcome to Pro!": "¡Bienvenido a Pro!", - "Welcome to Whisper Money - Your Privacy-First Finance App": "Bienvenido a Whisper Money - Tu App de Finanzas con Privacidad", - "Welcome to Whisper Money, :name!": "¡Bienvenido a Whisper Money, :name!", - "Welcome to
Whisper Money": "Bienvenido a
Whisper Money", - "What do you want to do?": "¿Qué quieres hacer?", - "What features would make Whisper Money more useful for you?": "¿Qué funciones harían que Whisper Money fuera más útil para ti?", - "What file formats are supported for import?": "¿Qué formatos de archivo se admiten para la importación?", - "What happens after you confirm?": "¿Qué pasa después de confirmar?", - "What is Whisper Money?": "¿Qué es Whisper Money?", - "What people are saying": "Lo que la gente dice", - "What should happen to its child categories?": "¿Qué debería pasar con sus categorías hijas?", - "What you get": "Lo que obtienes", - "What's more, even if I wanted to use it, I couldn't, since you're the only one who has the key to read the data.": "Es más, aunque quisiera usarlos, no podría, ya que tú eres el único que tiene la clave para leer los datos.", - "When I started building Whisper Money, I was frustrated with finance apps that wanted to mine my data or use AI to analyze my spending. I just wanted a simple, private way to track my finances - and I figured others might too.": "Cuando empecé a construir Whisper Money, estaba frustrado con las apps de finanzas que querían minar mis datos o usar IA para analizar mis gastos. Solo quería una forma simple y privada de rastrear mis finanzas - y pensé que otros también.", - "When you create an account with Whisper Money, you agree to:": "Cuando creas una cuenta con Whisper Money, aceptas:", - "When you create an account with Whisper Money,\\n you agree to:": "Al crear una cuenta con Whisper Money, aceptas:", - "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "Cuando actives la autenticación de dos factores, se te pedirá un pin seguro durante el inicio de sesión. Este pin se puede obtener de una aplicación compatible con TOTP en tu teléfono.", - "When you enable two-factor authentication, you\\n will be prompted for a secure pin during login.\\n This pin can be retrieved from a TOTP-supported\\n application on your phone.": "Cuando actives la autenticación de dos factores, se te pedirá un PIN seguro durante el inicio de sesión. Este PIN se puede obtener de una aplicación compatible con TOTP en tu teléfono.", - "Where processing is based on consent, you can withdraw it at any time": "Cuando el procesamiento se basa en el consentimiento, puedes retirarlo en cualquier momento", - "Where processing is based on consent, you\\n can withdraw it at any time": "Cuando el procesamiento se base en el consentimiento, puedes retirarlo en cualquier momento", - "Where your money comes from": "De dónde viene tu dinero", - "Where your money goes": "A dónde va tu dinero", - "Whether it's a bug you've found, a feature you'd love to see, or just general thoughts - I want to hear it all. This is my project, and I care deeply about making it work well for you.": "Ya sea un error que hayas encontrado, una función que te gustaría ver, o simplemente pensamientos generales, quiero escucharlo todo. Este es mi proyecto y me importa mucho que funcione bien para ti.", - "Whether it's a bug you've found, a feature you'd love to see, or just general thoughts - we want to hear it all. This is our project, and we care deeply about making it work well for you.": "Ya sea un error que hayas encontrado, una función que te gustaría ver, o simplemente pensamientos generales, queremos escucharlo todo. Este es nuestro proyecto y nos importa profundamente que funcione bien para ti.", - "While we use industry-standard security measures, no method of transmission over the internet or electronic storage is 100% secure. We cannot guarantee absolute security but continuously work to protect your data.": "Aunque usamos medidas de seguridad estándar de la industria, ningún método de transmisión por internet o almacenamiento electrónico es 100% seguro. No podemos garantizar seguridad absoluta pero trabajamos continuamente para proteger tus datos.", - "While we use industry-standard security\\n measures, no method of transmission over the\\n internet or electronic storage is 100% secure.\\n We cannot guarantee absolute security but\\n continuously work to protect your data.": "Aunque utilizamos medidas de seguridad estándar del sector, ningún método de transmisión por internet o almacenamiento electrónico es 100% seguro. No podemos garantizar seguridad absoluta, pero trabajamos continuamente para proteger tus datos.", - "Whisper Money - Secure Personal Finance App": "Whisper Money - App Segura de Finanzas Personales", - "Whisper Money - The Most Secure Personal Finance App": "Whisper Money - La App Más Segura de Finanzas Personales", - "Whisper Money is a **privacy-first personal finance app** that puts you in control:": "Whisper Money es una **app de finanzas personales centrada en la privacidad** que te pone en control:", - "Whisper Money is a personal finance tracking application that allows you to:": "Whisper Money es una aplicación de seguimiento de finanzas personales que te permite:", - "Whisper Money is a personal finance tracking\\n application that allows you to:": "Whisper Money es una aplicación de seguimiento de finanzas personales que te permite:", - "Whisper Money is the data controller responsible for your personal information.": "Whisper Money es el controlador de datos responsable de tu información personal.", - "Whisper Money is the data controller responsible\\n for your personal information.": "Whisper Money es el responsable del tratamiento de tus datos personales.", - "Whisper Money never shares your data with third parties. Here's how we protect your privacy:": "Whisper Money nunca comparte tus datos con terceros. Así es como protegemos tu privacidad:", - "Whisper Money. All rights reserved.": "Whisper Money. Todos los derechos reservados.", - "Whisper Money. All\\n rights reserved.": "Whisper Money. Todos los derechos reservados.", - "Whole Foods Market": "Whole Foods Market", - "Why No AI Auto-Categorization?": "¿Por Qué No Hay Auto-Categorización por IA?", - "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "Con la autenticación de dos factores activada, se te pedirá un pin seguro y aleatorio durante el inicio de sesión, que puedes obtener de la aplicación compatible con TOTP en tu teléfono.", - "With two-factor authentication enabled, you will\\n be prompted for a secure, random pin during\\n login, which you can retrieve from the\\n TOTP-supported application on your phone.": "Con la autenticación de dos factores activada, se te pedirá un PIN seguro y aleatorio durante el inicio de sesión, que puedes obtener de la aplicación compatible con TOTP en tu teléfono.", - "Works everywhere": "Funciona en todas partes", - "Would you like to add more accounts or continue to the dashboard?": "¿Quieres agregar más cuentas o continuar al panel?", - "YYYY-MM-DD (e.g., 2024-12-31)": "YYYY-MM-DD (ej., 2024-12-31)", - "YYYYMMDD (e.g., 20241231)": "YYYYMMDD (ej., 20241231)", - "Year": "Año", - "Yearly": "Anual", - "Yearly code": "Código anual", - "Yes! Whisper Money is fully open source. You can review the code, suggest improvements, or even self-host it. Transparency is a core part of our privacy commitment.": "¡Sí! Whisper Money es completamente de código abierto. Puedes revisar el código, sugerir mejoras o incluso alojarlo tú mismo. La transparencia es una parte fundamental de nuestro compromiso con la privacidad.", - "Yes. Bank connections use secure Open Banking and never require your bank credentials, so transactions can sync automatically. This is a Pro feature; free users can import everything, but only through the CSV/Excel importer.": "Sí. Las conexiones bancarias usan Open Banking seguro y nunca requieren tus credenciales bancarias, por lo que las transacciones se sincronizan automáticamente. Es una función Pro; los usuarios gratuitos pueden importarlo todo, pero solo mediante el importador CSV/Excel.", - "Yesterday": "Ayer", - "You agree to indemnify, defend, and hold harmless Whisper Money and its officers, directors, employees, and agents from any claims, liabilities, damages, losses, and expenses, including reasonable legal fees, arising out of or related to your use of the service, violation of these Terms, or violation of any rights of another party.": "Aceptas indemnizar, defender y eximir de responsabilidad a Whisper Money y sus funcionarios, directores, empleados y agentes de cualquier reclamo, responsabilidad, daño, pérdida y gasto, incluidos los honorarios legales razonables, que surjan de o estén relacionados con tu uso del servicio, violación de estos Términos o violación de los derechos de otra parte.", - "You agree to indemnify, defend, and hold\\n harmless Whisper Money and its officers,\\n directors, employees, and agents from any\\n claims, liabilities, damages, losses, and\\n expenses, including reasonable legal fees,\\n arising out of or related to your use of the\\n service, violation of these Terms, or violation\\n of any rights of another party.": "Aceptas indemnizar, defender y eximir de responsabilidad a Whisper Money y sus directivos, directores, empleados y agentes de cualquier reclamación, responsabilidad, daño, pérdida y gasto, incluidos los honorarios legales razonables, derivados de o relacionados con tu uso del servicio, la violación de estos Términos o la violación de los derechos de otra parte.", - "You agree to pay all applicable fees as described at the time of purchase": "Aceptas pagar todas las tarifas aplicables según se describan en el momento de la compra", - "You agree to pay all applicable fees as\\n described at the time of purchase": "Aceptas pagar todas las tarifas aplicables tal como se describen en el momento de la compra", - "You already have accounts set up. Let's continue with the onboarding.": "Ya tienes cuentas configuradas. Continuemos con la configuración.", - "You are always the owner of your data": "Siempre eres el dueño de tus datos", - "You are being redirected in 3 seconds.": "Serás redirigido en 3 segundos.", - "You are currently **#:position** in line for early access.": "Actualmente estás en el puesto **#:position** para el acceso anticipado.", - "You are now **#:position** in line for early access.": "Ahora estás en el puesto **#:position** para el acceso anticipado.", - "You are responsible for all taxes associated with your purchase": "Eres responsable de todos los impuestos asociados con tu compra", - "You are responsible for all taxes associated\\n with your purchase": "Eres responsable de todos los impuestos asociados con tu compra", - "You are responsible for maintaining backups of your data. While we implement reasonable backup procedures, we recommend you export and save copies of important data regularly.": "Eres responsable de mantener copias de seguridad de tus datos. Aunque implementamos procedimientos razonables de respaldo, recomendamos que exportes y guardes copias de datos importantes regularmente.", - "You are responsible for maintaining backups of\\n your data. While we implement reasonable backup\\n procedures, we recommend you export and save\\n copies of important data regularly.": "Eres responsable de mantener copias de seguridad de tus datos. Aunque implementamos procedimientos de respaldo razonables, te recomendamos que exportes y guardes copias de los datos importantes regularmente.", - "You can also manually add transactions and account balances. Some users prefer to start tracking from today rather than importing history - that's totally fine! Do whatever works best for you.": "También puedes agregar transacciones y balances de cuentas manualmente. Algunos usuarios prefieren empezar a rastrear desde hoy en lugar de importar historial, ¡eso está totalmente bien! Haz lo que funcione mejor para ti.", - "You can always customize categories later in Settings \\u2192\\n Categories": "Siempre puedes personalizar las categorías más tarde en Configuración → Categorías", - "You can always customize categories later in Settings → Categories": "Siempre puedes personalizar las categorías más tarde en Configuración → Categorías", - "You can continue using the app on the free plan, and you can reconnect your bank later if you upgrade again.": "Puedes seguir usando la app con el plan gratuito y volver a conectar tu banco más adelante si actualizas de nuevo.", - "You can create API keys from your Binance account under": "Puedes crear claves API desde tu cuenta de Binance en", - "You can create API keys from your Bitpanda account under": "Puedes crear claves API desde tu cuenta de Bitpanda en", - "You can file a complaint with your local data protection authority": "Puedes presentar una queja ante tu autoridad local de protección de datos", - "You can file a complaint with your local\\n data protection authority": "Puedes presentar una queja ante tu autoridad local de protección de datos", - "You can generate your API token from your Indexa Capital dashboard under": "Puedes generar tu token API desde el panel de Indexa Capital en", - "You can object to processing of your data based on legitimate interests": "Puedes objetar el procesamiento de tus datos basándose en intereses legítimos", - "You can request a copy of the personal data we hold about you": "Puedes solicitar una copia de los datos personales que tenemos sobre ti", - "You can request correction of inaccurate or incomplete data": "Puedes solicitar la corrección de datos inexactos o incompletos", - "You can request deletion of your personal data (right to be forgotten)": "Puedes solicitar la eliminación de tus datos personales (derecho al olvido)", - "You can request restriction of processing in certain circumstances": "Puedes solicitar la restricción del procesamiento en ciertas circunstancias", - "You can request your data in a structured, machine-readable format": "Puedes solicitar tus datos en un formato estructurado y legible por máquina", - "You can request your data in a structured,\\n machine-readable format": "Puedes solicitar tus datos en un formato estructurado y legible por máquina", - "You can\\n object to processing of your data based on\\n legitimate interests": "Puedes oponerte al procesamiento de tus datos basado en intereses legítimos", - "You can\\n request a copy of the personal data we hold\\n about you": "Puedes solicitar una copia de los datos personales que tenemos sobre ti", - "You can\\n request deletion of your personal data\\n (right to be forgotten)": "Puedes solicitar la eliminación de tus datos personales (derecho al olvido)", - "You get your personal referral link.": "Obtienes tu enlace personal de referidos.", - "You have :count expired bank connections.": "Tienes :count conexiones bancarias caducadas.", - "You may cancel your subscription at any time. Upon cancellation, you will retain access until the end of your current billing period, after which your subscription will not renew.": "Puedes cancelar tu suscripción en cualquier momento. Al cancelar, mantendrás acceso hasta el final de tu período de facturación actual, después del cual tu suscripción no se renovará.", - "You may cancel your subscription at any time.\\n Upon cancellation, you will retain access until\\n the end of your current billing period, after\\n which your subscription will not renew.": "Puedes cancelar tu suscripción en cualquier momento. Tras la cancelación, mantendrás el acceso hasta el final de tu período de facturación actual, después del cual tu suscripción no se renovará.", - "You may not use the service to engage in any illegal activity, transmit malicious code, attempt to gain unauthorized access to our systems, or interfere with the proper functioning of the service.": "No puedes usar el servicio para participar en ninguna actividad ilegal, transmitir código malicioso, intentar obtener acceso no autorizado a nuestros sistemas o interferir con el funcionamiento adecuado del servicio.", - "You may not use the service to engage in any\\n illegal activity, transmit malicious code,\\n attempt to gain unauthorized access to our\\n systems, or interfere with the proper\\n functioning of the service.": "No puedes usar el servicio para realizar actividades ilegales, transmitir código malicioso, intentar obtener acceso no autorizado a nuestros sistemas o interferir con el correcto funcionamiento del servicio.", - "You may terminate your account at any time by deleting your account through the application settings or by contacting us. Upon termination, your right to use the service will immediately cease.": "Puedes cancelar tu cuenta en cualquier momento eliminándola a través de la configuración de la aplicación o contactándonos. Al cancelar, tu derecho a usar el servicio cesará inmediatamente.", - "You may terminate your account at any time by\\n deleting your account through the application\\n settings or by contacting us. Upon termination,\\n your right to use the service will immediately\\n cease.": "Puedes terminar tu cuenta en cualquier momento eliminándola a través de la configuración de la aplicación o contactándonos. Tras la terminación, tu derecho a usar el servicio cesará de inmediato.", - "You must be at least 16 years old to use this service. By using Whisper Money, you represent and warrant that you meet this age requirement.": "Debes tener al menos 16 años para usar este servicio. Al usar Whisper Money, declaras y garantizas que cumples con este requisito de edad.", - "You must be at least 16 years old to use this\\n service. By using Whisper Money, you represent\\n and warrant that you meet this age requirement.": "Debes tener al menos 16 años para usar este servicio. Al usar Whisper Money, declaras y garantizas que cumples con este requisito de edad.", - "You must select either a category or a label.": "Debes seleccionar una categoría o una etiqueta.", - "You now have full access to all Whisper Money features. Thank you for supporting us!": "¡Ahora tienes acceso completo a todas las funciones de Whisper Money. Gracias por apoyarnos!", - "You retain all ownership rights to the financial data and information you enter into Whisper Money. We do not claim any ownership over your personal financial information.": "Conservas todos los derechos de propiedad sobre los datos financieros e información que ingresas en Whisper Money. No reclamamos ninguna propiedad sobre tu información financiera personal.", - "You retain all\\n ownership rights to the financial data and\\n information you enter into Whisper Money. We do\\n not claim any ownership over your personal\\n financial information.": "Conservas todos los derechos de propiedad sobre los datos financieros e información que introduces en Whisper Money. No reclamamos ningún derecho de propiedad sobre tu información financiera personal.", - "You see:": "Ves:", - "You will be redirected to authorize access to your account data.": "Serás redirigido para autorizar el acceso a los datos de tu cuenta.", - "You will be redirected to your bank to authorize access.": "Serás redirigido a tu banco para autorizar el acceso.", - "You'll receive an exclusive promo code via DM!": "¡Recibirás un código promocional exclusivo por mensaje directo!", - "You'll receive an\\n exclusive promo code via\\n DM!": "¡Recibirás un código promocional exclusivo por DM!", - "You're All Set!": "¡Estás Todo Listo!", - "You're a Whisper Money founder — free forever 🎁": "Eres uno de los pioneros en Whisper Money — gratis para siempre 🎁", - "You're a Whisper Money founder 🎁": "Eres uno de los pioneros en Whisper Money 🎁", - "You're enjoying all the benefits of Whisper Money Pro": "Estás disfrutando de todos los beneficios de Whisper Money Pro", - "You're in complete control": "Tienes control completo", - "You're in early — months on us at Whisper Money": "Llegas pronto — los primeros meses los invitamos nosotros", - "You're in early — months on us 🎉": "Llegas pronto — los primeros meses los invitamos nosotros 🎉", - "You're on the Whisper Money waiting list!": "¡Estás en la lista de espera de Whisper Money!", - "You're on the list!": "¡Estás en la lista!", - "You're on the waiting list — Whisper Money": "Estás en la lista de espera — Whisper Money", - "You've categorized all your transactions.": "Has categorizado todas tus transacciones.", - "You've joined the Whisper Money waiting list. Share your referral link to move up the queue.": "Te has unido a la lista de espera de Whisper Money. Comparte tu enlace de referido para avanzar en la fila.", - "You've used 90% of your budget": "Has usado el 90% de tu presupuesto", - "You\\n can request correction of inaccurate or\\n incomplete data": "Puedes solicitar la corrección de datos inexactos o incompletos", - "You\\n can request restriction of processing in\\n certain circumstances": "Puedes solicitar la restricción del procesamiento en determinadas circunstancias", - "Your :provider connection has expired.": "Tu conexión con :provider ha caducado.", - "Your :provider connection needs attention": "Tu conexión con :provider necesita atención", - "Your Accounts": "Tus Cuentas", - "Your Categories Include:": "Tus Categorías Incluyen:", - "Your Data is Truly Private": "Tus Datos Son Verdaderamente Privados", - "Your Data, Your Privacy": "Tus Datos, Tu Privacidad", - "Your Data, Your Rules": "Tus Datos, Tus Reglas", - "Your Data:": "Tus Datos:", - "Your Founder Discount - 80% Off First Period": "Tu Descuento de Fundador - 80% de Descuento en el Primer Período", - "Your Position in the Queue": "Tu Posición en la Fila", - "Your Private Key": "Tu Clave Privada", - "Your Pro Plan": "Tu Plan Pro", - "Your Whisper Money invitation is here": "Tu invitación a Whisper Money ya está aquí", - "Your accounts are ready and your data is securely encrypted. Welcome to Whisper Money!": "Tus cuentas están listas y tus datos están encriptados de forma segura. ¡Bienvenido a Whisper Money!", - "Your bank connections were disconnected": "Tus conexiones bancarias fueron desconectadas", - "Your continued use of the service after the effective date of revised Terms constitutes your acceptance of the changes. If you do not agree to the new terms, you must stop using the service and may delete your account.": "Tu uso continuado del servicio después de la fecha efectiva de los Términos revisados constituye tu aceptación de los cambios. Si no estás de acuerdo con los nuevos términos, debes dejar de usar el servicio y puedes eliminar tu cuenta.", - "Your continued use of the service after the\\n effective date of revised Terms constitutes your\\n acceptance of the changes. If you do not agree\\n to the new terms, you must stop using the\\n service and may delete your account.": "Tu uso continuado del servicio después de la fecha de entrada en vigor de los Términos revisados constituye tu aceptación de los cambios. Si no estás de acuerdo con los nuevos términos, debes dejar de usar el servicio y puedes eliminar tu cuenta.", - "Your data and settings will be preserved, so you can pick up right where you left off.": "Tus datos y configuración se conservarán, así que puedes retomar donde lo dejaste.", - "Your data encrypted and private": "Tus datos cifrados y privados", - "Your data is encrypted before it leaves your browser.": "Tus datos se encriptan antes de salir de tu navegador.", - "Your data is never shared with third parties": "Tus datos nunca se comparten con terceros", - "Your data is never shared with third parties. You are always the owner.": "Tus datos nunca se comparten con terceros. Tú eres siempre el propietario.", - "Your data is ready": "Tus datos están listos", - "Your data is stored securely and never shared with third parties. We don't use your financial data for AI training, advertising, or any purpose other than providing you the service.": "Tus datos se almacenan de forma segura y nunca se comparten con terceros. No usamos tus datos financieros para entrenamiento de IA, publicidad ni ningún otro propósito que no sea proporcionarte el servicio.", - "Your data is yours alone. Sign up to get started.": "Tus datos son solo tuyos. Regístrate para comenzar.", - "Your data is yours. Export it anytime in standard formats.": "Tus datos son tuyos. Expórtalos en cualquier momento en formatos estándar.", - "Your data stays private. Always.": "Tus datos permanecen privados. Siempre.", - "Your data stays private—never shared with third parties.": "Tus datos permanecen privados—nunca se comparten con terceros.", - "Your data stays yours": "Tus datos son solo tuyos", - "Your data stays yours—never shared with third parties": "Tus datos son solo tuyos—nunca se comparten con terceros", - "Your early access to Whisper Money is ready": "Tu acceso anticipado a Whisper Money está listo", - "Your early-access gift": "Tu regalo por llegar pronto", - "Your email address": "Tu correo electrónico", - "Your email address is unverified.": "Tu dirección de correo electrónico no está verificada.", - "Your financial data belongs to you — not us, not advertisers, not anyone else:": "Tus datos financieros te pertenecen a ti, no a nosotros, no a los anunciantes, a nadie más:", - "Your financial data is encrypted on your device before being transmitted to our servers, ensuring that only you can access your information": "Tus datos financieros se encriptan en tu dispositivo antes de ser transmitidos a nuestros servidores, asegurando que solo tú puedas acceder a tu información", - "Your financial data is encrypted on your device before it ever reaches our servers.": "Tus datos financieros se encriptan en tu dispositivo antes de que lleguen a nuestros servidores.", - "Your financial data is encrypted on your device. Only you can access it.": "Tus datos financieros se encriptan en tu dispositivo. Solo tú puedes acceder a ellos.", - "Your financial data stays private and is never shared": "Tus datos financieros son privados y nunca se comparten", - "Your financial data stays private. The most secure way to manage your personal finances.": "Tus datos financieros permanecen privados. La forma más segura de gestionar tus finanzas personales.", - "Your financial data stays private—never shared with third parties. The most secure way to manage your personal finances.": "Tus datos financieros permanecen privados—nunca se comparten con terceros. La forma más segura de gestionar tus finanzas personales.", - "Your financial data stays private—never shared with third parties. Track expenses, create budgets, and achieve your goals—all while keeping your information completely secure.": "Tus datos financieros permanecen privados—nunca se comparten con terceros. Rastrea gastos, crea presupuestos y alcanza tus metas, todo mientras mantienes tu información completamente segura.", - "Your first account must be a": "Tu primera cuenta debe ser una", - "Your first account must be a checking account.": "Tu primera cuenta debe ser una cuenta corriente.", - "Your gift: Whisper Money Pro, free forever": "Tu regalo: Whisper Money Pro, gratis para siempre", - "Your key will be cleared when you close the browser.": "Tu clave se borrará cuando cierres el navegador.", - "Your key will be stored until you log out.": "Tu clave se almacenará hasta que cierres sesión.", - "Your launch codes are still available:": "Tus códigos de lanzamiento siguen disponibles:", - "Your personal code": "Tu código personal", - "Your place in the queue is reserved.": "Tu lugar en la cola queda reservado.", - "Your position in the queue": "Tu posición en la fila", - "Your referral made you a Whisper Money founder — free forever 🎁": "Tu invitación te ha convertido en fundador de Whisper Money — gratis para siempre 🎁", - "Your referral made you a founder 🎁": "Tu invitación te ha convertido en fundador 🎁", - "Your rules run entirely in your browser": "Tus reglas se ejecutan completamente en tu navegador", - "Your subscription is now active": "Tu suscripción ya está activa", - "Your transactions, accounts, and budgets are encrypted on your device before syncing to the cloud.": "Tus transacciones, cuentas y presupuestos se encriptan en tu dispositivo antes de sincronizarse con la nube.", - "Your use or inability to use the service": "Tu uso o incapacidad para usar el servicio", - "Your welcome gift": "Tu regalo de bienvenida", - "Zero tracking": "Sin rastreo", - "Zero-Knowledge Architecture": "Arquitectura de Conocimiento Cero", - "[Loading...]": "[Cargando...]", - "\\u2014 $9/month": "\\u2014 9$/mes", - "\\u2190 Back to home": "\\u2190 Volver al inicio", - "\\uD83C\\uDF89 Get a founder discount \\u2022": "\\uD83C\\uDF89 Obtén un descuento de fundador \\u2022", - "above.": "arriba.", - "account": "cuenta", - "account.": "cuenta.", - "accounts": "cuentas", - "acres": "acres", - "after 3 months with Whisper Money": "después de 3 meses con Whisper Money", - "amber": "ámbar", - "balance": "balance", - "balance record": "registro de balance", - "balance records": "registros de balance", - "balances": "balances", - "balances imported": "balances importados", - "blue": "azul", - "button in your browser toolbar": "en la barra de herramientas de tu navegador", - "category(ies) total.": "categoría(s) en total.", - "contains": "contiene", - "cyan": "cian", - "direct": "directo", - "e.g. 360 for a 30-year mortgage": "ej. 360 para una hipoteca a 30 años", - "e.g., Monthly Budget": "ej., Presupuesto Mensual", - "e.g., Padel Budget": "ej., Presupuesto de Pádel", - "email@example.com": "email@example.com", - "emerald": "esmeralda", - "en_US": "es_ES", - "equals": "es igual a", - "finance app, budgeting, expense tracking, privacy-first, secure finance, personal finance, money management, privacy, no data sharing": "app de finanzas, presupuestos, seguimiento de gastos, privacidad primero, finanzas seguras, finanzas personales, gestión del dinero, privacidad, sin compartir datos", - "finance app, budgeting, expense tracking, secure finance, personal finance, money management, privacy, privacy-first finance app": "aplicación financiera, presupuesto, seguimiento de gastos, finanzas seguras, finanzas personales, gestión del dinero, privacidad, aplicación financiera centrada en la privacidad", - "for the last 12 months": "en los últimos 12 meses", - "for the last 30 days": "en los últimos 30 días", - "forever": "siempre", - "ft²": "ft²", - "fuchsia": "fucsia", - "gray": "gris", - "greater than": "mayor que", - "green": "verde", - "ha": "ha", - "index, follow": "index, follow", - "indigo": "índigo", - "is empty": "está vacío", - "is not empty": "no está vacío", - "label(s) total.": "etiqueta(s) en total.", - "less than": "menor que", - "lime": "lima", - "log in": "iniciar sesión", - "market value": "valor de mercado", - "market values": "valores de mercado", - "months": "meses", - "m²": "m²", - "neutral": "neutro", - "of": "de", - "on the last 30 days": "en los últimos 30 días", - "one-time": "pago único", - "only with you": "solo contigo", - "or you can": "o puedes", - "or, enter the code manually": "o, ingresa el código manualmente", - "orange": "naranja", - "owed amount": "monto adeudado", - "owed amount record": "registro de monto adeudado", - "owed amount records": "registros de monto adeudado", - "owed amounts": "montos adeudados", - "owed amounts imported": "montos adeudados importados", - "per month": "por mes", - "per year": "por año", - "pink": "rosa", - "purple": "púrpura", - "px) /": "px) /", - "red": "rojo", - "remaining": "restantes", - "rose": "rosado", - "row(s) total": "fila(s) en total", - "rule(s) total.": "regla(s) en total.", - "slate": "pizarra", - "spending awareness reported": "conocimiento del gasto reportado", - "stone": "piedra", - "summary_large_image": "summary_large_image", - "taking control of their finances": "tomando el control de sus finanzas", - "teal": "cerceta", - "this month": "este mes", - "to confirm.": "para confirmar.", - "today": "hoy", - "transactions imported": "transacciones importadas", - "transactions loaded": "transacciones cargadas", - "transactions total": "transacciones en total", - "used": "usado", - "victor@whisper.money": "victor@whisper.money", - "violet": "violeta", - "vs last month": "vs mes anterior", - "vs last period": "vs período anterior", - "vs start": "vs inicio", - "will be updated or created.": "será actualizado o creado.", - "years": "años", - "yellow": "amarillo", - "— $9/month": "— $9/mes", - "← Back to home": "← Volver al inicio", - "🎉 Get a founder discount •": "🎉 Obtén un descuento de fundador •", - "I just started syncing my accounts and it already feels like a great app. The interface is lovely and it looks like a really solid tool. Great work!": "Acabo de empezar a sincronizar cuentas y ya me parece una gran app. La interfaz me encanta y parece una herramienta muy sólida. ¡Muy buen trabajo!", - "I have a lot of faith in this project — it's really well built and your MVP is fantastic. Thanks for everything!": "Confío mucho en este proyecto, está muy bien montado y vuestro MVP está de lujo. ¡Gracias por todo!", - "I'm exploring the web app and the design and UX are excellent. Thanks, team!": "Estoy descubriendo la aplicación web y, a nivel de diseño y UX, está excelente. ¡Gracias, chicos!", - "Thank you for developing Whisper Money. The focus on privacy and centralizing finances is an excellent proposition.": "Gracias por desarrollar Whisper Money. El enfoque en la privacidad y en centralizar las finanzas es una propuesta excelente.", - "I found Whisper Money and instantly knew I needed it. I was stuck doing everything in a spreadsheet — a chore I kept putting off. This makes it effortless.": "Descubrí Whisper Money y supe al instante que lo necesitaba. Estaba haciéndolo todo en una hoja de cálculo, una tarea que acababa posponiendo siempre. Esto lo hace facilísimo.", - "Thank you so much for creating such a clean, simple app.": "Muchísimas gracias por crear una app tan limpia y sencilla.", - "Great project!": "¡Gran proyecto!", - "I love this project!": "¡Me encanta este proyecto!", - "I'm genuinely happy using an open-source project with a real commitment to privacy — that's exactly what I want from a finance app.": "Estoy realmente contento usando un proyecto open-source con un compromiso real con la privacidad: es exactamente lo que quiero de una app de finanzas.", - "I can't wait to discover everything the app can do. Thank you — it must have taken a tremendous effort. Congratulations!": "Con muchas ganas de ir descubriendo todo lo que se puede hacer con la aplicación. ¡Gracias! Debe haber sido un esfuerzo tremendo. ¡Enhorabuena!", - "The app is intuitive, functional, and a real help for managing my finances day to day. What stands out most is how much the free version offers — it really shows your commitment to your users. I’ll keep recommending it!": "La aplicación es intuitiva, funcional y de gran ayuda para gestionar mis finanzas en el día a día. Lo que más destaca es la cantidad de opciones de la versión gratuita: demuestra vuestro compromiso con los usuarios. ¡Seguiré recomendándola!", - "I built the app I needed to make better decisions. Understanding how I spend and where my income comes from has brought me real financial peace of mind.": "He construido la app que necesitaba para tomar mejores decisiones. Entender cómo gasto y de dónde vienen mis ingresos me ha dado una verdadera tranquilidad financiera.", - "AI Suggestions": "Sugerencias de IA", - "AI suggestions are a Standard Plan feature. You'll choose a plan at the end of the onboarding.": "Las sugerencias de IA son una función del plan Standard. Elegirás un plan al final del proceso de incorporación.", - "Rules created": "Reglas creadas", - "We created :rules rules and categorized :count transactions for you.": "Hemos creado :rules reglas y categorizado :count transacciones por ti.", - "Looking for patterns": "Buscando patrones", - "We’re finding the rules that will categorize most of your transactions automatically.": "Estamos encontrando las reglas que categorizarán la mayoría de tus transacciones automáticamente.", - "Analysing your transactions…": "Analizando tus transacciones…", - "Finding related groups…": "Buscando grupos relacionados…", - "Finding the right categories…": "Encontrando las categorías adecuadas…", - "Grouping everything together…": "Agrupándolo todo…", - "Polishing your suggestions…": "Puliendo tus sugerencias…", - "This can take up to two minutes.": "Esto puede tardar hasta dos minutos.", - "Let AI organize your money": "Deja que la IA organice tu dinero", - "With your permission, we’ll send merchant names from your transactions to our AI provider to suggest categorization rules. We never send your full financial picture, and you review every rule before it’s created.": "Con tu permiso, enviaremos los nombres de los comercios de tus transacciones a nuestro proveedor de IA para sugerir reglas de categorización. Nunca enviamos tu situación financiera completa y revisas cada regla antes de crearla.", - "Suggest my rules with AI": "Sugerir mis reglas con IA", - "No thanks": "No, gracias", - "AI suggestions need more data": "Las sugerencias de IA necesitan más datos", - "Once you have at least :count transactions, you can generate rule suggestions from Settings → Automation rules.": "Cuando tengas al menos :count transacciones, podrás generar sugerencias de reglas desde Ajustes → Reglas de automatización.", - "We couldn’t generate suggestions": "No pudimos generar sugerencias", - "Something went wrong. You can try again or skip for now.": "Algo salió mal. Puedes intentarlo de nuevo u omitirlo por ahora.", - "Try again": "Intentar de nuevo", - "No clear patterns yet": "Aún no hay patrones claros", - "We couldn’t find confident rules to suggest right now. You can categorize your transactions in the next step.": "No encontramos reglas fiables que sugerir ahora mismo. Puedes categorizar tus transacciones en el siguiente paso.", - "Review your suggested rules": "Revisa las reglas sugeridas", - "We found these patterns. Tweak anything you like, then create the rules — we’ll apply them to your transactions right away.": "Encontramos estos patrones. Ajusta lo que quieras y crea las reglas: las aplicaremos a tus transacciones de inmediato.", - "Create :count rules & apply": "Crear :count reglas y aplicar", - "Applying…": "Aplicando…", - "Include this rule": "Incluir esta regla", - "Payee": "Beneficiario", - "Sender": "Remitente", - "is": "es", - "Match text": "Texto a coincidir", - "Categorize as": "Categorizar como", - "New: :name": "Nueva: :name", - "Preview matching transactions": "Ver transacciones coincidentes", - "Loading…": "Cargando…", - ":count of :total uncategorized transactions match": ":count de :total transacciones sin categorizar coinciden", - "Matching transactions": "Transacciones coincidentes", - "Preview :count matching transactions": "Ver :count transacciones coincidentes", - "If the transaction": "Si la transacción", - "If the transaction matches any of": "Si la transacción coincide con alguno de", - "Add value": "Añadir valor", - "Remove value": "Eliminar valor", - "or": "o", - "Create rule": "Crear regla", - "Ignore rule": "Ignorar regla", - ":count matches": ":count coincidencias" -} + "Analyze": "Analyser", + "Monthly average": "Moyenne mensuelle", + "Trend": "S'orienter", + "Not enough history": "Historique insuffisant", + "vs. previous 6 months": "par rapport aux 6 mois précédents", + "Category analysis": "Analyse des catégories", + "How much you spent on this category each month over the last 12 months.": "Combien avez-vous dépensé dans cette catégorie chaque mois au cours des 12 derniers mois.", + "Pick a category to see its monthly spending.": "Choisissez une catégorie pour voir vos dépenses mensuelles.", + "No spending in the last 12 months.": "Aucune dépense au cours des 12 derniers mois.", + "Analysis": "Analyse", + "Apply a filter to enable this button": "Appliquer un filtre pour activer ce bouton", + "A breakdown of the transactions matching your current filters.": "Une répartition des transactions qui correspondent à vos filtres actuels.", + "Could not load the analysis. Please try again.": "L'analyse n'a pas pu être chargée. Essayer à nouveau.", + "No transactions match the current filters.": "Aucune transaction ne correspond aux filtres actuels.", + "Avg / day": "Moyenne / jour", + "transactions": "transactions", + "days": "jours", + "Spending over time": "Dépenser au fil du temps", + "Cumulative spend": "Dépense accumulée", + "Spending by category": "Dépenses par catégorie", + "Spending by tag": "Dépenses par étiquette", + "Spending by payee": "Dépenses par bénéficiaire", + "Spending by account": "Dépense par compte", + "Cumulative net": "Net accumulé", + "Net result": "Résultat net", + "Margin": "Marge", + "Total spent": "Total dépensé", + "Largest expenses": "Des dépenses plus élevées", + "Show more": "Voir plus", + "Show less": "voir moins", + "Analysis view": "Vue d'analyse", + "Automatic": "Automatique", + "Expenses only": "seulement les dépenses", + "Income & expenses": "Recettes et dépenses", + "adjusted": "serré", + "Adjust number of days": "Définir le nombre de jours", + "Days for daily average": "Jours à la moyenne quotidienne", + "Override the date span when it does not match the real duration.": "Remplace la plage de dates lorsqu'elle ne correspond pas à la durée réelle.", + "Saved with this filter.": "Enregistré avec ce filtre.", + "Reset to auto": "Réinitialisation en automatique", + "Bank account connected": "Compte bancaire connecté", + "Connection unsuccessful": "La connexion a échoué", + "You can close this window and go back to the app to continue.": "Vous pouvez fermer cette fenêtre et revenir à l'application pour continuer.", + "Your bank account is connected.": "Votre compte bancaire est connecté.", + "A filter with that name already exists": "Un filtre portant ce nom existe déjà", + "Delete saved filter": "Supprimer le filtre enregistré", + "Failed to delete the saved filter": "Impossible de supprimer le filtre enregistré", + "Failed to save the filter": "Impossible d'enregistrer le filtre", + "Failed to update the saved filter": "Impossible de mettre à jour le filtre enregistré", + "Filter saved": "Filtre enregistré", + "Filter updated": "Filtre mis à jour", + "No saved filters yet": "Il n'y a pas encore de filtres enregistrés", + "Save as new filter…": "Enregistrer comme nouveau filtre…", + "Save filter": "Enregistrer le filtre", + "Saved filters": "Filtres enregistrés", + "Saving…": "Économie…", + "Unsaved changes": "Modifications non enregistrées", + "Update “:name”": "Mettre à jour « : nom »", + "e.g. Japan trip, Utilities": "p. par ex. Voyage au Japon, Services", + "Give this set of filters a name so you can reuse it later.": "Donnez un nom à cet ensemble de filtres pour le réutiliser ultérieurement.", + "+:count": "+:compte", + ":count selected": ": nombre sélectionné", + "Categories": "Catégories", + "Labels": "Balises", + "No results.": "Aucun résultat.", + "Remove :label": "Supprimer :étiquette", + "Search categories…": "Catégories de recherche…", + "Search labels…": "Rechercher des balises…", + "Search…": "Rechercher…", + "Select at least one category or label to track.": "Sélectionnez au moins une catégorie ou une balise à suivre.", + "Select categories": "Sélectionnez les catégories", + "Select…": "Sélectionner…", + "Set up a spending limit across one or more categories or labels.": "Définissez une limite de dépenses sur une ou plusieurs catégories ou balises.", + "Tracked categories and labels cannot be changed after creation.": "Les catégories et balises suivies ne peuvent pas être modifiées après la création.", + "You must select at least one category or label.": "Vous devez sélectionner au moins une catégorie ou une balise.", + " All communications between your device and our servers are protected using TLS (Transport Layer Security)": "Toutes les communications entre votre appareil et nos serveurs sont protégées par TLS (Transport Layer Security)", + " All data is stored on secure servers with encryption at rest, protecting your information from unauthorized access": "Toutes les données sont stockées sur des serveurs sécurisés avec cryptage au repos, protégeant vos informations contre tout accès non autorisé", + " Strict access controls and authentication mechanisms protect against unauthorized access": "Des contrôles d'accès stricts et des mécanismes d'authentification protègent contre les accès non autorisés", + " We regularly review and update our security practices": "Nous révisons et mettons régulièrement à jour nos pratiques de sécurité", + " Your financial data is never shared with advertisers, data brokers, or any third party": "Vos données financières ne sont jamais partagées avec des annonceurs, des courtiers en données ou des tiers.", + "\"? This action cannot be undone.": "\" ? Cette action ne peut pas être annulée.", + "\"? This action cannot be undone. All budget periods, allocations, and transaction assignments will be permanently removed.": "\" ? Cette action est irréversible. Toutes les périodes budgétaires, allocations et allocations de transactions seront définitivement supprimées.", + "\"? This\\n action cannot be undone.": "\" ? Cette action ne peut pas être annulée.", + "\"? This\\n action cannot be undone. All budget periods,\\n allocations, and transaction assignments will be\\n permanently removed.": "\" ? Cette action est irréversible. Toutes les périodes budgétaires, allocations et allocations de transactions seront définitivement supprimées.", + "$KO!F6LMHU1W%TAEQFZMD9": "$KO!F6LMHU1W%TAEQFZMD9", + "**All your accounts in one place** — bank accounts, savings, investments, crypto, and more": "**Tous vos comptes au même endroit** : comptes bancaires, épargne, investissements, crypto et plus encore", + "**Automation rules** — categorize transactions automatically, your way": "**Règles d'automatisation** : catégorisez automatiquement les transactions, à votre manière", + "**Cashflow at a glance** — see exactly where your money goes and how it evolves": "**Flux de trésorerie en un coup d'œil** : voyez exactement où va votre argent et comment il évolue", + "**Connect your banks** via Open Banking or import from CSV — your choice": "**Connectez vos banques** via Open Banking ou importez depuis CSV, à vous de choisir", + "**Every transaction tracked** — import from CSV/XLS or connect via Open Banking": "**Chaque transaction enregistrée** — importez depuis CSV/XLS ou connectez-vous via Open Banking", + "**Have feedback? Questions? Issues?** Just hit reply to this email. We read and respond to every message personally.": "**Avez-vous des commentaires ? Des questions ? Des problèmes ?** Répondez simplement à cet e-mail. Nous lisons et répondons personnellement à chaque message.", + "**Monthly plan**: 60 days free": "**Forfait mensuel** : 60 jours gratuits", + "**No middlemen** — we don't sell insights about your habits": "**Pas d'intermédiaires** — nous ne vendons pas d'informations sur vos habitudes", + "**Smart budgets** — set goals, track progress, and stay on track every month": "** Budgétisation intelligente ** : fixez des objectifs, suivez les progrès et restez sur la bonne voie chaque mois", + "**Yearly plan**: 90 days free on your first year": "**Forfait annuel** : 90 jours gratuits la première année", + "**You're always in control** — export or delete your data anytime": "**Vous avez toujours le contrôle** : exportez ou supprimez vos données à tout moment", + "**Your data stays yours** — never shared with third parties": "**Vos données restent les vôtres** — elles ne sont jamais partagées avec des tiers", + "**Your data, always** — never shared with third parties, always under your control": "**Vos données, toujours** — jamais partagées avec des tiers, toujours sous votre contrôle", + "+ Add another column": "+ Ajouter une autre colonne", + "+ note": "+ remarque", + ", and press": ", et appuyez sur", + "- we never sell your data": "- nous ne vendons jamais vos données", + "...and 40+ more": "...et plus de 40", + "/12 min": "/12 minutes", + "/month": "/mois", + "/year": "/année", + "1,200+ users": "1 200+ utilisateurs", + "1. Data Controller": "1. Responsable du traitement des données", + "10. Children's Privacy": "10. Confidentialité des enfants", + "10. Limitation of Liability": "10. Limitation de responsabilité", + "100% private": "100% privé", + "11. Changes to This Privacy Policy": "11. Modifications de cette politique de confidentialité", + "11. Indemnification": "11. Rémunération", + "12. Contact Us": "12. Contactez-nous", + "12. Governing Law and Dispute Resolution": "12. Loi applicable et résolution des litiges", + "13. Changes to Terms": "13. Modifications des Conditions", + "14. Severability": "14. Divisibilité", + "15% more savings": "15% d'économies en plus", + "15. Entire Agreement": "15. Accord complet", + "16. Contact Us": "16. Contactez-nous", + "2. Acceptance of Terms": "2. Acceptation des conditions", + "2. Information We Collect": "2. Informations que nous collectons", + "23% better": "23% mieux", + "2FA Recovery Codes": "Codes de récupération 2FA", + "3. How We Use Your Information": "3. Comment nous utilisons vos informations", + "3. Service Description": "3. Description des services", + "4. Data Security and Encryption": "4. Sécurité et cryptage des données", + "4. User Accounts and Responsibilities": "4. Comptes d'utilisateurs et responsabilités", + "401k, IRA, pension funds": "401k, régimes de retraite", + "5. Data Ownership and License": "5. Propriété des données et licence", + "5. Third-Party Services": "5. Services tiers", + "6. Data Retention": "6. Conservation des données", + "6. Intellectual Property Rights": "6. Droits de propriété intellectuelle", + "7. International Data Transfers": "7. Transferts de données internationaux", + "7. Payment Terms": "7. Conditions de paiement", + "8. Termination": "8. Annulation", + "8. Your Rights Under GDPR": "8. Vos droits en vertu du RGPD", + "9. Cookies and Tracking": "9. Cookies et suivi", + "9. Disclaimers and Warranties": "9. Avis de non-responsabilité et garanties", + ":count matching transaction(s)": ":compter les transactions correspondantes", + ":count new transactions synced on Whisper Money": ":compter les nouvelles transactions synchronisées dans Whisper Money", + ":count transaction": ":compter la transaction", + ":count transaction(s) will be affected.": ":count transaction(s) sera affecté.", + ":count transactions": ":compter les transactions", + "@alext_money": "@alext_money", + "@davidk_dev": "@davidk_dev", + "@emmalou": "@emmalou", + "@jessicap": "@jessicap", + "@mike_tech": "@mike_tech", + "@sarahm_finance": "@sarahm_finance", + "A Few Quick Questions": "Quelques questions rapides", + "A Special Offer for You": "Une offre spéciale pour vous", + "A category with the same name already exists at the destination level. Rename it first.": "Une catégorie du même nom existe déjà au niveau cible. Renommez-le d'abord.", + "A new verification link has been sent to the email address you provided during registration.": "Un nouveau lien de vérification a été envoyé à l'adresse e-mail que vous avez fournie lors de l'inscription.", + "A new verification link has been sent to your email address.": "Un nouveau lien de vérification a été envoyé à votre adresse e-mail.", + "A new verification link has\\n been sent to your email\\n address.": "Un nouveau lien de vérification a été envoyé à votre adresse e-mail.", + "A unique encryption key is generated on your device. Only you have access to it—we never see or store it.": "Une clé de cryptage unique est générée sur votre appareil. Vous seul y avez accès, nous ne le voyons ni ne le stockons jamais.", + "AI can't help you with your transactions because we never share your data with third parties. This is intentional—we believe your financial data should never be fed into AI systems that you don't control.": "L'IA ne peut pas vous aider dans vos transactions car nous ne partageons jamais vos données avec des tiers. C'est intentionnel : nous pensons que vos données financières ne devraient jamais être transmises à des systèmes d'IA que vous ne contrôlez pas.", + "AI requires sending your data to external servers": "L'IA nécessite d'envoyer vos données à des serveurs externes", + "AI requires sending your data to external\\n servers": "L'IA nécessite d'envoyer vos données à des serveurs externes", + "API Key": "Clé API", + "API Key Management": "Gestion des clés API", + "API Key Name": "Nom de la clé API", + "API Keys": "Clés API", + "API Management": "Gestion des API", + "API Secret": "Secret API", + "API Token": "Jeton API", + "Absolutely. You own your data. You can export all your financial data at any time, and you can permanently delete your account and all associated data whenever you want.": "Bien sûr. Vos données vous appartiennent. Vous pouvez exporter toutes vos données financières à tout moment et vous pouvez supprimer définitivement votre compte et toutes les données associées quand vous le souhaitez.", + "Accept responsibility for all activities that occur under your account": "Acceptez la responsabilité de toutes les activités qui se produisent sous votre compte", + "Accept responsibility for all activities\\n that occur under your account": "Acceptez la responsabilité de toutes les activités qui se produisent sous votre compte", + "Access Controls:": "Contrôles d'accès :", + "Access your data securely from any device with automatic syncing.": "Accédez à vos données en toute sécurité depuis n'importe quel appareil avec la synchronisation automatique.", + "Access your data securely—your information is never shared with third parties": "Accédez à vos données en toute sécurité : vos informations ne sont jamais partagées avec des tiers", + "Access your finances on any device, anytime, anywhere.": "Accédez à vos finances depuis n'importe quel appareil, à tout moment et en tout lieu.", + "Account": "Compte", + "Account Details": "Détails du compte", + "Account Holder": "Titulaire du compte", + "Account Information:": "Informations sur le compte :", + "Account Name": "Nom du compte", + "Account No.": "numéro de compte", + "Account Type": "Type de compte", + "Account Types": "Types de comptes", + "Account is required": "Compte requis", + "Account name": "Nom du compte", + "Accounts": "Comptes", + "Accounts Created": "Comptes créés", + "Accounts need to be mapped before syncing can begin.": "Les comptes doivent être mappés avant que la synchronisation puisse commencer.", + "Accounts will become manual. All transactions and balances will be preserved.": "Les comptes deviendront manuels. Toutes les transactions et soldes seront conservés.", + "Action required: :provider connection needs attention": "Action requise : la connexion à :le fournisseur nécessite une attention particulière", + "Actions": "Actes", + "Add": "Ajouter", + "Add Another Account": "Ajouter un autre compte", + "Add Condition": "Ajouter une condition", + "Add Group": "Ajouter un groupe", + "Add Labels": "Ajouter des balises", + "Add Loan Details": "Ajouter les détails du prêt", + "Add More Accounts": "Ajouter plus de comptes", + "Add More Accounts?": "Ajouter plus de comptes ?", + "Add Transaction": "Ajouter une transaction", + "Add a bank account, loan, or property to your workspace.": "Ajoutez un compte bancaire, un prêt ou une propriété à votre espace de travail.", + "Add a new category to organize your transactions.": "Ajoutez une nouvelle catégorie pour organiser vos transactions.", + "Add a new label to tag your transactions.": "Ajoutez une nouvelle balise pour étiqueter vos transactions.", + "Add another account": "Ajouter un autre compte", + "Add another account to track more of your finances.": "Ajoutez un autre compte pour suivre davantage vos finances.", + "Add labels": "Ajouter des balises", + "Add labels...": "Ajouter des balises...", + "Add more accounts or continue to set up your categories.": "Ajoutez d'autres comptes ou continuez à configurer vos catégories.", + "Add note": "Ajouter une note", + "Add notes...": "Ajouter des notes...", + "Add the app to your home screen for the best experience.": "Ajoutez l'application à votre écran d'accueil pour la meilleure expérience.", + "Add this description to a rule.": "Ajoutez cette description à une règle.", + "Add to Home Screen": "Ajouter à l'écran d'accueil", + "Add transaction": "Ajouter une transaction", + "Additional notes about this property": "Notes supplémentaires sur cette propriété", + "Address": "Adresse", + "Address:": "Adresse:", + "Alex T.": "Alex T.", + "All": "Tous", + "All Done!": "Tout est prêt !", + "All Set!": "Tout est prêt !", + "All Your Accounts": "Tous vos comptes", + "All associated accounts, transactions and balances will be permanently deleted.": "Tous les comptes, transactions et soldes associés seront définitivement supprimés.", + "All categories": "Toutes les catégories", + "All data is stored on secure servers with encryption at rest": "Toutes les données sont stockées sur des serveurs sécurisés avec cryptage au repos", + "All fees are non-refundable except as required by law or explicitly stated otherwise": "Tous les frais ne sont pas remboursables, sauf si la loi l'exige ou autrement explicitement indiqué.", + "All fees are non-refundable except as\\n required by law or explicitly stated\\n otherwise": "Tous les frais ne sont pas remboursables, sauf lorsque la loi l'exige ou expressément indiqué autrement.", + "All matching filters": "Tout par filtre", + "All transactions appear to be duplicates. No new transactions will be imported.": "Toutes les transactions semblent être des doublons. Aucune nouvelle transaction ne sera importée.", + "All transactions failed to import": "Toutes les transactions ont échoué lors de l'importation", + "All your accounts at a glance": "Tous vos comptes en un coup d'œil", + "All your bank accounts at a glance": "Tous vos comptes bancaires en un coup d'œil", + "All your money in one place. No spreadsheets. Private.": "Tout votre argent au même endroit. Sans Excel. Privé.", + "All your transactions are already categorized.": "Toutes vos transactions sont déjà catégorisées.", + "All your transactions are already categorized. You are all set!": "Toutes vos transactions sont déjà catégorisées. Vous êtes prêt !", + "Allocated Amount": "Montant alloué", + "Allocated:": "Attribué :", + "Almost there, just double-checking the math...": "J'ai presque fini, je vérifie les chiffres une fois de plus...", + "Already have an account?": "Avez-vous déjà un compte ?", + "Amount": "Valeur", + "Amount is required": "Une valeur est requise", + "An unexpected error occurred during sync.": "Une erreur inattendue s'est produite lors de la synchronisation.", + "An unexpected error occurred during sync. Please try again later.": "Une erreur inattendue s'est produite lors de la synchronisation. Veuillez réessayer plus tard.", + "Annual": "Annuel", + "Annual Interest Rate": "Taux d'intérêt annuel", + "Annual Interest Rate (%)": "Taux d'intérêt annuel (%)", + "Annual Revaluation": "Réévaluation annuelle", + "Annual Revaluation (%)": "Réévaluation annuelle (%)", + "Annual percentage applied monthly. Use negative values for depreciation.": "Pourcentage annuel appliqué mensuellement. Utilisez des valeurs négatives pour l'amortissement.", + "Any bugs, viruses, or similar harmful components transmitted through the service": "Tout bug, virus ou composant nuisible similaire transmis via le service", + "Any bugs, viruses, or similar harmful\\n components transmitted through the service": "Tout bug, virus ou autre composant nuisible transmis via le service", + "Any errors or omissions in content or any loss or damage incurred from using content": "Toute erreur ou omission dans le contenu ou toute perte ou dommage résultant de l'utilisation du contenu", + "Any errors or omissions in content or any\\n loss or damage incurred from using content": "Toute erreur ou omission dans le contenu ou toute perte ou dommage résultant de l'utilisation du contenu", + "Any interruption or cessation of transmission to or from the service": "Toute interruption ou cessation de transmission vers ou depuis le service", + "Any interruption or cessation of\\n transmission to or from the service": "Toute interruption ou cessation de transmission vers ou depuis le service", + "Any unauthorized access to or use of our servers and/or personal information": "Tout accès ou utilisation non autorisé de nos serveurs et/ou informations personnelles", + "Any unauthorized access to or use of our\\n servers and/or personal information": "Tout accès ou utilisation non autorisé de nos serveurs et/ou informations personnelles", + "App Key ID": "ID de clé API", + "Appearance": "Apparence", + "Appearance settings": "Paramètres d'apparence", + "Apply": "Appliquer", + "Apply rule to existing transactions": "Appliquer la règle aux transactions existantes", + "Apply rules to remaining transactions?": "Appliquer des règles aux transactions restantes ?", + "Apply this rule to your existing transactions?": "Appliquer cette règle à vos transactions existantes ?", + "Apply to :count transaction(s)": "Appliquer à :compter transaction(s)", + "Apply to existing transactions": "Appliquer aux transactions existantes", + "Applying rule…": "Application de la règle…", + "Applying rule… :processed of :total processed": "Application de la règle… : traité sur : total traité", + "Are you overspending? Know exactly where you stand.": "Dépensez-vous plus ? Sachez exactement où vous en êtes.", + "Are you sure you want to delete": "Etes-vous sûr de vouloir supprimer", + "Are you sure you want to delete \"": "Etes-vous sûr de vouloir supprimer \"", + "Are you sure you want to delete this balance record? This action cannot be undone.": "Êtes-vous sûr de vouloir supprimer cet enregistrement de solde ? Cette action ne peut pas être annulée.", + "Are you sure you want to delete this owed amount record? This action cannot be undone.": "Etes-vous sûr de vouloir supprimer cet enregistrement de montant dû ? Cette action ne peut pas être annulée.", + "Are you sure you want to delete this transaction? This action cannot be undone.": "Êtes-vous sûr de vouloir supprimer cette transaction ? Cette action ne peut pas être annulée.", + "Are you sure you want to delete your account?": "Êtes-vous sûr de vouloir supprimer votre compte ?", + "Area": "Surface", + "Argentine Peso": "Peso argentin", + "As a developer, I appreciate the security architecture. This is how finance apps should be built.": "En tant que développeur, j'apprécie l'architecture de sécurité. C’est ainsi que les applications financières doivent être créées.", + "As a solo founder, your feedback directly shapes what I build next. I personally read every response and take your suggestions seriously. When you subscribe, you're not just supporting some big corporation - you're helping me continue building something I'm passionate about.": "En tant que fondateur solo, vos commentaires façonnent directement ce que je construis ensuite. Personnellement, j'ai lu chaque réponse et je prends vos suggestions au sérieux. Lorsque vous vous abonnez, vous ne soutenez pas une grande entreprise, vous m'aidez à continuer de construire quelque chose qui me passionne.", + "As a thank you for believing in us this early, you get **Whisper Money Pro free, forever**. No trials, no expirations. Use the code below at checkout and we'll cover everything from your side.": "Pour vous remercier de nous faire confiance depuis le début, vous obtenez **Whisper Money Pro gratuitement, pour toujours**. Sans tests ni expirations. Utilisez ce code lors du paiement et nous nous occuperons du reste.", + "As a user in the European Union, you have the following rights regarding your personal data:": "En tant qu'utilisateur dans l'Union européenne, vous disposez des droits suivants concernant vos données personnelles :", + "As a user in the European Union, you have the\\n following rights regarding your personal data:": "En tant qu'utilisateur dans l'Union européenne, vous disposez des droits suivants sur vos données personnelles :", + "As one of our early users, I want to offer you a special founder's discount. When you subscribe, you're not just getting a great app - you're directly supporting me as I continue building Whisper Money. Every subscription helps me keep the lights on and build features you actually want.": "En tant que l'un de nos premiers utilisateurs, je souhaite vous offrir une remise spéciale pour les fondateurs. Lorsque vous vous abonnez, vous obtenez non seulement une excellente application, mais vous me soutenez directement alors que je continue à créer Whisper Money. Chaque abonnement m'aide à maintenir le projet et à créer les fonctionnalités que vous souhaitez vraiment.", + "As one of our early users, we want to offer you a special founder's discount. When you subscribe, you're not just getting a great app - you're directly supporting us as we continue building Whisper Money. Every subscription helps us keep the lights on and build features you actually want.": "En tant que l'un de nos premiers utilisateurs, nous souhaitons vous offrir une réduction spéciale pour les fondateurs. Lorsque vous vous abonnez, vous obtenez non seulement une excellente application, mais vous nous soutenez directement alors que nous continuons à développer Whisper Money. Chaque abonnement nous aide à maintenir le projet et à créer les fonctionnalités que vous souhaitez réellement.", + "As the founders, your feedback directly shapes what we build next. We personally read every response and take your suggestions seriously. When you subscribe, you're not just supporting some big corporation - you're helping us continue building something we're passionate about.": "En tant que fondateurs, vos commentaires façonnent directement ce que nous construirons ensuite. Nous lisons personnellement chaque réponse et prenons vos suggestions au sérieux. Lorsque vous vous abonnez, vous ne soutenez pas une grande entreprise, vous nous aidez à continuer de construire quelque chose qui nous passionne.", + "Assign a new category": "Attribuer une nouvelle catégorie", + "At least one action is required": "Au moins une action est requise", + "Australian Dollar": "dollar australien", + "Authentication failed. Your credentials may have expired or been revoked.": "L'authentification a échoué. Vos informations d'identification ont peut-être expiré ou ont été révoquées.", + "Auto-detect": "Détecter automatiquement", + "Auto-sync transactions directly from your bank": "Synchronisez automatiquement les transactions de votre banque", + "Automate over time": "Automatiser au fil du temps", + "Automated categorization rules": "Règles de catégorisation automatique", + "Automatic categorization": "Catégorisation automatique", + "Automatic sync": "Synchronisation automatique", + "Automatically categorize transactions with customizable rules and patterns.": "Catégorisez automatiquement les transactions avec des règles et des modèles personnalisables.", + "Automatically sync transactions directly from your bank. No manual imports needed.": "Synchronisez automatiquement les transactions de votre banque. Aucune importation manuelle.", + "Automation Rules": "Règles d'automatisation", + "Automation rules": "Règles d'automatisation", + "Automation rules settings": "Mise en place de règles d'automatisation", + "Automation rules to categorize transactions automatically.": "Règles d'automatisation pour catégoriser automatiquement les transactions.", + "Automatize": "Automatiser", + "Automatize Categorization": "Automatiser la catégorisation", + "Automatize the categorization of future transactions like this one": "Automatisez la catégorisation des transactions futures comme celle-ci", + "Available:": "Disponible:", + "Back": "Dos", + "Back to Transactions": "Retour aux transactions", + "Back to accounts": "Retour aux comptes", + "Back to edit": "Modifier à nouveau", + "Back to home": "Retour en haut", + "Balance": "Équilibre", + "Balance (Optional)": "Solde (facultatif)", + "Balance Date": "Date du solde", + "Balance History": "Historique du solde", + "Balance Tracking": "Suivi du solde", + "Balance evolution": "Evolution du bilan", + "Balance on": "Solde de", + "Balances": "Bilans", + "Bank": "Banque", + "Bank Account": "Compte bancaire", + "Bank Connections": "Connexions bancaires", + "Bank Name": "Nom de la banque", + "Bank account reconnected successfully.": "Compte bancaire reconnecté avec succès.", + "Bank accounts": "comptes bancaires", + "Bank connections automatically sync your transactions directly from your bank. This feature requires the Standard Plan.": "Les connexions bancaires synchronisent automatiquement vos transactions depuis votre banque. Cette fonctionnalité nécessite le forfait standard.", + "Bank logo preview": "Aperçu du logo de la banque", + "Bank name": "Nom de la banque", + "Be Smart About Spending & Investing": "Soyez intelligent avec vos dépenses et vos investissements", + "Beautiful charts and graphs help you understand your spending patterns.": "De superbes graphiques vous aident à comprendre vos habitudes de dépenses.", + "Because you helped one of our first 10 join us, you get **Whisper Money Pro free, forever**. No trials, no expirations. Use the code below at checkout.": "Pour aider l'un de nos 10 meilleurs à rejoindre, vous obtenez **Whisper Money Pro gratuitement, pour toujours**. Sans tests ni expirations. Utilisez ce code à la caisse.", + "Before you go...": "Avant de partir...", + "Best Value": "Meilleur rapport qualité-prix", + "Best,": "Salutations,", + "Bi-weekly": "Bimensuel", + "Billed annually at": "Facturé annuellement à", + "Billed annually at $": "Facturé annuellement à $", + "Billing management is not available on the demo account.": "La gestion de la facturation n'est pas disponible sur le compte démo.", + "Billing management is not available on the demo\\n account.": "La gestion de la facturation n'est pas disponible sur le compte démo.", + "Bitcoin": "Bitcoin", + "Blue": "Bleu", + "Bolivian Boliviano": "bolivien", + "British Pound": "Livre sterling", + "Browse Files": "Parcourir les fichiers", + "Budget Name": "Nom du budget", + "Budget Spending": "Dépenses budgétaires", + "Budget Tracking": "Suivi budgétaire", + "Budget alert and limit adjustment": "Alerte budgétaire et ajustement des limites", + "Budget goals by category": "Objectifs budgétaires par catégorie", + "Budget insights and alerts": "Rapports et alertes budgétaires", + "Budget progress for Groceries": "Avancement du budget des supermarchés", + "Budget resets to zero at the start of each period.": "Le budget est remis à zéro au début de chaque période.", + "Budgets": "Budgets", + "Build better budgets": "Créez de meilleurs budgets", + "Built by two people, for real people": "Construit par deux personnes, pour de vraies personnes", + "Built for speed with instant sync and smooth interactions.": "Conçu pour la vitesse avec une synchronisation instantanée et des interactions fluides.", + "By creating an account or using Whisper Money, you agree to be bound by these Terms of Service and our Privacy Policy. If you do not agree to these terms, you may not use our service. These terms constitute a legally binding agreement between you and Whisper Money.": "En créant un compte ou en utilisant Whisper Money, vous acceptez d'être lié par ces conditions d'utilisation et notre politique de confidentialité. Si vous n'acceptez pas ces conditions, vous ne pouvez pas utiliser notre service. Ces conditions constituent un accord juridiquement contraignant entre vous et Whisper Money.", + "By creating an account or using Whisper Money,\\n you agree to be bound by these Terms of Service\\n and our Privacy Policy. If you do not agree to\\n these terms, you may not use our service. These\\n terms constitute a legally binding agreement\\n between you and Whisper Money.": "En créant un compte ou en utilisant Whisper Money, vous acceptez d'être lié par ces conditions d'utilisation et notre politique de confidentialité. Si vous n'acceptez pas ces conditions, vous ne pouvez pas utiliser notre service. Ces conditions constituent un accord juridiquement contraignant entre vous et Whisper Money.", + "CSV, XLS, XLSX files": "Fichiers CSV, XLS, XLSX", + "Cafes, restaurants, bars": "Cafés, restaurants, bars", + "Calculate balances from transactions": "Calculer les soldes des transactions", + "Calendar month (1st)": "Mois civil (jour 1)", + "Can I connect my bank accounts directly?": "Puis-je connecter directement mes comptes bancaires ?", + "Can I export or delete my data?": "Puis-je exporter ou supprimer mes données ?", + "Canadian Dollar": "dollar canadien", + "Cancel": "Annuler", + "Carry Over": "Accumuler", + "Cash inflow": "Argent entrant", + "Cash outflow": "sortie d'argent", + "Cashflow": "Trésorie", + "Cashflow Trend": "Tendance des flux de trésorerie", + "Cashflow analytics": "Analyse des flux de trésorerie", + "Cashflow and charts": "Flux de trésorerie et graphiques", + "Cashflow at a Glance": "Aperçu des flux de trésorerie", + "Cashflow income vs expenses bar chart": "Graphique à barres des revenus et des dépenses", + "Cashflow periods and analysis will start on this day.": "Les périodes de trésorerie et d'analyse débuteront ce jour.", + "Cashflow visualization": "Visualisation des flux de trésorerie", + "Categories below 5% of total": "Catégories inférieures à 5% du total", + "Categories settings": "Paramètres de catégorie", + "Categorize": "Classer par catégories", + "Categorize Transactions": "Catégoriser les transactions", + "Categorize Your Transactions": "Catégorisez vos transactions", + "Category": "Catégorie", + "Category (Optional)": "Catégorie (facultatif)", + "Category name": "Nom de la catégorie", + "Change": "Changement", + "Change category": "Changer de catégorie", + "Change the category type above to change how this category appears in cashflow analytics.": "Modifiez le type de catégorie ci-dessus pour modifier la façon dont cette catégorie apparaît dans l'analyse des flux de trésorerie.", + "Chart color scheme": "Schéma de couleurs du graphique", + "Chart type": "Type de graphique", + "Check Demo": "Voir la démo", + "Check that everything looks correct and click \"Import\". Your transactions are stored securely and never shared with anyone.": "Vérifiez que tout semble correct et cliquez sur \"Importer\". Vos transactions sont stockées en toute sécurité et ne sont jamais partagées avec qui que ce soit.", + "Check that everything looks correct and click \"Import\". Your transactions will be encrypted and stored securely.": "Vérifiez que tout semble correct et cliquez sur \"Importer\". Vos transactions seront cryptées et stockées en toute sécurité.", + "Check your inbox — we've sent you an email.": "Vérifiez votre boîte de réception – nous vous avons envoyé un e-mail.", + "Checking": "Compte courant", + "Child categories inherit their parent’s type and cashflow settings.": "Les catégories enfants héritent du type et des paramètres de flux de trésorerie de leur catégorie parent.", + "Chilean Peso": "Peso chilien", + "Chinese Yuan": "yuan chinois", + "Choose Sankey chart visibility": "Choisissez la visibilité dans le graphique Sankey", + "Choose a category type to see how it affects cashflow and charts.": "Choisissez un type de catégorie pour voir son impact sur les flux de trésorerie et les graphiques.", + "Choose a category type to see how this category will affect cashflow analytics.": "Choisissez un type de catégorie pour voir comment cette catégorie affectera vos analyses de flux de trésorerie.", + "Choose cashflow chart visibility": "Choisissez la visibilité sur le graphique de trésorerie", + "Choose how to handle each account from :bank. You can create new accounts, link to existing ones, or skip.": "Choisissez comment gérer chaque :compte bancaire. Vous pouvez créer de nouveaux comptes, les lier à des comptes existants ou les ignorer.", + "Choose how to report this category": "Choisissez comment signaler cette catégorie", + "Choose how to report this transfer": "Choisissez comment afficher ce transfert", + "Choose the account where transactions will be imported": "Choisissez le compte où les transactions seront importées", + "Choose the color palette for your charts": "Choisissez la palette de couleurs pour vos graphiques", + "Choose the plan that works for you": "Choisissez le forfait qui vous convient", + "Choose the plan that works for you. No hidden fees.": "Choisissez le forfait qui vous convient le mieux. Pas de frais cachés.", + "Choose your billing cycle": "Choisissez votre cycle de facturation", + "City Electric Co.": "Cie Électrique de la Ville.", + "Claim Your Discount": "Réclamez votre remise", + "Clean interface, powerful features, and zero compromise on privacy. What more could you want?": "Interface épurée, fonctionnalités puissantes et aucun compromis sur la confidentialité. Que demander de plus ?", + "Clear": "Faire le ménage", + "Clear Encryption Key?": "Supprimer la clé de cryptage ?", + "Clear Key": "Supprimer le mot de passe", + "Clear selection": "Effacer la sélection", + "Click here to resend the verification email.": "Cliquez ici pour renvoyer l'e-mail de vérification.", + "Click here to resend the\\n verification email.": "Cliquez ici pour renvoyer l'e-mail de vérification.", + "Click to lock encryption key": "Cliquez pour verrouiller la clé de cryptage", + "Click to unlock encryption key": "Cliquez pour déverrouiller la clé de cryptage", + "Client-Side Encryption": "Chiffrement côté client", + "Close": "Fermer", + "Coffee Lab": "Laboratoire de café", + "Colombian Peso": "Peso colombien", + "Color": "Couleur", + "Colorful": "coloré", + "Columns": "Colonnes", + "Commercial": "Commercial", + "Common Questions": "Foire aux questions", + "Community": "Communauté", + "Company Name:": "Nom de l'entreprise:", + "Conditions": "Conditions", + "Conditions joined by:": "Conditions liées par :", + "Confirm": "Confirmer", + "Confirm Password": "Confirmez le mot de passe", + "Confirm password": "Confirmez le mot de passe", + "Confirm your email - Whisper Money": "Confirmez votre email - Whisper Money", + "Confirm your email address to reserve your Whisper Money waitlist spot.": "Confirmez votre adresse e-mail pour réserver votre place sur la liste d'attente de Whisper Money.", + "Confirm your email to join the list": "Confirmez votre email pour rejoindre la liste", + "Confirm your encryption password": "Confirmez votre mot de passe de cryptage", + "Confirm your password": "Confirmez votre mot de passe", + "Confirm your waitlist spot - Whisper Money": "Confirmez votre place sur la liste d'attente - Whisper Money", + "Confirmation": "Confirmation", + "Connect": "Connecter", + "Connect Bank": "Connecter la banque", + "Connect Bank Account": "Connecter un compte bancaire", + "Connect Your Bank": "Connectez votre banque", + "Connect Your Banks": "Connectez vos banques", + "Connect bank accounts": "Connecter les comptes bancaires", + "Connect in seconds": "Connectez-vous en quelques secondes", + "Connect your Binance account using your API Key and Secret.": "Connectez votre compte Binance à l'aide de votre clé API et de votre secret.", + "Connect your Bitpanda account using your API Key.": "Connectez votre compte Bitpanda à l'aide de votre clé API.", + "Connect your Coinbase account using a CDP API key.": "Connectez votre compte Coinbase à l'aide d'une clé API CDP.", + "Connect your Indexa Capital account using your API token.": "Connectez votre compte Indexa Capital à l'aide de votre jeton API.", + "Connect your bank accounts": "Connectez vos comptes bancaires", + "Connect your bank accounts, savings, investments, and more — all in a single dashboard. No more switching between apps or losing track of accounts.": "Connectez vos comptes bancaires, votre épargne, vos investissements et bien plus encore, le tout dans un seul tableau de bord. Plus besoin de basculer entre les applications ou de perdre le contrôle de vos comptes.", + "Connect your bank and sync transactions automatically.": "Connectez votre banque et synchronisez automatiquement les transactions.", + "Connected": "Connecté", + "Connected Bank Accounts": "Comptes bancaires connectés", + "Connected account": "Compte connecté", + "Connected accounts are a Standard Plan feature. You'll choose a plan at the end of the onboarding.": "Les comptes connectés sont une fonctionnalité du forfait Standard. Vous choisirez un plan à la fin du processus d'intégration.", + "Connected banks": "Banques connectées", + "Connecting the dots in your finances...": "Relier les points de vos finances...", + "Connecting...": "De liaison...", + "Connections": "Relations", + "Consider saving more if possible.": "Pensez à économiser davantage si possible.", + "Continue": "Continuer", + "Continue Setup": "Continuer les paramètres", + "Continue for free": "Continuer gratuitement", + "Continue to Import": "Continuer avec l'importation", + "Copied!": "Copié!", + "Copy link": "Copier le lien", + "Counterparties": "Homologues", + "Counting every penny...": "Compter chaque centime...", + "Country": "Pays", + "Create": "Créer", + "Create \"": "Créer \"", + "Create Account": "Créer un compte", + "Create Automation Rule": "Créer une règle d'automatisation", + "Create Budget": "Créer un budget", + "Create Category": "Créer une catégorie", + "Create Label": "Créer une étiquette", + "Create Rule": "Créer une règle", + "Create Transaction": "Créer une transaction", + "Create Your Encryption Password": "Créez votre mot de passe de cryptage", + "Create Your First Account": "Créez votre premier compte", + "Create a CDP API key (Ed25519 recommended) in the Coinbase Developer Platform under": "Créez une clé API CDP (Ed25519 recommandée) sur la plateforme de développement Coinbase à l'adresse", + "Create a CDP API key in the Coinbase Developer Platform under": "Créez une clé API CDP sur la plateforme de développement Coinbase à l'adresse", + "Create a Password": "Créer un mot de passe", + "Create a bank account, loan, or property to track it manually.": "Créez un compte bancaire, un prêt ou une propriété pour le suivre manuellement.", + "Create a new rule": "Créer une nouvelle règle", + "Create a new transaction": "Créer une nouvelle transaction", + "Create a new transaction.": "Créez une nouvelle transaction.", + "Create a rule to automatically categorize transactions and add labels.": "Créez une règle pour catégoriser automatiquement les transactions et ajouter des balises.", + "Create a strong encryption password to secure your data": "Créez un mot de passe de cryptage fort pour protéger vos données", + "Create account": "Créer un compte", + "Create an Account": "Créer un compte", + "Create an account": "Créer un compte", + "Create bank accounts, loans, or properties manually and import transactions.": "Créez manuellement des comptes bancaires, des prêts ou des propriétés et importez des transactions.", + "Create budgets that adapt to your spending habits and goals.": "Créez des budgets adaptés à vos habitudes de dépenses et à vos objectifs.", + "Create budgets that adapt to your spending habits and help you reach your goals.": "Créez des budgets adaptés à vos habitudes de dépenses et vous aident à atteindre vos objectifs.", + "Create new account": "Créer un nouveau compte", + "Create or update a rule so future transactions with this description are categorized automatically.": "Créez ou mettez à jour une règle afin que les futures transactions portant cette description soient automatiquement catégorisées.", + "Create realistic budgets based on your actual spending habits.": "Créez des budgets réalistes basés sur vos habitudes de dépenses réelles.", + "Create rules like \"If description contains 'AMAZON', categorize as Shopping\"": "Créez des règles telles que « Si la description contient « AMAZON », catégorisez-la comme Achats »", + "Create rules like \"If description contains \\'AMAZON\\', categorize as Shopping\"": "Créez des règles telles que « Si la description contient « AMAZON », catégorisez-la comme Achats »", + "Create rules to automatically categorize your transactions based on patterns you define.": "Créez des règles pour catégoriser automatiquement vos transactions en fonction des modèles que vous définissez.", + "Create the account now, update at any moment": "Créez un compte maintenant, mettez à jour à tout moment", + "Create your account": "Créer mon compte", + "Create, edit, and delete rules anytime": "Créez, modifiez et supprimez des règles à tout moment", + "Creating subscription...": "Création d'un abonnement...", + "Creating...": "Création...", + "Credentials updated. Sync started.": "Identifiants mis à jour. La synchronisation a démarré.", + "Credit": "Crédit", + "Credit Card": "Carte de crédit", + "Creditor": "Créancier", + "Creditor Name": "Nom du créancier", + "Creditor name": "Nom du créancier", + "Creditor name (Optional)": "Nom du créancier (facultatif)", + "Crunching the numbers...": "Calculer les chiffres...", + "Ctrl+B": "Ctrl+B", + "Ctrl+N": "Ctrl+N", + "Ctrl+R": "Ctrl+R", + "Currency": "Devise", + "Current Balance": "Solde actuel", + "Current password": "Mot de passe actuel", + "Custom": "Personnalisé", + "Custom Labels": "Étiquettes personnalisées", + "Customize Categories": "Personnaliser les catégories", + "Customize Your Categories": "Personnalisez vos catégories", + "DD-MM-YYYY (e.g., 31-12-2024)": "JJ-MM-AAAA (par exemple 31/12/2024)", + "DELETE": "ÉLIMINER", + "Daily": "Agenda", + "Daily spending and transactions": "Dépenses et transactions quotidiennes", + "Dark": "Sombre", + "Dashboard": "Panneau", + "Data Accuracy:": "Exactitude des données :", + "Data Imported": "Données importées", + "Data is Encrypted": "Les données sont cryptées", + "Date": "Date", + "Date Format": "Format des dates", + "Date is required": "Une date est requise", + "David K.": "David K.", + "Day :day": "Jour :jour", + "Day of the month when the period starts (1-31)": "Jour du mois où commencent les règles (1-31)", + "Day of week (0=Sunday, 6=Saturday)": "Jour de la semaine (0=dimanche, 6=samedi)", + "Debtor": "Débiteur", + "Debtor Name": "Nom du débiteur", + "Debtor name": "Nom du débiteur", + "Debtor name (Optional)": "Nom du débiteur (facultatif)", + "Define monthly budgets by category. Know exactly how much you can spend.": "Définissez les budgets mensuels par catégorie. Sachez exactement combien vous pouvez dépenser.", + "Delete": "Éliminer", + "Delete :count Transactions": "Supprimer : compter les transactions", + "Delete Account": "Supprimer le compte", + "Delete Automation Rule": "Supprimer la règle d'automatisation", + "Delete Budget": "Supprimer le budget", + "Delete Category": "Supprimer la catégorie", + "Delete Label": "Supprimer la balise", + "Delete Transaction": "Supprimer la transaction", + "Delete Transactions": "Supprimer les transactions", + "Delete account": "Supprimer le compte", + "Delete accounts": "Supprimer des comptes", + "Delete balance": "Supprimer le solde", + "Delete budget": "Supprimer le budget", + "Delete owed amount": "Supprimer le montant dû", + "Delete this category and all of its children": "Supprimer cette catégorie et toutes ses catégories enfants", + "Delete your account and all of its resources": "Supprimez votre compte et toutes ses ressources", + "Deleting...": "Éliminer...", + "Demo encryption password:": "Mot de passe de cryptage de démonstration :", + "Description": "Description", + "Description is required": "Description requise", + "Details": "Détails", + "Details →": "Détails →", + "Dining Out": "Dîners et restaurants", + "Disable 2FA": "Désactiver 2FA", + "Disable privacy mode": "Désactiver le mode privé", + "Disabled": "Désactivé", + "Disconnect": "Déconnecter", + "Disconnect Bank": "Déconnecter la banque", + "Disconnecting...": "Déconnexion...", + "Discord": "Discorde", + "Discord for 80% off": "Discord avec 80% de réduction", + "Do not show": "Ne pas montrer", + "Do not show in Sankey": "Ne pas se présenter à Sankey", + "Do not show in cashflow chart": "Ne pas apparaître sur le graphique des flux de trésorerie", + "Don't have an account?": "Vous n'avez pas de compte ?", + "Don't want these emails? You can manage your notifications in your [account settings](:url).": "Vous ne souhaitez pas recevoir ces e-mails ? Vous pouvez gérer vos notifications dans [les paramètres de votre compte](:url).", + "Download as CSV or Excel format": "Télécharger au format CSV ou Excel", + "Drop your CSV or Excel file here, or click to browse": "Faites glisser votre fichier CSV ou Excel ici, ou cliquez pour rechercher", + "Drop your file here, or click to browse": "Faites glisser votre fichier ici ou cliquez pour explorer", + "Duplicate": "Double", + "Duplicates": "Doublons", + "Each code is single-use and tied to your email — please keep them private.": "Chaque code est à usage unique et lié à votre courrier électronique : gardez-le privé.", + "Each confirmed referral moves you 10 spots forward.": "Chaque référencement confirmé vous fait progresser de 10 postes.", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click": "Chaque code de récupération peut être utilisé une fois pour accéder à votre compte et sera supprimé après utilisation. Si vous avez besoin de plus, veuillez cliquer", + "Each recovery code can be used once to\\n access your account and will be removed\\n after use. If you need more, click": "Chaque code de récupération peut être utilisé une fois pour accéder à votre compte et sera supprimé après utilisation. Si vous avez besoin de plus, veuillez cliquer", + "Edit": "Modifier", + "Edit Account": "Modifier le compte", + "Edit Automation Rule": "Modifier la règle d'automatisation", + "Edit Balance": "Modifier le solde", + "Edit Budget": "Modifier le budget", + "Edit Category": "Modifier la catégorie", + "Edit Label": "Modifier la balise", + "Edit Loan Details": "Modifier les détails du prêt", + "Edit Owed Amount": "Modifier le montant dû", + "Edit Property Details": "Modifier les détails de la propriété", + "Edit Transaction": "Modifier l'opération", + "Edit account": "Modifier le compte", + "Edit budget": "Modifier le devis", + "Edit loan details": "Modifier les détails du prêt", + "Electricity": "Électricité", + "Email": "E-mail", + "Email address": "Adresse email", + "Email address, name, and password (encrypted)": "Adresse e-mail, nom et mot de passe (cryptés)", + "Email password reset link": "Envoyer le lien de réinitialisation du mot de passe", + "Email verification": "Vérification des e-mails", + "Email:": "Mail:", + "Email\\n address, name, and password (encrypted)": "Adresse e-mail, nom et mot de passe (cryptés)", + "Emergency Fund": "Fonds d'urgence", + "Emma L.": "Emma L.", + "Enable 2FA": "Activer 2FA", + "Enable privacy mode": "Activer le mode privé", + "Enabled": "Activé", + "Encrypted on your device": "Chiffré sur votre appareil", + "Encryption Password": "Mot de passe de cryptage", + "Encryption Set": "Cryptage configuré", + "Encryption at Rest:": "Chiffrement au repos :", + "Encryption in Transit:": "Chiffrement en transit :", + "Encryption key not available": "Clé de cryptage non disponible", + "Encryption key not available. Please go back and set up encryption.": "Clé de cryptage non disponible. Veuillez revenir en arrière et configurer le cryptage.", + "English": "Anglais", + "Ensure your account is using a long, random password to stay secure": "Assurez-vous que votre compte utilise un mot de passe long et aléatoire pour rester en sécurité", + "Ensure your account is using a long, random password to stay secure.": "Assurez-vous que votre compte utilise un mot de passe long et aléatoire pour rester en sécurité.", + "Enter a strong encryption password": "Entrez un mot de passe de cryptage fort", + "Enter a strong password": "Entrez un mot de passe fort", + "Enter recovery code": "Entrez le code de récupération", + "Enter transactions yourself or import a CSV file": "Saisissez vous-même les transactions ou importez un fichier CSV", + "Enter your API Key and Secret to connect your Binance account.": "Entrez votre clé API et votre secret pour connecter votre compte Binance.", + "Enter your API Key to connect your Bitpanda account.": "Entrez votre clé API pour connecter votre compte Bitpanda.", + "Enter your API token to connect your Indexa Capital account.": "Entrez votre jeton API pour connecter votre compte Indexa Capital.", + "Enter your CDP API key name and private key to connect your Coinbase account.": "Entrez le nom de votre clé API CDP et votre clé privée pour connecter votre compte Coinbase.", + "Enter your CDP App Key ID and Secret to connect your Coinbase account.": "Entrez votre identifiant de clé API CDP et votre secret pour connecter votre compte Coinbase.", + "Enter your details below to create your account": "Entrez vos coordonnées ci-dessous pour créer votre compte", + "Enter your email and password below to log in": "Entrez votre email et votre mot de passe ci-dessous pour vous connecter", + "Enter your email to receive a password reset link": "Entrez votre email pour recevoir un lien de réinitialisation du mot de passe", + "Enter your encryption password": "Entrez votre mot de passe de cryptage", + "Enter your encryption password to decrypt transactions information and accounts name.": "Entrez votre mot de passe de cryptage pour décrypter les informations de transaction et les noms de compte.", + "Enter your encryption password to decrypt your transactions information.": "Entrez votre mot de passe de cryptage pour décrypter vos informations de transaction.", + "Enter your new API credentials for :provider.": "Entrez vos nouvelles informations d'identification API pour :provider.", + "Entertainment": "Divertissement", + "Entertainment (Movies, Sports, Hobbies)": "Divertissement (films, sports, loisirs)", + "Entertainment · Only $8 remaining this month": "Divertissement · Il ne reste que 8 $ ce mois-ci", + "Entertainment → $100": "Divertissement → 100 $", + "Equity": "Valeur nette", + "Error": "Erreur", + "Errors (": "Erreurs (", + "Español": "Espagnol", + "Euro": "Euro", + "Even we can't access your data. It's truly private.": "Même nous ne pouvons pas accéder à vos données. C'est vraiment privé.", + "Every Transaction": "Chaque transaction", + "Every person who joins through your link moves you **10 positions forward** in the queue.": "Chaque personne qui rejoint via votre lien vous fait avancer de **10 places** en ligne.", + "Every person who joins through your link moves you another 10 spots closer to the front — so keep sharing!": "Chaque personne qui vous rejoint via votre lien vous fait avancer de 10 places supplémentaires – continuez à partager !", + "Every transaction belongs to one of three types:": "Chaque transaction appartient à l'un des trois types suivants :", + "Every transaction tracked": "Chaque transaction enregistrée", + "Everything in One Place": "Tout en un seul endroit", + "Everything you need to know before getting started.": "Tout ce que vous devez savoir avant de commencer.", + "Everything you need to manage your finances securely.": "Tout ce dont vous avez besoin pour gérer vos finances en toute sécurité.", + "Everything you need. Nothing you don't.": "Tout ce dont vous avez besoin. Rien qui ne le soit.", + "Expense": "Dépensé", + "Expense Categories": "Catégories de dépenses", + "Expense categories automatically appear as cash outflows in cashflow analytics.": "Les catégories de dépenses apparaissent automatiquement sous forme de sorties de fonds dans l'analyse des flux de trésorerie.", + "Expense categories count as cash outflow and appear in spending charts, including top spending categories.": "Les catégories de dépenses comptent comme des sorties de fonds et apparaissent dans les graphiques de dépenses, y compris les catégories avec le plus de dépenses.", + "Expense tracking": "Suivi des dépenses", + "Expenses": "Factures", + "Expires": "Gagner", + "Export": "Exporter", + "Export Data": "Exporter des données", + "Export a CSV or XLS from your bank and drag it in. A year's worth of transactions imported in under 10 seconds.": "Exportez un CSV ou XLS depuis votre banque et faites-le glisser ici. Un an de transactions importées en moins de 10 secondes.", + "Export from any bank": "Exporter depuis n'importe quelle banque", + "Failed to apply rule to transactions.": "La règle n'a pas pu être appliquée aux transactions.", + "Failed to connect. Please try again.": "Erreur de connexion. Veuillez réessayer.", + "Failed to create account. Please try again.": "Erreur lors de la création du compte. Veuillez réessayer.", + "Failed to create transaction": "Erreur lors de la création de la transaction", + "Failed to decrypt message. Please check your password and try again.": "Erreur lors du déchiffrement du message. Veuillez vérifier votre mot de passe et réessayer.", + "Failed to load banks. Please try again.": "Erreur lors du chargement des banques. Veuillez réessayer.", + "Failed to load import data": "Les données d'importation n'ont pas pu être chargées", + "Failed to load matching transactions.": "Les transactions correspondantes n'ont pas pu être chargées.", + "Failed to re-evaluate rules. Please try again.": "Les règles n'ont pas pu être réévaluées. Essayer à nouveau.", + "Failed to reconnect. Please try again.": "Erreur de reconnexion. Veuillez réessayer.", + "Failed to set balance. Please try again.": "Erreur lors de l'établissement du solde. Veuillez réessayer.", + "Failed to setup encryption. Please try again.": "Erreur lors de la configuration du cryptage. Veuillez réessayer.", + "Failed to start re-authorization.": "Erreur lors du démarrage de la réautorisation.", + "Failed to sync with the provider. Please try again later.": "Impossible de synchroniser avec le fournisseur. Veuillez réessayer plus tard.", + "Failed to update credentials. Please try again.": "Erreur lors de la mise à jour des informations d'identification. Veuillez réessayer.", + "Failed to update transaction": "Erreur lors de la mise à jour de la transaction", + "Failed to update transactions": "Les transactions n'ont pas pu être mises à jour", + "Failed to update transactions with labels": "Les transactions avec des balises n'ont pas pu être mises à jour", + "Fair": "Acceptable", + "Feedback": "Commentaires", + "Fetching your transactions...": "Récupérer vos transactions...", + "Filter": "Filtre", + "Filter accounts...": "Filtrer les comptes...", + "Filter categories...": "Filtrer les catégories...", + "Filter labels...": "Filtrer les balises...", + "Filter rules...": "Règles de filtrage...", + "Filter rules....": "Règles de filtrage....", + "Filters": "Filtres", + "Finally, a finance app that respects my privacy. Knowing my data isn't being shared gives me peace of mind.": "Enfin une application financière qui respecte ma vie privée. Savoir que mes données ne sont pas partagées me rassure.", + "Finally, a finance app that respects my privacy. The encryption gives me peace of mind.": "Enfin une application financière qui respecte ma vie privée. Le cryptage me donne la tranquillité d'esprit.", + "Financial Advice Disclaimer:": "Avis de non-responsabilité concernant les conseils financiers :", + "Financial Data:": "Données financières :", + "Financial decisions made based on data in the application": "Décisions financières prises sur la base des données de candidature", + "Financial decisions made based on data in\\n the application": "Décisions financières prises sur la base des données de candidature", + "Finding historical transactions": "Recherche de transactions historiques", + "Finish Setup": "Terminer les paramètres", + "First, thank you for giving Whisper Money a try. I hope it helped you get a better handle on your finances while keeping your data private.": "Tout d’abord, merci d’avoir essayé Whisper Money. J'espère que cela vous a aidé à mieux gérer vos finances tout en préservant la confidentialité de vos données.", + "First, thank you for giving Whisper Money a try. We hope it helped you get a better handle on your finances while keeping your data private.": "Tout d’abord, merci d’avoir essayé Whisper Money. Nous espérons que cela vous a aidé à mieux gérer vos finances tout en préservant la confidentialité de vos données.", + "Food & Dining (Groceries, Restaurants, Delivery)": "Alimentation (Supermarché, Restaurants, Livraison)", + "Forgot password": "J'ai oublié mon mot de passe", + "Forgot password?": "Vous avez oublié votre mot de passe ?", + "Founders of Whisper Money": "Fondateurs de Whisper Money", + "Free": "Gratuit", + "Freelance Invoice": "Facture indépendante", + "Frequently Asked Questions": "Foire aux questions", + "From": "Depuis", + "Full name": "Nom et prénom", + "Fully transparent and open source. Review the code yourself.": "Complètement transparent et open source. Vérifiez le code vous-même.", + "Future transactions will be categorized automatically either way. You can preview the matches before confirming.": "Les transactions futures seront de toute façon automatiquement classées. Vous pouvez prévisualiser les matchs avant de confirmer.", + "Gain/loss": "Bénéfice/perte", + "Get Started": "Commencer", + "Get Started Free": "Commencez gratuitement", + "Get Started for Free": "Commencez gratuitement", + "Get a clear picture of where your money goes every month.": "Obtenez une idée claire de la destination de votre argent chaque mois.", + "Get a clear picture of where your money goes every month. Track spending across all your accounts, spot patterns, and make sense of your financial life at a glance.": "Obtenez une idée claire de la destination de votre argent chaque mois. Suivez les dépenses sur tous vos comptes, repérez les tendances et comprenez votre vie financière en un coup d'œil.", + "Get help when you need it with priority email support.": "Obtenez de l'aide lorsque vous en avez besoin grâce à une assistance prioritaire par e-mail.", + "Get notified when you're close to your limit. Never overspend again.": "Recevez des notifications lorsque vous êtes proche de votre limite. Ne dépensez plus jamais trop.", + "Get started at no cost. No bank connections included.": "Commencez sans frais. Aucune connexion bancaire incluse.", + "Get started quickly with your existing financial data.": "Démarrez rapidement avec vos données financières existantes.", + "Github": "GitHub", + "Go now": "Y allez", + "Go to Dashboard": "Aller au tableau de bord", + "Go to Settings": "Allez dans Paramètres", + "Go to your account's transaction history": "Accédez à l'historique des transactions de votre compte", + "Go to your dashboard and click \"Import Transactions\". Select your CSV file and I'll map the columns automatically.": "Accédez à votre tableau de bord et cliquez sur « Importer des transactions ». Sélectionnez votre fichier CSV et je mapperai automatiquement les colonnes.", + "Go to your dashboard and click \"Import Transactions\". Select your CSV file and we'll map the columns automatically.": "Accédez à votre tableau de bord et cliquez sur « Importer des transactions ». Sélectionnez votre fichier CSV et nous mapperons automatiquement les colonnes.", + "Gold Card": "Carte Or", + "Good": "Bien", + "Good progress on your savings.": "Bonne progression dans votre épargne.", + "Got it": "Compris", + "Great Progress!": "Grand progrès !", + "Great job! You're saving well.": "Excellent travail ! Vous économisez bien.", + "Groceries": "Supermarché", + "Groups joined by:": "Groupes unis par :", + "Health & Wellness (Medical, Pharmacy, Fitness)": "Santé et bien-être (Médecin, Pharmacie, Gym)", + "Health and pharmaceuticals": "Santé et pharmacie", + "Healthy Pharmacy": "Pharmacie saine", + "Help Me Improve": "Aide-moi à m'améliorer", + "Help Us Improve": "Aidez-nous à améliorer", + "Hey :name, is everything okay?": "Hé :nom, tout va bien ?", + "Hey there!": "Bonjour!", + "Hey! A quick heads-up.": "Bonjour! Un avertissement rapide.", + "Hey! We have some great news.": "Bonjour! Nous avons de bonnes nouvelles.", + "Hide password": "Masquer le mot de passe", + "Hide subcategories": "Masquer les sous-catégories", + "Hi :name,": "Bonjour :nom,", + "Hi! I'm Victor, the founder of Whisper Money. I wanted to personally welcome you and thank you for joining us.": "Bonjour! Je suis Victor, le fondateur de Whisper Money. Je voulais vous souhaiter la bienvenue personnellement et vous remercier de votre participation.", + "Hi! It's Victor and Álvaro here, the founders of Whisper Money. You've been using the app for a few days now, and we'd love to hear how it's working for you.": "Bonjour! Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Vous utilisez l'application depuis quelques jours et nous aimerions savoir comment elle fonctionne pour vous.", + "Hi! It's Victor and Álvaro, the founders of Whisper Money. We noticed you've cancelled your subscription, and we wanted to reach out personally.": "Bonjour! Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Nous avons remarqué que vous avez annulé votre abonnement et souhaitons vous contacter personnellement.", + "Hi! It's Victor and Álvaro, the founders of Whisper Money. We noticed you've completed your setup but haven't imported any transactions yet. Let us help you get started!": "Bonjour! Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Nous remarquons que vous avez terminé votre configuration mais que vous n'avez pas encore importé de transactions. Laissez-nous vous aider à démarrer !", + "Hi! It's Victor and Álvaro, the founders of Whisper Money. We see you've already started importing your transactions - that's awesome! You're well on your way to taking control of your finances while keeping your data private.": "Bonjour! Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. On voit que vous avez déjà commencé à importer vos transactions, super ! Vous êtes sur la bonne voie pour prendre le contrôle de vos finances tout en préservant la confidentialité de vos données.", + "Hi! It's Victor here, the founder of Whisper Money. You've been using the app for a few days now, and I'd love to hear how it's working for you.": "Bonjour! Je suis Victor, le fondateur de Whisper Money. Vous utilisez l'application depuis quelques jours et j'aimerais savoir comment elle fonctionne pour vous.", + "Hi! It's Victor, the founder of Whisper Money. I noticed you signed up but haven't completed your setup yet. I wanted to check in personally and see if something went wrong or if you need any help.": "Bonjour! Je suis Victor, le fondateur de Whisper Money. J'ai remarqué que vous vous êtes inscrit mais que vous n'avez pas encore terminé votre configuration. Je voulais vous contacter personnellement pour voir si quelque chose s'est mal passé ou si vous avez besoin d'aide.", + "Hi! It's Victor, the founder of Whisper Money. I noticed you've cancelled your subscription, and I wanted to reach out personally.": "Bonjour! Je suis Victor, le fondateur de Whisper Money. J'ai remarqué votre désabonnement et je souhaitais vous contacter personnellement.", + "Hi! It's Victor, the founder of Whisper Money. I noticed you've completed your setup but haven't imported any transactions yet. Let me help you get started!": "Bonjour! Je suis Victor, le fondateur de Whisper Money. J'ai remarqué que vous avez terminé votre configuration mais que vous n'avez pas encore importé de transactions. Laissez-moi vous aider à démarrer !", + "Hi! It's Victor, the founder of Whisper Money. I see you've already started importing your transactions - that's awesome! You're well on your way to taking control of your finances while keeping your data private.": "Bonjour! Je suis Victor, le fondateur de Whisper Money. Je vois que vous avez déjà commencé à importer vos transactions, super ! Vous êtes sur la bonne voie pour prendre le contrôle de vos finances tout en préservant la confidentialité de vos données.", + "Hi! We're Victor and Álvaro, the founders of Whisper Money. We noticed you signed up but haven't completed your setup yet. We wanted to check in personally and see if something went wrong or if you need any help.": "Bonjour! Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Nous avons remarqué que vous vous êtes inscrit mais que vous n'avez pas encore terminé votre configuration. Nous souhaitions vous contacter personnellement pour voir si quelque chose s'est mal passé ou si vous avez besoin d'aide.", + "Hi! We're Victor and Álvaro, the founders of Whisper Money. We wanted to personally welcome you and thank you for joining us.": "Bonjour! Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Nous souhaitions vous accueillir personnellement et vous remercions de votre participation.", + "High-Yield Savings": "Économies à bénéfices élevés", + "Housing (Rent, Utilities, Maintenance)": "Logement (loyer, fournitures, entretien)", + "How We Protect Your Privacy": "Comment nous protégeons votre vie privée", + "How is my financial data kept private?": "Comment mes données financières restent-elles confidentielles ?", + "How much do you want to budget per period?": "Quel budget souhaitez-vous prévoir par période ?", + "How to Export from Your Bank:": "Comment exporter depuis votre banque :", + "How to Import Your Transactions": "Comment importer vos transactions", + "How would you like to set up this account?": "Comment souhaitez-vous créer ce compte ?", + "How's Your Experience So Far?": "Comment se déroule votre expérience jusqu’à présent ?", + "How's it going, :name?": "Comment ça va, :nom?", + "I Understand, Continue": "Je comprends, continuez", + "I built Whisper Money because I believe **your financial data should be yours alone**:": "J'ai créé Whisper Money parce que je pense que **vos données financières devraient être les vôtres** :", + "I don't use AI to analyze your spending or sell insights about your habits. Your financial data stays between you and your spreadsheet-loving self.": "Je n'utilise pas l'IA pour analyser vos dépenses ou vendre des informations sur vos habitudes. Vos données financières sont entre vous et votre amour des feuilles de calcul.", + "I know setting up a new app can be overwhelming, and I want to make sure you have everything you need to get started.": "Je sais que configurer une nouvelle application peut être une tâche ardue et je veux m'assurer que vous disposez de tout ce dont vous avez besoin pour commencer.", + "I support CSV imports from most banks. Just export your transactions and upload them - it takes less than a minute. If your bank format is different, just let me know and I can help.": "Je prends en charge l'importation CSV depuis la plupart des banques. Exportez simplement vos transactions et téléchargez-les, cela prend moins d’une minute. Si le format de votre banque est différent, faites-le-moi savoir et je vous aiderai.", + "I switched from Mint and haven't looked back. The privacy features are unmatched.": "J'ai quitté Mint et je n'ai pas regardé en arrière. Les fonctionnalités de confidentialité sont inégalées.", + "IP address, browser type, device information, and operating system": "Adresse IP, type de navigateur, informations sur l'appareil et système d'exploitation", + "IP\\n address, browser type, device information,\\n and operating system": "Adresse IP, type de navigateur, informations sur l'appareil et système d'exploitation", + "Icon": "Icône", + "Identify categories where you can cut back and save more.": "Identifiez les catégories dans lesquelles vous pouvez dépenser moins et économiser davantage.", + "If a transaction repeats with a certain frequency or is recurring, you can create an automatic rule for it by clicking this button.": "Si une transaction se produit fréquemment ou est récurrente, vous pouvez créer une règle automatique pour celle-ci en cliquant sur ce bouton.", + "If privacy-first personal finance still sounds useful, your early access is still ready. Whisper Money helps you import transactions, organize spending, and understand your money without selling or sharing your financial data.": "Si une application de finances personnelles axée sur la confidentialité vous semble toujours utile, votre accès anticipé est toujours prêt. Whisper Money vous aide à importer des transactions, à organiser vos dépenses et à comprendre votre argent sans vendre ni partager vos données financières.", + "If there's anything that didn't work well for you, or if you have suggestions for improvement, I'd genuinely love to hear about it. As a solo founder, your feedback is invaluable in making Whisper Money better.": "S'il y a quelque chose qui n'a pas bien fonctionné pour vous, ou si vous avez des suggestions d'amélioration, j'aimerais en entendre parler. En tant que fondateur solo, vos commentaires sont inestimables pour améliorer Whisper Money.", + "If there's anything that didn't work well for you, or if you have suggestions for improvement, we'd genuinely love to hear about it. As the founders, your feedback is invaluable in making Whisper Money better.": "S'il y a quelque chose qui n'a pas bien fonctionné pour vous ou si vous avez des suggestions d'amélioration, nous serions ravis de vous entendre. En tant que fondateurs, vos commentaires sont inestimables pour améliorer Whisper Money.", + "If you didn't create a Whisper Money account, you can safely ignore this email.": "Si vous n'avez pas créé de compte Whisper Money, vous pouvez ignorer cet e-mail.", + "If you have any questions or just want to chat, simply reply to this email. I read and respond to every message personally.": "Si vous avez des questions ou souhaitez simplement discuter, répondez à cet e-mail. Je lis et réponds personnellement à chaque message.", + "If you have any questions or just want to chat, simply reply to this email. We read and respond to every message personally.": "Si vous avez des questions ou souhaitez simplement discuter, répondez à cet e-mail. Nous lisons et répondons personnellement à chaque message.", + "If you have any questions or run into any issues, **just reply to this email**. I personally read every message and I'm here to help!": "Si vous avez des questions ou des problèmes, **répondez simplement à cet e-mail**. Personnellement, j'ai lu chaque message et je suis là pour vous aider.", + "If you have any questions or run into any issues, **just reply to this email**. We personally read every message and we're here to help!": "Si vous avez des questions ou des problèmes, **répondez simplement à cet e-mail**. Nous lisons personnellement chaque message et sommes là pour vous aider.", + "If you have any questions, concerns, or feedback about these Terms of Service, please contact us:": "Si vous avez des questions, des préoccupations ou des commentaires concernant ces conditions d'utilisation, veuillez nous contacter :", + "If you have any questions, concerns, or feedback\\n about these Terms of Service, please contact us:": "Si vous avez des questions, des préoccupations ou des commentaires concernant ces conditions d'utilisation, veuillez nous contacter :", + "If you have any questions, concerns, or requests regarding this Privacy Policy or our data practices, please contact us:": "Si vous avez des questions, des préoccupations ou des demandes concernant cette politique de confidentialité ou nos pratiques en matière de données, veuillez nous contacter :", + "If you have any questions, concerns, or requests\\n regarding this Privacy Policy or our data\\n practices, please contact us:": "Si vous avez des questions, des préoccupations ou des demandes concernant cette politique de confidentialité ou nos pratiques en matière de données, veuillez nous contacter :", + "If you skip, rules will still apply automatically to future transactions.": "Si vous sautez cette étape, les règles continueront automatiquement de s'appliquer aux transactions futures.", + "If you'd like to come back, here's a special offer just for you:": "Si vous souhaitez revenir, voici une offre spéciale rien que pour vous :", + "If you're having trouble clicking the \"Verify Email Address\" button, copy and paste the URL below into your web browser:": "Si vous rencontrez des difficultés pour cliquer sur le bouton « Vérifier l'e-mail », copiez et collez l'URL ci-dessous dans votre navigateur Web :", + "If you're having trouble with the import or need help with your specific bank's format, just reply to this email. I personally handle support and I'm happy to help you figure it out.": "Si vous rencontrez des problèmes avec l'importation ou avez besoin d'aide avec le format de votre banque, répondez simplement à cet e-mail. Je m'occupe personnellement du support et je me ferai un plaisir de vous aider.", + "If you're having trouble with the import or need help with your specific bank's format, just reply to this email. We personally handle support and we're happy to help you figure it out.": "Si vous rencontrez des problèmes avec l'importation ou avez besoin d'aide avec le format de votre banque, répondez simplement à cet e-mail. Nous gérons personnellement le support et serons heureux de vous aider.", + "Ignore": "Ignorer", + "Import": "Matière", + "Import Transactions": "Opérations d'importation", + "Import Your Transactions": "Importez vos transactions", + "Import Your Transactions in Seconds": "Importez vos transactions en quelques secondes", + "Import a year's worth of transactions in under 10 seconds. Simply export a CSV or XLS file from your bank and drag it into Whisper Money. All data is encrypted locally before upload.": "Importez l’équivalent d’une année complète de transactions en moins de 10 secondes. Exportez simplement un fichier CSV ou XLS depuis votre banque et faites-le glisser dans Whisper Money. Toutes les données sont cryptées localement avant le téléchargement.", + "Import balance history from CSV files": "Importer l'historique des soldes à partir de fichiers CSV", + "Import balances": "Soldes d'importation", + "Import in Seconds": "Ça compte en quelques secondes", + "Import in seconds": "Ça compte en quelques secondes", + "Import market values": "Valeurs marchandes des importations", + "Import owed amounts": "Montants des importations dus", + "Import transactions": "Opérations d'importation", + "Import transactions for your account. You can export transaction history from your bank's website.": "Importez des transactions pour votre compte. Vous pouvez exporter l'historique des transactions depuis le site Web de votre banque.", + "Import transactions from CSV or Excel files": "Importer des transactions à partir de fichiers CSV ou Excel", + "Import transactions from CSV/Excel": "Importer des transactions depuis CSV/Excel", + "Import transactions from a CSV file": "Importer des transactions à partir d'un fichier CSV", + "Import transactions in seconds": "Importer des transactions en quelques secondes", + "Import your transaction history to start tracking your finances.": "Importez l'historique de vos transactions pour commencer à suivre vos finances.", + "Imported": "Importé", + "Importing Transactions": "Importation de transactions", + "Importing your balances...": "Importation de vos soldes...", + "Include loan balances in the net worth totals and chart": "Inclure les soldes des prêts dans les totaux et le graphique de la valeur nette", + "Include loans": "Inclure les prêts", + "Include real estate": "Inclure l'immobilier", + "Include real estate assets in the net worth totals and chart": "Inclure les biens immobiliers dans les totaux et le graphique de la valeur nette", + "Income": "Revenu", + "Income (Salary, Freelance, Investments)": "Revenu (salaire, indépendant, investissements)", + "Income Sources": "Sources de revenus", + "Income categories automatically appear as cash inflows in cashflow analytics.": "Les catégories de revenus apparaissent automatiquement sous forme d'encaissements dans l'analyse des flux de trésorerie.", + "Income categories count as cash inflow and appear in income charts. They do not appear in top spending categories.": "Les catégories de revenus comptent comme de l’argent entrant et apparaissent sur les tableaux de revenus. Ils n’apparaissent pas dans les catégories les plus dépensières.", + "Income minus expenses": "Revenus moins dépenses", + "Indian Rupee": "Roupie indienne", + "Information about how you use our service, including access times and features used": "Informations sur la façon dont vous utilisez notre service, y compris les temps d'accès et les fonctions utilisées", + "Information about how you use our service,\\n including access times and features used": "Informations sur la façon dont vous utilisez notre service, y compris les temps d'accès et les fonctions utilisées", + "Inherited from parent": "Hérité de la catégorie parent", + "Install App": "Installer l'application", + "Install Whisper Money": "Installer Whisper Money", + "Instant Application": "Application instantanée", + "Intelligent insights": "Analyse intelligente", + "Invalid credentials. Please check and try again.": "Identifiants invalides. Examinez-les et réessayez.", + "Invested": "Investi", + "Invested Amount": "Montant investi", + "Invested amount": "Montant investi", + "Investment": "Investissement", + "Investment Portfolio": "Portefeuille d'investissement", + "Investment categories appear as invested money at the top of cashflow and as cash outflow in the cashflow chart. They stay out of income, expenses, and top spending categories.": "Les catégories d'investissement apparaissent sous forme d'argent investi en haut du flux de trésorerie et sous forme d'argent en sortie sur le graphique de flux de trésorerie. Ils sont exclus des revenus, des dépenses et des catégories les plus dépensières.", + "Investment categories stay out of income and expense totals in cashflow analytics.": "Les catégories d'investissement sont exclues des totaux de revenus et de dépenses dans l'analyse des flux de trésorerie.", + "Investment categories stay out of income, expenses, cashflow totals, and top spending categories.": "Les catégories d'investissement sont exclues des revenus, des dépenses, des totaux des flux de trésorerie et des principales catégories de dépenses.", + "Is Whisper Money open source?": "Whisper Money est-il open source ?", + "Is the app meeting your expectations?": "L'application répond-elle à vos attentes ?", + "Is the encryption confusing?": "Le chiffrement est-il source de confusion ?", + "Is there anything confusing or frustrating?": "Y a-t-il quelque chose de déroutant ou de frustrant ?", + "It's personal finance, but actually private.": "Ce sont vos finances personnelles, mais vraiment privées.", + "Japanese Yen": "yen japonais", + "Jessica P.": "Jessica P.", + "Join Waitlist": "Rejoignez la liste", + "Join our Discord": "Rejoignez notre Discord", + "Join the waiting list. We'll let you know when you're in.": "Rejoignez la liste d'attente. Nous vous ferons savoir quand ce sera votre tour.", + "Join thousands of users who have taken control of their finances without compromising their privacy.": "Rejoignez des milliers d'utilisateurs qui ont pris le contrôle de leurs finances sans compromettre leur vie privée.", + "Just reply to this email and let me know what's happening. I personally read every response and will help you get started. This is my project, so I care about making sure it works for you.": "Répondez simplement à cet e-mail et dites-moi ce qui se passe. J'ai personnellement lu chaque réponse et je vous aiderai à démarrer. C'est mon projet, donc je tiens à ce qu'il fonctionne pour vous.", + "Just reply to this email and let us know what's happening. We personally read every response and will help you get started.": "Répondez simplement à cet e-mail et dites-nous ce qui se passe. Nous lisons personnellement chaque réponse et vous aiderons à démarrer.", + "Just reply to this email with your feedback. No surveys, no forms, just a direct conversation with me.": "Répondez simplement à cet e-mail avec vos commentaires. Pas d'enquêtes, pas de formulaires, juste une conversation directe avec moi.", + "Just reply to this email with your feedback. No surveys, no forms, just a direct conversation with us.": "Répondez simplement à cet e-mail avec vos commentaires. Pas d'enquêtes, pas de formulaires, juste une conversation directe avec nous.", + "KB max.": "Ko maximum", + "Keep accounts": "Tenir les comptes", + "Keep me logged in": "rester connecté", + "Keep me logged in (convenient)": "Gardez-moi connecté (pratique)", + "Keep me logged in (less secure)": "Restez connecté (moins sécurisé)", + "Keep this category out of cashflow analytics.": "Gardez cette catégorie hors de l’analyse des flux de trésorerie.", + "Keep this transfer out of cashflow analytics.": "Garde ce transfert hors de l’analyse des flux de trésorerie.", + "Key Storage": "Stockage des clés", + "Label (Optional)": "Étiquette (facultatif)", + "Label name": "Nom de la balise", + "Labels settings": "Paramètres d'étiquette", + "Land": "Atterrir", + "Language": "Langue", + "Last Login": "Dernier accès", + "Last period:": "Période précédente :", + "Last synced": "Dernière synchronisation", + "Last updated:": "Dernière mise à jour :", + "Latest transactions in this account": "Dernières transactions sur ce compte", + "Let's Get Started": "Commençons", + "Let's Import Your Transactions": "Importons vos transactions", + "Let's set up your first account to start tracking your finances.": "Créons votre premier compte pour commencer à suivre vos finances.", + "Let's start": "Commençons", + "Let's start with your main checking account. You can add more accounts later.": "Commençons par votre compte courant principal. Vous pourrez ajouter d'autres comptes ultérieurement.", + "Lifetime": "Pour la vie", + "Lifetime License": "Licence à vie", + "Lifetime updates": "Mises à jour à vie", + "Light": "Clair", + "Lightning fast": "Ultra rapide", + "Lightning-Fast CSV/XLS Import": "Importation CSV/XLS ultra-rapide", + "Limit adjusted": "Limite ajustée", + "Link a loan account to track equity (market value minus owed amount).": "Liez un compte de prêt pour suivre les capitaux propres (valeur marchande moins montant dû).", + "Link to existing account": "Lien vers un compte existant", + "Link your bank accounts directly. Transactions sync automatically, giving you a real-time view of your finances.": "Liez directement vos comptes bancaires. Les transactions se synchronisent automatiquement, vous donnant une vue en temps réel de vos finances.", + "Linked Mortgage / Loan": "Prêt hypothécaire/prêt lié", + "Linked Property": "Propriété liée", + "Load more": "Charger plus", + "Loading": "Chargement", + "Loading last balance...": "Chargement du dernier solde...", + "Loading last owed amount...": "Chargement du dernier montant dû...", + "Loading matches…": "Chargement des matchs…", + "Loading recovery codes": "Chargement des codes de récupération", + "Loading...": "Chargement...", + "Loan": "Prêt", + "Loan Details": "Détails du prêt", + "Loan Start Date": "Date de début du prêt", + "Loan Term": "Durée du prêt", + "Loan Term (months)": "Durée du prêt (mois)", + "Loans": "Prêts", + "Lock encryption key": "Clé de cryptage de verrouillage", + "Log in": "Se connecter", + "Log in to your account": "Connectez-vous à votre compte", + "Log in to your bank": "Connectez-vous à votre banque", + "Log in to your bank's website or app": "Connectez-vous au site Web ou à l'application de votre banque", + "Log into your bank's website and look for \"Export\" or \"Download transactions\". Choose CSV format if available.": "Connectez-vous au site Web de votre banque et recherchez « Exporter » ou « Télécharger les transactions ». Choisissez le format CSV si disponible.", + "Log out": "se déconnecter", + "Logo": "Logo", + "Look for \"Export\" or \"Download\" option": "Recherchez l'option \"Exporter\" ou \"Télécharger\"", + "Looking forward to hearing from you! And if you decide Whisper Money isn't for you, that's totally fine - but I'd love to know why so I can improve.": "J'attends vos commentaires avec impatience ! Et si vous décidez que Whisper Money n'est pas pour vous, ce n'est pas grave, mais j'aimerais savoir pourquoi afin de pouvoir m'améliorer.", + "Looking forward to hearing from you! And if you decide Whisper Money isn't for you, that's totally fine - but we'd love to know why so we can improve.": "Nous sommes impatients de vous entendre ! Et si vous décidez que Whisper Money n'est pas pour vous, ce n'est pas grave, mais nous aimerions savoir pourquoi afin de pouvoir nous améliorer.", + "Love that my financial data is encrypted. No more worrying about data breaches!": "J'aime que mes données financières soient cryptées. Ne vous inquiétez plus des violations de données !", + "Love that my financial data stays private. No more worrying about who has access to my spending habits!": "J’aime que mes données financières soient privées. Je ne me soucie plus de savoir qui a accès à mes habitudes de dépenses !", + "Love the simplicity. It's powerful but not overwhelming like other apps.": "J'adore la simplicité. Elle est puissante mais pas écrasante comme les autres applications.", + "Lower numbers execute first": "Les nombres les plus bas sont exécutés en premier", + "MM-DD-YYYY (e.g., 12-31-2024)": "MM-JJ-AAAA (par exemple 31/12/2024)", + "Main Checking": "Compte courant principal", + "Maintain and promptly update your account information": "Conservez et mettez à jour rapidement les informations de votre compte", + "Maintain and promptly update your account\\n information": "Conservez et mettez à jour rapidement les informations de votre compte", + "Make child categories top level": "Convertir les catégories enfants en catégories parents", + "Making your money talk...": "Faire parler son argent...", + "Manage Plan": "Gérer le forfait", + "Manage Subscription": "Gérer l'abonnement", + "Manage rules that categorize transactions and add labels automatically": "Gérez les règles qui catégorisent automatiquement les transactions et ajoutent des balises", + "Manage the automatic notifications you receive": "Gérez les notifications automatiques que vous recevez", + "Manage your bank accounts": "Gérez vos comptes bancaires", + "Manage your connected bank accounts for automatic transaction syncing.": "Gérez vos comptes bancaires connectés pour une synchronisation automatique des transactions.", + "Manage your profile and account settings": "Gérer votre profil et les paramètres de votre compte", + "Manage your subscription, update payment methods, or view invoices through the Stripe billing portal.": "Gérez votre abonnement, mettez à jour les modes de paiement ou consultez les factures via le portail de facturation Stripe.", + "Manage your subscription, update payment methods, or\\n view invoices through the Stripe billing portal.": "Gérez votre abonnement, mettez à jour les modes de paiement ou consultez les factures via le portail de facturation Stripe.", + "Manage your transaction automation rules": "Gérez vos règles d'automatisation des transactions", + "Manage your transaction automation rules. Rules will be applied to categorize transactions automatically.": "Gérez vos règles d'automatisation des transactions. Des règles seront appliquées pour catégoriser automatiquement les transactions.", + "Manage your transaction automation rules. Rules will categorize transactions and add labels automatically.": "Gérez vos règles d'automatisation des transactions. Les règles catégoriseront les transactions et ajouteront automatiquement des balises.", + "Manage your transaction categories": "Gérez vos catégories de transactions", + "Manage your transaction labels": "Gérez vos balises de transaction", + "Manage your two-factor authentication settings": "Gérez vos paramètres d'authentification à deux facteurs", + "Manual": "Manuel", + "Manually record and track your financial transactions, budgets, and expenses": "Enregistrez et suivez manuellement vos transactions financières, vos budgets et vos dépenses", + "Manually record and track your financial\\n transactions, budgets, and expenses": "Enregistrez et suivez manuellement vos transactions financières, vos budgets et vos dépenses", + "Map Accounts": "Mapper les comptes", + "Map Bank Accounts": "Cartographier les comptes bancaires", + "Map Columns": "Colonnes de la carte", + "Mark your account as deleted and disable access": "Marquez votre compte comme supprimé et désactivez l'accès", + "Market Value": "Valeur marchande", + "Market Values": "Valeurs marchandes", + "Market value": "Valeur marchande", + "Market value evolution": "Evolution de la valeur marchande", + "Match your file columns to transaction fields": "Associez les colonnes de votre fichier aux champs de transaction", + "Max": "Max.", + "Maybe later": "Peut-être plus tard", + "Metro Transit": "Métro", + "Mexican Peso": "Peso mexicain", + "Michael R.": "Michael R.", + "Min": "Min.", + "Mobile app (iOS & Android)": "Application mobile (iOS et Android)", + "Modify an existing rule": "Modifier une règle existante", + "Money Flow": "Trésorie", + "Money coming into an account from a source (e.g., salary, refunds, interest). Increases your balance.": "Argent versé sur un compte à partir d'une source (par exemple, salaire, remboursements, intérêts). Augmentez votre solde.", + "Money going out of an account to pay for something (e.g., groceries, rent, subscriptions). Decreases your balance.": "Argent qui sort d'un compte pour payer quelque chose (par exemple, l'épicerie, le loyer, les abonnements). Diminue votre solde.", + "Month": "Mois", + "Monthly": "Mensuel", + "Monthly Payment": "Paiement mensuel", + "Monthly code": "Code mensuel", + "Monthly income, expenses, and net cashflow for the selected period": "Revenus, dépenses et flux de trésorerie net mensuel pour la période sélectionnée", + "Monthly income, expenses, and net cashflow over the last 12 months": "Revenus, dépenses et flux de trésorerie net mensuel des 12 derniers mois", + "Monthly income, expenses, tracked transfers, and net cashflow over the last 12 months": "Revenus, dépenses, transferts consécutifs et flux de trésorerie net mensuel au cours des 12 derniers mois", + "More": "Plus loin", + "More actions": "Plus de propositions", + "More options": "Plus d'options", + "Mortgage Owed": "Prêt hypothécaire en attente", + "Mortgage at": "Hypothèque en", + "Mortgage owed": "Prêt hypothécaire en attente", + "Mortgages and loans": "Hypothèques et prêts", + "Most Popular": "Les plus populaires", + "Move Up — Share Your Personal Link": "Grimper des positions — Partagez votre lien personnel", + "Move child categories to the top level": "Déplacer les catégories enfants au niveau parent", + "Move child categories up to the parent": "Déplacer les catégories enfants vers la catégorie parent", + "Move up 10 spots per referral": "Avancer de 10 postes par référence", + "Movie Night": "Soirée cinéma", + "Moving money between accounts. It does not count in expenses or income charts.": "Déplacez de l'argent entre les comptes. Cela ne compte pas dans les tableaux de dépenses ou de revenus.", + "Multi-Device Sync": "Synchronisation multi-appareils", + "Multiple account tracking": "Suivre plusieurs comptes", + "Name": "Nom", + "Navigate to...": "Accédez à...", + "Need Help Getting Started?": "Avez-vous besoin d'aide pour démarrer ?", + "Need help importing your transactions, :name?": "Avez-vous besoin d'aide pour importer vos transactions, :name ?", + "Need help? Join our Discord": "Avez-vous besoin d'aide ? Rejoignez notre Discord", + "Net": "Filet", + "Net Cashflow": "Flux net", + "Net Worth Evolution": "Evolution de l'actif net", + "Neutral": "Neutre", + "Never": "Jamais", + "New": "Nouveau", + "New Zealand Dollar": "Dollar néo-zélandais", + "New password": "Nouveau mot de passe", + "New transactions from connected banks": "Nouvelles transactions des banques connectées", + "New transactions synced, :name!": "Nouvelles transactions synchronisées, :name!", + "Next": "Suivant", + "Next month": "Mois prochain", + "Next period": "Période suivante", + "No AI Snooping": "Pas d'espionnage par l'IA", + "No AI, No Data Mining": "Pas d'IA, pas d'exploration de données", + "No AI. No bank connections. Your privacy is our priority.": "Pas d'IA. Aucune connexion bancaire. Votre vie privée est notre priorité.", + "No Bank Access Required": "Aucun accès bancaire requis", + "No Third-Party Data Sharing:": "Sans partager de données avec des tiers :", + "No Uncategorized Transactions": "Aucune transaction non classée", + "No account data available": "Aucune donnée de compte disponible", + "No accounts found.": "Aucun compte trouvé.", + "No accounts found. Add your first account in Settings.": "Aucun compte trouvé. Ajoutez votre premier compte dans Paramètres.", + "No accounts found. Please create an account first.": "Aucun compte trouvé. Veuillez d'abord créer un compte.", + "No action set": "Aucune action définie", + "No active period": "Aucune période active", + "No automation rules available.": "Aucune règle d'automatisation n'est disponible.", + "No automation rules found.": "Aucune règle d'automatisation trouvée.", + "No balance data available": "Aucune donnée de solde disponible", + "No balance records found.": "Aucun enregistrement de solde trouvé.", + "No bank connections yet. Connect a bank to automatically sync your transactions.": "Il n'y a pas encore de connexions bancaires. Connectez une banque pour synchroniser automatiquement vos transactions.", + "No bank found.": "Aucun banc n'a été trouvé.", + "No banks found.": "Aucun banc n'a été trouvé.", + "No cashflow data for this period": "Aucune donnée sur les flux monétaires pour cette période", + "No categories found.": "Aucune catégorie trouvée.", + "No category found.": "Aucune catégorie trouvée.", + "No category set": "Aucune catégorie définie", + "No expenses this period": "Aucune dépense pendant cette période", + "No income this period": "Aucun revenu sur cette période", + "No labels found.": "Aucune balise trouvée.", + "No limits on bank accounts, transactions, or categories.": "Aucune limite sur les comptes bancaires, les transactions ou les catégories.", + "No linked loan": "Pas de prêt lié", + "No linked property": "Aucune propriété liée", + "No loan details yet. Add interest rate, term, and amount to track amortization.": "Il n'y a pas encore de détails sur le prêt. Ajoutez le taux d’intérêt, la durée et le montant pour suivre l’amortissement.", + "No market value data available": "Aucune donnée sur la valeur marchande disponible", + "No matching transactions. Future transactions will still be categorized automatically.": "Aucune transaction correspondante. Les transactions futures seront automatiquement classées.", + "No owed amount data available": "Aucune donnée sur le montant dû disponible", + "No owed amount records found.": "Aucune trace du montant dû n’a été trouvée.", + "No pressure—if now is not the right time, you can ignore this email.": "Pas de pression : si ce n’est pas le moment, vous pouvez ignorer cet email.", + "No results found": "Aucun résultat trouvé", + "No spending data this month": "Aucune donnée sur les dépenses ce mois-ci", + "No third-party sharing, no AI snooping. Your financial data belongs to you and only you.": "Pas de partage avec des tiers, pas d'espionnage IA. Vos données financières n'appartiennent qu'à vous.", + "No tracking": "Pas de suivi", + "No transactions found.": "Aucune transaction trouvée.", + "No valid balances found": "Aucun solde valide trouvé", + "No valid owed amounts found": "Aucun montant dû valide trouvé", + "No worries! Your encryption key is automatically generated and stored securely on your device. You don't need to remember anything - I've made it as simple as possible.": "Ne t'inquiète pas! Votre clé de cryptage est automatiquement générée et stockée en toute sécurité sur votre appareil. Vous n’avez besoin de vous souvenir de rien, j’ai rendu les choses aussi simples que possible.", + "None": "Aucun", + "None (Remove)": "Aucun (Supprimer)", + "None (top level)": "Aucun (niveau principal)", + "Not sure how to import transactions?": "Vous ne savez pas comment importer des transactions ?", + "Notes": "Notes", + "Notifications": "Notifications", + "Nothing in these Terms excludes or limits our liability for death or personal injury caused by negligence, fraud, or any liability that cannot be excluded or limited under applicable law.": "Rien dans les présentes Conditions n'exclut ou ne limite notre responsabilité en cas de décès ou de blessures corporelles causées par une négligence, une fraude ou toute responsabilité qui ne peut être exclue ou limitée en vertu de la loi applicable.", + "Nothing in these Terms excludes or limits our\\n liability for death or personal injury caused by\\n negligence, fraud, or any liability that cannot\\n be excluded or limited under applicable law.": "Rien dans les présentes Conditions n'exclut ou ne limite notre responsabilité en cas de décès ou de blessures corporelles causées par une négligence, une fraude ou toute responsabilité qui ne peut être exclue ou limitée en vertu de la loi applicable.", + "Notify us immediately of any unauthorized access or security breach": "Informez-nous immédiatement de tout accès non autorisé ou faille de sécurité", + "Notify us immediately of any unauthorized\\n access or security breach": "Informez-nous immédiatement de tout accès non autorisé ou faille de sécurité", + "Once verified, you'll be able to set up your encryption key and start tracking your finances with full privacy.": "Une fois vérifié, vous pouvez configurer votre clé de cryptage et commencer à suivre vos finances en toute confidentialité.", + "Once your account is deleted, all of its resources and data will also be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Une fois votre compte supprimé, toutes vos ressources et données seront également définitivement supprimées. Veuillez saisir votre mot de passe pour confirmer que vous souhaitez supprimer définitivement votre compte.", + "Once your account is deleted, all of its resources\\n and data will also be permanently deleted. Please\\n enter your password to confirm you would like to\\n permanently delete your account.": "Une fois votre compte supprimé, toutes vos ressources et données seront également définitivement supprimées. Veuillez saisir votre mot de passe pour confirmer que vous souhaitez supprimer définitivement votre compte.", + "Once your account is deleted, you will be signed out\\n and your access will be disabled. Your data will\\n remain in the database. Please enter your password\\n to confirm you would like to mark your account as\\n deleted.": "Une fois votre compte marqué comme supprimé, vous serez déconnecté et votre accès sera désactivé. Vos données resteront dans la base de données. Veuillez saisir votre mot de passe pour confirmer que vous souhaitez marquer votre compte comme supprimé.", + "Only apply to uncategorized": "Appliquer uniquement à ceux qui ne sont pas catégorisés", + "Only you know this password. It never leaves your device.": "Vous seul connaissez ce mot de passe. Il ne quitte jamais votre appareil.", + "Open menu": "Ouvrir le menu", + "Open source": "Source ouverte", + "Optional. Provide loan details to automatically project your owed amount over time.": "Facultatif. Fournit les détails du prêt pour projeter automatiquement le montant dû au fil du temps.", + "Optional. Set the current balance for this account.": "Facultatif. Définit le solde actuel de ce compte.", + "Optionally link this loan to an existing unlinked real-estate account.": "Liez éventuellement ce prêt à un compte immobilier existant qui n'est pas déjà lié.", + "Or, return to": "Ou bien, revenez à", + "Organize financial data with categories and custom labels": "Organisez les données financières avec des catégories et des balises personnalisées", + "Organize financial data with categories and\\n custom labels": "Organisez les données financières avec des catégories et des balises personnalisées", + "Organize transactions with tags that make sense for your workflow.": "Organisez les transactions avec des étiquettes adaptées à votre flux de travail.", + "Original Amount": "Montant initial", + "Original Loan Amount": "Montant initial du prêt", + "Other": "Autres", + "Other Categories (": "Autres catégories (", + "Others": "Autres", + "Our service is not intended for users under the age of 16. We do not knowingly collect personal information from children. If you believe we have collected information from a child, please contact us immediately, and we will delete it.": "Notre service n'est pas destiné aux utilisateurs de moins de 16 ans. Nous ne collectons pas sciemment d’informations personnelles auprès des enfants. Si vous pensez que nous avons collecté des informations sur un enfant, veuillez nous contacter immédiatement et nous les supprimerons.", + "Our service is not intended for users under the\\n age of 16. We do not knowingly collect personal\\n information from children. If you believe we\\n have collected information from a child, please\\n contact us immediately, and we will delete it.": "Notre service n'est pas destiné aux utilisateurs de moins de 16 ans. Nous ne collectons pas sciemment d’informations personnelles auprès des enfants. Si vous pensez que nous avons collecté des informations sur un enfant, veuillez nous contacter immédiatement et nous les supprimerons.", + "Overview of your financial health": "Aperçu de votre santé financière", + "Owed Amount": "Montant dû", + "Owed Amount History": "Historique du montant dû", + "Owed Amounts": "Montants dus", + "Owed amount evolution": "Evolution du montant dû", + "Page": "Page", + "Paraguayan Guarani": "Guarani paraguayen", + "Parent": "Père", + "Direct": "Droit", + "Parent category": "Catégorie parente", + "Password": "Mot de passe", + "Password changes are disabled on the demo account.": "Les changements de mot de passe sont désactivés sur le compte démo.", + "Password changes are disabled on the demo\\n account.": "Les changements de mot de passe sont désactivés sur le compte démo.", + "Password must be at least 12 characters": "Le mot de passe doit contenir au moins 12 caractères", + "Password settings": "Paramètres de mot de passe", + "Passwords do not match": "Les mots de passe ne correspondent pas", + "Passwords match": "Les mots de passe correspondent", + "Paste your Binance API Key": "Collez votre clé API Binance", + "Paste your Binance API Secret": "Collez votre secret API Binance", + "Paste your Bitpanda API Key": "Collez votre clé API Bitpanda", + "Paste your Indexa Capital API token": "Collez votre jeton API Indexa Capital", + "Patience is a virtue (especially with money)...": "La patience est une vertu (surtout avec l'argent)...", + "Pattern Matching": "Correspondance de motifs", + "Payment Processors:": "Processeurs de paiement :", + "Payments are processed by third-party payment processors and subject to their terms": "Les paiements sont traités par des processeurs de paiement tiers et sont soumis à leurs conditions.", + "Payments are processed by third-party\\n payment processors and subject to their\\n terms": "Les paiements sont traités par des processeurs de paiement tiers et sont soumis à leurs conditions.", + "Payroll Deposit": "Dépôt de paie", + "Percentage of income saved": "Pourcentage de revenus épargnés", + "Perfect for investment portfolios and retirement accounts": "Parfait pour les portefeuilles d'investissement et les comptes de retraite", + "Perfect for investment portfolios and retirement\\n accounts": "Parfait pour les portefeuilles d'investissement et les comptes de retraite", + "Period": "Période", + "Period Duration (days)": "Période Durée (jours)", + "Period Type": "Type de période", + "Period and carry-over settings cannot be changed after a budget is created because budgets are calculated historically. If you need different settings, delete this budget and create a new one.": "Les paramètres de période et de report ne peuvent pas être modifiés après la création d'un budget, car les budgets sont calculés historiquement. Si vous avez besoin d'une configuration différente, supprimez ce devis et créez-en un nouveau.", + "Personal transfers": "Transferts personnels", + "Peruvian Sol": "Soleil péruvien", + "Pick whichever plan fits you, paste the matching code at checkout, and you are set.": "Choisissez le forfait que vous préférez, collez le code correspondant lors du paiement et le tour est joué.", + "Pink": "Rose", + "Platform": "Plate-forme", + "Please enter a balance": "Veuillez saisir un solde", + "Please enter a bank name.": "Veuillez saisir un nom de banque.", + "Please enter an account name.": "Veuillez saisir un nom de compte.", + "Please enter your new password below": "Veuillez entrer votre nouveau mot de passe ci-dessous", + "Please fill in all required fields.": "Veuillez remplir tous les champs obligatoires.", + "Please proceed with caution, this cannot be undone.": "Veuillez procéder avec prudence, cela ne peut pas être annulé.", + "Please select a bank.": "Veuillez sélectionner une banque.", + "Please unlock your encryption key to add transactions": "Veuillez déverrouiller votre clé de cryptage pour ajouter des transactions", + "Please unlock your encryption key to import transactions": "Veuillez déverrouiller votre clé de cryptage pour importer des transactions", + "Please unlock your encryption key to save transactions": "Veuillez déverrouiller votre clé de cryptage pour enregistrer les transactions", + "Please verify your email address by clicking on the link we just emailed to you.": "Veuillez vérifier votre adresse e-mail en cliquant sur le lien que nous venons de vous envoyer.", + "Please wait while we import your transactions": "Veuillez patienter pendant que nous importons vos transactions", + "Popular banks available to connect": "Banques populaires disponibles pour se connecter", + "Pre-filled from an existing balance for this date.": "Rempli d'un bilan existant à cette date.", + "Prefer to Connect Your Bank?": "Préférez-vous connecter votre banque ?", + "Prefer to Start Fresh?": "Vous préférez repartir de zéro ?", + "Prev": "Fourmi", + "Preview (first 3 rows)": "Aperçu (3 premières lignes)", + "Preview Balances": "Aperçu du bilan", + "Preview Owed Amounts": "Aperçu des sommes dues", + "Preview Transactions": "Aperçu des transactions", + "Preview the transactions these rules will categorize before applying them.": "Prévisualisez les transactions que ces règles catégoriseront avant de les appliquer.", + "Preview the transactions this rule will affect and apply its actions.": "Prévisualisez les transactions que cette règle affectera et appliquera ses actions.", + "Previous": "Ancien", + "Previous month": "Mois précédent", + "Previous period": "Période précédente", + "Priority": "Priorité", + "Priority Support": "Assistance prioritaire", + "Priority support": "Assistance prioritaire", + "Privacy First": "La confidentialité d'abord", + "Privacy First:": "La confidentialité d’abord :", + "Privacy Policy": "politique de confidentialité", + "Privacy Policy - Whisper Money": "Politique de confidentialité - Whisper Money", + "Privacy by Design": "Confidentialité dès la conception", + "Privacy comes first": "La confidentialité passe avant tout", + "Privacy policy for Whisper Money. Learn how we collect, use, and protect your personal information.": "Politique de confidentialité de Whisper Money. Découvrez comment nous collectons, utilisons et protégeons vos informations personnelles.", + "Privacy policy for Whisper Money. Learn how we collect, use, and protect your personal information. Your data is never shared with third parties.": "Politique de confidentialité de Whisper Money. Découvrez comment nous collectons, utilisons et protégeons vos informations personnelles. Vos données ne sont jamais partagées avec des tiers.", + "Private & Secure": "Privé et sécurisé", + "Private Key": "Clé privée", + "Private by Design": "Privé par conception", + "Pro Monthly": "Pro mensuel", + "Pro Plan Active": "Forfait Pro Actif", + "Pro Yearly": "Annuel Pro", + "Profile Settings": "Paramètres du profil", + "Profile information": "Informations sur le profil", + "Projected": "Projeté", + "Projected mortgage": "Hypothèque projetée", + "Property Details": "Détails de la propriété", + "Property Type": "Type de propriété", + "Property address": "Adresse de la propriété", + "Protect your privacy with no tracking or third-party analytics.": "Protégez votre vie privée sans suivi ni analyse par des tiers.", + "Purchase Date": "Date d'achat", + "Purchase Price": "Prix ​​d'achat", + "Q": "T", + "Quartely": "Tous les 4 mois", + "Quarter": "Quart", + "Questions or feedback? Reply to this email. We read every message personally.": "Avez-vous des questions ou des commentaires? Répondez à cet e-mail. Nous lisons chaque message personnellement.", + "Rate limit exceeded. Please wait a few minutes and try again.": "Limite de candidature dépassée. Attendez quelques minutes et réessayez.", + "Re-evaluate rules": "Réévaluer les règles", + "Reactivate Your Subscription": "Réactivez votre abonnement", + "Receive an email when new transactions are imported from your connected banks. Sent at most once a day.": "Recevez un email lorsque de nouvelles transactions sont importées depuis vos banques connectées. Il est envoyé au maximum une fois par jour.", + "Ready to take control of your finances?": "Prêt à prendre le contrôle de vos finances ?", + "Real Estate": "Immobilier", + "Reconnect": "Reconnecter", + "Reconnect to resume automatic syncing.": "Reconnectez-vous pour reprendre la synchronisation automatique.", + "Recovery Codes": "Codes de récupération", + "Recovery codes": "Codes de récupération", + "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Les codes de récupération vous permettent de retrouver l'accès si vous perdez votre appareil 2FA. Stockez-les dans un gestionnaire de mots de passe sécurisé.", + "Recovery codes let you regain access if you lose your 2FA\\n device. Store them in a secure password manager.": "Les codes de récupération vous permettent de retrouver l'accès si vous perdez votre appareil 2FA. Enregistrez-les dans un gestionnaire de mots de passe sécurisé.", + "Redirect progress": "Rediriger la progression", + "Redirecting to your dashboard": "Redirection vers votre panel", + "Redirecting...": "Redirection...", + "Regenerate Codes": "Régénérer les codes", + "Register": "Registre", + "Regular Security Audits:": "Audits de sécurité réguliers :", + "Remaining": "Restant", + "Remaining balance carries over to next period": "Le solde restant est accumulé pour la période suivante", + "Remaining balance returns to available money pool": "Le solde restant retourne au fonds d'argent disponible", + "Remember me": "souviens-toi de moi", + "Remove all labels": "Supprimer toutes les balises", + "Rent Payment": "Paiement du loyer", + "Rent and maintanence": "Location et entretien", + "Resend verification email": "Renvoyer l'e-mail de vérification", + "Reset password": "Réinitialiser le mot de passe", + "Reset/Pool": "Redémarrage/Arrière-plan", + "Residential": "Résidentiel", + "Retirement": "Retraite", + "Retirement / Pension": "Retraite/Pension", + "Retry": "Réessayer", + "Review and contribute to our open-source codebase on GitHub.": "Consultez et contribuez à notre code open source sur GitHub.", + "Review matches": "Revoir les matchs", + "Review transactions before importing": "Vérifier les transactions avant d'importer", + "Right of Access:": "Droit d'accès :", + "Right to Data Portability:": "Droit à la portabilité des données :", + "Right to Erasure:": "Droit à l'oubli :", + "Right to Lodge a Complaint:": "Droit de déposer une plainte :", + "Right to Object:": "Droit d'opposition :", + "Right to Rectification:": "Droit de rectification :", + "Right to Restriction:": "Droit de restriction :", + "Right to Withdraw Consent:": "Droit de retirer le consentement :", + "Roadmap": "Feuille de route", + "Rollover Type": "Type de transfert", + "Row": "Rangée", + "Rule \":rule\" applied": "Règle \":rule\" appliquée", + "Rule applied to :count transaction(s).": "Règle appliquée aux :count transaction(s).", + "Rule title": "Titre de la règle", + "Rules": "Règles", + "Rules apply automatically when you import new transactions": "Les règles sont automatiquement appliquées lorsque vous importez de nouvelles transactions", + "Rules will categorize future transactions for you automatically.": "Les règles catégoriseront automatiquement les transactions futures pour vous.", + "STARBUCKS@TEKKA PLC": "STARBUCKS@TEKKA PLC", + "Salary": "Salaire", + "Sample transactions with a curved scrolling effect": "Exemples de transactions avec effet de survol", + "Sarah M.": "Sarah M.", + "Save": "Garder", + "Save & Sync": "Enregistrer et synchroniser", + "Save :percent%": "Économisez :pourcentage", + "Save Balance": "Enregistrer le solde", + "Save Changes": "Enregistrer les modifications", + "Save money for goals": "Économisez de l'argent pour vos objectifs", + "Save password": "Enregistrer le mot de passe", + "Saved": "Enregistré", + "Saved (cashflow)": "enregistré", + "Saved & Invested": "Épargné et investi", + "Share of net cashflow set aside": "Pourcentage du flux net alloué", + "Where do these numbers come from?": "D'où viennent ces chiffres ?", + "These figures come from transactions categorized with a \"saving\" or \"investment\" category type. Make sure you use those category types so all the money set aside is counted here.": "Ces chiffres proviennent d'opérations classées dans une catégorie de type « épargne » ou « investissement ». Assurez-vous d'utiliser ces types de catégories afin que tout l'argent mis de côté soit pris en compte ici.", + "Saving": "Économie", + "Saving...": "Économie...", + "Savings": "Économies", + "Savings Rate": "Taux d'épargne", + "Savings Transfer": "Transfert vers l'épargne", + "Savings categories appear as saved money at the top of cashflow and as cash outflow in the cashflow chart. They stay out of income, expenses, and top spending categories.": "Les catégories d'épargne apparaissent sous forme d'argent épargné en haut du flux de trésorerie et sous forme d'argent sortant sur le diagramme de flux de trésorerie. Ils sont exclus des revenus, des dépenses et des catégories les plus dépensières.", + "Savings categories stay out of income and expense totals in cashflow analytics.": "Les catégories d’épargne sont exclues des totaux de revenus et de dépenses dans l’analyse des flux de trésorerie.", + "Savings categories stay out of income, expenses, cashflow totals, and top spending categories.": "Les catégories d'épargne sont exclues des revenus, des dépenses, des totaux des flux de trésorerie et des principales catégories de dépenses.", + "Savings rate": "Taux d'épargne", + "Search": "Rechercher", + "Search bank...": "Rechercher une banque...", + "Search banks...": "Rechercher des banques...", + "Search categories...": "Catégories de recherche...", + "Search description or notes...": "Rechercher une description ou des notes...", + "Search disabled (encryption key not set)": "Recherche désactivée (clé de cryptage non configurée)", + "Search labels...": "Rechercher des balises...", + "Search or create labels...": "Rechercher ou créer des balises...", + "Search, filter, and categorize with ease. Understand exactly where your money goes.": "Recherchez, filtrez et catégorisez facilement. Comprenez exactement où va votre argent.", + "Search, move": "Rechercher, déplacer", + "Searching...": "Recherche...", + "Secret": "Secrète", + "Secure & encrypted": "Sécurisé et crypté", + "Secure Storage:": "Stockage sécurisé :", + "Secure upload": "Chargement sécurisé", + "See balances": "Voir les soldes", + "See every account in one place. Track balances, monitor changes, and always know where you stand.": "Consultez tous vos comptes en un seul endroit. Suivez les soldes, surveillez les changements et sachez toujours comment vous allez.", + "See market values": "Afficher les valeurs marchandes", + "See owed amounts": "Afficher les montants dus", + "See where you spend": "Voyez ce que vous dépensez", + "See where you stand in real-time. Visual progress bars show spending vs. budget.": "Visualisez votre situation en temps réel. Les barres de progression visuelles montrent les dépenses par rapport au budget.", + "Select Account": "Sélectionnez un compte", + "Select a category": "Sélectionnez une catégorie", + "Select a category (optional)": "Sélectionnez une catégorie (facultatif)", + "Select a color": "Sélectionnez une couleur", + "Select a label": "Sélectionnez une étiquette", + "Select a type": "Sélectionnez un type", + "Select account": "Sélectionnez un compte", + "Select account type": "Sélectionnez le type de compte", + "Select all": "Tout sélectionner", + "Select all transactions": "Sélectionnez toutes les transactions", + "Select all transactions matching filter": "Sélectionnez toutes les transactions qui correspondent au filtre", + "Select amount column": "Sélectionner la colonne de valeur", + "Select an account": "Sélectionnez un compte", + "Select an icon": "Sélectionnez une icône", + "Select at least a category or a label to track.": "Sélectionnez au moins une catégorie ou une balise à suivre.", + "Select balance column": "Sélectionnez la colonne du solde", + "Select balance column (optional)": "Sélectionnez la colonne de solde (facultatif)", + "Select bank...": "Sélectionnez la banque...", + "Select categories...": "Sélectionnez les catégories...", + "Select country": "Sélectionnez un pays", + "Select creditor column (optional)": "Sélectionnez la colonne du créancier (facultatif)", + "Select currency": "Sélectionnez la devise", + "Select date column": "Sélectionnez la colonne de date", + "Select debtor column (optional)": "Sélectionner la colonne débiteur (facultatif)", + "Select description column": "Sélectionnez la colonne de description", + "Select invested amount column (optional)": "Sélectionnez la colonne Montant investi (facultatif)", + "Select labels": "Sélectionnez les balises", + "Select labels (optional)": "Sélectionnez les balises (facultatif)", + "Select labels...": "Sélectionnez les balises...", + "Select language": "Sélectionnez la langue", + "Select owed amount column": "Sélectionnez la colonne Montant dû", + "Select property type": "Sélectionnez le type de propriété", + "Select row": "Sélectionner une ligne", + "Select start of month": "Sélectionnez le début du mois", + "Select the country where your bank is located.": "Sélectionnez le pays où se trouve votre banque.", + "Select unit": "Sélectionnez l'unité", + "Select your bank.": "Sélectionnez votre banque.", + "Select your country and bank to get started.": "Sélectionnez votre pays et votre banque pour commencer.", + "Selected": "Choisi", + "Selected account not found": "Compte sélectionné introuvable", + "Self-Employment Income": "Revenu d'un travailleur indépendant", + "Service Availability:": "Disponibilité des services :", + "Session only": "Séance uniquement", + "Session only (more secure)": "Session uniquement (plus sécurisée)", + "Set Account Balance": "Établir le solde du compte", + "Set Balance": "Établir l'équilibre", + "Set Category": "Définir la catégorie", + "Set Your Goals": "Fixez vos objectifs", + "Set budgets, track your goals, and see how your money is working for you. Whether you're cutting costs or growing your wealth, Whisper Money helps you make better decisions.": "Définissez des budgets, suivez vos objectifs et voyez comment votre argent fonctionne pour vous. Que vous réduisiez vos dépenses ou accroissiez votre patrimoine, Whisper Money vous aide à prendre de meilleures décisions.", + "Set interest rate, term, and amount to track amortization.": "Configurez le taux d'intérêt, la durée et le montant pour suivre l'amortissement.", + "Set spending limits and get real-time updates on your financial goals.": "Fixez des limites de dépenses et obtenez des mises à jour en temps réel sur vos objectifs financiers.", + "Set the balance for this account on a specific date.": "Mettez à jour le solde de ce compte.", + "Set the current balance for this account to start tracking.": "Définissez le solde actuel de ce compte pour commencer le suivi.", + "Set the owed amount for this account on a specific date.": "Fixe le montant dû sur ce compte à une date précise.", + "Set up a spending limit for a category or label.": "Définissez une limite de dépenses pour une catégorie ou une balise.", + "Set your budget goals": "Fixez vos objectifs budgétaires", + "Setting things up...": "Configuration...", + "Setting up encryption...": "Configuration du cryptage...", + "Settings": "Configuration", + "Settings > Applications": "Paramètres > Applications", + "Setup Encryption": "Configurez votre cryptage", + "Share": "Partager", + "Share Your Link": "Partagez votre lien", + "Share Your Link Again": "Partagez à nouveau votre lien", + "Share it with anyone who cares about their financial privacy — friends, family, your group chat. Each sign-up is 10 spots closer to the front.": "Partagez-le avec toute personne qui tient à sa confidentialité financière : amis, famille, discussion de groupe. Chaque enregistrement est 10 places plus proche du devant.", + "Share it with friends, family, or anyone who cares about their financial privacy. Every sign-up moves you 10 spots closer to the front.": "Partagez-le avec vos amis, votre famille ou toute personne qui apprécie sa confidentialité financière. Chaque inscription vous rapporte 10 places d'avance.", + "Share your personal link. Every person who joins through it moves you 10 positions forward.": "Partagez votre lien personnel. Chaque personne qui nous rejoint par son intermédiaire vous fait progresser de 10 positions.", + "Shared": "Commun", + "Shared with": "Partagé avec", + "Shopping (Clothing, Electronics, Gifts)": "Shopping (vêtements, électronique, cadeaux)", + "Show as cash inflow": "Afficher comme reçu d'argent", + "Show password": "Afficher le mot de passe", + "Show subcategories": "Afficher les sous-catégories", + "Show as cash outflow": "Afficher comme retrait d'argent", + "Show in account currency (:currency)": "Afficher dans la devise du compte (:devise)", + "Show in cashflow chart as inflow": "Afficher sur le graphique des flux de trésorerie en entrée", + "Show in cashflow chart as outflow": "Afficher sur le graphique des flux de trésorerie en sortie", + "Show in your currency (:currency)": "Afficher dans votre devise (:currency)", + "Show this transfer category as money entering available cash.": "Affiche cette catégorie de transfert sous forme d'argent entrant dans votre solde disponible.", + "Show this transfer category as money leaving available cash.": "Affiche cette catégorie de transfert comme de l'argent sortant de votre solde disponible.", + "Sign up": "Créer un compte", + "Simple, transparent pricing": "Tarification simple et transparente", + "Single-use. Works on monthly or yearly plans. Tied to your email — please keep it private.": "Usage unique. Il fonctionne avec le forfait mensuel ou annuel. Il est lié à votre e-mail : gardez-le privé.", + "Skip": "Houblon", + "Skip for now": "Passer pour l'instant", + "Smart Automation": "Automatisation intelligente", + "Smart Automation Rules": "Règles automatiques", + "Smart Budgets": "Budgets intelligents", + "Smart Categorization": "Catégorisation intelligente", + "Smart Rules": "Règles intelligentes", + "Smart budgeting": "Budgets intelligents", + "Smart categorization": "Catégorisation intelligente", + "Someone just joined Whisper Money with your link!": "Quelqu'un vient de rejoindre Whisper Money avec votre lien !", + "Someone just joined with your link!": "Quelqu'un vient de nous rejoindre avec votre lien !", + "Someone just overtook you in the Whisper Money queue!": "Quelqu'un vient de vous devancer sur la liste d'attente de Whisper Money !", + "Someone just overtook you in the queue!": "Quelqu'un vient de vous dépasser dans la file d'attente !", + "Someone just signed up to the Whisper Money waiting list using **your referral link**. We've moved you **10 positions forward** in the queue as a thank you.": "Quelqu'un vient de s'inscrire sur la liste d'attente Whisper Money en utilisant **votre lien de parrainage**. Nous vous avons avancé de **10 places** en guise de remerciement.", + "Someone on the Whisper Money waiting list just invited a friend, which moved them ahead of you in the queue.": "Quelqu'un sur la liste d'attente de Whisper Money vient d'inviter un ami, le plaçant devant vous dans la file d'attente.", + "Something not working?": "Quelque chose ne fonctionne pas ?", + "Spending exceeds income this period.": "Les dépenses dépassent les revenus au cours de cette période.", + "Spent": "Dépensé", + "Spent:": "Dépensé:", + "Spot savings opportunities": "Identifier les opportunités d'économies", + "Square images only (max": "Images carrées uniquement (max.", + "Standard": "Standard", + "Standard Plan required": "Plan standard requis", + "Start Date": "Date de début", + "Start Day": "Jour de début", + "Start Day of Month": "Jour de début du mois", + "Start My Financial Journey": "Commencer mon parcours financier", + "Start Your Financial Journey": "Commencez votre parcours financier", + "Start managing your money privately. No credit card required.": "Commencez à gérer votre argent en privé. Aucune carte de crédit requise.", + "Start of month": "Début du mois", + "Start with this category and transaction description.": "Commencez par cette catégorie et la description de la transaction.", + "Starting day": "Jour de début", + "Statement": "Extrait", + "Status": "État", + "Stay on Track": "Restez sur le chemin", + "Step 1: Export from your bank": "Étape 1 : Exporter depuis votre banque", + "Step 2: Upload to Whisper Money": "Étape 2 : Télécharger sur Whisper Money", + "Step 3: Review and confirm": "Étape 3 : Vérifiez et confirmez", + "Still interested in Whisper Money?": "Toujours intéressé par Whisper Money ?", + "Still want to try Whisper Money?": "Vous voulez toujours essayer Whisper Money ?", + "Stocks, ETFs, and portfolios": "Actions, ETF et portefeuilles", + "Storage Preference": "Préférence de stockage", + "Strict access controls and authentication mechanisms protect against unauthorized access": "Des contrôles d'accès stricts et des mécanismes d'authentification protègent contre les accès non autorisés", + "Strong": "Fort", + "Subscription fees are billed in advance on a recurring basis until cancelled": "Les frais d'abonnement sont facturés à l'avance de manière récurrente jusqu'à annulation.", + "Subscription fees are billed in advance on a\\n recurring basis until cancelled": "Les frais d'abonnement sont facturés à l'avance de manière récurrente jusqu'à annulation.", + "Supported formats": "Formats pris en charge", + "Supports CSV, XLS, and XLSX files": "Prend en charge les fichiers CSV, XLS et XLSX", + "Swiss Franc": "franc suisse", + "Switch to daily view": "Passer à la vue quotidienne", + "Switch to monthly view": "Passer à la vue mensuelle", + "Sync Now": "Synchroniser maintenant", + "Sync now": "Synchronisez maintenant", + "Sync transactions and balances automatically. Forget about manually importing CSVs from your bank.": "Synchronisez automatiquement les transactions et les soldes. Oubliez l’importation manuelle de CSV depuis votre banque.", + "Sync your encrypted financial data across multiple devices via cloud storage": "Synchronisez vos données financières cryptées sur plusieurs appareils via le stockage cloud", + "Sync your encrypted financial data across\\n multiple devices via cloud storage": "Synchronisez vos données financières cryptées sur plusieurs appareils via le stockage cloud", + "Syncing": "Synchronisation", + "Syncing balances…": "Synchronisation des soldes…", + "Syncing transactions and balances…": "Synchronisation des transactions et des soldes…", + "System": "Système", + "Take control of your finances with privacy-first money tracking. Let's set up your account in just a few minutes.": "Prenez le contrôle de vos finances grâce au suivi de l'argent privé. Nous créerons votre compte dans quelques minutes.", + "Tap": "Touche", + "Tap the": "Touchez le bouton", + "Teaching the robots to count...": "Apprendre aux robots à compter...", + "Technical Information:": "Informations techniques :", + "Terms of Service": "Conditions d'utilisation", + "Terms of Service - Whisper Money": "Conditions d'utilisation - Whisper Money", + "Terms of service for Whisper Money. Review the rules and regulations for using our platform.": "Conditions d'utilisation de Whisper Money. Consultez les règles et réglementations d’utilisation de notre plateforme.", + "Terms of service for Whisper Money. Review the rules and regulations for using our secure personal finance platform.": "Conditions d'utilisation de Whisper Money. Consultez les règles et réglementations d’utilisation de notre plateforme sécurisée de finances personnelles.", + "Thanks again for being part of this journey!": "Merci encore d'avoir fait partie de ce voyage !", + "Thanks for being interested in what we're building!": "Merci de vous intéresser à ce que nous construisons !", + "Thanks for being one of the first.": "Merci d'être parmi les premiers.", + "Thanks for being part of Whisper Money. It really means a lot.": "Merci de faire partie de Whisper Money. Cela signifie vraiment beaucoup.", + "Thanks for being part of this journey with me!": "Merci de faire partie de ce voyage avec moi!", + "Thanks for being part of this journey with us!": "Merci de faire partie de ce voyage avec nous!", + "Thanks for giving Whisper Money a try!": "Merci d'avoir essayé Whisper Money !", + "Thanks for giving Whisper Money a try. It means a lot to me.": "Merci d'avoir essayé Whisper Money. Cela signifie beaucoup pour moi.", + "Thanks for giving Whisper Money a try. It means a lot to us.": "Merci d'avoir donné une chance à Whisper Money. Cela signifie beaucoup pour nous.", + "Thanks for signing up — I just need you to verify your email address to get started.": "Merci pour votre inscription. J'ai juste besoin que vous vérifiiez votre adresse e-mail pour commencer.", + "Thanks for signing up — we just need you to verify your email address to get started.": "Merci pour votre inscription. Nous avons juste besoin que vous vérifiiez votre adresse e-mail pour commencer.", + "Thanks for spreading the word.": "Merci d'avoir fait passer le mot.", + "Thanks for spreading the word. It means everything to us.": "Merci d'avoir fait passer le mot. Cela signifie tout pour nous.", + "The Whisper Money name and logo are trademarks of Whisper Money. You may not use these trademarks without our prior written consent.": "Le nom et le logo Whisper Money sont des marques déposées de Whisper Money. Vous ne pouvez pas utiliser ces marques sans notre accord écrit préalable.", + "The Whisper Money name and logo are trademarks\\n of Whisper Money. You may not use these\\n trademarks without our prior written consent.": "Le nom et le logo Whisper Money sont des marques déposées de Whisper Money. Vous ne pouvez pas utiliser ces marques sans notre accord écrit préalable.", + "The Whisper Money platform, including its software, design, text, graphics, logos, and other content (excluding your personal data), is owned by Whisper Money and protected by copyright, trademark, and other intellectual property laws. You may not copy, modify, distribute, sell, or lease any part of our service or software without our explicit written permission.": "La plateforme Whisper Money, y compris ses logiciels, sa conception, ses textes, ses graphiques, ses logos et tout autre contenu (à l'exclusion de vos données personnelles), est la propriété de Whisper Money et est protégée par les droits d'auteur, les marques commerciales et autres lois sur la propriété intellectuelle. Vous ne pouvez pas copier, modifier, distribuer, vendre ou louer une quelconque partie de notre service ou logiciel sans notre autorisation écrite expresse.", + "The Whisper Money platform, including its\\n software, design, text, graphics, logos, and\\n other content (excluding your personal data), is\\n owned by Whisper Money and protected by\\n copyright, trademark, and other intellectual\\n property laws. You may not copy, modify,\\n distribute, sell, or lease any part of our\\n service or software without our explicit written\\n permission.": "La plateforme Whisper Money, y compris ses logiciels, sa conception, ses textes, ses graphiques, ses logos et tout autre contenu (à l'exclusion de vos données personnelles), est la propriété de Whisper Money et est protégée par les droits d'auteur, les marques commerciales et autres lois sur la propriété intellectuelle. Vous ne pouvez pas copier, modifier, distribuer, vendre ou louer une quelconque partie de notre service ou logiciel sans notre autorisation écrite expresse.", + "The automation rules save me so much time. And knowing my data is private? Priceless.": "Les règles d'automatisation me font gagner beaucoup de temps. Et sachez que mes données sont privées ? C'est inestimable.", + "The budgeting features are intuitive and the dark mode is gorgeous. Best finance app I've used.": "Les fonctionnalités économiques sont intuitives et le mode sombre est magnifique. La meilleure application financière que j'ai jamais utilisée.", + "The demo account cannot be deleted.": "Le compte démo ne peut pas être supprimé.", + "The good news? You can do exactly the same thing — share your personal link and jump **10 positions forward** for every person who joins through it.": "La bonne nouvelle ? Vous pouvez faire exactement la même chose : partagez votre lien personnel et gagnez **10 positions** pour chaque personne qui le rejoint via celui-ci.", + "The import feature saved me hours. Got all my transactions in seconds.": "La fonction d'importation m'a fait gagner des heures. J'ai reçu toutes mes transactions en quelques secondes.", + "The legal basis for processing your data includes: performance of our contract with you, your consent, our legitimate interests in improving the service, and compliance with legal obligations.": "La base juridique du traitement de vos données comprend : l'exécution de notre contrat avec vous, votre consentement, nos intérêts légitimes à améliorer le service et le respect des obligations légales.", + "The legal basis for processing your data\\n includes: performance of our contract with you,\\n your consent, our legitimate interests in\\n improving the service, and compliance with legal\\n obligations.": "La base juridique du traitement de vos données comprend : l'exécution de notre contrat avec vous, votre consentement, nos intérêts légitimes à améliorer le service et le respect des obligations légales.", + "The most secure personal finance app. Your data is never shared with third parties. Track expenses, create budgets, and manage your money privately.": "L'application de finances personnelles la plus sûre. Vos données ne sont jamais partagées avec des tiers. Suivez vos dépenses, créez des budgets et gérez votre argent en privé.", + "The most secure privacy-first personal finance app. Track expenses, create budgets, and manage your money privately.": "L'application de finances personnelles la plus sécurisée et la plus axée sur la confidentialité. Suivez vos dépenses, créez des budgets et gérez votre argent en privé.", + "The most secure way to understand your finances": "Le moyen le plus sûr de comprendre vos finances", + "The provider is experiencing issues. Please try again later.": "Le fournisseur a des problèmes. Veuillez réessayer plus tard.", + "The rule was saved. Optionally apply it to your existing transactions.": "La règle a été enregistrée. Vous pouvez éventuellement l'appliquer à vos transactions existantes.", + "The selected property cannot be linked.": "La propriété sélectionnée ne peut pas être liée.", + "The selected property is already linked to a loan.": "Le bien sélectionné est déjà lié à un prêt.", + "The verification link is invalid.": "Le lien de vérification n'est pas valide.", + "Theatre, music, cinema": "Théâtre, musique, cinéma", + "There are different account types. Some track transactions, others just track balance over time.": "Il existe différents types de compte. Certains suivent les transactions, d'autres suivent uniquement le solde au fil du temps.", + "These Terms of Service govern your use of the Whisper Money personal finance platform.": "Les présentes conditions d'utilisation régissent votre utilisation de la plateforme de finances personnelles Whisper Money.", + "These Terms of Service govern your use of the\\n Whisper Money personal finance platform.": "Les présentes conditions d'utilisation régissent votre utilisation de la plateforme de finances personnelles Whisper Money.", + "These Terms, together with our Privacy Policy, constitute the entire agreement between you and Whisper Money regarding the use of our service and supersede any prior agreements or understandings, whether written or oral.": "Ces conditions, ainsi que notre politique de confidentialité, constituent l'intégralité de l'accord entre vous et Whisper Money concernant l'utilisation de notre service et remplacent tout accord ou accord antérieur, qu'il soit écrit ou oral.", + "These Terms, together with our Privacy Policy,\\n constitute the entire agreement between you and\\n Whisper Money regarding the use of our service\\n and supersede any prior agreements or\\n understandings, whether written or oral.": "Ces conditions, ainsi que notre politique de confidentialité, constituent l'intégralité de l'accord entre vous et Whisper Money concernant l'utilisation de notre service et remplacent tout accord ou accord antérieur, qu'il soit écrit ou oral.", + "This account tracks balance changes over time instead of individual transactions.": "Ce compte suit les changements de solde au fil du temps plutôt que les transactions individuelles.", + "This account type is for balance tracking only and doesn't support transactions.": "Ce type de compte est uniquement destiné au suivi du solde et ne prend pas en charge les transactions.", + "This account type is for balance tracking only and\\n doesn't support transactions.": "Ce type de compte est uniquement destiné au suivi du solde et ne prend pas en charge les transactions.", + "This action cannot be undone.": "Cette action ne peut pas être annulée.", + "This action cannot be undone. To confirm, type": "Cette action ne peut pas être annulée. Pour confirmer, tapez", + "This action is irreversible. All transactions in this account will also be permanently deleted.": "Cette action est irréversible. Toutes les transactions sur ce compte seront également définitivement supprimées.", + "This code won't last forever, but more importantly, your support means the world to me. As a solo founder, every subscriber helps me continue building something I'm passionate about.": "Ce code ne durera pas éternellement, mais le plus important est que votre soutien compte beaucoup pour moi. En tant que fondateur solo, chaque abonné m'aide à continuer à construire quelque chose qui me passionne.", + "This code won't last forever, but more importantly, your support means the world to us. As the founders, every subscriber helps us continue building something we're passionate about.": "Ce code ne durera pas éternellement, mais le plus important est que votre soutien compte beaucoup pour nous. En tant que fondateurs, chaque abonné nous aide à continuer à construire quelque chose qui nous passionne.", + "This connection has :count associated account(s). What would you like to do with them?": "Cette connexion est associée à :count compte(s). Qu’aimeriez-vous faire avec eux ?", + "This field is required.": "Ce champ est obligatoire.", + "This gives you full access to all Whisper Money features:": "Cela vous donne un accès complet à toutes les fonctionnalités de Whisper Money :", + "This is a secure area of the application. Please confirm your password before continuing.": "Il s'agit d'une zone sécurisée de l'application. Veuillez confirmer votre mot de passe avant de continuer.", + "This is your exclusive invitation to get full access to everything:": "Ceci est votre invitation exclusive à obtenir un accès complet à tout :", + "This month's income and expenses": "Revenus et dépenses pour ce mois", + "This password will encrypt all your financial data. Make it strong and memorable — we can't recover it for you.": "Ce mot de passe cryptera toutes vos données financières. Rendez-le fort et mémorable : nous ne pouvons pas le récupérer pour vous.", + "This setting follows the selected category type and cannot be changed here.": "Ce paramètre suit le type de catégorie sélectionné et ne peut pas être modifié ici.", + "This transaction was imported from a file. The description cannot be modified.": "Cette transaction a été importée à partir d'un fichier. La description ne peut pas être modifiée.", + "This transaction was imported from a\\n file. The description cannot be\\n modified.": "Cette transaction a été importée à partir d'un fichier. La description ne peut pas être modifiée.", + "This transfer category stays out of the Sankey money flow chart.": "Cette catégorie de transfert est exclue du diagramme de flux monétaire Sankey.", + "This transfer category stays out of the cashflow chart.": "Cette catégorie de transfert est exclue du graphique des flux de trésorerie.", + "This will only take a moment.": "Cela ne prendra qu'un instant.", + "This will remove your encryption key from this browser session. You'll need to enter your password again to unlock encrypted content.": "Cela supprimera votre clé de cryptage de cette session de navigateur. Vous devrez saisir à nouveau votre mot de passe pour déverrouiller le contenu crypté.", + "This will revoke access to your bank account data from :bank.": "Cela révoquera l’accès à vos détails de compte :bank.", + "This will take less than 5 minutes": "Cela prendra moins de 5 minutes", + "This will update the allocated amount for the current and future periods.": "Cela mettra à jour la valeur attribuée pour la période actuelle et future.", + "This will update the allocated amount for the\\n current and future periods.": "Cela mettra à jour le montant alloué pour les périodes actuelles et futures.", + "This would mean sharing your data with third parties": "Cela signifierait partager vos données avec des tiers", + "Title": "Qualification", + "To": "Pour", + "To authenticate your access and protect your account security": "Pour authentifier votre accès et protéger la sécurité de votre compte", + "To authenticate your access and protect your\\n account security": "Pour authentifier votre accès et protéger la sécurité de votre compte", + "To comply with legal obligations and enforce our terms": "Pour respecter les obligations légales et faire respecter nos conditions", + "To comply with legal obligations and enforce\\n our terms": "Pour respecter les obligations légales et faire respecter nos conditions", + "To continue, you need to categorize at least :count transactions.": "Pour continuer, vous devez catégoriser au moins :count transactions.", + "To enable cloud synchronization of your encrypted financial data across devices": "Pour activer la synchronisation cloud de vos données financières cryptées entre appareils", + "To enable cloud synchronization of your\\n encrypted financial data across devices": "Pour activer la synchronisation cloud de vos données financières cryptées entre appareils", + "To exercise any of these rights, please contact us at victor@whisper.money. We will respond to your request within 30 days.": "Pour exercer l'un de ces droits, veuillez nous contacter à victor@whisper.money. Nous répondrons à votre demande dans un délai de 30 jours.", + "To exercise any of these rights, please contact\\n us at victor@whisper.money. We will respond to\\n your request within 30 days.": "Pour exercer l'un de ces droits, veuillez nous contacter à victor@whisper.money. Nous répondrons à votre demande dans un délai de 30 jours.", + "To fix this, generate a new API token from your :provider account and update it in your connection settings.": "Pour résoudre ce problème, générez un nouveau jeton API depuis votre compte :provider et mettez-le à jour dans vos paramètres de connexion.", + "To improve and optimize our service based on usage patterns": "Pour améliorer et optimiser notre service en fonction des modèles d'utilisation", + "To improve and optimize our service based on\\n usage patterns": "Pour améliorer et optimiser notre service en fonction des modèles d'utilisation", + "To process payments for premium features or subscriptions": "Pour traiter les paiements pour les fonctionnalités ou les abonnements premium", + "To process payments for premium features or\\n subscriptions": "Pour traiter les paiements pour les fonctionnalités ou les abonnements premium", + "To process subscription payments and transactions. These processors have access only to the information necessary to perform their functions and are obligated to protect your data": "Pour traiter les paiements et les transactions d'abonnement. Ces sous-traitants ont accès uniquement aux informations nécessaires à l'exercice de leurs fonctions et sont tenus de protéger vos données.", + "To send transactional emails, password resets, and service notifications": "Pour envoyer des e-mails transactionnels, des réinitialisations de mot de passe et des notifications de service", + "To send you service-related notifications, updates, and security alerts via email": "Pour vous envoyer des notifications, mises à jour et alertes de sécurité liées au service par e-mail", + "To send you service-related notifications,\\n updates, and security alerts via email": "Pour vous envoyer des notifications, mises à jour et alertes de sécurité liées au service par e-mail", + "To\\n process subscription payments and\\n transactions. These processors have access\\n only to the information necessary to perform\\n their functions and are obligated to protect\\n your data": "Pour traiter les paiements des abonnements et des transactions. Ces sous-traitants ont accès uniquement aux informations nécessaires à l'exercice de leurs fonctions et sont tenus de protéger vos données.", + "To\\n send transactional emails, password resets,\\n and service notifications": "Pour envoyer des e-mails transactionnels, des réinitialisations de mot de passe et des notifications de service", + "Today": "Aujourd'hui", + "Toggle theme": "changer de thème", + "Top Spending Categories": "Principales catégories de dépenses", + "Top spending categories": "Principales catégories de dépenses", + "Total": "Total", + "Total money you put into this account. Used to calculate gains/losses.": "Argent total que vous avez mis sur ce compte. Utilisé pour calculer le profit/la perte.", + "Track Progress": "Suivez les progrès", + "Track all your finances in one place \\u2014 checking,\\n savings, credit cards, investments, and more.": "Suivez toutes vos finances en un seul endroit : comptes chèques, épargne, cartes de crédit, investissements et plus encore.", + "Track all your finances in one place — checking, savings, credit cards, investments, and more.": "Suivez toutes vos finances en un seul endroit : compte courant, épargne, cartes de crédit, investissements et plus encore.", + "Track credit card spending": "Suivre les dépenses par carte de crédit", + "Track money entering your available cash without counting it as income.": "Suivez l’argent qui entre dans votre solde disponible sans le compter comme revenu.", + "Track money leaving your available cash, like investments or savings transfers.": "Suivez l'argent sortant de votre solde disponible, comme les investissements ou les transferts vers l'épargne.", + "Track your budget progress": "Suivez l'évolution de votre budget", + "Track your income, expenses, and savings": "Suivez vos revenus, dépenses et économies", + "Track your property market value over time. Transactions are not supported.": "Suivez la valeur marchande de votre propriété au fil du temps. Les transactions ne sont pas prises en charge.", + "Track your spending with flexible budgets": "Suivez vos dépenses avec des budgets flexibles", + "Tracked Inflows": "Entrées consécutives", + "Tracked Outflows": "Départs consécutifs", + "Tracked transfers appear in the money flow Sankey chart. They are not counted as income or expenses.": "Les transferts consécutifs apparaissent sur le diagramme des flux monétaires Sankey. Ils ne sont pas comptés comme revenus ou dépenses.", + "Tracked transfers appear only in the monthly cashflow trend. They are not counted as income, expenses, or shown in the money flow Sankey.": "Les transferts suivis n'apparaissent que dans l'évolution mensuelle des flux de trésorerie. Ils ne comptent pas comme revenus ou dépenses, et ne sont pas non plus indiqués sur le Money Flow Sankey.", + "Tracking": "Suivi", + "Tracking spending for": "Suivi des dépenses pour", + "Tracking:": "Suivi:", + "Transaction": "Transaction", + "Transaction Date": "Date de transaction", + "Transaction categorized": "Transaction catégorisée", + "Transaction created successfully": "Transaction créée avec succès", + "Transaction created, but failed to update balance": "Transaction créée, mais le solde n'a pas pu être mis à jour", + "Transaction description": "Description", + "Transaction details, budgets, categories, and other financial information you manually enter into the application": "Détails des transactions, budgets, catégories et autres informations financières que vous saisissez manuellement dans l'application", + "Transaction updated successfully": "Transaction mise à jour avec succès", + "Transaction\\n details, budgets, categories, and other\\n financial information you manually enter\\n into the application": "Détails des transactions, budgets, catégories et autres informations financières que vous saisissez manuellement dans l'application", + "Transactions": "Transactions", + "Transactions + Balance": "Opérations + Solde", + "Transactions in the deleted categories will become uncategorized.": "Les transactions des catégories supprimées ne seront pas catégorisées.", + "Transactions in this category will not be counted in top expenses or income. Transfer categories are mainly used for transactions between accounts.": "Les transactions de cette catégorie ne seront pas comptées parmi vos principales dépenses ou revenus. Les catégories de transfert sont principalement utilisées pour les transactions entre comptes.", + "Transactions in this category will\\n not be counted in top expenses or\\n income. Transfer categories are\\n mainly used for transactions between\\n accounts.": "Les transactions de cette catégorie ne seront pas comptées parmi vos principales dépenses ou revenus. Les catégories de transfert sont principalement utilisées pour les transactions entre comptes.", + "Transfer": "Transfert", + "Transfer categories are excluded from income, expenses, and top spending categories. Choose whether to show them in the Sankey money flow chart.": "Les catégories de transfert sont exclues des catégories de revenus, de dépenses et des principales dépenses. Choisissez si vous souhaitez les afficher sur le graphique Sankey des flux monétaires.", + "Transfer categories are excluded from income, expenses, and top spending categories. Choose whether to show them in the cashflow chart.": "Les catégories de transfert sont exclues des catégories de revenus, de dépenses et des principales dépenses. Choisissez si vous souhaitez les afficher sur le graphique des flux de trésorerie.", + "Transfer categories stay out of income and expense totals, but you can still track them in the money flow chart.": "Les catégories de transfert sont exclues des totaux de revenus et de dépenses, mais vous pouvez toujours les suivre dans le graphique des flux monétaires.", + "Transfer categories stay out of income and expense totals, but you can still track them in the monthly chart.": "Les catégories de transfert sont exclues des totaux des revenus et des dépenses, mais vous pouvez toujours les suivre sur le graphique mensuel.", + "Transfers (Between accounts, Savings)": "Virements (entre comptes, épargne)", + "Transportation": "Transport", + "Transportation (Fuel, Public Transit, Parking)": "Transports (carburant, transports en commun, stationnement)", + "Trusted by people who value their privacy": "Approuvé par les personnes qui accordent de l'importance à leur vie privée", + "Trusted by thousands of users": "Approuvé par des milliers d'utilisateurs", + "Two-Factor Authentication": "Authentification en deux passes", + "Two-factor authentication settings cannot be changed on the demo account.": "Les paramètres d'authentification à deux facteurs ne peuvent pas être modifiés sur le compte démo.", + "Two-factor authentication settings cannot be\\n changed on the demo account.": "Les paramètres d'authentification à deux facteurs ne peuvent pas être modifiés sur le compte démo.", + "Type": "Gars", + "Type \"delete all\" to confirm:": "Tapez \"supprimer tout\" pour confirmer :", + "Type :word to confirm.": "Tapez :mot pour confirmer.", + "Type DELETE": "Tapez SUPPRIMER", + "Type at least 3 characters to search": "Entrez au moins 3 caractères pour rechercher", + "US Dollar": "dollar américain", + "Uncategorized": "Non classé", + "Understand Your Finances": "Comprenez vos finances", + "Understand your finances and make better decisions without the friction. Track expenses, create budgets, and achieve your goals\\u2014all in one place.": "Comprenez vos finances et prenez de meilleures décisions sans complications. Suivez vos dépenses, créez des budgets et atteignez vos objectifs, le tout au même endroit.", + "Understand your finances and make better decisions without the friction. Track expenses, create budgets, and achieve your goals—all in one place.": "Comprenez vos finances pour prendre de meilleures décisions sans friction. Suivez vos dépenses, créez des budgets et atteignez vos objectifs, le tout au même endroit.", + "Understand your spending with beautiful charts and reports.": "Comprenez vos dépenses avec de superbes graphiques et rapports.", + "Understanding Categories": "Comprendre les catégories", + "Unit": "Unité", + "Unknown Bank": "banque inconnue", + "Unknown Expense": "Dépense inconnue", + "Unknown Income": "Revenu inconnu", + "Unknown error": "Erreur inconnue", + "Unlimited Everything": "Aucune limite en tout", + "Unlimited accounts": "Comptes illimités", + "Unlimited transaction imports": "Importations de transactions illimitées", + "Unlimited transactions": "Transactions illimitées", + "Unlock": "Ouvrir", + "Unlock Encrypted Data": "Déverrouillez les données cryptées", + "Unlock all features and take full control of your finances.": "Débloquez toutes les fonctionnalités et prenez le contrôle total de vos finances.", + "Unlock encryption key": "Déverrouiller la clé de cryptage", + "Unlock encryption to add transactions": "Déverrouiller le cryptage créer une transaction", + "Unlock encryption to import transactions": "Débloquez le cryptage pour importer des transactions", + "Unused budget will carry over to the next period.": "Le budget non utilisé sera reporté à la période suivante.", + "Update": "Mise à jour", + "Update Credentials": "Mettre à jour les informations d'identification", + "Update account balance": "Mettre à jour le solde du compte", + "Update balance": "Mettre à jour le solde", + "Update balances periodically to track growth": "Mettre à jour périodiquement les bilans pour suivre la croissance", + "Update categories automatically": "Mettre à jour automatiquement les catégories", + "Update market value": "Mettre à jour la valeur marchande", + "Update owed amount": "Mettre à jour le montant dû", + "Update password": "Mettre à jour le mot de passe", + "Update payment": "Mettre à jour le paiement", + "Update the account information.": "Mettez à jour les informations du compte.", + "Update the balance record.": "Met à jour le bilan.", + "Update the category and notes for this transaction.": "Mettez à jour la catégorie et les notes pour cette transaction.", + "Update the category information.": "Mettre à jour les informations sur la catégorie.", + "Update the current balance of the affected manual accounts to reflect this change.": "Met à jour le solde actuel des comptes manuels concernés pour refléter ce changement.", + "Update the current balance of the manual account to reflect this change.": "Met à jour le solde manuel actuel du compte pour refléter ce changement.", + "Update the label information.": "Met à jour les informations de l’étiquette.", + "Update the owed amount record.": "Mettez à jour l’enregistrement du montant dû.", + "Update the rule to automatically categorize transactions and add labels.": "Mettez à jour la règle pour catégoriser automatiquement les transactions et ajouter des balises.", + "Update the rule to automatically categorize transactions.": "Mettez à jour la règle pour catégoriser automatiquement les transactions.", + "Update your account's appearance settings": "Mettez à jour les paramètres d'apparence de votre compte", + "Update your budget settings. To change the allocated amount or tracking, use the budget page directly.": "Mettez à jour vos paramètres budgétaires. Pour modifier la valeur attribuée ou le suivi, utilisez directement la page de devis.", + "Update your budget settings. To change the allocated\\n amount or tracking, use the budget page directly.": "Mettez à jour vos paramètres budgétaires. Pour modifier le montant alloué ou le suivi, utilisez directement la page budget.", + "Update your name and email address": "Mettez à jour votre nom et votre adresse e-mail", + "Updated :count transactions": "Mise à jour : compter les transactions", + "Updating transactions...": "Mise à jour des transactions...", + "Updating...": "Mise à jour...", + "Upgrade to Standard Plan": "Passer au forfait standard", + "Upload File": "Télécharger le fichier", + "Upon termination, we will delete your personal data in accordance with our Privacy Policy and applicable law, typically within 30 days.": "En cas d'annulation, nous supprimerons vos données personnelles conformément à notre politique de confidentialité et à la loi applicable, généralement dans un délai de 30 jours.", + "Upon termination, we will delete your personal\\n data in accordance with our Privacy Policy and\\n applicable law, typically within 30 days.": "En cas de résiliation, nous supprimerons vos données personnelles conformément à notre politique de confidentialité et à la loi applicable, généralement dans un délai de 30 jours.", + "Uruguayan Peso": "peso uruguayen", + "Usage Information:": "Informations d'utilisation :", + "Use Defaults": "Utiliser les valeurs par défaut", + "Use a negative value for expenses (e.g. -21.99) and a positive value for income.": "Utilisez une valeur négative pour les dépenses (par exemple -21,99) et une valeur positive pour les revenus.", + "Use a strong password (minimum 12 characters). This password will encrypt your data.": "Utilisez un mot de passe fort (minimum 12 caractères). Ce mot de passe cryptera vos données.", + "Use a strong password (minimum 12 characters). This\\n password will encrypt your data.": "Utilisez un mot de passe fort (minimum 12 caractères). Ce mot de passe cryptera vos données.", + "Use a view-only key.": "Utilisez une clé en lecture seule.", + "Use code **:code** to get **80% off** your first period (monthly or yearly!)": "Utilisez le code **:code** pour bénéficier de **80 % de réduction** sur vos premières règles (mensuelles ou annuelles !)", + "Use code **CONTINUE50** to get **50% off** all current and future payments - works for both monthly and yearly subscriptions.": "Utilisez le code **CONTINUE50** pour obtenir **50 % de réduction** sur tous les paiements actuels et futurs, fonctionne pour les abonnements mensuels et annuels.", + "Use the balance on the latest transaction date as a reference to compute balances for older dates.": "Utilisez le solde à partir de la date de la dernière transaction comme référence pour calculer les soldes des dates précédentes.", + "Use the service only for lawful purposes and in compliance with all applicable laws": "Utilisez le Service uniquement à des fins légales et dans le respect de toutes les lois applicables", + "Use the service only for lawful purposes and\\n in compliance with all applicable laws": "Utilisez le Service uniquement à des fins légales et dans le respect de toutes les lois applicables", + "User account": "Compte utilisateur", + "Vacation": "Vacances", + "Value": "Valeur", + "Venezuelan Bolívar": "Bolivar vénézuélien", + "Verify Email Address": "Vérifier l'e-mail", + "Verify Your Email - Whisper Money": "Vérifiez votre e-mail - Whisper Money", + "Verify email": "Vérifier l'e-mail", + "Verify your email, :name!": "Vérifiez votre courrier électronique, :nom !", + "Version:": "Version:", + "View Details": "Voir les détails", + "View Transactions": "Afficher les transactions", + "View and manage balance records for this account.": "Afficher et gérer les enregistrements de solde pour ce compte.", + "View and manage owed amount records for this account.": "Afficher et gérer les enregistrements du montant dû pour ce compte.", + "View and manage your bank accounts": "Consultez et gérez vos comptes bancaires", + "View and manage your transactions": "Visualisez et gérez vos transactions", + "View balance evolution over time": "Voir l'évolution du bilan au fil du temps", + "View details": "Voir les détails", + "View in Transactions": "Afficher dans les transactions", + "Visual Reports": "Rapports visuels", + "Visual insights": "Analyse visuelle", + "Visual insights & reports": "Analyses visuelles et rapports", + "Visualize your money flow over time. See income vs. expenses and spot trends before they become problems.": "Visualisez le flux de votre argent au fil du temps. Visualisez les revenus par rapport aux dépenses et identifiez les tendances avant qu’elles ne deviennent des problèmes.", + "Víctor & Álvaro": "Victor et Alvaro", + "Want to connect your bank directly?": "Vous souhaitez connecter directement votre banque ?", + "Want to continue for free? Disconnect all bank connections in Settings.": "Voulez-vous continuer gratuitement ? Déconnectez toutes les connexions bancaires dans Paramètres.", + "Warning": "Avertissement", + "We Can't Read It": "Nous ne pouvons pas le lire", + "We also support Open Banking connections so your transactions sync automatically. Head to Settings > Connections to link your bank directly.": "Nous prenons également en charge les connexions Open Banking afin que vos transactions se synchronisent automatiquement. Accédez à Paramètres > Connexions pour associer directement votre banque.", + "We are processing your payment...": "Nous traitons votre paiement...", + "We built Whisper Money because we were tired of finance apps that mine your data and sell your habits to third parties. We wanted something simple, private, and actually useful.": "Nous avons créé Whisper Money parce que nous en avions assez des applications financières qui exploitent vos données et vendent vos habitudes à des tiers. Nous voulions quelque chose de simple, privé et vraiment utile.", + "We built Whisper Money because we were tired of giving our financial data to big companies who use it for who knows what. Whisper Money **never shares your data with third parties** - you are always the owner of your financial information.": "Nous avons créé Whisper Money parce que nous en avions assez de donner nos données financières aux grandes entreprises qui les utilisent pour on ne sait quoi. Whisper Money **ne partage jamais vos données avec des tiers** : vous êtes toujours propriétaire de vos informations financières.", + "We built Whisper Money to help you truly understand your finances — without giving up your privacy to do it. Here's what you can look forward to:": "Nous avons créé Whisper Money pour vous aider à vraiment comprendre vos finances, sans sacrifier votre vie privée pour ce faire. Voici à quoi vous pouvez vous attendre :", + "We collect the following types of personal information:": "Nous collectons les types d’informations personnelles suivants :", + "We collect the following types of personal\\n information:": "Nous collectons les types d’informations personnelles suivants :", + "We could not collect your subscription payment.": "Nous n'avons pas pu encaisser le paiement de votre abonnement.", + "We disconnected your bank connection to keep your account on free access. Automatic bank sync is now paused, but all your accounts, transactions, and balances remain in Whisper Money.|We disconnected your :count bank connections to keep your account on free access. Automatic bank sync is now paused, but all your accounts, transactions, and balances remain in Whisper Money.": "Nous déconnectons votre connexion bancaire pour conserver votre compte en accès libre. La synchronisation bancaire automatique est désormais suspendue, mais tous vos comptes, transactions et soldes restent dans Whisper Money.|Nous déconnectons vos connexions bancaires :count pour garder votre compte libre d'accès. La synchronisation bancaire automatique est désormais suspendue, mais tous vos comptes, transactions et soldes restent dans Whisper Money.", + "We do not sell, trade, or rent your personal information to third parties for marketing purposes.": "Nous ne vendons, n'échangeons ni ne louons vos informations personnelles à des tiers à des fins de marketing.", + "We do not sell, trade, or rent your personal\\n information to third parties for marketing\\n purposes.": "Nous ne vendons, n'échangeons ni ne louons vos informations personnelles à des tiers à des fins de marketing.", + "We don't need direct access to your bank accounts. No sharing credentials, no third-party integrations, no security risks. You stay in complete control of your financial data.": "Nous n'avons pas besoin d'un accès direct à vos comptes bancaires. Pas de partage d'informations d'identification, pas d'intégrations tierces, pas de risques de sécurité. Vous gardez le contrôle total de vos données financières.", + "We don't sell, trade, or give away your personal information": "Nous ne vendons, n'échangeons ni ne donnons vos informations personnelles", + "We don't track, sell, or share your data. Ever.": "Nous ne suivons, ne vendons ni ne partageons vos données. Jamais.", + "We encourage you to contact us directly at victor@whisper.money to resolve any disputes before initiating legal proceedings.": "Nous vous encourageons à nous contacter directement à victor@whisper.money pour résoudre tout litige avant d'engager une procédure judiciaire.", + "We encourage you to contact us directly at\\n victor@whisper.money to resolve any disputes\\n before initiating legal proceedings.": "Nous vous encourageons à nous contacter directement à victor@whisper.money pour résoudre tout litige avant d'engager une procédure judiciaire.", + "We implement robust security measures to protect your personal information:": "Nous mettons en œuvre des mesures de sécurité robustes pour protéger vos informations personnelles :", + "We implement robust security measures to protect\\n your personal information:": "Nous mettons en œuvre des mesures de sécurité robustes pour protéger vos informations personnelles :", + "We just synced new transactions from your connected banks:": "Nous venons de synchroniser les nouvelles transactions de vos banques connectées :", + "We know setting up a new app can be overwhelming, and we want to make sure you have everything you need to get started.": "Nous savons que la configuration d'une nouvelle application peut être une tâche ardue et nous voulons nous assurer que vous disposez de tout ce dont vous avez besoin pour commencer.", + "We may update this Privacy Policy from time to time to reflect changes in our practices or for legal, operational, or regulatory reasons. When we make material changes, we will notify you by email and/or by posting a notice on our website at least 30 days before the changes take effect. Your continued use of the service after changes become effective constitutes acceptance of the updated policy.": "Nous pouvons mettre à jour cette politique de confidentialité de temps à autre pour refléter des changements dans nos pratiques ou pour des raisons juridiques, opérationnelles ou réglementaires. Lorsque nous apportons des modifications importantes, nous vous en informerons par courrier électronique et/ou en publiant un avis sur notre site Web au moins 30 jours avant l'entrée en vigueur des modifications. Votre utilisation continue du Service après l'entrée en vigueur des modifications constitue l'acceptation de la politique mise à jour.", + "We may update this Privacy Policy from time to\\n time to reflect changes in our practices or for\\n legal, operational, or regulatory reasons. When\\n we make material changes, we will notify you by\\n email and/or by posting a notice on our website\\n at least 30 days before the changes take effect.\\n Your continued use of the service after changes\\n become effective constitutes acceptance of the\\n updated policy.": "Nous pouvons mettre à jour cette politique de confidentialité de temps à autre pour refléter des changements dans nos pratiques ou pour des raisons juridiques, opérationnelles ou réglementaires. Lorsque nous apportons des modifications importantes, nous vous en informerons par courrier électronique et/ou en publiant un avis sur notre site Web au moins 30 jours avant l'entrée en vigueur des modifications. Votre utilisation continue du Service après l'entrée en vigueur des modifications constitue l'acceptation de la politique mise à jour.", + "We never see your transaction descriptions": "Nous ne voyons jamais les descriptions de vos transactions", + "We process your personal data for the following purposes:": "Nous traitons vos données personnelles aux fins suivantes :", + "We process your personal data for the following\\n purposes:": "Nous traitons vos données personnelles aux fins suivantes :", + "We regularly review and update our security practices": "Nous révisons et mettons régulièrement à jour nos pratiques de sécurité", + "We reserve the right to change our pricing with 30 days advance notice to subscribers": "Nous nous réservons le droit de modifier nos prix avec un préavis de 30 jours aux abonnés.", + "We reserve the right to change our pricing\\n with 30 days advance notice to subscribers": "Nous nous réservons le droit de modifier nos prix avec un préavis de 30 jours aux abonnés.", + "We reserve the right to modify, suspend, or discontinue any part of the service at any time, with or without notice. We will not be liable to you or any third party for any modification, suspension, or discontinuation of the service.": "Nous nous réservons le droit de modifier, suspendre ou interrompre toute partie du service à tout moment, avec ou sans préavis. Nous ne serons pas responsables envers vous ou tout tiers pour toute modification, suspension ou interruption du service.", + "We reserve the right to modify, suspend, or\\n discontinue any part of the service at any time,\\n with or without notice. We will not be liable to\\n you or any third party for any modification,\\n suspension, or discontinuation of the service.": "Nous nous réservons le droit de modifier, suspendre ou interrompre toute partie du service à tout moment, avec ou sans préavis. Nous ne serons pas responsables envers vous ou tout tiers pour toute modification, suspension ou interruption du service.", + "We see:": "On voit :", + "We sent a confirmation link to :email. Click it to reserve your waitlist spot and unlock your referral link.": "Nous vous envoyons un lien de confirmation à :email. Cliquez pour réserver votre place sur la liste d'attente et débloquer votre lien de parrainage.", + "We sent you an invitation to Whisper Money, but it looks like you have not created your account yet.": "Nous vous avons envoyé une invitation à Whisper Money, mais il semble que vous n'ayez pas encore créé votre compte.", + "We store encrypted data we can't read. Even if our servers were compromised, your data stays secure.": "Nous stockons des données cryptées que nous ne pouvons pas lire. Même si nos serveurs sont compromis, vos données restent sécurisées.", + "We support CSV and XLS files. Most banks allow you to export your transaction history in one of these formats. The import process automatically maps columns and categorizes transactions.": "Nous prenons en charge les fichiers CSV et XLS. La plupart des banques vous permettent d'exporter l'historique des transactions dans l'un de ces formats. Le processus d'importation mappe automatiquement les colonnes et catégorise les transactions.", + "We support CSV imports from most banks. Just export your transactions and upload them - it takes less than a minute. If your bank format is different, just let us know and we can help.": "Nous prenons en charge les importations CSV de la plupart des banques. Exportez simplement vos transactions et téléchargez-les, cela prend moins d’une minute. Si le format de votre banque est différent, faites-le-nous savoir et nous vous aiderons.", + "We support Open Banking connections so your transactions sync automatically. Head to Settings > Connections to get started.": "Nous prenons en charge les connexions Open Banking afin que vos transactions se synchronisent automatiquement. Accédez à Paramètres > Connexions pour commencer.", + "We use essential cookies to maintain your session and ensure the proper functioning of our service. These cookies are necessary for the service to work and cannot be disabled. We do not use tracking cookies or analytics cookies without your explicit consent.": "Nous utilisons des cookies essentiels pour maintenir votre session et assurer le bon fonctionnement de notre service. Ces cookies sont nécessaires au fonctionnement du service et ne peuvent pas être désactivés. Nous n'utilisons pas de cookies de suivi ou d'analyse sans votre consentement explicite.", + "We use essential cookies to maintain your\\n session and ensure the proper functioning of our\\n service. These cookies are necessary for the\\n service to work and cannot be disabled. We do\\n not use tracking cookies or analytics cookies\\n without your explicit consent.": "Nous utilisons des cookies essentiels pour maintenir votre session et assurer le bon fonctionnement de notre service. Ces cookies sont nécessaires au fonctionnement du service et ne peuvent pas être désactivés. Nous n'utilisons pas de cookies de suivi ou d'analyse sans votre consentement explicite.", + "We use the following third-party services to operate our platform:": "Nous utilisons les services tiers suivants pour exploiter notre plateforme :", + "We use the following third-party services to\\n operate our platform:": "Nous utilisons les services tiers suivants pour exploiter notre plateforme :", + "We were unable to sync your :provider connection because your credentials appear to have expired or been revoked.": "Nous n'avons pas pu synchroniser votre connexion avec :provider car vos informations d'identification semblent avoir expiré ou avoir été révoquées.", + "We will retry up to 4 times during the week. You keep access for now, but the subscription will be canceled if all retries fail.": "Nous réessayerons jusqu'à 4 fois au cours de la semaine. Vous conservez l'accès pour le moment, mais votre abonnement sera annulé si toutes les tentatives échouent.", + "We're **Victor and Alvaro**, the founders of Whisper Money. Thanks so much for joining the list — it genuinely means a lot to us.": "Nous sommes **Víctor et Álvaro**, les fondateurs de Whisper Money. Merci beaucoup d'avoir rejoint la liste – cela signifie beaucoup pour nous.", + "We're Victor and Álvaro, the founders of Whisper Money. You signed up a while back to hear about our privacy-first personal finance app, and we're excited to tell you - we're live!": "Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Vous vous êtes inscrit il y a quelque temps pour recevoir des nouvelles de notre application de finances personnelles axée sur la confidentialité, et nous sommes ravis de vous l'annoncer : nous sommes maintenant en ligne !", + "We're Víctor and Álvaro, the founders of Whisper Money. Now Whisper Money is open. As a thank you, your first months are on us.": "Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Vous pouvez maintenant vous inscrire. En guise de remerciement, nous vous avons invité pour les premiers mois.", + "We're Víctor and Álvaro, the founders of Whisper Money. Someone you invited landed in our top 10 — that makes you a Whisper Money founder too.": "Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Une personne que vous avez invitée figure dans le top 10, ce qui fait de vous également un utilisateur de Whisper Money dès le premier jour.", + "We're Víctor and Álvaro, the founders of Whisper Money. You joined the waitlist a while back — thanks for waiting. Whisper Money is open, and we saved a welcome gift for you.": "Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Vous vous êtes inscrit sur la liste d'attente il y a quelque temps – merci d'avoir attendu. Vous pouvez vous inscrire maintenant et nous vous avons réservé un cadeau de bienvenue.", + "We're Víctor and Álvaro, the founders of Whisper Money. You're one of our first 10. That makes you a Whisper Money founder user.": "Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Vous êtes dans le top 10. Cela fait de vous un utilisateur de Whisper Money dès le premier jour.", + "We're looking through your transaction history to find expenses that match this budget. This usually takes a few seconds.": "Nous examinons l'historique de vos transactions pour trouver les dépenses correspondant à ce budget. Cela prend généralement quelques secondes.", + "We're looking through your transaction\\n history to find expenses that match this\\n budget. This usually takes a few seconds.": "Nous recherchons dans votre historique de transactions les dépenses correspondant à ce budget. Cela prend généralement quelques secondes.", + "We're sorry to see you go": "Nous sommes désolés de vous voir partir", + "We're sorry to see you go, :name": "Nous sommes désolés de vous voir partir, :name", + "We're two founders building this because we believe you deserve a finance app that actually respects your privacy. Every subscription helps us keep the lights on and build features you actually want. No investors, no board meetings, just us trying to build something useful and private.": "Nous sommes deux fondateurs et construisons cela parce que nous pensons que vous méritez une application financière qui respecte réellement votre vie privée. Chaque abonnement nous aide à maintenir le projet et à créer les fonctionnalités que vous souhaitez réellement. Pas d'investisseurs, pas de réunions de conseil d'administration, juste nous essayant de construire quelque chose d'utile et de privé.", + "We're working hard to open things up, and we can't wait to share Whisper Money with you.": "Nous travaillons dur pour ouvrir l'accès et nous avons hâte de partager Whisper Money avec vous.", + "We've created a comprehensive set of categories for you. You can customize them now or adjust them later in settings.": "Nous avons créé un ensemble complet de catégories pour vous. Vous pouvez les personnaliser maintenant ou les ajuster plus tard dans les paramètres.", + "Weak": "Faible", + "Weekly": "Hebdomadaire", + "Welcome": "Accueillir", + "Welcome aboard, :name!": "Bienvenue à bord, :name !", + "Welcome to Pro!": "Bienvenue chez Pro !", + "Welcome to Whisper Money - Your Privacy-First Finance App": "Bienvenue sur Whisper Money - Votre application financière avec confidentialité", + "Welcome to Whisper Money, :name!": "Bienvenue sur Whisper Money, :name !", + "Welcome to
Whisper Money": "Bienvenue sur Whisper Money", + "What do you want to do?": "Qu'est-ce que vous voulez faire?", + "What features would make Whisper Money more useful for you?": "Quelles fonctionnalités rendraient Whisper Money le plus utile pour vous ?", + "What file formats are supported for import?": "Quels formats de fichiers sont pris en charge pour l'importation ?", + "What happens after you confirm?": "Que se passe-t-il après confirmation ?", + "What is Whisper Money?": "Qu’est-ce que Whisper Money ?", + "What people are saying": "Ce que disent les gens", + "What should happen to its child categories?": "Que devrait-il arriver à ses catégories filles ?", + "What you get": "Ce que vous obtenez", + "What's more, even if I wanted to use it, I couldn't, since you're the only one who has the key to read the data.": "De plus, même si je voulais les utiliser, je ne pourrais pas, puisque vous êtes le seul à posséder la clé pour lire les données.", + "When I started building Whisper Money, I was frustrated with finance apps that wanted to mine my data or use AI to analyze my spending. I just wanted a simple, private way to track my finances - and I figured others might too.": "Lorsque j'ai commencé à créer Whisper Money, j'étais frustré par les applications financières qui voulaient exploiter mes données ou utiliser l'IA pour analyser mes dépenses. Je voulais juste un moyen simple et privé de suivre mes finances – et je pensais que d'autres le faisaient aussi.", + "When you create an account with Whisper Money, you agree to:": "Lorsque vous créez un compte avec Whisper Money, vous acceptez de :", + "When you create an account with Whisper Money,\\n you agree to:": "En créant un compte avec Whisper Money, vous acceptez de :", + "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "Lorsque vous activez l'authentification à deux facteurs, vous serez invité à saisir un code PIN sécurisé lors de la connexion. Ce code PIN peut être obtenu à partir d'une application compatible TOTP sur votre téléphone.", + "When you enable two-factor authentication, you\\n will be prompted for a secure pin during login.\\n This pin can be retrieved from a TOTP-supported\\n application on your phone.": "Lorsque vous activez l'authentification à deux facteurs, vous serez invité à saisir un code PIN sécurisé lors de la connexion. Ce code PIN peut être obtenu à partir d'une application compatible TOTP sur votre téléphone.", + "Where processing is based on consent, you can withdraw it at any time": "Lorsque le traitement est basé sur le consentement, vous pouvez le retirer à tout moment", + "Where processing is based on consent, you\\n can withdraw it at any time": "Lorsque le traitement est basé sur le consentement, vous pouvez le retirer à tout moment", + "Where your money comes from": "D'où vient votre argent ?", + "Where your money goes": "Où va votre argent ?", + "Whether it's a bug you've found, a feature you'd love to see, or just general thoughts - I want to hear it all. This is my project, and I care deeply about making it work well for you.": "Qu'il s'agisse d'un bug que vous avez trouvé, d'une fonctionnalité que vous aimeriez voir ou simplement de réflexions générales, je veux tout entendre. C'est mon projet et je tiens vraiment à ce qu'il fonctionne bien pour vous.", + "Whether it's a bug you've found, a feature you'd love to see, or just general thoughts - we want to hear it all. This is our project, and we care deeply about making it work well for you.": "Qu'il s'agisse d'un bug que vous avez trouvé, d'une fonctionnalité que vous aimeriez voir ou simplement d'une réflexion générale, nous voulons tout entendre. C'est notre projet et nous souhaitons profondément qu'il fonctionne bien pour vous.", + "While we use industry-standard security measures, no method of transmission over the internet or electronic storage is 100% secure. We cannot guarantee absolute security but continuously work to protect your data.": "Bien que nous utilisions des mesures de sécurité conformes aux normes de l'industrie, aucune méthode de transmission sur Internet ou de stockage électronique n'est sécurisée à 100 %. Nous ne pouvons garantir une sécurité absolue mais nous travaillons continuellement à protéger vos données.", + "While we use industry-standard security\\n measures, no method of transmission over the\\n internet or electronic storage is 100% secure.\\n We cannot guarantee absolute security but\\n continuously work to protect your data.": "Bien que nous utilisions des mesures de sécurité conformes aux normes de l'industrie, aucune méthode de transmission sur Internet ou de stockage électronique n'est sécurisée à 100 %. Nous ne pouvons garantir une sécurité absolue, mais nous travaillons continuellement à protéger vos données.", + "Whisper Money - Secure Personal Finance App": "Whisper Money - Application de finances personnelles sécurisées", + "Whisper Money - The Most Secure Personal Finance App": "Whisper Money - L'application de finances personnelles la plus sûre", + "Whisper Money is a **privacy-first personal finance app** that puts you in control:": "Whisper Money est une **application de finances personnelles axée sur la confidentialité** qui vous donne le contrôle :", + "Whisper Money is a personal finance tracking application that allows you to:": "Whisper Money est une application de suivi des finances personnelles qui vous permet de :", + "Whisper Money is a personal finance tracking\\n application that allows you to:": "Whisper Money est une application de suivi des finances personnelles qui vous permet de :", + "Whisper Money is the data controller responsible for your personal information.": "Whisper Money est le contrôleur de données responsable de vos informations personnelles.", + "Whisper Money is the data controller responsible\\n for your personal information.": "Whisper Money est responsable du traitement de vos données personnelles.", + "Whisper Money never shares your data with third parties. Here's how we protect your privacy:": "Whisper Money ne partage jamais vos données avec des tiers. Voici comment nous protégeons votre vie privée :", + "Whisper Money. All rights reserved.": "WhisperMoney. Tous droits réservés.", + "Whisper Money. All\\n rights reserved.": "WhisperMoney. Tous droits réservés.", + "Whole Foods Market": "Marché des aliments entiers", + "Why No AI Auto-Categorization?": "Pourquoi n’y a-t-il pas de catégorisation automatique par l’IA ?", + "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "Lorsque l'authentification à deux facteurs est activée, vous serez invité à saisir un code PIN aléatoire et sécurisé lors de la connexion, que vous pourrez obtenir à partir de l'application compatible TOTP sur votre téléphone.", + "With two-factor authentication enabled, you will\\n be prompted for a secure, random pin during\\n login, which you can retrieve from the\\n TOTP-supported application on your phone.": "Lorsque l'authentification à deux facteurs est activée, vous serez invité à saisir un code PIN aléatoire et sécurisé lors de la connexion, que vous pourrez obtenir à partir de l'application compatible TOTP sur votre téléphone.", + "Works everywhere": "Fonctionne partout", + "Would you like to add more accounts or continue to the dashboard?": "Voulez-vous ajouter d'autres comptes ou continuer vers le panel ?", + "YYYY-MM-DD (e.g., 2024-12-31)": "AAAA-MM-JJ (par exemple 2024-12-31)", + "YYYYMMDD (e.g., 20241231)": "AAAAMMJJ (par exemple, 20241231)", + "Year": "Année", + "Yearly": "Annuel", + "Yearly code": "Code annuel", + "Yes! Whisper Money is fully open source. You can review the code, suggest improvements, or even self-host it. Transparency is a core part of our privacy commitment.": "Ouais! Whisper Money est entièrement open source. Vous pouvez consulter le code, suggérer des améliorations ou même l'héberger vous-même. La transparence est un élément fondamental de notre engagement en matière de confidentialité.", + "Yes. Bank connections use secure Open Banking and never require your bank credentials, so transactions can sync automatically. This is a Pro feature; free users can import everything, but only through the CSV/Excel importer.": "Oui. Les connexions bancaires utilisent l'Open Banking sécurisé et ne nécessitent jamais vos informations d'identification bancaires, de sorte que les transactions se synchronisent automatiquement. Il s'agit d'une fonctionnalité Pro ; les utilisateurs gratuits peuvent tout importer, mais uniquement en utilisant l'importateur CSV/Excel.", + "Yesterday": "Hier", + "You agree to indemnify, defend, and hold harmless Whisper Money and its officers, directors, employees, and agents from any claims, liabilities, damages, losses, and expenses, including reasonable legal fees, arising out of or related to your use of the service, violation of these Terms, or violation of any rights of another party.": "Vous acceptez d'indemniser, de défendre et de dégager Whisper Money et ses dirigeants, administrateurs, employés et agents de toute responsabilité contre toute réclamation, responsabilité, dommage, perte et dépense, y compris les frais juridiques raisonnables, découlant de ou liés à votre utilisation du Service, à la violation des présentes Conditions ou à la violation des droits d'une autre partie.", + "You agree to indemnify, defend, and hold\\n harmless Whisper Money and its officers,\\n directors, employees, and agents from any\\n claims, liabilities, damages, losses, and\\n expenses, including reasonable legal fees,\\n arising out of or related to your use of the\\n service, violation of these Terms, or violation\\n of any rights of another party.": "Vous acceptez d'indemniser, de défendre et de dégager Whisper Money et ses dirigeants, administrateurs, employés et agents de toute responsabilité contre toute réclamation, responsabilité, dommage, perte et dépense, y compris les frais juridiques raisonnables, découlant de ou liés à votre utilisation du Service, votre violation des présentes Conditions ou votre violation des droits d'une autre partie.", + "You agree to pay all applicable fees as described at the time of purchase": "Vous acceptez de payer tous les frais applicables tels que décrits au moment de l'achat.", + "You agree to pay all applicable fees as\\n described at the time of purchase": "Vous acceptez de payer tous les frais applicables tels que décrits au moment de l'achat.", + "You already have accounts set up. Let's continue with the onboarding.": "Vous avez déjà des comptes configurés. Continuons avec la configuration.", + "You are always the owner of your data": "Vous êtes toujours propriétaire de vos données", + "You are being redirected in 3 seconds.": "Vous serez redirigé dans 3 secondes.", + "You are currently **#:position** in line for early access.": "Vous êtes actuellement en **#:position** pour l'accès anticipé.", + "You are now **#:position** in line for early access.": "Vous êtes maintenant en **#:position** pour l'accès anticipé.", + "You are responsible for all taxes associated with your purchase": "Vous êtes responsable de toutes les taxes associées à votre achat", + "You are responsible for all taxes associated\\n with your purchase": "Vous êtes responsable de toutes les taxes associées à votre achat", + "You are responsible for maintaining backups of your data. While we implement reasonable backup procedures, we recommend you export and save copies of important data regularly.": "Vous êtes responsable de conserver des copies de sauvegarde de vos données. Bien que nous mettions en œuvre des procédures de sauvegarde raisonnables, nous vous recommandons d'exporter et de sauvegarder régulièrement des copies des données importantes.", + "You are responsible for maintaining backups of\\n your data. While we implement reasonable backup\\n procedures, we recommend you export and save\\n copies of important data regularly.": "Vous êtes responsable de conserver des copies de sauvegarde de vos données. Bien que nous mettions en œuvre des procédures de sauvegarde raisonnables, nous vous recommandons d'exporter et de sauvegarder régulièrement des copies des données importantes.", + "You can also manually add transactions and account balances. Some users prefer to start tracking from today rather than importing history - that's totally fine! Do whatever works best for you.": "Vous pouvez également ajouter manuellement des transactions et des soldes de comptes. Certains utilisateurs préfèrent commencer le suivi à partir d'aujourd'hui au lieu d'importer l'historique, ce n'est pas un problème ! Faites ce qui vous convient le mieux.", + "You can always customize categories later in Settings \\u2192\\n Categories": "Vous pourrez toujours personnaliser les catégories plus tard dans Paramètres → Catégories", + "You can always customize categories later in Settings → Categories": "Vous pourrez toujours personnaliser les catégories plus tard dans Paramètres → Catégories", + "You can continue using the app on the free plan, and you can reconnect your bank later if you upgrade again.": "Vous pouvez continuer à utiliser l'application avec le forfait gratuit et reconnecter votre banque plus tard si vous effectuez une nouvelle mise à niveau.", + "You can create API keys from your Binance account under": "Vous pouvez créer des clés API depuis votre compte Binance sur", + "You can create API keys from your Bitpanda account under": "Vous pouvez créer des clés API depuis votre compte Bitpanda sur", + "You can file a complaint with your local data protection authority": "Vous pouvez déposer une plainte auprès de votre autorité locale de protection des données", + "You can file a complaint with your local\\n data protection authority": "Vous pouvez déposer une plainte auprès de votre autorité locale de protection des données", + "You can generate your API token from your Indexa Capital dashboard under": "Vous pouvez générer votre jeton API à partir du panneau Indexa Capital à l'adresse", + "You can object to processing of your data based on legitimate interests": "Vous pouvez vous opposer au traitement de vos données sur la base d'intérêts légitimes", + "You can request a copy of the personal data we hold about you": "Vous pouvez demander une copie des données personnelles que nous détenons à votre sujet", + "You can request correction of inaccurate or incomplete data": "Vous pouvez demander la correction de données inexactes ou incomplètes", + "You can request deletion of your personal data (right to be forgotten)": "Vous pouvez demander la suppression de vos données personnelles (droit à l'oubli)", + "You can request restriction of processing in certain circumstances": "Vous pouvez demander la limitation du traitement dans certaines circonstances", + "You can request your data in a structured, machine-readable format": "Vous pouvez demander vos données dans un format structuré et lisible par machine", + "You can request your data in a structured,\\n machine-readable format": "Vous pouvez demander vos données dans un format structuré et lisible par machine", + "You can\\n object to processing of your data based on\\n legitimate interests": "Vous pouvez vous opposer au traitement de vos données sur la base d'intérêts légitimes", + "You can\\n request a copy of the personal data we hold\\n about you": "Vous pouvez demander une copie des données personnelles que nous détenons à votre sujet", + "You can\\n request deletion of your personal data\\n (right to be forgotten)": "Vous pouvez demander la suppression de vos données personnelles (droit à l'oubli)", + "You get your personal referral link.": "Vous obtenez votre lien de parrainage personnel.", + "You have :count expired bank connections.": "Vous avez :count connexions bancaires expirées.", + "You may cancel your subscription at any time. Upon cancellation, you will retain access until the end of your current billing period, after which your subscription will not renew.": "Vous pouvez annuler votre abonnement à tout moment. En cas d'annulation, vous conserverez l'accès jusqu'à la fin de votre période de facturation en cours, après quoi votre abonnement ne sera pas renouvelé.", + "You may cancel your subscription at any time.\\n Upon cancellation, you will retain access until\\n the end of your current billing period, after\\n which your subscription will not renew.": "Vous pouvez annuler votre abonnement à tout moment. En cas d'annulation, vous conserverez l'accès jusqu'à la fin de votre période de facturation en cours, après quoi votre abonnement ne sera pas renouvelé.", + "You may not use the service to engage in any illegal activity, transmit malicious code, attempt to gain unauthorized access to our systems, or interfere with the proper functioning of the service.": "Vous ne pouvez pas utiliser le Service pour vous livrer à une activité illégale, transmettre du code malveillant, tenter d'obtenir un accès non autorisé à nos systèmes ou interférer avec le bon fonctionnement du Service.", + "You may not use the service to engage in any\\n illegal activity, transmit malicious code,\\n attempt to gain unauthorized access to our\\n systems, or interfere with the proper\\n functioning of the service.": "Vous ne pouvez pas utiliser le Service pour mener des activités illégales, transmettre du code malveillant, tenter d'obtenir un accès non autorisé à nos systèmes ou interférer avec le bon fonctionnement du Service.", + "You may terminate your account at any time by deleting your account through the application settings or by contacting us. Upon termination, your right to use the service will immediately cease.": "Vous pouvez annuler votre compte à tout moment en le supprimant via les paramètres de l'application ou en nous contactant. En cas d'annulation, votre droit d'utiliser le Service cessera immédiatement.", + "You may terminate your account at any time by\\n deleting your account through the application\\n settings or by contacting us. Upon termination,\\n your right to use the service will immediately\\n cease.": "Vous pouvez résilier votre compte à tout moment en le supprimant via les paramètres de l'application ou en nous contactant. En cas de résiliation, votre droit d'utiliser le Service cessera immédiatement.", + "You must be at least 16 years old to use this service. By using Whisper Money, you represent and warrant that you meet this age requirement.": "Vous devez avoir au moins 16 ans pour utiliser ce service. En utilisant Whisper Money, vous déclarez et garantissez que vous remplissez cette condition d'âge.", + "You must be at least 16 years old to use this\\n service. By using Whisper Money, you represent\\n and warrant that you meet this age requirement.": "Vous devez avoir au moins 16 ans pour utiliser ce service. En utilisant Whisper Money, vous déclarez et garantissez que vous remplissez cette condition d'âge.", + "You must select either a category or a label.": "Vous devez sélectionner une catégorie ou un tag.", + "You now have full access to all Whisper Money features. Thank you for supporting us!": "Vous avez désormais un accès complet à toutes les fonctionnalités de Whisper Money. Merci de nous soutenir !", + "You retain all ownership rights to the financial data and information you enter into Whisper Money. We do not claim any ownership over your personal financial information.": "Vous conservez tous les droits de propriété sur les données et informations financières que vous saisissez dans Whisper Money. Nous ne revendiquons aucune propriété sur vos informations financières personnelles.", + "You retain all\\n ownership rights to the financial data and\\n information you enter into Whisper Money. We do\\n not claim any ownership over your personal\\n financial information.": "Vous conservez tous les droits de propriété sur les données et informations financières que vous saisissez dans Whisper Money. Nous ne revendiquons aucun droit de propriété sur vos informations financières personnelles.", + "You see:": "Tu vois:", + "You will be redirected to authorize access to your account data.": "Vous serez redirigé pour autoriser l'accès aux données de votre compte.", + "You will be redirected to your bank to authorize access.": "Vous serez redirigé vers votre banque pour autoriser l'accès.", + "You'll receive an exclusive promo code via DM!": "Vous recevrez un code promotionnel exclusif par message direct !", + "You'll receive an\\n exclusive promo code via\\n DM!": "Vous recevrez un code promotionnel exclusif par DM !", + "You're All Set!": "Vous êtes tous prêts !", + "You're a Whisper Money founder — free forever 🎁": "Vous êtes l'un des pionniers de Whisper Money — gratuit pour toujours 🎁", + "You're a Whisper Money founder 🎁": "Vous êtes l'un des pionniers de Whisper Money 🎁", + "You're enjoying all the benefits of Whisper Money Pro": "Vous bénéficiez de tous les avantages de Whisper Money Pro", + "You're in complete control": "Vous avez un contrôle total", + "You're in early — months on us at Whisper Money": "Vous arrivez tôt — nous vous invitons aux premiers mois", + "You're in early — months on us 🎉": "Vous arrivez tôt — nous vous invitons aux premiers mois 🎉", + "You're on the Whisper Money waiting list!": "Vous êtes sur la liste d'attente de Whisper Money !", + "You're on the list!": "Vous êtes sur la liste !", + "You're on the waiting list — Whisper Money": "Vous êtes sur la liste d'attente — Whisper Money", + "You've categorized all your transactions.": "Vous avez catégorisé toutes vos transactions.", + "You've joined the Whisper Money waiting list. Share your referral link to move up the queue.": "Vous avez rejoint la liste d'attente de Whisper Money. Partagez votre lien de parrainage pour avancer en ligne.", + "You've used 90% of your budget": "Vous avez utilisé 90 % de votre budget", + "You\\n can request correction of inaccurate or\\n incomplete data": "Vous pouvez demander la correction de données inexactes ou incomplètes", + "You\\n can request restriction of processing in\\n certain circumstances": "Vous pouvez demander la limitation du traitement dans certaines circonstances", + "Your :provider connection has expired.": "Votre connexion à :provider a expiré.", + "Your :provider connection needs attention": "Votre connexion avec :provider nécessite une attention particulière", + "Your Accounts": "Vos comptes", + "Your Categories Include:": "Vos catégories incluent :", + "Your Data is Truly Private": "Vos données sont vraiment privées", + "Your Data, Your Privacy": "Vos données, votre vie privée", + "Your Data, Your Rules": "Vos données, vos règles", + "Your Data:": "Vos données :", + "Your Founder Discount - 80% Off First Period": "Votre remise fondateur - 80 % de remise sur la première période", + "Your Position in the Queue": "Votre position en ligne", + "Your Private Key": "Votre clé privée", + "Your Pro Plan": "Votre forfait Pro", + "Your Whisper Money invitation is here": "Votre invitation à Whisper Money est ici", + "Your accounts are ready and your data is securely encrypted. Welcome to Whisper Money!": "Vos comptes sont prêts et vos données sont cryptées en toute sécurité. Bienvenue sur Whisper Money !", + "Your bank connections were disconnected": "Vos connexions bancaires ont été déconnectées", + "Your continued use of the service after the effective date of revised Terms constitutes your acceptance of the changes. If you do not agree to the new terms, you must stop using the service and may delete your account.": "Votre utilisation continue du Service après la date d'entrée en vigueur des Conditions révisées constitue votre acceptation des modifications. Si vous n'acceptez pas les nouvelles conditions, vous devez cesser d'utiliser le service et vous pouvez supprimer votre compte.", + "Your continued use of the service after the\\n effective date of revised Terms constitutes your\\n acceptance of the changes. If you do not agree\\n to the new terms, you must stop using the\\n service and may delete your account.": "Votre utilisation continue du Service après la date d'entrée en vigueur des Conditions révisées constitue votre acceptation des modifications. Si vous n'acceptez pas les nouvelles conditions, vous devez cesser d'utiliser le service et vous pouvez supprimer votre compte.", + "Your data and settings will be preserved, so you can pick up right where you left off.": "Vos données et paramètres seront conservés, afin que vous puissiez reprendre là où vous vous étiez arrêté.", + "Your data encrypted and private": "Vos données cryptées et privées", + "Your data is encrypted before it leaves your browser.": "Vos données sont cryptées avant de quitter votre navigateur.", + "Your data is never shared with third parties": "Vos données ne sont jamais partagées avec des tiers", + "Your data is never shared with third parties. You are always the owner.": "Vos données ne sont jamais partagées avec des tiers. Vous êtes toujours le propriétaire.", + "Your data is ready": "Vos données sont prêtes", + "Your data is stored securely and never shared with third parties. We don't use your financial data for AI training, advertising, or any purpose other than providing you the service.": "Vos données sont stockées en toute sécurité et ne sont jamais partagées avec des tiers. Nous n'utilisons pas vos données financières à des fins de formation en IA, de publicité ou à toute autre fin que celle de vous fournir le service.", + "Your data is yours alone. Sign up to get started.": "Vos données vous appartiennent uniquement. Inscrivez-vous pour commencer.", + "Your data is yours. Export it anytime in standard formats.": "Vos données vous appartiennent. Exportez-les à tout moment dans des formats standards.", + "Your data stays private. Always.": "Vos données restent privées. Toujours.", + "Your data stays private—never shared with third parties.": "Vos données restent privées et ne sont jamais partagées avec des tiers.", + "Your data stays yours": "Vos données n'appartiennent qu'à vous", + "Your data stays yours—never shared with third parties": "Vos données vous appartiennent uniquement, jamais partagées avec des tiers", + "Your early access to Whisper Money is ready": "Votre accès anticipé à Whisper Money est prêt", + "Your early-access gift": "Votre cadeau pour arriver bientôt", + "Your email address": "Votre email", + "Your email address is unverified.": "Votre adresse e-mail n'est pas vérifiée.", + "Your financial data belongs to you — not us, not advertisers, not anyone else:": "Vos données financières vous appartiennent, pas à nous, ni aux annonceurs, ni à personne d'autre :", + "Your financial data is encrypted on your device before being transmitted to our servers, ensuring that only you can access your information": "Vos données financières sont cryptées sur votre appareil avant d'être transmises à nos serveurs, garantissant que vous seul pouvez accéder à vos informations", + "Your financial data is encrypted on your device before it ever reaches our servers.": "Vos données financières sont cryptées sur votre appareil avant d'atteindre nos serveurs.", + "Your financial data is encrypted on your device. Only you can access it.": "Vos données financières sont cryptées sur votre appareil. Vous seul pouvez y accéder.", + "Your financial data stays private and is never shared": "Vos données financières sont privées et jamais partagées", + "Your financial data stays private. The most secure way to manage your personal finances.": "Vos données financières restent privées. La façon la plus sûre de gérer vos finances personnelles.", + "Your financial data stays private—never shared with third parties. The most secure way to manage your personal finances.": "Vos données financières restent privées et ne sont jamais partagées avec des tiers. La façon la plus sûre de gérer vos finances personnelles.", + "Your financial data stays private—never shared with third parties. Track expenses, create budgets, and achieve your goals—all while keeping your information completely secure.": "Vos données financières restent privées et ne sont jamais partagées avec des tiers. Suivez vos dépenses, créez des budgets et atteignez vos objectifs, tout en gardant vos informations totalement sécurisées.", + "Your first account must be a": "Votre premier compte doit en être un", + "Your first account must be a checking account.": "Votre premier compte doit être un compte courant.", + "Your gift: Whisper Money Pro, free forever": "Votre cadeau : Whisper Money Pro, gratuit pour toujours", + "Your key will be cleared when you close the browser.": "Votre mot de passe sera supprimé lorsque vous fermerez le navigateur.", + "Your key will be stored until you log out.": "Votre mot de passe sera stocké jusqu'à votre déconnexion.", + "Your launch codes are still available:": "Vos codes de lancement sont toujours disponibles :", + "Your personal code": "Votre code personnel", + "Your place in the queue is reserved.": "Votre place dans la file d'attente est réservée.", + "Your position in the queue": "Votre position en ligne", + "Your referral made you a Whisper Money founder — free forever 🎁": "Votre invitation a fait de vous le fondateur de Whisper Money — gratuit pour toujours 🎁", + "Your referral made you a founder 🎁": "Votre invitation a fait de vous un fondateur 🎁", + "Your rules run entirely in your browser": "Vos règles s'exécutent entièrement dans votre navigateur", + "Your subscription is now active": "Votre abonnement est déjà actif", + "Your transactions, accounts, and budgets are encrypted on your device before syncing to the cloud.": "Vos transactions, comptes et budgets sont cryptés sur votre appareil avant d'être synchronisés avec le cloud.", + "Your use or inability to use the service": "Votre utilisation ou votre incapacité à utiliser le service", + "Your welcome gift": "Votre cadeau de bienvenue", + "Zero tracking": "Pas de suivi", + "Zero-Knowledge Architecture": "Architecture zéro connaissance", + "[Loading...]": "[Chargement...]", + "\\u2014 $9/month": "\\u2014 9 $/mois", + "\\u2190 Back to home": "\\u2190 Retour en haut", + "\\uD83C\\uDF89 Get a founder discount \\u2022": "\\uD83C\\uDF89 Bénéficiez d'une remise fondateur \\u2022", + "above.": "au-dessus de.", + "account": "compte", + "account.": "compte.", + "accounts": "comptes", + "acres": "acres", + "after 3 months with Whisper Money": "après 3 mois avec Whisper Money", + "amber": "ambre", + "balance": "équilibre", + "balance record": "bilan", + "balance records": "enregistrements de solde", + "balances": "bilans", + "balances imported": "soldes importés", + "blue": "bleu", + "button in your browser toolbar": "dans la barre d'outils de votre navigateur", + "category(ies) total.": "catégorie(s) au total.", + "contains": "contient", + "cyan": "cyan", + "direct": "droit", + "e.g. 360 for a 30-year mortgage": "par ex. 360 pour un prêt hypothécaire sur 30 ans", + "e.g., Monthly Budget": "par ex. Budget mensuel", + "e.g., Padel Budget": "par exemple, Budget Paddle", + "email@example.com": "email@exemple.com", + "emerald": "émeraude", + "en_US": "fr_ES", + "equals": "est égal à", + "finance app, budgeting, expense tracking, privacy-first, secure finance, personal finance, money management, privacy, no data sharing": "application financière, budgets, suivi des dépenses, confidentialité avant tout, finances sécurisées, finances personnelles, gestion de l'argent, confidentialité, pas de partage de données", + "finance app, budgeting, expense tracking, secure finance, personal finance, money management, privacy, privacy-first finance app": "application financière, budget, suivi des dépenses, finances sécurisées, finances personnelles, gestion de l'argent, confidentialité, application financière axée sur la confidentialité", + "for the last 12 months": "au cours des 12 derniers mois", + "for the last 30 days": "au cours des 30 derniers jours", + "forever": "toujours", + "ft²": "pi²", + "fuchsia": "fuchsia", + "gray": "gris", + "greater than": "supérieur à", + "green": "vert", + "ha": "Ha", + "index, follow": "indexer, suivre", + "indigo": "indigo", + "is empty": "est vide", + "is not empty": "n'est pas vide", + "label(s) total.": "balise(s) au total.", + "less than": "moins que", + "lime": "citron vert", + "log in": "se connecter", + "market value": "valeur marchande", + "market values": "valeurs marchandes", + "months": "mois", + "m²": "m²", + "neutral": "neutre", + "of": "de", + "on the last 30 days": "au cours des 30 derniers jours", + "one-time": "paiement unique", + "only with you": "seulement avec toi", + "or you can": "ou tu peux", + "or, enter the code manually": "ou, entrez le code manuellement", + "orange": "orange", + "owed amount": "montant dû", + "owed amount record": "relevé du montant dû", + "owed amount records": "relevés du montant dû", + "owed amounts": "sommes dues", + "owed amounts imported": "montants importés dus", + "per month": "par mois", + "per year": "par année", + "pink": "rose", + "purple": "violet", + "px) /": "px) /", + "red": "rouge", + "remaining": "restant", + "rose": "rose", + "row(s) total": "nombre total de lignes", + "rule(s) total.": "règle(s) au total.", + "slate": "conseil", + "spending awareness reported": "connaissance des dépenses déclarées", + "stone": "pierre", + "summary_large_image": "résumé_large_image", + "taking control of their finances": "prendre le contrôle de vos finances", + "teal": "sarcelle", + "this month": "ce mois-ci", + "to confirm.": "à confirmer.", + "today": "aujourd'hui", + "transactions imported": "transactions importées", + "transactions loaded": "transactions chargées", + "transactions total": "transactions au total", + "used": "utilisé", + "victor@whisper.money": "victor@whisper.money", + "violet": "violet", + "vs last month": "par rapport au mois précédent", + "vs last period": "par rapport à la période précédente", + "vs start": "contre commencer", + "will be updated or created.": "sera mis à jour ou créé.", + "years": "années", + "yellow": "jaune", + "— $9/month": "— 9 $/mois", + "← Back to home": "← Retour en haut", + "🎉 Get a founder discount •": "🎉 Bénéficiez d'une réduction fondateur •", + "I just started syncing my accounts and it already feels like a great app. The interface is lovely and it looks like a really solid tool. Great work!": "Je viens de commencer à synchroniser les comptes et cela semble déjà être une excellente application. J'adore l'interface et cela semble être un outil très solide. Très bon travail !", + "I have a lot of faith in this project — it's really well built and your MVP is fantastic. Thanks for everything!": "J'ai beaucoup de confiance dans ce projet, il est très bien monté et votre MVP est fantastique. Merci pour tout !", + "I'm exploring the web app and the design and UX are excellent. Thanks, team!": "Je découvre l'application web et, en termes de design et d'UX, elle est excellente. Merci les gars !", + "Thank you for developing Whisper Money. The focus on privacy and centralizing finances is an excellent proposition.": "Merci d'avoir développé Whisper Money. L’accent mis sur la confidentialité et la centralisation des finances est une excellente proposition.", + "I found Whisper Money and instantly knew I needed it. I was stuck doing everything in a spreadsheet — a chore I kept putting off. This makes it effortless.": "J'ai découvert Whisper Money et j'ai immédiatement su que j'en avais besoin. Je faisais tout dans une feuille de calcul, une tâche que je remettais sans cesse à plus tard. Cela rend les choses très faciles.", + "Thank you so much for creating such a clean, simple app.": "Merci beaucoup d'avoir créé une application aussi propre et simple.", + "Great project!": "Super projet !", + "I love this project!": "J'adore ce projet !", + "I'm genuinely happy using an open-source project with a real commitment to privacy — that's exactly what I want from a finance app.": "Je suis vraiment heureux d'utiliser un projet open source avec un réel engagement en matière de confidentialité : c'est exactement ce que j'attends d'une application financière.", + "I can't wait to discover everything the app can do. Thank you — it must have taken a tremendous effort. Congratulations!": "Au plaisir de découvrir tout ce qu'on peut faire avec l'application. Merci! Cela a dû être un effort énorme. Félicitations!", + "The app is intuitive, functional, and a real help for managing my finances day to day. What stands out most is how much the free version offers — it really shows your commitment to your users. I’ll keep recommending it!": "L'application est intuitive, fonctionnelle et d'une grande aide pour gérer mes finances au quotidien. Ce qui ressort le plus, c'est le nombre d'options de la version gratuite : cela démontre votre engagement envers les utilisateurs. Je continuerai à la recommander !", + "I built the app I needed to make better decisions. Understanding how I spend and where my income comes from has brought me real financial peace of mind.": "J'ai créé l'application dont j'avais besoin pour prendre de meilleures décisions. Comprendre comment je dépense et d’où viennent mes revenus m’a apporté une réelle tranquillité d’esprit financière.", + "AI Suggestions": "Suggestions d'IA", + "AI suggestions are a Standard Plan feature. You'll choose a plan at the end of the onboarding.": "Les suggestions d’IA sont une fonctionnalité du plan Standard. Vous choisirez un plan à la fin du processus d'intégration.", + "Rules created": "Règles créées", + "We created :rules rules and categorized :count transactions for you.": "Nous avons créé des règles :rules et classé les transactions :count pour vous.", + "Looking for patterns": "À la recherche de modèles", + "We’re finding the rules that will categorize most of your transactions automatically.": "Nous trouvons les règles qui catégoriseront automatiquement la plupart de vos transactions.", + "Analysing your transactions…": "Analyser vos transactions…", + "Finding related groups…": "À la recherche de groupes apparentés…", + "Finding the right categories…": "Trouver les bonnes catégories…", + "Grouping everything together…": "Mettre tout cela ensemble…", + "Polishing your suggestions…": "Peaufiner vos suggestions…", + "This can take up to two minutes.": "Cela peut prendre jusqu'à deux minutes.", + "Let AI organize your money": "Laissez l'IA organiser votre argent", + "With your permission, we’ll send merchant names from your transactions to our AI provider to suggest categorization rules. We never send your full financial picture, and you review every rule before it’s created.": "Avec votre autorisation, nous enverrons les noms des commerçants de vos transactions à notre fournisseur d'IA pour vous suggérer des règles de catégorisation. Nous n'envoyons jamais votre situation financière complète et vous examinez chaque règle avant de la créer.", + "Suggest my rules with AI": "Proposer mes règles avec l'IA", + "No thanks": "Non merci", + "AI suggestions need more data": "Les suggestions d'IA nécessitent plus de données", + "Once you have at least :count transactions, you can generate rule suggestions from Settings → Automation rules.": "Lorsque vous avez au moins :count transactions, vous pouvez générer des suggestions de règles depuis Paramètres → Règles d'automatisation.", + "We couldn’t generate suggestions": "Nous n'avons pas pu générer de suggestions", + "Something went wrong. You can try again or skip for now.": "Quelque chose s'est mal passé. Vous pouvez réessayer ou l'ignorer pour le moment.", + "Try again": "essayer à nouveau", + "No clear patterns yet": "Il n'y a pas encore de modèles clairs", + "We couldn’t find confident rules to suggest right now. You can categorize your transactions in the next step.": "Nous ne trouvons aucune règle fiable à suggérer pour le moment. Vous pouvez catégoriser vos transactions à l'étape suivante.", + "Review your suggested rules": "Consultez les règles suggérées", + "We found these patterns. Tweak anything you like, then create the rules — we’ll apply them to your transactions right away.": "Nous trouvons ces modèles. Ajustez ce que vous voulez et créez les règles - nous les appliquerons immédiatement à vos transactions.", + "Create :count rules & apply": "Créez des règles :count et appliquez-les", + "Applying…": "Candidature…", + "Include this rule": "Inclure cette règle", + "Payee": "Bénéficiaire", + "Sender": "Expéditeur", + "is": "est", + "Match text": "Texte correspondant", + "Categorize as": "Classer comme", + "New: :name": "Nouveau : :nom", + "Preview matching transactions": "Afficher les transactions correspondantes", + "Loading…": "Chargement…", + ":count of :total uncategorized transactions match": ": nombre de : correspondance totale de transactions non classées", + "Matching transactions": "Opérations correspondantes", + "Preview :count matching transactions": "Afficher : compter les transactions correspondantes", + "If the transaction": "Si l'opération", + "If the transaction matches any of": "Si la transaction correspond à l'un des", + "Add value": "Ajouter de la valeur", + "Remove value": "Supprimer la valeur", + "or": "soit", + "Create rule": "Créer une règle", + "Ignore rule": "Ignorer la règle", + ":count matches": ":compter les correspondances" +} \ No newline at end of file From cd002716fbff2b3121b466cc3fcc4c3aa1301689 Mon Sep 17 00:00:00 2001 From: elnuage Date: Mon, 15 Jun 2026 10:47:39 +0200 Subject: [PATCH 03/13] Add .php french translations --- lang/fr/auth.php | 6 +- lang/fr/pagination.php | 19 ++++ lang/fr/passwords.php | 22 +++++ lang/fr/validation.php | 199 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 243 insertions(+), 3 deletions(-) create mode 100644 lang/fr/pagination.php create mode 100644 lang/fr/passwords.php create mode 100644 lang/fr/validation.php diff --git a/lang/fr/auth.php b/lang/fr/auth.php index 6598e2c0..2b1a68b1 100644 --- a/lang/fr/auth.php +++ b/lang/fr/auth.php @@ -13,8 +13,8 @@ return [ | */ - 'failed' => 'These credentials do not match our records.', - 'password' => 'The provided password is incorrect.', - 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + 'failed' => 'Aucun compte enregistré avec les identifiants fournis.', + 'password' => 'Le mot de passe est incorect.', + 'throttle' => 'Trop de tentatives. Veuillez ressayer dans :seconds secondes.', ]; diff --git a/lang/fr/pagination.php b/lang/fr/pagination.php new file mode 100644 index 00000000..8c48c555 --- /dev/null +++ b/lang/fr/pagination.php @@ -0,0 +1,19 @@ + '« précèdent', + 'next' => 'Suivant »', + +]; diff --git a/lang/fr/passwords.php b/lang/fr/passwords.php new file mode 100644 index 00000000..5e33807d --- /dev/null +++ b/lang/fr/passwords.php @@ -0,0 +1,22 @@ + 'Votre mot de passe a été réinitialisé.', + 'sent' => 'Nous vous avons envoyé par e-mail le lien de réinitialisation de votre mot de passe.', + 'throttled' => 'Veuillez patienter avant de réessayer.', + 'token' => 'Ce jeton de réinitialisation de mot de passe n\'est pas valide.', + 'user' => "Aucun utilisateur ne correspond à cette adresse e-mail.", + +]; diff --git a/lang/fr/validation.php b/lang/fr/validation.php new file mode 100644 index 00000000..60db7760 --- /dev/null +++ b/lang/fr/validation.php @@ -0,0 +1,199 @@ + 'Le champ :attribute doit être accepté.', + 'accepted_if' => 'Le champ :attribute doit être accepté lorsque :other vaut :value.', + 'active_url' => 'Le champ :attribute doit être une URL valide.', + 'after' => 'Le champ :attribute doit être une date postérieure à :date.', + 'after_or_equal' => 'Le champ :attribute doit être une date postérieure ou égale à :date.', + 'alpha' => 'Le champ :attribute ne doit contenir que des lettres.', + 'alpha_dash' => 'Le champ :attribute ne doit contenir que des lettres, des chiffres, des tirets et des traits de soulignement.', + 'alpha_num' => 'Le champ :attribute ne doit contenir que des lettres et des chiffres.', + 'any_of' => 'Le champ :attribute n\'est pas valide.', + 'array' => 'Le champ :attribute doit être un tableau.', + 'ascii' => 'Le champ :attribute ne doit contenir que des caractères alphanumériques et des symboles sur un seul octet.', + 'before' => 'Le champ :attribute doit être une date antérieure à :date.', + 'before_or_equal' => 'Le champ :attribute doit être une date antérieure ou égale à :date.', + 'between' => [ + 'array' => 'Le champ :attribute doit contenir entre :min et :max éléments.', + 'file' => 'Le champ :attribute doit faire entre :min et :max kilo-octets.', + 'numeric' => 'Le champ :attribute doit être compris entre :min et :max.', + 'string' => 'Le champ :attribute doit contenir entre :min et :max caractères.', + ], + 'boolean' => 'Le champ :attribute doit être vrai ou faux.', + 'can' => 'Le champ :attribute contient une valeur non autorisée.', + 'confirmed' => 'La confirmation du champ :attribute ne correspond pas.', + 'contains' => 'Le champ :attribute n\'inclut pas une valeur requise.', + 'current_password' => 'Le mot de passe est incorrect.', + 'date' => 'Le champ :attribute doit être une date valide.', + 'date_equals' => 'Le champ :attribute doit être une date égale à :date.', + 'date_format' => 'Le champ :attribute doit correspondre au format :format.', + 'decimal' => 'Le champ :attribute doit comporter :decimal décimales.', + 'declined' => 'Le champ :attribute doit être refusé.', + 'declined_if' => 'Le champ :attribute doit être refusé lorsque :other vaut :value.', + 'different' => 'Les champs :attribute et :other doivent être différents.', + 'digits' => 'Le champ :attribute doit comporter :digits chiffres.', + 'digits_between' => 'Le champ :attribute doit comporter entre :min et :max chiffres.', + 'dimensions' => 'Le champ :attribute a des dimensions d\'image non valides.', + 'distinct' => 'Le champ :attribute a une valeur en double.', + 'doesnt_contain' => 'Le champ :attribute ne doit contenir aucune des valeurs suivantes : :values.', + 'doesnt_end_with' => 'Le champ :attribute ne doit pas se terminer par l\'une des valeurs suivantes : :values.', + 'doesnt_start_with' => 'Le champ :attribute ne doit pas commencer par l\'une des valeurs suivantes : :values.', + 'email' => 'Le champ :attribute doit être une adresse e-mail valide.', + 'encoding' => 'Le champ :attribute doit être encodé en :encoding.', + 'ends_with' => 'Le champ :attribute doit se terminer par l\'une des valeurs suivantes : :values.', + 'enum' => 'La valeur sélectionnée pour :attribute n\'est pas valide.', + 'exists' => 'La valeur sélectionnée pour :attribute n\'est pas valide.', + 'extensions' => 'Le champ :attribute doit avoir l\'une des extensions suivantes : :values.', + 'file' => 'Le champ :attribute doit être un fichier.', + 'filled' => 'Le champ :attribute doit avoir une valeur.', + 'gt' => [ + 'array' => 'Le champ :attribute doit contenir plus de :value éléments.', + 'file' => 'Le champ :attribute doit être supérieur à :value kilo-octets.', + 'numeric' => 'Le champ :attribute doit être supérieur à :value.', + 'string' => 'Le champ :attribute doit contenir plus de :value caractères.', + ], + 'gte' => [ + 'array' => 'Le champ :attribute doit contenir :value éléments ou plus.', + 'file' => 'Le champ :attribute doit être supérieur ou égal à :value kilo-octets.', + 'numeric' => 'Le champ :attribute doit être supérieur ou égal à :value.', + 'string' => 'Le champ :attribute doit contenir au moins :value caractères.', + ], + 'hex_color' => 'Le champ :attribute doit être une couleur hexadécimale valide.', + 'image' => 'Le champ :attribute doit être une image.', + 'in' => 'La valeur sélectionnée pour :attribute n\'est pas valide.', + 'in_array' => 'Le champ :attribute doit exister dans :other.', + 'in_array_keys' => 'Le champ :attribute doit contenir au moins l\'une des clés suivantes : :values.', + 'integer' => 'Le champ :attribute doit être un entier.', + 'ip' => 'Le champ :attribute doit être une adresse IP valide.', + 'ipv4' => 'Le champ :attribute doit être une adresse IPv4 valide.', + 'ipv6' => 'Le champ :attribute doit être une adresse IPv6 valide.', + 'json' => 'Le champ :attribute doit être une chaîne JSON valide.', + 'list' => 'Le champ :attribute doit être une liste.', + 'lowercase' => 'Le champ :attribute doit être en minuscules.', + 'lt' => [ + 'array' => 'Le champ :attribute doit contenir moins de :value éléments.', + 'file' => 'Le champ :attribute doit être inférieur à :value kilo-octets.', + 'numeric' => 'Le champ :attribute doit être inférieur à :value.', + 'string' => 'Le champ :attribute doit contenir moins de :value caractères.', + ], + 'lte' => [ + 'array' => 'Le champ :attribute ne doit pas contenir plus de :value éléments.', + 'file' => 'Le champ :attribute doit être inférieur ou égal à :value kilo-octets.', + 'numeric' => 'Le champ :attribute doit être inférieur ou égal à :value.', + 'string' => 'Le champ :attribute doit contenir au plus :value caractères.', + ], + 'mac_address' => 'Le champ :attribute doit être une adresse MAC valide.', + 'max' => [ + 'array' => 'Le champ :attribute ne doit pas contenir plus de :max éléments.', + 'file' => 'Le champ :attribute ne doit pas dépasser :max kilo-octets.', + 'numeric' => 'Le champ :attribute ne doit pas être supérieur à :max.', + 'string' => 'Le champ :attribute ne doit pas dépasser :max caractères.', + ], + 'max_digits' => 'Le champ :attribute ne doit pas comporter plus de :max chiffres.', + 'mimes' => 'Le champ :attribute doit être un fichier de type : :values.', + 'mimetypes' => 'Le champ :attribute doit être un fichier de type : :values.', + 'min' => [ + 'array' => 'Le champ :attribute doit contenir au moins :min éléments.', + 'file' => 'Le champ :attribute doit faire au moins :min kilo-octets.', + 'numeric' => 'Le champ :attribute doit être au moins :min.', + 'string' => 'Le champ :attribute doit contenir au moins :min caractères.', + ], + 'min_digits' => 'Le champ :attribute doit comporter au moins :min chiffres.', + 'missing' => 'Le champ :attribute doit être absent.', + 'missing_if' => 'Le champ :attribute doit être absent lorsque :other vaut :value.', + 'missing_unless' => 'Le champ :attribute doit être absent sauf si :other vaut :value.', + 'missing_with' => 'Le champ :attribute doit être absent lorsque :values est présent.', + 'missing_with_all' => 'Le champ :attribute doit être absent lorsque :values sont présents.', + 'multiple_of' => 'Le champ :attribute doit être un multiple de :value.', + 'not_in' => 'La valeur sélectionnée pour :attribute n\'est pas valide.', + 'not_regex' => 'Le format du champ :attribute n\'est pas valide.', + 'numeric' => 'Le champ :attribute doit être un nombre.', + 'password' => [ + 'letters' => 'Le champ :attribute doit contenir au moins une lettre.', + 'mixed' => 'Le champ :attribute doit contenir au moins une majuscule et une minuscule.', + 'numbers' => 'Le champ :attribute doit contenir au moins un chiffre.', + 'symbols' => 'Le champ :attribute doit contenir au moins un symbole.', + 'uncompromised' => 'Le :attribute fourni est apparu dans une fuite de données. Veuillez choisir un autre :attribute.', + ], + 'present' => 'Le champ :attribute doit être présent.', + 'present_if' => 'Le champ :attribute doit être présent lorsque :other vaut :value.', + 'present_unless' => 'Le champ :attribute doit être présent sauf si :other vaut :value.', + 'present_with' => 'Le champ :attribute doit être présent lorsque :values est présent.', + 'present_with_all' => 'Le champ :attribute doit être présent lorsque :values sont présents.', + 'prohibited' => 'Le champ :attribute est interdit.', + 'prohibited_if' => 'Le champ :attribute est interdit lorsque :other vaut :value.', + 'prohibited_if_accepted' => 'Le champ :attribute est interdit lorsque :other est accepté.', + 'prohibited_if_declined' => 'Le champ :attribute est interdit lorsque :other est refusé.', + 'prohibited_unless' => 'Le champ :attribute est interdit sauf si :other fait partie de :values.', + 'prohibits' => 'Le champ :attribute empêche :other d\'être présent.', + 'regex' => 'Le format du champ :attribute n\'est pas valide.', + 'required' => 'Le champ :attribute est obligatoire.', + 'required_array_keys' => 'Le champ :attribute doit contenir des entrées pour : :values.', + 'required_if' => 'Le champ :attribute est obligatoire lorsque :other vaut :value.', + 'required_if_accepted' => 'Le champ :attribute est obligatoire lorsque :other est accepté.', + 'required_if_declined' => 'Le champ :attribute est obligatoire lorsque :other est refusé.', + 'required_unless' => 'Le champ :attribute est obligatoire sauf si :other fait partie de :values.', + 'required_with' => 'Le champ :attribute est obligatoire lorsque :values est présent.', + 'required_with_all' => 'Le champ :attribute est obligatoire lorsque :values sont présents.', + 'required_without' => 'Le champ :attribute est obligatoire lorsque :values n\'est pas présent.', + 'required_without_all' => 'Le champ :attribute est obligatoire lorsque aucun de :values n\'est présent.', + 'same' => 'Le champ :attribute doit correspondre à :other.', + 'size' => [ + 'array' => 'Le champ :attribute doit contenir :size éléments.', + 'file' => 'Le champ :attribute doit faire :size kilo-octets.', + 'numeric' => 'Le champ :attribute doit être :size.', + 'string' => 'Le champ :attribute doit contenir :size caractères.', + ], + 'starts_with' => 'Le champ :attribute doit commencer par l\'une des valeurs suivantes : :values.', + 'string' => 'Le champ :attribute doit être une chaîne de caractères.', + 'timezone' => 'Le champ :attribute doit être un fuseau horaire valide.', + 'unique' => 'La valeur du champ :attribute est déjà utilisée.', + 'uploaded' => 'Le téléversement du champ :attribute a échoué.', + 'uppercase' => 'Le champ :attribute doit être en majuscules.', + 'url' => 'Le champ :attribute doit être une URL valide.', + 'ulid' => 'Le champ :attribute doit être un ULID valide.', + 'uuid' => 'Le champ :attribute doit être un UUID valide.', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'custom-message', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap our attribute placeholder + | with something more reader friendly such as "E-Mail Address" instead + | of "email". This simply helps us make our message more expressive. + | + */ + + 'attributes' => [], + +]; From a40b0786d939b8b429a6595b06f1b95e36a5986d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vi=CC=81ctor=20Falco=CC=81n?= Date: Mon, 15 Jun 2026 17:32:55 +0100 Subject: [PATCH 04/13] chore: drop files committed by accident in #532 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removes a stray SQLite database (whisper_money) and reverts the package-lock.json churn from the original PR — this project uses bun, not npm, so package-lock.json should match main. --- package-lock.json | 917 +--------------------------------------------- whisper_money | Bin 143360 -> 0 bytes 2 files changed, 3 insertions(+), 914 deletions(-) delete mode 100644 whisper_money diff --git a/package-lock.json b/package-lock.json index 1326559f..af7eddb4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,7 +67,6 @@ "devDependencies": { "@eslint/js": "^9.39.3", "@laravel/vite-plugin-wayfinder": "^0.1.7", - "@modelcontextprotocol/sdk": "^1.29.0", "@release-it/conventional-changelog": "^10.0.5", "@sentry/vite-plugin": "^4.9.1", "@testing-library/jest-dom": "^6.9.1", @@ -81,7 +80,6 @@ "eslint-plugin-react-hooks": "^7.0.1", "jsdom": "^25.0.1", "playwright": "^1.58.2", - "portless": "^0.9.2", "prettier": "^3.8.1", "prettier-plugin-organize-imports": "^4.3.0", "prettier-plugin-tailwindcss": "^0.6.14", @@ -1189,19 +1187,6 @@ "react-dom": "^18 || ^19 || ^19.0.0-rc" } }, - "node_modules/@hono/node-server": { - "version": "1.19.14", - "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.14.tgz", - "integrity": "sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.14.1" - }, - "peerDependencies": { - "hono": "^4" - } - }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -1807,71 +1792,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@modelcontextprotocol/sdk": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz", - "integrity": "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@hono/node-server": "^1.19.9", - "ajv": "^8.17.1", - "ajv-formats": "^3.0.1", - "content-type": "^1.0.5", - "cors": "^2.8.5", - "cross-spawn": "^7.0.5", - "eventsource": "^3.0.2", - "eventsource-parser": "^3.0.0", - "express": "^5.2.1", - "express-rate-limit": "^8.2.1", - "hono": "^4.11.4", - "jose": "^6.1.3", - "json-schema-typed": "^8.0.2", - "pkce-challenge": "^5.0.0", - "raw-body": "^3.0.0", - "zod": "^3.25 || ^4.0", - "zod-to-json-schema": "^3.25.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@cfworker/json-schema": "^4.1.1", - "zod": "^3.25 || ^4.0" - }, - "peerDependenciesMeta": { - "@cfworker/json-schema": { - "optional": true - }, - "zod": { - "optional": false - } - } - }, - "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, "node_modules/@nodeutils/defaults-deep": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@nodeutils/defaults-deep/-/defaults-deep-1.1.0.tgz", @@ -5499,47 +5419,6 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/accepts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", @@ -5599,48 +5478,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", - "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -5973,31 +5810,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/body-parser": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", - "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "^3.1.2", - "content-type": "^1.0.5", - "debug": "^4.4.3", - "http-errors": "^2.0.0", - "iconv-lite": "^0.7.0", - "on-finished": "^2.4.1", - "qs": "^6.14.1", - "raw-body": "^3.0.1", - "type-is": "^2.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -6076,16 +5888,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/c12": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.3.tgz", @@ -6524,30 +6326,6 @@ "node": "^14.18.0 || >=16.10.0" } }, - "node_modules/content-disposition": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", - "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/conventional-changelog": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-7.1.1.tgz", @@ -6690,26 +6468,6 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.6.0" - } - }, "node_modules/core-js": { "version": "3.48.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz", @@ -6721,24 +6479,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/cors": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", - "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", @@ -7157,16 +6897,6 @@ "node": ">=0.4.0" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -7289,13 +7019,6 @@ "dev": true, "license": "MIT" }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true, - "license": "MIT" - }, "node_modules/electron-to-chromium": { "version": "1.5.307", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.307.tgz", @@ -7307,16 +7030,6 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/enhanced-resolve": { "version": "5.20.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz", @@ -7574,13 +7287,6 @@ "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true, - "license": "MIT" - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -7866,45 +7572,12 @@ "url": "https://github.com/bgub/eta?sponsor=1" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, - "node_modules/eventsource": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", - "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventsource-parser": "^3.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/eventsource-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.0.tgz", - "integrity": "sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", @@ -7955,96 +7628,6 @@ "node": ">=12.0.0" } }, - "node_modules/express": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", - "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.2.1", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", - "cookie": "^0.7.1", - "cookie-signature": "^1.2.1", - "debug": "^4.4.0", - "depd": "^2.0.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "finalhandler": "^2.1.0", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "merge-descriptors": "^2.0.0", - "mime-types": "^3.0.0", - "on-finished": "^2.4.1", - "once": "^1.4.0", - "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", - "range-parser": "^1.2.1", - "router": "^2.2.0", - "send": "^1.1.0", - "serve-static": "^2.2.0", - "statuses": "^2.0.1", - "type-is": "^2.0.1", - "vary": "^1.1.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express-rate-limit": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.5.2.tgz", - "integrity": "sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^10.2.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/express-rate-limit" - }, - "peerDependencies": { - "express": ">= 4.11" - } - }, - "node_modules/express/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/exsolve": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", @@ -8107,23 +7690,6 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "node_modules/fast-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", - "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, "node_modules/fd-package-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fd-package-json/-/fd-package-json-2.0.0.tgz", @@ -8164,28 +7730,6 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", - "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "on-finished": "^2.4.1", - "parseurl": "^1.3.3", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -8289,16 +7833,6 @@ "node": ">= 6" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/frac": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", @@ -8335,16 +7869,6 @@ } } }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -8777,16 +8301,6 @@ "hermes-estree": "0.25.1" } }, - "node_modules/hono": { - "version": "4.12.25", - "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.25.tgz", - "integrity": "sha512-2NFaIyNVgJmBs/ecmtGzlmluTFs5cHEWGTdu0t1HBwYzoGXOL5nUQBRMXsXWla5i4KkG//QMzVP88m1+I3fdAQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.9.0" - } - }, "node_modules/hosted-git-info": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz", @@ -8820,27 +8334,6 @@ "node": ">=18" } }, - "node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/http-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", @@ -9027,25 +8520,15 @@ } }, "node_modules/ip-address": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", - "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", "dev": true, "license": "MIT", "engines": { "node": ">= 12" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -9362,13 +8845,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "dev": true, - "license": "MIT" - }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -9627,16 +9103,6 @@ "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/jose": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.3.tgz", - "integrity": "sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -9749,13 +9215,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/json-schema-typed": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", - "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -10264,16 +9723,6 @@ "node": ">= 0.4" } }, - "node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/meow": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", @@ -10287,19 +9736,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/merge-descriptors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -10472,16 +9908,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -10780,29 +10206,6 @@ "dev": true, "license": "MIT" }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/onetime": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", @@ -11116,16 +10519,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -11173,17 +10566,6 @@ "dev": true, "license": "ISC" }, - "node_modules/path-to-regexp": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", - "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -11224,16 +10606,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pkce-challenge": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", - "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.20.0" - } - }, "node_modules/pkg-types": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", @@ -11293,24 +10665,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/portless": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/portless/-/portless-0.9.6.tgz", - "integrity": "sha512-imtPnrQ6NNqwYMeCDaJ0PhNx/98Y2piukiMGd0MNCquDuoi7n7mHOf5P1VwhUoqx7s6z+DIqzELein1vAjf/JA==", - "dev": true, - "license": "Apache-2.0", - "os": [ - "darwin", - "linux", - "win32" - ], - "bin": { - "portless": "dist/cli.js" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -11596,20 +10950,6 @@ "dev": true, "license": "MIT" }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/proxy-agent": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", @@ -11699,32 +11039,6 @@ "integrity": "sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==", "license": "MIT" }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", - "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.7.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/rc9": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", @@ -12086,16 +11400,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/reselect": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", @@ -12217,23 +11521,6 @@ "win32" ] }, - "node_modules/router": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "depd": "^2.0.0", - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/rrweb-cssom": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", @@ -12379,80 +11666,6 @@ "semver": "bin/semver.js" } }, - "node_modules/send": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", - "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.4.3", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^2.0.0", - "http-errors": "^2.0.1", - "mime-types": "^3.0.2", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/send/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/serve-static": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", - "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "parseurl": "^1.3.3", - "send": "^1.2.0" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -12499,13 +11712,6 @@ "node": ">= 0.4" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "license": "ISC" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12758,16 +11964,6 @@ "dev": true, "license": "MIT" }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/std-env": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", @@ -13190,16 +12386,6 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, "node_modules/tough-cookie": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", @@ -13286,66 +12472,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", - "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", - "dev": true, - "license": "MIT", - "dependencies": { - "content-type": "^2.0.0", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/type-is/node_modules/content-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", - "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -13518,16 +12644,6 @@ "dev": true, "license": "ISC" }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/unplugin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.0.1.tgz", @@ -13717,16 +12833,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/vaul": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vaul/-/vaul-1.1.2.tgz", @@ -15330,13 +14436,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, "node_modules/ws": { "version": "8.19.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", @@ -15500,16 +14599,6 @@ "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/zod-to-json-schema": { - "version": "3.25.2", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", - "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", - "dev": true, - "license": "ISC", - "peerDependencies": { - "zod": "^3.25.28 || ^4" - } - }, "node_modules/zod-validation-error": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", diff --git a/whisper_money b/whisper_money deleted file mode 100644 index bec3783f098cdb54882371fce903fe08c04bcb4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143360 zcmeI)%X1t@9l-G!Yps=RNozZCHeejqs~CIBcCxF7?T~2Y%PjaTfzsw}x)+XyPN+5t`1weM6anx+)xh{5d6m3i2oY zrKcb6^Y;bqnYZ8CD>LY&&%%*2ib+GxMU+5Dod~x%soRXN7sgaF#6*c!uK}W?;LHFO0U^aRL#z zV$oiiFh2jAN-t9vk8Vy-@aRd+{fR1l@ zVdV`+V%Y7~R+z~#+SarC`ma1+KRf?i+CQ1TjZSxFyr7B9g=K-pY+4|ZveRBUHCE7m z)|b68Gm~ad`akLSlf{B|y)ScpRx-rFqBLrLw4k|}oU`*YviV6)%Q3z6)xc_sw&nZA za$1}7dkb1;OR@QgC@B+0m2b475DwLnsy$yQXz#=&WoXTu6*3;@WDkYW72I;gk{kf8 zCrr21Y0F^{_G_>3iIIYKb-Z4$H$?JVey(>BZn}#pz@8AGKVu_pmT8zb-jd)bS2$oxa$^S}H@|NKG#0R#|0009ILKmY**5I_KdAr{ydwvFfiA?{(Ch5!Nx zAbOpC~{80R#|0009ILKmY**5I|t~1$h5I{C!Ld5kLR|1Q0*~ z0R#|0009IL;Qc=_fB*srAb{00IagfB*srAbh2AeM}1xKmY**5I_I{1Q0*~0R#}>{Xa2)00IagfB*srAb7VgLaI5I_I{1Q0*~0R#|00D<8b;Qjyb z_c1L*009ILKmY**5I_I{1Q0-g_y5EI0tg_000IagfB*srAb7A*HEW)pc5!ihBaIxHI z=yxv$#$wB|9MfB04XmbUTfT2BTmIG~Ph7gPaPitg<=Vv;Us-!V`VTL;o@FmPVLeZF>r<#mM zjU%?xv~Dj+B3byRyXcEf$8L&_W53n0l*5OUe!BkJ_htZaE4BaPy9ZY|_MSu#4UpmOQ@l`9LcT@%+Xzq)Ys+QnC2 zugxDCEnlA2wWx>uw_0{!iFlTfJr?$rSTq9jhUJTf^5wD3UmT2t?-e6qB}w^sC@ZX_ zq{2BtKX8ZzZeX;c=;_UE$}F{NIZfMH9-JZ5!Rh3voS>I3C&FX^bOq%|a3lEM$S@5# zDYe3g4$YGj_KnTF%h-!;PSWxGR=av&w0!2U?ngZ%?R*hMi|BqonD8dUq(4hM zKEk7+b{uK7O}$hsA3m(#vC@9?!yE^;^i)(xy& z^5h-RTkFTF8f$VY32&Gxz1mmm{Mdim+Q!q9QS5G(A_LQq;VoLOxgzf(-H%gQ5hW$m zl=rCaET>-Az2#V5Zi;n#)%J{d==Rs>bmkr%pS@O_pSs`3R4ODI%9qkcX@7JR+<3Rw zx+r}jr$zT`%bL;3o13=ZklMs(`CH{dQ%qdt-@< zy<(DFt!@0cSS%kss^8J0Zc1yF{ymoMtn_eL>2Ofy46yXf=`fNrk-aL6W>bzKIk=J% z@@SM%t}WAboIEseaAtwhQ!5d#&I-xA_3YSa`O?ur-JP~XG}2Gw8{ghrET224Zyt## z(j}1y2Y(Q+ef->mqgkZfJfYa&#aVV?rL=3n3M<>(_`J2+<sz7)Hl?95qeTpLm#Om*Fh? z`kvA9sZ;u!@u-Z~L%t>NYvB_}_UlL{{Q444hU=KqvZTD-=*9A}WBTS}(K*}pa(o}~ zd!P1X&Q$Fsq~krkW2o^r@Fv_X-W~O7U`NZjtvB1+;vYVAUGw0!l)0kFc3$MLTZUnLp~7t#iKwQ6HGLw^OH7DZ5#hBn;lK>woN#jjGk|9;-x@ zA9P|$xnbFk9-D;MX<2@F(^J2Ht&g%VIi=jz{WDxB4cZG0?4Xsu11N9Jt|uQ)w(@p& zUry9dNb0B^;-;Us9~2KXVaj2$?8?13rJrTVBvp2JvS*Y%CX`)RnG$b~_V2PjL{FzK z*=~-Pm4o(VPggSAx;gF3o-Jv)Eq5TdoKijwMBCMJ<*J={fNA^Qm8Xm4+RR{F0+;ufQd%*6VlBjmGdR3+3(L5V(xvM#hb~r(A z4Nw^@X2%OR+2h^c+;w9Zb@Dkf+>w;|qi;@6`JePqZSx0DMh{?jMMTyMp5CV;S-f7tqZPE} zE0pfw3P+6Fa(ml_@<1AsDTq3HABA{kc%>K11Zq@;oXNNQj_pU~Xy5AnU&Z(5c#S7l zh|yZle=-Z19^MgSTE9GuI7s_nkAz3nNlE1k2ZVY*RnxwB_6ycm^KbkA7roLqZqlY^ zJ2svX22DUU{{8<0EGfu>00IagfB*srAbaF?B(flY00IagfB*srAb Date: Mon, 15 Jun 2026 17:33:12 +0100 Subject: [PATCH 05/13] feat(i18n): complete French translation, wire locale, make CI check optional for French - Fills 9 keys missing from fr.json (AI categorization, billing, account deletion, and catch-all budget strings added to main after #532 branched) and repairs 25 entries whose Laravel :placeholders had been translated (e.g. :count -> :compte), which would break interpolation at runtime. - Wires 'fr' into the SetLocale middleware allowlists and Accept-Language detection (the original PR left these at en/es, so fr was rejected), and drives the landing language switcher from LANGUAGE_OPTIONS. - Generalizes LocalizationTest across locales: Spanish stays enforced, while French gaps mark the test incomplete (warn, exit 0) so an incomplete community translation never blocks CI. Adds SetLocaleTest. --- app/Http/Middleware/SetLocale.php | 9 +- lang/fr.json | 61 +++++---- resources/js/pages/welcome.tsx | 26 ++-- tests/Feature/LocalizationTest.php | 204 +++++++++++++++++++++-------- tests/Feature/SetLocaleTest.php | 49 +++++++ 5 files changed, 259 insertions(+), 90 deletions(-) create mode 100644 tests/Feature/SetLocaleTest.php diff --git a/app/Http/Middleware/SetLocale.php b/app/Http/Middleware/SetLocale.php index c7817a17..212d00e4 100644 --- a/app/Http/Middleware/SetLocale.php +++ b/app/Http/Middleware/SetLocale.php @@ -29,7 +29,7 @@ class SetLocale protected function determineLocale(Request $request): string { // Priority 1: Check for lang query parameter (user override on welcome page) - if ($request->has('lang') && in_array($request->get('lang'), ['en', 'es'])) { + if ($request->has('lang') && in_array($request->get('lang'), ['en', 'es', 'fr'])) { $locale = $request->get('lang'); // Store in session so subsequent requests remember this choice $request->session()->put('locale', $locale); @@ -46,7 +46,7 @@ class SetLocale if ($request->user()) { $detected = $this->detectLocaleFromHeader($request); - if (in_array($request->session()->get('locale'), ['en', 'es'])) { + if (in_array($request->session()->get('locale'), ['en', 'es', 'fr'])) { $detected = $request->session()->get('locale'); } @@ -81,6 +81,11 @@ class SetLocale return 'es'; } + // Check if French is preferred + if (preg_match('/^fr(-|,|;)/i', $acceptLanguage) || $acceptLanguage === 'fr') { + return 'fr'; + } + return 'en'; } } diff --git a/lang/fr.json b/lang/fr.json index d01dbfa2..43b4dbb7 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -56,15 +56,15 @@ "Saved filters": "Filtres enregistrés", "Saving…": "Économie…", "Unsaved changes": "Modifications non enregistrées", - "Update “:name”": "Mettre à jour « : nom »", + "Update “:name”": "Mettre à jour « :name »", "e.g. Japan trip, Utilities": "p. par ex. Voyage au Japon, Services", "Give this set of filters a name so you can reuse it later.": "Donnez un nom à cet ensemble de filtres pour le réutiliser ultérieurement.", - "+:count": "+:compte", - ":count selected": ": nombre sélectionné", + "+:count": "+:count", + ":count selected": ":count sélectionné(s)", "Categories": "Catégories", "Labels": "Balises", "No results.": "Aucun résultat.", - "Remove :label": "Supprimer :étiquette", + "Remove :label": "Supprimer :label", "Search categories…": "Catégories de recherche…", "Search labels…": "Rechercher des balises…", "Search…": "Rechercher…", @@ -138,11 +138,11 @@ "8. Your Rights Under GDPR": "8. Vos droits en vertu du RGPD", "9. Cookies and Tracking": "9. Cookies et suivi", "9. Disclaimers and Warranties": "9. Avis de non-responsabilité et garanties", - ":count matching transaction(s)": ":compter les transactions correspondantes", - ":count new transactions synced on Whisper Money": ":compter les nouvelles transactions synchronisées dans Whisper Money", - ":count transaction": ":compter la transaction", + ":count matching transaction(s)": ":count transaction(s) correspondante(s)", + ":count new transactions synced on Whisper Money": ":count nouvelles transactions synchronisées dans Whisper Money", + ":count transaction": ":count transaction", ":count transaction(s) will be affected.": ":count transaction(s) sera affecté.", - ":count transactions": ":compter les transactions", + ":count transactions": ":count transactions", "@alext_money": "@alext_money", "@davidk_dev": "@davidk_dev", "@emmalou": "@emmalou", @@ -187,7 +187,7 @@ "Accounts Created": "Comptes créés", "Accounts need to be mapped before syncing can begin.": "Les comptes doivent être mappés avant que la synchronisation puisse commencer.", "Accounts will become manual. All transactions and balances will be preserved.": "Les comptes deviendront manuels. Toutes les transactions et soldes seront conservés.", - "Action required: :provider connection needs attention": "Action requise : la connexion à :le fournisseur nécessite une attention particulière", + "Action required: :provider connection needs attention": "Action requise : la connexion à :provider nécessite une attention particulière", "Actions": "Actes", "Add": "Ajouter", "Add Another Account": "Ajouter un autre compte", @@ -262,10 +262,10 @@ "Apply rule to existing transactions": "Appliquer la règle aux transactions existantes", "Apply rules to remaining transactions?": "Appliquer des règles aux transactions restantes ?", "Apply this rule to your existing transactions?": "Appliquer cette règle à vos transactions existantes ?", - "Apply to :count transaction(s)": "Appliquer à :compter transaction(s)", + "Apply to :count transaction(s)": "Appliquer à :count transaction(s)", "Apply to existing transactions": "Appliquer aux transactions existantes", "Applying rule…": "Application de la règle…", - "Applying rule… :processed of :total processed": "Application de la règle… : traité sur : total traité", + "Applying rule… :processed of :total processed": "Application de la règle… :processed sur :total traités", "Are you overspending? Know exactly where you stand.": "Dépensez-vous plus ? Sachez exactement où vous en êtes.", "Are you sure you want to delete": "Etes-vous sûr de vouloir supprimer", "Are you sure you want to delete \"": "Etes-vous sûr de vouloir supprimer \"", @@ -399,7 +399,7 @@ "Choose a category type to see how it affects cashflow and charts.": "Choisissez un type de catégorie pour voir son impact sur les flux de trésorerie et les graphiques.", "Choose a category type to see how this category will affect cashflow analytics.": "Choisissez un type de catégorie pour voir comment cette catégorie affectera vos analyses de flux de trésorerie.", "Choose cashflow chart visibility": "Choisissez la visibilité sur le graphique de trésorerie", - "Choose how to handle each account from :bank. You can create new accounts, link to existing ones, or skip.": "Choisissez comment gérer chaque :compte bancaire. Vous pouvez créer de nouveaux comptes, les lier à des comptes existants ou les ignorer.", + "Choose how to handle each account from :bank. You can create new accounts, link to existing ones, or skip.": "Choisissez comment gérer chaque compte de :bank. Vous pouvez créer de nouveaux comptes, les lier à des comptes existants ou les ignorer.", "Choose how to report this category": "Choisissez comment signaler cette catégorie", "Choose how to report this transfer": "Choisissez comment afficher ce transfert", "Choose the account where transactions will be imported": "Choisissez le compte où les transactions seront importées", @@ -541,7 +541,7 @@ "Date Format": "Format des dates", "Date is required": "Une date est requise", "David K.": "David K.", - "Day :day": "Jour :jour", + "Day :day": "Jour :day", "Day of the month when the period starts (1-31)": "Jour du mois où commencent les règles (1-31)", "Day of week (0=Sunday, 6=Saturday)": "Jour de la semaine (0=dimanche, 6=samedi)", "Debtor": "Débiteur", @@ -550,7 +550,7 @@ "Debtor name (Optional)": "Nom du débiteur (facultatif)", "Define monthly budgets by category. Know exactly how much you can spend.": "Définissez les budgets mensuels par catégorie. Sachez exactement combien vous pouvez dépenser.", "Delete": "Éliminer", - "Delete :count Transactions": "Supprimer : compter les transactions", + "Delete :count Transactions": "Supprimer :count transactions", "Delete Account": "Supprimer le compte", "Delete Automation Rule": "Supprimer la règle d'automatisation", "Delete Budget": "Supprimer le budget", @@ -756,13 +756,13 @@ "Healthy Pharmacy": "Pharmacie saine", "Help Me Improve": "Aide-moi à m'améliorer", "Help Us Improve": "Aidez-nous à améliorer", - "Hey :name, is everything okay?": "Hé :nom, tout va bien ?", + "Hey :name, is everything okay?": "Hé :name, tout va bien ?", "Hey there!": "Bonjour!", "Hey! A quick heads-up.": "Bonjour! Un avertissement rapide.", "Hey! We have some great news.": "Bonjour! Nous avons de bonnes nouvelles.", "Hide password": "Masquer le mot de passe", "Hide subcategories": "Masquer les sous-catégories", - "Hi :name,": "Bonjour :nom,", + "Hi :name,": "Bonjour :name,", "Hi! I'm Victor, the founder of Whisper Money. I wanted to personally welcome you and thank you for joining us.": "Bonjour! Je suis Victor, le fondateur de Whisper Money. Je voulais vous souhaiter la bienvenue personnellement et vous remercier de votre participation.", "Hi! It's Victor and Álvaro here, the founders of Whisper Money. You've been using the app for a few days now, and we'd love to hear how it's working for you.": "Bonjour! Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Vous utilisez l'application depuis quelques jours et nous aimerions savoir comment elle fonctionne pour vous.", "Hi! It's Victor and Álvaro, the founders of Whisper Money. We noticed you've cancelled your subscription, and we wanted to reach out personally.": "Bonjour! Nous sommes Víctor et Álvaro, les fondateurs de Whisper Money. Nous avons remarqué que vous avez annulé votre abonnement et souhaitons vous contacter personnellement.", @@ -784,7 +784,7 @@ "How to Import Your Transactions": "Comment importer vos transactions", "How would you like to set up this account?": "Comment souhaitez-vous créer ce compte ?", "How's Your Experience So Far?": "Comment se déroule votre expérience jusqu’à présent ?", - "How's it going, :name?": "Comment ça va, :nom?", + "How's it going, :name?": "Comment ça va, :name ?", "I Understand, Continue": "Je comprends, continuez", "I built Whisper Money because I believe **your financial data should be yours alone**:": "J'ai créé Whisper Money parce que je pense que **vos données financières devraient être les vôtres** :", "I don't use AI to analyze your spending or sell insights about your habits. Your financial data stays between you and your spreadsheet-loving self.": "Je n'utilise pas l'IA pour analyser vos dépenses ou vendre des informations sur vos habitudes. Vos données financières sont entre vous et votre amour des feuilles de calcul.", @@ -1254,7 +1254,7 @@ "Sarah M.": "Sarah M.", "Save": "Garder", "Save & Sync": "Enregistrer et synchroniser", - "Save :percent%": "Économisez :pourcentage", + "Save :percent%": "Économisez :percent %", "Save Balance": "Enregistrer le solde", "Save Changes": "Enregistrer les modifications", "Save money for goals": "Économisez de l'argent pour vos objectifs", @@ -1369,7 +1369,7 @@ "Show password": "Afficher le mot de passe", "Show subcategories": "Afficher les sous-catégories", "Show as cash outflow": "Afficher comme retrait d'argent", - "Show in account currency (:currency)": "Afficher dans la devise du compte (:devise)", + "Show in account currency (:currency)": "Afficher dans la devise du compte (:currency)", "Show in cashflow chart as inflow": "Afficher sur le graphique des flux de trésorerie en entrée", "Show in cashflow chart as outflow": "Afficher sur le graphique des flux de trésorerie en sortie", "Show in your currency (:currency)": "Afficher dans votre devise (:currency)", @@ -1586,7 +1586,7 @@ "Two-factor authentication settings cannot be\\n changed on the demo account.": "Les paramètres d'authentification à deux facteurs ne peuvent pas être modifiés sur le compte démo.", "Type": "Gars", "Type \"delete all\" to confirm:": "Tapez \"supprimer tout\" pour confirmer :", - "Type :word to confirm.": "Tapez :mot pour confirmer.", + "Type :word to confirm.": "Tapez :word pour confirmer.", "Type DELETE": "Tapez SUPPRIMER", "Type at least 3 characters to search": "Entrez au moins 3 caractères pour rechercher", "US Dollar": "dollar américain", @@ -1636,7 +1636,7 @@ "Update your budget settings. To change the allocated amount or tracking, use the budget page directly.": "Mettez à jour vos paramètres budgétaires. Pour modifier la valeur attribuée ou le suivi, utilisez directement la page de devis.", "Update your budget settings. To change the allocated\\n amount or tracking, use the budget page directly.": "Mettez à jour vos paramètres budgétaires. Pour modifier le montant alloué ou le suivi, utilisez directement la page budget.", "Update your name and email address": "Mettez à jour votre nom et votre adresse e-mail", - "Updated :count transactions": "Mise à jour : compter les transactions", + "Updated :count transactions": ":count transactions mises à jour", "Updating transactions...": "Mise à jour des transactions...", "Updating...": "Mise à jour...", "Upgrade to Standard Plan": "Passer au forfait standard", @@ -1662,7 +1662,7 @@ "Verify Email Address": "Vérifier l'e-mail", "Verify Your Email - Whisper Money": "Vérifiez votre e-mail - Whisper Money", "Verify email": "Vérifier l'e-mail", - "Verify your email, :name!": "Vérifiez votre courrier électronique, :nom !", + "Verify your email, :name!": "Vérifiez votre courrier électronique, :name !", "Version:": "Version:", "View Details": "Voir les détails", "View Transactions": "Afficher les transactions", @@ -2062,12 +2062,12 @@ "is": "est", "Match text": "Texte correspondant", "Categorize as": "Classer comme", - "New: :name": "Nouveau : :nom", + "New: :name": "Nouveau : :name", "Preview matching transactions": "Afficher les transactions correspondantes", "Loading…": "Chargement…", - ":count of :total uncategorized transactions match": ": nombre de : correspondance totale de transactions non classées", + ":count of :total uncategorized transactions match": ":count transactions non catégorisées sur :total correspondent", "Matching transactions": "Opérations correspondantes", - "Preview :count matching transactions": "Afficher : compter les transactions correspondantes", + "Preview :count matching transactions": "Afficher :count transactions correspondantes", "If the transaction": "Si l'opération", "If the transaction matches any of": "Si la transaction correspond à l'un des", "Add value": "Ajouter de la valeur", @@ -2075,5 +2075,14 @@ "or": "soit", "Create rule": "Créer une règle", "Ignore rule": "Ignorer la règle", - ":count matches": ":compter les correspondances" + ":count matches": ":count correspondances", + "Categorized by AI": "Catégorisé par l'IA", + "Categorized by AI with :confidence% confident": "Catégorisé par l'IA avec :confidence % de confiance", + "Manage billing": "Gérer la facturation", + "Only show AI guesses": "Afficher uniquement les suggestions de l'IA", + "Please cancel your subscription before deleting your account.": "Veuillez annuler votre abonnement avant de supprimer votre compte.", + "Catch-all budget": "Budget général", + "All untracked expenses": "Toutes les dépenses non suivies", + "Automatically track every expense that no other budget covers. You can only have one.": "Suit automatiquement chaque dépense qu'aucun autre budget ne couvre. Vous ne pouvez en avoir qu'un seul.", + "This catch-all budget tracks every expense that no other budget covers.": "Ce budget général suit chaque dépense qu'aucun autre budget ne couvre." } \ No newline at end of file diff --git a/resources/js/pages/welcome.tsx b/resources/js/pages/welcome.tsx index 72b1bfe9..c45094b3 100644 --- a/resources/js/pages/welcome.tsx +++ b/resources/js/pages/welcome.tsx @@ -13,6 +13,7 @@ import { cn } from '@/lib/utils'; import { store as storeUserLead } from '@/routes/user-leads'; import { type SharedData } from '@/types'; import { type CategoryColor, getCategoryColorClasses } from '@/types/category'; +import { LANGUAGE_OPTIONS } from '@/types/language'; import { Plan } from '@/types/pricing'; import { formatCurrency } from '@/utils/currency'; import { __ } from '@/utils/i18n'; @@ -2067,7 +2068,11 @@ export default function Welcome({ const urlParams = new URLSearchParams(window.location.search); const langParam = urlParams.get('lang'); - if (langParam && ['en', 'es'].includes(langParam)) { + const supportedLocales: readonly string[] = LANGUAGE_OPTIONS.map( + (option) => option.code, + ); + + if (langParam && supportedLocales.includes(langParam)) { // Store the preference in localStorage localStorage.setItem('whisper_landing_locale', langParam); } else { @@ -2077,7 +2082,7 @@ export default function Welcome({ if ( storedLocale && storedLocale !== locale && - ['en', 'es'].includes(storedLocale) + supportedLocales.includes(storedLocale) ) { // Redirect to stored preference window.location.href = `/?lang=${storedLocale}`; @@ -2858,12 +2863,17 @@ export default function Welcome({ > {__('Terms of Service')} - - {locale === 'es' ? 'English' : 'Español'} - + {LANGUAGE_OPTIONS.filter( + (option) => option.code !== locale, + ).map((option) => ( + + {option.label} + + ))} diff --git a/tests/Feature/LocalizationTest.php b/tests/Feature/LocalizationTest.php index b47713fa..45febc22 100644 --- a/tests/Feature/LocalizationTest.php +++ b/tests/Feature/LocalizationTest.php @@ -1,13 +1,33 @@ + */ +const ENFORCED_LOCALES = ['es']; + +/** + * Locales whose translation gaps only emit a warning. + * + * @var array + */ +const OPTIONAL_LOCALES = ['fr']; + /** * Recursively flattens a nested PHP translation array using dot notation. * @@ -69,68 +89,144 @@ function extractI18nKeysFromSource(): array return array_unique($keys); } -describe('Spanish PHP translation files', function () { - it('has every key from the English PHP files translated', function () { - $englishDir = lang_path('en'); - $missingByFile = []; +/** + * Computes the PHP translation keys present in lang/en but missing from the + * given locale, grouped by filename. A wholly absent file is reported as the + * sentinel "__missing_file__". + * + * @return array> + */ +function missingPhpTranslationKeys(string $locale): array +{ + $englishDir = lang_path('en'); + $missingByFile = []; - /** @var SplFileInfo $file */ - foreach (new FilesystemIterator($englishDir, FilesystemIterator::SKIP_DOTS) as $file) { - if ($file->getExtension() !== 'php') { - continue; - } - - $filename = $file->getFilename(); - $spanishPath = lang_path("es/{$filename}"); - - if (! file_exists($spanishPath)) { - $missingByFile[$filename] = ['__missing_file__']; - - continue; - } - - $englishKeys = flattenTranslations(require $file->getPathname()); - $spanishKeys = flattenTranslations(require $spanishPath); - $missingKeys = array_keys(array_diff_key($englishKeys, $spanishKeys)); - - if ($missingKeys !== []) { - $missingByFile[$filename] = $missingKeys; - } + /** @var SplFileInfo $file */ + foreach (new FilesystemIterator($englishDir, FilesystemIterator::SKIP_DOTS) as $file) { + if ($file->getExtension() !== 'php') { + continue; } - $report = implode("\n", array_map( - fn (string $f, array $keys) => "lang/es/{$f}:\n - ".implode("\n - ", $keys), - array_keys($missingByFile), - $missingByFile, - )); + $filename = $file->getFilename(); + $localePath = lang_path("{$locale}/{$filename}"); + + if (! file_exists($localePath)) { + $missingByFile[$filename] = ['__missing_file__']; + + continue; + } + + $englishKeys = flattenTranslations(require $file->getPathname()); + $localeKeys = flattenTranslations(require $localePath); + $missingKeys = array_keys(array_diff_key($englishKeys, $localeKeys)); + + if ($missingKeys !== []) { + $missingByFile[$filename] = $missingKeys; + } + } + + return $missingByFile; +} + +/** + * Renders a human-readable report of missing PHP translation keys. + * + * @param array> $missingByFile + */ +function formatPhpTranslationReport(string $locale, array $missingByFile): string +{ + return implode("\n", array_map( + fn (string $f, array $keys) => "lang/{$locale}/{$f}:\n - ".implode("\n - ", $keys), + array_keys($missingByFile), + $missingByFile, + )); +} + +/** + * Computes the __() source keys missing from the given locale's JSON file. + * A missing or malformed file is reported via a sentinel entry. + * + * @return array + */ +function missingJsonTranslationKeys(string $locale): array +{ + $jsonPath = lang_path("{$locale}.json"); + + if (! file_exists($jsonPath)) { + return ['__missing_file__']; + } + + $json = json_decode(file_get_contents($jsonPath), associative: true); + + if (! is_array($json)) { + return ['__invalid_json__']; + } + + $sourceKeys = extractI18nKeysFromSource(); + $missingKeys = array_values(array_filter( + $sourceKeys, + fn (string $key) => ! array_key_exists($key, $json) + )); + + sort($missingKeys); + + return $missingKeys; +} + +describe('enforced PHP translations', function () { + it('has every English PHP key translated', function (string $locale) { + $missingByFile = missingPhpTranslationKeys($locale); expect($missingByFile)->toBeEmpty( - "Spanish PHP translation files have missing keys:\n{$report}" + "{$locale} PHP translation files have missing keys:\n".formatPhpTranslationReport($locale, $missingByFile) ); - }); + })->with(ENFORCED_LOCALES); }); -describe('Spanish JSON translations', function () { - it('has every __() key from TypeScript source files translated in es.json', function () { - $spanishJsonPath = lang_path('es.json'); +describe('enforced JSON translations', function () { + it('has every __() source key translated', function (string $locale) { + expect(lang_path("{$locale}.json"))->toBeFile("Missing lang/{$locale}.json translation file"); - expect($spanishJsonPath)->toBeFile('Missing lang/es.json translation file'); + $missingKeys = missingJsonTranslationKeys($locale); - $spanishJson = json_decode(file_get_contents($spanishJsonPath), associative: true); + expect($missingKeys)->toBeEmpty( + count($missingKeys)." key(s) used in source via __() are missing from lang/{$locale}.json:\n - ".implode("\n - ", $missingKeys) + ); + })->with(ENFORCED_LOCALES); +}); - expect($spanishJson)->toBeArray('lang/es.json must contain a valid JSON object'); +describe('optional PHP translations', function () { + it('warns about untranslated PHP keys', function (string $locale) { + $missingByFile = missingPhpTranslationKeys($locale); - $sourceKeys = extractI18nKeysFromSource(); - $missingKeys = array_values(array_filter( - $sourceKeys, - fn (string $key) => ! array_key_exists($key, $spanishJson) - )); - - sort($missingKeys); - - expect($missingKeys) - ->toBeEmpty( - count($missingKeys)." key(s) used in source via __() are missing from lang/es.json:\n - ".implode("\n - ", $missingKeys) + if ($missingByFile !== []) { + // Optional locale: surface the gap as an incomplete test so it stays + // visible in the run summary without failing CI (no failOnIncomplete + // is configured). + Assert::markTestIncomplete( + "Optional locale '{$locale}' has missing PHP translation keys (not blocking):\n" + .formatPhpTranslationReport($locale, $missingByFile) ); - }); + } + + expect($missingByFile)->toBeEmpty(); + })->with(OPTIONAL_LOCALES); +}); + +describe('optional JSON translations', function () { + it('warns about __() source keys missing from the locale JSON', function (string $locale) { + $missingKeys = missingJsonTranslationKeys($locale); + + if ($missingKeys !== []) { + // Optional locale: surface the gap as an incomplete test so it stays + // visible in the run summary without failing CI (no failOnIncomplete + // is configured). + Assert::markTestIncomplete( + count($missingKeys)." key(s) used in source via __() are missing from lang/{$locale}.json (not blocking):\n - " + .implode("\n - ", $missingKeys) + ); + } + + expect($missingKeys)->toBeEmpty(); + })->with(OPTIONAL_LOCALES); }); diff --git a/tests/Feature/SetLocaleTest.php b/tests/Feature/SetLocaleTest.php new file mode 100644 index 00000000..033928d6 --- /dev/null +++ b/tests/Feature/SetLocaleTest.php @@ -0,0 +1,49 @@ +setLaravelSession(app('session.store')); + + (new SetLocale)->handle($request, fn () => new Response); + + return App::getLocale(); +} + +it('applies a supported locale from the lang query parameter', function (string $locale) { + $request = Request::create('/', 'GET', ['lang' => $locale]); + + expect(resolveLocaleFor($request))->toBe($locale); +})->with(['en', 'es', 'fr']); + +it('ignores an unsupported lang query parameter', function () { + $request = Request::create('/', 'GET', ['lang' => 'de']); + + expect(resolveLocaleFor($request))->not->toBe('de'); +}); + +it('detects French from the Accept-Language header', function () { + $request = Request::create('/', 'GET', server: ['HTTP_ACCEPT_LANGUAGE' => 'fr-FR,fr;q=0.9,en;q=0.8']); + + expect(resolveLocaleFor($request))->toBe('fr'); +}); + +it('detects Spanish from the Accept-Language header', function () { + $request = Request::create('/', 'GET', server: ['HTTP_ACCEPT_LANGUAGE' => 'es-ES,es;q=0.9']); + + expect(resolveLocaleFor($request))->toBe('es'); +}); + +it('falls back to English for an unrecognized Accept-Language header', function () { + $request = Request::create('/', 'GET', server: ['HTTP_ACCEPT_LANGUAGE' => 'de-DE,de;q=0.9']); + + expect(resolveLocaleFor($request))->toBe('en'); +}); From 1c8357ba9890f95ccba76ced4c954693d81092e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vi=CC=81ctor=20Falco=CC=81n?= Date: Mon, 15 Jun 2026 17:39:27 +0100 Subject: [PATCH 06/13] fix: satisfy Pint single_quote rule in lang/fr/passwords.php --- lang/fr/passwords.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/fr/passwords.php b/lang/fr/passwords.php index 5e33807d..cff1d0ef 100644 --- a/lang/fr/passwords.php +++ b/lang/fr/passwords.php @@ -17,6 +17,6 @@ return [ 'sent' => 'Nous vous avons envoyé par e-mail le lien de réinitialisation de votre mot de passe.', 'throttled' => 'Veuillez patienter avant de réessayer.', 'token' => 'Ce jeton de réinitialisation de mot de passe n\'est pas valide.', - 'user' => "Aucun utilisateur ne correspond à cette adresse e-mail.", + 'user' => 'Aucun utilisateur ne correspond à cette adresse e-mail.', ]; From 96ce2d7d256180745e122dcc2a58f35b08e85981 Mon Sep 17 00:00:00 2001 From: elnuage Date: Tue, 16 Jun 2026 11:55:01 +0200 Subject: [PATCH 07/13] i18n: Add french to mobilLabels --- resources/js/providers/menu-item-provider.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/resources/js/providers/menu-item-provider.tsx b/resources/js/providers/menu-item-provider.tsx index 602db216..44ebf3d7 100644 --- a/resources/js/providers/menu-item-provider.tsx +++ b/resources/js/providers/menu-item-provider.tsx @@ -26,6 +26,13 @@ const mobileLabels: Record> = { transactions: 'Movim.', budgets: 'Presup.', }, + fr: { + dashboard: 'Accueil', + cashflow: 'Trésorerie', + accounts: 'Comptes', + transactions: 'Mouvements', + budgets: 'Budget', + }, }; function getMobileLabel(key: string, locale: string): string { From 37ac4fc994ec6b2115f96fddeeea400deecb9a61 Mon Sep 17 00:00:00 2001 From: elnuage Date: Wed, 17 Jun 2026 10:24:38 +0200 Subject: [PATCH 08/13] Add support for personal subscription --- .../PersonalSubscriptionController.php | 44 +++++++++++++++++++ app/Models/PersonalSubscription.php | 22 ++++++++++ app/Models/User.php | 5 +++ ...55_create_personal_subscriptions_table.php | 34 ++++++++++++++ resources/js/providers/menu-item-provider.tsx | 9 ++++ routes/web.php | 6 +++ 6 files changed, 120 insertions(+) create mode 100644 app/Http/Controllers/PersonalSubscriptionController.php create mode 100644 app/Models/PersonalSubscription.php create mode 100644 database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php diff --git a/app/Http/Controllers/PersonalSubscriptionController.php b/app/Http/Controllers/PersonalSubscriptionController.php new file mode 100644 index 00000000..d69ec056 --- /dev/null +++ b/app/Http/Controllers/PersonalSubscriptionController.php @@ -0,0 +1,44 @@ + $request->user() + ->personalSubscriptions() + ->orderBy('next_billing_date') + ->get(), + ]); + } + + public function store(Request $request) + { + $validated = $request->validate([ + 'name' => ['required', 'string', 'max:255'], + 'amount' => ['required', 'numeric', 'min:0'], + 'currency' => ['required', 'string', 'size:3'], + 'billing_cycle' => ['required', 'in:weekly,monthly,biweekly,yearly'], + 'next_billing_date' => ['required', 'date'], + 'color' => ['nullable', 'string', 'max:20'], + ]); + + $request->user()->personalSubscriptions()->create($validated); + + return back(); + } + + public function destroy(Request $request, PersonalSubscription $personalSubscription) + { + abort_unless($personalSubscription->user_id === $request->user()->id, 403); + $personalSubscription->delete(); + + return back(); + } +} \ No newline at end of file diff --git a/app/Models/PersonalSubscription.php b/app/Models/PersonalSubscription.php new file mode 100644 index 00000000..f43c49f4 --- /dev/null +++ b/app/Models/PersonalSubscription.php @@ -0,0 +1,22 @@ + 'date', + 'amount' => 'decimal:2', + ]; + + public function user() + { + return $this->belongsTo(User::class); + } +} \ No newline at end of file diff --git a/app/Models/User.php b/app/Models/User.php index 98b9914c..131e87cb 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -368,4 +368,9 @@ class User extends Authenticatable implements HasLocalePreference, MustVerifyEma return "{$timestamp}_{$this->getKey()}_{$originalEmail}"; } + + public function personalSubscriptions() + { + return $this->hasMany(PersonalSubscription::class); + } } diff --git a/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php b/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php new file mode 100644 index 00000000..4068986c --- /dev/null +++ b/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php @@ -0,0 +1,34 @@ +id(); + $table->foreignUuid('user_id')->constrained()->cascadeOnDelete(); + $table->string('name'); + $table->decimal('amount', 8, 2); + $table->string('currency', 3)->default('EUR'); + $table->enum('billing_cycle', ['weekly', 'monthly', 'biweekly', 'yearly'])->default('monthly'); + $table->date('next_billing_date'); + $table->string('color')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('personal_subscriptions'); + } +}; diff --git a/resources/js/providers/menu-item-provider.tsx b/resources/js/providers/menu-item-provider.tsx index 44ebf3d7..dfdf58c9 100644 --- a/resources/js/providers/menu-item-provider.tsx +++ b/resources/js/providers/menu-item-provider.tsx @@ -1,9 +1,11 @@ import { index as accountsIndex } from '@/actions/App/Http/Controllers/AccountController'; import { index as budgetsIndex } from '@/actions/App/Http/Controllers/BudgetController'; import { index as transactionsIndex } from '@/actions/App/Http/Controllers/TransactionController'; +import { index as PersonalSubscriptionIndex } from '@/actions/App/Http/Controllers/PersonalSubscriptionController'; import { cashflow, dashboard } from '@/routes'; import { Features, NavItem } from '@/types'; import { + CalendarSync, CreditCard, LayoutGrid, PiggyBank, @@ -82,6 +84,13 @@ export function getMainNavItems(features: Features, locale: string): NavItem[] { href: budgetsIndex(), icon: PiggyBank, }, + { + type: 'nav-item', + title: 'Subscriptions', + mobileTitle: getMobileLabel('budgets', locale), + href: PersonalSubscriptionIndex(), + icon: CalendarSync, + }, ); return items; diff --git a/routes/web.php b/routes/web.php index f38f7abb..a904b39b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -23,6 +23,7 @@ use App\Http\Controllers\SitemapController; use App\Http\Controllers\SubscriptionController; use App\Http\Controllers\TransactionController; use App\Http\Controllers\UserLeadController; +use App\Http\Controllers\PersonalSubscriptionController; use App\Models\Bank; use App\Services\LandingAuthOverrideService; use Illuminate\Http\Request; @@ -168,4 +169,9 @@ Route::middleware(['auth', 'verified', 'onboarded', 'subscribed'])->group(functi Route::delete('budgets/{budget}', [BudgetController::class, 'destroy'])->name('budgets.destroy'); }); +Route::middleware(['auth'])->group(function () { + Route::resource('personal-subscriptions', PersonalSubscriptionController::class) + ->only(['index', 'store', 'destroy']); +}); + require __DIR__.'/settings.php'; From 7494ea4a0e1fe85f8262a1410a7b4e66a5a821fb Mon Sep 17 00:00:00 2001 From: elnuage <106245123+nuageeee@users.noreply.github.com> Date: Wed, 17 Jun 2026 10:58:55 +0200 Subject: [PATCH 09/13] Refactor migration class syntax for subscriptions table --- .../2026_06_16_210355_create_personal_subscriptions_table.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php b/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php index 4068986c..7dd8fd46 100644 --- a/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php +++ b/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php @@ -4,8 +4,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration -{ +return new class extends Migration { /** * Run the migrations. */ From f469365500e848793f8b891793781affe248528a Mon Sep 17 00:00:00 2001 From: elnuage <106245123+nuageeee@users.noreply.github.com> Date: Wed, 17 Jun 2026 10:59:33 +0200 Subject: [PATCH 10/13] Add missing newline at end of PersonalSubscription.php --- app/Models/PersonalSubscription.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/PersonalSubscription.php b/app/Models/PersonalSubscription.php index f43c49f4..c94f1bee 100644 --- a/app/Models/PersonalSubscription.php +++ b/app/Models/PersonalSubscription.php @@ -19,4 +19,4 @@ class PersonalSubscription extends Model { return $this->belongsTo(User::class); } -} \ No newline at end of file +} From 8bcd9d52f20856440a66c8ad96bcfe0895cf63fc Mon Sep 17 00:00:00 2001 From: elnuage Date: Wed, 17 Jun 2026 11:04:29 +0200 Subject: [PATCH 11/13] Edit for pint test --- .../PersonalSubscriptionController.php | 2 +- ...355_create_personal_subscriptions_table.php | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/PersonalSubscriptionController.php b/app/Http/Controllers/PersonalSubscriptionController.php index d69ec056..d7d7f1bd 100644 --- a/app/Http/Controllers/PersonalSubscriptionController.php +++ b/app/Http/Controllers/PersonalSubscriptionController.php @@ -41,4 +41,4 @@ class PersonalSubscriptionController extends Controller return back(); } -} \ No newline at end of file +} diff --git a/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php b/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php index 4068986c..d69a7a08 100644 --- a/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php +++ b/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php @@ -12,15 +12,15 @@ return new class extends Migration public function up(): void { Schema::create('personal_subscriptions', function (Blueprint $table) { - $table->id(); - $table->foreignUuid('user_id')->constrained()->cascadeOnDelete(); - $table->string('name'); - $table->decimal('amount', 8, 2); - $table->string('currency', 3)->default('EUR'); - $table->enum('billing_cycle', ['weekly', 'monthly', 'biweekly', 'yearly'])->default('monthly'); - $table->date('next_billing_date'); - $table->string('color')->nullable(); - $table->timestamps(); + $table->id(); + $table->foreignUuid('user_id')->constrained()->cascadeOnDelete(); + $table->string('name'); + $table->decimal('amount', 8, 2); + $table->string('currency', 3)->default('EUR'); + $table->enum('billing_cycle', ['weekly', 'monthly', 'biweekly', 'yearly'])->default('monthly'); + $table->date('next_billing_date'); + $table->string('color')->nullable(); + $table->timestamps(); }); } From 145995b12f0f379310b3cab60668d4f27f733a58 Mon Sep 17 00:00:00 2001 From: elnuage <106245123+nuageeee@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:07:04 +0200 Subject: [PATCH 12/13] Refactor migration class syntax for personal subscriptions --- .../2026_06_16_210355_create_personal_subscriptions_table.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php b/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php index 8024f8b6..17ebfb24 100644 --- a/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php +++ b/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php @@ -4,7 +4,8 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration { +return new class extends Migration +{ /** * Run the migrations. */ From 72dff20e1651762ef5ff382b42949f5866c20b25 Mon Sep 17 00:00:00 2001 From: elnuage <106245123+nuageeee@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:08:59 +0200 Subject: [PATCH 13/13] Delete blank space after Migration --- .../2026_06_16_210355_create_personal_subscriptions_table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php b/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php index 17ebfb24..d69a7a08 100644 --- a/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php +++ b/database/migrations/2026_06_16_210355_create_personal_subscriptions_table.php @@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -return new class extends Migration +return new class extends Migration { /** * Run the migrations.