{
  "pwa": {
    "update": {
      "title": "A new version is ready",
      "body": "Finish any dictation and save open edits first. Visit drafts and photos stay on this device.",
      "action": "Reload",
      "dismiss": "Not now"
    },
    "install": {
      "title": "Install Bloom",
      "body": "Works offline in the field and keeps the visits you capture safe.",
      "action": "Install",
      "howTo": "How to install",
      "dismiss": "Not now",
      "failed": "The browser didn’t open its installer. Its menu still works.",
      "settings": {
        "label": "Install the app",
        "description": "Opens from your Home Screen and keeps offline work on this device.",
        "installed": "Installed",
        "installedDescription": "Bloom is running as an installed app."
      },
      "guide": {
        "title": "Add Bloom to your Home Screen",
        "intro": {
          "safari": "In Safari:",
          "chrome": "In Chrome:",
          "edge": "In Edge:",
          "firefox": "In Firefox:",
          "samsung": "In Samsung Internet:",
          "browser": "From your browser’s menu:",
          "openInSafari": "The browser inside {{app}} can’t install apps. Open this page in Safari, then install from there.",
          "openInChrome": "The browser inside {{app}} can’t install apps. Open this page in Chrome, then install from there.",
          "oldIos": "This browser can’t add apps on this version of iOS. Use Safari instead:"
        },
        "thisApp": "this app",
        "copyLink": "Copy link",
        "copied": "Copied",
        "already": "Already installed? Open Bloom from your Home Screen.",
        "private": "In a private tab, the option may be missing.",
        "close": "Close",
        "done": "Done"
      },
      "steps": {
        "iosSafariShare": "Tap Share. If you don’t see it, tap ⋯ first.",
        "iosChromeShare": "Tap Share, at the right of the address bar.",
        "iosEdgeShare": "Find Share in Edge’s toolbar or its ⋯ menu.",
        "iosFirefoxShare": "Tap Share in the address bar.",
        "iosAddToHome": "Scroll down and tap Add to Home Screen.",
        "iosConfirm": "Leave Open as Web App on, if shown, then tap Add.",
        "pasteInSafari": "Copy the link below and paste it into Safari.",
        "androidChromeMenu": "Tap ⋮ next to the address bar.",
        "androidChromeAdd": "Tap Install and create shortcut (Add to Home screen in older versions).",
        "androidChromeInstall": "Tap Install.",
        "androidEdgeMenu": "Tap the menu at the bottom right.",
        "androidEdgeAdd": "Tap Add to phone.",
        "samsungMenu": "Tap the menu at the bottom right.",
        "samsungAddPageTo": "Tap Add page to, then Home screen.",
        "androidFirefoxMenu": "Tap ⋮ in the toolbar.",
        "androidFirefoxAdd": "Tap Install (or Add to Home screen).",
        "androidFirefoxConfirm": "Tap Add automatically.",
        "browserMenu": "Open your browser’s menu.",
        "browserAdd": "Tap Install app or Add to Home screen. Not there? Open this page in Chrome.",
        "inAppMenu": "In {{app}}, tap the ⋯ or ⋮ menu, usually at the top right.",
        "inAppOpenSafari": "Choose Open in external browser, or Open in Safari.",
        "inAppOpenChrome": "Choose Open in external browser, or Open in Chrome."
      }
    }
  },
  "reports": {
    "section": "Reports",
    "findingCount_one": "{{count}} finding",
    "findingCount_other": "{{count}} findings",
    "photoCount_one": "{{count}} photo",
    "photoCount_other": "{{count}} photos",
    "findingCountUnknown": "Finding count unavailable",
    "photoCountUnknown": "Photo count unavailable",
    "includedPhotos": "Included visit photos: {{count}}",
    "selectionSummary": "Report selection summary",
    "selectedVisits": "Selected visits",
    "selectionChanged": "A selected visit has changed. Remove it and select its current signed version.",
    "createTitle": "Create grower report",
    "create": "Create report",
    "intro": "Bring selected field visits together in one clear update for your grower.",
    "grower": "Grower",
    "chooseGrower": "Choose a grower",
    "loadMoreGrowers": "Load more growers",
    "senderTitle": "Set up your sender profile",
    "senderSummary": "Prepared by {{name}}",
    "senderHelp": "Your name and contact details appear on new reports. Existing reports stay unchanged.",
    "senderName": "Sender name",
    "senderContact": "Contact details (optional)",
    "credential": "Credentials (optional)",
    "logo": "Logo (PNG or JPEG, optional)",
    "removeLogo": "Remove logo",
    "saveSender": "Save sender profile",
    "reloadSender": "Reload saved sender (replace these edits)",
    "selectVisits": "Select visits",
    "selectionHelp": "Choose up to 10 signed visits across this grower’s fields.",
    "fieldFiltered": "Showing this field.",
    "allFields": "Show all grower fields",
    "dateFrom": "From date",
    "dateTo": "Through date",
    "invalidDates": "The end date must be on or after the start date.",
    "noVisits": "No visits match this selection.",
    "selected": "{{count}} of 10 visits selected",
    "removeVisit": "Remove {{field}} — {{date}}",
    "remove": "Remove",
    "loadMore": "Load more",
    "reviewVisit": "Review visit (new tab)",
    "attestTitle": "Sign this version",
    "attestHelp": "This older signed visit has no recorded signature identity or time. Review its notes and findings before signing this version. Your signature will be recorded now; it will not be backdated.",
    "attest": "Sign this version",
    "signing": "Signing…",
    "timezone": "Visit timezone",
    "invalidTimezone": "Enter a valid IANA timezone, such as America/Toronto.",
    "signatureTimezone": "Visit dates will use your device timezone: {{timezone}}.",
    "reason": {
      "draft": "Draft — review and sign this visit first.",
      "legacy_signature_required": "An explicit signature is needed for this older visit.",
      "grower_changed": "The grower association has changed since signing.",
      "unavailable": "This visit is not eligible."
    },
    "reviewSelection": "Review selection",
    "language": "Report language",
    "units": "Report units",
    "createHelp": "Includes saved notes, reviewed findings, photos and follow-up dates. The report opens for review before you share it. Recommendations are not included.",
    "changeSelection": "Change selection",
    "creating": "Creating report…",
    "saved": "Saved reports",
    "noSaved": "No reports created for this grower yet.",
    "savedTitle": "Grower report",
    "visitCount_one": "{{count}} visit",
    "visitCount_other": "{{count}} visits",
    "state": {
      "pending": "Report saved",
      "rendering": "Preparing your report…",
      "ready": "Report ready",
      "failed": "Report files could not be prepared"
    },
    "failure": {
      "render_failed": "The saved report could not be rendered. Retry to prepare files from the same saved content.",
      "storage_unavailable": "Report storage is unavailable. Retry when the connection is restored.",
      "interrupted": "Preparation was interrupted. Retry the same saved report.",
      "report_too_large": "This report is too large. Choose fewer visits and try again. Limits: 10 visits, 200 findings, 10 visit photos plus a logo, and 50,000 characters.",
      "unsupported_asset": "An included photo or logo is unsupported. Review the original asset before creating another report."
    },
    "retry": "Try again",
    "retryRender": "Prepare report",
    "pendingHelp": "Your report is saved. Choose Prepare report to create its files.",
    "error": "Could not complete this request. Please try again.",
    "conflict": "A visit or sender profile changed. Review your selection or reload the saved sender profile before trying again.",
    "invalidRequest": "Check the selected visits and photos, then try again.",
    "downloadPdf": "Download PDF",
    "downloadHtml": "Download HTML",
    "email": "Email",
    "emailHelp": "Email delivery is not available yet. Download the PDF to share it yourself.",
    "loadingPreview": "Loading saved preview…",
    "previewTitle": "Saved grower report preview",
    "snapshotHelp": "This report preserves its signed visit versions and sender details. Later edits do not change this document.",
    "fieldHistory": "Scouting history"
  },
  "growerFarmUx": {
    "retry": "Try again",
    "fieldSaveError": "Could not add this field. Your name is still here — try again.",
    "fieldDeleteError": "Could not delete this field. Please try again.",
    "farmDeleteError": "Could not delete this farm. Please try again.",
    "growerContext": "Creating a farm for {{name}}",
    "hierarchy": "Grower, farm and field navigation",
    "fieldActions": "Actions for {{name}}",
    "recordedArea": "Recorded area",
    "mappedArea": "Mapped area",
    "areaNotRecorded": "Not recorded",
    "mapped": "Mapped",
    "notMapped": "No boundary",
    "mappingUnknown": "Mapping unavailable",
    "mappingLoading": "Loading map status…",
    "boundaryLoadError": "Could not load boundary status. Fields are still available.",
    "fieldSearch": "Search fields",
    "clearSearch": "Clear search",
    "fieldResults": "{{shown}} of {{total}} loaded fields",
    "partialList": "Showing {{shown}} of {{total}}. Search covers the loaded records.",
    "areaExplanation": "Planted area is entered on the farm. Mapped area is calculated from field boundaries.",
    "fieldsBack": "Back to fields",
    "growerBack": "Back to grower",
    "allFarms": "All farms"
  },
  "landing": {
    "title": "Agteq",
    "signIn": "Sign in"
  },
  "common": {
    "comingInPhase": "Coming in migration phase {{phase}}.",
    "loading": "Loading…",
    "loadError": "Couldn't load that. Please try again.",
    "delete": "Delete",
    "back": "Back",
    "saving": "Saving…",
    "cancel": "Cancel",
    "select": "Select…",
    "selectOne": "Select one…",
    "save": "Save",
    "error": "Error",
    "none": "None",
    "saveFailed": "Couldn’t save — try again.",
    "edit": "Edit",
    "remove": "Remove",
    "retry": "Retry",
    "area": "Area"
  },
  "nav": {
    "skipToContent": "Skip to main content",
    "toggleSidebar": "Toggle Sidebar",
    "dashboard": "Dashboard",
    "farms": "Farms",
    "cropScouting": "Crop Scouting",
    "bluebookChat": "Bluebook Chat",
    "precisionChat": "Precision Chat",
    "groupPlatform": "Platform",
    "groupAskAi": "Ask AI",
    "user": "Account",
    "preferences": "Preferences",
    "section": {
      "workspace": "Workspace",
      "account": "Account"
    },
    "growers": "Growers",
    "aiSettings": "AI models",
    "settings": "Settings",
    "openSidebar": "Open sidebar",
    "closeSidebar": "Close sidebar",
    "farmLab": "Farm Lab"
  },
  "breadcrumb": {
    "label": "Breadcrumb",
    "home": "Home"
  },
  "dashboard": {
    "farms": "Farms",
    "fields": "Fields",
    "crops": "Crops",
    "totalArea": "Total area",
    "acres": "{{value}} ac",
    "scoutingNotes": "Scouting notes",
    "chatSessions": "Chat sessions",
    "chatTokens": "Chat tokens used",
    "chatBreakdown": "{{general}} general · {{precision}} precision",
    "workspaceTitle": "Hello",
    "personalGreeting": "Hello {{name}}",
    "welcome": "Welcome to Bloom.",
    "welcomeName": "Welcome back, {{name}}.",
    "subtitle": "Your fields, your observations, your next decision.",
    "browseAll": "All farms",
    "bluebookDesc": "Explore agricultural questions with Bluebook.",
    "precisionDesc": "Work through herbicide options with a focused assistant.",
    "askPlaceholder": "What are you working through?",
    "herbicide": "Herbicide",
    "fertilizer": "Fertilizer",
    "pesticide": "Pesticide",
    "seed": "Seed",
    "soon": "Soon",
    "fieldsCount": "{{count}} fields",
    "workspace": "Your workspace",
    "fieldwork": {
      "eyebrow": "In the field",
      "title": "Crop scouting",
      "description": "Capture what you see. Keep field notes, photos and findings together, from first observation to review.",
      "openScouting": "Open scouting",
      "footnote": "Your observations lead. AI helps you review."
    },
    "assistant": {
      "eyebrow": "Agronomy questions",
      "title": "Bluebook",
      "questionLabel": "Your agricultural question",
      "ask": "Ask Bluebook",
      "precisionTitle": "Precision tools",
      "openPrecision": "Open assistant"
    },
    "overview": {
      "title": "Farm overview",
      "error": "Farm totals could not be refreshed."
    },
    "farmPreview": {
      "title": "Your farms",
      "description": "The land behind your work.",
      "error": "Your farms could not be loaded.",
      "empty": "Your farm workspace starts here.",
      "emptyDescription": "Open All farms to add a farm and start building its field records.",
      "refreshError": "Showing saved farm details. The latest update could not be loaded."
    },
    "fieldsCount_one": "{{count}} field",
    "fieldsCount_other": "{{count}} fields"
  },
  "chat": {
    "welcome": {
      "general": {
        "title": "Explore the Bluebook",
        "description": "Bring your agronomy question. Explore the selected Bluebook edition and open cited pages alongside the conversation."
      },
      "precision": {
        "title": "Work through your field decisions",
        "description": "Choose a farm and field to provide context, then explore herbicide options with Precision."
      }
    },
    "title": "Bloom AI",
    "back": "Back",
    "intro": "Ask about herbicide recommendations, weed control, tank mixes, and more.",
    "placeholder": "Ask Bloom AI…",
    "send": "Send",
    "sending": "Sending…",
    "thinking": "Thinking…",
    "thinkingPhrases": [
      "Sproutstorming…",
      "Cultivating ideas…",
      "Ruminating…",
      "Letting ideas germinate…",
      "Herding thoughts…",
      "Tilluminating…",
      "Sowing a thought…",
      "Threshing it out…",
      "Cross-pollinating ideas…",
      "Rooting around…",
      "Harvesting a thought…",
      "Mulching it over…",
      "Branching out…",
      "Compostulating…",
      "Putting down roots…",
      "Seedling the possibilities…",
      "Turning over ideas…",
      "Haydreaming…",
      "Growing a thought…",
      "Bringing ideas into bloom…"
    ],
    "you": "You",
    "assistant": "Bloom AI",
    "error": "Something went wrong. Please try again.",
    "hero": {
      "title": "Your Virtual Crop Advisor",
      "subtitle": "Smart guidance for your farm. Real-time answers, tailored to your crops, weeds, and conditions."
    },
    "newChat": "New chat",
    "startNewChat": "Start a new chat",
    "searchPlaceholder": "Search chats",
    "clearSearch": "Clear search",
    "noSessions": "No chats yet.",
    "untitledSession": "New chat",
    "rename": "Rename",
    "sessionActions": "Chat actions",
    "copy": "Copy",
    "feedback": {
      "like": "Good response",
      "dislike": "Bad response",
      "failed": "Could not save your feedback."
    },
    "bluebook": {
      "year": "Bluebook edition",
      "title": "Bluebook {{year}}",
      "badge": "Bluebook {{year}}",
      "page": "p. {{page}}",
      "pageRange": "pp. {{start}}–{{end}}"
    },
    "source": {
      "page": "p. {{page}}",
      "pageOf": "{{current}} of {{total}}",
      "revised": "Revised {{date}}",
      "openInNewTab": "Open PDF in a new tab",
      "download": "Download",
      "quote": "Quoted text",
      "newerVersion": "A newer version of this document exists. This is the version the answer cites.",
      "officialSite": "Open on the official site",
      "openOn": "Open on {{host}}",
      "unavailable": "This document can’t be shown here.",
      "loading": "Loading document details…",
      "previousPage": "Previous page",
      "nextPage": "Next page",
      "openPage": "Open page",
      "name": "{{source}} · {{page}}"
    },
    "history": {
      "today": "Today",
      "lastWeek": "Last Week",
      "lastMonth": "Last Month",
      "last3Months": "Last 3 Months",
      "lastYear": "Last Year",
      "filters": {
        "trigger": "Group by: {{value}}",
        "groupBy": "Group by",
        "grower": "Grower",
        "farm": "Farm",
        "notLinked": "Not linked to a field",
        "status": "Status",
        "all": "All",
        "open": "Open",
        "done": "Done",
        "soon": "Grouping and filters need farm names on each chat — coming soon"
      }
    },
    "featureDisabled": "This chat feature is disabled in AI settings. Your conversation and draft remain available.",
    "assumptions": {
      "label": "Assumed",
      "lead": "Assumed:",
      "change": "Change assumption: {{label}}",
      "showDetails": "Show why these were assumed",
      "hideDetails": "Hide details"
    },
    "fieldContext": {
      "label": "This field",
      "fromRecord": "From the field record — edit it on the field page",
      "pending": "not sent yet",
      "pendingNote": "Changes go with your next message.",
      "rejected": "Your field change couldn’t be saved, so it wasn’t applied. Please try again.",
      "discard": "Undo",
      "change": "Change {{label}}",
      "remove": "Remove {{label}}",
      "add": "Add {{field}}",
      "save": "Save",
      "updatePrompt": "Update the recommendation with my changes.",
      "answerPrompt": "Here are the details you asked for.",
      "editSummary": "Field changes",
      "removed": "Removed {{label}}",
      "added": "Added {{label}}",
      "stageFor": "Stage for {{weed}}",
      "weedName": "Weed",
      "weedStage": "Stage",
      "weedsHint": "Separate several weeds with commas.",
      "fields": {
        "crop": "Crop",
        "crop_stage": "Crop stage",
        "crop_trait": "Trait",
        "weed": "Weed",
        "weed_stage": "Weed stage",
        "county": "County",
        "previous_crop": "Previous crop",
        "following_crop": "Following crop",
        "weed_density": "Weed density",
        "irrigation": "Irrigation",
        "application_timing": "Timing",
        "soil_zone": "Soil zone",
        "area": "Area",
        "farming_system": "Farming system",
        "jurisdiction": "Region"
      },
      "missing": {
        "crop": "Crop",
        "target_weeds": "Weeds",
        "crop_stage": "Crop stage",
        "crop_trait": "Trait",
        "weed_stage": "Weed stages"
      },
      "values": {
        "crop_trait": {
          "none": "conventional",
          "glyphosate": "Roundup Ready",
          "glufosinate": "Liberty Link",
          "imidazolinone": "Clearfield",
          "other": "other trait"
        },
        "weed_density": {
          "low": "low",
          "medium": "medium",
          "high": "high"
        },
        "irrigation": {
          "yes": "irrigated",
          "no": "dryland"
        },
        "application_timing": {
          "pre_seed": "pre-seed",
          "pre_emergent": "pre-emergent",
          "post_emergent": "post-emergent",
          "pre_harvest": "pre-harvest"
        }
      },
      "phrase": {
        "crop": "{{value}}",
        "crop_stage": "crop stage {{value}}",
        "crop_trait": "{{value}}",
        "weed": "{{value}}",
        "weedWithStage": "{{value}} · {{stage}}",
        "weed_stage": "weed stage {{value}}",
        "county": "{{value}}",
        "previous_crop": "previous: {{value}}",
        "previousWithTrait": "previous: {{value}} ({{trait}})",
        "following_crop": "next: {{value}}",
        "weed_density": "{{value}} weed density",
        "irrigation": "{{value}}",
        "application_timing": "{{value}}",
        "soil_zone": "{{value}} soil zone",
        "area": "{{value}}",
        "farming_system": "{{value}} farming",
        "generic": "{{field}}: {{value}}"
      }
    },
    "clarification": {
      "label": "To help, Bloom AI needs to know"
    },
    "citations": {
      "label": "Sources"
    },
    "limitations": {
      "title": "Not checked",
      "showMore": "Show {{count}} more",
      "showLess": "Show less"
    },
    "recommendation": {
      "label": "Calculation",
      "recommendationLabel": "Recommendation",
      "humanReview": "Computed from the inputs and the guide. Confirm with a certified professional and the product label before acting.",
      "costTitle": "{{product}} cost",
      "mixingTitle": "{{product}} tank loads",
      "rate": "Rate",
      "costPerAcre": "Product cost per acre",
      "adjuvantPerAcre": "Adjuvant cost per acre",
      "totalPerAcre": "Total per acre",
      "containers": "Containers for {{area}} acres",
      "totalForArea": "Total for the area",
      "priceFromUser": "price given by you",
      "tank": "Tank",
      "sprayVolume": "Spray volume",
      "acre": "acre",
      "acresPerLoad": "Acres per load",
      "loads": "Loads",
      "productPerLoad": "Product per full load",
      "adjuvantPerLoad": "Adjuvant per full load",
      "lastLoad": "Last load",
      "lastLoadDetail": "{{acres}} acres: {{water}} water + {{product}} product",
      "candidatesTitle": "Products checked against the guide",
      "excludedTitle": "Excluded ({{count}})",
      "showMore": "Show {{count}} more",
      "controls": "Controls",
      "suppresses": "Suppresses only",
      "adjuvant": "Adjuvant",
      "readLabelFor": "Read the label for",
      "verdict": {
        "recommended": "Recommended",
        "conditional": "Conditional",
        "unverified": "Unverified",
        "excluded": "Excluded"
      },
      "gates": {
        "crop_registration": "Crop registration",
        "weed_species": "Target weeds",
        "weed_stage": "Weed stage",
        "crop_stage_window": "Crop stage",
        "resistance": "Resistance",
        "adjuvant": "Adjuvant",
        "recropping": "Recropping",
        "phi_grazing": "Pre-harvest & grazing",
        "tank_mix": "Tank mix",
        "product_currency": "Product currency",
        "farming_system": "Farming system",
        "coverage_grade": "Guide listing quality",
        "region_registration": "Registered in this region",
        "crop_safety": "Crop safety"
      }
    },
    "workspace": {
      "label": "Plan, options and sources",
      "tabsLabel": "Answer details",
      "resize": "Resize the panel",
      "tabs": {
        "plan": "Plan",
        "compare": "Compare",
        "label": "Label"
      },
      "compareCount_one": "{{count}} option to compare",
      "compareCount_other": "{{count}} options to compare",
      "labelCount_one": "{{count}} source",
      "labelCount_other": "{{count}} sources",
      "pinned": "Showing an earlier answer",
      "backToLatest": "Back to latest",
      "openPlan": "Open plan",
      "status": {
        "planReady": "Plan ready",
        "noOption": "No option fits",
        "ruledOut_one": "{{count}} ruled out",
        "ruledOut_other": "{{count}} ruled out",
        "conditions_one": "{{count}} condition",
        "conditions_other": "{{count}} conditions",
        "toRead_one": "{{count}} to read",
        "toRead_other": "{{count}} to read",
        "notChecked_one": "{{count}} not checked",
        "notChecked_other": "{{count}} not checked"
      },
      "history": "Chat history",
      "chats": "Chats",
      "newChat": "New",
      "close": "Close",
      "sheet": {
        "name": "Plan sheet",
        "announce": "{{name}}, {{state}}",
        "state": {
          "peek": "collapsed",
          "half": "half open",
          "full": "fully open"
        },
        "stale": {
          "failed": "check didn’t finish",
          "asked": "earlier plan"
        }
      },
      "field": {
        "label": "Field",
        "none": "No field linked",
        "locked": "Locked to this chat",
        "unavailable": "Field no longer available",
        "unreadable": "Field couldn’t be loaded"
      },
      "topic": "Topic",
      "context": "Field and topic",
      "composer": "Message to Bloom AI",
      "rechecking": {
        "title": "Re-checking…",
        "body": "This plan is from before your latest message. It updates when the check finishes."
      },
      "error": {
        "failed": "Bloom couldn’t finish this answer.",
        "offline": "The connection dropped before the answer finished."
      },
      "retry": "Try again",
      "offline": "You’re offline. Bloom needs a connection to check labels.",
      "units": "Units: {{area}} · {{currency}}",
      "areaUnit": {
        "acre": "ac",
        "ha": "ha"
      },
      "display": {
        "open": "Display options, {{units}}",
        "title": "Display",
        "units": "Units",
        "unitsNote": "Set by the answer’s region.",
        "fieldMode": "Field mode",
        "fieldModeHint": "Larger text, stronger contrast and bigger buttons for sunlight and gloves."
      },
      "unitsPrefix": "Units:",
      "welcome": {
        "title": "What are we working on?",
        "topics": "Topics"
      },
      "try": "Try",
      "tryPrompts": {
        "wildOats": "Wild oats and kochia in 3-leaf barley",
        "everest": "What can follow Everest 3.0?",
        "burnoff": "Pre-seed burnoff for canola"
      },
      "placeholderFirst": "Ask about weeds, mixes, staging…",
      "soonTag": "Soon",
      "topicMenu": {
        "title": "Topic for the next message",
        "note": "When more topics ship, switching keeps this thread, marks the switch, and re-runs Bloom’s checks."
      },
      "link": {
        "action": "Link a grower or field",
        "change": "Change",
        "title": "Link a field"
      },
      "newText": "New text"
    },
    "plan": {
      "label": "Plan for {{product}}",
      "bestOf_one": "Only product checked",
      "bestOf_other": "Best of {{count}} checked",
      "optionOf": "Option {{position}} of {{count}}",
      "backToBest": "Back to the best option",
      "leadCondition": "Condition:",
      "leadMore": "Show the whole condition",
      "leadLess": "Show less",
      "leadToRead_one": "{{count}} check could not be done. Read the label before relying on this option.",
      "leadToRead_other": "{{count}} checks could not be done. Read the label before relying on this option.",
      "empty": {
        "title": "No plan for this answer",
        "body": "A plan appears here once an answer checks products."
      },
      "labelled": "{{label}}: {{value}}",
      "prefix": "{{label}}: ",
      "suffix": ": {{value}}",
      "meta": {
        "groups": "Groups",
        "phi": "PHI",
        "grazing": "Graze",
        "units": "Units"
      },
      "status": {
        "pass": "Passed",
        "warn": "Condition",
        "fail": "Failed",
        "unknown": "Not checked",
        "notAsked": "Not asked",
        "excluded": "Ruled out"
      },
      "source": {
        "label_verified": "Label, verified to the page",
        "guide": "Guide",
        "label_extract": "From the label extract",
        "agteq_data": "From Agteq data",
        "inference": "Inferred, not from a source",
        "grower_input": "From you"
      },
      "open": {
        "guide": "Open guide page {{page}} in the Label tab",
        "label": "Open label page {{page}} in the Label tab"
      },
      "conditions": {
        "place": "Conditions",
        "title_one": "{{count}} condition",
        "title_other": "{{count}} conditions",
        "keep": "Keep as condition",
        "kept": "Kept as a condition · Undo",
        "openWord": "Open condition",
        "keptWord": "Kept condition",
        "keptTag": "Kept",
        "compare": "Compare options",
        "keepNote": "“Keep as condition” is a note for you on this device. Nothing is sent or saved."
      },
      "spray": {
        "title": "Spray window",
        "crop": "Crop",
        "weed": "Weed",
        "now": "Now:",
        "notGiven": "stage not given",
        "status": {
          "pass": "In window",
          "warn": "Confirm",
          "fail": "Outside window",
          "unknown": "Not checked",
          "stageNeeded": "Stage needed"
        },
        "weedsWindow": "Weeds: {{window}}"
      },
      "apply": {
        "title": "How to apply",
        "extractNote": "Label extract · not page-verified",
        "extractNoteMixed": "Label extract · not page-verified, except where a row says so",
        "none": "No label extract for this product. Read the label for rates and restrictions.",
        "fromCheck": "From the pre-harvest and grazing check · source not stated",
        "registration": "Reg. no. {{number}}",
        "rows": {
          "rate": "Rate",
          "rate_min": "Lowest label rate",
          "rate_max": "Highest label rate",
          "rate_conditions": "Rate depends on",
          "adjuvant": "Adjuvant",
          "spray_volume_min": "Water volume, minimum",
          "tank_mix_partners": "Tank-mix partners",
          "following_crops_permitted": "Next crops allowed",
          "following_crops_not_allowed": "Next crops not allowed",
          "recropping_text": "Recropping",
          "rainfast": "Rainfast",
          "rei": "Re-entry",
          "max_applications": "Applications per season",
          "phi": "Pre-harvest interval",
          "grazing": "Grazing"
        },
        "more": "More from the label extract",
        "labelWithRegistration": "{{label}} · {{registration}}",
        "groups": {
          "rate": "Rate",
          "adjuvant": "Adjuvant",
          "restrictions": "Restrictions"
        }
      },
      "toRead": {
        "title": "Not checked · read these labels",
        "item": "Read the label for: {{topic}}",
        "progress": "{{done}} of {{total}} read",
        "note": "Ticks stay on this device."
      },
      "evidence": {
        "title": "Evidence",
        "noExceptions": "Nothing needs attention on this option.",
        "passed_one": "{{count}} check passed",
        "passed_other": "{{count}} checks passed",
        "notAsked_one": "{{count}} check not needed for this question",
        "notAsked_other": "{{count}} checks not needed for this question",
        "excluded_one": "{{count}} product ruled out",
        "excluded_other": "{{count}} products ruled out",
        "guidePages_one": "{{guide}} · p. {{pages}}",
        "guidePages_other": "{{guide}} · pp. {{pages}}",
        "checks_one": "{{count}} check",
        "checks_other": "{{count}} checks",
        "passedCount_one": "{{count}} passed",
        "passedCount_other": "{{count}} passed",
        "conditionsCount_one": "{{count}} condition (above)",
        "conditionsCount_other": "{{count}} conditions (above)",
        "failedCount_one": "{{count}} failed",
        "failedCount_other": "{{count}} failed",
        "unknownCount_one": "{{count}} not checked",
        "unknownCount_other": "{{count}} not checked",
        "notAskedCount_one": "{{count}} not needed",
        "notAskedCount_other": "{{count}} not needed",
        "showAll": "Show all checks"
      },
      "checking": {
        "title": "Checking…",
        "body": "The plan appears when the check finishes.",
        "running": "in progress",
        "done": "done"
      },
      "failed": {
        "title": "The last check did not finish.",
        "body": "This plan is from before your latest message. Try again to re-check."
      },
      "asked": {
        "title": "Bloom asked a question.",
        "body": "This plan is from before it. Answer in the chat to update the plan."
      },
      "noOption": {
        "title_one": "The product checked was ruled out",
        "title_other": "All {{count}} products checked were ruled out",
        "body": "Each one is listed below with the check that ruled it out. Change a fact to check again."
      },
      "titleIfNotResistant_one": "{{product}}, if there’s no Group {{groups}} resistance in the {{weed}}.",
      "titleIfNotResistant_other": "{{product}}, if there’s no Group {{groups}} resistance in the {{weed}}.",
      "checked_one": "Checked {{count}} product",
      "checked_other": "Checked {{count}} products"
    },
    "label": {
      "sources": "Sources of this answer",
      "empty": {
        "title": "No sources to read",
        "body": "When an answer cites a label, a guide page or a data set, it opens here at the page."
      },
      "linksOnly": "These sources open in a new tab.",
      "openedFrom": "Opened from {{place}}",
      "back": "Back to {{place}}",
      "place": {
        "chat": "Chat",
        "plan": "Plan"
      },
      "chip": {
        "citedPages_one": "{{count}} cited page",
        "citedPages_other": "{{count}} cited pages",
        "newTab": "opens in a new tab"
      },
      "kind": {
        "guide": "Guide",
        "data": "Agteq data",
        "extract": "Label extract",
        "file": "Document"
      },
      "noPage": {
        "guide": "This guide page can’t be opened here.",
        "data": "A data set Agteq maintains, not a published document. It has no page to open.",
        "extract": "Text extracted from the label. It is not pinned to a page and has not been checked against one, so there is no page to open. Read the product label.",
        "file": "This document has no page to open here."
      },
      "revision": "rev. {{date}}",
      "current": "Current",
      "newer": "Newer version exists",
      "pageOf": "Page {{page}} of {{pages}}",
      "page": "Page {{page}}",
      "printed": "printed p. {{page}}",
      "linkOnly": "This document is not stored here. It opens on the official site.",
      "versionUnavailable": "This version is not available.",
      "currentOnOfficial": "See the current label on the official site",
      "currentOn": "See the current label on {{host}}",
      "detailsError": "The document details can’t be loaded.",
      "retry": "Try again",
      "stepper": {
        "label": "Cited pages",
        "previous": "Previous cited page",
        "next": "Next cited page"
      },
      "checks": "Checks this page supports",
      "pageText": "Page text",
      "highlights": "Highlights",
      "caveat": {
        "stamp_application_not_public": "This is the published label; its application is not in the public register."
      },
      "cannotShow": "This label can’t be shown here.",
      "guideCard": {
        "body": "The guide is a large PDF, so it opens here only when you ask.",
        "open": "Show the page"
      }
    },
    "officialLabel": {
      "link": "Official label · Reg. {{number}}",
      "linkPlain": "Official label",
      "otherLink": "Label · Reg. {{number}} · {{host}}",
      "otherLinkPlain": "Label · {{host}}",
      "chip": "{{product}} · Reg. {{number}}",
      "labels": "Official labels",
      "name": {
        "healthCanada": "Official label for {{product}} (Reg. {{number}}) on Health Canada (opens in a new tab)",
        "healthCanadaPlain": "Official label for {{product}} on Health Canada (opens in a new tab)",
        "other": "Label for {{product}} (Reg. {{number}}) on {{host}} (opens in a new tab)",
        "otherPlain": "Label for {{product}} on {{host}} (opens in a new tab)"
      },
      "manufacturer_one": "Manufacturer page",
      "manufacturer_other": "Manufacturer pages",
      "manufacturerSoon_one": "Bloom doesn’t have the manufacturer’s page for this product yet.",
      "manufacturerSoon_other": "Bloom doesn’t have the manufacturers’ pages for these products yet.",
      "regulatorNumber": "Health Canada label · Reg. {{number}}",
      "regulatorName": "Health Canada label for {{product}} (Reg. {{number}}) (opens in a new tab)",
      "regulatorOther": "{{host}} · Reg. {{number}}",
      "regulatorOtherName": "Listing for {{product}} (Reg. {{number}}) on {{host}} (opens in a new tab)",
      "manufacturerCaption": "Manufacturer page — not the label. The label governs.",
      "manufacturerName": "Manufacturer page for {{product}}: {{name}}, {{checked}} (opens in a new tab)",
      "checked": "checked {{date}}",
      "foundViaSearch": "found via search · {{date}}"
    },
    "facts": {
      "label": "Facts for this check",
      "groups": {
        "chat": "From chat",
        "record": "Field record",
        "assumed": "Assumed"
      },
      "assumedByBloom": "Assumed by Bloom",
      "notUsed": "On record, not used by this check",
      "recordNote": "Edited in the field record",
      "recordFooter": "Field-record facts are edited in the field record, not per chat.",
      "none": "None",
      "confirm": "Confirm",
      "confirmLabel": "Confirm {{label}}",
      "changeAction": "Change",
      "allFacts": "All facts",
      "forField": "Facts for {{field}}",
      "allFactsCount": "All facts · {{count}}",
      "find": "Find a fact",
      "noMatch": "No fact matches.",
      "addFact": "Add fact",
      "fold": "Fold facts",
      "unfold": "Show facts",
      "more": "+{{count}}",
      "moreLabel_one": "{{count}} more fact",
      "moreLabel_other": "{{count}} more facts",
      "quick": {
        "under5": "Under 5 cm",
        "about8": "~8 cm",
        "over10": "Over 10 cm",
        "leaf1to2": "1–2 leaf",
        "leaf3to4": "3–4 leaf",
        "leaf5to6": "5–6 leaf",
        "unsure": "Unsure"
      },
      "exact": "Or type an exact value…",
      "exactSize": "Or type an exact size…",
      "exactLabel": "exact value",
      "remove": "Remove fact",
      "cancel": "Cancel",
      "save": "Save",
      "saveRecheck": "Save & re-check",
      "saveSend": "Save & send",
      "source": {
        "chat": "From chat",
        "assumed": "Assumed by Bloom",
        "missing": "Not given yet"
      },
      "when": {
        "said": "Said in chat",
        "changed": "Changed in this chat",
        "pending": "Not sent yet",
        "record": "Field record",
        "assumed": "Not confirmed"
      },
      "openStage": "{{stage}}, some larger",
      "largest": "largest {{weed}}",
      "cropWithStage": "{{crop}} · {{stage}}",
      "removeConfirm": "Remove this fact"
    },
    "compare": {
      "rankBy": "Rank by",
      "rank": {
        "label_fit": "Label fit",
        "rotation": "Rotation",
        "crop_safety": "Crop safety",
        "cost": "Cost"
      },
      "costSoon": "Ranking by cost needs a price for each option, which Bloom does not have yet.",
      "rankNote": "Groups stay in verdict order. Ranking sorts within each group, so an unverified option never moves above a conditional one.",
      "labelCheck": "label check required",
      "openPlan": "Open the plan for {{product}}",
      "coverage": {
        "full": "Full",
        "partial": "Partial",
        "none": "None",
        "unknown": "Not stated",
        "notResistant": "not Group {{groups}}–R",
        "resistance": "resistance reported"
      },
      "evidence": {
        "passed_one": "{{count}} passed",
        "passed_other": "{{count}} passed",
        "conditions_one": "{{count}} condition",
        "conditions_other": "{{count}} conditions",
        "failed_one": "{{count}} failed",
        "failed_other": "{{count}} failed",
        "notChecked_one": "{{count}} not checked",
        "notChecked_other": "{{count}} not checked",
        "verified_one": "{{count}} label-verified",
        "verified_other": "{{count}} label-verified",
        "guide_one": "{{count}} from the guide",
        "guide_other": "{{count}} from the guide",
        "extract_one": "{{count}} from label extract",
        "extract_other": "{{count}} from label extract"
      },
      "excluded_one": "{{count}} excluded",
      "excluded_other": "{{count}} excluded",
      "single": "Only one option is still in, so there is nothing to rank.",
      "rechecking": "These options are from before your latest message. They update when the check finishes.",
      "empty": {
        "title": "Nothing to compare",
        "noPlan": "Options appear here once an answer has products to choose between.",
        "checking": "Options appear here when the check finishes.",
        "calculation": "This answer is a calculation, not a choice between products.",
        "none": "Every product checked was excluded. Each is listed below with the check that ruled it out."
      },
      "rankInfo": "How ranking works"
    },
    "loadEarlier": {
      "action": "Load earlier messages",
      "loading": "Loading earlier messages…"
    },
    "session": {
      "unreadable": "Couldn’t load this chat’s field. Its answers still use the field it was started with."
    }
  },
  "auth": {
    "login": {
      "title": "Sign in",
      "submit": "Sign in",
      "submitting": "Signing in…",
      "forgotPassword": "Forgot password?"
    },
    "loading": "Loading…",
    "logout": "Sign out",
    "backToLogin": "Back to sign in",
    "forgot": {
      "title": "Reset your password",
      "intro": "Enter your email and we’ll send you a reset link.",
      "sent": "If that email has an account, a reset link is on its way.",
      "submit": "Send reset link",
      "submitting": "Sending…"
    },
    "reset": {
      "title": "Choose a new password",
      "submit": "Reset password",
      "submitting": "Resetting…",
      "requestNew": "Request a new reset link"
    },
    "change": {
      "title": "Change password",
      "submit": "Update password",
      "submitting": "Updating…",
      "success": "Password updated.",
      "back": "Back"
    },
    "acceptInvite": {
      "title": "Set your password",
      "intro": "Choose a password to activate your account.",
      "submit": "Set password & continue",
      "submitting": "Setting up…"
    },
    "fields": {
      "email": "Email",
      "password": "Password",
      "newPassword": "New password",
      "currentPassword": "Current password",
      "confirmPassword": "Confirm password"
    },
    "errors": {
      "invalidCredentials": "Incorrect email or password.",
      "notInvited": "This account hasn’t been invited. Contact your administrator.",
      "invalidInvitation": "This invitation is invalid or has expired.",
      "missingToken": "This invitation link is missing or invalid.",
      "passwordTooShort": "Password must be at least 8 characters.",
      "passwordMismatch": "Passwords don’t match.",
      "invalidReset": "This reset link is invalid or has expired.",
      "currentPasswordWrong": "Your current password is incorrect.",
      "weakPassword": "Your new password was rejected — choose a stronger one (avoid common or previously-used passwords).",
      "generic": "Something went wrong. Please try again."
    },
    "signOutUnsyncedTitle": "Keep unsynced work on this device?",
    "signOutUnsyncedBody_other": "You are signing out with {{count}} visits that have not reached the server. They are the only copies.",
    "signOutDiscard": "Delete it from this device",
    "signOutUnsyncedBody_one": "You are signing out with {{count}} visit that has not reached the server. It is the only copy.",
    "signOutKeep": "Keep it for next time"
  },
  "mfa": {
    "fields": {
      "code": "Authentication code"
    },
    "challenge": {
      "title": "Two-factor authentication",
      "intro": "Enter the 6-digit code from your authenticator app.",
      "backupHint": "Lost your device? Enter one of your backup codes instead.",
      "submit": "Verify",
      "submitting": "Verifying…"
    },
    "backupCodes": {
      "title": "Save your backup codes",
      "intro": "Each code works once if you lose access to your authenticator. Store them somewhere safe — they won’t be shown again.",
      "copy": "Copy codes",
      "copied": "Copied",
      "continue": "I’ve saved them — continue",
      "remaining": "Backup codes remaining: {{n}}",
      "regenerate": "Regenerate backup codes"
    },
    "enroll": {
      "title": "Set up two-factor authentication",
      "intro": "Scan this QR code with an authenticator app (Google Authenticator, Authy, 1Password…), then enter the 6-digit code it shows.",
      "qrAlt": "QR code for your authenticator app",
      "manual": "Can’t scan? Enter this key manually:",
      "submit": "Confirm & continue",
      "submitting": "Confirming…"
    },
    "security": {
      "title": "Security",
      "intro": "Add an extra layer of protection by requiring a code from your authenticator app when you sign in.",
      "enable": "Enable two-factor authentication",
      "starting": "Starting…",
      "enabled": "Two-factor authentication is enabled."
    },
    "errors": {
      "invalidCode": "That code isn’t valid. Check your authenticator app and try again."
    }
  },
  "language": {
    "label": "Language",
    "english": "English",
    "french": "French"
  },
  "header": {
    "title": "Agteq"
  },
  "footer": {
    "copyright": "© 2026 Agteq"
  },
  "theme": {
    "light": "Light",
    "dark": "Dark"
  },
  "notFound": {
    "heading": "Page not found",
    "description": "Oops! We couldn't find that page.",
    "backHome": "Take me home"
  },
  "farms": {
    "namePlaceholder": "Farm name",
    "add": "Add farm",
    "empty": "No farms yet. Create your first one.",
    "searchPlaceholder": "Search farms",
    "noResults": "No farms match \"{{query}}\".",
    "view": {
      "card": "Card view",
      "list": "List view"
    },
    "badge": {
      "acres": "{{value}} ac",
      "noAcreage": "Area not set",
      "fields": "{{count}} fields"
    },
    "menu": {
      "label": "Farm actions",
      "open": "Open",
      "edit": "Edit"
    },
    "detail": {
      "editFarm": "Edit Farm",
      "deleteFarm": "Delete Farm",
      "tabDetails": "Details",
      "tabFields": "Fields",
      "farmSection": "Farm",
      "lldSection": "LLD",
      "farmName": "Farm Name",
      "city": "City",
      "postalCode": "Postal Code",
      "plantedArea": "Planted Area",
      "acreValue": "{{value}} Acre",
      "lld": "LLD",
      "quarterSection": "Quarter Section",
      "section": "Section",
      "township": "Township",
      "range": "Range",
      "meridian": "Meridian",
      "na": "N/A",
      "deleteDialog": {
        "title": "Delete this farm?",
        "description": "This permanently deletes the farm and its fields. This can't be undone.",
        "confirm": "Delete farm"
      },
      "tabMap": "Map"
    },
    "edit": {
      "title": "Edit farm",
      "description": "Update this farm's details and location.",
      "submit": "Save changes",
      "error": "Couldn't save your changes. Please try again."
    },
    "tab": {
      "details": "Details",
      "location": "Location"
    },
    "location": {
      "method": {
        "label": "Location method",
        "choose": "Choose a method…",
        "lld": "Legal Land Description",
        "postal": "Postal code",
        "kml": "KML boundary"
      },
      "quarter": "Quarter",
      "postalCode": "Postal code",
      "locate": "Locate",
      "chooseKml": "Upload KML",
      "hint": "Pick the values / upload the file — we resolve it to coordinates and drop a pin. You can also click the map to fine-tune.",
      "postalError": "Couldn't find that postal code.",
      "kmlError": "Couldn't read that KML file."
    },
    "create": {
      "button": "New farm",
      "title": "New farm",
      "description": "Name your farm and, optionally, its location details.",
      "detailsSection": "Farm details",
      "locationSection": "Location",
      "name": "Farm name",
      "city": "City",
      "area": "Area (acres)",
      "postalAddress": "Postal address",
      "lldHint": "Or specify the Legal Land Description (Western Canada survey grid).",
      "quarterSection": "Quarter",
      "section": "Section",
      "township": "Township",
      "range": "Range",
      "meridian": "Meridian",
      "submit": "Create farm",
      "error": "Couldn't create the farm. Please try again.",
      "areaUnit": "Area ({{unit}})",
      "areaInvalid": "Enter a valid area of zero or greater."
    },
    "map": {
      "totalAcres": "{{value}} ac",
      "recenter": "Recenter on farm",
      "fieldsList": "Fields on this farm",
      "drawBoundary": "Draw boundary",
      "unmappedHint": "field without a boundary — open it to draw one.",
      "unmappedHint_other": "fields without a boundary — open one to draw it.",
      "search": "Search fields",
      "searchEmpty": "No fields match “{{query}}”.",
      "sort": "Sort fields",
      "sortBy": {
        "name": "Name",
        "acres": "Largest first",
        "attention": "Needs attention first"
      },
      "zoomTo": "Zoom to {{name}}",
      "showingCount": "Showing {{shown}} of {{total}} fields",
      "filters": {
        "unmapped": "No boundary",
        "issues": "Open issues",
        "recent": "Just imported",
        "clearRecent": "Clear the just-imported highlight"
      },
      "filterEmpty": "No fields in this slice.",
      "updated": "Updated {{when}}",
      "legend": {
        "boundary": "Boundary",
        "issue": "Open issue",
        "recent": "Just imported"
      },
      "badges": {
        "issues_one": "{{count}} open issue",
        "issues_other": "{{count}} open issues",
        "recent": "Imported"
      },
      "empty": {
        "title": "No fields on this farm yet",
        "body": "Import boundaries from your farm software to create the fields in one go, or add a field by name and draw it.",
        "addField": "Add a field"
      },
      "noBoundaries": {
        "title": "No boundaries yet",
        "body": "Fields exist but none has a shape. Import them from a KML, KMZ, GeoJSON or shapefile export, or draw the first one.",
        "draw": "Draw {{name}}"
      },
      "headline_one": "{{count}} field",
      "headline_other": "{{count}} fields",
      "toggleList_one": "Show or hide the field list ({{count}} field)",
      "toggleList_other": "Show or hide the field list ({{count}} fields)"
    },
    "import": {
      "title": "Import boundaries",
      "description": "Bring in your field boundaries from a farm-management export — KML, KMZ, GeoJSON or a zipped shapefile. Review what we found before anything is saved.",
      "steps": {
        "files": "Files",
        "review": "Review",
        "import": "Import"
      },
      "dropzone": {
        "prompt": "Drop boundary files here",
        "hint": "KML, KMZ, GeoJSON, zipped shapefile — or a CSV of legal land descriptions. Drop several files, or a whole folder, at once.",
        "browse": "Choose files",
        "remove": "Remove {{name}}",
        "reading": "Reading files…",
        "release": "Release to add",
        "releaseHint": "Files and folders are both fine.",
        "browseFolder": "Choose a folder",
        "formats": "Accepted formats"
      },
      "files": {
        "found_one": "{{count}} field found",
        "found_other": "{{count}} fields found",
        "none": "No usable boundaries in this file."
      },
      "issues": {
        "parse-error": "Couldn't read this file.",
        "no-polygon": "{{count}} feature(s) without a polygon were skipped.",
        "unsupported-crs": "This file isn't in latitude/longitude ({{detail}}). Re-export as WGS 84.",
        "projected-coordinates": "Coordinates look projected (UTM / metres). Re-export as WGS 84 latitude/longitude.",
        "shapefile-not-supported-yet": "Shapefile import is coming in the next release. For now, export KML or GeoJSON.",
        "zip64-unsupported": "This archive uses ZIP64, which isn't supported yet.",
        "unsupported-compression": "This archive uses a compression method we can't read.",
        "encrypted-zip": "This archive is password-protected.",
        "file-too-large": "This file is larger than 50 MB.",
        "kmz-unsupported-browser": "Your browser can't unzip KMZ files — unzip it and drop the .kml instead.",
        "empty": "Nothing to import in this file.",
        "unknown-format": "Unrecognised file type.",
        "zero-area": "A shape with no area was skipped.",
        "invalid-geometry": "A shape couldn't be repaired into a valid boundary.",
        "no-descriptions": "No legal land descriptions found in this file.",
        "bad-description": "Couldn’t read “{{detail}}” as a legal land description."
      },
      "warnings": {
        "tiny": "Very small (< 0.5 ac)",
        "huge": "Very large (> 5,000 ac)",
        "self-intersecting": "Shape crosses itself",
        "far-from-farm": "Far from this farm",
        "from-linestring": "Read from a line",
        "swapped-axes": "Lat/long were swapped — fixed",
        "many-vertices": "Very detailed shape",
        "not-checked": "Too detailed to check for crossings",
        "ambiguous-match": "Another row matched the same field",
        "fuzzy-match": "Matched by similar name",
        "spatial-match": "Matched by location",
        "upload-skipped": "Source file not stored",
        "from-lld": "Grid square from the land description — refine by drawing"
      },
      "farmGroup": {
        "label": "Farm in file",
        "all": "All farms in file",
        "notice_one": "This file contains {{count}} farm. Importing into {{farm}}.",
        "notice_other": "This file contains {{count}} farms. Showing the one that looks like {{farm}} — change the filter to import others into this farm."
      },
      "table": {
        "include": "Include",
        "name": "Field name",
        "acres": "Acres",
        "source": "Source",
        "action": "Action",
        "warnings": "Notes",
        "includeRow": "Include {{name}}",
        "showing": "Showing {{shown}} of {{total}}",
        "showMore": "Show {{count}} more",
        "filters": {
          "label": "Filter rows",
          "all": "All",
          "create": "New",
          "update": "Update",
          "review": "Needs review",
          "skip": "Skipped",
          "warnings": "Notes",
          "empty": "Nothing here under this filter."
        }
      },
      "actions": {
        "create": "Create new field",
        "match": "Update existing field",
        "needsReview": "Choose field…",
        "skip": "Skip",
        "chooseField": "Which field?",
        "replaces": "Replaces current boundary ({{from}} → {{to}})",
        "firstBoundary": "Adds this field's first boundary",
        "skipped": {
          "already-imported": "Already imported",
          "duplicate-in-file": "Duplicate in file",
          "user": "Skipped",
          "invalid": "Invalid"
        }
      },
      "bulk": {
        "includeAll": "Include all",
        "includeNone": "Include none",
        "createUnmatched": "Create all unmatched",
        "includeShown": "Include shown ({{count}})",
        "excludeShown": "Exclude shown ({{count}})"
      },
      "nameErrors": {
        "duplicate": "A field with this name already exists",
        "empty": "Name is required",
        "too-long": "Name is too long (200 max)"
      },
      "summary": {
        "selected_one": "{{count}} field selected",
        "selected_other": "{{count}} fields selected",
        "creates_one": "{{count}} new",
        "creates_other": "{{count}} new",
        "matches_one": "{{count}} updated",
        "matches_other": "{{count}} updated",
        "acres": "{{value}} ac"
      },
      "buttons": {
        "next": "Review",
        "back": "Back",
        "start": "Import {{count}}",
        "cancel": "Cancel",
        "close": "Close",
        "retryFailed": "Retry failed",
        "openMap": "Show on map",
        "done": "Done",
        "continue": "Continue import"
      },
      "progress": {
        "pending": "Waiting",
        "creating_field": "Creating field…",
        "saving_boundary": "Saving boundary…",
        "done": "Done",
        "failed": "Failed",
        "summary": "{{done}} of {{total}} saved · {{failed}} failed",
        "cancelled": "Import stopped — rows already saved are kept.",
        "failedStep": {
          "field": "Couldn't create the field",
          "boundary": "Couldn't save the boundary"
        }
      },
      "sessionExpired": {
        "title": "Your session expired",
        "body": "Sign in again, then come back and press Retry — nothing already saved is lost.",
        "signIn": "Sign in"
      },
      "results": {
        "title": "Import complete",
        "created_one": "{{count}} field created",
        "created_other": "{{count}} fields created",
        "matched_one": "{{count}} field updated",
        "matched_other": "{{count}} fields updated",
        "skipped_one": "{{count}} skipped",
        "skipped_other": "{{count}} skipped",
        "failed_one": "{{count}} failed",
        "failed_other": "{{count}} failed",
        "uploadSkipped": "The source file couldn't be stored, so these boundaries don't link back to it. They're still saved.",
        "farmsCreated_one": "{{count}} farm created",
        "farmsCreated_other": "{{count}} farms created"
      },
      "untitled": "Field {{n}}",
      "leaveWarning": "An import is running. Leave anyway?",
      "entry": "Import boundaries",
      "groups": {
        "title": "Farms in this file",
        "fields_one": "{{count}} field",
        "fields_other": "{{count}} fields",
        "target": "Import into",
        "createFarm": "Create farm “{{name}}”",
        "createFarmPlaceholder": "New farm name",
        "unassigned": "Fields without a farm",
        "loadingExisting": "Loading that farm’s fields…",
        "farmNameRequired": "Give this new farm a name"
      },
      "resume": {
        "notice_one": "A previous import here was interrupted ({{count}} of {{total}} saved). Resume it?",
        "notice_other": "A previous import here was interrupted ({{count}} of {{total}} saved). Resume it?",
        "action": "Resume",
        "dismiss": "Start over"
      },
      "undo": {
        "action": "Undo this import",
        "title": "Undo this import?",
        "description": "Removes every boundary this import added from its source file(s). Fields that had an earlier boundary get it back; new fields keep their name but lose their boundary. This can't be undone.",
        "confirm": "Undo import",
        "done": "Undone — {{removed}} boundaries removed, {{reactivated}} earlier versions restored.",
        "unavailable": "Undo needs the source file to have been stored; it wasn't for this run."
      },
      "matchHow": {
        "exact": {
          "label": "Exact name",
          "hint": "The name in the file matches this field exactly."
        },
        "fuzzy": {
          "label": "Similar name",
          "hint": "Closest name on this farm — check it is the right field."
        },
        "spatial": {
          "label": "Same location",
          "hint": "Overlaps this field's current boundary — names differ."
        },
        "manual": {
          "label": "Chosen by you",
          "hint": "You picked this field from the list."
        }
      }
    },
    "picker": {
      "entry": "Add fields from map",
      "help": "Click the quarters this grower farms — each becomes a field. Click again to remove.",
      "zoomHint": "Zoom in to pick quarters",
      "mapLabel": "Quarter picker map",
      "selected_one": "{{count}} field to create",
      "selected_other": "{{count}} fields to create",
      "empty": "Nothing picked yet — click a quarter on the map.",
      "create_one": "Create {{count}} field",
      "create_other": "Create {{count}} fields",
      "nameFor": "Field name for {{label}}",
      "remove": "Remove {{label}}",
      "nameTaken": "Name already used",
      "toast_one": "{{count}} field created from the map",
      "toast_other": "{{count}} fields created from the map",
      "toastFailed_one": "{{count}} row failed — try it again.",
      "toastFailed_other": "{{count}} rows failed — try them again.",
      "error": "Couldn’t create the fields — check your connection and try again."
    },
    "card": {
      "acres": "{{value}} ac",
      "mapped": "{{mapped}} of {{total}} fields mapped",
      "open": "Open {{name}}"
    }
  },
  "weather": {
    "locateFirst": "Locate the farm to see current weather.",
    "unavailable": "Weather is unavailable right now.",
    "temp": "{{value}}°C",
    "humidity": "{{value}}% humidity",
    "wind": "{{value}} km/h wind",
    "wmo": {
      "clear": "Clear sky",
      "cloudy": "Cloudy",
      "fog": "Fog",
      "drizzle": "Drizzle",
      "rain": "Rain",
      "snow": "Snow",
      "thunderstorm": "Thunderstorm"
    },
    "temperatureValue": "{{value}}",
    "windValue": "Wind {{value}}",
    "precipitationValue": "Precipitation {{value}}"
  },
  "fields": {
    "title": "Fields",
    "namePlaceholder": "Field name",
    "add": "Add field",
    "empty": "No fields yet. Add one above.",
    "detail": {
      "section": "Field",
      "deleteField": "Delete Field",
      "fieldName": "Field Name",
      "plantedArea": "Planted Area",
      "soilType": "Soil Type",
      "irrigationType": "Irrigation Type",
      "cropHeight": "Approximate Crop Height",
      "cropsSection": "Crops",
      "cropName": "Crop Name",
      "cropStage": "Crop Stage",
      "weedsSection": "Weeds",
      "weedName": "Weed Name",
      "density": "Density",
      "leaves": "Leaves",
      "height": "Height",
      "heightCm": "{{value}} cm",
      "flowering": "Flowering",
      "yes": "Yes",
      "no": "No",
      "na": "N/A",
      "deleteDialog": {
        "title": "Delete this field?",
        "description": "This permanently deletes the field. This can't be undone.",
        "confirm": "Delete field"
      },
      "editField": "Edit field",
      "propertiesSection": "Field properties",
      "soilTexture": "Soil texture",
      "organicMatter": "Organic matter",
      "drainage": "Drainage",
      "lld": "Legal land description",
      "latitude": "Latitude",
      "longitude": "Longitude",
      "notes": "Notes",
      "seasonsSection": "Seasons",
      "noSeasons": "No seasons recorded yet.",
      "addSeason": "Add season",
      "plantingDate": "Planting date",
      "harvestDate": "Harvest date",
      "yieldGoal": "Yield goal"
    },
    "boundary": {
      "section": "Boundary",
      "none": "No boundary yet",
      "draw": "Draw boundary",
      "redraw": "Draw new",
      "edit": "Edit shape",
      "importKml": "Import KML",
      "useLld": "Use legal land description",
      "enterPoints": "Enter coordinates",
      "save": "Save boundary",
      "activeArea": "{{value}}",
      "pendingArea": "≈ {{value}}",
      "area": "{{value}}",
      "active": "Active",
      "history": "Versions",
      "show": "Show",
      "hide": "Hide",
      "restore": "Restore",
      "satellite": "Satellite",
      "streets": "Streets",
      "pointsLabel": "Corner points — one per line, latitude, longitude",
      "lldHint": "Add a legal land description to this field (e.g. SW 24-38-20-W5) to use it here.",
      "help": {
        "draw": "Trace the field with the polygon tool: click each corner, then double-click (or click the first corner) to finish — Esc cancels, and the toolbar can undo the last corner. Use the scissors to cut out sloughs or yard sites, and the hand tool to slide the whole shape.",
        "edit": "Drag the corners to adjust, or use the hand tool to move the whole shape. Saving adds a new version — the previous one stays in history.",
        "lld": "Approximate quarter section from the legal land description. Save it, then use Edit shape to match the real field.",
        "points": "Type the corners as latitude, longitude (at least three). The shape previews on the map.",
        "kml": "Imported from KML. Check the shape, then save."
      },
      "errors": {
        "kml": "Couldn't read a polygon from that KML file.",
        "points": "Couldn't read those points — use latitude, longitude on each line.",
        "saveFailed": "Couldn't save the boundary. Try again.",
        "lld": "Not a legal land description we recognize yet — DLS (Prairies) and BC NTS are supported.",
        "ontarioNotFound": "That lot/township wasn’t found in Ontario’s fabric — check the spelling."
      },
      "source": {
        "drawn": "Drawn",
        "lld_asis": "Legal land description",
        "shapefile": "Shapefile",
        "kml": "KML",
        "points": "Coordinates",
        "geojson": "GeoJSON"
      },
      "recenter": "Recenter on field",
      "undo": "Undo",
      "redo": "Redo",
      "legend": {
        "label": "Map legend",
        "saved": "Saved boundary",
        "pending": "Being drawn / unsaved",
        "preview": "Earlier version",
        "neighbours": "Other fields on this farm"
      },
      "snap": "Snap to neighbouring boundaries",
      "snapOn": "Snapping on — vertices stick to nearby boundaries. Click to turn off.",
      "snapOff": "Snapping off. Click to snap to nearby boundaries.",
      "neighbours": "Neighbours",
      "diff": {
        "delta": "{{value}}",
        "vsActive": "Compared with the active boundary",
        "from": "from {{source}} of {{date}}"
      },
      "toast": {
        "saved": "Boundary saved — {{value}}",
        "restored": "Previous version restored — {{value}}",
        "undoHint": "The earlier shape stays in the history.",
        "undo": "Undo"
      },
      "shortcuts": {
        "title": "Drawing shortcuts",
        "click": {
          "keys": "Click",
          "what": "Add a corner"
        },
        "finish": {
          "keys": "Double-click",
          "what": "Finish the shape (or click the first corner)"
        },
        "escape": {
          "keys": "Esc",
          "what": "Abandon the shape being drawn"
        },
        "undo": {
          "keys": "Ctrl/⌘ Z",
          "what": "Undo the last change"
        },
        "redo": {
          "keys": "Ctrl/⌘ ⇧ Z",
          "what": "Redo"
        },
        "removeVertex": {
          "keys": "Right-click corner",
          "what": "Remove that corner (in Edit)"
        },
        "drag": {
          "keys": "Drag",
          "what": "Move a corner — or the whole shape in Drag mode"
        },
        "cut": {
          "keys": "Cut tool",
          "what": "Draw a hole: slough, yard site, bush"
        }
      },
      "lldLabel": "Legal land description",
      "lldFormats": "Quarter (NE-24-38-20-W5), LSD (7-25-24-1-W5), section (25-24-1-W5), Manitoba east ranges (…-EPM), BC NTS (a-2-F/93-P-8), or Ontario (Lot 10 Con 5 Harvey).",
      "lldApprox": "approximate grid square — refine by drawing",
      "lldExact": "exact grid cell",
      "lldLevels": {
        "dls-quarter": "Quarter section (~160 ac)",
        "dls-lsd": "Legal subdivision (~40 ac)",
        "dls-section": "Full section (~640 ac)",
        "nts-unit": "NTS unit",
        "nts-quarter-unit": "NTS quarter unit"
      },
      "lldClickHint": "You can also click the map to pick the quarter under the cursor.",
      "lldSurveyed": "Surveyed boundary.",
      "lldLooking": "Checking for the surveyed boundary…"
    },
    "edit": {
      "title": "Edit field",
      "description": "Permanent field profile — soil, drainage, tillage and location. Seasonal details (crop, dates, yield) live on each season.",
      "soilTexture": "Soil texture",
      "organicMatterClass": "Organic matter",
      "organicMatterPct": "Organic matter (%)",
      "drainage": "Drainage",
      "tillagePractice": "Tillage practice",
      "irrigated": "Irrigated",
      "lld": "Legal land description",
      "lldPlaceholder": "e.g. SW 24-38-20-W5",
      "latitude": "Latitude",
      "longitude": "Longitude",
      "notes": "Notes",
      "notesPlaceholder": "Access, hazards, landmarks…",
      "validation": {
        "latitude": "Latitude must be between -90 and 90.",
        "longitude": "Longitude must be between -180 and 180.",
        "organicMatterPct": "Organic matter must be between 0 and 100%."
      }
    },
    "cropForm": {
      "createTitle": "Add season",
      "createDescription": "What is (or was) grown on this field in a crop year.",
      "editTitle": "Edit season",
      "editDescription": "Update this crop year's details.",
      "crop": "Crop",
      "variety": "Variety / hybrid",
      "previousCrop": "Previous crop",
      "plantingDate": "Planting date",
      "plantingDatePlaceholder": "YYYY-MM-DD",
      "harvestDate": "Harvest date",
      "harvestDatePlaceholder": "YYYY-MM-DD",
      "seedingRate": "Seeding rate",
      "seedingRatePlaceholder": "e.g. 120",
      "unit": "Unit",
      "plantPopulation": "Plant population (per m²)",
      "plantPopulationPlaceholder": "e.g. 180",
      "yieldGoal": "Yield goal",
      "yieldGoalPlaceholder": "e.g. 60",
      "yieldActual": "Actual yield",
      "yieldActualPlaceholder": "after harvest",
      "fieldStatus": "Field status",
      "growingMethod": "Growing method",
      "validation": {
        "dateMismatch": "Harvest date must be after the planting date.",
        "seedingRatePositive": "Seeding rate must be greater than 0.",
        "seedingRateUnitRequired": "Choose a unit for the seeding rate.",
        "yieldUnitRequired": "Choose a unit for the yield."
      }
    },
    "deleted": "Field “{{name}}” deleted.",
    "deleteFailed": "Couldn’t delete “{{name}}” — try again.",
    "deleteConfirm": {
      "title": "Delete “{{name}}”?",
      "body": "Its boundary versions, seasons and history go with it. This can’t be undone from the app."
    }
  },
  "precision": {
    "farm": "Farm",
    "field": "Field",
    "selectFarm": "Select a farm",
    "selectField": "Select a field",
    "selectFarmField": "Select a farm and field",
    "searchFarmField": "Search farms and fields",
    "noFarmFieldMatch": "No matching field.",
    "loading": "Loading…",
    "agent": {
      "label": "Farm exercise",
      "herbicide": "Herbicide",
      "fertilizer": "Fertilizer",
      "pesticide": "Pesticide",
      "seeding": "Seeding",
      "comingSoon": "Coming soon"
    },
    "topics": {
      "herbicide": {
        "name": "Herbicide",
        "description": "Weeds, tank mixes, staging, recropping"
      },
      "fungicide": {
        "name": "Fungicide",
        "description": "Disease risk, timing, product choice"
      },
      "insecticide": {
        "name": "Insecticide",
        "description": "Thresholds, scouting, product choice"
      },
      "seedTreatment": {
        "name": "Seed treatment",
        "description": "Seed-borne disease and early insects"
      },
      "auto": {
        "name": "Auto",
        "description": "Bloom picks the topic from your question"
      }
    },
    "diff": {
      "title": "What changed",
      "count_one": "{{count}} change",
      "count_other": "{{count}} changes",
      "seePlan": "See plan",
      "notGiven": "not given",
      "fact": "{{field}}: {{from}} → {{to}}",
      "factAdded": "{{field}} added: {{to}}",
      "factRemoved": "{{field}} removed: {{from}}",
      "factStage": "{{subject}} stage: {{from}} → {{to}}",
      "top": "Best option: {{from}} → {{to}}",
      "topFirst": "Best option: {{to}}",
      "topNone": "No option is left; the best was {{from}}",
      "verdict": "{{product}}: {{from}} → {{to}}",
      "verdictGate": "{{product}}: {{from}} → {{to}} ({{gate}})",
      "renamed": "{{from}} is now listed as {{to}}",
      "added": "{{product}}: added, {{verdict}}",
      "removed": "{{product}}: no longer listed",
      "gate": "{{product}} · {{gate}}: {{from}} → {{to}}",
      "gateNew": "{{product}} · {{gate}}: {{to}}",
      "noViableOptions": "No option fits now",
      "viableAgain": "An option fits again",
      "since_one": "{{count}} change since your last message",
      "since_other": "{{count}} changes since your last message",
      "show": "Show",
      "hide": "Hide",
      "was": "was {{value}}",
      "wasAside": "(was {{value}})"
    },
    "decide": {
      "label": "What decides this answer",
      "weedStage": "{{weed}} stage",
      "weedStageAny": "Weed stage",
      "cropStage": "{{crop}} stage",
      "cropStageAny": "Crop stage",
      "resistance": "Group {{groups}} resistance",
      "resistanceAny": "Herbicide resistance",
      "notGiven": "Not given",
      "notTested": "Not tested"
    },
    "brief": {
      "sourceLabel": "Source",
      "gaps": "Not covered by this answer",
      "openSource": "{{source}}: open in the Label tab"
    }
  },
  "scouting": {
    "notesTitle": "Scouting Notes",
    "fieldPlaceholder": "Field (optional)",
    "notePlaceholder": "What did you observe?",
    "add": "Add note",
    "newNote": "New Note",
    "editNote": "Edit note",
    "deleteNote": "Delete note",
    "empty": "No scouting notes yet.",
    "untitled": "Untitled note",
    "col": {
      "farmField": "Farm / Field",
      "date": "Date",
      "notes": "Notes",
      "status": "Status",
      "followUp": "Follow-up Date",
      "actions": "Actions"
    },
    "deleteDialog": {
      "title": "Delete this note?",
      "description": "This can't be undone."
    },
    "form": {
      "newTitle": "New scouting note",
      "editTitle": "Edit scouting note",
      "date": "Scouting date & time",
      "chooseFarm": "Select a farm…",
      "chooseField": "Select a field…",
      "saveNotes": "Save notes",
      "saveReport": "Save report",
      "createHint": "Save the note to add an AI report, photos, and a field map.",
      "weather": "Conditions at visit",
      "followUpDate": "Follow-up date",
      "tab": {
        "notes": "Notes",
        "report": "AI summary",
        "observations": "Observations",
        "issues": "Issues",
        "photos": "Photos",
        "map": "Map"
      },
      "markFinal": "Mark as final",
      "reopenDraft": "Reopen as draft",
      "finalHint": "This note is final and can't be edited. Reopen it as a draft to make changes.",
      "statusUpdating": "Updating…",
      "unsavedHint": "You have unsaved changes.",
      "unsavedBlocksFinal": "Save your changes before marking this note final.",
      "fieldRequired": "Pick a field again — this note is already linked to one."
    },
    "observation.add": "Add Observation",
    "observation.empty": "No observations yet.",
    "observationForm": {
      "createTitle": "New Observation",
      "createDescription": "Record a new observation about crop conditions, weeds, insects, or other findings.",
      "editTitle": "Edit Observation",
      "editDescription": "Update this observation record.",
      "subject": "What was observed?",
      "category": "Category",
      "selectCategory": "Select a category…",
      "category.weed": "Weed",
      "category.insect": "Insect",
      "category.disease": "Disease",
      "category.crop_condition": "Crop Condition",
      "category.soil": "Soil",
      "category.weather": "Weather",
      "category.hail": "Hail",
      "category.other": "Other",
      "severity": "Severity",
      "selectSeverity": "Select severity…",
      "severity.light": "Light",
      "severity.moderate": "Moderate",
      "severity.heavy": "Heavy",
      "severity.severe": "Severe",
      "bbch": "BBCH Stage",
      "bbchPlaceholder": "0–99",
      "thresholdExceeded": "Threshold Exceeded",
      "thresholdBasis": "Threshold Basis",
      "thresholdBasisPlaceholder": "Why this matters",
      "latitude": "Latitude",
      "latitudePlaceholder": "49.0–51.0°N",
      "longitude": "Longitude",
      "longitudePlaceholder": "-104.0–-96.0°W",
      "validation.bbch": "BBCH stage must be 0–99",
      "validation.thresholdRequired": "Threshold basis required when threshold exceeded",
      "observedAt": "Observed at"
    },
    "issue": {
      "add": "Add Issue",
      "empty": "No issues yet.",
      "edit": "Edit issue",
      "delete": "Delete issue",
      "more": "{{count}} more not shown."
    },
    "issueForm": {
      "createTitle": "New Issue",
      "createDescription": "Report an issue to track across visits.",
      "editTitle": "Edit Issue",
      "editDescription": "Update this issue record.",
      "category": "Category",
      "selectCategory": "Select a category…",
      "category.weed": "Weed",
      "category.insect": "Insect",
      "category.disease": "Disease",
      "category.nutrient": "Nutrient",
      "category.compaction": "Compaction",
      "category.other": "Other",
      "title": "Issue Title",
      "titlePlaceholder": "Describe the issue",
      "status": "Status",
      "status.open": "Open",
      "status.monitoring": "Monitoring",
      "status.resolved": "Resolved",
      "validation.categoryRequired": "Category is required",
      "validation.titleRequired": "Title is required",
      "category.crop_condition": "Crop condition",
      "category.soil": "Soil",
      "category.weather": "Weather",
      "category.hail": "Hail"
    },
    "status": {
      "draft": "Draft",
      "final": "Final"
    },
    "weather": {
      "capture": "Capture conditions",
      "recapture": "Recapture conditions",
      "clear": "Clear conditions",
      "capturing": "Capturing conditions…",
      "none": "No conditions captured yet.",
      "needsLocation": "Select a located field to capture conditions.",
      "capturedAt": "Captured {{time}}"
    },
    "report": "AI report",
    "reportReady": "Ready",
    "generate": "Generate report",
    "generating": "Generating…",
    "downloadPdf": "Download PDF",
    "noReport": "No report generated yet.",
    "reportError": "Couldn't generate the report. Please try again.",
    "map": "Field map",
    "saveMap": "Save map",
    "mapLoading": "Loading map…",
    "attachments": {
      "title": "Attachments",
      "add": "Add photo",
      "uploading": "Uploading…",
      "empty": "No attachments yet.",
      "error": "Couldn't upload that file. Please try again.",
      "delete": "Delete photo"
    },
    "observation": {
      "add": "Add observation",
      "empty": "No observations recorded for this field yet.",
      "edit": "Edit observation",
      "delete": "Delete observation"
    },
    "generateSavesFirst": "Your notes are saved before the report is generated.",
    "confirmDelete": {
      "title": "Delete this item?",
      "description": "This can't be undone."
    },
    "leaveDialog": {
      "title": "Leave without saving?",
      "description": "Your unsaved changes to this note will be lost.",
      "stay": "Keep editing",
      "discard": "Discard changes"
    },
    "farm": "Farm",
    "field": "Field",
    "selectFarm": "Choose a farm",
    "selectField": "Choose a field"
  },
  "dictation": {
    "record": "Dictate",
    "stop": "Stop",
    "connecting": "Connecting…",
    "error": "Dictation failed. Please try again.",
    "micDenied": "Microphone access was denied.",
    "connectionLost": "Connection lost. Your transcript so far is kept.",
    "resume": "Resume",
    "finalizing": "Finishing transcription…"
  },
  "vocab": {
    "soilTexture": {
      "loam": "Loam",
      "sand": "Sand",
      "clay": "Clay",
      "other": "Other"
    },
    "organicMatter": {
      "low": "Low",
      "medium": "Medium",
      "high": "High"
    },
    "drainage": {
      "poor": "Poor",
      "moderate": "Moderate",
      "good": "Good"
    },
    "tillage": {
      "conventional": "Conventional",
      "reduced_till": "Reduced till",
      "no_till": "No-till",
      "other": "Other"
    },
    "fieldStatus": {
      "active": "Active",
      "inactive": "Inactive",
      "leased": "Leased",
      "cover_crop": "Cover crop"
    },
    "growingMethod": {
      "conventional": "Conventional",
      "organic": "Organic",
      "transitioning": "Transitioning to organic"
    },
    "seedingRateUnit": {
      "seeds_per_acre": "seeds/ac",
      "lbs_per_acre": "lb/ac",
      "kg_per_ha": "kg/ha"
    },
    "yieldUnit": {
      "bu_per_acre": "bu/ac",
      "t_per_ha": "t/ha",
      "lbs_per_acre": "lb/ac"
    },
    "observationCategory": {
      "weed": "Weed",
      "insect": "Insect",
      "disease": "Disease",
      "crop_condition": "Crop condition",
      "soil": "Soil",
      "weather": "Weather",
      "hail": "Hail",
      "other": "Other"
    },
    "observationSeverity": {
      "light": "Light",
      "moderate": "Moderate",
      "heavy": "Heavy",
      "severe": "Severe"
    }
  },
  "toast": {
    "region": "Notifications",
    "dismiss": "Dismiss"
  },
  "growers": {
    "title": "Growers",
    "search": "Search growers",
    "new": "New grower",
    "menu": "Grower actions",
    "open": "Open {{name}}",
    "noResults": "No growers match “{{query}}”.",
    "stats": {
      "farms_one": "{{count}} farm",
      "farms_other": "{{count}} farms",
      "fields_one": "{{count}} field",
      "fields_other": "{{count}} fields"
    },
    "empty": {
      "title": "No growers yet",
      "body": "Growers are your clients — each one owns farms and fields. Add your first client, then bring in their farms and boundaries."
    },
    "dialog": {
      "title": "New grower",
      "editTitle": "Edit grower",
      "description": "The client operation and the person you call.",
      "name": "Contact name",
      "operation": "Operation name",
      "operationPlaceholder": "Jones Farms Ltd.",
      "email": "Email",
      "family": "Family / partners",
      "address": "Address"
    },
    "toast": {
      "created": "Grower “{{name}}” added.",
      "updated": "Grower “{{name}}” updated.",
      "deleted": "Grower “{{name}}” deleted."
    },
    "deleteConfirm": {
      "title": "Delete “{{name}}”?",
      "body": "Their farms stay but become unassigned. This can’t be undone from the app."
    },
    "detail": {
      "newFarm": "New farm",
      "newFarmPrompt": "Farm name",
      "farmCreated": "Farm “{{name}}” created for this grower.",
      "noFarms": {
        "title": "No farms for this grower yet",
        "body": "Import their boundary files — each farm in the file is created under this client — or add a farm by name."
      }
    },
    "view": {
      "list": "List view",
      "card": "Card view"
    }
  },
  "scoutingV2": {
    "title": "Field overview",
    "subtitle": "All fields, with overdue follow-ups and open issues first.",
    "queueLabel": "Field queue",
    "count": "{{count}} fields",
    "empty": "No fields in this view yet.",
    "mapPlaceholder": "Map view arrives with the visit slice.",
    "scope": {
      "label": "Queue scope",
      "mine": "Mine",
      "branch": "My branch"
    },
    "view": {
      "label": "Queue view",
      "list": "List",
      "map": "Map"
    },
    "col": {
      "field": "Field",
      "crop": "Crop",
      "lastVisit": "Last visit",
      "issues": "Open issues",
      "followUp": "Follow-up",
      "reason": "Why",
      "action": "Action"
    },
    "reason": {
      "overdue_follow_up": "Overdue",
      "threshold_exceeded": "Over threshold",
      "ai_draft_unreviewed": "Draft to confirm",
      "open_issues": "{{count}} open",
      "not_visited": "Not visited",
      "ok": "Up to date"
    },
    "lastVisit": {
      "never": "Never visited",
      "today": "Today",
      "yesterday": "Yesterday",
      "daysAgo": "{{count}} days ago"
    },
    "followUp": {
      "none": "None",
      "today": "Due today",
      "overdue": "{{count}} days overdue",
      "inDays": "In {{count}} days"
    },
    "issues": {
      "count": "{{count}}"
    },
    "cta": {
      "start": "Start",
      "resume": "Open note",
      "review": "Review",
      "decide": "Decide"
    },
    "visit": {
      "title": "Field visit",
      "transcript": "Notes",
      "transcriptPlaceholder": "Talk, or type what you see.",
      "openIssues": "Open issues from the last visit",
      "stops": "Stops",
      "stopNumber": "Stop {{number}}",
      "stopProgress": "{{done}} of {{required}} stops",
      "noFix": "No GPS fix",
      "noGps": "No GPS fix — mark the stop without one, or try again.",
      "photos": "Photos",
      "photosLost": "{{count}} photo(s) need to be taken again — the file didn't survive the reload.",
      "talk": "Record note",
      "talkStop": "Stop recording",
      "photo": "Add photo",
      "pin": "Pin",
      "pinning": "Locating…",
      "pinManual": "Mark stop without GPS",
      "note": "Add finding",
      "finish": "Finish visit",
      "finishOffline": "Saved on this phone — the visit syncs as soon as there is a connection.",
      "discard": "Discard unsynced changes",
      "discardConfirm": "Discard changes that have not synced from this browser? Notes, findings and photos already saved to the server stay in History. Unsynced text, findings and photos will be lost.",
      "discardYes": "Discard",
      "sync": {
        "local": "Saved on this device",
        "syncing": "Syncing…",
        "synced": "Synced",
        "notSaved": "Not saved yet",
        "offline": "Offline — will sync",
        "error": "Not saved to the server",
        "signed": "Visit is signed — reopen to edit",
        "refused": "The server refused this change",
        "itemFailed": "Some captures did not save",
        "retry": "Retry",
        "resumeFailed": "A saved visit could not be reopened. Go back and try again.",
        "photoNotStored": "A photo could not be saved on this device, so it cannot be uploaded. Remove it to finish the visit."
      },
      "driver": {
        "label": "What is driving this visit",
        "question": "What's driving this visit?",
        "weed": "Weed",
        "insect": "Insect",
        "disease": "Disease",
        "crop_condition": "Crop condition",
        "general": "General"
      },
      "pattern": {
        "evenly_spaced": "Walk evenly spaced stops across the field.",
        "low_wet_spots": "Patchy: stop in the low and wet spots and the thin stand.",
        "edges_and_ditches": "Edge-associated: stop along the edges and ditches first."
      },
      "offlineFinding": {
        "title": "Finding (offline)",
        "description": "Category and severity now; the rest on Review once there is a connection."
      },
      "signed": {
        "title": "This visit is signed",
        "body": "This visit is signed. Reopen it to make changes.",
        "toReview": "Go to Review",
        "reopen": "Reopen visit"
      },
      "photoFailed": "{{name}} was not accepted by the server.",
      "photosFailed": "{{count}} photo(s) were not accepted by the server.",
      "saveClose": "Save and close",
      "reviewFindings": "Review findings",
      "samplingTools": "Sampling tools (optional)",
      "followUp": "Follow-up date (optional)",
      "notesPhotos": "Notes & photos",
      "findings": "Findings",
      "summary": "Summary",
      "navigation": "Visit sections",
      "capture": "Capture tools",
      "fieldContext": "Field context",
      "fieldDetails": "Field details & map",
      "previousNotes": "Previous notes",
      "noPrevious": "No earlier notes in the records loaded.",
      "saveHint": "Saved as you work. AI help, findings and signing are optional.",
      "saved": "Note saved",
      "savedLocal": "Note saved on this device. Reopen it to sync when connected.",
      "reviewNeedsSync": "Connect and save your changes before opening findings or using AI help.",
      "pendingPhotos": "A photo is still waiting to upload. Retry or remove that photo before closing.",
      "localSaveFailed": "This device could not retain your changes. Keep this page open until they sync.",
      "stopBeforeSave": "Stop dictation to save the completed note.",
      "more": "More options",
      "files": "Files",
      "file": "Attachment",
      "photosLoadError": "Saved photos could not be loaded.",
      "removePhoto": "Remove unsent photo",
      "removePhotoConfirm": "Remove this unsent photo from the note?",
      "localContext": "Showing your saved device copy. Field details will return when the connection is available.",
      "contextUnavailable": "Some field details could not load. You can still save your note."
    },
    "review": {
      "title": "Findings",
      "identification": {
        "group": "Group identification",
        "groupDetail": "Species not identified."
      },
      "references": {
        "loading": "Loading finding names…",
        "failed": "Finding names could not be loaded. Try again to use the reference labels."
      },
      "subtitle": "Review findings when useful. Saving your notes never requires this step.",
      "empty": "No structured findings on this note. Your notes are saved; you can return to them or finish here.",
      "bbch": "BBCH {{stage}}",
      "reviewedBy": "Confirmed by {{name}}",
      "finalise": "Sign visit",
      "finaliseBlocked_one": "{{count}} finding still needs review before signing.",
      "finaliseBlocked_other": "{{count}} findings still need review before signing.",
      "signed": "Signed by {{name}} · {{date}}",
      "reopen": "Reopen visit",
      "toDecide": "Prepare advice (preview)",
      "group": {
        "needs_clarification": "Needs attention",
        "ai_draft": "AI drafts",
        "confirmed": "Confirmed",
        "manual": "Manual"
      },
      "state": {
        "needs_clarification": "Question open",
        "ai_draft": "AI draft",
        "confirmed": "Confirmed",
        "manual": "Manual"
      },
      "provenance": {
        "heard": "Heard",
        "inferred": "Inferred"
      },
      "evidence": {
        "show": "Why this value",
        "transcript": "What was said"
      },
      "value": {
        "category": "Category",
        "severity": "Severity",
        "count": "Count",
        "unit": "Counted",
        "method": "Method",
        "stage": "Stage",
        "threshold": "Threshold",
        "none": "None",
        "stageRange": "Enter a BBCH stage between {{min}} and {{max}}."
      },
      "threshold": {
        "exceeded": "Over threshold",
        "under": "Under threshold",
        "basis": "Basis: {{basis}}"
      },
      "unit": {
        "per_sqm": "per m²",
        "per_10_sweeps": "per 10 sweeps",
        "per_plant": "per plant"
      },
      "method": {
        "sweep_net": "Sweep net",
        "quadrat": "Quadrat",
        "visual": "Visual"
      },
      "action": {
        "accept": "Accept",
        "fix": "Fix",
        "reject": "Reject",
        "save": "Save"
      },
      "reject": {
        "confirm": "Delete this finding? The visit will not mention it.",
        "yes": "Reject"
      },
      "issue": {
        "label": "Link to issue",
        "none": "Not linked",
        "new": "New issue",
        "newTitle": "Issue title",
        "create": "Open issue"
      },
      "done": "Done · back to History",
      "signHint": "Signing freezes this visit. It does not send it to the grower."
    },
    "decide": {
      "title": "Decide",
      "subtitle": "What to do about each confirmed finding.",
      "empty": "Nothing confirmed on this visit yet.",
      "trendVs": "Compared with {{date}}",
      "toReview": "Back to review",
      "trend": {
        "new": "New",
        "spreading": "Spreading",
        "stable": "Stable",
        "improving": "Improving",
        "resolved": "Resolved"
      },
      "slot": {
        "actionLabel": "Recommended action",
        "treat": "Treat",
        "monitor": "Monitor",
        "none": "No action",
        "rationale": "Why",
        "rationalePlaceholder": "Optional — what the grower should know.",
        "approve": "Approve",
        "approved": "Approved by {{name}} · {{date}}",
        "change": "Change",
        "hint": "Engine drafts land here later; for now the call is yours."
      },
      "previewNotice": "Advice planning preview. Decisions are kept only in this browser. Precision chat and sending to the grower are not available here yet."
    },
    "summary": {
      "preview": "Preview grower summary",
      "finding": {
        "groupIdentification": "Identified to group level; the species was not identified."
      },
      "title": "Field visit summary",
      "path": "{{client}} · {{farm}} · {{field}}",
      "visitDate": "Visited {{date}}",
      "preparedBy": "Prepared by {{name}} · signed {{date}}",
      "gate": {
        "title": "Sign the visit first",
        "body": "The grower summary reports what was found on a signed visit. Finish the review and sign it, then come back.",
        "toReview": "Go to Review"
      },
      "saw": {
        "heading": "What we saw",
        "empty": "Nothing was confirmed on this visit.",
        "countLine": "We found {{subject}} at {{count}} {{unit}} ({{severity}}).",
        "countNoUnit": "We found {{subject}} — about {{count}} counted ({{severity}}).",
        "plainLine": "We found {{subject}} ({{severity}}).",
        "stage": "The crop was at {{stage}}.",
        "noteText": "{{text}}",
        "measurementLine": "We found {{subject}} at {{count}} ({{severity}})."
      },
      "severity": {
        "light": "light pressure",
        "moderate": "moderate pressure",
        "heavy": "heavy pressure",
        "severe": "severe pressure",
        "unknown": "pressure not rated"
      },
      "unit": {
        "per_sqm": "per square metre",
        "per_10_sweeps": "per 10 sweeps",
        "per_plant": "per plant"
      },
      "stage": {
        "germination": "germination",
        "leaf_development": "early leaf growth",
        "tillering": "tillering",
        "stem_elongation": "stem elongation",
        "booting": "booting",
        "heading": "heading",
        "flowering": "flowering",
        "grain_fill": "grain filling",
        "ripening": "ripening",
        "senescence": "senescence"
      },
      "trend": {
        "new": "First time we have seen this here.",
        "spreading": "Spreading since {{date}}.",
        "stable": "About the same as on {{date}}.",
        "improving": "Less than on {{date}}.",
        "resolved": "Gone since {{date}}."
      },
      "threshold": {
        "above": "This is above the action threshold.",
        "below": "This is below the action threshold."
      },
      "photos": {
        "heading": "Photos"
      },
      "photoAlt": "Photo from the visit: {{name}}",
      "map": {
        "heading": "Where we walked",
        "caption": "The field outline with the stops we sampled ({{count}})."
      },
      "conditions": {
        "heading": "Conditions on the day",
        "precip": "{{value}} mm rain"
      },
      "recommend": {
        "heading": "What we recommend",
        "empty": "No actions recommended from this visit.",
        "treat": "Treat {{subject}}.",
        "monitor": "Keep watching {{subject}}.",
        "none": "No action needed for {{subject}}.",
        "because": "Why: {{rationale}}.",
        "timing": "Timing: {{timing}}."
      },
      "next": {
        "heading": "Next steps",
        "followUp": "Next visit planned for {{date}}.",
        "noFollowUp": "No follow-up visit is booked yet.",
        "reply": "Reply to this message with Accept, Decline, or Call me."
      },
      "delivery": {
        "label": "Delivery",
        "cycle": "Cycle status (fixtures)",
        "not_sent": "Not sent",
        "sent": "Sent",
        "viewed": "Viewed",
        "accepted": "Accepted",
        "declined": "Declined",
        "call_me": "Call me"
      },
      "action": {
        "send": "Preview email",
        "print": "Print / Save as PDF",
        "copy": "Copy as text",
        "copyJson": "Copy JSON",
        "copied": "Copied"
      },
      "send": {
        "title": "Email preview",
        "description": "What would go to the grower. Nothing is sent from this screen.",
        "to": "To",
        "subject": "Subject",
        "noEmail": "No email on file for this client",
        "confirm": "Send",
        "close": "Close",
        "disabled": "Email sending is not available yet."
      },
      "email": {
        "subject": "Field visit summary — {{field}}, {{date}}"
      },
      "demo": {
        "title": "Demo tools",
        "description": "Simulated delivery only. These controls never send a message.",
        "status": "Simulated delivery status"
      }
    },
    "addNote": "Add note",
    "navigation": "Scouting navigation",
    "today": "Field overview",
    "newNote": {
      "description": "Choose the field, then write or dictate your note.",
      "continue": "Write note",
      "noFields": "This farm has no fields yet. Add a field from the farm page."
    },
    "history": {
      "title": "Visit history",
      "description": "Find notes from previous field visits.",
      "search": "Search fields or farms",
      "localNote": "Note on this device",
      "local": "On this device · sync pending",
      "saved": "Saved · unsigned",
      "signed": "Signed",
      "all": "All notes",
      "allFields": "Show all fields",
      "noText": "Photos or findings attached",
      "noMatches": "No matching notes in the records loaded. Try another search or load more.",
      "empty": "Your saved notes and visits will appear here. Add a note to get started.",
      "loaded": "{{count}} of {{total}} records loaded",
      "searchScope": "Search covers the records loaded. Load more to include older notes.",
      "loadMore": "Load more notes"
    },
    "ai": {
      "title": "AI help (optional)",
      "description": "A readable draft from your saved notes and findings. Your original notes stay intact.",
      "generate": "Create AI summary",
      "draft": "AI draft · not reviewed",
      "error": "AI help is unavailable right now. Your notes are still saved; you can try again.",
      "featureDisabled": "AI summaries are disabled in AI settings. Your notes and findings remain available.",
      "voiceDisabled": "Voice transcription is disabled in AI settings. You can type your notes."
    },
    "examples": {
      "title": "Try a filled example",
      "description": "Demo data only. Open the same record in Notes or Findings to compare the views. These examples do not change your real farm records.",
      "quick": {
        "title": "1. A quick saved note",
        "description": "A short field update with no findings, AI review or signature required."
      },
      "manual": {
        "title": "2. A note with findings",
        "description": "Kochia and tan spot recorded manually, plus three sampling stops and a follow-up date."
      },
      "ai": {
        "title": "3. AI findings to review",
        "description": "Three sample AI drafts: heard evidence, an inferred value and a count needing clarification."
      },
      "signed": {
        "title": "4. A signed visit",
        "description": "Recorded findings, photos and a printable grower summary. Email remains a preview."
      }
    },
    "workspace": {
      "notes": "Notes",
      "summary": "Summary",
      "done": "Save & close",
      "close": "Close",
      "visitNotes": "Visit notes",
      "visitSummary": "Visit summary",
      "savedAsYouGo": "Your words, saved as you go",
      "voiceOrType": "Speak or type your notes",
      "recordingTime": "Recording duration",
      "recording": "Recording…",
      "recordingContinues": "Recording continues while you browse this visit.",
      "recordMore": "Record more",
      "viewSummary": "View AI summary",
      "createSummary": "Create AI summary",
      "updateSummary": "Update summary",
      "generatingSummary": "Creating a draft from your saved notes…",
      "summaryStale": "Your notes or findings have changed since this summary was created. Update it when you’re ready.",
      "summarySourceUnknown": "This is a saved AI draft. Check it against the current notes and findings.",
      "noSummary": "No internal AI summary was created for this visit. Your signed notes and grower preview are still available.",
      "viewTranscript": "View original transcript",
      "visitDetails": "Follow-up & sampling",
      "noWeather": "Conditions not recorded",
      "weatherAt": "Recorded at visit · {{time}}",
      "moreActions": "More visit actions",
      "signVisit": "Sign visit",
      "editSigned": "Edit signed visit",
      "reopenTitle": "Edit this signed visit?",
      "reopenBody": "This reopens the visit for editing. Sign it again after making changes to preview an updated grower summary.",
      "signTitle": "Sign this visit?",
      "signBody": "Signing freezes this record and its findings. It does not send anything to the grower.",
      "needsReview_one": "{{count}} needs review",
      "needsReview_other": "{{count}} need review",
      "reviewComplete": "Ready to sign",
      "findingsOptional": "Findings are optional. Add an observation when it helps explain the visit.",
      "queuedFindings_one": "{{count}} finding saved on this device, waiting to sync.",
      "queuedFindings_other": "{{count}} findings saved on this device, waiting to sync.",
      "backToVisit": "Back to visit",
      "recipientHeading": "Share with the grower",
      "growerPreviewHint": "Review the report and recipient before sharing. This preview includes signed notes, confirmed findings and approved advice; it excludes the internal AI draft.",
      "deliveryUnavailable": "Email delivery is not connected yet. You can print or copy this summary.",
      "openIssues": "Open issues to revisit",
      "signedFindings": "Recorded findings",
      "noteOnly": "Visit note",
      "finishFinding": "Save or cancel your finding edit before finishing this note."
    },
    "queue": {
      "search": "Search fields or farms",
      "noMatches": "No fields match your search.",
      "clear": "Clear search",
      "priority": "Sorted by priority",
      "lastSeen": "Last visit: {{time}}",
      "openIssues_one": "{{count}} open issue",
      "openIssues_other": "{{count}} open issues",
      "attention": "Needs attention"
    },
    "extraction": {
      "optional": "AI suggestions are optional. Extract findings from the saved note, then review each suggestion. Saving never starts extraction.",
      "action": "Extract findings",
      "retry": "Retry extraction",
      "running": "Extracting findings. You can keep taking notes; signing is available after extraction finishes.",
      "done_one": "Extraction complete: {{count}} finding. Review the suggestion below.",
      "done_other": "Extraction complete: {{count}} findings. Review the suggestions below.",
      "allRejected": "This extraction added no verified findings.",
      "failed": "Extraction failed or was interrupted. Your saved note is safe. Retry when ready.",
      "stale": "The saved note changed. This extraction is out of date; extract again from the latest saved note.",
      "signed": "This visit is signed. Reopen it before extracting findings.",
      "offline": "Connect to the internet to extract findings. You can keep taking notes offline.",
      "saveFirst": "Save this note before extracting findings.",
      "dirty": "Wait for your changes to finish saving before extracting findings.",
      "empty": "Add and save note text before extracting findings.",
      "disabled": "Finding extraction is unavailable or disabled in AI settings. You can add findings manually.",
      "checking": "Checking the latest extraction…",
      "error": "Could not confirm extraction status. Refresh status before trying again.",
      "paused": "Status checks paused after five minutes. Refresh to check again.",
      "refresh": "Refresh status",
      "replace": "Replace earlier unreviewed AI suggestions; keep reviewed and manual findings.",
      "omissions": {
        "title_one": "{{count}} suggestion was omitted",
        "title_other": "{{count}} suggestions were omitted",
        "description": "These suggestions could not be verified and were not added as findings. You can add a manual finding if needed.",
        "evidenceReason": "The supporting evidence could not be verified.",
        "structureReason": "The suggested details could not be verified.",
        "noQuote": "An exact quote could not be located. The saved source notes are available below.",
        "source": "View source notes used for this extraction",
        "sourceUnavailable": "The source notes could not be loaded. Refresh extraction status before acknowledging.",
        "addManual": "Add manually",
        "acknowledgmentNote": "Acknowledgment records that you reviewed the omitted text. It does not confirm a finding or sign the visit.",
        "acknowledge": "I reviewed the omitted text",
        "reviewed": "Omitted text reviewed",
        "saveFailed": "Could not save your acknowledgment. Review is still required; try again.",
        "beforeSigning": "Review the omitted text before signing or extracting again.",
        "review": "Review omitted text"
      }
    }
  },
  "settings": {
    "profile": {
      "title": "Profile",
      "description": "A small personal touch, wherever you use Bloom.",
      "firstName": "First name",
      "help": "Optional. Use the name you’d like in your greeting. This does not change the name on signed reports.",
      "save": "Save name",
      "saving": "Saving…",
      "saved": "Name saved.",
      "loadError": "Your profile could not be loaded.",
      "retry": "Try again",
      "saveError": "Your name could not be saved. Please try again."
    },
    "title": "Settings",
    "subtitle": "Manage your account security, AI models and app preferences.",
    "navigation": "Settings sections",
    "sections": {
      "profile": "Profile",
      "security": "Security",
      "password": "Password",
      "preferences": "Preferences"
    },
    "preferences": {
      "title": "Preferences",
      "theme": {
        "label": "Theme",
        "description": "Switch between the light and dark appearance."
      },
      "language": {
        "label": "Language",
        "description": "Language used across the app."
      },
      "units": {
        "label": "Measurement units",
        "description": "Choose Prairie, Metric or Imperial units, or customize each measurement."
      }
    }
  },
  "search": {
    "title": "Search records",
    "label": "Search growers, farms, fields and notes",
    "placeholder": "Name, land location or words from a note",
    "submit": "Search",
    "help": "Search saved records. Notes saved only on this device stay in Visit history.",
    "results": "Search results",
    "recordTypes": "Record types",
    "activeFilters": "Active filters",
    "filters": "Filters",
    "clearFilters": "Clear filters",
    "removeFilter": "Remove {{label}}: {{value}}",
    "any": "Any",
    "chooseFarm": "Choose a farm first",
    "moreOptions": "Load more choices",
    "optionsFailed": "These choices could not be loaded. Try again.",
    "minimum": "Enter at least 2 characters to search.",
    "tooLong": "Use no more than 160 characters.",
    "tooManyWords": "Use no more than 8 words.",
    "invalidDates": "The end date must be on or after the start date.",
    "invalidYear": "Choose a crop year from 1900 to 2200.",
    "searching": "Searching…",
    "empty": "No matching records. Try another name or phrase, or remove a filter.",
    "unavailable": "Search is unavailable right now. Your input is still here; try again.",
    "moreFailed": "More matches could not be loaded. Search again to refresh the results.",
    "tryAgain": "Search again",
    "matchesLoaded_one": "{{count}} match loaded",
    "matchesLoaded_other": "{{count}} matches loaded",
    "loadMore": "Load more matches",
    "notesFilterHelp": "Dates and status apply to Notes. Remove those filters to search other record types.",
    "cropHelp": "Fields use the selected crop year. Notes use the crop recorded for that visit.",
    "dateHelp": "Both dates are included, using {{timezone}}.",
    "type": {
      "all": "All records",
      "grower": "Growers",
      "farm": "Farms",
      "field": "Fields",
      "visit": "Notes"
    },
    "status": {
      "draft": "Draft",
      "final": "Signed"
    },
    "filter": {
      "grower_id": "Grower",
      "farm_id": "Farm",
      "field_id": "Field",
      "crop_id": "Crop",
      "crop_year": "Crop year",
      "date_from": "Visit from",
      "date_to": "Visit through",
      "status": "Note status"
    },
    "reason": {
      "exact_name": "Exact name match",
      "name_prefix": "Name matches your search",
      "lld": "Land location match",
      "visit_text": "Words from a saved note",
      "historical_name": "Name recorded on this visit",
      "canonical_subject": "Recorded finding match",
      "similar_name": "Similar name"
    },
    "kind": {
      "grower": "Grower",
      "farm": "Farm",
      "field": "Field",
      "visit": "Note"
    },
    "matchedFindings_one": "{{count}} matching finding",
    "matchedFindings_other": "{{count}} matching findings",
    "group": "Group — species not identified",
    "unnamedSubject": "Recorded subject",
    "moreFindingMatches_one": "{{count}} more matching finding in this visit",
    "moreFindingMatches_other": "{{count}} more matching findings in this visit",
    "noWords": "Include a name, location or words from a note."
  },
  "commandSearch": {
    "title": "Search",
    "open": "Search",
    "all": "All",
    "recent": "Recent visits",
    "actions": "Actions",
    "more": "More",
    "viewAll": "See all results for “{{query}}”",
    "untitledVisit": "Untitled visit",
    "close": "Close search",
    "filtersApply_one": "{{count}} filter from full search applies",
    "filtersApply_other": "{{count}} filters from full search apply",
    "action": {
      "visit": "Start a field visit",
      "report": "New grower report",
      "precision": "New Precision Chat",
      "bluebook": "New Bluebook Chat",
      "filters": "Search with filters"
    },
    "hint": {
      "navigate": "Navigate",
      "open": "Open",
      "close": "Close"
    }
  },
  "lab": {
    "title": "Farm Lab",
    "intro": "Plan a field over several seasons, then test the plan.",
    "unavailable": {
      "title": "Farm Lab is not on for your organization yet",
      "description": "Ask your Agteq contact to switch it on."
    },
    "home": {
      "new": "New scenario",
      "showArchived": "Show archived",
      "hideArchived": "Hide archived",
      "empty": {
        "title": "No scenarios yet",
        "description": "Lay out a field's next seasons — crops, seeding and spray passes — and see how one season's choices carry into the next.",
        "action": "Plan a field"
      },
      "unknownField": "Field",
      "seasons_one": "{{count}} season",
      "seasons_other": "{{count}} seasons",
      "noSeasons": "No seasons yet",
      "loadError": "Scenarios could not be loaded.",
      "retry": "Try again"
    },
    "badge": {
      "baseline": "Baseline",
      "archived": "Archived"
    },
    "simState": {
      "never": "Not simulated",
      "current": "Up to date",
      "stale": "Out of date",
      "failed": "Simulation failed"
    },
    "wizard": {
      "title": "New scenario",
      "steps": {
        "field": "Field",
        "start": "Start from",
        "horizon": "Seasons"
      },
      "stepOf": "Step {{current}} of {{total}}",
      "back": "Back",
      "next": "Next",
      "create": "Create scenario",
      "creating": "Creating…",
      "field": {
        "label": "Which field?",
        "help": "A scenario plans one field; its records and location shape the checks."
      },
      "start": {
        "label": "How do you want to start?",
        "blank": "Blank",
        "blankHelp": "Add seasons and passes yourself.",
        "history": "From this field's records",
        "historyHelp_one": "Brings in {{count}} season already recorded for this field.",
        "historyHelp_other": "Brings in {{count}} seasons already recorded for this field.",
        "historyNone": "This field has no season records yet.",
        "templates": "Templates",
        "noTemplates": "No templates for this field's province yet.",
        "draft": "Draft — pending agronomist review",
        "loading": "Loading…"
      },
      "horizon": {
        "name": "Name",
        "firstYear": "First harvest year",
        "years": "Number of seasons",
        "area": "Area (acres)",
        "soilZone": "Soil zone",
        "soilZoneHelp": "Some labels' recropping terms depend on it.",
        "farmingSystem": "Farming system",
        "notSet": "Not set",
        "span": "Plans {{start}} to {{end}}."
      },
      "error": "The scenario could not be created: {{message}}"
    },
    "soilZone": {
      "brown": "Brown",
      "dark_brown": "Dark Brown",
      "black": "Black",
      "dark_gray": "Dark Gray",
      "gray": "Gray",
      "organic": "Organic"
    },
    "farmingSystem": {
      "conventional": "Conventional",
      "organic": "Organic",
      "regenerative": "Regenerative",
      "unknown": "Not stated"
    },
    "workspace": {
      "back": "All scenarios",
      "horizon": "{{start}} to {{end}}",
      "seasons": "Seasons",
      "noSeasons": "No seasons yet.",
      "notFound": "This scenario was not found."
    },
    "passType": {
      "seeding": "Seeding",
      "herbicide": "Herbicide",
      "fungicide": "Fungicide",
      "insecticide": "Insecticide",
      "fertility": "Fertility",
      "tillage": "Tillage",
      "harvest": "Harvest",
      "other": "Other"
    },
    "timing": {
      "fall_prior": "Fall before",
      "pre_seed": "Pre-seed",
      "pre_emergent": "Pre-emergent",
      "post_emergent": "In-crop",
      "pre_harvest": "Pre-harvest",
      "post_harvest": "Post-harvest"
    },
    "trait": {
      "none": "None",
      "glyphosate": "Glyphosate-tolerant",
      "glufosinate": "Glufosinate-tolerant",
      "imidazolinone": "Clearfield (imidazolinone)",
      "other": "Other trait",
      "unknown": "Not sure"
    },
    "yieldUnit": {
      "bu_per_acre": "bu/ac",
      "t_per_ha": "t/ha",
      "lbs_per_acre": "lb/ac"
    },
    "productKind": {
      "product": "Product",
      "active": "Active ingredient",
      "adjuvant": "Adjuvant",
      "seed": "Seed",
      "fertilizer": "Fertilizer"
    },
    "pass": {
      "title": "Pass",
      "description": "What goes on, when, and against what. Changes apply when you press Done.",
      "type": "Type",
      "timing": "Timing",
      "notSet": "Not set",
      "date": "Planned date",
      "dateOutside": "The date is outside this plan.",
      "season": "Season",
      "stage": "Crop stage",
      "stageText": "Stage (as you'd say it)",
      "bbchFrom": "BBCH from",
      "bbchTo": "BBCH to",
      "stageOrder": "The first stage must come before the last.",
      "targets": "Targets",
      "addTarget": "Add a target",
      "add": "Add",
      "removeTarget": "Remove {{name}}",
      "products": "Products",
      "productName": "Product {{n}}",
      "removeProduct": "Remove product {{n}}",
      "kind": "Kind",
      "rate": "Rate",
      "unit": "Unit",
      "rateNeedsUnit": "A rate needs a unit.",
      "addProduct": "Add product",
      "groups": "Group {{groups}}",
      "unconfirmed": "Group unconfirmed",
      "active": "Active ingredient",
      "notInCatalog": "Not in the product list — it won't be checked.",
      "manualCost": "Your cost ($/ac, optional)",
      "applicationCost": "Application cost ($/ac)",
      "delete": "Delete pass",
      "confirmDelete": "Delete",
      "keep": "Keep",
      "cancel": "Cancel",
      "done": "Done",
      "rateInvalid": "A rate is a number above 0, like 0.5.",
      "costInvalid": "A cost is a number, like 7.50.",
      "findings": "From the last run"
    },
    "season": {
      "title": "Season",
      "description": "The crop and what you expect from it. Changes apply when you press Done.",
      "crop": "Crop",
      "year": "Harvest year",
      "trait": "Herbicide-tolerance trait",
      "seeding": "Seeding date",
      "harvest": "Harvest date",
      "expectedYield": "Expected yield",
      "yieldUnit": "Unit",
      "adjustment": "Yield adjustment (%)",
      "reason": "Why adjust?",
      "reasonNeeded": "Say why the yield is adjusted.",
      "adjustmentHelp": "Farm Lab doesn't predict yield: it uses yours, changed only by an adjustment you explain.",
      "numberInvalid": "Yield is a number, like 55; the adjustment is between -100 and 100."
    },
    "journey": {
      "noCrop": "No crop",
      "noProducts": "No products yet",
      "noDate": "No date",
      "yield": "{{value}} {{unit}}",
      "moveUp": "Move {{season}} earlier",
      "moveDown": "Move {{season}} later",
      "edit": "Edit",
      "editSeason": "Edit {{season}}",
      "removeSeason": "Remove {{season}}",
      "confirmRemove": "Remove season",
      "addPass": "Add pass",
      "addPassTo": "Add a pass to {{season}}",
      "addSeason": "Add season",
      "limits": "A plan holds up to {{seasons}} seasons and {{passes}} passes, and a season up to {{perSeason}} passes."
    },
    "editor": {
      "name": "Scenario name",
      "undo": "Undo",
      "redo": "Redo",
      "status": {
        "saved": "Saved",
        "unsaved": "Unsaved changes",
        "saving": "Saving…",
        "conflict": "Not saved",
        "error": "Not saved"
      },
      "conflict": "This plan was changed somewhere else since you opened it. Load the saved plan, or keep your version as a copy.",
      "reload": "Load the saved plan",
      "saveAsCopy": "Save my version as a copy",
      "error": "Your changes could not be saved: {{message}}"
    },
    "timeline": {
      "label": "Journey timeline: pass types by season",
      "laneHeader": "Pass type",
      "help": "Arrow keys move between passes · Enter opens · N adds a pass · Delete removes · [ and ] move a pass a week · drag a pass along its season",
      "passName": "{{type}} pass, {{when}}, {{products}}",
      "emptyCell": "{{lane}}, {{season}}: no passes. Press N to add one.",
      "moved": "Moved to {{date}}",
      "dragCancelled": "Move cancelled",
      "limit": "This season or plan already holds as many passes as it can.",
      "confirmRemove": "Remove {{name}}?",
      "view": "Show the journey as",
      "views": {
        "timeline": "Timeline",
        "list": "List"
      }
    },
    "severity": {
      "fail": "Fail",
      "warn": "Warning",
      "unknown": "Not checked",
      "info": "Note"
    },
    "severityCount": {
      "fail_one": "{{count}} fail",
      "fail_other": "{{count}} fails",
      "warn_one": "{{count}} warning",
      "warn_other": "{{count}} warnings",
      "unknown_one": "{{count}} not checked",
      "unknown_other": "{{count}} not checked",
      "info_one": "{{count}} note",
      "info_other": "{{count}} notes"
    },
    "sim": {
      "title": "Simulation",
      "run": "Simulate",
      "running": "Simulating…",
      "notSaved": "The plan could not be saved, so it was not simulated. Fix the message above, then try again.",
      "conflict": "This plan changed somewhere else. Load the saved plan, then simulate.",
      "tooSoon": "This plan was just simulated. Try again in {{seconds}} seconds.",
      "engine": "The simulation did not run: {{message}}",
      "failed": "The simulation did not run: {{message}}",
      "lastRun": "Last run {{when}}",
      "coverage": "{{jurisdiction}} · {{status}}",
      "staleBecause": "Results are out of date: {{reasons}}.",
      "basisUnchecked": "Could not check whether the reference data or engine changed since the last run.",
      "lastFailed": "The last simulation failed. The results below are from the last one that finished.",
      "reused": "Nothing changed since the last run, so these are its results."
    },
    "staleReason": {
      "edited": "the plan was edited",
      "prices_changed": "prices changed",
      "data_updated": "the reference data was updated",
      "engine_updated": "the engine was updated"
    },
    "dataStatus": {
      "full": "full data",
      "partial": "partial data",
      "no_data": "no data for this province",
      "informational": "data under review"
    },
    "results": {
      "title": "Results",
      "stale": "These results are from an earlier version of the plan. Simulate again to update them.",
      "review": "A planning aid, not a recommendation: an agronomist should review these results before anything is applied.",
      "tabs": {
        "overview": "Overview",
        "findings": "Findings",
        "economics": "Economics",
        "risk": "Rotation risk",
        "compliance": "Label checks",
        "suggestions": "Suggestions"
      },
      "totals": {
        "cost": "Cost per acre",
        "revenue": "Revenue per acre",
        "margin": "Margin per acre",
        "totalMargin": "Margin for the field"
      },
      "missingTotal": "Not every season is priced",
      "noFindings": "No findings.",
      "limitations": "Limits of this run",
      "grade": "Evidence grade {{grade}}",
      "treeRef": "Guide {{ref}}",
      "openPass": "Open {{pass}}",
      "goneSeason": "A season no longer in the plan",
      "gonePass": "a pass no longer in the plan",
      "economicsCaption": "Cost, revenue and margin per acre by season",
      "season": "Season",
      "noPrice": "No price",
      "noRevenue": "No yield or crop price",
      "noMargin": "Not priced",
      "missingPrices": "No price for: {{items}}.",
      "groupsCaption": "Herbicide groups by year",
      "group": "Group",
      "groupN": "Group {{group}}",
      "used": "used",
      "notUsed": "not used",
      "noGroups": "No herbicide groups in this plan yet.",
      "unconfirmed": "Groups not confirmed for: {{products}}.",
      "streaks": "Group streaks",
      "noStreaks": "No group repeats on the same weed.",
      "streak": "{{weed}}: Group {{group}} {{length}} seasons running ({{years}})",
      "recropping": "Recropping",
      "noRecropping": "No recropping restrictions found.",
      "recrop": "{{product}} before {{crop}}: {{elapsed}} months after, {{interval}} required",
      "noChecks": "No products were checked against the guide yet.",
      "complianceCaption": "Label checks per product",
      "product": "Product",
      "verdict": "Verdict",
      "addPrices": "Add prices"
    },
    "category": {
      "gate": "Label check",
      "resistance": "Resistance",
      "rotation": "Rotation",
      "recropping": "Recropping",
      "label": "Label",
      "economics": "Economics",
      "data": "Data"
    },
    "source": {
      "label": "Label",
      "government_guide": "Provincial guide",
      "agteq_data": "Agteq data",
      "inference": "Inference",
      "grower_input": "Your input",
      "none": "No source"
    },
    "verdict": {
      "recommended": "Fits",
      "conditional": "Fits with conditions",
      "excluded": "Does not fit",
      "unverified": "Not verified"
    },
    "gateStatus": {
      "pass": "Pass",
      "warn": "Warning",
      "fail": "Fail",
      "unknown": "Not checked"
    },
    "gate": {
      "crop_registration": "Crop registration",
      "weed_species": "Weeds on label",
      "weed_stage": "Weed stage",
      "crop_stage_window": "Crop stage",
      "resistance": "Resistance",
      "adjuvant": "Adjuvant",
      "recropping": "Recropping",
      "phi_grazing": "Pre-harvest interval",
      "tank_mix": "Tank mix",
      "product_currency": "Product current",
      "farming_system": "Farming system",
      "region_registration": "Region",
      "soil_carryover": "Soil carryover",
      "crop_safety": "Crop safety",
      "coverage_grade": "Coverage",
      "mixing_compatibility": "Mixing"
    },
    "suggestions": {
      "intro": "Changes the engine proposes from this run. Each is a planning prompt, not a recommendation: try it as a variant to compare before you commit.",
      "none": "No suggestions for this plan.",
      "offWithoutData": "Suggestions are off while this province's data is missing or under review.",
      "blockedStale": "Simulate again before applying a suggestion: the plan or its data changed since this run.",
      "blockedUnsaved": "Wait for your changes to save before applying a suggestion.",
      "asVariant": "Try as a variant",
      "here": "Apply to this plan",
      "asVariantFor": "Try “{{title}}” as a variant",
      "hereFor": "Apply “{{title}}” to this plan",
      "applying": "Applying…",
      "appliedHere": "Suggestion applied to this plan. Simulate again to see its effect.",
      "conflict": "This run no longer describes the plan. Simulate again, then apply.",
      "failed": "The suggestion could not be applied: {{message}}",
      "answers": "Answers: {{findings}}",
      "cost": {
        "saves": "Saves {{amount}} per acre",
        "adds": "Adds {{amount}} per acre",
        "changes": "Changes cost by {{amount}} per acre"
      },
      "change": {
        "replace": "Replace {{from}} with {{to}} ({{pass}})",
        "rate": "Set {{product}} to {{rate}} ({{pass}})",
        "swap": "Swap {{first}} and {{second}}"
      }
    },
    "compare": {
      "title": "Compare scenarios",
      "pickTwo": "Pick two to four scenarios to compare.",
      "error": "The comparison could not be loaded: {{message}}",
      "kpis": "At a glance",
      "marginByYear": "Margin per acre by year",
      "groupsByYear": "Herbicide groups by year",
      "findings": "Findings",
      "finding": "Finding",
      "absent": "Not found",
      "notSimulated": "Not simulated",
      "select": "Compare {{name}}",
      "go_one": "Compare ({{count}})",
      "go_other": "Compare ({{count}})",
      "withOriginal": "Compare with the original",
      "rows": {
        "state": "Results",
        "cost": "Cost per acre",
        "revenue": "Revenue per acre",
        "margin": "Margin per acre",
        "totalMargin": "Margin for the field",
        "findings": "Findings",
        "suggestions": "Suggestions"
      }
    },
    "prices": {
      "title": "Price book",
      "intro": "Shared with everyone in your organization. Farm Lab costs passes and values crops with these prices; a plan that uses a changed price shows its results as out of date.",
      "province": "Province",
      "plan": "Plan",
      "kind": "Kind",
      "kinds": {
        "product": "Products",
        "active": "Active ingredients",
        "seed": "Seed",
        "fertilizer": "Fertilizer",
        "crop": "Crop prices",
        "operation": "Application costs"
      },
      "itemFor": {
        "product": "Product",
        "active": "Active ingredient",
        "seed": "Seed",
        "fertilizer": "Fertilizer",
        "crop": "Crop",
        "operation": "Pass type"
      },
      "min": "Price (low)",
      "max": "Price (high, optional)",
      "unit": "Unit",
      "per": "per {{unit}}",
      "perUnit": "{{price}} per {{unit}}",
      "validFrom": "Valid from",
      "source": "Source",
      "price": "Price",
      "actions": "Actions",
      "sources": {
        "manual": "Entered",
        "chat_card": "From a chat",
        "quote": "From a chat quote"
      },
      "maxBelowMin": "The high price can't be below the low price.",
      "cropHelp": "Price the crop in the same unit as its expected yield (bu for bu/ac, t for t/ha, lb for lb/ac).",
      "operationHelp": "What one pass of this type costs per acre, used when a pass has no application cost of its own.",
      "add": "Add price",
      "save": "Save",
      "addTitle": "Add a price",
      "bookTitle": "Prices for {{jurisdiction}}",
      "empty": "No prices yet for this province.",
      "loadError": "The price book could not be loaded.",
      "duplicate": "There is already a price for this item, unit and currency. Edit that one instead.",
      "failed": "The price could not be saved: {{message}}",
      "remove": "Remove",
      "confirmRemove": "Remove price",
      "editFor": "Edit {{name}}",
      "removeFor": "Remove {{name}}",
      "fromChats": "Fill from my chats",
      "fromChatsHelp": "Looks through your precision chats for prices already quoted for this plan's products. Nothing is saved until you accept it.",
      "fill": "Find prices in my chats",
      "looking": "Looking…",
      "noProposals": "No quoted prices found for this plan's products.",
      "seeChat": "See the chat",
      "accept": "Accept",
      "dismiss": "Dismiss",
      "acceptFor": "Accept the price for {{name}}",
      "dismissFor": "Dismiss the price for {{name}}"
    }
  }
}
