b48a47ce10
- 1A: Notificación mensual de resumen de portfolio (día 5 de cada mes) - 1B: Badge de racha mensual en Dashboard (streak counter) - 1C: Empty states mejorados en Goals y Journal con CTAs claros - 2A: Quick Update sheet — actualiza todas las fuentes desde una pantalla - 2B: Notificación batch update redirige al Quick Update sheet - 2C: Widget deep link portfoliojournal://quickupdate abre Quick Update - 3A: App Store version check banner en Settings - 3C: What's New sheet en primer launch de versión nueva - Localización completa en 7 idiomas para todas las nuevas strings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
395 lines
16 KiB
Plaintext
395 lines
16 KiB
Plaintext
/*
|
|
Localizable.strings
|
|
PortfolioJournal
|
|
|
|
English (Base) localization
|
|
*/
|
|
|
|
// MARK: - General
|
|
"app_name" = "Portfolio Journal";
|
|
"ok" = "OK";
|
|
"cancel" = "Cancel";
|
|
"save" = "Save";
|
|
"delete" = "Delete";
|
|
"edit" = "Edit";
|
|
"add" = "Add";
|
|
"done" = "Done";
|
|
"close" = "Close";
|
|
"continue" = "Continue";
|
|
"skip" = "Skip";
|
|
"error" = "Error";
|
|
"success" = "Success";
|
|
"loading" = "Loading...";
|
|
"loading_data" = "Loading your data...";
|
|
|
|
// MARK: - Tab Bar
|
|
"tab_dashboard" = "Home";
|
|
"tab_sources" = "Sources";
|
|
"tab_charts" = "Charts";
|
|
"tab_settings" = "Settings";
|
|
|
|
// MARK: - Dashboard
|
|
"dashboard_title" = "Home";
|
|
"total_portfolio_value" = "Total Portfolio Value";
|
|
"today" = "today";
|
|
"returns" = "Returns";
|
|
"by_category" = "By Category";
|
|
"pending_updates" = "Pending Updates";
|
|
"see_all" = "See All";
|
|
|
|
// MARK: - Sources
|
|
"sources_title" = "Sources";
|
|
"add_source" = "Add Source";
|
|
"source_name" = "Source Name";
|
|
"select_category" = "Select Category";
|
|
"initial_value" = "Initial Value";
|
|
"initial_value_optional" = "Initial Value (Optional)";
|
|
"reminder_frequency" = "Reminder Frequency";
|
|
"source_limit_warning" = "Source limit reached. Upgrade to Premium for unlimited sources.";
|
|
"no_sources" = "No Investment Sources";
|
|
"no_sources_message" = "Add your first investment source to start tracking your portfolio.";
|
|
|
|
// MARK: - Snapshots
|
|
"add_snapshot" = "Add Snapshot";
|
|
"edit_snapshot" = "Edit Snapshot";
|
|
"snapshot_date" = "Date";
|
|
"snapshot_value" = "Value";
|
|
"snapshot_contribution" = "Contribution";
|
|
"contribution_optional" = "Contribution (Optional)";
|
|
"notes" = "Notes";
|
|
"notes_optional" = "Notes (Optional)";
|
|
"previous_value" = "Previous: %@";
|
|
"change_from_previous" = "Change from previous";
|
|
|
|
// MARK: - Charts
|
|
"charts_title" = "Charts";
|
|
"evolution" = "Evolution";
|
|
"allocation" = "Allocation";
|
|
"performance" = "Performance";
|
|
"drawdown" = "Drawdown";
|
|
"volatility" = "Volatility";
|
|
"prediction" = "Prediction";
|
|
"portfolio_evolution" = "Portfolio Evolution";
|
|
"asset_allocation" = "Asset Allocation";
|
|
"performance_by_category" = "Performance by Category";
|
|
"drawdown_analysis" = "Drawdown Analysis";
|
|
"prediction_12_month" = "12-Month Prediction";
|
|
"not_enough_data" = "Not enough data";
|
|
|
|
// MARK: - Metrics
|
|
"cagr" = "CAGR";
|
|
"twr" = "TWR";
|
|
"max_drawdown" = "Max Drawdown";
|
|
"sharpe_ratio" = "Sharpe Ratio";
|
|
"win_rate" = "Win Rate";
|
|
"avg_monthly" = "Avg Monthly";
|
|
"best_month" = "Best Month";
|
|
"worst_month" = "Worst Month";
|
|
|
|
// MARK: - Premium
|
|
"premium" = "Premium";
|
|
"upgrade_to_premium" = "Upgrade to Premium";
|
|
"unlock_full_potential" = "Unlock Full Potential";
|
|
"one_time_purchase" = "One-time purchase";
|
|
"includes_family_sharing" = "Includes Family Sharing";
|
|
"upgrade_now" = "Upgrade Now";
|
|
"restore_purchases" = "Restore Purchases";
|
|
"premium_active" = "Premium Active";
|
|
"premium_feature" = "Premium Feature";
|
|
"unlock" = "Unlock";
|
|
|
|
// Premium Features
|
|
"feature_unlimited_sources" = "Unlimited Sources";
|
|
"feature_unlimited_sources_desc" = "Track as many investments as you want";
|
|
"feature_full_history" = "Full History";
|
|
"feature_full_history_desc" = "Access your complete investment history";
|
|
"feature_advanced_charts" = "Advanced Charts";
|
|
"feature_advanced_charts_desc" = "5 types of detailed analytics charts";
|
|
"feature_predictions" = "Predictions";
|
|
"feature_predictions_desc" = "AI-powered 12-month forecasts";
|
|
"feature_export" = "Export Data";
|
|
"feature_export_desc" = "Export to CSV and JSON formats";
|
|
"feature_no_ads" = "No Ads";
|
|
"feature_no_ads_desc" = "Ad-free experience forever";
|
|
|
|
// Paywall benefits (1.2.0)
|
|
"paywall_benefit_history_title" = "Your complete history";
|
|
"paywall_benefit_history_subtitle" = "Every snapshot, contribution, and gain since day one";
|
|
"paywall_benefit_charts_title" = "Charts that reveal patterns";
|
|
"paywall_benefit_charts_subtitle" = "Allocation, drawdown, performance — all in one place";
|
|
"paywall_benefit_forecasts_title" = "12-month forecasts";
|
|
"paywall_benefit_forecasts_subtitle" = "See where your portfolio is likely heading";
|
|
"paywall_benefit_noads_title" = "No ads, ever";
|
|
"paywall_benefit_noads_subtitle" = "Clean, focused experience with no distractions";
|
|
|
|
// MARK: - Settings
|
|
"settings_title" = "Settings";
|
|
"subscription" = "Subscription";
|
|
"notifications" = "Notifications";
|
|
"default_reminder_time" = "Default Reminder Time";
|
|
"data" = "Data";
|
|
"export_data" = "Export Data";
|
|
"total_sources" = "Total Sources";
|
|
"total_snapshots" = "Total Snapshots";
|
|
"storage_used" = "Storage Used";
|
|
"about" = "About";
|
|
"version" = "Version";
|
|
"privacy_policy" = "Privacy Policy";
|
|
"terms_of_service" = "Terms of Service";
|
|
"support" = "Support";
|
|
"rate_app" = "Rate App";
|
|
"danger_zone" = "Danger Zone";
|
|
"reset_all_data" = "Reset All Data";
|
|
"reset_confirmation" = "This will permanently delete all your investment data. This action cannot be undone.";
|
|
|
|
// MARK: - Notification Frequencies
|
|
"frequency_monthly" = "Monthly";
|
|
"frequency_quarterly" = "Quarterly";
|
|
"frequency_semiannual" = "Semi-Annual";
|
|
"frequency_annual" = "Annual";
|
|
"frequency_custom" = "Custom";
|
|
"frequency_never" = "Never";
|
|
"every_n_months" = "Every %d month(s)";
|
|
|
|
// MARK: - Categories
|
|
"category_stocks" = "Stocks";
|
|
"category_bonds" = "Bonds";
|
|
"category_real_estate" = "Real Estate";
|
|
"category_crypto" = "Crypto";
|
|
"category_cash" = "Cash";
|
|
"category_etfs" = "ETFs";
|
|
"category_retirement" = "Retirement";
|
|
"category_other" = "Other";
|
|
"uncategorized" = "Uncategorized";
|
|
|
|
// MARK: - Time Ranges
|
|
"time_1m" = "1M";
|
|
"time_3m" = "3M";
|
|
"time_6m" = "6M";
|
|
"time_1y" = "1Y";
|
|
"time_all" = "All";
|
|
|
|
// MARK: - Export
|
|
"export_format" = "Select Format";
|
|
"export_csv" = "CSV";
|
|
"export_csv_desc" = "Compatible with Excel, Google Sheets";
|
|
"export_json" = "JSON";
|
|
"export_json_desc" = "Full data structure for backup";
|
|
|
|
// MARK: - Onboarding
|
|
"onboarding_track_title" = "Track Your Investments";
|
|
"onboarding_track_desc" = "Monitor all your investment sources in one place. Stocks, bonds, real estate, crypto, and more.";
|
|
"onboarding_visualize_title" = "Visualize Your Growth";
|
|
"onboarding_visualize_desc" = "Beautiful charts show your portfolio evolution, allocation, and performance over time.";
|
|
"onboarding_reminders_title" = "Never Miss an Update";
|
|
"onboarding_reminders_desc" = "Set reminders to track your investments regularly. Monthly, quarterly, or custom schedules.";
|
|
"onboarding_sync_title" = "Sync Everywhere";
|
|
"onboarding_sync_desc" = "Your data syncs automatically via iCloud across all your Apple devices.";
|
|
"get_started" = "Get Started";
|
|
|
|
// Onboarding pages (1.2.0)
|
|
"onboarding_clarity_title" = "Know exactly where you stand";
|
|
"onboarding_clarity_desc" = "See your total wealth, real returns, and allocation — always up to date.";
|
|
"onboarding_habit_title" = "5 minutes a month is enough";
|
|
"onboarding_habit_desc" = "Log your values once a month. Portfolio Journal handles the math and shows your progress.";
|
|
"onboarding_calm_title" = "Ignore the noise. Track the trend.";
|
|
"onboarding_calm_desc" = "Daily swings don't tell the real story. Your growth over months and years does.";
|
|
"onboarding_goals_title" = "Reach your financial goals";
|
|
"onboarding_goals_desc" = "Set targets, track milestones, and see exactly how far you've come.";
|
|
|
|
// iCloud check before onboarding (1.2.1)
|
|
"icloud_check_title" = "Already use Portfolio Journal?";
|
|
"icloud_check_description" = "If you have data on another device, enable iCloud to restore it here.";
|
|
"icloud_enabled_title" = "iCloud Enabled";
|
|
"icloud_enabled_description" = "Close the app and reopen it. Your data will load automatically from iCloud.";
|
|
"checking_icloud" = "Checking iCloud...";
|
|
|
|
// MARK: - Errors
|
|
"error_generic" = "An error occurred. Please try again.";
|
|
"error_no_purchases" = "No purchases found to restore";
|
|
"error_purchase_failed" = "Purchase failed: %@";
|
|
"error_export_failed" = "Export failed. Please try again.";
|
|
|
|
// MARK: - Placeholders
|
|
"placeholder_source_name" = "e.g., Vanguard 401k";
|
|
"placeholder_value" = "0.00";
|
|
"placeholder_notes" = "Add notes...";
|
|
|
|
// MARK: - Monthly Check-in Moods
|
|
"mood_energized_title" = "On Fire";
|
|
"mood_confident_title" = "Confident";
|
|
"mood_balanced_title" = "Steady";
|
|
"mood_cautious_title" = "Cautious";
|
|
"mood_stressed_title" = "Stressed";
|
|
"mood_energized_detail" = "Feeling unbeatable";
|
|
"mood_confident_detail" = "On track and composed";
|
|
"mood_balanced_detail" = "Calm and patient";
|
|
"mood_cautious_detail" = "Watching the moves";
|
|
"mood_stressed_detail" = "Need a reset";
|
|
|
|
// MARK: - Monthly Check-in Achievements
|
|
"achievement_streak_3_title" = "3-Month Streak";
|
|
"achievement_streak_3_detail" = "Kept your check-ins on time for three months straight.";
|
|
"achievement_streak_6_title" = "Half-Year Hot Streak";
|
|
"achievement_streak_6_detail" = "Six consecutive on-time check-ins.";
|
|
"achievement_streak_12_title" = "Year of Momentum";
|
|
"achievement_streak_12_detail" = "A full year without missing the deadline.";
|
|
"achievement_perfect_on_time_title" = "Never Late";
|
|
"achievement_perfect_on_time_detail" = "Every check-in landed before the deadline.";
|
|
"achievement_clutch_finish_title" = "Clutch Finish";
|
|
"achievement_clutch_finish_detail" = "Submitted with hours to spare and still on time.";
|
|
"achievement_early_bird_title" = "Early Bird";
|
|
"achievement_early_bird_detail" = "On average you finish with plenty of time left.";
|
|
"achievements_title" = "Achievements";
|
|
"achievements_view_all" = "View all achievements";
|
|
"achievements_nav_title" = "Achievements";
|
|
"achievements_progress_title" = "Progress";
|
|
"achievements_unlocked_title" = "Unlocked";
|
|
"achievements_unlocked_empty" = "Complete check-ins to unlock achievements.";
|
|
"achievements_locked_title" = "Locked";
|
|
"achievements_locked_empty" = "All achievements unlocked. Nice work!";
|
|
|
|
// MARK: - Accessibility
|
|
"rating_accessibility" = "Rating %d of 5";
|
|
"achievements_unlocked_count" = "%d of %d unlocked";
|
|
"last_check_in" = "Last check-in: %@";
|
|
"next_check_in" = "Next check-in: %@";
|
|
"on_time_rate" = "%@ on-time";
|
|
"on_time_count" = "%d/%d on time";
|
|
"tightest_finish" = "Tightest finish: %@ before deadline.";
|
|
"date_today" = "Today";
|
|
"date_yesterday" = "Yesterday";
|
|
"date_never" = "Never";
|
|
"calendar_event_title" = "%@: Monthly Check-in";
|
|
"calendar_event_notes" = "Open %@ and complete your monthly check-in.";
|
|
|
|
// MARK: - Satisfaction & Review Dialogs
|
|
"checkin_enjoying_dialog_title" = "How much are you enjoying Portfolio Journal?";
|
|
"checkin_enjoying_dialog_message" = "Congrats on your new achievement! Your feedback helps us improve.";
|
|
"not_now" = "Not Now";
|
|
"rating_1_star" = "1 Star";
|
|
"rating_n_stars" = "%d Stars";
|
|
"app_store_review_title" = "Would you like to leave an App Store review?";
|
|
"app_store_review_message" = "Thanks for the 5 stars. It really helps other investors discover the app.";
|
|
"write_review" = "Write a Review";
|
|
|
|
// MARK: - Batch Update Actions
|
|
"save_1_snapshot" = "Save 1 Snapshot";
|
|
"save_n_snapshots" = "Save %d Snapshots";
|
|
|
|
// MARK: - Monthly Check-in Card
|
|
"checkin_update_month" = "Update %@";
|
|
"checkin_start_new" = "Start";
|
|
|
|
// MARK: - Re-engagement & Monthly Notifications (1.2.1)
|
|
"reengagement_title" = "Your portfolio is waiting";
|
|
"reengagement_body" = "A few minutes is all it takes to stay on top of your investments.";
|
|
"monthly_checkin_notification_title" = "Time for your monthly update";
|
|
"monthly_checkin_notification_body" = "Log this month's values and track your portfolio growth.";
|
|
|
|
// MARK: - Onboarding QuickStart (1.3.0)
|
|
"onboarding_quickstart_title" = "Almost there";
|
|
"onboarding_quickstart_subtitle" = "Add your first investment source to start tracking your portfolio.";
|
|
"onboarding_add_first_source" = "Add My First Investment";
|
|
"onboarding_import_data" = "Import Existing Data";
|
|
|
|
// MARK: - iCloud Sync Status (1.3.1)
|
|
"Force Upload to iCloud" = "Force Upload to iCloud";
|
|
"Uploading..." = "Uploading...";
|
|
"No export yet" = "No export yet";
|
|
"Syncing with iCloud..." = "Syncing with iCloud...";
|
|
"Not synced yet" = "Not synced yet";
|
|
"Refresh" = "Refresh";
|
|
|
|
// MARK: - iCloud Diagnostics (1.3.1)
|
|
"Verify iCloud Setup" = "Verify iCloud Setup";
|
|
"Checking…" = "Checking…";
|
|
"context.hasChanges: YES ✓" = "context.hasChanges: YES ✓";
|
|
"context.hasChanges: NO ✗ — objects may not have been queued" = "context.hasChanges: NO ✗ — objects may not have been queued";
|
|
|
|
// MARK: - Sources Filter & Search (1.3.1)
|
|
"sources_filter_all" = "All";
|
|
"Search sources" = "Search sources";
|
|
"Clear Filters" = "Clear Filters";
|
|
|
|
// MARK: - AddSourceView (1.3.0)
|
|
"add_source_name_placeholder" = "e.g. MSCI World ETF, ING Savings, Apartment...";
|
|
"add_source_name_footer" = "A source is any investment you want to track: stocks, ETFs, savings accounts, real estate, crypto, and more.";
|
|
|
|
// MARK: - Goals Archive (1.3.2)
|
|
"goals_filter_active" = "Active";
|
|
"goals_filter_archived" = "Archived";
|
|
"goals_filter_all" = "All";
|
|
"goal_archive" = "Archive";
|
|
"goal_unarchive" = "Unarchive";
|
|
"goals_empty_archived" = "No archived goals.";
|
|
"goals_all_active_achieved" = "All active goals are achieved.";
|
|
|
|
// MARK: - Category Management (1.3.2)
|
|
"category_name_placeholder" = "e.g. Emergency Fund";
|
|
"category_has_sources_warning" = "Cannot delete a category that has sources. Remove or reassign all sources first.";
|
|
"categories_empty" = "No categories yet.";
|
|
|
|
// MARK: - CSV Column Mapping (1.3.2)
|
|
"csv_mapping_subtitle" = "Match your CSV columns to Portfolio Journal fields";
|
|
"csv_field_source" = "Source Name (required)";
|
|
"csv_field_value" = "Value (required)";
|
|
"csv_field_date" = "Date";
|
|
"csv_field_category" = "Category";
|
|
"csv_field_contribution" = "Contribution";
|
|
"csv_field_notes" = "Notes";
|
|
"csv_no_column" = "— Not mapped —";
|
|
"csv_enter_value" = "Enter value";
|
|
"csv_use_today" = "Use today's date";
|
|
"csv_no_date_hint" = "All rows will be imported as a snapshot for today.";
|
|
"csv_preview_section" = "CSV Preview";
|
|
"csv_required_section" = "Required Fields";
|
|
"csv_optional_section" = "Optional Fields";
|
|
|
|
// MARK: - 1.3.2 Features
|
|
"goal_achieved_notification_title" = "Goal achieved! 🎉";
|
|
"goal_achieved_notification_body" = "You reached your goal: %@";
|
|
|
|
"snapshot_duplicate_title" = "Snapshot Already Exists";
|
|
"snapshot_duplicate_message" = "You already have a snapshot for this month. Do you want to add another one?";
|
|
"snapshot_duplicate_replace" = "Replace Existing";
|
|
"snapshot_duplicate_add" = "Add Anyway";
|
|
|
|
"contributions_vs_returns_title" = "Invested vs. Returns";
|
|
"contributions_vs_returns_invested" = "Invested";
|
|
"contributions_vs_returns_returns" = "Market Returns";
|
|
|
|
"chart_yoy_title" = "Year over Year";
|
|
"chart_yoy_empty" = "Add more snapshots across different years to see the comparison.";
|
|
|
|
// MARK: - Goal Delete Confirmation (1.3.2)
|
|
"goal_delete_title" = "Delete Goal";
|
|
"goal_delete_message" = "This goal will be permanently deleted. This action cannot be undone.";
|
|
"goal_delete_confirm" = "Delete";
|
|
|
|
// MARK: - 1.4.0 Features
|
|
"monthly_summary_notification_title" = "Your Monthly Portfolio Summary";
|
|
"monthly_summary_notification_body" = "Check how your investments performed this month.";
|
|
"streak_badge" = "%d-month streak";
|
|
"goals_empty_add_cta" = "Add My First Goal";
|
|
"journal_empty_title" = "No check-ins yet";
|
|
"journal_empty_body" = "Snapshot updates automatically create monthly entries. Add your first source to get started.";
|
|
"quick_update_title" = "Quick Update";
|
|
"quick_update_section_header" = "Enter current values";
|
|
"quick_update_section_footer" = "Only sources with a value entered will be updated.";
|
|
"quick_update_placeholder" = "New value";
|
|
"quick_update_save" = "Save All";
|
|
"quick_update_no_sources" = "No sources";
|
|
"quick_update_no_sources_body" = "Add investment sources first to use Quick Update.";
|
|
"update_available_title" = "Update Available";
|
|
"update_available_body" = "Version %@ is ready on the App Store.";
|
|
"whats_new_title" = "What's New in 1.4";
|
|
"whats_new_subtitle" = "Improvements to help you stay on track.";
|
|
"whats_new_quick_update_title" = "Quick Portfolio Update";
|
|
"whats_new_quick_update_body" = "Update all your sources from a single screen with one tap.";
|
|
"whats_new_streak_title" = "Update Streak";
|
|
"whats_new_streak_body" = "Track how many months in a row you've kept your portfolio up to date.";
|
|
"whats_new_goals_title" = "Smarter Goals & Journal";
|
|
"whats_new_goals_body" = "Improved empty states help you get started faster.";
|
|
"whats_new_continue" = "Let's Go";
|