Files
Reflect/en.lproj/Localizable.strings
Trey t f2c510de50 Refactor StoreKit 2 subscription system and add interactive vote widget
## StoreKit 2 Refactor
- Rewrote IAPManager with clean enum-based state model (SubscriptionState)
- Added native SubscriptionStoreView for iOS 17+ purchase UI
- Subscription status now checked on every app launch
- Synced subscription status to UserDefaults for widget access
- Simplified PurchaseButtonView and IAPWarningView
- Removed unused StatusInfoView

## Interactive Vote Widget
- New FeelsVoteWidget with App Intents for mood voting
- Subscribers can vote directly from widget, shows stats after voting
- Non-subscribers see "Tap to subscribe" which opens subscription store
- Added feels:// URL scheme for deep linking

## Firebase Removal
- Commented out Firebase imports and initialization
- EventLogger now prints to console in DEBUG mode only

## Other Changes
- Added fallback for Core Data when App Group unavailable
- Added new localization strings for subscription UI
- Updated entitlements and Info.plist

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 23:07:16 -06:00

161 lines
7.6 KiB
Plaintext

/*
Localizable.strings
Feels
Created by Trey Tartt on 1/23/22.
*/
"onboarding_time_title" = "What time do you want to rate your days?";
"onboarding_time_body" = "Rating your day will be unlocked at %@, and you'll also recieve a notification at this time as a reminder. You can also rate your day from the notification.";
"onboarding_day_title" = "Do you want to rate today or yesterday?";
"onboarding_day_preview_text_today" = "You can choose to rate the current day or the day before. Example: When you receive your notification on Tuesday your rating will be for Tuesday, the current day.";
"onboarding_day_preview_text_yesterday" = "You can choose to rate the current day or the day before. Example: When you receive your notification on Thursday your rating will be for Wednesday, the previous day.";
"onboarding_day_options_today" = "Current Day"; /* Change to "Today"? */
"onboarding_day_options_yesterday" = "Previous Day"; /* Change to "Yesterday"? */
"onboarding_title_customize_one_title" = "Set your preferences.";
"onboarding_title_customize_one_section_one_title" = "Which app icon are you?";
"onboarding_title_customize_one_section_two_title" = "When viewing charts, which days would you like to see?";
"onboarding_title_customize_one_section_two_note" = "Note: You will still be asked to rate each day.";
"onboarding_title_customize_two_title" = "Pick your style.";
"onboarding_title_customize_two_section_one_title" = "What icon set would you like?";
"onboarding_title_customize_two_section_two_title" = "Pick colors to use for each feeling, or customize and create your own.";
"onboarding_title_customize_two_section_three_title" = "Select a text color.";
"onboarding_wrap_up_1" = "Every day at";
"onboarding_wrap_up_3" = "you'll be notified it's time to rate the";
"onboarding_wrap_up_complete_button" = "Done";
"add_mood_header_view_title_today" = "How is today?";
"add_mood_header_view_title_yesterday" = "How was yesterday?";
"add_mood_header_view_title" = "How was %@?";
"content_view_tab_main" = "Day";
"content_view_tab_month" = "Month";
"content_view_tab_filter" = "Year";
"content_view_tab_customize" = "Customize";
"content_view_fill_in_missing_entry" = "Update %@";
"content_view_fill_in_missing_entry_cancel" = "Cancel";
"content_view_delete_entry" = "Delete this rating";
"content_view_header_title" = "Past %d days";
"filter_view_total" = "Total";
"settings_view_exit" = "Exit";
"settings_view_special_thanks_to_title" = "Special Thanks";
"settings_view_show_onboarding" = "Show Setup";
"settings_use_delete_enable" = "Allow Rating Deletion";
"settings_view_show_eula" = "EULA";
"settings_view_show_privacy" = "Privacy Policy";
"mood_value_great" = "Great";
"mood_value_good" = "Good";
"mood_value_average" = "Average";
"mood_value_bad" = "Bad";
"mood_value_horrible" = "Horrible";
"mood_value_missing" = "Missing";
"mood_value_missing_tap_to_add" = "Missing - Tap to add";
"customize_view_view_text_color" = "Text Color";
"customize_view_over18alert_title" = "Are you over 18?";
"customize_view_over18alert_body" = "Some of this text might be offensive.";
"customize_view_over18alert_ok" = "Yes";
"customize_view_over18alert_no" = "No";
"create_widget_view_left_eye" = "Left Eye";
"create_widget_view_right_eye" = "Right Eye";
"create_widget_view_mouth" = "Mouth";
"create_widget_background_color" = "Background";
"create_widget_inner_color" = "Inner";
"create_widget_face_outline_color" = "Face Outline";
"create_widget_view_left_eye_color" = "Left Eye";
"create_widget_view_right_eye_color" = "Right Eye";
"create_widget_view_mouth_color" = "Mouth";
"create_widget_save" = "Save";
"create_widget_use" = "Use";
"view_no_data" = "There are no entries.";
"day_picker_view_text" = "Only shows selected dates on the Day, Month, and Year charts.";
"default_notif_title_one" = "Hi! 👋";
"default_notif_title_two" = "Just a friendly reminder! 😁";
"default_notif_title_three" = "It's that time again! 😃";
"default_notif_body_today_one" = "How was today?";
"default_notif_body_today_two" = "Don't forget to rate your day!";
"default_notif_body_today_three" = "Please rate your day.";
"default_notif_body_today_four" = "Just checking in how today was, friend.";
"default_notif_body_yesterday_one" = "How was yesterday?";
"default_notif_body_yesterday_two" = "Don't forget to rate yesterday!";
"default_notif_body_yesterday_three" = "Please rate yesterday.";
"default_notif_body_yesterday_four" = "Just checking how yesterday was, buddy.";
"rude_notif_title_one" = "Hey, asshole!";
"rude_notif_title_two" = "WTF are you waiting for?";
"rude_notif_title_three" = "Damn, you again? 😡";
"rude_notif_title_four" = "Uggghhhhhhh, I really gotta tell you? 😒";
"rude_notif_body_today_one" = "How the hell was your day?";
"rude_notif_body_today_two" = "Don't be an ass, rate your day!";
"rude_notif_body_today_three" = "Rate your damn day… or else! ☠️";
"rude_notif_body_yesterday_one" = "How the hell was yesterday?";
"rude_notif_body_yesterday_two" = "Don't be an ass, rate yesterday!";
"rude_notif_body_yesterday_three" = "Rate yesterday… or else! ☠️";
"purchase_view_title" = "How long do you want to support your feelings for?";
"purchase_view_other_options" = "Other Options";
"purchase_view_cancel" = "Cancel";
"purchase_view_current_subscription" = "Current Subscription";
"purchase_view_current_subscription_expires_in" = "Trial expires in:";
"purchase_view_current_why_subscribe" = "An iFeels subscription gives you access to all of your historical data, and both Month and Year charts. ";
"purchase_view_current_subscription_expired_on" = "Trial expired on:";
"purchase_view_loading" = "Loading subscription options";
"purchase_view_restore" = "Restore";
"iap_warning_view_title" = "Trial expires in ";
"iap_warning_view_buy_button" = "Subscribe Now";
"subscription_store_title" = "Unlock Full Access";
"subscription_store_subtitle" = "Get unlimited access to Month and Year views, plus all your historical mood data.";
"subscription_required_button" = "Subscribe to Unlock";
"subscription_status_active" = "Active";
"subscription_status_expires" = "Expires Soon";
"purchase_view_trial_expired" = "Your free trial has ended.";
"purchase_view_subscribe_button" = "Subscribe Now";
"purchase_view_trial_expires_in" = "Trial expires in";
"purchase_view_manage_subscription" = "Manage Subscription";
"purchase_view_change_plan" = "Change Plan";
/* not used */
"onboarding_title_title" = "What would you like the reminder to say?";
"onboarding_title_type_your_own" = "-- or type your own--";
"onboarding_title_title_option_1" = "Its time to select.";
"onboarding_title_title_option_2" = "Pick your shit!";
"onboarding_title_title_option_3" = "How was your day?";
"settings_use_cloudkit_title" = "Use CloudKit";
"settings_use_cloudkit_body" = "CloudKit fucking sucks";
"settings_view_why_bg_mode_title" = "What do we use background task for?";
"settings_view_why_bg_mode_body" = "We use it to update the database for any missing day. For example: if you rate Monday and Wednesday you'll see that Tuesday will show on the view as missing, and by tapping that row you can then rate the day that is missing. We need a time to search for and add missing days, we do this nightly and while your device is not being used. It's a quick process and doesn't impact battery life.";
"share_view_all_moods_total_template_title" = "Total Entries: %d";
"share_view_month_moods_total_template_title" = "Total Entries for %@ - %d";
"share_view_current_streak_template_title" = "Last 10 Days";
"share_view_longest_streak_template_title" = "Longest consecutive days I was %@";
"how_to_add_widget" = "How to Add Widget";
"nice" = "Nice";
"rude" = "Rude";
/* end not used */