{
  "title": "Import recipes",
  "description": "Import recipes from other apps and services.",
  "recovery": {
    "title": "Import cleanup needs attention",
    "description": "We couldn't remove everything added by an earlier import. Retry cleanup to finish safely.",
    "working": "We're removing data added by an unfinished import. You can leave this page.",
    "retry": "Retry cleanup",
    "progress": "Cleanup is running"
  },
  "noProviders": "No import providers are currently available.",
  "requestPlatform": "Request a platform",
  "requestPlatformDescription": "Don't see your platform? Let us know!",
  "preview": {
    "ingredients": "Ingredients",
    "directions": "Directions",
    "source": "Source:",
    "recipePreview": "Recipe preview",
    "clickToPreview": "Click a recipe to preview its details",
    "close": "Close preview"
  },
  "wizard": {
    "upload": "Upload",
    "select": "Select",
    "import": "Import",
    "importFrom": "Import from {name}",
    "analyzing": "Analyzing your recipes...",
    "tryAgain": "Try again",
    "recipesFound": "{count} recipes found",
    "selectAll": "Select all",
    "previouslyImported": "Previously imported",
    "changedImportCopy": "Imports as a copy",
    "changedImportDescription": "{count, plural, one {# changed recipe will be imported as a separate copy} other {# changed recipes will be imported as separate copies}} so your current recipes stay untouched.",
    "duplicateCheck": "Checking for previously imported recipes...",
    "duplicateCheckFailed": "We couldn't check for previous imports. Try again before continuing.",
    "retryDuplicateCheck": "Try again",
    "back": "Back",
    "importSelected": "Import selected ({count})",
    "uploadingImages": "Uploading images...",
    "importingRecipes": "Importing recipes...",
    "importingCollections": "Restoring collections...",
    "images": "Images",
    "recipes": "Recipes",
    "collections": "Collections",
    "recipesImported": "{count} {count, plural, one {recipe} other {recipes}} imported",
    "result": {
      "successTitle": "Import complete",
      "partialTitle": "Import partly finished",
      "failedTitle": "Couldn't finish the import",
      "failedDescription": "Anything this import added is being removed automatically."
    },
    "recipesSkipped": "{count} already {count, plural, one {exists} other {exist}} in your library",
    "collectionsImported": "{count} {count, plural, one {collection} other {collections}} restored",
    "failedCount": "{count} failed:",
    "failure": {
      "recipe": "This recipe could not be imported. Try importing it again.",
      "image": "One or more images could not be restored. Try importing the backup again.",
      "collection": "This collection could not be restored. Try importing the backup again.",
      "batch": "The import stopped unexpectedly. Try again; recipes already imported won't be duplicated."
    },
    "undo": {
      "action": "Undo import",
      "retry": "Try undo again",
      "working": "Undoing this import...",
      "completed": "This import was undone.",
      "failed": "We couldn't finish undoing this import. Try again.",
      "expired": "The one-hour undo window has ended.",
      "confirmTitle": "Permanently undo this import?",
      "confirmDescription": "This permanently removes {recipeCount} imported recipes and {collectionCount} imported collections. Changes made to those new items since import will also be lost.",
      "confirmRestoredData": "It also removes images restored onto existing recipes and collection organization added by this import.",
      "cancel": "Keep imported data",
      "confirm": "Permanently undo"
    },
    "viewRecipes": "View recipes",
    "importMore": "Import more",
    "keepPageOpen": "Keep this page open while importing. If you leave, we'll automatically remove anything this import added.",
    "leaveConfirmTitle": "Import in progress",
    "leaveConfirmMessage": "Your import is still running. If you leave, we'll stop it and automatically remove anything it added."
  },
  "instructions": {
    "title": "How to export from {name}"
  },
  "providers": {
    "dailySimmer": {
      "description": "Restore a Daily Simmer backup (.simmer)",
      "uploadLabel": "Drop your Daily Simmer backup here",
      "uploadDescription": "Supports .simmer files exported from Daily Simmer",
      "instructions": {
        "openExport": "Open Data export in Daily Simmer settings",
        "chooseArchive": "Choose Daily Simmer archive",
        "download": "Download the .simmer file",
        "upload": "Upload that file below"
      }
    },
    "recipeKeeper": {
      "description": "Import from Recipe Keeper (.zip)",
      "uploadLabel": "Drop your Recipe Keeper export file here",
      "uploadDescription": "Supports .zip files exported from Recipe Keeper",
      "instructions": {
        "openApp": "Open the Recipe Keeper app",
        "openImportExport": "Go to Settings > Import/Export",
        "exportZip": "Under 'Export recipes to', tap 'Recipe Keeper .zip file'",
        "upload": "Upload the exported file below"
      }
    },
    "mrCook": {
      "description": "Import from Mr. Cook (.zip)",
      "uploadLabel": "Drop your Mr. Cook export file here",
      "uploadDescription": "Supports .zip files exported from Mr. Cook",
      "instructions": {
        "openApp": "Open Mr. Cook",
        "openImportExport": "Go to Settings > Import & Export",
        "exportZip": "Tap 'Export recipes (.zip)'",
        "upload": "Upload the exported file below"
      },
      "note": "Mr. Cook's export leaves out notes, ingredient groups, and cookbooks. Exporting from inside a Mr. Cook cookbook exports only that cookbook's recipes. When a recipe was saved from a video, that video comes across as its source link. Photos come across from Mr. Cook's image links, and tags only when the export includes them."
    }
  },
  "errors": {
    "parseFailed": "We couldn't read that file. Try exporting it again.",
    "fileTooLarge": "That file is over {maxSize} MB. Choose a smaller export and try again.",
    "recipeKeeper": {
      "unsupportedFile": "{fileName} isn't a Recipe Keeper ZIP. Export your recipes as a Recipe Keeper .zip file and try again.",
      "invalidZip": "That ZIP couldn't be opened. Export it from Recipe Keeper again and retry.",
      "archiveTooLarge": "That Recipe Keeper ZIP is too large to import safely.",
      "archiveExpandedTooLarge": "That Recipe Keeper ZIP expands beyond the safe import limit.",
      "missingRecipesHtml": "That ZIP doesn't contain Recipe Keeper's recipes.html file.",
      "noRecipeRecords": "The Recipe Keeper export doesn't contain any recipe records.",
      "noTitledRecipes": "The Recipe Keeper export doesn't contain any titled recipes."
    },
    "dailySimmer": {
      "unsupportedFile": "{fileName} isn't a Daily Simmer backup. Choose a .simmer file and try again.",
      "invalidZip": "That backup couldn't be opened. Export it from Daily Simmer again and retry.",
      "archiveTooLarge": "That Daily Simmer backup is too large to import safely.",
      "archiveExpandedTooLarge": "That Daily Simmer backup expands beyond the safe import limit.",
      "missingManifest": "That file doesn't contain a Daily Simmer manifest.",
      "unsupportedVersion": "This backup was created with a newer archive version. Update Daily Simmer and try again.",
      "invalidManifest": "That Daily Simmer manifest is incomplete or damaged.",
      "invalidData": "Some recipe or collection data in that backup couldn't be read.",
      "checksumFailed": "That backup is incomplete or damaged. Export it again and retry."
    }
  },
  "provider": {
    "unknown": "Unknown import provider.",
    "backToImport": "Back to import"
  },
  "status": {
    "importing": "Importing recipe...",
    "failed": "Couldn't finish the import",
    "unknownError": "Try again in a moment.",
    "retryAfter": "Try again in about {seconds, plural, one {# second} other {# seconds}}.",
    "fromSource": "From {hostname}",
    "stage": {
      "openingSource": "Opening the link",
      "findingRecipe": "Reading the recipe",
      "organising": "Sorting the ingredients and steps",
      "preparingReview": "Finishing your recipe"
    },
    "activity": {
      "followingLink": "Following the recipe link from the post",
      "listeningToVideo": "Listening to the video for the amounts",
      "watchingVideo": "Watching the video for the details",
      "readingPhotos": "Reading the recipe from the photos",
      "readingComments": "Checking the comments for the full recipe",
      "takingCloserLook": "Taking a closer look at the page",
      "checkingCreatorSite": "Checking the creator's site for the recipe"
    },
    "smartLabel": "Smart Import",
    "smartTakeover": "This one needs a closer look, so Smart Import is stepping in.",
    "longWait": "Some recipes take a minute or more to bring over.",
    "extendedWait": "Still on it. A few pages need a little longer than most."
  },
  "export": {
    "title": "Export recipes",
    "description": "Download a complete backup or a portable copy for another recipe app.",
    "format": {
      "title": "Choose a format",
      "description": "The Daily Simmer archive preserves the most detail.",
      "simmer": {
        "title": "Daily Simmer archive",
        "description": "A .simmer backup with recipes, selected collections, and images."
      },
      "jsonLd": {
        "title": "Recipe JSON-LD",
        "description": "A widely supported Schema.org format for moving recipes to other tools."
      }
    },
    "contents": {
      "title": "Choose what to include",
      "description": "Every recipe you own or can edit is included with its images. Select the collections you want to preserve.",
      "jsonLdDescription": "Every recipe you own or can edit is included. Collections and image files need a Daily Simmer archive.",
      "allRecipes": "Recipes you can export",
      "recipeCount": "{count, plural, one {# recipe} other {# recipes}}",
      "allCollections": "All collections",
      "noCollections": "You don't have any collections to add yet."
    },
    "action": {
      "download": "Download export",
      "working": "Preparing export"
    },
    "progress": {
      "reading": "Gathering recipes · {count} of {total}",
      "building": "Packing your export",
      "keepOpen": "Keep this page open until the download starts."
    },
    "success": {
      "title": "Your export is ready",
      "description": "The download has started. Keep the file somewhere safe."
    },
    "errors": {
      "title": "Couldn't prepare that export",
      "failed": "Try again in a moment.",
      "network": "An image couldn't be downloaded. Check your connection and try again.",
      "tooLarge": "This export is too large to build in your browser. Contact support and we'll help.",
      "counts": "Couldn't count your recipes. Refresh the page and try again.",
      "collections": "Couldn't load your collections. Refresh the page and try again."
    }
  },
  "urlRecovery": {
    "unsupportedUrl": {
      "title": "We can't import that link",
      "body": "It doesn't point at a recipe page we can read. Check the address, or paste the link to the recipe itself."
    },
    "socialSource": {
      "title": "Good find. Let's save it",
      "body": "A social post doesn't hand over its recipe the way a recipe site does. Smart Import knows where to look."
    },
    "fetchFailed": {
      "title": "We couldn't open that page",
      "body": "The site didn't answer, or the recipe might be private or behind a sign-in."
    },
    "pageNotFound": {
      "title": "That page isn't there",
      "body": "Check the link or try another recipe page."
    },
    "extractFailed": {
      "title": "We couldn't find a recipe on that page",
      "body": "We couldn't read ingredients and steps there. Try another link or write it yourself."
    },
    "recipeLinkNotFound": {
      "title": "That page points to the recipe somewhere else",
      "body": "It links out to the recipe instead of holding one. Open the page to find the recipe's own address."
    },
    "recipeCreateFailed": {
      "title": "We read the recipe but couldn't save it",
      "body": "That one was on our side, not your link. Try again in a moment."
    },
    "recipeLimitReached": {
      "title": "Your recipe shelf is full",
      "body": "We read this recipe, but the Free plan's 25-recipe shelf is full. Upgrade to save it, or choose a different link."
    },
    "imageDownloadFailed": {
      "title": "The recipe photo wouldn't download",
      "body": "We had the recipe, but its photo didn't come through, so the import stopped. Try again in a moment."
    },
    "canceled": {
      "title": "Import stopped",
      "body": "Nothing was saved. Start it again whenever you like."
    },
    "privateOrRemoved": {
      "title": "That post isn't public anymore",
      "body": "It's private, or it was taken down, so there's nothing there for us to read."
    },
    "loginWalled": {
      "title": "That post asks us to sign in",
      "body": "We read posts the way a signed-out visitor does, and this one is behind a login."
    },
    "unsupportedShape": {
      "title": "We can't read that kind of post yet",
      "body": "It opened, but it isn't laid out in a way we know how to read a recipe from."
    },
    "vendorUnavailable": {
      "title": "We couldn't reach that post just now",
      "body": "Nothing about your link is wrong. A second try in a minute usually gets through."
    },
    "retrievalBlocked": {
      "title": "That platform turned us away this time",
      "body": "It didn't let us open the post just now. This usually eases off after a little while."
    },
    "noRecipeContent": {
      "title": "That post didn't hold a recipe",
      "body": "We opened it, but it has no ingredients or steps to work from, only the post itself."
    },
    "recipeGated": {
      "title": "The recipe is waiting in the post's comments or bio",
      "body": "This post shows the dish but keeps the ingredients and amounts in a comment, a reply, or the creator's bio link. Open the post to find them, then paste that link here."
    },
    "multipleRecipes": {
      "title": "That post holds several recipes",
      "body": "It's a roundup, and a saved recipe can only be one dish. Open the post, pick the one you want, and paste its own link."
    },
    "notCookingContent": {
      "title": "That post isn't about cooking",
      "body": "We opened it, and it's about something else, so there's no recipe in it to save. Paste a link to a recipe post or page and we'll read that one."
    },
    "rateLimited": {
      "title": "A few too many imports at once",
      "body": "We're pacing imports right now. Your link is still here when the wait is up."
    },
    "capacityCommitted": {
      "title": "Another import is still running",
      "body": "Another AI task is using your available capacity. Try again when it finishes."
    },
    "timedOut": {
      "title": "That took longer than we could wait",
      "body": "The import didn't finish in time. A second run often gets through."
    },
    "trialsExhausted": {
      "title": "Another good find",
      "body": "Your five Smart Imports are used for this month. Basic Import still works, or you can upgrade to continue with Credits."
    },
    "plusRequired": {
      "title": "Another good find",
      "body": "Smart Import saves the recipes that social posts keep to themselves. Upgrade to continue with Credits."
    },
    "creditsExhausted": {
      "title": "Another good find",
      "body": "Your Credits are used for now. Top up and Smart Import carries on."
    },
    "duplicate": {
      "title": "You already have this one",
      "body": "This link is saved in your library. Open it, or import a different recipe."
    },
    "unknown": {
      "title": "That import didn't finish",
      "body": "Something went wrong on our side, not with your link. Try again in a moment."
    },
    "detail": {
      "read": "We read {sources}, and found no amounts anywhere.",
      "source": {
        "caption": "the caption",
        "transcript": "the video's transcript",
        "comments": "the comments",
        "video": "the video itself",
        "photos": "the photos",
        "linked_page": "the linked page",
        "creator_site": "the creator's site"
      },
      "lead": {
        "no_creator_site": "The caption points to a bio link, but the profile lists no site we could search.",
        "site_unreachable": "The caption points to {host}, but that site didn't answer.",
        "site_unreachable_unknown_host": "The caption points to the creator's site, but that site didn't answer.",
        "no_matching_recipe": "The caption points to {host}, but we couldn't find this dish there.",
        "no_matching_recipe_unknown_host": "The caption points to the creator's site, but we couldn't find this dish there.",
        "page_failed": "We found a matching page on {host}, but couldn't read a recipe from it.",
        "page_failed_unknown_host": "We found a matching page on the creator's site, but couldn't read a recipe from it.",
        "page_without_amounts": "We found this dish on {host}, but that page gives no amounts either.",
        "page_without_amounts_unknown_host": "We found this dish on the creator's site, but that page gives no amounts either."
      },
      "cue": {
        "dm_gate": "The creator sends this recipe by direct message, which we can't read."
      }
    },
    "action": {
      "trySmart": "Use Smart Import",
      "tryAgain": "Try again",
      "tryAnotherLink": "Use a different link",
      "openSource": "Open the page",
      "writeItYourself": "Write it yourself",
      "seePlans": "Continue with Plus",
      "buyCredits": "Buy more Credits",
      "openRecipe": "Open recipe",
      "importLink": "Import this link",
      "createFromDraft": "Create my recipe",
      "declineDraft": "Skip it"
    },
    "regionLabel": "Import result",
    "editLinkLabel": "Recipe link",
    "noAmountsFound": {
      "title": "Your recipe is one step from ready",
      "body": "We found the ingredients and steps this post lists. A few essential details are still missing.",
      "offer": "Say the word and Daily Simmer fills only those gaps, so you can save the recipe now and tune it as you cook.",
      "caveat": "Anything Daily Simmer adds is an estimate, not part of the creator's original recipe. Give it a quick check before you cook.",
      "gapsHeading": "Details Daily Simmer will estimate",
      "gapKind": {
        "ingredient_amount": "Ingredient amount",
        "servings": "Servings",
        "direction_detail": {
          "temperature": "Direction temperature",
          "technique": "Direction technique",
          "instruction": "Direction instruction"
        }
      },
      "ingredientsHeading": "Ingredients we found",
      "stepsHeading": "Steps we found",
      "creating": "Filling in the missing details and creating your recipe",
      "declined": "Nothing was created. Your recipe library is exactly as you left it.",
      "failed": "The recipe didn't get created this time. Try again in a moment.",
      "recipeNote": "Some details in this recipe are Daily Simmer estimates, not part of the creator's original recipe. Check them before you cook, and save what works for you.",
      "estimatedIngredients": "Daily Simmer estimated the amounts for {estimatedIngredientNames}.",
      "moreIngredients": "{count, plural, one {and # more ingredient} other {and # more ingredients}}",
      "moreSteps": "{count, plural, one {and # more step} other {and # more steps}}"
    },
    "noAmountsSettled": {
      "title": "This post came without amounts",
      "body": "It names ingredients and walks through steps, but never says how much of each to use."
    },
    "missingDetailsSettled": {
      "title": "This post left out an essential detail",
      "body": "It names the ingredients and steps, but one detail needed to cook the recipe is missing."
    }
  },
  "background": {
    "minimize": "Minimize",
    "minimizeHint": "Your import keeps going while you browse your recipe library. Find it at the bottom of the screen.",
    "dismiss": "Dismiss",
    "running": {
      "title": "Still importing",
      "action": "Show import",
      "announcement": "The import is running in the background. You can carry on, and we'll tell you when it's ready."
    },
    "ready": {
      "title": "Recipe ready",
      "detail": "Imported from {hostname}",
      "action": "Show result",
      "announcement": "The recipe imported from {hostname} is ready to open."
    },
    "attention": {
      "title": "Import needs you",
      "detail": "Needs attention · {hostname}",
      "action": "Show import",
      "announcement": "The import from {hostname} stopped and needs you."
    }
  },
  "sourcePreview": {
    "title": "Source preview",
    "description": "Source preview. This is not a saved recipe yet.",
    "withoutTitle": "This is not a saved recipe yet.",
    "ingredients": "Ingredients found",
    "directions": "{count, plural, one {# direction found} other {# directions found}}",
    "announcement": "Source preview available."
  },
  "activityList": {
    "title": "{count, plural, one {# import} other {# imports}}",
    "attention": "{count, plural, one {# needs attention} other {# need attention}}",
    "running": "{count} importing",
    "ready": "{count} ready",
    "show": "View imports",
    "hide": "Hide imports"
  }
}
