654 lines
31 KiB
JSON
654 lines
31 KiB
JSON
{
|
|
"app": {
|
|
"name": "Reticulum MeshChatX",
|
|
"sync_messages": "Sync Messages",
|
|
"compose": "Compose",
|
|
"messages": "Messages",
|
|
"nomad_network": "Nomad Network",
|
|
"map": "Map",
|
|
"archives": "Archives",
|
|
"propagation_nodes": "Propagation Nodes",
|
|
"network_visualiser": "Network Visualiser",
|
|
"interfaces": "Interfaces",
|
|
"tools": "Tools",
|
|
"settings": "Settings",
|
|
"identities": "Identities",
|
|
"about": "About",
|
|
"my_identity": "My Identity",
|
|
"identity_hash": "Identity Hash",
|
|
"lxmf_address": "LXMF Address",
|
|
"announce": "Announce",
|
|
"announce_now": "Announce Now",
|
|
"last_announced": "Last announced: {time}",
|
|
"last_announced_never": "Last announced: Never",
|
|
"display_name_placeholder": "Display Name",
|
|
"profile": "Profile",
|
|
"manage_identity": "Manage your identity, transport participation and LXMF defaults.",
|
|
"theme": "Theme",
|
|
"theme_mode": "{mode} mode",
|
|
"transport": "Transport",
|
|
"enabled": "Enabled",
|
|
"disabled": "Disabled",
|
|
"propagation": "Propagation",
|
|
"local_node_running": "Local node running",
|
|
"client_only": "Client-only",
|
|
"copy": "Copy",
|
|
"appearance": "Appearance",
|
|
"appearance_description": "Switch between light and dark presets anytime.",
|
|
"light_theme": "Light Theme",
|
|
"dark_theme": "Dark Theme",
|
|
"live_preview": "Live preview updates instantly.",
|
|
"realtime": "Realtime",
|
|
"transport_mode": "Transport Mode",
|
|
"transport_description": "Relay paths and traffic for nearby peers.",
|
|
"enable_transport_mode": "Enable Transport Mode",
|
|
"transport_toggle_description": "Route announces, respond to path requests and help your mesh stay online.",
|
|
"requires_restart": "Requires restart after toggling.",
|
|
"show_community_interfaces": "Show Community Interfaces",
|
|
"community_interfaces_description": "Surface community-maintained presets while adding new interfaces.",
|
|
"reliability": "Reliability",
|
|
"messages_description": "Configure how MeshChat handles message delivery failures. Control automatic retry behavior, attachment retransmission, and fallback mechanisms to ensure reliable message delivery across the mesh network.",
|
|
"auto_resend_title": "Auto resend when peer announces",
|
|
"auto_resend_description": "Failed messages automatically retry once the destination broadcasts again.",
|
|
"retry_attachments_title": "Allow retries with attachments",
|
|
"retry_attachments_description": "Large payloads will also be retried (useful when both peers have high limits).",
|
|
"auto_fallback_title": "Auto fall back to propagation node",
|
|
"auto_fallback_description": "Failed direct deliveries are queued on your preferred propagation node.",
|
|
"inbound_stamp_cost": "Inbound Message Stamp Cost",
|
|
"inbound_stamp_description": "Require proof-of-work stamps for direct delivery messages sent to you. Higher values require more computational work from senders. Range: 1-254. Default: 8.",
|
|
"browse_nodes": "Browse Nodes",
|
|
"propagation_nodes_description": "Keep conversations flowing even when peers are offline.",
|
|
"nodes_info_1": "Propagation nodes hold messages securely until recipients sync again.",
|
|
"nodes_info_2": "Nodes peer with each other to distribute encrypted payloads.",
|
|
"nodes_info_3": "Most nodes retain data ~30 days, then discard undelivered items.",
|
|
"run_local_node": "Run a local propagation node",
|
|
"run_local_node_description": "MeshChat will announce and maintain a node using this local destination hash.",
|
|
"preferred_propagation_node": "Preferred Propagation Node",
|
|
"preferred_node_placeholder": "Destination hash, e.g. a39610c89d18bb48c73e429582423c24",
|
|
"fallback_node_description": "Messages fallback to this node whenever direct delivery fails.",
|
|
"auto_sync_interval": "Auto Sync Interval",
|
|
"last_synced": "Last synced {time} ago.",
|
|
"last_synced_never": "Last synced: never.",
|
|
"propagation_stamp_cost": "Propagation Node Stamp Cost",
|
|
"propagation_stamp_description": "Require proof-of-work stamps for messages propagated through your node. Higher values require more computational work. Range: 13-254. Default: 16. **Note:** Changing this requires restarting the app.",
|
|
"language": "Language",
|
|
"select_language": "Select your preferred language.",
|
|
"custom_fork_by": "Custom fork by",
|
|
"open": "Open",
|
|
"identity": "Identity",
|
|
"lxmf_address_hash": "LXMF Address Hash",
|
|
"propagation_node_status": "Propagation Node Status",
|
|
"last_sync": "Last Sync: {time} ago",
|
|
"last_sync_never": "Last Sync: never",
|
|
"syncing": "Syncing...",
|
|
"synced": "Synced",
|
|
"not_synced": "Not Synced",
|
|
"not_configured": "Not Configured",
|
|
"toggle_source": "Toggle Source Code",
|
|
"audio_calls": "Telephone",
|
|
"calls": "Calls",
|
|
"status": "Status",
|
|
"active_call": "Active Call",
|
|
"incoming": "Incoming",
|
|
"outgoing": "Outgoing",
|
|
"call": "Call",
|
|
"calls_plural": "Calls",
|
|
"hop": "hop",
|
|
"hops_plural": "hops",
|
|
"hung_up_waiting": "Hung up, waiting for call...",
|
|
"view_incoming_calls": "View Incoming Calls",
|
|
"hangup_all_calls": "Hangup all Calls",
|
|
"clear_history": "Clear History",
|
|
"no_active_calls": "No active calls",
|
|
"incoming_call": "Incoming call...",
|
|
"outgoing_call": "Outgoing call...",
|
|
"call_active": "Active",
|
|
"call_ended": "Ended",
|
|
"propagation_node": "Propagation Node",
|
|
"sync_now": "Sync Now"
|
|
},
|
|
"common": {
|
|
"open": "Open",
|
|
"cancel": "Cancel",
|
|
"save": "Save",
|
|
"delete": "Delete",
|
|
"edit": "Edit",
|
|
"add": "Add",
|
|
"sync": "Sync",
|
|
"restart_app": "Restart App",
|
|
"reveal": "Reveal",
|
|
"refresh": "Refresh",
|
|
"vacuum": "Vacuum",
|
|
"auto_recover": "Auto Recover",
|
|
"delete_confirm": "Are you sure you want to delete this? This cannot be undone."
|
|
},
|
|
"identities": {
|
|
"title": "Identities",
|
|
"manage": "Manage and switch between multiple Reticulum identities.",
|
|
"new_identity": "New Identity",
|
|
"generate_fresh": "Generate a fresh Reticulum identity.",
|
|
"display_name": "Display Name",
|
|
"display_name_hint": "e.g. Secret Agent",
|
|
"current": "Current",
|
|
"switch": "Switch to this identity",
|
|
"delete": "Delete identity",
|
|
"no_identities": "No identities found",
|
|
"create_first": "Create a new identity to get started.",
|
|
"switch_confirm": "Switch to identity \"{name}\"? The application will need to restart.",
|
|
"delete_confirm": "Are you sure you want to delete identity \"{name}\"? This cannot be undone.",
|
|
"switched": "Identity switched. The application will now restart to apply changes.",
|
|
"created": "Identity created successfully",
|
|
"deleted": "Identity deleted"
|
|
},
|
|
"about": {
|
|
"title": "About",
|
|
"version": "v{version}",
|
|
"rns_version": "RNS {version}",
|
|
"lxmf_version": "LXMF {version}",
|
|
"python_version": "Python {version}",
|
|
"config_path": "Config path",
|
|
"database_path": "Database path",
|
|
"database_size": "Database size",
|
|
"database_health": "Database Health",
|
|
"database_health_description": "Quick check, WAL tuning, and recovery tools for the MeshChatX database.",
|
|
"running_checks": "Running checks...",
|
|
"integrity": "Integrity",
|
|
"journal_mode": "Journal mode",
|
|
"wal_autocheckpoint": "WAL autocheckpoint",
|
|
"page_size": "Page size",
|
|
"pages_free": "Pages / Free",
|
|
"free_space_estimate": "Free space estimate",
|
|
"system_resources": "System Resources",
|
|
"live": "Live",
|
|
"memory_rss": "Memory (RSS)",
|
|
"virtual_memory": "Virtual Memory",
|
|
"network_stats": "Network Stats",
|
|
"sent": "Sent",
|
|
"received": "Received",
|
|
"packets_sent": "Packets Sent",
|
|
"packets_received": "Packets Received",
|
|
"reticulum_stats": "Reticulum Stats",
|
|
"total_paths": "Total Paths",
|
|
"announces_per_second": "Announces / sec",
|
|
"announces_per_minute": "Announces / min",
|
|
"announces_per_hour": "Announces / hr",
|
|
"download_activity": "Download Activity",
|
|
"no_downloads_yet": "No downloads yet",
|
|
"runtime_status": "Runtime Status",
|
|
"shared_instance": "Shared Instance",
|
|
"standalone_instance": "Standalone Instance",
|
|
"transport_enabled": "Transport Enabled",
|
|
"transport_disabled": "Transport Disabled",
|
|
"identity_addresses": "Identity & Addresses",
|
|
"telephone_address": "Telephone Address"
|
|
},
|
|
"interfaces": {
|
|
"title": "Interfaces",
|
|
"manage": "Manage",
|
|
"description": "Search, filter and export your Reticulum adapters.",
|
|
"add_interface": "Add Interface",
|
|
"import": "Import",
|
|
"export_all": "Export all",
|
|
"search_placeholder": "Search by name, type, host...",
|
|
"all": "All",
|
|
"all_types": "All types",
|
|
"no_interfaces_found": "No interfaces found",
|
|
"no_interfaces_description": "Adjust your search or add a new interface.",
|
|
"restart_required": "Restart required",
|
|
"restart_description": "Reticulum MeshChat must be restarted for any interface changes to take effect.",
|
|
"restart_now": "Restart now"
|
|
},
|
|
"map": {
|
|
"title": "Map",
|
|
"description": "Offline-capable map with MBTiles support.",
|
|
"upload_mbtiles": "Upload MBTiles",
|
|
"select_file": "Select MBTiles file",
|
|
"offline_mode": "Offline Mode",
|
|
"online_mode": "Online Mode",
|
|
"attribution": "Attribution",
|
|
"bounds": "Bounds",
|
|
"center": "Center",
|
|
"zoom": "Zoom",
|
|
"uploading": "Uploading...",
|
|
"upload_success": "Map uploaded successfully",
|
|
"upload_failed": "Failed to upload map",
|
|
"no_map_loaded": "No offline map loaded. Upload an .mbtiles file to enable offline mode.",
|
|
"invalid_file": "Invalid MBTiles file. Only raster tiles are supported.",
|
|
"default_view": "Default View",
|
|
"set_as_default": "Set as Default View",
|
|
"export_area": "Export Area",
|
|
"export_instructions": "Drag on the map to select an area.",
|
|
"min_zoom": "Min Zoom",
|
|
"max_zoom": "Max Zoom",
|
|
"tile_count": "Estimated Tiles",
|
|
"start_export": "Start Export",
|
|
"exporting": "Exporting Map...",
|
|
"download_ready": "Export Complete",
|
|
"download_now": "Download MBTiles",
|
|
"caching_enabled": "Tile Caching",
|
|
"clear_cache": "Clear Cache",
|
|
"cache_cleared": "Tile cache cleared",
|
|
"tile_server_url": "Tile Server URL",
|
|
"tile_server_url_placeholder": "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
|
|
"tile_server_url_hint": "Use {z}, {x}, {y} for zoom, column, row",
|
|
"tile_server_saved": "Tile server URL saved",
|
|
"nominatim_api_url": "Nominatim API URL",
|
|
"nominatim_api_url_placeholder": "https://nominatim.openstreetmap.org",
|
|
"nominatim_api_url_hint": "Base URL for Nominatim geocoding service",
|
|
"nominatim_api_saved": "Nominatim API URL saved",
|
|
"search_placeholder": "Search for a location...",
|
|
"search_offline_error": "Search is only available in online mode",
|
|
"search_connection_error": "Failed to connect to search service. Please check your internet connection.",
|
|
"search_error": "Search error",
|
|
"search_no_results": "No results found",
|
|
"custom_tile_server_unavailable": "Custom tile server is not accessible in offline mode",
|
|
"custom_nominatim_unavailable": "Custom Nominatim server is not accessible in offline mode",
|
|
"onboarding_title": "Export to MBTiles!",
|
|
"onboarding_text": "Use the export tool to download map areas as MBTiles files for offline use.",
|
|
"onboarding_got_it": "Got it"
|
|
},
|
|
"interface": {
|
|
"disable": "Disable",
|
|
"enable": "Enable",
|
|
"edit_interface": "Edit Interface",
|
|
"export_interface": "Export Interface",
|
|
"delete_interface": "Delete Interface",
|
|
"listen": "Listen",
|
|
"forward": "Forward",
|
|
"port": "Port",
|
|
"frequency": "Frequency",
|
|
"bandwidth": "Bandwidth",
|
|
"txpower": "TX Power",
|
|
"spreading_factor": "SF",
|
|
"coding_rate": "Coding Rate",
|
|
"bitrate": "Bitrate",
|
|
"tx": "TX",
|
|
"rx": "RX",
|
|
"noise": "Noise",
|
|
"clients": "Clients"
|
|
},
|
|
"messages": {
|
|
"title": "Messages",
|
|
"conversations": "Conversations",
|
|
"announces": "Announces",
|
|
"search_placeholder": "Search {count} conversations...",
|
|
"unread": "Unread",
|
|
"failed": "Failed",
|
|
"attachments": "Attachments",
|
|
"no_messages_yet": "No messages yet",
|
|
"loading_conversations": "Loading conversations...",
|
|
"no_conversations": "No Conversations",
|
|
"discover_peers": "Discover peers on the Announces tab",
|
|
"no_search_results": "No Results Found",
|
|
"try_another_search": "Try a different search term",
|
|
"no_search_results_conversations": "Your search didn't match any conversations.",
|
|
"search_placeholder_announces": "Search {count} recent announces...",
|
|
"no_peers_discovered": "No Peers Discovered",
|
|
"waiting_for_announce": "Waiting for someone to announce!",
|
|
"no_search_results_peers": "Your search didn't match any Peers!",
|
|
"direct": "Direct",
|
|
"hops": "{count} hops",
|
|
"hops_away": "{count} hops away",
|
|
"snr": "SNR {snr}",
|
|
"stamp_cost": "Stamp Cost {cost}",
|
|
"pop_out_chat": "Pop out chat",
|
|
"custom_display_name": "Custom Display Name",
|
|
"send_placeholder": "Type a message...",
|
|
"no_messages_in_conversation": "No messages in this conversation yet.",
|
|
"say_hello": "Say hello!",
|
|
"no_active_chat": "No Active Chat",
|
|
"select_peer_or_enter_address": "Select a peer from the sidebar or enter an address below",
|
|
"add_files": "Add Files",
|
|
"location": "Location",
|
|
"share_location": "Share Location",
|
|
"request_location": "Request Location",
|
|
"view_on_map": "View on Map",
|
|
"request": "Request",
|
|
"recording": "Recording: {duration}",
|
|
"nomad_network_node": "Nomad Network Node",
|
|
"toggle_source": "Toggle Source Code"
|
|
},
|
|
"nomadnet": {
|
|
"remove_favourite": "Remove Favourite",
|
|
"add_favourite": "Add Favourite",
|
|
"page_archives": "Page Archives",
|
|
"archive_current_version": "Archive Current Version",
|
|
"no_archives_for_this_page": "No archives for this page",
|
|
"viewing_archived_version_from": "Viewing archived version from {time}",
|
|
"viewing_archived_version": "Viewing archived version",
|
|
"load_live": "Load Live",
|
|
"failed_to_load_page": "Failed to load page",
|
|
"archived_version_available": "An archived version of this page is available.",
|
|
"view_archive": "View Archive",
|
|
"no_active_node": "No Active Node",
|
|
"select_node_to_browse": "Select a Node to start browsing!",
|
|
"open_nomadnet_url": "Open a Nomadnet URL",
|
|
"unknown_node": "Unknown Node",
|
|
"existing_download_in_progress": "An existing download is in progress. Please wait for it to finish before starting another download.",
|
|
"favourites": "Favourites",
|
|
"announces": "Announces",
|
|
"search_favourites_placeholder": "Search {count} favourites...",
|
|
"rename": "Rename",
|
|
"remove": "Remove",
|
|
"no_favourites": "No favourites",
|
|
"add_nodes_from_announces": "Add nodes from the announces tab.",
|
|
"search_announces": "Search announces",
|
|
"announced_time_ago": "Announced {time} ago",
|
|
"block_node": "Block Node",
|
|
"no_announces_yet": "No announces yet",
|
|
"listening_for_peers": "Listening for peers on the mesh.",
|
|
"block_node_confirm": "Are you sure you want to block {name}? Their announces will be ignored and they won't appear in the announce stream.",
|
|
"node_blocked_successfully": "Node blocked successfully",
|
|
"failed_to_block_node": "Failed to block node",
|
|
"rename_favourite": "Rename this favourite",
|
|
"remove_favourite_confirm": "Are you sure you want to remove this favourite?",
|
|
"enter_nomadnet_url": "Enter a Nomadnet URL",
|
|
"archiving_page": "Archiving page...",
|
|
"page_archived_successfully": "Page archived successfully.",
|
|
"identify_confirm": "Are you sure you want to identify yourself to this NomadNetwork Node? The page will reload after your identity has been sent."
|
|
},
|
|
"forwarder": {
|
|
"title": "LXMF Forwarder",
|
|
"description": "Forward messages from one address to another, with transparent return routing.",
|
|
"add_rule": "Add Forwarding Rule",
|
|
"name": "Name",
|
|
"name_placeholder": "Rule name (e.g. Home Node)...",
|
|
"forward_to_hash": "Forward to Hash",
|
|
"destination_placeholder": "Destination LXMF hash...",
|
|
"source_filter": "Source Filter (Optional)",
|
|
"source_filter_placeholder": "Only forward from this hash...",
|
|
"add_button": "Add Rule",
|
|
"active_rules": "Active Rules",
|
|
"no_rules": "No forwarding rules configured.",
|
|
"active": "Active",
|
|
"disabled": "Disabled",
|
|
"forwarding_to": "Forwarding to: {hash}",
|
|
"source_filter_display": "Source filter: {hash}",
|
|
"delete_confirm": "Are you sure you want to delete this rule?"
|
|
},
|
|
"archives": {
|
|
"description": "Search and view archived Nomad Network pages",
|
|
"search_placeholder": "Search content, hash or path...",
|
|
"loading": "Loading archives...",
|
|
"no_archives_found": "No archives found",
|
|
"adjust_filters": "Try adjusting your search filters.",
|
|
"browse_to_archive": "Archived pages will appear here once you browse Nomad Network sites.",
|
|
"page": "Page",
|
|
"pages": "Pages",
|
|
"view": "View",
|
|
"showing_range": "Showing {start} to {end} of {total} archives",
|
|
"page_of": "Page {page} of {total_pages}"
|
|
},
|
|
"tools": {
|
|
"utilities": "Utilities",
|
|
"power_tools": "Power tools for operators",
|
|
"diagnostics_description": "Diagnostics and firmware helpers ship with MeshChat so you can troubleshoot peers without leaving the console.",
|
|
"ping": {
|
|
"title": "Ping",
|
|
"description": "Latency test for any LXMF destination hash with live status."
|
|
},
|
|
"rnprobe": {
|
|
"title": "RNProbe",
|
|
"description": "Probe destinations with custom packet sizes to test connectivity."
|
|
},
|
|
"rncp": {
|
|
"title": "RNCP",
|
|
"description": "Send and receive files over RNS with progress tracking."
|
|
},
|
|
"rnstatus": {
|
|
"title": "RNStatus",
|
|
"description": "View interface statistics and network status information."
|
|
},
|
|
"translator": {
|
|
"title": "Translator",
|
|
"description": "Translate text using LibreTranslate API or local Argos Translate."
|
|
},
|
|
"forwarder": {
|
|
"title": "Forwarder",
|
|
"description": "SimpleLogin-style LXMF forwarding with return path routing."
|
|
},
|
|
"rnode_flasher": {
|
|
"title": "RNode Flasher",
|
|
"description": "Flash and update RNode adapters without touching the command line."
|
|
}
|
|
},
|
|
"ping": {
|
|
"title": "Ping Mesh Peers",
|
|
"description": "Only {code} destinations respond to ping.",
|
|
"destination_hash": "Destination Hash",
|
|
"timeout_seconds": "Ping Timeout (seconds)",
|
|
"start_ping": "Start Ping",
|
|
"stop": "Stop",
|
|
"clear_results": "Clear Results",
|
|
"drop_path": "Drop Path",
|
|
"status": "Status",
|
|
"running": "Running",
|
|
"idle": "Idle",
|
|
"last_rtt": "Last RTT",
|
|
"last_error": "Last Error",
|
|
"console_output": "Console Output",
|
|
"streaming_responses": "Streaming seq responses in real time",
|
|
"no_pings_yet": "No pings yet. Start a run to collect RTT data.",
|
|
"invalid_hash": "Invalid destination hash!",
|
|
"timeout_must_be_number": "Timeout must be a number!"
|
|
},
|
|
"rncp": {
|
|
"file_transfer": "File Transfer",
|
|
"title": "RNCP - Reticulum Network Copy",
|
|
"description": "Send and receive files over the Reticulum network using RNS resources.",
|
|
"send_file": "Send File",
|
|
"fetch_file": "Fetch File",
|
|
"listen": "Listen",
|
|
"destination_hash": "Destination Hash",
|
|
"file_path": "File Path",
|
|
"timeout_seconds": "Timeout (seconds)",
|
|
"disable_compression": "Disable compression",
|
|
"cancel": "Cancel",
|
|
"progress": "Progress",
|
|
"invalid_hash": "Invalid destination hash!",
|
|
"provide_file_path": "Please provide a file path!",
|
|
"file_sent_successfully": "File sent successfully. Transfer ID: {id}",
|
|
"failed_to_send": "Failed to send file",
|
|
"remote_file_path": "Remote File Path",
|
|
"save_path_optional": "Save Path (optional)",
|
|
"save_path_placeholder": "Leave empty for current directory",
|
|
"allow_overwrite": "Allow overwrite",
|
|
"provide_remote_file_path": "Please provide a remote file path!",
|
|
"file_fetched_successfully": "File fetched successfully. Saved to: {path}",
|
|
"failed_to_fetch": "Failed to fetch file",
|
|
"allowed_hashes": "Allowed Identity Hashes (one per line)",
|
|
"fetch_jail_path": "Fetch Jail Path (optional)",
|
|
"allow_fetch": "Allow fetch",
|
|
"start_listening": "Start Listening",
|
|
"stop_listening": "Stop Listening",
|
|
"listening_on": "Listening on:",
|
|
"provide_allowed_hash": "Please provide at least one allowed identity hash!",
|
|
"failed_to_start_listener": "Failed to start listener"
|
|
},
|
|
"rnprobe": {
|
|
"network_diagnostics": "Network Diagnostics",
|
|
"title": "RNProbe - Destination Probe",
|
|
"description": "Probe destinations with custom packet sizes to test connectivity and measure RTT.",
|
|
"destination_hash": "Destination Hash",
|
|
"full_destination_name": "Full Destination Name",
|
|
"probe_size_bytes": "Probe Size (bytes)",
|
|
"number_of_probes": "Number of Probes",
|
|
"wait_between_probes": "Wait Between Probes (seconds)",
|
|
"start_probe": "Start Probe",
|
|
"stop": "Stop",
|
|
"clear_results": "Clear Results",
|
|
"summary": "Summary",
|
|
"sent": "Sent",
|
|
"delivered": "Delivered",
|
|
"timeouts": "Timeouts",
|
|
"failed": "Failed",
|
|
"probe_results": "Probe Results",
|
|
"probe_responses_realtime": "Probe responses in real time",
|
|
"no_probes_yet": "No probes yet. Start a probe to test connectivity.",
|
|
"probe_number": "Probe #{number}",
|
|
"bytes": "bytes",
|
|
"hops": "Hops",
|
|
"rtt": "RTT",
|
|
"rssi": "RSSI",
|
|
"snr": "SNR",
|
|
"quality": "Quality",
|
|
"timeout": "Timeout",
|
|
"invalid_hash": "Invalid destination hash!",
|
|
"provide_full_name": "Please provide a full destination name!",
|
|
"failed_to_probe": "Failed to probe destination"
|
|
},
|
|
"rnstatus": {
|
|
"network_diagnostics": "Network Diagnostics",
|
|
"title": "RNStatus - Network Status",
|
|
"description": "View interface statistics and network status information.",
|
|
"refresh": "Refresh",
|
|
"include_link_stats": "Include Link Stats",
|
|
"sort_by": "Sort by:",
|
|
"none": "None",
|
|
"bitrate": "Bitrate",
|
|
"rx_bytes": "RX Bytes",
|
|
"tx_bytes": "TX Bytes",
|
|
"total_traffic": "Total Traffic",
|
|
"announces": "Announces",
|
|
"active_links": "Active Links: {count}",
|
|
"no_interfaces_found": "No interfaces found. Click refresh to load status.",
|
|
"mode": "Mode",
|
|
"rx_packets": "RX Packets",
|
|
"tx_packets": "TX Packets",
|
|
"clients": "Clients",
|
|
"peers_reachable": "reachable",
|
|
"noise_floor": "Noise Floor",
|
|
"interference": "Interference",
|
|
"cpu_load": "CPU Load",
|
|
"cpu_temp": "CPU Temp",
|
|
"memory_load": "Memory Load",
|
|
"battery": "Battery",
|
|
"network": "Network",
|
|
"incoming_announces": "Incoming Announces",
|
|
"outgoing_announces": "Outgoing Announces",
|
|
"airtime": "Airtime",
|
|
"channel_load": "Channel Load"
|
|
},
|
|
"translator": {
|
|
"text_translation": "Text Translation",
|
|
"title": "Translator",
|
|
"description": "Translate text using LibreTranslate API or local Argos Translate.",
|
|
"argos_translate": "Argos Translate",
|
|
"libretranslate": "LibreTranslate",
|
|
"api_server": "LibreTranslate API Server",
|
|
"api_server_description": "Enter the base URL of your LibreTranslate server (e.g., http://localhost:5000)",
|
|
"source_language": "Source Language",
|
|
"auto_detect": "Auto-detect",
|
|
"target_language": "Target Language",
|
|
"select_target_language": "Select target language",
|
|
"argos_not_detected": "Argos Translate not detected",
|
|
"argos_not_detected_desc": "To use local translation, you must install the Argos Translate package using one of the following methods:",
|
|
"method_pip_venv": "Method 1: pip (venv)",
|
|
"method_pipx": "Method 2: pipx",
|
|
"note_restart_required": "Note: After installation, you may need to restart the application and install language packages via the Argos Translate CLI.",
|
|
"no_language_packages": "No language packages detected",
|
|
"no_language_packages_desc": "Argos Translate is installed but no language packages are available. Install language packages using one of the following commands:",
|
|
"install_all_languages": "Install all languages",
|
|
"install_specific_pair": "Install specific language pair (example: English to German)",
|
|
"after_install_note": "After installing language packages, click \"Refresh Languages\" to reload available languages.",
|
|
"text_to_translate": "Text to Translate",
|
|
"enter_text_placeholder": "Enter text to translate...",
|
|
"translate": "Translate",
|
|
"swap": "Swap",
|
|
"clear": "Clear",
|
|
"translation": "Translation",
|
|
"source": "Source",
|
|
"detected": "Detected",
|
|
"available_languages": "Available Languages",
|
|
"languages_loaded_from": "Languages are loaded from LibreTranslate API or Argos Translate packages.",
|
|
"refresh_languages": "Refresh Languages",
|
|
"failed_to_load_languages": "Failed to load languages. Make sure LibreTranslate is running or Argos Translate is installed.",
|
|
"copied_to_clipboard": "Copied to clipboard"
|
|
},
|
|
"call": {
|
|
"phone": "Phone",
|
|
"voicemail": "Voicemail",
|
|
"settings": "Settings",
|
|
"unknown": "Unknown",
|
|
"call_ended": "Call Ended",
|
|
"call_declined": "Call Declined",
|
|
"send_to_voicemail": "Send to Voicemail",
|
|
"incoming_call": "Incoming Call...",
|
|
"busy": "Busy...",
|
|
"rejected": "Rejected...",
|
|
"calling": "Calling...",
|
|
"available": "Available...",
|
|
"ringing": "Ringing...",
|
|
"connecting": "Connecting...",
|
|
"connected": "Connected",
|
|
"accept": "Accept",
|
|
"decline": "Decline",
|
|
"hangup": "Hangup",
|
|
"answer_call": "Answer Call",
|
|
"decline_call": "Decline Call",
|
|
"hangup_call": "Hangup Call",
|
|
"mute_mic": "Mute Mic",
|
|
"unmute_mic": "Unmute Mic",
|
|
"mute_speaker": "Mute Speaker",
|
|
"unmute_speaker": "Unmute Speaker",
|
|
"telephone": "Telephone",
|
|
"enter_identity_hash_to_call": "Enter an identity hash to call.",
|
|
"identity_hash": "Identity Hash",
|
|
"call_history": "Call History",
|
|
"call_back": "Call Back",
|
|
"no_voicemails": "No Voicemails",
|
|
"voicemails_will_appear_here": "When people leave you messages, they'll show up here.",
|
|
"voicemail_inbox": "Voicemail Inbox",
|
|
"messages": "Messages",
|
|
"delete": "Delete",
|
|
"voicemail_settings": "Voicemail Settings",
|
|
"dependencies_missing": "Dependencies Missing",
|
|
"voicemail_requires_espeak": "Voicemail requires `espeak-ng` to generate greetings. Please install it on your system.",
|
|
"voicemail_requires_ffmpeg": "Voicemail requires `ffmpeg` to process audio files. Please install it on your system.",
|
|
"enable_voicemail": "Enable Voicemail",
|
|
"enable_voicemail_description": "Accept calls automatically and record messages",
|
|
"greeting_message": "Greeting Message",
|
|
"enter_greeting_text": "Enter greeting text...",
|
|
"greeting_text_description": "This text will be converted to speech using eSpeak NG.",
|
|
"save_and_generate": "Save & Generate",
|
|
"generating": "Generating...",
|
|
"preview_greeting": "Preview Greeting",
|
|
"stop_preview": "Stop Preview",
|
|
"answer_delay_seconds": "Answer Delay (s)",
|
|
"max_recording_seconds": "Max Recording (s)",
|
|
"recording_voicemail": "Recording Voicemail",
|
|
"call_status": "Call Status",
|
|
"active_call": "Active Call",
|
|
"status": "Status",
|
|
"failed_to_answer_call": "Failed to answer call",
|
|
"failed_to_hangup_call": "Failed to hangup call",
|
|
"failed_to_toggle_microphone": "Failed to toggle microphone",
|
|
"failed_to_toggle_speaker": "Failed to toggle speaker",
|
|
"failed_to_switch_audio_profile": "Failed to switch audio profile",
|
|
"failed_to_initiate_call": "Failed to initiate call",
|
|
"enter_identity_hash_to_call_error": "Enter an identity hash to call",
|
|
"failed_to_save_settings": "Failed to save settings",
|
|
"settings_saved": "Settings saved",
|
|
"greeting_generated_successfully": "Greeting generated successfully",
|
|
"failed_to_generate_greeting": "Failed to generate greeting",
|
|
"no_greeting_audio_found": "No greeting audio found. Please generate one first.",
|
|
"voicemail_deleted": "Voicemail deleted",
|
|
"failed_to_delete_voicemail": "Failed to delete voicemail",
|
|
"ringtone": "Ringtone",
|
|
"ringtone_settings": "Ringtone Settings",
|
|
"enable_custom_ringtone": "Enable Custom Ringtone",
|
|
"enable_custom_ringtone_description": "Play a custom audio file for all incoming calls",
|
|
"upload_ringtone": "Upload Ringtone",
|
|
"uploading_ringtone": "Uploading Ringtone...",
|
|
"no_custom_ringtone_uploaded": "No custom ringtone uploaded",
|
|
"supports_audio_formats": "Supports MP3, OGG, WAV, M4A, FLAC. Will be converted to Opus.",
|
|
"preview_ringtone": "Preview Ringtone",
|
|
"remove_ringtone": "Remove Ringtone",
|
|
"ringtone_uploaded_successfully": "Ringtone uploaded successfully",
|
|
"failed_to_upload_ringtone": "Failed to upload ringtone",
|
|
"ringtone_deleted": "Ringtone deleted",
|
|
"failed_to_delete_ringtone": "Failed to delete ringtone",
|
|
"no_ringtone_audio_found": "No ringtone audio found. Please upload one first."
|
|
}
|
|
}
|