{
  "chrome": {
    "language_label": "Language",
    "footer": "Runs locally. Your data never leaves this computer. | DataTools v3.0"
  },
  "home": {
    "page_title": "UNALOGIX DataTools",
    "title": "UNALOGIX DataTools",
    "caption": "Clean. Normalize. Transform.",
    "privacy_pill": "Runs 100% locally",
    "findings_badge_one": "{n} finding",
    "findings_badge_other": "{n} findings"
  },
  "status": {
    "ready": "Ready",
    "coming_soon": "Coming Soon"
  },
  "help": {
    "button_label": "Help",
    "missing_body": "No help written yet for this tool."
  },
  "upload": {
    "heading": "Import one or more files to start",
    "intro": "Optional: scan an imported file for data quality issues and see which tools can fix each one. Skip if you already know what you need.",
    "limits": "**Up to 1.5 GB.** Formats: CSV, TSV, XLSX, XLS. Delimiters auto-detected: comma, tab, semicolon, pipe. Encodings auto-detected: UTF-8 (with/without BOM), UTF-16, cp1252, Latin-1/9, cp1250, ISO-8859-2, cp1251, KOI8-R, Mac Roman, Shift_JIS, GB18030, Big5, EUC-KR — and override on the Review page.",
    "uploader_label": "Import CSV or Excel",
    "uploader_help": "Up to 1.5 GB. Comma / tab / semicolon / pipe delimiters all auto-detected. Encoding auto-detected with override on the Review page if needed.",
    "run_button": "Run analysis",
    "skip_button": "Skip",
    "scanning": "Scanning…",
    "skipped_notice": "Analysis skipped. Open any tool below to start working.",
    "using_session_file": "Using **{name}** from the import screen.",
    "use_different_file": "Use a different file",
    "switch_back": "Switch back to import-screen file",
    "pickup_caption": "Up to 1.5 GB. Delimiters auto-detected: comma, tab, semicolon, pipe. Encoding auto-detected (UTF-8 / UTF-16 / cp1252 / Latin-1 family / cp1250 / cp1251 / KOI8-R / Mac Roman / Shift_JIS / GB18030 / Big5 / EUC-KR), with override on the Review page.",
    "intro_multi": "Drop files below. Each one is analyzed locally — nothing leaves this computer.",
    "uploader_label_multi": "Import CSV, TSV, or Excel files",
    "clear_results": "Clear results",
    "empty_state": "Import one or more files to begin. Your data never leaves this computer."
  },
  "findings": {
    "header": "Detected issues",
    "none": "No issues detected. Open any tool below to start working.",
    "severity_summary_segment": "{icon} {n} {severity}",
    "tool_section_label": "{tool} — {n} finding(s)",
    "other_section_label": "Other / file-level — {n} finding(s)",
    "open_tool": "Open {tool} →",
    "untargeted_label": "Informational"
  },
  "gate": {
    "warning": "**{name}** must pass the CSV-normalization gate before you can use this tool. Open the Review page to apply the fixes our analyzer recommends.",
    "default_name": "the imported file",
    "open_review": "Go to Review & Normalize"
  },
  "quit": {
    "button": "Quit app",
    "shutting_down": "Shutting down… you can close this window.",
    "farewell_title": "DataTools has shut down",
    "farewell_subtitle": "You can close this window.",
    "close_window_button": "Close this window",
    "close_hint": "Browsers don't let JavaScript close a tab you opened yourself — and they don't let it send Ctrl+W or Alt+F4 either (those keystrokes are intercepted by the OS, not the page). Launch DataTools with `python -m src.gui` to get a Chrome/Edge --app window that DOES close cleanly. In the meantime, this tab will fall back to a blank page in a moment — close it manually with Ctrl+W (or ⌘W on Mac)."
  },
  "close_page": {
    "page_title": "DataTools — Close",
    "title": "Close DataTools",
    "caption": "Shut down the local app and free the terminal.",
    "body": "Clicking the button below will terminate the DataTools server. Any unsaved work in other tools will be lost. Once the app shuts down you can close this window.",
    "button": "Close the app"
  },
  "activation": {
    "page_title": "DataTools — Activate",
    "title": "Activate DataTools",
    "intro": "DataTools needs to be activated before any tools unlock. Enter the name and email tied to your purchase, then paste the license blob from your delivery email.",
    "name_label": "Full name",
    "name_help": "Must match the name on your purchase receipt.",
    "email_label": "Email",
    "email_help": "Must match the email on your purchase receipt.",
    "blob_label": "License blob",
    "blob_help": "Begins with `DTLIC1:` — paste the entire string.",
    "activate_button": "Activate",
    "renew_button": "Apply renewal",
    "or_separator": "— or —",
    "success": "Activated! Welcome, {name}. Your license is valid until {expires}.",
    "renewed": "License renewed. New expiry: {expires}.",
    "errors_heading": "Activation problem",
    "deactivate_button": "Deactivate this device",
    "deactivate_help": "Removes the local license file. You'll need to re-paste your blob to reactivate."
  },
  "license": {
    "status_active": "{tier} · {days} days left",
    "status_trial": "Trial · {days} days left",
    "status_expired": "Expired",
    "status_not_activated": "Not activated",
    "status_invalid": "License invalid",
    "renewal_warning_30": "⚠️ License expires in {days} days. Renew soon to avoid interruption.",
    "renewal_warning_expired": "🛑 License expired on {date}. Renew to continue using DataTools.",
    "tier_trial": "Trial",
    "tier_lite": "Lite",
    "tier_core": "Core",
    "tier_pro": "Pro",
    "tier_enterprise": "Enterprise",
    "registered_to": "Registered to {name} · {email}",
    "expires_on": "Expires on {date}",
    "issued_on": "Issued on {date}",
    "view_details": "License details",
    "feature_locked_title": "🔒 This tool isn't on your {tier} license",
    "feature_locked_body": "Your current license unlocks: {features}. Upgrade to access this tool.",
    "upgrade_link": "Manage license",
    "status_locked": "Locked"
  },
  "tools": {
    "01_deduplicator": {
      "name": "Find Duplicates",
      "description": "Find rows that repeat — exact and similar — and remove the extras.",
      "page_title": "Find Duplicates",
      "page_caption": "Find rows that repeat, then keep one and remove the extras.",
      "help_md": "**When to use**\n- Customer or contact lists\n- Mailing lists from multiple sources\n- Product catalogs that may overlap\n\n**Steps**\n1. Upload your file\n2. Pick the column(s) that identify a row (email, phone, name+zip)\n3. Choose **Exact** or **Similar** matching\n4. Pick which row to keep (newest, longest, first)\n5. Preview, then export\n\n**Examples**\n- `John Smith` + `JOHN SMITH` → same person\n- `jane@co.com` + `jane@co.com ` → same email (trailing space)\n- `555-1234` + `(555) 1234` → same phone\n\n**Tip** Start with Exact; add Similar if you suspect typos."
    },
    "02_text_cleaner": {
      "name": "Clean Text",
      "description": "Trim extra spaces and strip out odd characters that copy-paste leaves behind.",
      "page_title": "Clean Text",
      "page_caption": "Trim extra spaces and strip out odd characters.",
      "help_md": "**When to use**\n- Text copied from web pages, PDFs, or older systems\n- Files with inconsistent spacing\n- Data with hidden or special characters\n\n**Steps**\n1. Upload your file\n2. Pick the text columns to clean\n3. Choose options: trim spaces, remove invisible characters, normalize quotes\n4. Preview the changes\n5. Export\n\n**Examples**\n- `  hello  world  ` → `hello world`\n- `“smart quotes”` → `\"normal quotes\"`\n- `data​with​hidden` → `datawithhidden`\n\n**Tip** Always preview — text changes can affect later steps like duplicate detection."
    },
    "03_format_standardizer": {
      "name": "Standardize Formats",
      "description": "Make dates, phone numbers, currency, names, and addresses look the same throughout.",
      "page_title": "Standardize Formats",
      "page_caption": "Make dates, phones, currency, and names look the same throughout.",
      "help_md": "**When to use**\n- Data from multiple sources that wrote dates/phones differently\n- Before sending to a system that wants one format\n- Preparing data for analysis or charts\n\n**Steps**\n1. Upload your file\n2. Pick a column (date, phone, currency, etc.)\n3. Choose the target format\n4. Preview\n5. Repeat for other columns, then export\n\n**Examples**\n- `Jan 5, 2025` / `01/05/2025` / `5-Jan-25` → `2025-01-05`\n- `(555) 123-4567` / `555.123.4567` → `+1 555-123-4567`\n- `$1,234.50` / `1234.5 USD` → `1234.50`\n\n**Tip** Run on several columns in one session — each column remembers its chosen format."
    },
    "04_missing_handler": {
      "name": "Fix Missing Values",
      "description": "Find blank cells (even ones written as 'N/A' or '?') and fill them in or remove them.",
      "page_title": "Fix Missing Values",
      "page_caption": "Find blank cells (even hidden ones) and fill them in or remove them.",
      "help_md": "**When to use**\n- Spreadsheets with gaps\n- Files where someone typed `N/A` or `-` instead of leaving a cell blank\n- Before importing into a system that rejects blanks\n\n**Steps**\n1. Upload your file\n2. Review which columns have blanks\n3. Pick a strategy per column: **fill**, **drop the row**, or **leave alone**\n4. For numbers, pick a fill value: average, median, zero, or your own\n5. Preview, then export\n\n**Examples**\n- `N/A`, `-`, ` ` → treated as blank\n- Blank salary → filled with the column average\n- Row with no email → dropped\n\n**Tip** Don't fill the row's identifier (email, ID) — drop the row instead."
    },
    "05_column_mapper": {
      "name": "Map Columns",
      "description": "Rename columns, change their order, and set each one as text, number, or date.",
      "page_title": "Map Columns",
      "page_caption": "Rename columns, change their order, and set each one as text, number, or date.",
      "help_md": "**When to use**\n- Combining files from vendors with different column names\n- Forcing the layout your system expects\n- Cleaning up exports with extra or weirdly-named columns\n\n**Steps**\n1. Upload your file\n2. Match each incoming column to your standard name\n3. Set each column's type: text, number, or date\n4. Reorder or drop columns\n5. Export with the new layout\n\n**Examples**\n- `cust_email` → `Customer Email`\n- `amt` → `Amount` (set as number)\n- `notes_internal` → drop\n\n**Tip** Save the mapping if you'll get the same file format again next month."
    },
    "06_outlier_detector": {
      "name": "Find Unusual Values",
      "description": "Spot values that look wrong — way too high, way too low, or breaking your rules.",
      "page_title": "Find Unusual Values",
      "page_caption": "Spot values that look wrong — way too high, too low, or breaking your rules.",
      "help_md": "**When to use**\n- Spotting typos, fraud, or bad imports in numeric data\n- Cleaning sensor or transaction data\n- Before reporting numbers to leadership\n\n**Steps**\n1. Upload your file\n2. Pick the numeric column to check\n3. Set a normal range (or use auto-detect)\n4. Review the flagged rows\n5. Choose: keep, remove, or cap to the limit\n\n**Examples**\n- Salary column with one row at `$9,999,999` → flagged\n- Age column with `250` → flagged\n- Rule: `price must be > 0` → flags negatives\n\n**Tip** Review flagged rows by hand — a real outlier is sometimes the most important data point."
    },
    "07_multi_file_merger": {
      "name": "Combine Files",
      "description": "Combine several CSV or Excel files into one — even if their columns don't match.",
      "page_title": "Combine Files",
      "page_caption": "Combine several CSV or Excel files into one — even if columns differ.",
      "help_md": "**When to use**\n- Monthly reports across the year\n- Exports from different stores or branches\n- Multi-system data that needs to be in one file\n\n**Steps**\n1. Upload two or more files\n2. Confirm column matches (auto-detected; override if needed)\n3. Pick how to handle missing columns (skip, blank, default value)\n4. Preview the combined result\n5. Export the single file\n\n**Examples**\n- `January.csv` + `February.csv` → `2025.csv`\n- `NY-store.xlsx` + `LA-store.xlsx` → `all-stores.csv`\n- File A has `Email`, file B has `email_addr` → matched automatically\n\n**Tip** Add a `source` column so you can tell which file each row came from."
    },
    "08_validator_reporter": {
      "name": "Quality Check",
      "description": "Check your file against rules you set, and export a PDF or Excel report.",
      "page_title": "Quality Check",
      "page_caption": "Check your file against rules and export a PDF or Excel report.",
      "help_md": "**When to use**\n- Before handing data off to a client or partner\n- Before a strict system import\n- Routine quality audits\n\n**Steps**\n1. Upload your file\n2. Pick the rules to check (required columns, valid emails, no duplicates)\n3. Run the check\n4. Review the score and findings\n5. Export the report as PDF or Excel\n\n**Examples**\n- Rule: `email column must look like an email` → 12 rows fail\n- Rule: `amount must be > 0` → 3 rows fail\n- Rule: `no duplicate customer IDs` → 5 duplicates found\n\n**Tip** Run this last in your cleanup, then keep the PDF as proof of quality."
    },
    "09_pipeline_runner": {
      "name": "Automated Workflows",
      "description": "Run several tools in a row — save the steps once, reuse them anytime.",
      "page_title": "Automated Workflows",
      "page_caption": "Run several tools in a row — save the steps and reuse them anytime.",
      "help_md": "**When to use**\n- A cleanup you do every week or month\n- Multi-step processes you keep repeating\n- Onboarding teammates to your data routine\n\n**Steps**\n1. Pick the tools you want to run, in order\n2. Configure each step\n3. Save the workflow as a JSON file\n4. Next time, load the workflow and upload a fresh file\n5. Get the cleaned output in one click\n\n**Examples**\n- `Clean Text` → `Standardize Formats` → `Find Duplicates` → export\n- Saved as `weekly-customer-cleanup.json`\n- Shared with a teammate so they get the same result\n\n**Tip** Start with two or three tools. You can always edit and add more later."
    },
    "10_pdf_extractor": {
      "name": "PDF to CSV",
      "description": "Pull transactions out of bank-statement PDFs into a clean CSV file.",
      "page_title": "PDF to CSV",
      "page_caption": "Pull transactions out of bank-statement PDFs into a clean CSV file.",
      "help_md": "**When to use**\n- Bank or credit-card statements\n- Vendor invoices with line-item tables\n- Any PDF with a transaction table\n\n**Steps**\n1. Upload one or more PDFs (batch is fine)\n2. Click **Scan** — rows that look like transactions are pulled out automatically\n3. Uncheck any rows you don't want\n4. Pick your date format (and turn on OCR if the PDF is a scanned image)\n5. Download the CSV\n\n**Examples**\n- Chase March statement → 87 transactions found\n- Drop in 12 months at once and get one combined CSV\n- Image-only scan + OCR → still works if Tesseract is installed\n\n**Tip** If a withdrawal shows as `(4.50)`, leave **Treat (4.50) as negative** on. Turn it off only if your statements use a different convention."
    },
    "11_reconciler": {
      "name": "Reconcile Two Files",
      "description": "Compare two lists of transactions (e.g. bank vs. ledger) and flag what doesn't match.",
      "page_title": "Reconcile Two Files",
      "page_caption": "Compare two lists of transactions (e.g. bank vs. ledger) and flag what doesn't match.",
      "help_md": "**When to use**\n- Matching your bank statement to your books\n- Vendor invoices vs. payments sent\n- Inventory receipts vs. orders placed\n\n**Steps**\n1. Upload both files (e.g. bank export + accounting export)\n2. Pick the columns to match on (date, amount, reference)\n3. Set tolerances (e.g. date ±2 days, amount exact)\n4. Review four buckets: **matched**, **only in left**, **only in right**, **needs review**\n5. Export the results\n\n**Examples**\n- Bank `2025-03-15 $99.50` ↔ Books `2025-03-16 $99.50` → matched\n- Bank charge with no books entry → only in left\n- Same amount on the same day twice → flagged for review\n\n**Tip** Tighten the date tolerance once you trust the match — fewer ambiguous cases to review."
    }
  },
  "nav": {
    "section_review": "Data Review",
    "section_analysis": "Analysis",
    "section_cleaners": "Data Cleaners",
    "section_transformations": "Transformations",
    "section_automations": "Automations",
    "section_finance": "Finance",
    "section_coming_soon": "Coming soon",
    "review_page_title": "Review",
    "home_page_title": "Home",
    "file_analysis_title": "File Analysis",
    "start_here_title": "Start here",
    "section_account": "Account",
    "activate_title": "Activate",
    "close_title": "Close",
    "section_close": "Close",
    "back_to_home": "← Back to Home"
  },
  "footer": {
    "close": "Close",
    "help": "Help",
    "help_title": "DataTools",
    "help_version": "Version {version}",
    "help_support": "Support: {email}",
    "help_license_label": "License",
    "help_license_inactive": "Not activated",
    "help_license_active": "{name}",
    "help_license_expires": "Expires {date} ({days} days)",
    "help_activate_link": "Activate now →",
    "help_manage_link": "Manage license →",
    "help_logs_label": "Log file",
    "help_logs_link": "View all logs →",
    "help_dismiss": "Close"
  }
}
