[index]
title = "AOBA"
com_ports = "COM Ports"
details = "Details"
home = "Home"
no_com_ports = "No COM ports detected"

port_state_free = "Free"
port_state_owned = "Own"
port_state_other = "Used"
port_occupied_error = "Cannot configure port: Port is occupied by another program. Please close the program using this port first"
refresh_action = "Refresh"
manual_specify_label = "Manual specify device"
about_label = "About"
port_suffix = "Port"
virtual_port_prefix = "Virtual"
new_action = "New"
delete_action = "Delete"
port_creation_new_label = "New"
port_creation_ipc_pipe = "IPC Pipe"
port_creation_http_server = "HTTP Server"
press_enter_confirm = "Confirm"
press_esc_cancel_action = "Cancel"
hint_press_n_new_port = "Press n to create new port"
hint_press_d_delete_port = "Press d to delete port"
hint_press_a_about = "Press a to view about"
config_path_label = "Config File:"
config_temporary_mode = "Temporary Mode"
scan_last_header = "Last Scan:"
scan_none = "No scan yet"
scan_truncated_suffix = "more lines truncated"
invalid_port_selection = "Invalid port selection"
entry_page_required = "Entry page required"
error_loading_content = "Error loading content"
err_modbus_config_empty = "Cannot enable port: Please configure at least one station first"

[about]
version = "Version"
authors = "Authors"
repository = "Repository"
license = "License"
dependencies = "Dependencies"
dependencies_license_list = "Dependencies (license list)"
welcome = "Thanks for using this tool — a compact and full-featured serial terminal; this is an open-source project available for anyone to use."

[hotkeys]
hint_kv_template = "Press {key} to {label}"
press_c_clear = "clear logs"
press_x_clear_error = "Press x to dismiss the error warning"
press_c_confirm = "Press c again to confirm clearing logs"
press_enter_toggle = "Press Enter to select/enable port"
press_enter_select = "Press Enter to select"
press_enter_enable = "Press Enter to enable port"
press_enter_release = "Press Enter to release port"
press_enter_unavailable = "Press Enter — port unavailable"
press_enter_refresh = "Press Enter to refresh"
press_enter_manual_specify = "Press Enter to manually specify device"
press_enter_modify = "Press Enter to modify"
press_enter_submit = "Press Enter to submit"
press_esc_cancel = "Press Esc to cancel"
press_esc_save_and_return = "Press Esc to save and return"
press_ctrl_esc_return_no_save = "Press Ctrl+Esc to return without saving"
press_ctrl_s_save_config = "Press Ctrl+S to save config"
press_esc_return = "Press Esc to return"
press_ctrl_esc_discard_return = "Press Ctrl+Esc to discard changes and return"
press_q_quit = "Press q to quit"
hint_enter_subpage = "Press Enter to enter subpage"
hint_back_list = "Press Esc to return to port list"
hint_back_list_save = "Press Esc to save and return to port list"
hint_switch_tab = "Press Tab to switch modes"
hint_move_vertical = "Press ↑ / k or ↓ / j to move"
hint_move_horizontal = "Press ← / h or → / l to move"
hint_move_with_panels = "Press Tab to switch focus; press ↑ / k or ↓ / j to move"
hint_switch_options = "Press ← / h or → / l to switch options"
hint_master_enter_edit = "Press Enter to edit"
hint_master_editing = "Editing"
hint_master_edit_hex = "Enter HEX digits"
hint_hex_input_mode = "Current HEX input mode"
hint_hex_enter_save = "Press Enter to save"
hint_hex_esc_exit = "Press Esc to save and exit editing (Ctrl+Esc: discard)"
hint_master_edit_move = "↑ / k or ↓ / j move"
hint_master_edit_backspace = "Backspace delete"
hint_master_edit_exit = "Esc save and exit"
hint_esc_return_home = "Press Esc to save and return home (Ctrl+Esc: discard)"
hint_master_delete = "Press d to delete master"
hint_master_field_select = "Press Enter to edit item"
hint_master_field_move = "Use arrow keys to move between items"
hint_master_field_exit_select = "Press Esc to cancel selection"
hint_master_field_apply = "Press Enter to apply changes"
hint_master_field_cancel_edit = "Press Esc to exit editing"
hint_master_type_switch = "Use ← / j or → / k to switch register type"
hint_reset_req_counter = "Press Enter to reset counter"

[tabs]
tab_config = "Config"
tab_log = "Log"
log_dir_send = "Send"
log_dir_recv = "Recv"

[tabs.log]
hint_follow_on = "follow latest logs"
hint_follow_off = "stop following logs"
lifecycle_label = "Lifecycle"
lifecycle_started = "CLI subprocess started"
lifecycle_shutdown = "CLI subprocess stopped"
lifecycle_restarted = "CLI subprocess restarted"
lifecycle_failed = "CLI subprocess failed"
reason_label = "Reason"
comm_send = "Send"
comm_receive = "Receive"
comm_direction_label = "Direction"
comm_role_label = "Role"
comm_error_label = "Parse"
comm_station_label = "Station"
comm_register_label = "Registers"
comm_count_label = "Count"
comm_unknown = "Unknown"
comm_range_label = "Range"
comm_master_response = "Master response"
comm_slave_request = "Slave request"
comm_station_id_label = "Station ID"
comm_register_type_label = "Register Type"
comm_address_range_label = "Address Range"
comm_error_frame_short = "Frame too short"
comm_error_unsupported_func = "Unsupported function code"
error_prefix = "ERROR"
management_label = "Management"
stations_update_summary = "Stations update"
stations_update_failed_summary = "Stations update failed"
stations_count_label = "Stations"
result_success = "Success"
result_failure = "Failure"
result_label = "Result"
state_lock_request_summary = "State lock request"
state_lock_requester_label = "Requester"
state_lock_ack_summary = "State lock acknowledgement"
state_lock_locked = "Locked"
state_lock_unlocked = "Unlocked"
status_summary = "Status"
status_label = "Status"
status_details_label = "Details"
cli_log_summary = "CLI log message"
log_level_label = "Level"
log_message_label = "Message"
subprocess_spawned_summary = "CLI subprocess started"
subprocess_stopped_summary = "CLI subprocess stopped"
subprocess_exited_summary = "CLI subprocess exited"
subprocess_mode_label = "Mode"
subprocess_pid_label = "PID"
subprocess_exit_label = "Exit"
subprocess_stopped_reason_tui = "Stopped by TUI management"
subprocess_exit_success = "Exited successfully"
subprocess_exit_code_label = "Exit code"
subprocess_exit_signal = "Terminated by signal"
runtime_restart_summary = "CLI subprocess restarted"
runtime_restart_mode_label = "Port mode"
runtime_restart_reason_connection_mode_change = "Port mode changed to"
runtime_restart_reason_data_source_change = "Master data source changed to"
runtime_restart_reason_station_mode_change = "Station register mode changed to"
cli_mode_slave_poll = "Slave Poll"
cli_mode_slave_listen = "Slave Listen"
cli_mode_master_provide = "Master Provide"
reason_none = "No additional details"

[input]
input_label = "Input"
hint_input_edit = "Press i to edit, Enter to submit, Esc to cancel"
hint_input_mode = "Press m to switch input mode (ASCII / HEX)"
input_editing_hint = "Editing input - type payload here"
input_mode_ascii = "ASCII character input"
input_mode_hex = "HEX numeric input"
input_mode_current = "Current input mode is"
hint_input_edit_short = "edit"
hint_input_mode_short = "switch input mode"

[protocol.common]
serial_unknown = "Unknown"
label_port = "Port"
label_type = "Type"
label_status = "Status"
label_mode = "Mode"
label_baud = "Baud rate"
label_data_bits = "Data bits"
label_parity = "Parity"
label_stop_bits = "Stop bits"
label_request_interval = "Request interval"
label_timeout = "Timeout"
label_guid = "GUID"
label_usb = "USB"
label_mapping_code = "Mapping code"
mapping_none = "(no mapping)"
label_serial = "Serial"
label_manufacturer = "Mfr"
label_product = "Product"
custom = "Custom"
parity_none = "No parity"
parity_even = "Even parity"
parity_odd = "Odd parity"
toggle_too_fast = "Toggle too fast; please wait a moment"
enable_port = "Enable Port"
protocol_selection = "Protocol"
protocol_mode = "Protocol Mode"
configure_protocol = "Configure"
enter_modbus_config = "Enter Modbus Configuration"
enter_mqtt_config = "Enter MQTT Configuration"
enter_business_config = "Enter Business Configuration"
enter_log_page = "Enter Log Page"
log_monitoring = "Log Monitoring"
port_enabled = "Enabled"
port_disabled = "Disabled"
mode_modbus = "ModBus RTU"
mode_mqtt = "MQTT"
mode_tcp = "TCP"
mode_overlay_title = "Mode Select"
mode_overlay_hint = "Up/Down: Move  Enter: Confirm  Esc: Cancel  m: Toggle"

# Port status indicator messages (for title bar)
status_not_started = "Not Started"
status_starting = "Starting"
status_running = "Running"
status_restarting = "Restarting"
status_saving = "Saving"
status_syncing = "Syncing"
status_applied_success = "Applied"
status_startup_failed = "Failed to create port"

[protocol.modbus]
edit_suffix = "[Edit: {}]"
registers_list = "Registers:"
label_master_list = "Simulated Master list"
label_slave_listen = "Slave listen"
label_modbus_settings = "ModBus Master/Slave Settings"
invalid_baud_range = "Invalid baud: must be between 1200 and 2000000"
new_master = "New master"
new_slave = "New slave"
new_entry = "New entry"
label_address_range = "Address Range"
reg_type_coils = "Coils(01)"
reg_type_discrete_inputs = "Discrete Inputs(02)"
reg_type_holding = "Holding Registers(03)"
reg_type_input = "Input Registers(04)"
reg_type_name_coils = "Coils"
reg_type_name_discrete_inputs = "Discrete Inputs"
reg_type_name_holding = "Holding Registers"
reg_type_name_input = "Input Registers"
label_req_counter = "Req Count"
refresh_rate = "Refresh Rate"
global_interval = "Global Interval"
global_timeout = "Global Timeout"
value_true = "True"
value_false = "False"
role_master = "Master"
role_slave = "Slave"
log_sent_frame = "Sent frame"
log_recv_match = "Recv match"
log_recv_unmatched = "Recv unmatched"
log_reconfigured = "Reconfigured"
log_req_timeout = "Request timeout"
log_unparsed_master = "Unparsed master request"
label_working = "Working"
status_running = "Running"
status_paused = "Paused"
hint_enter_toggle_work = "Press Enter to start/stop"
hint_enter_start_work = "Press Enter to start"
hint_enter_pause_work = "Press Enter to pause"
label_master_passive = "Listen for external requests"
status_master_passive = "Passive, listen-only"
status_master_active = "Active, polling"
label_default_marker = "default"
add_master_slave = "Create Station"
connection_mode = "Connection Mode"
station_id = "Station ID"
register_mode = "Register Type"
register_start_address = "Start Address"
register_length = "Register Length"
data_source = "Data Source"
data_source_port = "Data Source Port"
data_source_path = "Data Source Path"
data_source_address = "Data Source Address"
data_source_manual = "Manual Debug"
data_source_mqtt = "MQTT Server"
data_source_http = "HTTP Receive Port"
data_source_ipc = "IPC Pipe"
data_source_port_forwarding = "Port Forwarding"
data_source_source_port = "Source Port"
data_source_placeholder_mqtt = "mqtt://localhost:1883/topic"
data_source_placeholder_http = "8080"
data_source_placeholder_ipc_unix = "/tmp/modbus_ipc"
data_source_placeholder_ipc_windows = "\\\\.\\pipe\\modbus_ipc"
data_source_placeholder_port_forwarding = "Select port..."
data_source_port_forwarding_hint = "No other ports available"
err_invalid_url = "Cannot parse: {}"
err_file_not_found = "File not found: {}"

[protocol.mqtt]
panel_placeholder = "MQTT mode placeholder panel (not implemented yet)"
panel_not_current = "(Current mode is not MQTT)"
