{
  "app_title": "Palm Oil Ripeness AI",
  "total_scans": "Total Scans",
  "analyze_gallery_title": "Analyze Gallery",
  "analyze_gallery_subtitle": "Detect ripeness from photos",
  "snap_analyze_title": "Snap & Analyze",
  "snap_analyze_subtitle": "Manual high-res capture",
  "live_inference_title": "Live Inference",
  "live_inference_subtitle": "Real-time \"Point-and-Scan\"",
  "history_vault_title": "History Vault",
  "history_vault_subtitle": "View previous detections",
  "theme_label": "Theme",
  "language_label": "Language",
  "settings_label": "Settings",
  "theme_light": "Light",
  "theme_dark": "Dark",
  "theme_system": "System",

  "confidence_label": "Confidence: {percent}%",
  "health_alert_abnormal": "HEALTH ALERT: Abnormal detected!",
  "ai_analyzing": "AI is Analyzing...",
  "retry_button": "Retry",
  "dismiss_button": "Dismiss",
  "error_details_label": "Error Details",
  "done_button": "Done",

  "analysis_appbar_title": "AI Analysis",
  "analysis_init_error": "Failed to initialize AI model: {error}",
  "analysis_select_photo_hint": "Select a photo to start AI analysis",
  "analysis_pick_button": "Pick Images from Gallery",
  "analysis_bunches_detected": "{count} bunches detected",
  "analysis_progress_of": "Analyzing image {current} of {total}",
  "analysis_progress_stats": "{processed} processed · {skipped} skipped",
  "analysis_optimizing_hint": "Optimizing detection parameters",
  "analysis_no_detections_batch": "No palm bunches detected in any selected image.",

  "camera_permission_denied": "Camera permission denied.",
  "no_cameras_found": "No cameras found.",
  "camera_init_error": "Camera init error: {error}",
  "static_appbar_title": "Capture & Analyze",
  "static_no_detections": "No palm bunches detected.",
  "static_capture_error": "Error during capture/analysis: {error}",
  "result_sheet_title": "Analysis Result",
  "label_ripeness": "Ripeness",
  "label_confidence": "Confidence",
  "health_alert_title": "HEALTH ALERT",
  "health_alert_message": "Abnormal features detected. Check palm health.",
  "yield_warning_title": "YIELD WARNING",
  "yield_warning_message": "Potential Yield Loss due to premature harvest.",
  "acknowledge_button": "Acknowledge",

  "live_no_detections_snackbar": "No palm bunches detected in final snap.",
  "live_state_cooldown": "COOLDOWN",
  "live_state_locking": "LOCKING",
  "live_state_searching": "SEARCHING...",
  "live_resuming_scan": "Resuming scan...",
  "live_hold_steady_hint": "Hold steady to lock target",

  "cancel_button": "Cancel",
  "delete_button": "Delete",
  "reset_button": "Reset",
  "clear_filters_button": "Clear Filters",

  "history_reset_title": "Reset History",
  "history_reset_message": "Are you sure you want to clear all analysis records? This action is irreversible.",
  "history_cleared_snackbar": "History cleared successfully.",
  "history_delete_record_confirm": "Delete this record? This action is irreversible.",
  "history_delete_batch_confirm": "Delete this batch of {count} scans? This action is irreversible.",
  "filter_sort_title": "Filter & Sort",
  "sort_order_label": "Sort Order",
  "sort_latest_first": "Latest First",
  "sort_oldest_first": "Oldest First",
  "date_range_label": "Date Range",
  "all_dates_label": "All Dates",
  "clear_date_range_tooltip": "Clear date range",
  "reset_history_tooltip": "Reset History",
  "view_toggle_flat_tooltip": "View All Scans",
  "view_toggle_batches_tooltip": "View by Batch",
  "history_empty_no_records": "No records found yet.",
  "history_empty_no_matches": "No records match the selected filters.",
  "ungrouped_scans_label": "Ungrouped Scans",
  "batch_scans_label": "Batch • {count} scans",
  "majority_label": "Majority: {className}\n{timeRange}",
  "record_conf_timestamp": "Conf: {percent}% | {timestamp}",

  "class_Ripe": "Ripe",
  "class_Unripe": "Unripe",
  "class_Underripe": "Underripe",
  "class_Overripe": "Overripe",
  "class_Abnormal": "Abnormal",
  "class_Empty_Bunch": "Empty Bunch",

  "na_label": "N/A",
  "saving_label": "Saving...",
  "ai_result_label": "AI Result",
  "added_suffix": " • Added",

  "batch_report_title": "Batch Report",
  "batch_no_records": "No records found for this batch.",
  "kpi_frames": "Frames",
  "kpi_total_detections": "Total Detections",
  "kpi_avg_confidence": "Avg Confidence",
  "kpi_avg_inference": "Avg Inference",
  "kpi_start": "Start",
  "kpi_end": "End",
  "mpob_class_distribution_title": "MPOB Class Distribution",
  "batch_corrected_label": "Corrected",
  "no_detections_in_batch": "No detections in this batch.",
  "frames_corrected_pill": "{count} of {total} frames corrected",
  "frames_section_title": "Frames ({count})",

  "frame_of_title": "Frame {current} of {total}",
  "record_details_title": "Record Details",
  "your_correction_label": "Your Correction",
  "tap_to_correct_hint": "Tap a bunch on the photo to correct its grade.",
  "last_corrected_label": "Last corrected: {timestamp}",
  "add_missed_bunch_button": "Add Missed Bunch",
  "correction_reset_snackbar": "Correction reset.",
  "label_file_name": "File Name",
  "label_primary_grade": "Primary Grade",
  "label_inference_time": "Inference Time",
  "label_timestamp": "Timestamp",
  "frame_summary_title": "Frame Summary",
  "analytical_breakdown_title": "Analytical Breakdown",
  "corrected_breakdown_title": "Corrected Breakdown (tap a bunch above to edit or remove)",
  "industrial_summary_text": "Industrial Summary: This image has been verified for harvest quality. All detected bunches are categorized according to ripeness standards.",

  "correct_grade_title": "Correct Grade",
  "remove_detection_button": "Remove this detection",

  "undo_tooltip": "Undo",
  "redo_tooltip": "Redo",
  "hide_reference_tooltip": "Hide AI reference boxes",
  "show_reference_tooltip": "Show AI reference boxes",
  "editor_instruction_text": "Tap anywhere a bunch was missed to place a box, then grade it and drag to fit. Existing detections are dimmed for reference.",
  "pick_grade_placeholder": "Pick grade",
  "editor_tap_to_add_hint": "Tap the photo to add a bunch",
  "editor_bunches_added_singular": "{count} bunch added",
  "editor_bunches_added_plural": "{count} bunches added",

  "manual_title": "User Manual",

  "manual_gallery_title": "Analyze Gallery",
  "manual_gallery_body": "Pick one or more photos from your gallery to analyze at once. Every photo you select is processed as a single batch — once all photos are done, you'll be taken straight to the Batch Report for that batch, showing every frame's results together.",

  "manual_snap_title": "Snap & Analyze",
  "manual_snap_body": "Take one photo at a time with the camera's manual shutter. As soon as the photo is analyzed, a result sheet shows the detected grade and confidence immediately — best for checking a single bunch carefully.",

  "manual_live_title": "Live Inference",
  "manual_live_body": "Point the camera at a bunch and hold steady — the app automatically locks on and captures once it's confident, showing the result right away. This is a quick verification tool only: results are not saved to History Vault. If you want to keep a record, use Snap & Analyze instead.",

  "manual_history_title": "History Vault",
  "manual_history_body": "Browse every past scan, grouped by batch. Filter by date range, sort latest or oldest first, and swipe left on any entry to delete it. Tap a batch to open its Batch Report, or a single scan to open its Record Details.",

  "manual_correction_title": "Correcting AI Results",
  "manual_correction_body": "On any photo's detail screen, tap a detected bunch to change its grade or remove it if the AI was wrong — this never edits the AI's original result, it only adds your correction on top, which you can always undo with Reset. If the AI missed a bunch entirely, use \"Add Missed Bunch\" to place, grade, and size a new box for it. Once you've made any correction, the screen defaults to showing \"Your Correction\" instead of the AI's original result.",

  "manual_batch_title": "Batch Report",
  "manual_batch_body": "Shows a summary for an entire batch of scans: frame count, total detections, average confidence and inference time, and a class-distribution bar. If any photos in the batch have been corrected, a second \"Corrected\" distribution bar appears alongside the AI's own, so you can compare them directly.",

  "manual_classes_title": "MPOB Grading Classes",
  "manual_class_desc_Ripe": "Ready for harvest — the ideal grade, with the right balance of loose fruit and color for maximum oil yield.",
  "manual_class_desc_Unripe": "Too early to harvest — dark, unripe fruit with no loose fruit yet. Leave the bunch to mature further.",
  "manual_class_desc_Underripe": "Close to ready, but not quite there — fewer loose fruit than a fully ripe bunch. Consider waiting a few more days.",
  "manual_class_desc_Overripe": "Harvested later than ideal — oil quality starts to decline the longer it's left past this point.",
  "manual_class_desc_Abnormal": "Shows defects such as pest damage, disease, or poor pollination — flagged separately from normal ripeness grading.",
  "manual_class_desc_Empty_Bunch": "Most of the fruit has already detached from the bunch — little to no yield remains."
}
