From 2b930f7bd2576e2360508b049f021f52fb7fbf55 Mon Sep 17 00:00:00 2001 From: Ivan Date: Sun, 3 May 2026 13:57:08 -0500 Subject: [PATCH] feat(locales): update messaging features across multiple languages with new identity and sending options --- meshchatx/src/frontend/locales/de.json | 30 ++++++++++++++++++++++++++ meshchatx/src/frontend/locales/en.json | 30 ++++++++++++++++++++++++++ meshchatx/src/frontend/locales/es.json | 30 ++++++++++++++++++++++++++ meshchatx/src/frontend/locales/fr.json | 30 ++++++++++++++++++++++++++ meshchatx/src/frontend/locales/it.json | 30 ++++++++++++++++++++++++++ meshchatx/src/frontend/locales/nl.json | 30 ++++++++++++++++++++++++++ meshchatx/src/frontend/locales/ru.json | 30 ++++++++++++++++++++++++++ meshchatx/src/frontend/locales/zh.json | 30 ++++++++++++++++++++++++++ 8 files changed, 240 insertions(+) diff --git a/meshchatx/src/frontend/locales/de.json b/meshchatx/src/frontend/locales/de.json index a963627..6842b8d 100644 --- a/meshchatx/src/frontend/locales/de.json +++ b/meshchatx/src/frontend/locales/de.json @@ -1183,6 +1183,13 @@ "attachments_stripped_notice": "Anhänge von diesem unbekannten Absender wurden blockiert.", "stranger_link_open_confirm": "Dieser Link wurde von einem unbekannten Kontakt gesendet:\n{url}\n\nTrotzdem öffnen?", "send_placeholder": "Schreibe eine Nachricht...", + "compose_hint_automatic": "Nachricht für automatische Zustellung", + "compose_hint_direct": "Nachricht für direkte Zustellung", + "compose_hint_opportunistic": "Nachricht für opportunistische Zustellung", + "compose_hint_propagated": "Nachricht für Propagation-Zustellung", + "send_menu_more_label": "Andere Sendeoptionen", + "send_menu_telemetry_request": "Als Befehl oder Anfrage senden", + "send_menu_paper_compose": "Papiernachricht aus Eingabe (LXM)", "sending_ellipsis": "Wird gesendet…", "outbound_pending_propagation": "Senden an den Propagationsknoten…", "outbound_pending_propagation_with_progress": "Senden an den Propagationsknoten… {progress}%", @@ -1366,6 +1373,12 @@ "reaction_you": "Du", "reaction_send_failed": "Reaktion konnte nicht gesendet werden", "conversation_reaction_preview": "{name} reagierte mit {emoji}", + "conversation_location_share_you": "Du hast deinen Standort geteilt", + "conversation_location_share_other": "{name} hat den Standort geteilt", + "conversation_telemetry_preview": "{name} hat Telemetrie gesendet", + "conversation_telemetry_stream_preview": "{name} hat einen Telemetrie-Datenstrom gesendet", + "conversation_location_request_in_preview": "{name} hat den Standort angefordert", + "conversation_location_request_out_preview": "{name} hat eine Standortanfrage gesendet", "message_not_found_in_cache": "Nachricht nicht im Cache gefunden" }, "nomadnet": { @@ -1432,6 +1445,9 @@ "renderer_popover_micron_wasm_active_tail": " {version}. WebAssembly-Renderer.", "renderer_popover_micron_wasm_pending_tail": " {version} lädt oder ist nicht verfügbar. Die Standardversion wird verwendet.", "renderer_switch_title": "Parser", + "renderer_menu_js": "Micron: JavaScript", + "renderer_menu_wasm": "Micron: WebAssembly", + "renderer_setting_failed": "Micron-Renderer konnte nicht aktualisiert werden", "renderer_chip_markdown": "Markdown", "renderer_chip_html": "HTML", "renderer_chip_plaintext": "Text", @@ -2365,6 +2381,20 @@ "connect": "Mit dem Mesh verbinden", "connect_desc": "Um Nachrichten zu senden, müssen Sie sich mit einer Reticulum-Schnittstelle verbinden.", "connect_desc_page": "Verwenden Sie eines der unten aufgeführten öffentlichen Netzwerke oder fügen Sie eine benutzerdefinierte Schnittstelle über die Seite 'Schnittstellen' hinzu.", + "identity_title": "Identität", + "identity_desc": "Wählen Sie eine neue Identität oder importieren Sie einen vorhandenen Schlüssel, bevor Sie verbinden.", + "identity_desc_page": "Wählen Sie eine neue Identität oder importieren Sie einen vorhandenen Schlüssel, bevor Sie sich mit dem Mesh verbinden.", + "identity_new": "Neue Identität (Standard)", + "identity_new_desc": "Behalten Sie die Standardidentität und setzen Sie optional Ihren Anzeigenamen.", + "identity_import": "Bestehende Identität importieren", + "identity_import_desc": "Aus einer Identitätsdatei importieren oder einen Base32-Schlüssel einfügen.", + "identity_set_name": "Namen festlegen", + "identity_upload_file": "Identitätsdatei importieren", + "identity_base32_placeholder": "Base32-Privatschlüssel der Identität einfügen", + "identity_import_required": "Wählen Sie eine Identitätsdatei oder fügen Sie einen Base32-Schlüssel zum Importieren ein.", + "identity_import_failed": "Identität konnte nicht importiert werden", + "identity_name_update_failed": "Anzeigename konnte nicht gesetzt werden", + "identity_switch_failed": "Importierte Identität konnte nicht aktiviert werden", "suggested_networks": "Empfohlene öffentliche Netzwerke", "suggested_relays": "Empfohlene Relais", "use": "Verwenden", diff --git a/meshchatx/src/frontend/locales/en.json b/meshchatx/src/frontend/locales/en.json index 6c9fd18..1799d7e 100644 --- a/meshchatx/src/frontend/locales/en.json +++ b/meshchatx/src/frontend/locales/en.json @@ -1149,6 +1149,13 @@ "attachments_stripped_notice": "Attachments were blocked from this unknown sender.", "stranger_link_open_confirm": "This link was sent by an unknown contact:\n{url}\n\nOpen it anyway?", "send_placeholder": "Type a message...", + "compose_hint_automatic": "Message for automatic delivery", + "compose_hint_direct": "Message for direct delivery", + "compose_hint_opportunistic": "Message for opportunistic delivery", + "compose_hint_propagated": "Message for propagated delivery", + "send_menu_more_label": "Other Sending Options", + "send_menu_telemetry_request": "Send as Command or Request", + "send_menu_paper_compose": "Paper message from composition (LXM)", "sending_ellipsis": "Sending…", "outbound_pending_propagation": "Sending to propagation node…", "outbound_pending_propagation_with_progress": "Sending to propagation node… {progress}%", @@ -1314,6 +1321,12 @@ "reaction_you": "You", "reaction_send_failed": "Could not send reaction", "conversation_reaction_preview": "{name} reacted {emoji}", + "conversation_location_share_you": "You shared your location", + "conversation_location_share_other": "{name} shared their location", + "conversation_telemetry_preview": "{name} sent telemetry", + "conversation_telemetry_stream_preview": "{name} sent a telemetry stream", + "conversation_location_request_in_preview": "{name} requested your location", + "conversation_location_request_out_preview": "{name} sent a location request", "message_not_found_in_cache": "Message not found in cache" }, "settings": { @@ -1493,6 +1506,9 @@ "renderer_popover_micron_wasm_active_tail": " {version}. WebAssembly renderer.", "renderer_popover_micron_wasm_pending_tail": " {version} is loading or unavailable. Using the standard version.", "renderer_switch_title": "Parser", + "renderer_menu_js": "Micron: JavaScript", + "renderer_menu_wasm": "Micron: WebAssembly", + "renderer_setting_failed": "Could not update Micron renderer", "renderer_chip_markdown": "Markdown", "renderer_chip_html": "HTML", "renderer_chip_plaintext": "Text", @@ -2478,6 +2494,20 @@ "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.", + "identity_title": "Identity", + "identity_desc": "Choose a new identity or import an existing key before connecting.", + "identity_desc_page": "Choose a new identity or import an existing key before connecting to the mesh.", + "identity_new": "New Identity (default)", + "identity_new_desc": "Keep the default identity and optionally set your display name.", + "identity_import": "Import existing identity", + "identity_import_desc": "Import from an identity file or paste a base32 key.", + "identity_set_name": "Set name", + "identity_upload_file": "Import identity file", + "identity_base32_placeholder": "Paste base32 private identity key", + "identity_import_required": "Choose an identity file or paste a base32 key to import.", + "identity_import_failed": "Failed to import identity", + "identity_name_update_failed": "Failed to set display name", + "identity_switch_failed": "Failed to activate imported identity", "suggested_networks": "Suggested Public Networks", "suggested_relays": "Suggested Relays", "use": "Use", diff --git a/meshchatx/src/frontend/locales/es.json b/meshchatx/src/frontend/locales/es.json index 14182ee..0b7e23c 100644 --- a/meshchatx/src/frontend/locales/es.json +++ b/meshchatx/src/frontend/locales/es.json @@ -1149,6 +1149,13 @@ "attachments_stripped_notice": "Los adjuntos fueron bloqueados de este remitente desconocido.", "stranger_link_open_confirm": "Este enlace fue enviado por un contacto desconocido:{url}¿Abrelo de todos modos?", "send_placeholder": "Escribe un mensaje...", + "compose_hint_automatic": "Mensaje para entrega automática", + "compose_hint_direct": "Mensaje para entrega directa", + "compose_hint_opportunistic": "Mensaje para entrega oportunista", + "compose_hint_propagated": "Mensaje para entrega propagada", + "send_menu_more_label": "Otras opciones de envío", + "send_menu_telemetry_request": "Enviar como comando o solicitud", + "send_menu_paper_compose": "Mensaje en papel desde el texto (LXM)", "sending_ellipsis": "Enviando...", "outbound_pending_propagation": "Enviando al nodo de propagación…", "outbound_pending_propagation_with_progress": "Enviando al nodo de propagación… {progress}%", @@ -1314,6 +1321,12 @@ "reaction_you": "Tú.", "reaction_send_failed": "No podría enviar reacción", "conversation_reaction_preview": "{name} reaccionó con {emoji}", + "conversation_location_share_you": "Compartiste tu ubicación", + "conversation_location_share_other": "{name} compartió su ubicación", + "conversation_telemetry_preview": "{name} envió telemetría", + "conversation_telemetry_stream_preview": "{name} envió un flujo de telemetría", + "conversation_location_request_in_preview": "{name} solicitó tu ubicación", + "conversation_location_request_out_preview": "{name} envió una solicitud de ubicación", "message_not_found_in_cache": "Mensaje no encontrado en caché" }, "settings": { @@ -1493,6 +1506,9 @@ "renderer_popover_micron_wasm_active_tail": " {version}. Motor WebAssembly.", "renderer_popover_micron_wasm_pending_tail": " {version} se está cargando o no está disponible. Usando la versión estándar.", "renderer_switch_title": "Parser", + "renderer_menu_js": "Micron: JavaScript", + "renderer_menu_wasm": "Micron: WebAssembly", + "renderer_setting_failed": "No se pudo actualizar el renderizador Micron", "renderer_chip_markdown": "Markdown", "renderer_chip_html": "HTML", "renderer_chip_plaintext": "Text", @@ -2478,6 +2494,20 @@ "connect": "Conectarse a la malla", "connect_desc": "Para enviar mensajes, necesita conectarse a una interfaz Reticulum.", "connect_desc_page": "Use una de las redes públicas a continuación o agregue una interfaz personalizada de la página Interfaces.", + "identity_title": "Identidad", + "identity_desc": "Elija una nueva identidad o importe una clave existente antes de conectar.", + "identity_desc_page": "Elija una nueva identidad o importe una clave existente antes de conectar al mesh.", + "identity_new": "Nueva identidad (predeterminado)", + "identity_new_desc": "Mantenga la identidad predeterminada y opcionalmente establezca su nombre visible.", + "identity_import": "Importar identidad existente", + "identity_import_desc": "Importe desde un archivo de identidad o pegue una clave en base32.", + "identity_set_name": "Establecer nombre", + "identity_upload_file": "Importar archivo de identidad", + "identity_base32_placeholder": "Pegue la clave de identidad privada en base32", + "identity_import_required": "Elija un archivo de identidad o pegue una clave base32 para importar.", + "identity_import_failed": "No se pudo importar la identidad", + "identity_name_update_failed": "No se pudo establecer el nombre visible", + "identity_switch_failed": "No se pudo activar la identidad importada", "suggested_networks": "Redes públicas sugeridas", "suggested_relays": "Relés sugeridos", "use": "Uso", diff --git a/meshchatx/src/frontend/locales/fr.json b/meshchatx/src/frontend/locales/fr.json index 16f0988..ca74f51 100644 --- a/meshchatx/src/frontend/locales/fr.json +++ b/meshchatx/src/frontend/locales/fr.json @@ -1149,6 +1149,13 @@ "attachments_stripped_notice": "Les pièces jointes ont été bloquées de cet expéditeur inconnu.", "stranger_link_open_confirm": "Ce lien a été envoyé par un contact inconnu :\n{url}\n\nL'ouvrir quand même ?", "send_placeholder": "Saisissez un message...", + "compose_hint_automatic": "Message pour livraison automatique", + "compose_hint_direct": "Message pour livraison directe", + "compose_hint_opportunistic": "Message pour livraison opportuniste", + "compose_hint_propagated": "Message pour livraison propagée", + "send_menu_more_label": "Autres options d'envoi", + "send_menu_telemetry_request": "Envoyer comme commande ou requête", + "send_menu_paper_compose": "Message papier depuis la composition (LXM)", "sending_ellipsis": "Envoyer...", "outbound_pending_propagation": "Envoi vers le nœud de propagation…", "outbound_pending_propagation_with_progress": "Envoi vers le nœud de propagation… {progress}%", @@ -1314,6 +1321,12 @@ "reaction_you": "Toi", "reaction_send_failed": "Impossible d'envoyer la réaction", "conversation_reaction_preview": "{name} a réagi avec {emoji}", + "conversation_location_share_you": "Vous avez partagé votre position", + "conversation_location_share_other": "{name} a partagé sa position", + "conversation_telemetry_preview": "{name} a envoyé des données de télémétrie", + "conversation_telemetry_stream_preview": "{name} a envoyé un flux de télémétrie", + "conversation_location_request_in_preview": "{name} a demandé votre position", + "conversation_location_request_out_preview": "{name} a envoyé une demande de position", "message_not_found_in_cache": "Message non trouvé dans cache" }, "settings": { @@ -1493,6 +1506,9 @@ "renderer_popover_micron_wasm_active_tail": " {version}. Rendu WebAssembly.", "renderer_popover_micron_wasm_pending_tail": " {version} est en cours de chargement ou indisponible. Utilisation de la version standard.", "renderer_switch_title": "Analyseur", + "renderer_menu_js": "Micron : JavaScript", + "renderer_menu_wasm": "Micron : WebAssembly", + "renderer_setting_failed": "Impossible de mettre à jour le moteur de rendu Micron", "renderer_chip_markdown": "Markdown", "renderer_chip_html": "HTML", "renderer_chip_plaintext": "Text", @@ -2478,6 +2494,20 @@ "connect": "Connectez-vous au Mesh", "connect_desc": "Pour envoyer des messages, vous devez vous connecter à une interface Reticulum.", "connect_desc_page": "Utilisez l'un des réseaux publics ci-dessous ou ajoutez une interface personnalisée depuis la page Interfaces.", + "identity_title": "Identité", + "identity_desc": "Choisissez une nouvelle identité ou importez une clé existante avant de vous connecter.", + "identity_desc_page": "Choisissez une nouvelle identité ou importez une clé existante avant de rejoindre le réseau.", + "identity_new": "Nouvelle identité (par défaut)", + "identity_new_desc": "Conservez l'identité par défaut et définissez éventuellement votre nom d'affichage.", + "identity_import": "Importer une identité existante", + "identity_import_desc": "Importer depuis un fichier d'identité ou coller une clé base32.", + "identity_set_name": "Définir le nom", + "identity_upload_file": "Importer le fichier d'identité", + "identity_base32_placeholder": "Collez la clé d'identité privée en base32", + "identity_import_required": "Choisissez un fichier d'identité ou collez une clé base32 à importer.", + "identity_import_failed": "Échec de l'importation de l'identité", + "identity_name_update_failed": "Échec de la définition du nom d'affichage", + "identity_switch_failed": "Échec de l'activation de l'identité importée", "suggested_networks": "Réseaux publics suggérés", "suggested_relays": "Relais suggérés", "use": "Utilisation", diff --git a/meshchatx/src/frontend/locales/it.json b/meshchatx/src/frontend/locales/it.json index f7c83f6..56a4d2a 100644 --- a/meshchatx/src/frontend/locales/it.json +++ b/meshchatx/src/frontend/locales/it.json @@ -1183,6 +1183,13 @@ "attachments_stripped_notice": "Gli allegati da questo mittente sconosciuto sono stati bloccati.", "stranger_link_open_confirm": "Questo link e stato inviato da un contatto sconosciuto:\n{url}\n\nAprirlo comunque?", "send_placeholder": "Scrivi un messaggio...", + "compose_hint_automatic": "Messaggio per consegna automatica", + "compose_hint_direct": "Messaggio per consegna diretta", + "compose_hint_opportunistic": "Messaggio per consegna opportunistica", + "compose_hint_propagated": "Messaggio per consegna propagata", + "send_menu_more_label": "Altre opzioni di invio", + "send_menu_telemetry_request": "Invia come comando o richiesta", + "send_menu_paper_compose": "Messaggio cartaceo dal testo (LXM)", "sending_ellipsis": "Invio in corso…", "outbound_pending_propagation": "Invio al nodo di propagazione…", "outbound_pending_propagation_with_progress": "Invio al nodo di propagazione… {progress}%", @@ -1366,6 +1373,12 @@ "reaction_you": "Tu", "reaction_send_failed": "Impossibile inviare la reazione", "conversation_reaction_preview": "{name} ha reagito con {emoji}", + "conversation_location_share_you": "Hai condiviso la tua posizione", + "conversation_location_share_other": "{name} ha condiviso la sua posizione", + "conversation_telemetry_preview": "{name} ha inviato telemetria", + "conversation_telemetry_stream_preview": "{name} ha inviato un flusso di telemetria", + "conversation_location_request_in_preview": "{name} ha richiesto la tua posizione", + "conversation_location_request_out_preview": "{name} ha inviato una richiesta di posizione", "message_not_found_in_cache": "Messaggio non trovato nella cache" }, "settings": { @@ -1545,6 +1558,9 @@ "renderer_popover_micron_wasm_active_tail": " {version}. Renderer WebAssembly.", "renderer_popover_micron_wasm_pending_tail": " {version} è in caricamento o non disponibile. Utilizzo della versione standard.", "renderer_switch_title": "Parser", + "renderer_menu_js": "Micron: JavaScript", + "renderer_menu_wasm": "Micron: WebAssembly", + "renderer_setting_failed": "Impossibile aggiornare il renderer Micron", "renderer_chip_markdown": "Markdown", "renderer_chip_html": "HTML", "renderer_chip_plaintext": "Text", @@ -2478,6 +2494,20 @@ "connect": "Connettiti alla Mesh", "connect_desc": "Per inviare messaggi, devi connetterti a un'interfaccia Reticulum.", "connect_desc_page": "Usa una delle reti pubbliche qui sotto o aggiungi un'interfaccia personalizzata dalla pagina Interfacce.", + "identity_title": "Identità", + "identity_desc": "Scegli una nuova identità o importa una chiave esistente prima di connetterti.", + "identity_desc_page": "Scegli una nuova identità o importa una chiave esistente prima di connetterti alla mesh.", + "identity_new": "Nuova identità (predefinito)", + "identity_new_desc": "Mantieni l'identità predefinita e imposta facoltativamente il nome visualizzato.", + "identity_import": "Importa identità esistente", + "identity_import_desc": "Importa da un file di identità o incolla una chiave base32.", + "identity_set_name": "Imposta nome", + "identity_upload_file": "Importa file di identità", + "identity_base32_placeholder": "Incolla la chiave privata dell'identità in base32", + "identity_import_required": "Scegli un file di identità o incolla una chiave base32 da importare.", + "identity_import_failed": "Impossibile importare l'identità", + "identity_name_update_failed": "Impossibile impostare il nome visualizzato", + "identity_switch_failed": "Impossibile attivare l'identità importata", "suggested_networks": "Reti Pubbliche Suggerite", "suggested_relays": "Relè Suggeriti", "use": "Usa", diff --git a/meshchatx/src/frontend/locales/nl.json b/meshchatx/src/frontend/locales/nl.json index ba0af4b..7fbf672 100644 --- a/meshchatx/src/frontend/locales/nl.json +++ b/meshchatx/src/frontend/locales/nl.json @@ -1149,6 +1149,13 @@ "attachments_stripped_notice": "Bijlagen werden geblokkeerd van deze onbekende afzender.", "stranger_link_open_confirm": "Deze link is verstuurd door een onbekend contact:{url}Openen?", "send_placeholder": "Typ een bericht...", + "compose_hint_automatic": "Bericht voor automatische aflevering", + "compose_hint_direct": "Bericht voor directe aflevering", + "compose_hint_opportunistic": "Bericht voor opportunistische aflevering", + "compose_hint_propagated": "Bericht voor gepropageerde aflevering", + "send_menu_more_label": "Andere verzendopties", + "send_menu_telemetry_request": "Verzenden als opdracht of verzoek", + "send_menu_paper_compose": "Papieren bericht van invoer (LXM)", "sending_ellipsis": "Verzenden...", "outbound_pending_propagation": "Verzenden naar propagatieknooppunt…", "outbound_pending_propagation_with_progress": "Verzenden naar propagatieknooppunt… {progress}%", @@ -1314,6 +1321,12 @@ "reaction_you": "Jij", "reaction_send_failed": "Kon reactie niet versturen", "conversation_reaction_preview": "{name} reageerde met {emoji}", + "conversation_location_share_you": "Je hebt je locatie gedeeld", + "conversation_location_share_other": "{name} heeft een locatie gedeeld", + "conversation_telemetry_preview": "{name} stuurde telemetrie", + "conversation_telemetry_stream_preview": "{name} stuurde een telemetriestroom", + "conversation_location_request_in_preview": "{name} vroeg om jouw locatie", + "conversation_location_request_out_preview": "{name} stuurde een locatieverzoek", "message_not_found_in_cache": "Bericht niet gevonden in cache" }, "settings": { @@ -1493,6 +1506,9 @@ "renderer_popover_micron_wasm_active_tail": " {version}. WebAssembly-renderer.", "renderer_popover_micron_wasm_pending_tail": " {version} wordt geladen of is niet beschikbaar. De standaardversie wordt gebruikt.", "renderer_switch_title": "Parser", + "renderer_menu_js": "Micron: JavaScript", + "renderer_menu_wasm": "Micron: WebAssembly", + "renderer_setting_failed": "Micron-renderer bijwerken mislukt", "renderer_chip_markdown": "Markdown", "renderer_chip_html": "HTML", "renderer_chip_plaintext": "Text", @@ -2478,6 +2494,20 @@ "connect": "Verbinding met de Mesh", "connect_desc": "Om berichten te versturen, moet u verbinding maken met een Reticulum interface.", "connect_desc_page": "Gebruik een van de openbare netwerken hieronder of voeg een aangepaste interface van de interface pagina.", + "identity_title": "Identiteit", + "identity_desc": "Kies een nieuwe identiteit of importeer een bestaande sleutel voordat u verbinding maakt.", + "identity_desc_page": "Kies een nieuwe identiteit of importeer een bestaande sleutel voordat u met het mesh verbindt.", + "identity_new": "Nieuwe identiteit (standaard)", + "identity_new_desc": "Houd de standaardidentiteit en stel optioneel uw schermnaam in.", + "identity_import": "Bestaande identiteit importeren", + "identity_import_desc": "Importeer vanuit een identiteitsbestand of plak een base32-sleutel.", + "identity_set_name": "Naam instellen", + "identity_upload_file": "Identiteitsbestand importeren", + "identity_base32_placeholder": "Plak de private identiteitssleutel in base32", + "identity_import_required": "Kies een identiteitsbestand of plak een base32-sleutel om te importeren.", + "identity_import_failed": "Identiteit importeren mislukt", + "identity_name_update_failed": "Schermnaam instellen mislukt", + "identity_switch_failed": "Geïmporteerde identiteit activeren mislukt", "suggested_networks": "Voorgestelde openbare netwerken", "suggested_relays": "Voorgestelde relais", "use": "Gebruik", diff --git a/meshchatx/src/frontend/locales/ru.json b/meshchatx/src/frontend/locales/ru.json index b48d801..378cf64 100644 --- a/meshchatx/src/frontend/locales/ru.json +++ b/meshchatx/src/frontend/locales/ru.json @@ -1183,6 +1183,13 @@ "attachments_stripped_notice": "Вложения от этого неизвестного отправителя были заблокированы.", "stranger_link_open_confirm": "Эта ссылка отправлена неизвестным контактом:\n{url}\n\nОткрыть ее?", "send_placeholder": "Введите сообщение...", + "compose_hint_automatic": "Сообщение для автоматической доставки", + "compose_hint_direct": "Сообщение для прямой доставки", + "compose_hint_opportunistic": "Сообщение для opportunistic доставки", + "compose_hint_propagated": "Сообщение для propagation-доставки", + "send_menu_more_label": "Другие варианты отправки", + "send_menu_telemetry_request": "Отправить как команду или запрос", + "send_menu_paper_compose": "Бумажное сообщение из текста (LXM)", "sending_ellipsis": "Отправка…", "outbound_pending_propagation": "Отправка на узел распространения…", "outbound_pending_propagation_with_progress": "Отправка на узел распространения… {progress}%", @@ -1366,6 +1373,12 @@ "reaction_you": "Вы", "reaction_send_failed": "Не удалось отправить реакцию", "conversation_reaction_preview": "{name} отреагировал(а) {emoji}", + "conversation_location_share_you": "Вы поделились своим местоположением", + "conversation_location_share_other": "{name} поделился(ась) местоположением", + "conversation_telemetry_preview": "{name} отправил(а) телеметрию", + "conversation_telemetry_stream_preview": "{name} отправил(а) поток телеметрии", + "conversation_location_request_in_preview": "{name} запросил(а) ваше местоположение", + "conversation_location_request_out_preview": "{name} отправил(а) запрос местоположения", "message_not_found_in_cache": "Сообщение не найдено в кэше" }, "nomadnet": { @@ -1432,6 +1445,9 @@ "renderer_popover_micron_wasm_active_tail": " {version}. Рендерер WebAssembly.", "renderer_popover_micron_wasm_pending_tail": " {version} загружается или недоступна. Используется стандартная версия.", "renderer_switch_title": "Парсер", + "renderer_menu_js": "Micron: JavaScript", + "renderer_menu_wasm": "Micron: WebAssembly", + "renderer_setting_failed": "Не удалось обновить рендерер Micron", "renderer_chip_markdown": "Markdown", "renderer_chip_html": "HTML", "renderer_chip_plaintext": "Text", @@ -2365,6 +2381,20 @@ "connect": "Подключение к Mesh", "connect_desc": "Для отправки сообщений необходимо подключиться к интерфейсу Reticulum.", "connect_desc_page": "Используйте одну из общедоступных сетей ниже или добавьте свой интерфейс на странице 'Интерфейсы'.", + "identity_title": "Личность", + "identity_desc": "Выберите новую личность или импортируйте существующий ключ перед подключением.", + "identity_desc_page": "Выберите новую личность или импортируйте существующий ключ перед подключением к mesh.", + "identity_new": "Новая личность (по умолчанию)", + "identity_new_desc": "Оставьте личность по умолчанию и при желании задайте отображаемое имя.", + "identity_import": "Импортировать существующую личность", + "identity_import_desc": "Импорт из файла личности или вставка ключа в base32.", + "identity_set_name": "Задать имя", + "identity_upload_file": "Импортировать файл личности", + "identity_base32_placeholder": "Вставьте приватный ключ личности в base32", + "identity_import_required": "Выберите файл личности или вставьте ключ base32 для импорта.", + "identity_import_failed": "Не удалось импортировать личность", + "identity_name_update_failed": "Не удалось задать отображаемое имя", + "identity_switch_failed": "Не удалось активировать импортированную личность", "suggested_networks": "Предлагаемые публичные сети", "suggested_relays": "Предлагаемые реле", "use": "Использовать", diff --git a/meshchatx/src/frontend/locales/zh.json b/meshchatx/src/frontend/locales/zh.json index 079be3e..af2e54c 100644 --- a/meshchatx/src/frontend/locales/zh.json +++ b/meshchatx/src/frontend/locales/zh.json @@ -1149,6 +1149,13 @@ "attachments_stripped_notice": "来自此未知发件人的附件已被阻止。", "stranger_link_open_confirm": "此链接由未知联系人发送:\n{url}\n\n打开它吗?", "send_placeholder": "输入消息...", + "compose_hint_automatic": "自动投递消息", + "compose_hint_direct": "直连投递消息", + "compose_hint_opportunistic": "机会式投递消息", + "compose_hint_propagated": "传播投递消息", + "send_menu_more_label": "其他发送选项", + "send_menu_telemetry_request": "作为命令或请求发送", + "send_menu_paper_compose": "从正文生成纸质消息(LXM)", "sending_ellipsis": "发送中...", "outbound_pending_propagation": "正在发送到传播节点…", "outbound_pending_propagation_with_progress": "正在发送到传播节点… {progress}%", @@ -1314,6 +1321,12 @@ "reaction_you": "您", "reaction_send_failed": "无法发送反应", "conversation_reaction_preview": "{name} 回应了 {emoji}", + "conversation_location_share_you": "你分享了你的位置", + "conversation_location_share_other": "{name} 分享了位置", + "conversation_telemetry_preview": "{name} 发送了遥测数据", + "conversation_telemetry_stream_preview": "{name} 发送了遥测流", + "conversation_location_request_in_preview": "{name} 请求你的位置", + "conversation_location_request_out_preview": "{name} 发送了位置请求", "message_not_found_in_cache": "缓存中未找到消息" }, "settings": { @@ -1493,6 +1506,9 @@ "renderer_popover_micron_wasm_active_tail": " {version} 驱动。WebAssembly 渲染。", "renderer_popover_micron_wasm_pending_tail": " {version} 正在加载或不可用。正在使用标准版本。", "renderer_switch_title": "解析器", + "renderer_menu_js": "Micron:JavaScript", + "renderer_menu_wasm": "Micron:WebAssembly", + "renderer_setting_failed": "无法更新 Micron 渲染器", "renderer_chip_markdown": "Markdown", "renderer_chip_html": "HTML", "renderer_chip_plaintext": "Text", @@ -2478,6 +2494,20 @@ "connect": "连接到网格", "connect_desc": "要发送消息,您需要连接到 Reticulum 接口。", "connect_desc_page": "使用以下公共网络之一或从接口页面添加自定义接口。", + "identity_title": "身份", + "identity_desc": "在连接前选择新建身份或导入已有密钥。", + "identity_desc_page": "在连接网络前选择新建身份或导入已有密钥。", + "identity_new": "新建身份(默认)", + "identity_new_desc": "保留默认身份,并可选择设置显示名称。", + "identity_import": "导入已有身份", + "identity_import_desc": "从身份文件导入或粘贴 base32 密钥。", + "identity_set_name": "设置名称", + "identity_upload_file": "导入身份文件", + "identity_base32_placeholder": "粘贴 base32 格式的私钥身份密钥", + "identity_import_required": "请选择身份文件或粘贴 base32 密钥以导入。", + "identity_import_failed": "身份导入失败", + "identity_name_update_failed": "显示名称设置失败", + "identity_switch_failed": "无法激活导入的身份", "suggested_networks": "建议的公共网络", "suggested_relays": "建议的中继", "use": "使用",