Files
InvestmentTrackerApp/PortfolioJournal/Resources/en.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

318 lines
12 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.";