| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- {
- "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",
- "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."
- }
|