Files
InvestmentTrackerApp/PortfolioJournal/Resources/es-ES.lproj/Localizable.strings
T
alexandrev-tibco 773da6800b Release 1.3.1 (build 20): iCloud sync fix + sources search/filter
iCloud sync:
- Fix: deploy CloudKit schema to production so exports work
- Fix: PredictionCache marked syncable=NO (binary attr caused partial failures)
- Fix: forceExportToiCloud uses createdAt+1ms for guaranteed persistent history
- Fix: auto-deduplication on CloudKit import (processRemoteChanges)
- Add: NSPersistentHistoryTrackingKey always enabled regardless of CloudKit state
- Add: cloudKitForceReload notification so repositories re-fetch on remote changes

Sources UI:
- Add: horizontal category filter chips in SourceListView
- Add: search toggle button with animated TextField

Other:
- Add: ITSAppUsesNonExemptEncryption=NO in Info.plist (skip manual compliance)
- Add: fastlane submit lane with run_precheck_before_submit=false
- Update: release notes all locales for 1.3.1
- Update: fastlane API key via pass

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 22:19:33 +02:00

245 lines
11 KiB
Plaintext

/*
Localizable.strings
PortfolioJournal
Spanish (Spain) localization
*/
// MARK: - Journal
"Home" = "Inicio";
"Sources" = "Fuentes";
"Charts" = "Gráficos";
"Settings" = "Ajustes";
"Journal" = "Diario";
"Search monthly notes" = "Buscar notas mensuales";
"Monthly Check-ins" = "Chequeos mensuales";
"No monthly notes yet." = "Aún no hay notas mensuales.";
"No matching notes." = "No hay notas que coincidan.";
"Jump to month" = "Ir al mes";
"Today" = "Hoy";
"Mood not set" = "Estado de ánimo no establecido";
"No rating" = "Sin valoración";
"No note yet." = "Sin nota todavía.";
"Monthly Note" = "Nota mensual";
"Open Full Note" = "Ver nota completa";
"Duplicate Previous" = "Duplicar anterior";
"Save" = "Guardar";
"loading" = "Cargando...";
"loading_data" = "Cargando tus datos...";
// MARK: - Monthly Check-in
"Monthly Check-in" = "Chequeo mensual";
"This Month" = "Este mes";
"No check-in yet this month" = "Aún no hay chequeo este mes";
"Start your first check-in anytime." = "Empieza tu primer chequeo cuando quieras.";
"Mark Check-in Complete" = "Marcar chequeo completado";
"Editing stays open. New check-ins unlock after 70% of the month." = "La edición permanece abierta. Los nuevos chequeos se desbloquean tras el 70 % del mes.";
"Momentum & Streaks" = "Impulso y rachas";
"Log a check-in to start a streak" = "Registra un chequeo para iniciar una racha";
"Streak" = "Racha";
"On-time in a row" = "A tiempo seguidos";
"Best" = "Mejor";
"Personal best" = "Mejor personal";
"Avg early" = "Media de antelación";
"vs deadline" = "vs. fecha límite";
"On-time score" = "Puntuación a tiempo";
"Achievements" = "Logros";
"View all achievements" = "Ver todos los logros";
"Monthly Pulse" = "Pulso mensual";
"Optional" = "Opcional";
"Rate this month" = "Valora este mes";
"Skip" = "Omitir";
"How did it feel?" = "¿Cómo te sentiste?";
"Monthly Summary" = "Resumen mensual";
"Starting" = "Inicio";
"Ending" = "Final";
"Contributions" = "Aportaciones";
"Net Performance" = "Rendimiento neto";
"Update Sources" = "Actualizar fuentes";
"Add sources to start your monthly check-in." = "Añade fuentes para empezar tu chequeo mensual.";
"Updated this cycle" = "Actualizado en este ciclo";
"Needs update" = "Necesita actualización";
"Snapshot Notes" = "Notas de snapshots";
"No snapshot notes for this month." = "No hay notas de snapshots este mes.";
"Source" = "Fuente";
"last_check_in" = "Último chequeo: %@";
"next_check_in" = "Próximo chequeo: %@";
"on_time_rate" = "%@ a tiempo";
"on_time_count" = "%d/%d a tiempo";
"tightest_finish" = "Final más ajustado: %@ antes de la fecha límite.";
"date_today" = "Hoy";
"date_yesterday" = "Ayer";
"date_never" = "Nunca";
"calendar_event_title" = "%@: Chequeo mensual";
"calendar_event_notes" = "Abre %@ y completa tu chequeo mensual.";
// MARK: - Achievements View
"achievements_title" = "Logros";
"achievements_view_all" = "Ver todos los logros";
"achievements_nav_title" = "Logros";
"achievements_progress_title" = "Progreso";
"achievements_unlocked_title" = "Desbloqueados";
"achievements_unlocked_empty" = "Completa chequeos para desbloquear logros.";
"achievements_locked_title" = "Bloqueados";
"achievements_locked_empty" = "Todos los logros desbloqueados. ¡Buen trabajo!";
// MARK: - Monthly Check-in Moods
"mood_energized_title" = "En llamas";
"mood_confident_title" = "Confiado";
"mood_balanced_title" = "Estable";
"mood_cautious_title" = "Cauteloso";
"mood_stressed_title" = "Estresado";
"mood_energized_detail" = "Me siento imparable";
"mood_confident_detail" = "En camino y sereno";
"mood_balanced_detail" = "Calmado y paciente";
"mood_cautious_detail" = "Observando los movimientos";
"mood_stressed_detail" = "Necesito un respiro";
// MARK: - Categories
"category_stocks" = "Acciones";
"category_bonds" = "Bonos";
"category_real_estate" = "Inmobiliario";
"category_crypto" = "Cripto";
"category_cash" = "Efectivo";
"category_etfs" = "ETFs";
"category_retirement" = "Jubilación";
"category_other" = "Otros";
"uncategorized" = "Sin categoría";
// MARK: - Monthly Check-in Achievements
"achievement_streak_3_title" = "Racha de 3 meses";
"achievement_streak_3_detail" = "Has mantenido tus chequeos a tiempo durante tres meses seguidos.";
"achievement_streak_6_title" = "Racha de medio año";
"achievement_streak_6_detail" = "Seis chequeos a tiempo consecutivos.";
"achievement_streak_12_title" = "Un año de impulso";
"achievement_streak_12_detail" = "Un año completo sin perder la fecha límite.";
"achievement_perfect_on_time_title" = "Nunca tarde";
"achievement_perfect_on_time_detail" = "Todos los chequeos llegaron antes de la fecha límite.";
"achievement_clutch_finish_title" = "Final ajustado";
"achievement_clutch_finish_detail" = "Entregado con horas de margen y a tiempo.";
"achievement_early_bird_title" = "Madrugador";
"achievement_early_bird_detail" = "De media terminas con bastante margen.";
// MARK: - Accessibility
"rating_accessibility" = "Valoración %d de 5";
"achievements_unlocked_count" = "%d de %d desbloqueados";
// MARK: - Satisfaction & Review Dialogs
"checkin_enjoying_dialog_title" = "¿Cuánto disfrutas Portfolio Journal?";
"checkin_enjoying_dialog_message" = "¡Felicidades por tu nuevo logro! Tu opinión nos ayuda a mejorar.";
"not_now" = "Ahora no";
"rating_1_star" = "1 estrella";
"rating_n_stars" = "%d estrellas";
"app_store_review_title" = "¿Te gustaría dejar una reseña en el App Store?";
"app_store_review_message" = "Gracias por las 5 estrellas. Ayuda mucho a que otros inversores descubran la app.";
"write_review" = "Escribir reseña";
// MARK: - Paywall (1.2.0)
"Your full portfolio,\nfully clear" = "Tu cartera completa,\ntotalmente clara";
"One payment. Every feature. Forever." = "Un pago. Todas las funciones. Para siempre.";
"Get Full Access" = "Obtener acceso completo";
"Restore Purchases" = "Restaurar compras";
"Payment charged to your Apple ID account." = "El pago se cargará a tu cuenta de Apple ID.";
"Terms" = "Términos";
"Privacy" = "Privacidad";
"· one-time · Family Sharing" = "· pago único · Family Sharing";
"Full access, one payment" = "Acceso completo, un solo pago";
"Unlimited sources, advanced charts & more" = "Fuentes ilimitadas, gráficos avanzados y más";
"See full access" = "Ver acceso completo";
// Paywall benefits (1.2.0)
"paywall_benefit_history_title" = "Tu historial completo";
"paywall_benefit_history_subtitle" = "Cada snapshot, aportación y ganancia desde el primer día";
"paywall_benefit_charts_title" = "Gráficos que revelan patrones";
"paywall_benefit_charts_subtitle" = "Asignación, drawdown, rendimiento — todo en un lugar";
"paywall_benefit_forecasts_title" = "Previsiones a 12 meses";
"paywall_benefit_forecasts_subtitle" = "Ve a dónde se dirige tu cartera";
"paywall_benefit_noads_title" = "Sin anuncios, nunca";
"paywall_benefit_noads_subtitle" = "Una experiencia limpia y sin distracciones";
// MARK: - Onboarding pages (1.2.0)
"onboarding_clarity_title" = "Sabe exactamente dónde estás";
"onboarding_clarity_desc" = "Consulta tu patrimonio total, rendimientos reales y distribución — siempre actualizado.";
"onboarding_habit_title" = "5 minutos al mes son suficientes";
"onboarding_habit_desc" = "Registra tus valores una vez al mes. Portfolio Journal hace los cálculos y muestra tu progreso.";
"onboarding_calm_title" = "Ignora el ruido. Sigue la tendencia.";
"onboarding_calm_desc" = "Las variaciones diarias no cuentan la historia real. Tu crecimiento en meses y años sí.";
"onboarding_goals_title" = "Alcanza tus metas financieras";
"onboarding_goals_desc" = "Define objetivos, sigue los hitos y ve exactamente hasta dónde has llegado.";
// iCloud check antes del onboarding (1.2.1)
"icloud_check_title" = "¿Ya usas Portfolio Journal?";
"icloud_check_description" = "Si tienes datos en otro dispositivo, activa iCloud para restaurarlos aquí.";
"icloud_enabled_title" = "iCloud activado";
"icloud_enabled_description" = "Cierra la app y ábrela de nuevo. Tus datos se cargarán automáticamente desde iCloud.";
"checking_icloud" = "Comprobando iCloud...";
// Literales de botones (SwiftUI auto-lookup)
"Restore from iCloud" = "Restaurar desde iCloud";
"Start Fresh" = "Empezar desde cero";
"Got it" = "Entendido";
// MARK: - Batch Update (1.2.0)
"Batch Update" = "Actualización en bloque";
"Current value" = "Valor actual";
"Contribution this period (optional)" = "Aportación en este periodo (opcional)";
"save_1_snapshot" = "Guardar 1 snapshot";
"save_n_snapshots" = "Guardar %d snapshots";
// MARK: - Monthly Check-in Card
"checkin_update_month" = "Actualizar %@";
"checkin_start_new" = "Iniciar";
// MARK: - Contribution (1.2.0)
"Include Contribution" = "Incluir aportación";
"New capital added" = "Capital nuevo añadido";
"Contribution (Optional)" = "Aportación (opcional)";
"Track new capital added to separate it from investment growth." = "Registra el capital nuevo para separarlo del crecimiento de la inversión.";
// MARK: - Monthly Highlights (pre-existing gaps)
"Monthly Highlights" = "Aspectos destacados del mes";
"Best Performer" = "Mejor rendimiento";
"Worst Performer" = "Peor rendimiento";
"Best Contributor" = "Mayor aportador";
"Update Check-in" = "Actualizar chequeo";
"Completed %@" = "Completado %@";
// MARK: - Paywall literals (1.2.1)
"Your full portfolio,\nfully clear" = "Tu portfolio completo,\nen todo su potencial";
"One payment. Every feature. Forever." = "Un solo pago. Todas las funciones. Para siempre.";
"Get Full Access" = "Obtener acceso completo";
"Restore Purchases" = "Restaurar compras";
"Payment charged to your Apple ID account." = "El cobro se realizará a tu cuenta de Apple ID.";
// MARK: - Re-engagement & Monthly Notifications (1.2.1)
"reengagement_title" = "Tu portfolio te espera";
"reengagement_body" = "Unos minutos son suficientes para mantener el control de tus inversiones.";
"monthly_checkin_notification_title" = "Ya puedes actualizar tu portfolio";
"monthly_checkin_notification_body" = "Registra los valores de este mes y sigue la evolución de tu cartera.";
// MARK: - Onboarding QuickStart (1.3.0)
"onboarding_quickstart_title" = "Ya casi está";
"onboarding_quickstart_subtitle" = "Añade tu primera fuente de inversión para empezar a seguir tu portfolio.";
"onboarding_add_first_source" = "Añadir mi primera inversión";
"onboarding_import_data" = "Importar datos existentes";
// MARK: - iCloud Sync Status (1.3.1)
"Force Upload to iCloud" = "Forzar subida a iCloud";
"Uploading..." = "Subiendo...";
"No export yet" = "Aún no exportado";
"Syncing with iCloud..." = "Sincronizando con iCloud...";
"Not synced yet" = "Aún no sincronizado";
"Refresh" = "Actualizar";
// MARK: - iCloud Diagnostics (1.3.1)
"Verify iCloud Setup" = "Verificar configuración iCloud";
"Checking…" = "Comprobando…";
// MARK: - Sources Filter & Search (1.3.1)
"sources_filter_all" = "Todas";
"Search sources" = "Buscar fuentes";
"Clear Filters" = "Limpiar filtros";
// MARK: - AddSourceView (1.3.0)
"add_source_name_placeholder" = "p.ej. ETF MSCI World, Cuenta ING, Piso...";
"add_source_name_footer" = "Una fuente es cualquier inversión que quieras seguir: acciones, ETFs, cuentas de ahorro, inmuebles, cripto y más.";