163fd6026a
CloudKit sincroniza la base privada de un Apple ID: ni llega a Android ni deja que dos cuentas editen el mismo plan (CKShare sigue sin existir en SwiftData). El contenido de un hogar pasa por tanto a Firestore, y un dispositivo que entra en un hogar construye el store local sin CloudKit — dos espejos escribiendo los mismos objetos se pelean, que es justo lo que ya obligó a apagar el sync por iCloud KV. SwiftData sigue siendo el store local y el modo offline; HouseholdSyncService es lo unico que habla con la red. Detecta cambios comparando una huella del contenido de cada documento con la ultima sincronizada (el "shadow"), asi que no hace falta instrumentar con updatedAt las treinta vistas que mutan modelos. Los borrados van como tombstone: un borrado duro volveria desde cualquier miembro que estuviera sin conexion. Semanas y slots usan id derivado del contenido (2026-09-14, 5-dinner) para que dos miembros que abren la misma semana escriban el mismo documento en vez de crear dos, y para que los conflictos se resuelvan por slot y no por semana. Incluye reglas de seguridad (solo miembros; los codigos de invitacion se pueden leer por id pero no listar), pantalla de hogar en Ajustes con Sign in with Apple, invitacion por codigo de 6 caracteres sin vocales ni 0/O/1/I, y la eleccion al unirse entre llevarse los platos propios o adoptar los del hogar. Fuera de esta fase: fotos de platos (necesitan Storage) y el cliente Android. Refs #33 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013su1ttRiMeMYxkZJ1Y3246
518 lines
23 KiB
Plaintext
518 lines
23 KiB
Plaintext
/* Onboarding */
|
|
"onboarding_welcome_title" = "Organize your meals in 1 minute";
|
|
"onboarding_welcome_subtitle" = "Answer 4 quick steps and start planning today.";
|
|
"onboarding_welcome_step_1" = "Choose if you want to plan lunches, dinners, or both";
|
|
"onboarding_welcome_step_2" = "Decide whether to include weekends";
|
|
"onboarding_welcome_step_3" = "Optionally connect your calendar";
|
|
"onboarding_welcome_step_4" = "Add your usual dishes to start fast";
|
|
"onboarding_nav_intro" = "Quick setup";
|
|
"onboarding_nav_setup" = "Setup";
|
|
"onboarding_nav_step_short" = "Step %d";
|
|
"onboarding_nav_step_counter" = "Step %d/%d";
|
|
"onboarding_start" = "Get Started";
|
|
"onboarding_continue" = "Continue";
|
|
"onboarding_skip" = "Skip";
|
|
"onboarding_finish" = "Finish";
|
|
|
|
/* Meal Windows */
|
|
"meal_windows_title" = "Step 1: Lunches, dinners, or both?";
|
|
"meal_windows_dinner_only" = "Dinners only";
|
|
"meal_windows_lunch_only" = "Lunches only";
|
|
"meal_windows_both" = "Lunches and dinners";
|
|
|
|
/* Weekends */
|
|
"weekends_title" = "Step 2: Also plan weekends?";
|
|
"weekends_toggle" = "Also plan Saturdays and Sundays";
|
|
"weekends_note" = "You can change this later in settings";
|
|
|
|
/* Calendar */
|
|
"calendar_title" = "Step 3: Connect your calendar?";
|
|
"calendar_sync" = "Sync";
|
|
"calendar_select" = "Calendar";
|
|
"calendar_lunch_time" = "Lunch time";
|
|
"calendar_dinner_time" = "Dinner time";
|
|
"calendar_optional" = "Optional, you can enable it later";
|
|
"calendar_permission_title" = "Calendar Access";
|
|
"calendar_permission_message" = "MealMood needs access to your calendar to sync events.";
|
|
"calendar_permission_settings" = "Go to Settings";
|
|
|
|
/* First Dishes */
|
|
"first_dishes_title" = "Step 4: Add your go-to dishes";
|
|
"first_dishes_subtitle" = "Add a few dishes to get started faster.";
|
|
"first_dishes_optional_hint" = "Optional — you can add more dishes anytime from the app.";
|
|
"first_dishes_name_placeholder" = "Dish name";
|
|
"first_dishes_add_tag" = "Add tag";
|
|
"first_dishes_add_dish" = "Add dish";
|
|
"first_dishes_added" = "Dishes added:";
|
|
|
|
/* Home */
|
|
"home_title" = "MealMood";
|
|
"home_previous" = "Previous";
|
|
"home_next" = "Next";
|
|
"home_complete" = "Complete";
|
|
"home_undo_last_action" = "Undo last action";
|
|
"home_reset" = "Reset";
|
|
"home_copy_previous_week" = "Copy previous week";
|
|
"home_my_dishes" = "My dishes";
|
|
"home_add_first_dish" = "Add your first dish to get started";
|
|
"home_add_dish" = "Add dish";
|
|
"home_my_dishes_search" = "Search dishes";
|
|
"home_my_dishes_search_empty" = "No dishes found";
|
|
"home_my_dishes_hide_used" = "Hide used this week";
|
|
"home_pick_dish_title" = "Choose a dish";
|
|
"home_pick_dish_search" = "Search dishes";
|
|
"home_pick_dish_empty" = "No dishes match your search";
|
|
"home_pick_dish_add_new" = "Add new dish";
|
|
"home_pick_dish_no_dishes" = "No dishes yet. Add one to get started.";
|
|
"home_select_week" = "Select week";
|
|
"home_week_picker_title" = "Select week";
|
|
"home_week_picker_date" = "Date";
|
|
"home_week_picker_go" = "Go";
|
|
|
|
/* Reset Alert */
|
|
"reset_title" = "Clear the entire week?";
|
|
"reset_message" = "This cannot be undone";
|
|
"reset_cancel" = "Cancel";
|
|
"reset_confirm" = "Clear";
|
|
|
|
/* Toasts */
|
|
"toast_dish_assigned" = "Dish assigned ✓";
|
|
"toast_week_complete" = "Week complete! 🎉";
|
|
"toast_week_reset" = "Week cleared 🔄";
|
|
"toast_dish_saved" = "Dish saved ✓";
|
|
"toast_event_deleted" = "Calendar event deleted";
|
|
"toast_cannot_complete" = "Could not complete all slots";
|
|
"toast_dish_deleted" = "Dish deleted";
|
|
"toast_no_free_slots" = "No free slots available";
|
|
"toast_calendar_synced" = "Calendar synced ✓";
|
|
"toast_copied_previous_week" = "Copied from previous week ✓";
|
|
"toast_previous_week_empty" = "No previous week plan found";
|
|
"toast_undo_applied" = "Last action undone";
|
|
"copy_previous_confirm_title" = "Replace current week?";
|
|
"copy_previous_confirm_message" = "You already have assigned dishes. Copying the previous week will overwrite current assignments.";
|
|
"copy_previous_confirm_confirm" = "Replace week";
|
|
|
|
/* Dish Form */
|
|
"dish_new_title" = "New dish";
|
|
"dish_edit_title" = "Edit dish";
|
|
"dish_name_label" = "Dish name *";
|
|
"dish_name_placeholder" = "E.g.: Roasted chicken";
|
|
"dish_description_label" = "Description (optional)";
|
|
"dish_description_placeholder" = "E.g.: Juicy and oven-baked with herbs";
|
|
"dish_tags_label" = "Tags (optional)";
|
|
"dish_add_tag" = "Add tag";
|
|
"dish_delete" = "Delete dish";
|
|
"dish_delete_title" = "Delete this dish?";
|
|
"dish_delete_message" = "This action cannot be undone";
|
|
"dish_cancel" = "Cancel";
|
|
"dish_done" = "Done";
|
|
"dish_delete_blocked_title" = "Cannot delete";
|
|
"dish_delete_blocked_message" = "You cannot delete a dish assigned in the current week.";
|
|
"dish_delete_blocked_ok" = "OK";
|
|
"dish_list_empty" = "You don't have dishes yet";
|
|
|
|
/* Tag Selector */
|
|
"tag_selector_title" = "Select tags";
|
|
"tag_selector_done" = "Done";
|
|
|
|
/* Tags */
|
|
"tags_title" = "Tags";
|
|
"tags_max_per_week" = "Max per week";
|
|
"tags_no_consecutive" = "No consecutive";
|
|
"tags_no_consecutive_desc" = "Prevents appearing on consecutive days";
|
|
"tags_no_duplicate" = "No same day repeat";
|
|
"tags_no_duplicate_desc" = "Cannot be in both lunch and dinner on the same day";
|
|
"tags_restriction" = "Time restriction";
|
|
"tags_no_restriction" = "No restriction";
|
|
"tags_lunch_only" = "Lunch only";
|
|
"tags_dinner_only" = "Dinner only";
|
|
"tags_no_limit" = "No limit";
|
|
|
|
/* Settings */
|
|
"settings_title" = "Settings";
|
|
"settings_planning" = "Planning";
|
|
"settings_meal_windows" = "Meal windows";
|
|
"settings_include_weekends" = "Include weekends";
|
|
"settings_export_style" = "Weekly export style";
|
|
"settings_calendar" = "Calendar";
|
|
"settings_icloud_sync" = "Sync data with iCloud";
|
|
"settings_sync" = "Sync";
|
|
"settings_sync_mode" = "Sync mode";
|
|
"settings_sync_mode_week_complete" = "Auto (when week is complete)";
|
|
"settings_sync_mode_manual" = "Manual (sync button)";
|
|
"settings_sync_now" = "Sync now";
|
|
"settings_lunch_time" = "Lunch time";
|
|
"settings_dinner_time" = "Dinner time";
|
|
"settings_event_duration" = "Event duration";
|
|
"settings_event_prefix" = "Title prefix";
|
|
"settings_reminder" = "Reminder";
|
|
"settings_reminder_none" = "No reminder";
|
|
"settings_tags" = "Tags";
|
|
"settings_manage_tags" = "Manage tags";
|
|
"settings_language" = "Language";
|
|
"settings_premium" = "Premium";
|
|
"settings_premium_status" = "Status";
|
|
"settings_remove_ads" = "Remove ads";
|
|
"settings_about" = "About";
|
|
"settings_website" = "Website";
|
|
"settings_support" = "Support email";
|
|
"settings_rate_app" = "Rate MealMood";
|
|
"settings_app_version" = "Version";
|
|
"settings_app_build" = "Build";
|
|
"settings_danger_zone" = "Danger zone";
|
|
"settings_reset_all_data" = "Reset all data";
|
|
"settings_reset_all_data_title" = "Reset all app data?";
|
|
"settings_reset_all_data_message" = "This will delete dishes, tags, plans and settings, then start onboarding again.";
|
|
"settings_reset_all_data_confirm" = "Reset all";
|
|
|
|
/* Premium */
|
|
"premium_title" = "MealMood Premium";
|
|
"premium_subtitle" = "Enjoy all features";
|
|
"premium_no_ads" = "No ads";
|
|
"premium_unlimited_dishes" = "Unlimited dishes";
|
|
"premium_custom_tags" = "Custom tags";
|
|
"premium_advanced_rules" = "Advanced tag rules";
|
|
"premium_future_weeks" = "Plan unlimited future weeks";
|
|
"premium_share_week" = "Weekly image export";
|
|
"premium_family_sharing" = "Family Sharing support";
|
|
"premium_plans" = "Available plans:";
|
|
"premium_monthly" = "Monthly";
|
|
"premium_yearly" = "Yearly";
|
|
"premium_save" = "Save 44%";
|
|
"premium_month" = "month";
|
|
"premium_price_note" = "Cancel anytime from your Apple account settings.";
|
|
"premium_terms_note" = "Auto-renewing subscription. Cancel anytime from your Apple account settings.";
|
|
"premium_active" = "Premium is active";
|
|
"premium_subscribe" = "Subscribe";
|
|
"premium_restore" = "Restore purchases";
|
|
"premium_processing" = "Processing...";
|
|
"premium_loading_products" = "Loading purchase options...";
|
|
"premium_loading_products_hint" = "If this takes too long, tap Retry.";
|
|
"premium_loading_timeout" = "Loading timed out";
|
|
"premium_loading_timeout_hint" = "StoreKit did not respond in time. Tap Retry.";
|
|
"premium_products_not_found" = "No products available";
|
|
"premium_products_not_found_hint" = "Check Product IDs in App Store Connect / StoreKit config.";
|
|
"premium_loading_failed" = "Could not load products";
|
|
"premium_loading_failed_hint" = "Please check your StoreKit setup and try again.";
|
|
"premium_retry_products" = "Retry";
|
|
"premium_purchase_pending" = "Purchase is pending approval.";
|
|
"premium_purchase_cancelled" = "Purchase was cancelled.";
|
|
"premium_purchase_failed" = "Purchase failed. Please try again.";
|
|
"tag_selector_empty" = "No tags available yet";
|
|
"premium_limit_dishes" = "Free plan limit reached: 15 dishes";
|
|
"dish_counter_label" = "dishes";
|
|
"dish_counter_upgrade_hint" = "Tap to get unlimited with Premium";
|
|
"dish_limit_modal_title" = "You're cooking up a storm! 🔥";
|
|
"dish_limit_modal_message" = "You've filled your free plan. Unlock unlimited dishes, advanced rules, and more with Premium.";
|
|
"dish_limit_modal_cta" = "See Premium";
|
|
"dish_limit_modal_dismiss" = "Maybe later";
|
|
"onboarding_paywall_title" = "Try MealMood Premium free";
|
|
"onboarding_paywall_subtitle" = "Unlock everything for 7 days — no commitment.";
|
|
"onboarding_paywall_cta_trial" = "Start free trial";
|
|
"onboarding_paywall_cta_skip" = "Continue free";
|
|
"remove_ads_promo_title" = "Tired of ads?";
|
|
"remove_ads_promo_subtitle" = "Go Premium and never see one again.";
|
|
"remove_ads_promo_cta" = "Remove ads";
|
|
"premium_yearly" = "Yearly";
|
|
"premium_year" = "year";
|
|
"premium_lifetime" = "Lifetime";
|
|
"premium_one_time" = "one-time";
|
|
"premium_lifetime_badge" = "PAY ONCE";
|
|
"premium_buy_lifetime" = "Buy lifetime";
|
|
"premium_save_badge" = "SAVE %@";
|
|
"premium_best_value" = "BEST VALUE";
|
|
"premium_trial_badge" = "7-day free trial";
|
|
"premium_trial_note" = "Free for 7 days, then %@. Cancel anytime.";
|
|
"premium_social_proof" = "Trusted by happy families ★★★★★";
|
|
"premium_limit_rules" = "Advanced tag rules are Premium";
|
|
"premium_limit_future_weeks" = "Free plan allows planning up to next week";
|
|
|
|
/* Home extras */
|
|
"rule_override_title" = "Rule conflict";
|
|
"rule_override_message" = "This dish breaks one or more tag rules. Assign anyway?";
|
|
"rule_override_confirm" = "Assign anyway";
|
|
"share_week_button" = "Share week";
|
|
"share_week_title" = "MealMood weekly plan";
|
|
"share_week_callout_title" = "Your week is ready to export";
|
|
"share_week_callout_subtitle" = "Create a beautiful image to share or print your meal plan.";
|
|
"share_export_style_default" = "Default";
|
|
"share_export_style_school" = "School Timetable";
|
|
"share_export_style_vertical" = "Vertical";
|
|
"share_export_style_picker_title" = "Choose export style";
|
|
"share_export_style_picker_subtitle" = "You can change it anytime in Settings.";
|
|
"share_export_style_picker_apply" = "Use this style";
|
|
"share_export_school_title" = "Weekly Meal Plan";
|
|
"share_export_school_subtitle" = "School Timetable";
|
|
"share_export_vertical_title" = "Vertical Meal Plan";
|
|
"ads_placeholder" = "Ad";
|
|
"ads_loading" = "Loading ad...";
|
|
"ads_unavailable" = "Ad unavailable";
|
|
"history_title" = "Monthly history";
|
|
"history_month_empty" = "No planned weeks in this month";
|
|
"history_week_complete" = "Week complete";
|
|
"history_week_incomplete" = "Week in progress";
|
|
|
|
/* Onboarding suggestions */
|
|
"first_dishes_suggestions" = "Quick suggestions";
|
|
"first_dishes_suggestion_add" = "Add suggestion";
|
|
"first_dishes_suggestion_added" = "Added";
|
|
"first_dishes_no_tags" = "Default tags are loading, please retry in a moment";
|
|
|
|
/* Onboarding trial */
|
|
"onboarding_trial_title" = "Unlock Premium";
|
|
"onboarding_trial_subtitle" = "Unlock all premium features now.";
|
|
"onboarding_trial_cta" = "Unlock Premium";
|
|
"onboarding_trial_skip" = "Continue with free plan";
|
|
"onboarding_trial_price_format" = "%@ / month";
|
|
|
|
/* Review funnel */
|
|
"review_funnel_title" = "How is MealMood going?";
|
|
"review_funnel_message" = "Your opinion helps us improve MealMood.";
|
|
"review_funnel_positive" = "I like it";
|
|
"review_funnel_negative" = "Needs improvement";
|
|
"review_feedback_title" = "Tell us what to improve";
|
|
"review_feedback_message" = "Send us your feedback and we'll use it to improve the app.";
|
|
"review_feedback_contact" = "Send feedback";
|
|
"onboarding_auto_assign_title" = "Want us to auto-assign your week?";
|
|
"onboarding_auto_assign_message" = "We can fill this week automatically using your dishes and rules.";
|
|
"onboarding_auto_assign_yes" = "Yes, auto-assign";
|
|
"onboarding_auto_assign_no" = "No, I'll do it";
|
|
"onboarding_premium_prompt_title" = "Want to unlock Premium?";
|
|
"onboarding_premium_prompt_message" = "Get no ads, unlimited dishes, advanced rules, and future-week planning.";
|
|
"onboarding_premium_prompt_cta" = "See Premium";
|
|
|
|
/* Notifications */
|
|
"notification_planning_title" = "Plan your next week";
|
|
"notification_planning_body" = "Your new week starts tomorrow and it is still not planned.";
|
|
|
|
/* Meal Types */
|
|
"lunch" = "Lunch";
|
|
"dinner" = "Dinner";
|
|
|
|
/* Days */
|
|
"day_mon" = "Mon";
|
|
"day_tue" = "Tue";
|
|
"day_wed" = "Wed";
|
|
"day_thu" = "Thu";
|
|
"day_fri" = "Fri";
|
|
"day_sat" = "Sat";
|
|
"day_sun" = "Sun";
|
|
|
|
/* Durations */
|
|
"duration_30" = "30 min";
|
|
"duration_60" = "1 hour";
|
|
"duration_90" = "1.5 hours";
|
|
"duration_120" = "2 hours";
|
|
|
|
/* Reminders */
|
|
"reminder_30" = "30 min before";
|
|
"reminder_60" = "1 hour before";
|
|
"reminder_120" = "2 hours before";
|
|
|
|
"first_dishes_limit_reached" = "You reached 10 dishes. Tap Finish when you are ready.";
|
|
|
|
// Social share
|
|
"share_instagram_subtitle" = "Share as a Story background";
|
|
"share_copy_image" = "Copy Image";
|
|
"share_copy_subtitle" = "Paste in WhatsApp, Telegram…";
|
|
"share_more_options" = "More options";
|
|
"share_more_subtitle" = "Share to any app";
|
|
"share_export_sheet_title" = "Share";
|
|
"share_copied" = "Image copied!";
|
|
|
|
// Onboarding preview
|
|
"onboarding_welcome_preview_label" = "Your week could look like this ✨";
|
|
|
|
// Eating out
|
|
"slot_eating_out" = "Eating out";
|
|
"home_mark_eating_out" = "Mark as eating out";
|
|
"toast_eating_out_marked" = "Marked as eating out";
|
|
|
|
// Rule violations panel
|
|
"violations_panel_title" = "Rule conflicts";
|
|
"violations_panel_empty" = "No rule conflicts this week";
|
|
"violations_fix" = "Clear slot";
|
|
"violations_ignore" = "Ignore";
|
|
"violations_badge" = "%d conflict(s)";
|
|
|
|
// 1.0.6
|
|
"dish_priority" = "Priority dish";
|
|
"dish_priority_desc" = "Will be prioritized in auto-assign";
|
|
"tags_day_restriction" = "Day restriction";
|
|
"tags_day_any" = "Any day";
|
|
"tags_day_weekdays" = "Weekdays only";
|
|
"tags_day_weekend" = "Weekend only";
|
|
"share_slot_empty" = "TBD";
|
|
"home_auto_assign_cta_title" = "Fill your week automatically";
|
|
"home_auto_assign_cta_slots" = "%d empty slots";
|
|
"home_auto_assign_cta_button" = "Auto-assign";
|
|
"notification_sunday_title" = "Plan your next week";
|
|
"notification_sunday_body" = "Sunday is here — take 2 minutes to plan next week's meals.";
|
|
|
|
/* Stats */
|
|
"stats_title" = "Statistics";
|
|
"stats_streak_label" = "Week streak";
|
|
"stats_weeks_planned_label" = "Weeks planned";
|
|
"stats_complete_weeks_label" = "Complete weeks";
|
|
"stats_completion_rate_label" = "Completion rate";
|
|
"stats_top_dishes_title" = "Top dishes";
|
|
"stats_tags_title" = "By category";
|
|
"stats_no_data" = "No data yet";
|
|
|
|
/* Week rating */
|
|
"week_rating_prompt" = "How was this week?";
|
|
|
|
|
|
/* Week ready onboarding step (1.2.0) */
|
|
"onboarding_week_ready_title" = "Your week is ready!";
|
|
"onboarding_week_ready_subtitle" = "%d meals planned automatically. You can tweak anything later.";
|
|
"onboarding_week_ready_subtitle_empty" = "Your weekly plan is set up. Add dishes anytime and fill it in one tap.";
|
|
"onboarding_reminder_pitch" = "Get a gentle reminder every Sunday so next week is always planned before it starts.";
|
|
"onboarding_reminder_allow" = "Remind me on Sundays";
|
|
"onboarding_reminder_skip" = "Not now";
|
|
|
|
/* Notification settings (1.2.0) */
|
|
"settings_notifications_header" = "Notifications";
|
|
"settings_weekly_reminder" = "Weekly planning reminder";
|
|
"settings_notifications_denied_hint" = "Notifications are disabled in system settings.";
|
|
"settings_open_system_settings" = "Open Settings";
|
|
|
|
/* Widget promo (1.2.0) */
|
|
"widget_promo_title" = "Today's meals on your Home Screen";
|
|
"widget_promo_body" = "Long-press your Home Screen, tap +, and search for MealMood to add the widget.";
|
|
|
|
/* Offer codes + share link (1.2.0) */
|
|
"premium_redeem_code" = "Redeem promo code";
|
|
"share_link_text" = "Our week, planned with MealMood → https://mealmood.app";
|
|
|
|
// Shopping list (2.0)
|
|
"shopping_list_title" = "Shopping List";
|
|
"shopping_done" = "Done";
|
|
"shopping_missing_ingredients" = "No ingredients yet";
|
|
"shopping_other_items" = "Other items";
|
|
"shopping_add_item_placeholder" = "Add item…";
|
|
"shopping_generate" = "Generate";
|
|
"shopping_clear_checked" = "Clear checked items";
|
|
"shopping_delete" = "Delete";
|
|
"shopping_empty_title" = "Nothing to buy yet";
|
|
"shopping_empty_message" = "Plan dishes for this week and their ingredients will appear here.";
|
|
"shopping_share_header" = "🛒 Shopping list — MealMood";
|
|
|
|
// Dish editor: photo + ingredients (2.0)
|
|
"dish_photo_label" = "Photo";
|
|
"dish_photo_add" = "Add photo";
|
|
"dish_photo_change" = "Change photo";
|
|
"dish_photo_remove" = "Remove";
|
|
"dish_ingredients_label" = "Ingredients";
|
|
"dish_ingredient_placeholder" = "e.g. 200 g spaghetti";
|
|
"dish_ingredients_add" = "Add ingredient";
|
|
"dish_dictate" = "Dictate";
|
|
"calendar_resize_hint" = "Drag to resize calendar and dishes";
|
|
"dish_ingredients_dictate" = "Dictate";
|
|
"dictation_listening" = "Listening…";
|
|
"dictation_stop" = "Done";
|
|
"dictation_ingredients_hint" = "Say all the ingredients — I'll split them into a list.";
|
|
"dictation_denied_title" = "Microphone access needed";
|
|
"dictation_denied_message" = "Turn on Microphone and Speech Recognition for MealMood in Settings to dictate.";
|
|
"dictation_open_settings" = "Open Settings";
|
|
|
|
// Meal types (2.0)
|
|
"breakfast" = "Breakfast";
|
|
"snack" = "Snack";
|
|
|
|
"settings_show_dish_photos" = "Show dish photos in planner";
|
|
"dish_sort_alphabetical" = "Sort alphabetically";
|
|
"dish_fixed_slot" = "Fixed dish";
|
|
"dish_fixed_slot_desc" = "Always on the same day and meal when auto-filling";
|
|
"dish_fixed_slot_day" = "Day";
|
|
"dish_fixed_slot_meal" = "Meal";
|
|
"home_pick_second_dish" = "Add as second dish";
|
|
"home_remove_second_dish" = "Remove second dish";
|
|
"share_export_preview_title" = "Export week";
|
|
"share_export_preview_rendering" = "Generating preview…";
|
|
"share_export_share_button" = "Share";
|
|
"share_footer_tagline" = "Your week, planned with love";
|
|
"share_footer_scan" = "Scan me";
|
|
"share_export_style_story" = "Story";
|
|
"share_export_style_minimal" = "Minimal (print)";
|
|
"share_export_copy_text" = "Copy as text (WhatsApp)";
|
|
"share_text_copied" = "Copied!";
|
|
"home_mark_skipped" = "Skip this meal";
|
|
"slot_skipped" = "Not planned";
|
|
"toast_meal_skipped" = "Meal skipped";
|
|
"shopping_exclude_dish" = "Already made";
|
|
"shopping_have_it" = "Have it";
|
|
"shopping_at_home_section" = "Already at home";
|
|
"premium_privacy_link" = "Privacy Policy";
|
|
"premium_terms_link" = "Terms of Use (EULA)";
|
|
"violation_reason_repeated" = "This dish is already planned in another meal this week";
|
|
"violation_reason_max_per_week" = "Max %1$@: %2$d per week, and you are over it";
|
|
"violation_reason_no_consecutive" = "%@ cannot repeat on consecutive days";
|
|
"violation_reason_no_same_day" = "%@ is already in another meal on this day";
|
|
"violation_reason_meal_only" = "%1$@ is only allowed at %2$@";
|
|
"violation_reason_day_scope" = "%1$@ is only allowed %2$@";
|
|
"violation_scope_weekdays" = "on weekdays";
|
|
"violation_scope_weekend" = "on weekends";
|
|
"violation_suggestion_repeated" = "Swap it for another dish to vary the week";
|
|
"violation_suggestion_swap" = "Swap it for a dish with a different tag";
|
|
"violation_suggestion_move" = "Move it to a day or meal where it is allowed";
|
|
"violation_suggestion_generic" = "Change the dish or dismiss the warning";
|
|
"violations_replace" = "Change dish";
|
|
"stats_tag_by_meal_title" = "Tags by meal type";
|
|
"stats_dishes_per_tag_title" = "Dishes per tag";
|
|
"violations_banner_title" = "%d meal(s) break your rules";
|
|
"violations_banner_cta" = "View";
|
|
|
|
/* Per-week schedule (2.1.1, premium) */
|
|
"week_schedule_title" = "This week only";
|
|
"week_schedule_intro" = "Change the days and meals of this one week, without touching your general settings.";
|
|
"week_schedule_premium_message" = "Customising a single week is Premium";
|
|
"week_schedule_meals_section" = "Meals this week";
|
|
"week_schedule_meals_footer" = "Turn breakfast or a snack on just for this week. At least one meal must stay on.";
|
|
"week_schedule_days_section" = "Days this week";
|
|
"week_schedule_apply" = "Apply";
|
|
"week_schedule_reset" = "Back to my general settings";
|
|
"week_schedule_reset_footer" = "This week will follow your general settings again.";
|
|
"week_schedule_warning_title" = "Planned meals will be lost";
|
|
"week_schedule_warning_message" = "Removing those days or meals will delete %d meals already planned this week.";
|
|
"week_schedule_warning_confirm" = "Remove anyway";
|
|
"toast_week_schedule_updated" = "Week updated";
|
|
"toast_week_schedule_reset" = "Week back to your general settings";
|
|
|
|
/* Hogar compartido (2.2) */
|
|
"household_title" = "Shared household";
|
|
"household_section" = "Household";
|
|
"household_settings_footer" = "Plan the week together, each person from their own account. Works from Android too.";
|
|
"household_intro" = "A household lets several people plan the same week, sharing dishes and the shopping list.";
|
|
"household_sign_in_footer" = "Signing in is what makes sharing possible. Your dishes stay yours: nobody outside your household sees them.";
|
|
"household_create_section" = "Create a household";
|
|
"household_create" = "Create household";
|
|
"household_name_placeholder" = "Household name (e.g. Home)";
|
|
"household_create_footer" = "Your current dishes, tags and weeks become the household's starting point.";
|
|
"household_create_premium_footer" = "Creating a household is Premium. Whoever you invite doesn't have to pay.";
|
|
"household_join_section" = "Join a household";
|
|
"household_join" = "Join with code";
|
|
"household_code_placeholder" = "Invite code";
|
|
"household_join_footer" = "Ask whoever created the household for the code. It expires after 7 days.";
|
|
"household_join_choice_title" = "What about your dishes?";
|
|
"household_join_choice_message" = "You can bring the dishes and weeks you already have into this household, or start with the household's own.";
|
|
"household_join_choice_merge" = "Bring my dishes";
|
|
"household_join_choice_replace" = "Use the household's only";
|
|
"household_members_section" = "Members";
|
|
"household_member_you" = "you";
|
|
"household_member_unnamed" = "Unnamed";
|
|
"household_invite_section" = "Invitation";
|
|
"household_invite_footer" = "Share this code with whoever you want planning with you.";
|
|
"household_invite_share" = "Join my MealMood household with the code %@ — https://mealmood.app";
|
|
"household_invite_expires" = "Expires on %@";
|
|
"household_invite_regenerate" = "Generate a new code";
|
|
"household_leave" = "Leave household";
|
|
"household_leave_confirm_title" = "Leave the household?";
|
|
"household_leave_confirm_message" = "You'll stop seeing and editing the household's dishes and weeks on this device.";
|
|
"household_leave_confirm_confirm" = "Leave";
|
|
"household_relaunch_needed" = "Quit and reopen MealMood to finish the change.";
|
|
"household_error_not_signed_in" = "Sign in before creating or joining a household.";
|
|
"household_error_no_household" = "This device doesn't belong to a household.";
|
|
"household_error_invalid_code" = "That code doesn't exist.";
|
|
"household_error_expired_code" = "That code has expired. Ask for a new one.";
|