Files
MeshChatX/meshchatx/src/frontend/locales/en.json

1453 lines
77 KiB
JSON

{
"bots": {
"title": "LXMFy Bots",
"description": "Manage automated bots for echo, notes, and reminders using LXMFy.",
"bot_framework": "Bot Framework",
"lxmfy_not_detected": "LXMFy not detected",
"lxmfy_not_detected_desc": "To use bots, you must install the LXMFy package:",
"install_via_pip": "Install via pip",
"create_new_bot": "Create New Bot",
"running_bots": "Running Bots",
"no_bots_running": "No bots are currently running.",
"select": "Select",
"start_bot": "Start Bot",
"stop_bot": "Stop Bot",
"restart_bot": "Restart Bot",
"saved_bots": "Saved Bots",
"bot_name": "Bot Name",
"cancel": "Cancel",
"bot_started": "Bot started successfully",
"bot_stopped": "Bot stopped",
"failed_to_start": "Failed to start bot",
"failed_to_stop": "Failed to stop bot",
"delete_bot": "Delete Bot",
"export_identity": "Export Identity",
"bot_deleted": "Bot deleted successfully",
"failed_to_delete": "Failed to delete bot",
"more_bots_coming": "More bots coming soon!"
},
"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",
"documentation": "Documentation",
"about": "About",
"changelog_title": "What's New",
"do_not_show_again": "Do not show again for this version",
"do_not_show_ever": "Do not show ever again",
"tutorial_title": "Getting Started",
"tutorial_welcome": "Welcome to MeshChatX",
"tutorial_connect": "Connect to the Mesh",
"tutorial_finish": "Ready to Roll!",
"tutorial_restart_required": "Restart Required",
"tutorial_docker_note": "If you're running in Docker, ensure you restart the container.",
"my_identity": "My Identity",
"identity_hash": "Identity Hash",
"lxmf_address": "LXMF Address",
"announce": "Announce",
"announce_now": "Announce Now",
"show_qr": "Show QR Code",
"failed_announce": "failed to announce",
"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...",
"syncing_node": "Syncing... ({state})",
"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",
"setting_auto_saved": "Setting {label} auto-saved",
"backup_max_count": "Automatic backup limit",
"message_font_size": "Message font size",
"message_icon_size": "Icon size",
"search_settings": "Search settings...",
"auto_resend": "Auto Resend",
"retry_attachments": "Retry Attachments",
"auto_fallback": "Auto Fallback",
"community_interfaces": "Community Interfaces",
"preferred_node": "Preferred Node",
"local_node": "Local Node",
"auto_sync": "Auto Sync",
"inbound_stamp_cost_label": "Inbound Stamp Cost",
"propagation_stamp_cost_label": "Propagation Stamp Cost",
"page_archiver": "Page Archiver",
"smart_crawler": "Smart Crawler",
"authentication": "Authentication",
"banishment": "Banishment",
"banishment_description": "Customize the visual effect shown for banished peers and nodes.",
"banished_effect_enabled": "Enable Banishment Effect",
"banished_effect_description": "Show a visual overlay on banished peers and nodes.",
"banished_text_label": "Banishment Text",
"banished_text_description": "Custom message to display on the overlay.",
"banished_color_label": "Banishment Color",
"banished_color_description": "The color used for the banishment effect.",
"desktop_open_calls_in_separate_window": "Open Calls in 2nd Window",
"desktop_open_calls_in_separate_window_description": "When a call is active, it will be shown in a separate pop-out window rather than inside the app.",
"desktop_hardware_acceleration_enabled": "Hardware Acceleration",
"desktop_hardware_acceleration_enabled_description": "Disable this if you experience UI flickering, black screens or graphical glitches.",
"translator": "Translator",
"translator_enabled": "Enable Translator",
"translator_description": "Enable translation features in conversations.",
"libretranslate_url": "LibreTranslate URL",
"libretranslate_url_description": "The URL where LibreTranslate API is accessible.",
"system": "System",
"reticulum_stack": "Reticulum Stack",
"reticulum_stack_description": "Manage the underlying Reticulum Network Stack.",
"reload_rns": "Reload RNS",
"reload_rns_description": "Deregister all destinations, stop the current RNS instance, and reload it. This is useful for applying configuration changes or restarting the mesh network stack without restarting the entire application.",
"reloading_rns": "Reloading RNS...",
"reloaded_rns": "Reticulum reloaded successfully",
"announce_interval": "Announce Interval",
"stop_sync_confirm": "Are you sure you want to stop syncing?",
"sync_error_generic": "Something went wrong. Try again later.",
"sync_complete": "Sync complete. {count} messages received.",
"sync_error": "Sync error: {status}",
"switching_identity": "Switching Identity...",
"loading_identity": "Loading your identity",
"emergency_mode_active": "Emergency Mode Active - Using in-memory database and restricted services.",
"blackhole_integration_enabled": "Blackhole Integration",
"blackhole_integration_description": "Automatically blackhole identities at the Reticulum transport layer when banishing users in MeshChatX."
},
"common": {
"open": "Open",
"close": "Close",
"cancel": "Cancel",
"save": "Save",
"block": "Banish",
"delete": "Delete",
"edit": "Edit",
"add": "Add",
"sync": "Sync",
"restart_app": "Restart App",
"reveal": "Reveal",
"refresh": "Refresh",
"copy": "Copy",
"copy_to_clipboard": "Copy to clipboard",
"vacuum": "Vacuum",
"auto_recover": "Auto Recover",
"shutdown": "Shutdown",
"acknowledge_reset": "Acknowledge & Reset",
"continue": "Continue",
"confirm": "Confirm",
"delete_confirm": "Are you sure you want to delete this? This cannot be undone.",
"search": "Search tools...",
"no_results": "No tools found",
"error": "Error",
"success": "Success",
"warning": "Warning",
"info": "Info",
"copied": "Copied to clipboard",
"failed_to_copy": "Failed to copy to clipboard",
"save_failed": "Failed to save configuration!",
"invalid_address": "Invalid Address",
"loading": "Loading...",
"ok": "OK"
},
"maintenance": {
"title": "Maintenance & Data",
"description": "Manage your local data, clear caches, and backup conversations.",
"clear_messages": "Clear All Messages",
"clear_messages_desc": "Permanently delete all sent and received messages.",
"clear_announces": "Clear All Announces",
"clear_announces_desc": "Remove all discovered peers and nodes from your cache.",
"clear_nomadnet_favs": "Clear NomadNetwork Favorites",
"clear_nomadnet_favs_desc": "Remove all saved NomadNetwork nodes from your favorites.",
"clear_lxmf_icons": "Clear LXMF Icons",
"clear_lxmf_icons_desc": "Remove cached LXMF user icons from your device.",
"clear_archives": "Clear Page Archives",
"clear_archives_desc": "Delete all cached NomadNetwork pages.",
"export_messages": "Export Messages",
"export_messages_desc": "Download all conversations as a JSON file.",
"import_messages": "Import Messages",
"import_messages_desc": "Restore conversations from a JSON file.",
"clear_confirm": "Are you sure? This action cannot be undone.",
"messages_cleared": "Messages cleared successfully",
"announces_cleared": "Announces cleared successfully",
"favourites_cleared": "Favorites cleared successfully",
"lxmf_icons_cleared": "LXMF icons cleared successfully",
"archives_cleared": "Archives cleared successfully",
"import_success": "Successfully imported {count} messages",
"import_failed": "Failed to import messages"
},
"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",
"failed_load": "Failed to load identities",
"enter_display_name_warning": "Please enter a display name",
"failed_create": "Failed to create identity",
"switch_scheduled": "Switch scheduled. Reloading application...",
"failed_switch": "Failed to switch identity",
"failed_delete": "Failed to delete identity"
},
"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",
"security_integrity": "Security Integrity",
"security_integrity_description": "System verification status for backend and data files",
"secured": "Secured",
"tampering_detected": "Tampering Detected",
"technical_issues": "Technical Issues:",
"integrity_backend_error": "The application backend binary (unpacked from ASAR) appears to have been modified or replaced. This could indicate a malicious actor trying to compromise your mesh communication.",
"integrity_data_error": "Your identities or database files appear to have been modified while the app was closed.",
"integrity_warning_footer": "Proceed with caution. If you did not manually update or modify these files, your installation may be compromised.",
"no_integrity_violations": "No integrity violations detected since last startup.",
"dependency_chain": "Dependency Chain",
"other_core_components": "Other Core Components",
"backend_dependencies": "Backend Dependencies",
"delete_snapshot_confirm": "Are you sure you want to delete this snapshot?",
"snapshot_deleted": "Snapshot deleted",
"failed_delete_snapshot": "Failed to delete snapshot",
"delete_backup_confirm": "Are you sure you want to delete this backup?",
"backup_deleted": "Backup deleted",
"failed_delete_backup": "Failed to delete backup",
"database_restored": "Database restored. Relaunching...",
"failed_restore_snapshot": "Failed to restore snapshot",
"restore_snapshot_confirm": "Are you sure you want to restore this snapshot? This will overwrite the current database and require an app relaunch.",
"integrity_acknowledged": "Integrity issues acknowledged",
"integrity_acknowledged_reset": "Integrity issues acknowledged and manifest reset",
"integrity_acknowledge_confirm": "Are you sure you want to acknowledge these integrity issues? This will update the security manifest to match the current state of your files.",
"failed_acknowledge_integrity": "Failed to acknowledge integrity issues",
"shutdown_sent": "Shutdown command sent to server.",
"identity_exported": "Identity key file exported",
"identity_copied": "Identity Base32 key copied to clipboard"
},
"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 MeshChatX must be restarted for any interface changes to take effect.",
"restart_now": "Restart now",
"failed_enable": "failed to enable interface",
"failed_disable": "failed to disable interface",
"delete_confirm": "Are you sure you want to delete this interface? This can not be undone!",
"failed_delete": "failed to delete interface",
"failed_export_all": "Failed to export interfaces",
"failed_export_single": "Failed to export interface",
"failed_reload": "Failed to reload Reticulum!",
"interface_not_found": "The selected interface for editing could not be found.",
"discovery_settings_saved": "Discovery settings saved",
"failed_save_discovery": "Failed to save discovery settings",
"no_interfaces_found_config": "No interfaces were found in the selected configuration file",
"failed_parse_config": "Failed to parse configuration file",
"select_config_file": "Please select a configuration file",
"select_at_least_one": "Please select at least one interface to import",
"import_success": "Interfaces imported successfully. MeshChat must be restarted for these changes to take effect.",
"failed_import_all": "Failed to import interfaces"
},
"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",
"tile_server_openstreetmap": "OpenStreetMap",
"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",
"tool_point": "Draw Point",
"tool_linestring": "Draw Line",
"tool_polygon": "Draw Polygon",
"tool_circle": "Draw Circle",
"tool_measure": "Measure Distance/Area",
"tool_clear": "Clear Drawings",
"save_drawing": "Save Drawing Layer",
"load_drawing": "Load Drawing Layer",
"save_drawing_title": "Save Drawing Layer",
"save_drawing_desc": "Save your current map annotations to the database.",
"drawing_name": "Layer Name",
"drawing_name_placeholder": "e.g., Target Area Alpha",
"load_drawing_title": "Load Drawing Layer",
"loading_drawings": "Loading saved layers...",
"no_drawings": "No Saved Layers",
"no_drawings_desc": "You haven't saved any map annotations yet.",
"saved_on": "Saved on",
"settings": "Map Settings",
"go_to_my_location": "Go to My Location",
"source_updated": "Map source updated",
"failed_set_active": "Failed to set active map",
"file_deleted": "File deleted",
"failed_delete_file": "Failed to delete file",
"storage_saved": "Storage directory saved",
"failed_save_storage": "Failed to save directory",
"export_cancelled": "Export cancelled",
"failed_cancel_export": "Failed to cancel export",
"failed_start_export": "Failed to start export",
"select_mbtiles_error": "Please select an .mbtiles file",
"view_saved": "Default view saved",
"failed_save_view": "Failed to save default view",
"failed_clear_cache": "Failed to clear cache",
"failed_save_tile_server": "Failed to save tile server URL",
"failed_save_nominatim": "Failed to save Nominatim API URL",
"copied_coordinates": "Copied coordinates",
"failed_load_drawings": "Failed to load drawings",
"not_initialized": "Map not initialized",
"drawing_saved": "Drawing saved",
"failed_save_drawing": "Failed to save drawing",
"deleted": "Deleted",
"failed_delete": "Failed to delete",
"location_not_determined": "Could not determine your location",
"geolocation_not_supported": "Geolocation is not supported by your browser",
"no_nodes_location": "No discovered nodes with location found",
"failed_fetch_nodes": "Failed to fetch discovered nodes for mapping"
},
"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",
"downloading": "Downloading",
"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",
"paste_from_clipboard": "Paste from Clipboard",
"location": "Location",
"share_location": "Share Location",
"request_location": "Request Location",
"view_on_map": "View on Map",
"request": "Request",
"generate_paper_message": "Generate Paper Message (LXM)",
"recording": "Recording: {duration}",
"nomad_network_node": "Nomad Network Node",
"toggle_source": "Toggle Source Code",
"folder_created": "Folder created",
"failed_create_folder": "Failed to create folder",
"folder_renamed": "Folder renamed",
"failed_rename_folder": "Failed to rename folder",
"folder_deleted": "Folder deleted",
"failed_delete_folder": "Failed to delete folder",
"moved_to_folder": "Moved to folder",
"failed_move_folder": "Failed to move to folder",
"marked_read": "Marked as read",
"failed_mark_read": "Failed to mark as read",
"conversations_deleted": "Conversations deleted",
"failed_delete_conversations": "Failed to delete conversations",
"failed_export_folders": "Failed to export folders",
"folders_imported": "Folders imported",
"failed_import_folders": "Failed to import folders",
"failed_read_clipboard": "Failed to read from clipboard",
"failed_send_ingest": "Failed to send ingest request",
"address_copied": "Your LXMF address copied to clipboard",
"hash_copied": "Identity hash copied to clipboard",
"failed_to_copy_hash": "Failed to copy identity hash",
"failed_copy_address": "Failed to copy address",
"translation_failed": "Translation failed",
"failed_add_contact": "Failed to add contact",
"ingesting_paper_message": "Ingesting paper message...",
"failed_ingest_paper": "Failed to ingest paper message",
"enter_display_name": "Enter a custom display name",
"failed_update_display_name": "Failed to update display name",
"failed_load_audio": "Failed to load audio attachment.",
"no_contacts_telephone": "No contacts found in telephone",
"failed_load_contacts": "Failed to load contacts",
"location_request_sent": "Location request sent",
"failed_send_location_request": "Failed to send location request",
"remove_image_confirm": "Are you sure you want to remove this image attachment?",
"failed_start_recording": "failed to start recording",
"remove_audio_confirm": "Are you sure you want to remove this audio attachment?",
"failed_generate_qr": "Failed to generate QR",
"enter_folder_name": "Enter folder name",
"new_folder": "New Folder",
"rename_folder": "Rename folder",
"failed_render_qr": "Failed to render QR code",
"uri_copied": "URI copied to clipboard",
"failed_copy_uri": "Failed to copy URI",
"paper_message_sent": "Paper message sent successfully",
"failed_send_paper": "Failed to send paper message",
"failed_load_config": "Failed to load configuration",
"profile_icon_saved": "Profile icon saved successfully",
"failed_save_profile_icon": "Failed to save profile icon",
"select_colors_warning": "Please select both background and icon colors",
"select_icon_warning": "Please select an icon",
"changes_reset": "Changes reset to saved values",
"profile_icon_removed": "Profile icon removed successfully",
"user_banished": "User banished successfully",
"failed_banish_user": "Failed to banish user",
"delete_conversation_confirm": "Are you sure you want to delete this conversation?",
"failed_delete_conversation": "failed to delete conversation",
"delete_history_confirm": "Are you sure you want to delete all messages in this conversation? This can not be undone!",
"failed_delete_history": "failed to delete history",
"invalid_destination_hash": "Invalid destination hash",
"invalid_destination_hash_format": "Invalid destination hash format",
"ping_failed": "Ping failed. Try again later",
"ping_reply_from": "Valid reply from {hash}",
"duration": "Duration: {duration}",
"hops_there": "Hops There: {count}",
"hops_back": "Hops Back: {count}",
"signal_quality": "Signal Quality: {quality}%",
"rssi_val": "RSSI: {rssi}dBm",
"snr_val": "SNR: {snr}dB"
},
"settings": {
"shortcut_saved": "Shortcut saved",
"shortcut_deleted": "Shortcut deleted",
"archived_pages_flushed": "Archived pages flushed.",
"failed_enable_transport": "Failed to enable transport mode!",
"failed_disable_transport": "Failed to disable transport mode!",
"failed_reload_reticulum": "Failed to reload Reticulum!",
"folders_exported": "Folders exported",
"failed_export_folders": "Failed to export folders",
"folders_imported": "Folders and mappings imported successfully",
"failed_import_folders": "Failed to import folders"
},
"debug": {
"title": "Debug Logs",
"description": "View application logs and detected anomalies.",
"failed_fetch_logs": "Failed to fetch logs",
"logs_copied": "Logs on this page copied to clipboard",
"failed_copy_logs": "Failed to copy logs"
},
"visualiser": {
"title": "Network Visualiser",
"description": "Visualize the mesh network topology.",
"reticulum_mesh": "Reticulum Mesh",
"network_visualizer": "Network Visualizer",
"node_info": "Node Info",
"hash": "Hash",
"hops": "Hops",
"interface": "Interface",
"rssi": "RSSI",
"snr": "SNR",
"first_seen": "First seen",
"last_seen": "Last seen",
"center_node": "Center on node",
"copy_hash": "Copy Hash",
"banish_identity": "Banish identity",
"banished_identities": "Banished identities",
"filter_nodes": "Filter nodes...",
"all": "All",
"direct": "Direct",
"one_hop": "1 Hop",
"multi_hops": "2+ Hops",
"clear": "Clear",
"show_labels": "Show all labels",
"bouncing_balls": "Bouncing balls mode",
"orbit_mode": "Orbit mode",
"show_edges": "Show edges",
"show_tooltips": "Show tooltips",
"show_rssi": "Show RSSI",
"show_snr": "Show SNR",
"show_hops": "Show Hops",
"physics": "Physics",
"gravity": "Gravity",
"spring_length": "Spring length",
"spring_strength": "Spring strength",
"damping": "Damping",
"central_gravity": "Central gravity",
"edge_strength": "Edge strength",
"force_atlas_2": "Force Atlas 2",
"barns_hut": "Barns Hut",
"repulsion": "Repulsion",
"reset_physics": "Reset physics",
"reset_camera": "Reset Camera",
"clear_graph": "Clear graph",
"total_nodes": "Total nodes",
"total_edges": "Total edges",
"discovered": "Discovered",
"wait_between_batches": "Wait between batches",
"batch": "Batch",
"loading_status": "Loading status",
"failed_load": "Failed to load network data"
},
"banishment": {
"title": "Banished",
"description": "Manage Banished users and nodes",
"failed_load_banished": "Failed to load banished destinations",
"search_placeholder": "Search by hash or display name...",
"loading_items": "Loading banished items...",
"no_items": "No banished items found",
"lift_banishment": "Lift Banishment",
"lift_banishment_confirm": "Are you sure you want to lift the banishment for {name}?",
"banished_at": "Banished at",
"banished_until": "Banished until",
"reason": "Reason",
"type": "Type",
"user": "User",
"node": "Node",
"banishment_lifted": "Banishment lifted successfully",
"failed_lift_banishment": "Failed to lift banishment"
},
"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...",
"search_placeholder_announces": "Search {count} recent announces...",
"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": "Banish Node",
"no_announces_yet": "No announces yet",
"no_search_results_peers": "No peers found matching your search.",
"listening_for_peers": "Listening for peers on the mesh.",
"block_node_confirm": "Are you sure you want to banish {name}? Their announces will be ignored and they won't appear in the announce stream.",
"node_blocked_successfully": "Node banished successfully",
"failed_to_block_node": "Failed to banish node",
"failed_rename_favourite": "Failed to rename favourite",
"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.",
"banishment_lifted": "Banishment lifted successfully",
"failed_lift_banishment": "Failed to lift banishment",
"enter_section_name": "Enter section name",
"new_section": "New Section",
"rename_section": "Rename section",
"delete_section_confirm": "Delete this section? Favourites will move to the main section.",
"unsupported_url": "unsupported url: "
},
"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}"
},
"docs": {
"title": "Documentation",
"subtitle": "Reticulum manuals and guides.",
"status_title": "Documentation Status",
"status_downloading": "Downloading...",
"status_available": "Offline Manual Available",
"status_not_downloaded": "Not Downloaded",
"btn_download": "Download Manuals",
"btn_update": "Update Manual",
"error": "Error",
"failed_update_docs": "Failed to update documentation sources",
"docs_link_copied": "Documentation link copied to clipboard",
"failed_copy_link": "Failed to copy link"
},
"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."
},
"rnpath": {
"title": "RNPath",
"description": "Manage the path table, view announce rates and request paths.",
"failed_fetch": "Failed to fetch path data",
"path_dropped": "Path dropped",
"failed_drop": "Could not drop path",
"error_drop": "Error dropping path",
"failed_request": "Failed to request path",
"paths_dropped": "Paths dropped",
"failed_drop_paths": "Failed to drop paths",
"purge_confirm": "Purge all announce queues? This cannot be undone.",
"queues_purged": "Announce queues purged",
"failed_purge": "Failed to purge queues"
},
"translator": {
"title": "Translator",
"description": "Translate text using LibreTranslate API or local Argos Translate."
},
"forwarder": {
"title": "Forwarder",
"description": "LXMF forwarding with return path routing."
},
"rnode_flasher": {
"title": "RNode Flasher",
"description": "Flash and update RNode adapters without touching the command line.",
"select_device": "1. Select your device",
"product": "Product",
"model": "Model",
"select_product": "Select a Product",
"select_model": "Select a Model",
"enter_dfu_mode": "Enter DFU Mode",
"entering_dfu_mode": "Entering DFU Mode...",
"find_device_issue": "Can't find your device? Open an issue on",
"select_firmware": "2. Select firmware to flash (.zip)",
"flash_now": "Flash Now",
"flashing": "Flashing: {percentage}%",
"flashing_file_progress": "File {current}/{total}: {percentage}%",
"connecting_device": "Connecting to device...",
"download_firmware": "Download Firmware",
"official_firmware": "Official Firmware",
"ce_firmware": "CE Firmware",
"transport_node_firmware": "Transport Node Firmware",
"common_issues": "Common Issues",
"hardware_failure": "Hardware Failure:",
"provision_eeprom_hint": "You need to provision the eeprom in step 3.",
"firmware_corrupt": "Firmware Corrupt:",
"set_firmware_hash_hint": "You need to set the firmware hash in step 4.",
"step_provision": "3. Provision EEPROM",
"provision_description": "Sets device info, checksum and blank signature",
"provision": "Provision",
"provisioning_wait": "Provisioning: please wait...",
"step_set_hash": "4. Set Firmware Hash",
"set_hash_description": "Uses hash from board",
"set_firmware_hash": "Set Firmware Hash",
"setting_hash_wait": "Setting Firmware Hash: please wait...",
"step_done": "5. Finalize",
"download_recommended": "Download & Load Recommended Firmware",
"downloading": "Downloading...",
"done_description": "If you made it this far, and all previous steps were successful, your RNode should be ready to use.",
"meshchat_usage": "To use RNode with MeshChat, you will need to add an RNodeInterface in the Interfaces → Add Interface page.",
"sideband_usage": "To use RNode with Sideband, you will need to configure it in Hardware → RNode and enable Connectivity → Connect via RNode.",
"restart_warning": "You must restart MeshChat and Sideband for interface setting changes to take effect, otherwise nothing will happen!",
"advanced_tools": "Advanced Tools",
"detect_rnode": "Detect RNode",
"reboot_rnode": "Reboot RNode",
"read_display": "Read Display",
"dump_eeprom": "Dump EEPROM",
"wipe_eeprom": "Wipe EEPROM",
"eeprom_console_hint": "EEPROM dumps are shown in dev tools console.",
"configure_bluetooth": "Configure Bluetooth (optional)",
"bluetooth_info_1": "Bluetooth is not supported on all devices.",
"bluetooth_info_2": "Some devices use Bluetooth Classic, and some use BLE (Bluetooth Low Energy)",
"bluetooth_info_3": "Put the RNode into Bluetooth Pairing mode, then connect to it from Android Bluetooth settings.",
"bluetooth_info_4": "Once you have initiated a pair request from Android, a PIN should show on the RNode display.",
"bluetooth_info_5": "In Sideband you will need to enable Connect using Bluetooth in Hardware → RNode.",
"bluetooth_info_6": "If your device uses BLE you will also need to enable Device requires BLE in Hardware → RNode.",
"bluetooth_restart_warning": "Don't forget to restart Sideband for the setting changes to take effect!",
"enable": "Enable",
"disable": "Disable",
"start_pairing": "Start Pairing",
"configure_tnc": "Configure TNC Mode (optional)",
"tnc_info_1": "TNC mode allows an RNode to be used as a KISS compatible TNC over the Serial Port.",
"tnc_info_2": "This mode makes it usable with amateur radio software that can talk to a KISS TNC over a serial port.",
"tnc_warning": "You must leave TNC mode disabled when using RNode with apps like MeshChat or Sideband.",
"frequency": "Frequency (Hz)",
"bandwidth": "Bandwidth",
"tx_power": "Tx Power (dBm)",
"spreading_factor": "Spreading Factor",
"coding_rate": "Coding Rate",
"configure_display": "Configure Display",
"rotation": "Rotation",
"reconditioning": "Reconditioning",
"start": "Start",
"stop": "Stop",
"rotation_v180_warning": "Setting display rotation requires firmware v1.80+",
"errors": {
"failed_download": "Failed to download firmware: {error}",
"firmware_not_found_in_release": "Recommended firmware not found in the latest release.",
"web_serial_not_supported": "Web Serial is not supported in this browser. Please use Chrome, Edge, or another Chromium-based browser.",
"no_device_selected": "No device selected. Please select a serial port.",
"failed_connect": "Failed to connect to device: {error}",
"not_an_rnode": "Selected device is not an RNode! Please make sure you've selected the correct serial port.",
"failed_dfu": "Failed to enter DFU mode: {error}",
"select_firmware_first": "Please select a firmware file (.zip) first.",
"failed_flash": "Firmware flashing failed: {error}",
"esptool_not_loaded": "esptool-js could not be loaded. Please refresh the page and try again.",
"no_flash_config": "Flash configuration is not available for the selected device. Please select a different device or check the firmware file.",
"failed_extract": "Required file \"{file}\" not found in firmware ZIP file. Please download the correct firmware for your device.",
"failed_detect": "Failed to detect RNode. Make sure the device is connected and in the correct mode.",
"provisioned_already": "Eeprom is already provisioned. You must wipe it to reprovision!",
"select_product_first": "Please select a product!",
"select_model_first": "Please select a model!",
"not_provisioned": "Eeprom is not provisioned. You must do this first!",
"failed_provision": "failed to provision: {error}",
"failed_set_hash": "failed to set firmware hash: {error}",
"failed_reboot": "Failed to reboot RNode: {error}",
"failed_read_display": "Failed to read display: {error}",
"failed_dump_eeprom": "Failed to dump EEPROM: {error}",
"failed_wipe_eeprom": "Failed to wipe EEPROM: {error}",
"failed_enable_tnc": "Failed to enable TNC mode: {error}",
"failed_disable_tnc": "Failed to disable TNC mode: {error}",
"failed_enable_bluetooth": "Failed to enable Bluetooth: {error}",
"failed_disable_bluetooth": "Failed to disable Bluetooth: {error}",
"failed_start_pairing": "Failed to start pairing: {error}",
"failed_set_rotation": "Failed to set display rotation: {error}",
"failed_start_reconditioning": "Failed to start display reconditioning: {error}"
},
"alerts": {
"firmware_downloaded": "Recommended firmware has been downloaded and loaded.",
"dfu_ready": "Device should now be in DFU mode. You can now proceed with flashing firmware.",
"flash_success": "Firmware has been flashed successfully!",
"rebooting": "Board is rebooting!",
"eeprom_wipe_confirm": "Are you sure you want to wipe the eeprom on this device? This will take about 30 seconds. An alert will show when the eeprom wipe has finished.",
"eeprom_wiped": "eeprom has been wiped!",
"eeprom_dumped": "EEPROM dumped to console",
"rnode_detected": "RNode v{version} detected",
"provision_success": "device has been provisioned!",
"hash_success": "firmware hash has been set!",
"tnc_enabled": "TNC mode has been enabled!",
"tnc_disabled": "TNC mode has been disabled!",
"bluetooth_enabled": "Bluetooth has been enabled!",
"bluetooth_disabled": "Bluetooth has been disabled!",
"bluetooth_pairing_pin": "Bluetooth Pairing Pin: {pin}",
"bluetooth_pairing_started": "Pairing mode started (30s)",
"rotation_updated": "Rotation updated",
"reconditioning_started": "Reconditioning started"
}
},
"micron_editor": {
"title": "Micron Editor",
"description": "Edit and preview Micron markup with live rendering.",
"editor": "Editor",
"preview": "Preview",
"download": "Download",
"edit": "Edit",
"view_preview": "View Preview",
"placeholder": "Enter your Micron markup here...",
"reset": "Reset",
"new_tab": "New Tab",
"rename_tab": "Rename Tab",
"confirm_reset": "Are you sure you want to reset the editor? All your tabs and content will be lost.",
"confirm_delete_tab": "Are you sure you want to delete this tab?",
"main_tab": "Main",
"guide_tab": "NomadNet Guide",
"parser_by": "Using Micron Parser by"
},
"paper_message": {
"title": "Paper Message",
"description": "Generate and read LXMF signed paper messages via QR codes."
},
"rns_page_node": {
"title": "RNS Page Node",
"description": "Host Nomadnet micron pages and share files with ease."
},
"rns_tunnel": {
"title": "RNS Tunnel",
"description": "Tunnel regular IP traffic over Reticulum network links."
},
"rns_filesync": {
"title": "RNS Filesync",
"description": "Efficiently share and sync files with other mesh peers."
},
"bots": {
"title": "LXMFy Bots",
"description": "Manage automated bots for echo, notes, and reminders using LXMFy."
}
},
"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. This tool allows for reliable file transfer between mesh nodes even over high-latency links.",
"usage_steps": "How to use RNCP:",
"step_1": "1. To **receive** a file, go to the **Listen** tab, enter allowed identity hashes (who can send to you), and click **Start Listening**.",
"step_2": "2. To **send** a file, get the **Destination Hash** of a listening node, enter the **Local File Path**, and click **Send File**.",
"step_3": "3. To **fetch** a file, get the **Destination Hash** of a node listening with 'Allow Fetch' enabled, enter the **Remote File Path**, and click **Fetch File**.",
"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_load_languages": "Failed to load languages. Make sure LibreTranslate is running or Argos Translate is installed.",
"failed_translate": "Translation failed. Make sure LibreTranslate is running or Argos Translate is installed.",
"select_languages_warning": "Please select both source and target languages.",
"auto_detect_not_supported": "Auto-detection is not supported with Argos Translate. Please select a source language.",
"copied_to_clipboard": "Copied to clipboard"
},
"call": {
"phone": "Phone",
"voicemail": "Voicemail",
"settings": "Settings",
"unknown": "Unknown",
"call_ended": "Call Ended",
"call_declined": "Call Declined",
"initiation": "Initiating...",
"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 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.",
"tts_speed": "TTS Speed",
"tts_pitch": "TTS Pitch",
"tts_voice": "TTS Voice",
"tts_word_gap": "TTS Word Gap",
"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",
"call_recording": "Call Recorder",
"call_recording_description": "Record voice calls to storage",
"recordings": "Recordings",
"no_recordings": "No recordings found",
"remote_rx": "Remote (RX)",
"local_tx": "Local (TX)",
"download_rx": "Download RX",
"download_tx": "Download TX",
"default_quality": "Default Quality",
"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 to call",
"failed_to_save_settings": "Failed to save settings",
"do_not_disturb": "Do Not Disturb",
"load_more": "Load More",
"go_to_phone_page": "Go to Phone Page",
"search_history": "Search history...",
"allow_calls_from_contacts_only": "Only allow calls from contacts",
"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.",
"ringtone_volume": "Ringtone Volume",
"default_ringtone": "Default Ringtone",
"ringtone_for_non_contacts": "Ringtone for callers not in your contacts",
"primary_system_default": "Primary (System Default)",
"random": "Random",
"edit_contact": "Edit Contact",
"add_contact": "Add Contact",
"contact_name": "Contact Name",
"preferred_ringtone": "Preferred Ringtone",
"default_global_setting": "Default (Global Setting)",
"uploaded_ringtones": "Uploaded Ringtones",
"save_contact": "Save Contact",
"primary_ringtone_set": "Primary ringtone set",
"failed_to_set_primary_ringtone": "Failed to set primary ringtone",
"failed_to_update_ringtone_name": "Failed to update ringtone name",
"failed_to_play_ringtone": "Failed to play ringtone",
"failed_to_play_voicemail": "Failed to play voicemail",
"web_audio_not_available": "Web audio not available",
"no_audio_input_found": "No input audio device found. Check microphone and permissions.",
"microphone_permission_denied": "Microphone permission denied. Allow access and try again.",
"failed_to_update_dnd": "Failed to update Do Not Disturb status",
"failed_to_update_call_settings": "Failed to update call settings",
"failed_to_update_recording_status": "Failed to update call recording status",
"call_history_cleared": "Call history cleared",
"failed_to_clear_call_history": "Failed to clear call history",
"identity_banished": "Identity banished",
"failed_to_banish_identity": "Failed to banish identity",
"name_and_hash_required": "Name and identity hash required",
"contact_updated": "Contact updated",
"contact_added": "Contact added",
"contact_deleted": "Contact deleted",
"failed_to_delete_contact": "Failed to delete contact",
"hash_copied": "Hash copied to clipboard",
"failed_to_copy_hash": "Failed to copy hash",
"greeting_uploaded_successfully": "Greeting uploaded successfully",
"greeting_deleted": "Greeting deleted",
"failed_to_delete_greeting": "Failed to delete greeting",
"failed_to_start_recording_greeting": "Failed to start recording greeting",
"greeting_recorded_from_mic": "Greeting recorded from mic",
"failed_to_stop_recording_greeting": "Failed to stop recording greeting",
"failed_to_load_recording": "Failed to load recording audio",
"recording_deleted": "Recording deleted",
"failed_to_delete_recording": "Failed to delete recording",
"call_sent_to_voicemail": "Call sent to voicemail",
"failed_to_send_to_voicemail": "Failed to send call to voicemail",
"failed_load_audio_edit": "Failed to load audio for editing",
"ringtone_saved": "Ringtone saved successfully",
"failed_save_ringtone": "Failed to save edited ringtone"
},
"tutorial": {
"title": "Getting Started",
"welcome": "Welcome to",
"welcome_desc": "The future of off-grid communication. Secure, decentralized, and unstoppable.",
"security": "Security & Performance",
"security_desc": "Massive improvements in speed, security, and crash recovery.",
"security_desc_page": "Massive improvements in speed, security, and integrity with built-in crash recovery.",
"maps": "Maps",
"maps_desc": "OpenLayers w/ MBTiles support (export and offline support) and custom API endpoints.",
"maps_desc_page": "OpenLayers support with offline MBTiles (export and offline support) and custom API endpoints for online maps.",
"voice": "Full LXST Voice",
"voice_desc": "Voicemail, ringtones, phonebook, and contact sharing.",
"voice_desc_page": "Crystal clear voice calls over mesh. Voicemail, custom ringtones, and phonebook discovery.",
"tools": "Advanced Tools",
"tools_desc": "Micron Editor, NomadNet, RNS tools, Docs.",
"tools_desc_page": "Micron editor, NomadNet nodes, RNS tools, and integrated documentation.",
"archiver": "Archiver",
"archiver_desc": "Manual and Automated page archiving.",
"archiver_desc_page": "Manual and Automated page archiving tools for offline browsing.",
"banishment": "Banishment",
"banishment_desc": "Banish annoying people, nodes and support for RNS blackhole level dropping their announces",
"palette": "Command Palette + Keybindings",
"palette_desc": "Navigate everything instantly and customize shortcuts.",
"palette_desc_page": "Navigate the entire application and customize your workflow with instant shortcuts.",
"i18n": "i18n Support",
"i18n_desc": "Available in English, German, and Russian.",
"i18n_desc_page": "Full internationalization support for English, German, and Russian languages.",
"more_features": "+ many more features!",
"connect": "Connect to the Mesh",
"connect_desc": "To send messages, you need to connect to a Reticulum interface.",
"connect_desc_page": "Use one of the public networks below or add a custom interface from the Interfaces page.",
"suggested_networks": "Suggested Public Networks",
"suggested_relays": "Suggested Relays",
"use": "Use",
"online": "Online",
"custom_interfaces": "Custom Interfaces",
"custom_interfaces_desc": "Want to add a bespoke interface? Head to the Interfaces page to configure a custom connection.",
"custom_interfaces_desc_page": "For any private relays or hardware you manage yourself, add them through the dedicated Interfaces page.",
"open_interfaces": "Open Interfaces page",
"learn_create": "Learn & Create",
"learn_create_desc": "Discover how to use MeshChatX to its full potential.",
"learn_create_desc_page": "Discover how to use MeshChatX to its full potential and create your own content.",
"documentation": "Documentation",
"documentation_desc": "Read the official MeshChatX and Reticulum documentation.",
"documentation_desc_page": "Comprehensive guides for MeshChatX and the underlying Reticulum Network Stack.",
"meshchatx_docs": "MeshChatX Docs",
"reticulum_docs": "Reticulum Docs",
"read_meshchatx_docs": "Read MeshChatX Docs",
"reticulum_manual": "Reticulum Network Manual",
"micron_editor": "Micron Editor",
"micron_editor_desc": "Take a look at the Micron Editor for a guide on creating mesh-native pages.",
"micron_editor_desc_page": "Learn how to create mesh-native pages and interactive content using the Micron markup language.",
"open_micron_editor": "Open Micron Editor",
"paper_messages": "Explore NomadNet Nodes",
"paper_messages_desc": "Browse decentralized pages and services.",
"send_messages": "Send Messages",
"send_messages_desc": "Start a secure conversation.",
"explore_nodes": "Visualize Nodes",
"explore_nodes_desc": "View the network map and topology.",
"voice_calls": "Voice Calls",
"voice_calls_desc": "Check out the awesome ringtone editor!",
"ready": "Ready to Roll!",
"ready_desc": "Everything is set up. You need to restart the application for the changes to take effect.",
"ready_desc_page": "MeshChatX is now configured. You need to restart the application to finalize the connection.",
"docker_note": "If you're running in Docker, make sure you restart the container",
"restart_required": "Restart Required",
"restart_desc_page": "If you're running in Docker, ensure you restart the container. Native apps will relaunch automatically.",
"back": "Back",
"skip": "Skip",
"next": "Next",
"restart_start": "Start MeshChatX",
"skip_setup": "Skip Setup",
"continue": "Continue",
"skip_confirm": "Are you sure you want to skip the setup? You'll need to manually add interfaces later.",
"discovery_question": "Do you want to use community interface discovering and auto-connect?",
"discovery_desc": "This allows MeshChatX to automatically find and connect to public community nodes near you or on the internet.",
"yes": "Yes, use discovery",
"no": "No, manual setup",
"discovery_enabled": "Community discovery enabled",
"failed_enable_discovery": "Failed to enable discovery"
},
"command_palette": {
"search_placeholder": "Search commands, navigate, or find peers...",
"no_results": "No results found for \"{query}\"",
"group_actions": "Actions",
"group_recent": "Recent Peers",
"group_contacts": "Contacts",
"footer_navigate": "Navigate",
"footer_select": "Select",
"nav_messages": "Messages",
"nav_messages_desc": "Open messages page",
"nav_nomad": "Nomad Network",
"nav_nomad_desc": "Browse Nomad Network pages",
"nav_map": "Map",
"nav_map_desc": "View network topology map",
"nav_paper": "Paper Messages",
"nav_paper_desc": "Generate offline messages",
"nav_call": "Voice Calls",
"nav_call_desc": "Open voice calls page",
"nav_settings": "Settings",
"nav_settings_desc": "Open settings page",
"nav_ping": "Ping",
"nav_ping_desc": "Ping network nodes",
"nav_rnprobe": "RN Probe",
"nav_rnprobe_desc": "Probe Reticulum nodes",
"nav_rncp": "RN CP",
"nav_rncp_desc": "Reticulum Control Protocol",
"nav_rnstatus": "RN Status",
"nav_rnstatus_desc": "View Reticulum status",
"nav_rnpath": "RN Path",
"nav_rnpath_desc": "View network paths",
"nav_translator": "Translator",
"nav_translator_desc": "Translate messages",
"nav_forwarder": "Forwarder",
"nav_forwarder_desc": "Message forwarding tool",
"nav_documentation": "Documentation",
"nav_documentation_desc": "View documentation",
"nav_micron_editor": "Micron Editor",
"nav_micron_editor_desc": "Create mesh-native pages",
"nav_rnode_flasher": "RNode Flasher",
"nav_rnode_flasher_desc": "Flash RNode firmware",
"nav_debug_logs": "Debug Logs",
"nav_debug_logs_desc": "View debug logs",
"action_sync": "Sync Messages",
"action_sync_desc": "Sync with propagation node",
"action_compose": "Compose Message",
"action_compose_desc": "Start a new message",
"action_orbit": "Toggle Orbit",
"action_orbit_desc": "Toggle orbit mode",
"action_bouncing_balls": "Bouncing Balls",
"action_bouncing_balls_desc": "Toggle bouncing balls mode",
"action_getting_started": "Getting Started",
"action_getting_started_desc": "Show getting started guide",
"action_changelog": "Changelog",
"action_changelog_desc": "View what's new"
}
}