diff --git a/meshchatx/src/frontend/locales/de.json b/meshchatx/src/frontend/locales/de.json index 215d170..92e702d 100644 --- a/meshchatx/src/frontend/locales/de.json +++ b/meshchatx/src/frontend/locales/de.json @@ -2,7 +2,7 @@ "_languageName": "Deutsch", "bots": { "title": "LXMFy-Bots", - "description": "Verwalten Sie automatisierte Bots für Echo, Notizen und Erinnerungen mit LXMFy.", + "description": "Einfache LXMF-Bots (Echo, Notizen, Erinnerungen), wenn LXMFy installiert ist.", "bot_framework": "Bot-Framework", "lxmfy_not_detected": "LXMFy nicht erkannt", "lxmfy_not_detected_desc": "Um Bots zu verwenden, müssen Sie das LXMFy-Paket installieren:", @@ -109,6 +109,8 @@ "fallback_node_description": "Nachrichten weichen auf diesen Knoten aus, wenn die direkte Zustellung fehlschlägt.", "auto_select_node": "Besten Knoten automatisch auswählen", "auto_select_node_description": "Automatisch den besten verfügbaren Propagationsknoten basierend auf den Netzwerkhops finden und dorthin wechseln.", + "auto_select_using_label": "Propagationsknoten in Nutzung", + "auto_select_pending": "Noch kein Propagationsknoten gewählt. Die App wählt einen, sobald einer verfügbar ist.", "auto_sync_interval": "Automatisches Synchronisierungsintervall", "last_synced": "Zuletzt synchronisiert vor {time}.", "last_synced_never": "Zuletzt synchronisiert: Nie.", @@ -116,7 +118,7 @@ "propagation_stamp_description": "Erfordern Sie Proof-of-Work-Stempel für über Ihren Knoten verbreitete Nachrichten. Höhere Werte erfordern mehr Rechenaufwand. Bereich: 13-254. Standard: 16. **Hinweis:** Eine Änderung erfordert den Neustart der App.", "language": "Sprache", "select_language": "Wählen Sie Ihre bevorzugte Sprache.", - "custom_fork_by": "Angepasster Fork von", + "tagline": "All-in-One-Reticulum-Client", "open": "Öffnen", "identity": "Identität", "lxmf_address_hash": "LXMF-Adress-Hash", @@ -207,6 +209,9 @@ "sync_error": "Synchronisierungsfehler: {status}", "switching_identity": "Identität wird gewechselt...", "loading_identity": "Ihre Identität wird geladen", + "loading_overlay_kicker": "Einen Moment", + "loading_overlay_title": "Profil wird gewechselt", + "loading_overlay_subtitle": "Chats und Einstellungen werden geladen. Das dauert meist nur wenige Sekunden.", "emergency_mode_active": "Notfallmodus aktiv - In-Memory-Datenbank und eingeschränkte Dienste werden verwendet.", "blackhole_integration_enabled": "Blackhole-Integration", "blackhole_integration_description": "Identitäten automatisch auf der Reticulum-Transportebene sperren (Blackhole), wenn Benutzer in MeshChatX verbannt werden.", @@ -415,10 +420,15 @@ "import_success": "{added} Kontakt(e) importiert", "import_failed": "Import fehlgeschlagen", "import_modal_title": "Kontakte importieren", - "import_file_hint": "Wählen Sie eine JSON-Datei aus dem Kontakte-Export." + "import_file_hint": "Wählen Sie eine JSON-Datei aus dem Kontakte-Export.", + "edit_contact": "Kontakt bearbeiten", + "enter_contact_name": "Kontaktname eingeben", + "contact_updated": "Kontakt aktualisiert", + "failed_update_contact": "Kontakt konnte nicht aktualisiert werden" }, "about": { "title": "Über", + "third_party_licenses": "Lizenzen Dritter", "version": "v{version}", "rns_version": "RNS {version}", "lxmf_version": "LXMF {version}", @@ -537,7 +547,7 @@ "map": { "title": "Karte", "pop_out": "Karte ausdocken", - "description": "Offline-fähige Karte mit MBTiles-Unterstützung.", + "description": "Offline-Kartenkacheln (MBTiles) und eigene Ebenen.", "upload_mbtiles": "MBTiles hochladen", "select_file": "MBTiles-Datei auswählen", "offline_mode": "Offline-Modus", @@ -846,7 +856,7 @@ }, "forwarder": { "title": "LXMF-Weiterleiter", - "description": "Nachrichten von einer Adresse zu einer anderen weiterleiten, mit transparenter Rückleitung.", + "description": "LXMF zwischen Adressen weiterleiten, mit erhaltenem Antwort-Routing.", "add_rule": "Weiterleitungsregel hinzufügen", "name": "Name", "name_placeholder": "Regelname (z.B. Heimknoten)...", @@ -864,7 +874,7 @@ "delete_confirm": "Sind Sie sicher, dass Sie diese Regel löschen möchten?" }, "archives": { - "description": "Archivierte Nomad Network Seiten suchen und anzeigen", + "description": "In Ihrem lokalen Archiv gespeicherte Nomad-Seiten durchsuchen.", "search_placeholder": "Suche nach Inhalt, Hash oder Pfad...", "loading": "Archive werden geladen...", "no_archives_found": "Keine Archive gefunden", @@ -880,7 +890,7 @@ }, "docs": { "title": "Dokumentation", - "subtitle": "Reticulum-Handbücher und Anleitungen.", + "subtitle": "Handbücher zu Reticulum und MeshChat.", "status_title": "Dokumentationsstatus", "status_downloading": "Wird heruntergeladen...", "status_available": "Offline-Handbuch verfügbar", @@ -892,29 +902,44 @@ "docs_link_copied": "Documentation link copied to clipboard", "failed_copy_link": "Failed to copy link" }, + "licenses": { + "section_label": "Rechtliches", + "title": "Lizenzen Dritter", + "description": "Versionen, Autoren und SPDX- oder deklarierte Lizenzangaben zur Laufzeit. Daten stammen aus der installierten Python-Umgebung und von pnpm, falls verfügbar.", + "short_description": "Versionen, Autoren und Lizenzen für Backend und Frontend.", + "search_placeholder": "Pakete, Versionen, Autoren, Lizenzen suchen...", + "generated_at": "Erstellt um {time}", + "frontend_source": "Frontend-Daten: {source}", + "backend_section": "Backend (Python)", + "frontend_section": "Frontend (Node)", + "col_package": "Paket", + "col_version": "Version", + "col_author": "Autor", + "col_license": "Lizenz" + }, "tools": { "utilities": "Dienstprogramme", - "power_tools": "Power-Tools für Betreiber", - "diagnostics_description": "Diagnose- und Firmware-Helfer werden mit MeshChat geliefert, damit Sie Peers ohne Verlassen der Konsole Fehler beheben können.", + "power_tools": "Dienstprogramme", + "diagnostics_description": "Erreichbarkeit, Übertragungen, Pfade, Übersetzung, Handbücher und Hardware-Hilfen an einem Ort.", "ping": { "title": "Ping", - "description": "Latenztest für jeden LXMF-Ziel-Hash mit Live-Status." + "description": "Laufzeit bis zu einem Ziel, das Ping akzeptiert." }, "rnprobe": { "title": "RNProbe", - "description": "Ziele mit benutzerdefinierten Paketgrößen sondieren, um die Konnektivität zu testen." + "description": "Sonden mit konfigurierbarer Nutzlastgröße zu Erreichbarkeit und Verzögerung." }, "rncp": { "title": "RNCP", - "description": "Dateien über RNS mit Fortschrittsanzeige senden und empfangen." + "description": "Dateien über Reticulum (RNCP) mit Fortschritt senden und empfangen." }, "rnstatus": { "title": "RNStatus", - "description": "Schnittstellenstatistiken und Netzwerkstatusinformationen anzeigen." + "description": "Schnittstellen-Zähler und verbindungsbezogener Status von Reticulum." }, "rnpath": { "title": "RNPath", - "description": "Verwalten Sie die Pfadtabelle, sehen Sie Ankündigungsraten und fordern Sie Pfade an.", + "description": "Pfade, Ankündigungs-Warteschlangen prüfen und Routen anfordern oder verwerfen.", "failed_fetch": "Failed to fetch path data", "path_dropped": "Path dropped", "failed_drop": "Could not drop path", @@ -928,7 +953,7 @@ }, "rnpath_trace": { "title": "RNS Pfad-Verfolgung", - "description": "Visualisiere den Pfad und die Hops zu einem Ziel-Hash im Mesh.", + "description": "Hop-Liste zum Ziel-Hash entlang des aktuellen Pfads.", "destination_hash": "Ziel-Hash", "placeholder": "32-stelligen Ziel-Hash eingeben...", "trace": "Pfad verfolgen", @@ -937,21 +962,21 @@ "interface": "Ausgangs-Schnittstelle", "next_hop": "Nächster Hop", "ready_title": "Einen Pfad verfolgen", - "ready_desc": "Gib oben einen Ziel-Hash ein, um zu visualisieren, wie Pakete durch das Mesh reisen.", + "ready_desc": "Ziel-Hash eingeben, um Hops entlang des aktuellen Pfads aufzulisten.", "unknown_hops": "{count} Zwischen-Hops", "ping_test": "Mit Ping testen" }, "translator": { "title": "Übersetzer", - "description": "Text mit der LibreTranslate API oder lokalem Argos Translate übersetzen." + "description": "Text über einen LibreTranslate-Server oder lokales Argos Translate übersetzen." }, "forwarder": { "title": "Weiterleiter", - "description": "LXMF-Weiterleitung mit Rückpfad-Routing." + "description": "LXMF zwischen Adressen weiterleiten, mit erhaltenem Antwort-Routing." }, "rnode_flasher": { "title": "RNode Flasher", - "description": "RNode-Adapter flashen und aktualisieren, ohne die Kommandozeile zu berühren.", + "description": "RNode-Firmware im Browser flashen oder aktualisieren (unterstützte Hardware).", "select_device": "1. Wählen Sie Ihr Gerät aus", "product": "Produkt", "model": "Modell", @@ -1083,7 +1108,7 @@ }, "micron_editor": { "title": "Micron Editor", - "description": "Micron-Markup bearbeiten und mit Live-Rendering anzeigen.", + "description": "Micron-Markup mit Live-Vorschau bearbeiten.", "editor": "Editor", "preview": "Vorschau", "save": "Speichern", @@ -1101,28 +1126,28 @@ }, "paper_message": { "title": "Papiernachricht", - "description": "Erstellen und lesen Sie LXMF-signierte Papiernachrichten über QR-Codes." + "description": "LXMF-Papiernachrichten per QR erstellen oder einlesen." }, "mesh_server": { "title": "Mesh Server", - "description": "Micron-Seiten und Dateien direkt ueber das Reticulum-Mesh bereitstellen." + "description": "Micron-Seiten und Dateien für Peers im Mesh bereitstellen." }, "rns_tunnel": { "title": "RNSTunnel", - "description": "Regulären IP-Verkehr über Reticulum-Netzwerkverbindungen tunneln." + "description": "IP-Tunneling über Reticulum-Verbindungen (in Entwicklung)." }, "rns_filesync": { "title": "RNSFilesync", - "description": "Dateien effizient mit anderen Mesh-Peers teilen und synchronisieren." + "description": "Dateisync zwischen Mesh-Peers (in Entwicklung)." }, "bots": { "title": "LXMFy-Bots", - "description": "Verwalten Sie automatisierte Bots für Echo, Notizen und Erinnerungen mit LXMFy." + "description": "Einfache LXMF-Bots (Echo, Notizen, Erinnerungen), wenn LXMFy installiert ist." } }, "ping": { "title": "Mesh-Peers anpingen", - "description": "Nur {code}-Ziele antworten auf Ping.", + "description": "Nur Ziele mit angekündigtem Ping-App-Typ antworten.", "destination_hash": "Ziel-Hash", "timeout_seconds": "Ping-Timeout (Sekunden)", "start_ping": "Ping starten", @@ -1143,7 +1168,7 @@ "rncp": { "file_transfer": "Dateiübertragung", "title": "RNCP - Reticulum Network Copy", - "description": "Senden und Empfangen von Dateien über das Reticulum-Netzwerk unter Verwendung von RNS-Ressourcen. Dieses Tool ermöglicht eine zuverlässige Dateiübertragung zwischen Mesh-Knoten, selbst über Verbindungen mit hoher Latenz.", + "description": "Dateien über Reticulum per RNCP senden, hören oder abrufen (Blöcke, optional Kompression).", "usage_steps": "Verwendung von RNCP:", "step_1": "1. Um eine Datei zu **empfangen**, gehen Sie zum Tab **Hören**, geben Sie erlaubte Identitäts-Hashes ein (wer an Sie senden darf) und klicken Sie auf **Hören starten**.", "step_2": "2. Um eine Datei zu **senden**, besorgen Sie sich den **Ziel-Hash** eines hörenden Knotens, geben Sie den **lokalen Dateipfad** ein und klicken Sie auf **Datei senden**.", @@ -1180,7 +1205,7 @@ "rnprobe": { "network_diagnostics": "Netzwerkdiagnose", "title": "RNProbe - Ziel-Probe", - "description": "Ziele mit benutzerdefinierten Paketgrößen abfragen, um die Konnektivität zu testen und die RTT zu messen.", + "description": "Sonden mit konfigurierbarer Größe zu RTT und Zustellung.", "destination_hash": "Ziel-Hash", "full_destination_name": "Vollständiger Zielname", "probe_size_bytes": "Probe-Größe (Bytes)", @@ -1212,7 +1237,7 @@ "rnstatus": { "network_diagnostics": "Netzwerkdiagnose", "title": "RNStatus - Netzwerkstatus", - "description": "Schnittstellenstatistiken und Netzwerkstatusinformationen anzeigen.", + "description": "Schnittstellenstatistiken und Link-Status Ihrer RNS-Instanz.", "refresh": "Aktualisieren", "include_link_stats": "Link-Statistiken einbeziehen", "sort_by": "Sortieren nach:", @@ -1244,7 +1269,7 @@ "translator": { "text_translation": "Textübersetzung", "title": "Übersetzer", - "description": "Text mit der LibreTranslate-API oder dem lokalen Argos Translate übersetzen.", + "description": "Text über einen LibreTranslate-Server oder lokales Argos Translate übersetzen.", "argos_translate": "Argos Translate", "libretranslate": "LibreTranslate", "api_server": "LibreTranslate API-Server", @@ -1477,7 +1502,7 @@ "learn_create_desc_page": "Entdecken Sie, wie Sie MeshChatX optimal nutzen und Ihre eigenen Inhalte erstellen können.", "documentation": "Dokumentation", "documentation_desc": "Lesen Sie die offizielle MeshChatX- und Reticulum-Dokumentation.", - "documentation_desc_page": "Umfassende Leitfäden für MeshChatX und den zugrunde liegenden Reticulum Network Stack.", + "documentation_desc_page": "Leitfäden zu MeshChatX und dem Reticulum-Stack.", "meshchatx_docs": "MeshChatX-Dokumentation", "reticulum_docs": "Reticulum-Dokumentation", "read_meshchatx_docs": "MeshChatX-Dokumentation lesen", @@ -1487,13 +1512,13 @@ "micron_editor_desc_page": "Erfahren Sie, wie Sie mit der Micron-Markup-Sprache Mesh-native Seiten und interaktive Inhalte erstellen.", "open_micron_editor": "Micron-Editor öffnen", "paper_messages": "NomadNet-Knoten erkunden", - "paper_messages_desc": "Dezentrale Seiten und Dienste durchsuchen.", + "paper_messages_desc": "Nomad-Seiten und -Dienste durchsuchen.", "send_messages": "Nachrichten senden", "send_messages_desc": "Starten Sie eine sichere Unterhaltung.", "explore_nodes": "Knoten visualisieren", - "explore_nodes_desc": "Netzwerkkarte und Topologie anzeigen.", + "explore_nodes_desc": "Karte oder Netzwerkgraph öffnen.", "voice_calls": "Sprachanrufe", - "voice_calls_desc": "Schauen Sie sich den fantastischen Klingelton-Editor an!", + "voice_calls_desc": "Sprachanrufe tätigen und entgegennehmen.", "ready": "Bereit zum Loslegen!", "ready_desc": "Alles ist eingerichtet. Sie sollten die Anwendung neu starten, damit die Änderungen wirksam werden.", "ready_desc_page": "MeshChatX ist jetzt konfiguriert. Sie sollten die Anwendung neu starten, um die Verbindung abzuschließen.", @@ -1525,7 +1550,7 @@ "auto_propagation_enabled": "Auto-Propagation aktiviert" }, "command_palette": { - "search_placeholder": "Befehle suchen, navigieren oder Peers finden...", + "search_placeholder": "Befehle, Routen oder Peers suchen", "no_results": "Keine Ergebnisse für \"{query}\" gefunden", "group_actions": "Aktionen", "group_recent": "Kürzliche Peers", @@ -1533,53 +1558,53 @@ "footer_navigate": "Navigieren", "footer_select": "Auswählen", "nav_messages": "Nachrichten", - "nav_messages_desc": "Nachrichtenseite öffnen", + "nav_messages_desc": "Unterhaltungen und LXMF-Posteingang", "nav_nomad": "Nomad Network", - "nav_nomad_desc": "Nomad Network Seiten durchsuchen", + "nav_nomad_desc": "Nomad-Seiten und -Dienste durchsuchen", "nav_map": "Karte", - "nav_map_desc": "Netzwerktopologie-Karte anzeigen", + "nav_map_desc": "Geografische Karte und Ebenen", "nav_paper": "Papier-Nachrichten", - "nav_paper_desc": "Offline-Nachrichten erstellen", + "nav_paper_desc": "Signierte Papiernachrichten (QR)", "nav_call": "Sprachanrufe", - "nav_call_desc": "Sprachanrufseite öffnen", + "nav_call_desc": "Sprachanrufe im Mesh", "nav_settings": "Einstellungen", - "nav_settings_desc": "Einstellungsseite öffnen", + "nav_settings_desc": "App- und Transporteinstellungen", "nav_ping": "Ping", - "nav_ping_desc": "Netzwerkknoten pingen", + "nav_ping_desc": "RTT zu einem Ziel messen", "nav_rnprobe": "RNProbe", - "nav_rnprobe_desc": "Reticulum-Knoten sondieren", + "nav_rnprobe_desc": "Erreichbarkeit und Verzögerung prüfen", "nav_rncp": "RNCP", - "nav_rncp_desc": "Reticulum Control Protocol", + "nav_rncp_desc": "Dateikopie über Reticulum (RNCP)", "nav_rnstatus": "RNStatus", - "nav_rnstatus_desc": "Reticulum-Status anzeigen", + "nav_rnstatus_desc": "Schnittstellen- und Link-Statistik", "nav_rnpath": "RNPath", - "nav_rnpath_desc": "Netzwerkpfade anzeigen", + "nav_rnpath_desc": "Pfade und Ankündigungs-Warteschlangen", "nav_rnpath_trace": "RNPath-Verfolgung", - "nav_rnpath_trace_desc": "Netzwerkpfade visualisieren", + "nav_rnpath_trace_desc": "Hop-Liste zu einem Hash", "nav_translator": "Übersetzer", - "nav_translator_desc": "Nachrichten übersetzen", + "nav_translator_desc": "Nachrichtentext übersetzen", "nav_forwarder": "Weiterleiter", - "nav_forwarder_desc": "Nachrichten-Weiterleitungs-Tool", + "nav_forwarder_desc": "LXMF-Weiterleitungsregeln", "nav_documentation": "Dokumentation", - "nav_documentation_desc": "Dokumentation anzeigen", + "nav_documentation_desc": "Offline-Handbücher", "nav_micron_editor": "Micron-Editor", - "nav_micron_editor_desc": "Mesh-native Seiten erstellen", + "nav_micron_editor_desc": "Micron-Markup bearbeiten", "nav_rnode_flasher": "RNode Flasher", - "nav_rnode_flasher_desc": "RNode-Firmware flashen", + "nav_rnode_flasher_desc": "Geräte-Firmware aktualisieren", "nav_debug_logs": "Debug-Logs", - "nav_debug_logs_desc": "Debug-Logs anzeigen", + "nav_debug_logs_desc": "Anwendungs- und Zugriffsprotokolle", "action_sync": "Nachrichten synchronisieren", - "action_sync_desc": "Mit Propagationsknoten synchronisieren", + "action_sync_desc": "Mit dem Propagationsknoten synchronisieren", "action_compose": "Nachricht verfassen", - "action_compose_desc": "Eine neue Nachricht beginnen", + "action_compose_desc": "Neue LXMF-Nachricht", "action_orbit": "Orbit umschalten", - "action_orbit_desc": "Orbit-Modus umschalten", + "action_orbit_desc": "Orbit-Kamera im Netzwerkgraph", "action_getting_started": "Erste Schritte", - "action_getting_started_desc": "Einführungsleitfaden anzeigen", + "action_getting_started_desc": "Einrichtungsanleitung öffnen", "action_changelog": "Änderungsprotokoll", - "action_changelog_desc": "Was ist neu anzeigen", + "action_changelog_desc": "Letzte Änderungen", "action_bouncing_balls": "Bouncing Balls", - "action_bouncing_balls_desc": "Toggle bouncing balls mode" + "action_bouncing_balls_desc": "Physik-Demo im Graph" }, "settings": { "shortcut_saved": "Shortcut saved", @@ -1595,7 +1620,7 @@ }, "debug": { "title": "Debug Logs", - "description": "View application logs and detected anomalies.", + "description": "Anwendungsprotokolle durchsuchen und nach Stufe filtern.", "tab_logs": "Protokolle", "tab_access_attempts": "Zugriffsversuche", "search_logs_placeholder": "Protokolle durchsuchen...", @@ -1616,7 +1641,7 @@ }, "visualiser": { "title": "Network Visualiser", - "description": "Visualize the mesh network topology.", + "description": "Graph aus entdeckten Knoten und Verbindungen.", "reticulum_mesh": "Reticulum Mesh", "network_visualizer": "Network Visualizer", "node_info": "Node Info", @@ -1668,7 +1693,7 @@ }, "banishment": { "title": "Banished", - "description": "Manage Banished users and nodes", + "description": "Sperren für Identitäten und Knoten prüfen und aufheben.", "failed_load_banished": "Failed to load banished destinations", "search_placeholder": "Search by hash or display name...", "loading_items": "Loading banished items...", diff --git a/meshchatx/src/frontend/locales/en.json b/meshchatx/src/frontend/locales/en.json index af29bd3..35761db 100644 --- a/meshchatx/src/frontend/locales/en.json +++ b/meshchatx/src/frontend/locales/en.json @@ -2,7 +2,7 @@ "_languageName": "English", "bots": { "title": "LXMFy Bots", - "description": "Manage automated bots for echo, notes, and reminders using LXMFy.", + "description": "Simple LXMF bots (echo, notes, reminders) when LXMFy is installed.", "bot_framework": "Bot Framework", "lxmfy_not_detected": "LXMFy not detected", "lxmfy_not_detected_desc": "To use bots, you must install the LXMFy package:", @@ -115,6 +115,8 @@ "fallback_node_description": "Messages fallback to this node whenever direct delivery fails.", "auto_select_node": "Auto-select best node", "auto_select_node_description": "Automatically find and switch to the best available propagation node based on network hops.", + "auto_select_using_label": "Using propagation node", + "auto_select_pending": "No propagation node selected yet. The app will choose one when available.", "auto_sync_interval": "Auto Sync Interval", "last_synced": "Last synced {time} ago.", "last_synced_never": "Last synced: never.", @@ -122,7 +124,7 @@ "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", + "tagline": "All-in-one Reticulum client", "open": "Open", "identity": "Identity", "lxmf_address_hash": "LXMF Address Hash", @@ -214,6 +216,9 @@ "sync_error": "Sync error: {status}", "switching_identity": "Switching Identity...", "loading_identity": "Loading your identity", + "loading_overlay_kicker": "One moment", + "loading_overlay_title": "Switching profile", + "loading_overlay_subtitle": "Loading your chats and settings. This usually takes a few seconds.", "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.", @@ -373,6 +378,7 @@ }, "about": { "title": "About", + "third_party_licenses": "Third-party licenses", "version": "v{version}", "rns_version": "RNS {version}", "lxmf_version": "LXMF {version}", @@ -491,7 +497,7 @@ "map": { "title": "Map", "pop_out": "Pop out map", - "description": "Offline-capable map with MBTiles support.", + "description": "Offline map tiles (MBTiles) and your own layers.", "upload_mbtiles": "Upload MBTiles", "select_file": "Select MBTiles file", "offline_mode": "Offline Mode", @@ -754,7 +760,7 @@ }, "debug": { "title": "Debug Logs", - "description": "View application logs and detected anomalies.", + "description": "Browse application logs and filter by level.", "tab_logs": "Logs", "tab_access_attempts": "Access attempts", "search_logs_placeholder": "Search logs...", @@ -775,7 +781,7 @@ }, "visualiser": { "title": "Network Visualiser", - "description": "Visualize the mesh network topology.", + "description": "Graph of discovered nodes and links.", "reticulum_mesh": "Reticulum Mesh", "network_visualizer": "Network Visualizer", "node_info": "Node Info", @@ -827,7 +833,7 @@ }, "banishment": { "title": "Banished", - "description": "Manage Banished users and nodes", + "description": "Review and lift blocks on identities and nodes.", "failed_load_banished": "Failed to load banished destinations", "search_placeholder": "Search by hash or display name...", "loading_items": "Loading banished items...", @@ -903,7 +909,7 @@ }, "forwarder": { "title": "LXMF Forwarder", - "description": "Forward messages from one address to another, with transparent return routing.", + "description": "Forward LXMF between addresses with reply routing preserved.", "add_rule": "Add Forwarding Rule", "name": "Name", "name_placeholder": "Rule name (e.g. Home Node)...", @@ -921,7 +927,7 @@ "delete_confirm": "Are you sure you want to delete this rule?" }, "archives": { - "description": "Search and view archived Nomad Network pages", + "description": "Search Nomad Network pages stored in your local archive.", "search_placeholder": "Search content, hash or path...", "loading": "Loading archives...", "no_archives_found": "No archives found", @@ -937,7 +943,7 @@ }, "docs": { "title": "Documentation", - "subtitle": "Reticulum manuals and guides.", + "subtitle": "Reticulum and MeshChat manuals.", "status_title": "Documentation Status", "status_downloading": "Downloading...", "status_available": "Offline Manual Available", @@ -949,29 +955,44 @@ "docs_link_copied": "Documentation link copied to clipboard", "failed_copy_link": "Failed to copy link" }, + "licenses": { + "section_label": "Legal", + "title": "Third-party licenses", + "description": "Runtime dependency versions, authors, and SPDX or declared license strings. Data is collected from the installed Python environment and from pnpm when available.", + "short_description": "Dependency versions, authors, and licenses for backend and frontend.", + "search_placeholder": "Search packages, versions, authors, licenses...", + "generated_at": "Generated at {time}", + "frontend_source": "Frontend data: {source}", + "backend_section": "Backend (Python)", + "frontend_section": "Frontend (Node)", + "col_package": "Package", + "col_version": "Version", + "col_author": "Author", + "col_license": "License" + }, "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.", + "power_tools": "Utilities", + "diagnostics_description": "Connectivity checks, transfers, paths, translation, docs, and hardware helpers in one place.", "ping": { "title": "Ping", - "description": "Latency test for any LXMF destination hash with live status." + "description": "Measure round-trip time to a destination that accepts ping." }, "rnprobe": { "title": "RNProbe", - "description": "Probe destinations with custom packet sizes to test connectivity." + "description": "Send probes with configurable payload size to test reachability and delay." }, "rncp": { "title": "RNCP", - "description": "Send and receive files over RNS with progress tracking." + "description": "Send and receive files over Reticulum (RNCP) with progress." }, "rnstatus": { "title": "RNStatus", - "description": "View interface statistics and network status information." + "description": "Per-interface counters and link-oriented status from Reticulum." }, "rnpath": { "title": "RNPath", - "description": "Manage the path table, view announce rates and request paths.", + "description": "Inspect paths, announces, and request or drop routes.", "failed_fetch": "Failed to fetch path data", "path_dropped": "Path dropped", "failed_drop": "Could not drop path", @@ -985,7 +1006,7 @@ }, "rnpath_trace": { "title": "RNS Path Trace", - "description": "Visualize the path and hops to any destination hash on the mesh.", + "description": "Show the hop list toward a destination hash.", "destination_hash": "Destination Hash", "placeholder": "Enter 32-char destination hash...", "trace": "Trace Path", @@ -994,21 +1015,21 @@ "interface": "Exit Interface", "next_hop": "Next Hop", "ready_title": "Trace a Path", - "ready_desc": "Enter a destination hash above to visualize how packets travel through the mesh to reach it.", + "ready_desc": "Enter a destination hash to list hops along the current path.", "unknown_hops": "{count} Intermediate Hops", "ping_test": "Test with Ping" }, "translator": { "title": "Translator", - "description": "Translate text using LibreTranslate API or local Argos Translate." + "description": "Translate text via a LibreTranslate server or local Argos Translate." }, "forwarder": { "title": "Forwarder", - "description": "LXMF forwarding with return path routing." + "description": "Forward LXMF between addresses with reply routing preserved." }, "rnode_flasher": { "title": "RNode Flasher", - "description": "Flash and update RNode adapters without touching the command line.", + "description": "Flash or update RNode firmware from the browser (supported hardware).", "select_device": "1. Select your device", "product": "Product", "model": "Model", @@ -1140,7 +1161,7 @@ }, "micron_editor": { "title": "Micron Editor", - "description": "Edit and preview Micron markup with live rendering.", + "description": "Edit Micron markup with a live preview.", "editor": "Editor", "preview": "Preview", "save": "Save", @@ -1158,28 +1179,28 @@ }, "paper_message": { "title": "Paper Message", - "description": "Generate and read LXMF signed paper messages via QR codes." + "description": "Create or scan QR-encoded LXMF paper messages." }, "mesh_server": { "title": "Mesh Server", - "description": "Serve Micron pages and files directly over the Reticulum mesh." + "description": "Host Micron pages and files for peers on the mesh." }, "rns_tunnel": { "title": "RNS Tunnel", - "description": "Tunnel regular IP traffic over Reticulum network links." + "description": "IP tunneling over Reticulum links (in development)." }, "rns_filesync": { "title": "RNS Filesync", - "description": "Efficiently share and sync files with other mesh peers." + "description": "File sync between mesh peers (in development)." }, "bots": { "title": "LXMFy Bots", - "description": "Manage automated bots for echo, notes, and reminders using LXMFy." + "description": "Simple LXMF bots (echo, notes, reminders) when LXMFy is installed." } }, "ping": { "title": "Ping Mesh Peers", - "description": "Only {code} destinations respond to ping.", + "description": "Only destinations that expose the ping app type will answer.", "destination_hash": "Destination Hash", "timeout_seconds": "Ping Timeout (seconds)", "start_ping": "Start Ping", @@ -1200,7 +1221,7 @@ "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.", + "description": "Send, listen, or fetch files over Reticulum using RNCP (chunked transfers, optional compression).", "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**.", @@ -1237,7 +1258,7 @@ "rnprobe": { "network_diagnostics": "Network Diagnostics", "title": "RNProbe - Destination Probe", - "description": "Probe destinations with custom packet sizes to test connectivity and measure RTT.", + "description": "Send probes with configurable size to measure RTT and delivery.", "destination_hash": "Destination Hash", "full_destination_name": "Full Destination Name", "probe_size_bytes": "Probe Size (bytes)", @@ -1269,7 +1290,7 @@ "rnstatus": { "network_diagnostics": "Network Diagnostics", "title": "RNStatus - Network Status", - "description": "View interface statistics and network status information.", + "description": "Per-interface statistics and link status from your RNS instance.", "refresh": "Refresh", "include_link_stats": "Include Link Stats", "sort_by": "Sort by:", @@ -1301,7 +1322,7 @@ "translator": { "text_translation": "Text Translation", "title": "Translator", - "description": "Translate text using LibreTranslate API or local Argos Translate.", + "description": "Translate text via a LibreTranslate server or local Argos Translate.", "argos_translate": "Argos Translate", "libretranslate": "LibreTranslate", "api_server": "LibreTranslate API Server", @@ -1534,7 +1555,11 @@ "import_success": "Imported {added} contact(s)", "import_failed": "Failed to import contacts", "import_modal_title": "Import Contacts", - "import_file_hint": "Select a JSON file exported from Contacts." + "import_file_hint": "Select a JSON file exported from Contacts.", + "edit_contact": "Edit Contact", + "enter_contact_name": "Enter contact name", + "contact_updated": "Contact updated", + "failed_update_contact": "Failed to update contact" }, "tutorial": { "title": "Getting Started", @@ -1580,7 +1605,7 @@ "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.", + "documentation_desc_page": "Guides for MeshChatX and the Reticulum stack.", "meshchatx_docs": "MeshChatX Docs", "reticulum_docs": "Reticulum Docs", "read_meshchatx_docs": "Read MeshChatX Docs", @@ -1590,13 +1615,13 @@ "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.", + "paper_messages_desc": "Browse Nomad 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.", + "explore_nodes_desc": "Open the map or network graph.", "voice_calls": "Voice Calls", - "voice_calls_desc": "Check out the awesome ringtone editor!", + "voice_calls_desc": "Place and receive voice calls.", "ready": "Ready to Roll!", "ready_desc": "Everything is set up. You should restart the application for the changes to take effect.", "ready_desc_page": "MeshChatX is now configured. You should restart the application to finalize the connection.", @@ -1628,7 +1653,7 @@ "auto_propagation_enabled": "Auto-propagation enabled" }, "command_palette": { - "search_placeholder": "Search commands, navigate, or find peers...", + "search_placeholder": "Search commands, routes, or peers", "no_results": "No results found for \"{query}\"", "group_actions": "Actions", "group_recent": "Recent Peers", @@ -1636,52 +1661,52 @@ "footer_navigate": "Navigate", "footer_select": "Select", "nav_messages": "Messages", - "nav_messages_desc": "Open messages page", + "nav_messages_desc": "Conversations and LXMF inbox", "nav_nomad": "Nomad Network", - "nav_nomad_desc": "Browse Nomad Network pages", + "nav_nomad_desc": "Browse Nomad pages and services", "nav_map": "Map", - "nav_map_desc": "View network topology map", + "nav_map_desc": "Geographic map and layers", "nav_paper": "Paper Messages", - "nav_paper_desc": "Generate offline messages", + "nav_paper_desc": "Signed paper messages (QR)", "nav_call": "Voice Calls", - "nav_call_desc": "Open voice calls page", + "nav_call_desc": "Voice calls over the mesh", "nav_settings": "Settings", - "nav_settings_desc": "Open settings page", + "nav_settings_desc": "App and transport preferences", "nav_ping": "Ping", - "nav_ping_desc": "Ping network nodes", + "nav_ping_desc": "Measure RTT to a destination", "nav_rnprobe": "RNProbe", - "nav_rnprobe_desc": "Probe Reticulum nodes", + "nav_rnprobe_desc": "Probe reachability and delay", "nav_rncp": "RNCP", - "nav_rncp_desc": "Reticulum Control Protocol", + "nav_rncp_desc": "File copy over Reticulum (RNCP)", "nav_rnstatus": "RNStatus", - "nav_rnstatus_desc": "View Reticulum status", + "nav_rnstatus_desc": "Interface and link statistics", "nav_rnpath": "RNPath", - "nav_rnpath_desc": "View network paths", + "nav_rnpath_desc": "Paths and announce queues", "nav_rnpath_trace": "RNPath Trace", - "nav_rnpath_trace_desc": "Visualize network paths", + "nav_rnpath_trace_desc": "Hop list toward a hash", "nav_translator": "Translator", - "nav_translator_desc": "Translate messages", + "nav_translator_desc": "Translate message text", "nav_forwarder": "Forwarder", - "nav_forwarder_desc": "Message forwarding tool", + "nav_forwarder_desc": "LXMF forwarding rules", "nav_documentation": "Documentation", - "nav_documentation_desc": "View documentation", + "nav_documentation_desc": "Offline manuals", "nav_micron_editor": "Micron Editor", - "nav_micron_editor_desc": "Create mesh-native pages", + "nav_micron_editor_desc": "Edit Micron markup", "nav_rnode_flasher": "RNode Flasher", - "nav_rnode_flasher_desc": "Flash RNode firmware", + "nav_rnode_flasher_desc": "Device firmware update", "nav_debug_logs": "Debug Logs", - "nav_debug_logs_desc": "View debug logs", + "nav_debug_logs_desc": "Application and access logs", "action_sync": "Sync Messages", - "action_sync_desc": "Sync with propagation node", + "action_sync_desc": "Sync with your propagation node", "action_compose": "Compose Message", - "action_compose_desc": "Start a new message", + "action_compose_desc": "New LXMF message", "action_orbit": "Toggle Orbit", - "action_orbit_desc": "Toggle orbit mode", + "action_orbit_desc": "Orbit camera in network graph", "action_bouncing_balls": "Bouncing Balls", - "action_bouncing_balls_desc": "Toggle bouncing balls mode", + "action_bouncing_balls_desc": "Physics demo on the graph", "action_getting_started": "Getting Started", - "action_getting_started_desc": "Show getting started guide", + "action_getting_started_desc": "Open the setup guide", "action_changelog": "Changelog", - "action_changelog_desc": "View what's new" + "action_changelog_desc": "Recent changes" } } diff --git a/meshchatx/src/frontend/locales/it.json b/meshchatx/src/frontend/locales/it.json index af370c5..66794a7 100644 --- a/meshchatx/src/frontend/locales/it.json +++ b/meshchatx/src/frontend/locales/it.json @@ -2,7 +2,7 @@ "_languageName": "Italiano", "bots": { "title": "LXMFy Bot", - "description": "Gestisci bot automatizzati per echo, note e promemoria usando LXMFy.", + "description": "Bot LXMF semplici (echo, note, promemoria) se LXMFy è installato.", "bot_framework": "Bot Framework", "lxmfy_not_detected": "LXMFy non rilevato", "lxmfy_not_detected_desc": "Per usare i bot, devi installare il pacchetto LXMFy:", @@ -115,6 +115,8 @@ "fallback_node_description": "I messaggi ripiegano su questo nodo ogni volta che la consegna diretta fallisce.", "auto_select_node": "Selezione automatica del miglior nodo", "auto_select_node_description": "Trova e passa automaticamente al miglior nodo di propagazione disponibile in base agli hop di rete.", + "auto_select_using_label": "Nodo di propagazione in uso", + "auto_select_pending": "Nessun nodo di propagazione selezionato. L'app ne sceglierà uno quando disponibile.", "auto_sync_interval": "Intervallo Sincronizzazione Automatica", "last_synced": "Ultima sincronizzazione {time} fa.", "last_synced_never": "Ultima sincronizzazione: mai.", @@ -122,7 +124,7 @@ "propagation_stamp_description": "Richiedi francobolli proof-of-work per i messaggi propagati attraverso il tuo nodo. Valori più alti richiedono più lavoro computazionale. Intervallo: 13-254. Predefinito: 16. **Nota:** La modifica richiede il riavvio dell'app.", "language": "Lingua", "select_language": "Seleziona la tua lingua preferita.", - "custom_fork_by": "Fork personalizzato da", + "tagline": "Client Reticulum tutto in uno", "open": "Apri", "identity": "Identità", "lxmf_address_hash": "Hash Indirizzo LXMF", @@ -214,6 +216,9 @@ "sync_error": "Errore sincronizzazione: {status}", "switching_identity": "Cambiando Identità...", "loading_identity": "Caricamento della tua identità", + "loading_overlay_kicker": "Attendere", + "loading_overlay_title": "Cambio profilo", + "loading_overlay_subtitle": "Caricamento chat e impostazioni. Di solito bastano pochi secondi.", "emergency_mode_active": "Modalità Emergenza Attiva - Utilizzo del database in memoria e servizi limitati.", "blackhole_integration_enabled": "Integrazione Blackhole", "blackhole_integration_description": "Metti automaticamente in blackhole le identità a livello di trasporto Reticulum quando esili gli utenti in MeshChatX.", @@ -415,10 +420,15 @@ "import_success": "Importati {added} contatto/i", "import_failed": "Importazione fallita", "import_modal_title": "Importa contatti", - "import_file_hint": "Seleziona un file JSON esportato da Contatti." + "import_file_hint": "Seleziona un file JSON esportato da Contatti.", + "edit_contact": "Modifica contatto", + "enter_contact_name": "Inserisci il nome del contatto", + "contact_updated": "Contatto aggiornato", + "failed_update_contact": "Impossibile aggiornare il contatto" }, "about": { "title": "Informazioni", + "third_party_licenses": "Licenze di terze parti", "version": "v{version}", "rns_version": "RNS {version}", "lxmf_version": "LXMF {version}", @@ -537,7 +547,7 @@ "map": { "title": "Mappa", "pop_out": "Apri mappa in finestra", - "description": "Mappa compatibile con l'uso offline e supporto MBTiles.", + "description": "Tile offline (MBTiles) e livelli personalizzati.", "upload_mbtiles": "Carica MBTiles", "select_file": "Seleziona file MBTiles", "offline_mode": "Modalità Offline", @@ -800,7 +810,7 @@ }, "debug": { "title": "Log di Debug", - "description": "Visualizza i log dell'applicazione e le anomalie rilevate.", + "description": "Sfoglia i log dell'app e filtra per livello.", "tab_logs": "Log", "tab_access_attempts": "Tentativi di accesso", "search_logs_placeholder": "Cerca nei log...", @@ -821,7 +831,7 @@ }, "visualiser": { "title": "Visualizzatore di Rete", - "description": "Visualizza la topologia della rete mesh.", + "description": "Grafo di nodi e collegamenti rilevati.", "reticulum_mesh": "Reticulum Mesh", "network_visualizer": "Visualizzatore di Rete", "node_info": "Info Nodo", @@ -873,7 +883,7 @@ }, "banishment": { "title": "Esiliati", - "description": "Gestisci gli utenti e i nodi esiliati", + "description": "Esamina e revoca i blocchi su identità e nodi.", "failed_load_banished": "Impossibile caricare le destinazioni esiliate", "search_placeholder": "Cerca per hash o nome visualizzato...", "loading_items": "Caricamento elementi esiliati...", @@ -949,7 +959,7 @@ }, "forwarder": { "title": "Inoltro LXMF", - "description": "Inoltra i messaggi da un indirizzo a un altro, con instradamento di ritorno trasparente.", + "description": "Inoltra LXMF tra indirizzi mantenendo il routing delle risposte.", "add_rule": "Aggiungi Regola di Inoltro", "name": "Nome", "name_placeholder": "Nome regola (es. Nodo Casa)...", @@ -967,7 +977,7 @@ "delete_confirm": "Sei sicuro di voler eliminare questa regola?" }, "archives": { - "description": "Cerca e visualizza le pagine Nomad Network archiviate", + "description": "Cerca pagine Nomad salvate nel tuo archivio locale.", "search_placeholder": "Cerca contenuto, hash o percorso...", "loading": "Caricamento archivi...", "no_archives_found": "Nessun archivio trovato", @@ -983,7 +993,7 @@ }, "docs": { "title": "Documentazione", - "subtitle": "Manuali e guide Reticulum.", + "subtitle": "Manuali Reticulum e MeshChat.", "status_title": "Stato Documentazione", "status_downloading": "Scaricamento...", "status_available": "Manuale Offline Disponibile", @@ -995,29 +1005,44 @@ "docs_link_copied": "Link alla documentazione copiato negli appunti", "failed_copy_link": "Impossibile copiare il link" }, + "licenses": { + "section_label": "Note legali", + "title": "Licenze di terze parti", + "description": "Versioni, autori e licenze SPDX o dichiarate delle dipendenze a runtime. I dati provengono dall'ambiente Python installato e da pnpm se disponibile.", + "short_description": "Versioni, autori e licenze per backend e frontend.", + "search_placeholder": "Cerca pacchetti, versioni, autori, licenze...", + "generated_at": "Generato alle {time}", + "frontend_source": "Dati frontend: {source}", + "backend_section": "Backend (Python)", + "frontend_section": "Frontend (Node)", + "col_package": "Pacchetto", + "col_version": "Versione", + "col_author": "Autore", + "col_license": "Licenza" + }, "tools": { "utilities": "Utilità", - "power_tools": "Strumenti avanzati per operatori", - "diagnostics_description": "Gli strumenti di diagnostica e gli assistenti firmware sono inclusi in MeshChat per consentirti di risolvere i problemi dei peer senza lasciare la console.", + "power_tools": "Utilità", + "diagnostics_description": "Controlli di connettività, trasferimenti, percorsi, traduzione, manuali e assistenza hardware in un unico posto.", "ping": { "title": "Ping", - "description": "Test di latenza per qualsiasi destinazione LXMF con stato in tempo reale." + "description": "Misura il tempo di andata e ritorno verso una destinazione che accetta il ping." }, "rnprobe": { "title": "RNProbe", - "description": "Sonda le destinazioni con dimensioni dei pacchetti personalizzate per testare la connettività." + "description": "Invia sonde con dimensione payload configurabile per verificare raggiungibilità e ritardo." }, "rncp": { "title": "RNCP", - "description": "Invia e ricevi file su RNS con monitoraggio dell'avanzamento." + "description": "Invia e ricevi file su Reticulum (RNCP) con avanzamento." }, "rnstatus": { "title": "RNStatus", - "description": "Visualizza le statistiche delle interfacce e le informazioni sullo stato della rete." + "description": "Contatori per interfaccia e stato orientato al collegamento da Reticulum." }, "rnpath": { "title": "RNPath", - "description": "Gestisci la tabella dei percorsi, visualizza i tassi di annuncio e richiedi percorsi.", + "description": "Ispeziona percorsi e code di annuncio; richiedi o elimina route.", "failed_fetch": "Impossibile recuperare i dati del percorso", "path_dropped": "Percorso eliminato", "failed_drop": "Impossibile eliminare il percorso", @@ -1031,7 +1056,7 @@ }, "rnpath_trace": { "title": "RNS Path Trace", - "description": "Visualizza il percorso e i salti verso qualsiasi hash di destinazione sulla mesh.", + "description": "Elenco dei salti verso l'hash di destinazione lungo il percorso attuale.", "destination_hash": "Hash di Destinazione", "placeholder": "Inserisci hash di destinazione a 32 caratteri...", "trace": "Traccia Percorso", @@ -1040,21 +1065,21 @@ "interface": "Interfaccia di Uscita", "next_hop": "Prossimo Salto", "ready_title": "Traccia un Percorso", - "ready_desc": "Inserisci un hash di destinazione sopra per visualizzare come i pacchetti viaggiano attraverso la mesh per raggiungerlo.", + "ready_desc": "Inserisci un hash di destinazione per elencare i salti lungo il percorso attuale.", "unknown_hops": "{count} Salti Intermedi", "ping_test": "Test con Ping" }, "translator": { "title": "Traduttore", - "description": "Traduci testo usando l'API LibreTranslate o Argos Translate locale." + "description": "Traduci testo tramite un server LibreTranslate o Argos Translate locale." }, "forwarder": { "title": "Inoltro", - "description": "Inoltro LXMF con instradamento del percorso di ritorno." + "description": "Inoltra LXMF tra indirizzi mantenendo il routing delle risposte." }, "rnode_flasher": { "title": "Flasher RNode", - "description": "Flasher e aggiornamento degli adattatori RNode senza toccare la riga di comando.", + "description": "Flash o aggiorna il firmware RNode dal browser (hardware supportato).", "select_device": "1. Seleziona il tuo dispositivo", "product": "Prodotto", "model": "Modello", @@ -1186,7 +1211,7 @@ }, "micron_editor": { "title": "Editor Micron", - "description": "Modifica e visualizza l'anteprima del markup Micron con rendering live.", + "description": "Modifica il markup Micron con anteprima live.", "editor": "Editor", "preview": "Anteprima", "save": "Salva", @@ -1204,28 +1229,28 @@ }, "paper_message": { "title": "Messaggio Cartaceo", - "description": "Genera e leggi messaggi cartacei LXMF firmati tramite codici QR." + "description": "Crea o leggi messaggi cartacei LXMF tramite QR." }, "mesh_server": { "title": "Mesh Server", - "description": "Servi pagine Micron e file direttamente sulla rete Reticulum." + "description": "Pubblica pagine Micron e file per i peer sulla mesh." }, "rns_tunnel": { "title": "RNS Tunnel", - "description": "Crea tunnel per il traffico IP regolare su collegamenti di rete Reticulum." + "description": "Tunnel IP su collegamenti Reticulum (in sviluppo)." }, "rns_filesync": { "title": "RNS Filesync", - "description": "Condividi e sincronizza file in modo efficiente con altri peer della mesh." + "description": "Sincronizzazione file tra peer mesh (in sviluppo)." }, "bots": { "title": "LXMFy Bot", - "description": "Gestisci bot automatizzati per echo, note e promemoria usando LXMFy." + "description": "Bot LXMF semplici (echo, note, promemoria) se LXMFy è installato." } }, "ping": { "title": "Ping Peer della Mesh", - "description": "Solo le destinazioni {code} rispondono al ping.", + "description": "Rispondono solo le destinazioni che espongono il tipo app ping.", "destination_hash": "Hash di Destinazione", "timeout_seconds": "Timeout Ping (secondi)", "start_ping": "Inizia Ping", @@ -1246,7 +1271,7 @@ "rncp": { "file_transfer": "Trasferimento File", "title": "RNCP - Reticulum Network Copy", - "description": "Invia e ricevi file sulla rete Reticulum usando le risorse RNS. Questo strumento consente un trasferimento affidabile dei file tra i nodi della mesh anche su collegamenti ad alta latenza.", + "description": "Invia, ascolta o recupera file su Reticulum con RNCP (blocchi, compressione opzionale).", "usage_steps": "Come usare RNCP:", "step_1": "1. Per **ricevere** un file, vai alla scheda **Ascolta**, inserisci gli hash delle identità consentite (chi può inviarti file) e clicca su **Inizia Ascolto**.", "step_2": "2. Per **inviare** un file, ottieni l'**Hash di Destinazione** di un nodo in ascolto, inserisci il **Percorso File Locale** e clicca su **Invia File**.", @@ -1283,7 +1308,7 @@ "rnprobe": { "network_diagnostics": "Diagnostica di Rete", "title": "RNProbe - Sonda Destinazione", - "description": "Sonda le destinazioni con dimensioni dei pacchetti personalizzate per testare la connettività e misurare l'RTT.", + "description": "Invia sonde con dimensione configurabile per misurare RTT e consegna.", "destination_hash": "Hash di Destinazione", "full_destination_name": "Nome Destinazione Completo", "probe_size_bytes": "Dimensione Sonda (byte)", @@ -1315,7 +1340,7 @@ "rnstatus": { "network_diagnostics": "Diagnostica di Rete", "title": "RNStatus - Stato della Rete", - "description": "Visualizza le statistiche delle interfacce e le informazioni sullo stato della rete.", + "description": "Statistiche per interfaccia e stato del collegamento dalla tua istanza RNS.", "refresh": "Aggiorna", "include_link_stats": "Includi Statistiche Collegamento", "sort_by": "Ordina per:", @@ -1347,7 +1372,7 @@ "translator": { "text_translation": "Traduzione Testo", "title": "Traduttore", - "description": "Traduci testo usando l'API LibreTranslate o Argos Translate locale.", + "description": "Traduci testo tramite un server LibreTranslate o Argos Translate locale.", "argos_translate": "Argos Translate", "libretranslate": "LibreTranslate", "api_server": "Server API LibreTranslate", @@ -1580,7 +1605,7 @@ "learn_create_desc_page": "Scopri come usare MeshChatX al massimo delle sue potenzialità e crea i tuoi contenuti.", "documentation": "Documentazione", "documentation_desc": "Leggi la documentazione ufficiale di MeshChatX e Reticulum.", - "documentation_desc_page": "Guide complete per MeshChatX e lo stack di rete Reticulum sottostante.", + "documentation_desc_page": "Guide su MeshChatX e lo stack Reticulum.", "meshchatx_docs": "Doc MeshChatX", "reticulum_docs": "Doc Reticulum", "read_meshchatx_docs": "Leggi Doc MeshChatX", @@ -1590,13 +1615,13 @@ "micron_editor_desc_page": "Impara come creare pagine mesh-native e contenuti interattivi usando il linguaggio di markup Micron.", "open_micron_editor": "Apri Editor Micron", "paper_messages": "Esplora Nodi NomadNet", - "paper_messages_desc": "Sfoglia pagine e servizi decentralizzati.", + "paper_messages_desc": "Sfoglia pagine e servizi Nomad.", "send_messages": "Invia Messaggi", "send_messages_desc": "Inizia una conversazione sicura.", "explore_nodes": "Visualizza Nodi", - "explore_nodes_desc": "Visualizza la mappa e la topologia della rete.", + "explore_nodes_desc": "Apri la mappa o il grafico di rete.", "voice_calls": "Chiamate Vocali", - "voice_calls_desc": "Prova il fantastico editor di suonerie!", + "voice_calls_desc": "Effettua e ricevi chiamate vocali.", "ready": "Pronto per Iniziare!", "ready_desc": "Tutto è configurato. Si consiglia di riavviare l'applicazione affinché le modifiche abbiano effetto.", "ready_desc_page": "MeshChatX è ora configurato. Si consiglia di riavviare l'applicazione per finalizzare la connessione.", @@ -1628,7 +1653,7 @@ "auto_propagation_enabled": "Auto-propagazione abilitata" }, "command_palette": { - "search_placeholder": "Cerca comandi, naviga o trova peer...", + "search_placeholder": "Cerca comandi, percorsi o peer", "no_results": "Nessun risultato trovato per \"{query}\"", "group_actions": "Azioni", "group_recent": "Peer Recenti", @@ -1636,52 +1661,52 @@ "footer_navigate": "Naviga", "footer_select": "Seleziona", "nav_messages": "Messaggi", - "nav_messages_desc": "Apri la pagina dei messaggi", + "nav_messages_desc": "Conversazioni e posta LXMF", "nav_nomad": "Nomad Network", - "nav_nomad_desc": "Sfoglia le pagine Nomad Network", + "nav_nomad_desc": "Sfoglia pagine e servizi Nomad", "nav_map": "Mappa", - "nav_map_desc": "Visualizza la mappa della topologia di rete", + "nav_map_desc": "Mappa geografica e livelli", "nav_paper": "Messaggi Cartacei", - "nav_paper_desc": "Genera messaggi offline", + "nav_paper_desc": "Messaggi cartacei firmati (QR)", "nav_call": "Chiamate Vocali", - "nav_call_desc": "Apri la pagina delle chiamate vocali", + "nav_call_desc": "Chiamate vocali sulla mesh", "nav_settings": "Impostazioni", - "nav_settings_desc": "Apri la pagina delle impostazioni", + "nav_settings_desc": "Preferenze app e trasporto", "nav_ping": "Ping", - "nav_ping_desc": "Ping nodi di rete", + "nav_ping_desc": "Misura RTT verso una destinazione", "nav_rnprobe": "RNProbe", - "nav_rnprobe_desc": "Sonda i nodi Reticulum", + "nav_rnprobe_desc": "Verifica raggiungibilità e ritardo", "nav_rncp": "RNCP", - "nav_rncp_desc": "Reticulum Control Protocol", + "nav_rncp_desc": "Copia file su Reticulum (RNCP)", "nav_rnstatus": "RNStatus", - "nav_rnstatus_desc": "Visualizza lo stato di Reticulum", + "nav_rnstatus_desc": "Statistiche interfaccia e collegamento", "nav_rnpath": "RNPath", - "nav_rnpath_desc": "Visualizza i percorsi di rete", + "nav_rnpath_desc": "Percorsi e code di annuncio", "nav_rnpath_trace": "RNPath Trace", - "nav_rnpath_trace_desc": "Visualizza i percorsi di rete", + "nav_rnpath_trace_desc": "Elenco salti verso un hash", "nav_translator": "Traduttore", - "nav_translator_desc": "Traduci messaggi", + "nav_translator_desc": "Traduci il testo dei messaggi", "nav_forwarder": "Inoltro", - "nav_forwarder_desc": "Strumento di inoltro messaggi", + "nav_forwarder_desc": "Regole di inoltro LXMF", "nav_documentation": "Documentazione", - "nav_documentation_desc": "Visualizza la documentazione", + "nav_documentation_desc": "Manuali offline", "nav_micron_editor": "Editor Micron", - "nav_micron_editor_desc": "Crea pagine mesh-native", + "nav_micron_editor_desc": "Modifica markup Micron", "nav_rnode_flasher": "Flasher RNode", - "nav_rnode_flasher_desc": "Flasha il firmware RNode", + "nav_rnode_flasher_desc": "Aggiornamento firmware dispositivo", "nav_debug_logs": "Log di Debug", - "nav_debug_logs_desc": "Visualizza i log di debug", + "nav_debug_logs_desc": "Log applicazione e accessi", "action_sync": "Sincronizza Messaggi", "action_sync_desc": "Sincronizza con il nodo di propagazione", "action_compose": "Componi Messaggio", - "action_compose_desc": "Inizia un nuovo messaggio", + "action_compose_desc": "Nuovo messaggio LXMF", "action_orbit": "Attiva/Disattiva Orbita", - "action_orbit_desc": "Attiva o disattiva la modalità orbita", + "action_orbit_desc": "Camera orbita nel grafico di rete", "action_bouncing_balls": "Palle Rimbalzanti", - "action_bouncing_balls_desc": "Attiva o disattiva la modalità palle rimbalzanti", + "action_bouncing_balls_desc": "Demo fisica sul grafico", "action_getting_started": "Guida Introduttiva", - "action_getting_started_desc": "Mostra la guida introduttiva", + "action_getting_started_desc": "Apri la guida di configurazione", "action_changelog": "Changelog", - "action_changelog_desc": "Visualizza le novità" + "action_changelog_desc": "Modifiche recenti" } } diff --git a/meshchatx/src/frontend/locales/ru.json b/meshchatx/src/frontend/locales/ru.json index f0262d2..ecfbd9e 100644 --- a/meshchatx/src/frontend/locales/ru.json +++ b/meshchatx/src/frontend/locales/ru.json @@ -2,7 +2,7 @@ "_languageName": "\u0420\u0443\u0441\u0441\u043a\u0438\u0439", "bots": { "title": "Боты LXMFy", - "description": "Управление автоматическими ботами для эха, заметок и напоминаний с помощью LXMFy.", + "description": "Простые боты LXMF (эхо, заметки, напоминания), если установлен LXMFy.", "bot_framework": "Фреймворк ботов", "lxmfy_not_detected": "LXMFy не обнаружен", "lxmfy_not_detected_desc": "Для использования ботов необходимо установить пакет LXMFy:", @@ -109,6 +109,8 @@ "fallback_node_description": "Сообщения будут отправляться на этот узел, если прямая доставка не удалась.", "auto_select_node": "Автовыбор лучшего узла", "auto_select_node_description": "Автоматически находить и переключаться на лучший доступный узел ретрансляции на основе количества переходов в сети.", + "auto_select_using_label": "Используется узел ретрансляции", + "auto_select_pending": "Узел ретрансляции ещё не выбран. Приложение выберет его, когда он будет доступен.", "auto_sync_interval": "Интервал автосинхронизации", "last_synced": "Последняя синхронизация {time} назад.", "last_synced_never": "Последняя синхронизация: никогда.", @@ -116,7 +118,7 @@ "propagation_stamp_description": "Требовать штампы Proof-of-Work для сообщений, передаваемых через ваш узел. Более высокие значения требуют больше вычислительной работы. Диапазон: 13-254. По умолчанию: 16. **Примечание:** изменение требует перезапуска приложения.", "language": "Язык", "select_language": "Выберите предпочтительный язык.", - "custom_fork_by": "Модифицированная версия от", + "tagline": "Универсальный клиент Reticulum", "open": "Открыть", "identity": "Личность", "lxmf_address_hash": "Хеш адреса LXMF", @@ -207,6 +209,9 @@ "sync_error": "Ошибка синхронизации: {status}", "switching_identity": "Переключение личности...", "loading_identity": "Загрузка вашей личности", + "loading_overlay_kicker": "Подождите", + "loading_overlay_title": "Смена профиля", + "loading_overlay_subtitle": "Загрузка чатов и настроек. Обычно это занимает несколько секунд.", "emergency_mode_active": "Аварийный режим активен — используется база данных в оперативной памяти и ограниченные службы.", "blackhole_integration_enabled": "Интеграция Blackhole", "blackhole_integration_description": "Автоматически блокировать (blackhole) личности на транспортном уровне Reticulum при изгнании пользователей в MeshChatX.", @@ -415,10 +420,15 @@ "import_success": "Импортировано контактов: {added}", "import_failed": "Ошибка импорта", "import_modal_title": "Импорт контактов", - "import_file_hint": "Выберите JSON-файл, экспортированный из Контактов." + "import_file_hint": "Выберите JSON-файл, экспортированный из Контактов.", + "edit_contact": "Редактировать контакт", + "enter_contact_name": "Введите имя контакта", + "contact_updated": "Контакт обновлён", + "failed_update_contact": "Не удалось обновить контакт" }, "about": { "title": "О программе", + "third_party_licenses": "Лицензии сторонних компонентов", "version": "v{version}", "rns_version": "RNS {version}", "lxmf_version": "LXMF {version}", @@ -537,7 +547,7 @@ "map": { "title": "Карта", "pop_out": "Открыть карту в окне", - "description": "Офлайн-карта с поддержкой MBTiles.", + "description": "Офлайн-тайлы (MBTiles) и свои слои.", "upload_mbtiles": "Загрузить MBTiles", "select_file": "Выбрать файл MBTiles", "offline_mode": "Офлайн-режим", @@ -846,7 +856,7 @@ }, "forwarder": { "title": "LXMF Форвардер", - "description": "Пересылка сообщений с одного адреса на другой с прозрачной обратной маршрутизацией.", + "description": "Пересылка LXMF между адресами с сохранением маршрута ответов.", "add_rule": "Добавить правило пересылки", "name": "Имя", "name_placeholder": "Название правила (например, Домашний узел)...", @@ -864,7 +874,7 @@ "delete_confirm": "Вы уверены, что хотите удалить это правило?" }, "archives": { - "description": "Поиск и просмотр архивных страниц Nomad Network", + "description": "Поиск страниц Nomad, сохранённых в локальном архиве.", "search_placeholder": "Поиск по содержимому, хешу или пути...", "loading": "Загрузка архивов...", "no_archives_found": "Архивы не найдены", @@ -880,7 +890,7 @@ }, "docs": { "title": "Документация", - "subtitle": "Руководства и справочники Reticulum.", + "subtitle": "Руководства Reticulum и MeshChat.", "status_title": "Статус документации", "status_downloading": "Загрузка...", "status_available": "Доступно офлайн", @@ -892,29 +902,44 @@ "docs_link_copied": "Documentation link copied to clipboard", "failed_copy_link": "Failed to copy link" }, + "licenses": { + "section_label": "Правовая информация", + "title": "Лицензии сторонних компонентов", + "description": "Версии, авторы и SPDX или заявленные лицензии зависимостей во время работы. Данные берутся из установленной среды Python и из pnpm, если доступен.", + "short_description": "Версии, авторы и лицензии для бэкенда и фронтенда.", + "search_placeholder": "Поиск по пакетам, версиям, авторам, лицензиям...", + "generated_at": "Сформировано: {time}", + "frontend_source": "Данные фронтенда: {source}", + "backend_section": "Бэкенд (Python)", + "frontend_section": "Фронтенд (Node)", + "col_package": "Пакет", + "col_version": "Версия", + "col_author": "Автор", + "col_license": "Лицензия" + }, "tools": { "utilities": "Утилиты", - "power_tools": "Инструменты для операторов", - "diagnostics_description": "Средства диагностики и прошивки поставляются вместе с MeshChat для устранения неполадок без использования консоли.", + "power_tools": "Утилиты", + "diagnostics_description": "Проверка связи, передачи файлов, путей, перевод, руководства и помощь с оборудованием в одном месте.", "ping": { "title": "Ping", - "description": "Тест задержки для любого LXMF хеша с отображением статуса." + "description": "Измерение RTT до узла, который принимает ping." }, "rnprobe": { "title": "RNProbe", - "description": "Зондирование узлов пакетами произвольного размера для проверки связи." + "description": "Зонды с настраиваемым размером полезной нагрузки для проверки доступности и задержки." }, "rncp": { "title": "RNCP", - "description": "Отправка и получение файлов через RNS с отслеживанием прогресса." + "description": "Отправка и приём файлов по Reticulum (RNCP) с прогрессом." }, "rnstatus": { "title": "RNStatus", - "description": "Статистика интерфейсов и информация о состоянии сети." + "description": "Счётчики по интерфейсам и состояние канала от Reticulum." }, "rnpath": { "title": "RNPath", - "description": "Управление таблицей путей, просмотр частоты анонсов и запрос путей.", + "description": "Просмотр путей и очередей анонсов; запрос или сброс маршрутов.", "failed_fetch": "Failed to fetch path data", "path_dropped": "Path dropped", "failed_drop": "Could not drop path", @@ -928,7 +953,7 @@ }, "rnpath_trace": { "title": "RNS Трассировка пути", - "description": "Визуализация пути и переходов к любому хэшу назначения в сети.", + "description": "Список переходов к хэшу назначения по текущему пути.", "destination_hash": "Хэш назначения", "placeholder": "Введите 32-символьный хэш...", "trace": "Трассировать путь", @@ -937,21 +962,21 @@ "interface": "Выходной интерфейс", "next_hop": "Следующий переход", "ready_title": "Трассировка пути", - "ready_desc": "Введите хэш назначения выше, чтобы увидеть, как пакеты проходят через сеть.", + "ready_desc": "Введите хэш назначения, чтобы перечислить переходы по текущему пути.", "unknown_hops": "{count} промежуточных переходов", "ping_test": "Проверить с помощью Ping" }, "translator": { "title": "Translator", - "description": "Перевод текста через LibreTranslate API или локальный Argos Translate." + "description": "Перевод текста через сервер LibreTranslate или локальный Argos Translate." }, "forwarder": { "title": "Forwarder", - "description": "Пересылка LXMF с маршрутизацией обратного пути." + "description": "Пересылка LXMF между адресами с сохранением маршрута ответов." }, "rnode_flasher": { "title": "RNode Flasher", - "description": "Прошивка и обновление адаптеров RNode без использования командной строки.", + "description": "Прошивка или обновление RNode из браузера (поддерживаемое оборудование).", "select_device": "1. Выберите устройство", "product": "Продукт", "model": "Модель", @@ -1083,7 +1108,7 @@ }, "micron_editor": { "title": "Редактор Micron", - "description": "Редактирование и предпросмотр разметки Micron с живым рендерингом.", + "description": "Редактирование разметки Micron с живым предпросмотром.", "editor": "Редактор", "preview": "Предпросмотр", "save": "Сохранить", @@ -1101,28 +1126,28 @@ }, "paper_message": { "title": "Бумажное сообщение", - "description": "Создание и чтение подписанных бумажных сообщений LXMF через QR-коды." + "description": "Создание или чтение бумажных сообщений LXMF через QR." }, "mesh_server": { "title": "Mesh Server", - "description": "Раздавайте Micron-страницы и файлы напрямую через сеть Reticulum." + "description": "Публикация страниц Micron и файлов для узлов в mesh." }, "rns_tunnel": { "title": "RNS Tunnel", - "description": "Туннелирование обычного IP-трафика через сеть Reticulum." + "description": "IP-туннелирование по каналам Reticulum (в разработке)." }, "rns_filesync": { "title": "RNS Filesync", - "description": "Эффективный обмен и синхронизация файлов с другими узлами mesh." + "description": "Синхронизация файлов между узлами mesh (в разработке)." }, "bots": { "title": "LXMFy Боты", - "description": "Управление автоматизированными ботами для эха, заметок и напоминаний с помощью LXMFy." + "description": "Простые боты LXMF (эхо, заметки, напоминания), если установлен LXMFy." } }, "ping": { "title": "Пинг узлов сети", - "description": "Только пункты назначения {code} отвечают на пинг.", + "description": "Отвечают только узлы, объявляющие тип приложения ping.", "destination_hash": "Хеш назначения", "timeout_seconds": "Тайм-аут пинга (секунды)", "start_ping": "Запустить пинг", @@ -1143,7 +1168,7 @@ "rncp": { "file_transfer": "Передача файлов", "title": "RNCP - Reticulum Network Copy", - "description": "Отправка и получение файлов через сеть Reticulum с использованием ресурсов RNS. Этот инструмент обеспечивает надежную передачу файлов между узлами сети даже через каналы с высокой задержкой.", + "description": "Отправка, приём или загрузка файлов по Reticulum через RNCP (блоки, сжатие по желанию).", "usage_steps": "Как использовать RNCP:", "step_1": "1. Чтобы **получить** файл, перейдите на вкладку **Прослушивание**, введите разрешенные хеши идентичности (кто может присылать вам файлы) и нажмите **Начать прослушивание**.", "step_2": "2. Чтобы **отправить** файл, получите **Хеш назначения** прослушиваемого узла, введите **Локальный путь к файлу** и нажмите **Отправить файл**.", @@ -1180,7 +1205,7 @@ "rnprobe": { "network_diagnostics": "Диагностика сети", "title": "RNProbe - Проверка назначения", - "description": "Проверка пунктов назначения с настраиваемым размером пакетов для тестирования связности и измерения RTT.", + "description": "Зонды с настраиваемым размером для измерения RTT и доставки.", "destination_hash": "Хеш назначения", "full_destination_name": "Полное имя назначения", "probe_size_bytes": "Размер пакета (байты)", @@ -1212,7 +1237,7 @@ "rnstatus": { "network_diagnostics": "Диагностика сети", "title": "RNStatus - Статус сети", - "description": "Просмотр статистики интерфейсов и информации о статусе сети.", + "description": "Статистика по интерфейсам и состояние канала от вашего экземпляра RNS.", "refresh": "Обновить", "include_link_stats": "Включить статистику ссылок", "sort_by": "Сортировать по:", @@ -1244,7 +1269,7 @@ "translator": { "text_translation": "Перевод текста", "title": "Переводчик", - "description": "Перевод текста с использованием LibreTranslate API или локального Argos Translate.", + "description": "Перевод текста через сервер LibreTranslate или локальный Argos Translate.", "argos_translate": "Argos Translate", "libretranslate": "LibreTranslate", "api_server": "Сервер API LibreTranslate", @@ -1477,7 +1502,7 @@ "learn_create_desc_page": "Узнайте, как использовать MeshChatX на полную мощность и создавать свой контент.", "documentation": "Документация", "documentation_desc": "Читайте официальную документацию MeshChatX и Reticulum.", - "documentation_desc_page": "Подробные руководства по MeshChatX и базовому стеку Reticulum Network.", + "documentation_desc_page": "Руководства по MeshChatX и стеку Reticulum.", "meshchatx_docs": "Документация MeshChatX", "reticulum_docs": "Документация Reticulum", "read_meshchatx_docs": "Читать документацию MeshChatX", @@ -1487,13 +1512,13 @@ "micron_editor_desc_page": "Узнайте, как создавать mesh-страницы и интерактивный контент с помощью языка разметки Micron.", "open_micron_editor": "Открыть редактор Micron", "paper_messages": "Обзор узлов NomadNet", - "paper_messages_desc": "Просмотр децентрализованных страниц и сервисов.", + "paper_messages_desc": "Просмотр страниц и сервисов Nomad.", "send_messages": "Отправка сообщений", "send_messages_desc": "Начните защищенный разговор.", "explore_nodes": "Визуализация узлов", - "explore_nodes_desc": "Просмотр карты и топологии сети.", + "explore_nodes_desc": "Открыть карту или граф сети.", "voice_calls": "Голосовые звонки", - "voice_calls_desc": "Посмотрите наш крутой редактор рингтонов!", + "voice_calls_desc": "Исходящие и входящие голосовые вызовы.", "ready": "Все готово!", "ready_desc": "Все настроено. Вам следует перезапустить приложение, чтобы изменения вступили в силу.", "ready_desc_page": "MeshChatX настроен. Вам следует перезапустить приложение для завершения подключения.", @@ -1525,7 +1550,7 @@ "auto_propagation_enabled": "Авторетрансляция включена" }, "command_palette": { - "search_placeholder": "Поиск команд, навигация или поиск узлов...", + "search_placeholder": "Команды, маршруты или узлы", "no_results": "Результатов для \"{query}\" не найдено", "group_actions": "Действия", "group_recent": "Недавние узлы", @@ -1533,53 +1558,53 @@ "footer_navigate": "Навигация", "footer_select": "Выбор", "nav_messages": "Сообщения", - "nav_messages_desc": "Открыть страницу сообщений", + "nav_messages_desc": "Беседы и почта LXMF", "nav_nomad": "Nomad Network", - "nav_nomad_desc": "Просмотр страниц Nomad Network", + "nav_nomad_desc": "Страницы и сервисы Nomad", "nav_map": "Карта", - "nav_map_desc": "Просмотр карты топологии сети", + "nav_map_desc": "Географическая карта и слои", "nav_paper": "Бумажные сообщения", - "nav_paper_desc": "Создание офлайн-сообщений", + "nav_paper_desc": "Подписанные бумажные сообщения (QR)", "nav_call": "Голосовые звонки", - "nav_call_desc": "Открыть страницу голосовых звонков", + "nav_call_desc": "Голосовые вызовы в mesh", "nav_settings": "Настройки", - "nav_settings_desc": "Открыть страницу настроек", + "nav_settings_desc": "Приложение и транспорт", "nav_ping": "Ping", - "nav_ping_desc": "Пинг узлов сети", + "nav_ping_desc": "Измерить RTT до узла", "nav_rnprobe": "RNProbe", - "nav_rnprobe_desc": "Зондирование узлов Reticulum", + "nav_rnprobe_desc": "Проверка доступности и задержки", "nav_rncp": "RNCP", - "nav_rncp_desc": "Reticulum Control Protocol", + "nav_rncp_desc": "Копирование файлов по Reticulum (RNCP)", "nav_rnstatus": "RNStatus", - "nav_rnstatus_desc": "Просмотр статуса Reticulum", + "nav_rnstatus_desc": "Статистика интерфейса и канала", "nav_rnpath": "RNPath", - "nav_rnpath_desc": "Просмотр сетевых путей", + "nav_rnpath_desc": "Пути и очереди анонсов", "nav_rnpath_trace": "Трассировка пути", - "nav_rnpath_trace_desc": "Визуализация сетевых путей", + "nav_rnpath_trace_desc": "Список переходов к хэшу", "nav_translator": "Переводчик", - "nav_translator_desc": "Перевод сообщений", + "nav_translator_desc": "Перевод текста сообщений", "nav_forwarder": "Форвардер", - "nav_forwarder_desc": "Инструмент пересылки сообщений", + "nav_forwarder_desc": "Правила пересылки LXMF", "nav_documentation": "Документация", - "nav_documentation_desc": "Просмотр документации", + "nav_documentation_desc": "Офлайн-руководства", "nav_micron_editor": "Редактор Micron", - "nav_micron_editor_desc": "Создание mesh-страниц", + "nav_micron_editor_desc": "Редактировать разметку Micron", "nav_rnode_flasher": "RNode Flasher", - "nav_rnode_flasher_desc": "Прошивка адаптеров RNode", + "nav_rnode_flasher_desc": "Обновление прошивки устройства", "nav_debug_logs": "Логи отладки", - "nav_debug_logs_desc": "Просмотр логов отладки", + "nav_debug_logs_desc": "Журналы приложения и доступа", "action_sync": "Синхронизация", "action_sync_desc": "Синхронизация с узлом ретрансляции", "action_compose": "Написать сообщение", - "action_compose_desc": "Начать новое сообщение", + "action_compose_desc": "Новое сообщение LXMF", "action_orbit": "Переключить Orbit", - "action_orbit_desc": "Переключить режим Orbit", + "action_orbit_desc": "Камера Orbit на графе сети", "action_bouncing_balls": "Прыгающие шарики", - "action_bouncing_balls_desc": "Переключить режим прыгающих шариков", + "action_bouncing_balls_desc": "Демонстрация физики на графе", "action_getting_started": "Начало работы", - "action_getting_started_desc": "Показать руководство", + "action_getting_started_desc": "Открыть мастер настройки", "action_changelog": "Список изменений", - "action_changelog_desc": "Просмотр изменений" + "action_changelog_desc": "Последние изменения" }, "settings": { "shortcut_saved": "Shortcut saved", @@ -1595,7 +1620,7 @@ }, "debug": { "title": "Журнал отладки", - "description": "Просмотр журналов приложения и обнаруженных аномалий.", + "description": "Просмотр журналов приложения и фильтрация по уровню.", "tab_logs": "Журналы", "tab_access_attempts": "Попытки доступа", "search_logs_placeholder": "Поиск в журналах...", @@ -1616,7 +1641,7 @@ }, "visualiser": { "title": "Network Visualiser", - "description": "Visualize the mesh network topology.", + "description": "Граф обнаруженных узлов и связей.", "reticulum_mesh": "Reticulum Mesh", "network_visualizer": "Network Visualizer", "node_info": "Node Info", @@ -1668,7 +1693,7 @@ }, "banishment": { "title": "Banished", - "description": "Manage Banished users and nodes", + "description": "Просмотр и снятие блокировок с идентичностей и узлов.", "failed_load_banished": "Failed to load banished destinations", "search_placeholder": "Search by hash or display name...", "loading_items": "Loading banished items...",