From d1145cd1c2dcceae682377d506727e1aba5ed159 Mon Sep 17 00:00:00 2001 From: Ivan Date: Sat, 9 May 2026 19:01:30 -0500 Subject: [PATCH] fix(l10n): add missing flood protection translation keys to all locales --- meshchatx/src/frontend/locales/de.json | 24 +++++++++++++++--------- meshchatx/src/frontend/locales/es.json | 18 ++++++++++++------ meshchatx/src/frontend/locales/fr.json | 12 +++++++++--- meshchatx/src/frontend/locales/it.json | 10 ++++++++-- meshchatx/src/frontend/locales/nl.json | 10 ++++++++-- meshchatx/src/frontend/locales/ru.json | 10 ++++++++-- meshchatx/src/frontend/locales/zh.json | 10 ++++++++-- 7 files changed, 68 insertions(+), 26 deletions(-) diff --git a/meshchatx/src/frontend/locales/de.json b/meshchatx/src/frontend/locales/de.json index 272c565..1fbc8b2 100644 --- a/meshchatx/src/frontend/locales/de.json +++ b/meshchatx/src/frontend/locales/de.json @@ -357,7 +357,13 @@ "telemetry_trust_revoke": "Telemetrie-Vertrauen entziehen", "telemetry_trust_grant": "Für Telemetrie vertrauen", "location_manage_desc": "Verwalten Sie, wie Ihr Standort geteilt wird.", - "restart_rns": "RNS neu starten" + "restart_rns": "RNS neu starten", + "flood_protection": "Flood Protection", + "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.", + "flood_protection_enabled": "Enable auto-adjusting stamp cost", + "flood_threshold": "Messages per minute threshold", + "flood_max_stamp_cost": "Maximum stamp cost during flood", + "flood_cooldown": "Cooldown before lowering cost (seconds)" }, "common": { "open": "Öffnen", @@ -921,17 +927,17 @@ "backbone_transport_identity_hint": "Entspricht Reticulum-Backbone-Fernbeispielen nur mit remote und target_port. Hash verwenden, wenn Betreiber oder Verzeichnis ihn angeben.", "loopback_local_title": "Lokal / Loopback", "loopback_local_body": "Reticulum nutzt intern eine geteilte Instanz. Um einen anderen RNS-Prozess auf diesem Host zu erreichen, verwenden Sie einen TCP-Client auf 127.0.0.1 mit dem Instanz-Port oder ein externes Interface-Modul.", - "loopback_local_docs_hint": "Siehe Kapitel Interfaces f\u00fcr unterst\u00fctzte Typen.", - "loopback_local_docs_link": "Geb\u00fcndeltes Reticulum-Handbuch \u00f6ffnen", - "custom_external_intro": "Typen wie WeaveInterface oder eigene Klassen werden geladen, wenn Reticulum eine passende Moduldatei (TypeName.py) unter interfacepath mit interface_class findet (externer Loader in RNS). JSON-Optionen werden in den Interface-Abschnitt Ihrer Konfiguration \u00fcbernommen.", + "loopback_local_docs_hint": "Siehe Kapitel Interfaces für unterstützte Typen.", + "loopback_local_docs_link": "Gebündeltes Reticulum-Handbuch öffnen", + "custom_external_intro": "Typen wie WeaveInterface oder eigene Klassen werden geladen, wenn Reticulum eine passende Moduldatei (TypeName.py) unter interfacepath mit interface_class findet (externer Loader in RNS). JSON-Optionen werden in den Interface-Abschnitt Ihrer Konfiguration übernommen.", "custom_external_type_label": "Interface-Typname", "custom_external_type_placeholder": "WeaveInterface", - "custom_external_json_label": "Zus\u00e4tzliche Optionen (JSON-Objekt)", + "custom_external_json_label": "Zusätzliche Optionen (JSON-Objekt)", "custom_external_json_placeholder": "\"listen_ip\": \"0.0.0.0\", \"listen_port\": 4242", - "custom_external_docs_hint": "Siehe Interfaces-Handbuch f\u00fcr native Typen und externe Module.", - "custom_external_docs_link": "Geb\u00fcndeltes Reticulum-Handbuch \u00f6ffnen", + "custom_external_docs_hint": "Siehe Interfaces-Handbuch für native Typen und externe Module.", + "custom_external_docs_link": "Gebündeltes Reticulum-Handbuch öffnen", "custom_external_type_required": "Reticulum-Interface-Typnamen eingeben.", - "custom_external_json_invalid": "Ung\u00fcltiges JSON f\u00fcr Zusatzoptionen.", + "custom_external_json_invalid": "Ungültiges JSON für Zusatzoptionen.", "failed_save_discovery": "Speichern der Erkennungseinstellungen fehlgeschlagen", "no_interfaces_found_config": "Keine Schnittstellen in der ausgewählten Konfigurationsdatei gefunden", "failed_parse_config": "Parsen der Konfigurationsdatei fehlgeschlagen", @@ -2702,4 +2708,4 @@ "banishment_lifted": "Banishment lifted successfully", "failed_lift_banishment": "Failed to lift banishment" } -} +} \ No newline at end of file diff --git a/meshchatx/src/frontend/locales/es.json b/meshchatx/src/frontend/locales/es.json index a65b863..215689f 100644 --- a/meshchatx/src/frontend/locales/es.json +++ b/meshchatx/src/frontend/locales/es.json @@ -357,7 +357,13 @@ "telemetry_trust_revoke": "Revoke Telemetry Trust", "telemetry_trust_grant": "Trust for Telemetry", "location_manage_desc": "Administrar cómo se comparte su ubicación.", - "restart_rns": "Reiniciar RNS" + "restart_rns": "Reiniciar RNS", + "flood_protection": "Flood Protection", + "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.", + "flood_protection_enabled": "Enable auto-adjusting stamp cost", + "flood_threshold": "Messages per minute threshold", + "flood_max_stamp_cost": "Maximum stamp cost during flood", + "flood_cooldown": "Cooldown before lowering cost (seconds)" }, "common": { "open": "Abierto", @@ -869,17 +875,17 @@ "backbone_transport_identity_hint": "Como los ejemplos remotos backbone de Reticulum solo con remote y target_port. Use el hash si el operador o el directorio lo indican.", "loopback_local_title": "Local / loopback", "loopback_local_body": "Reticulum utiliza una instancia compartida internamente. Para comunicarse con otro proceso RNS en este host, use un cliente TCP a 127.0.0.1 con el puerto de la instancia, o use un módulo de interfaz externo.", - "loopback_local_docs_hint": "Vea el cap\u00edtulo Interfaces para tipos admitidos.", + "loopback_local_docs_hint": "Vea el capítulo Interfaces para tipos admitidos.", "loopback_local_docs_link": "Abrir manual Reticulum incluido", - "custom_external_intro": "Tipos como WeaveInterface se cargan si Reticulum encuentra un archivo de m\u00f3dulo coincidente (TypeName.py) en interfacepath con interface_class (cargador externo RNS). Las opciones JSON se fusionan en la secci\u00f3n de interfaz de su archivo de configuraci\u00f3n.", + "custom_external_intro": "Tipos como WeaveInterface se cargan si Reticulum encuentra un archivo de módulo coincidente (TypeName.py) en interfacepath con interface_class (cargador externo RNS). Las opciones JSON se fusionan en la sección de interfaz de su archivo de configuración.", "custom_external_type_label": "Nombre del tipo de interfaz", "custom_external_type_placeholder": "WeaveInterface", "custom_external_json_label": "Opciones adicionales (objeto JSON)", "custom_external_json_placeholder": "\"listen_ip\": \"0.0.0.0\", \"listen_port\": 4242", - "custom_external_docs_hint": "Vea el manual Interfaces sobre tipos nativos y m\u00f3dulos externos.", + "custom_external_docs_hint": "Vea el manual Interfaces sobre tipos nativos y módulos externos.", "custom_external_docs_link": "Abrir manual Reticulum incluido", "custom_external_type_required": "Introduzca el nombre del tipo de interfaz Reticulum.", - "custom_external_json_invalid": "JSON no v\u00e1lido para opciones adicionales.", + "custom_external_json_invalid": "JSON no válido para opciones adicionales.", "failed_save_discovery": "Failed to save discovery settings", "no_interfaces_found_config": "No se encontraron interfaces en el archivo de configuración seleccionado", "failed_parse_config": "Failed to parse configuración file", @@ -2702,4 +2708,4 @@ "action_changelog": "Cambio", "action_changelog_desc": "Cambios recientes" } -} +} \ No newline at end of file diff --git a/meshchatx/src/frontend/locales/fr.json b/meshchatx/src/frontend/locales/fr.json index 17b3a3c..abd34c7 100644 --- a/meshchatx/src/frontend/locales/fr.json +++ b/meshchatx/src/frontend/locales/fr.json @@ -153,7 +153,7 @@ "local_message_auto_delete_unit_days": "jours", "local_message_auto_delete_unit_months": "mois (30 jours chacun)", "local_message_auto_delete_month_note": "Un mois compte comme 30 jours. Désactivé par défaut.", - "browse_nodes": "Parcourir les n\u0153uds", + "browse_nodes": "Parcourir les nœuds", "propagation_nodes_description": "Gardez les conversations qui circulent même lorsque les pairs sont hors ligne.", "nodes_info_1": "Les nœuds de propagation maintiennent les messages en toute sécurité jusqu'à ce que les destinataires se synchronisent à nouveau.", "nodes_info_2": "Des nœuds s'unissent pour distribuer des charges utiles chiffrées.", @@ -357,7 +357,13 @@ "telemetry_trust_revoke": "Revoquer la confiance en télémétrie", "telemetry_trust_grant": "Confiance pour la télémétrie", "location_manage_desc": "Gérez comment votre emplacement est partagé.", - "restart_rns": "Redémarrer RNS" + "restart_rns": "Redémarrer RNS", + "flood_protection": "Flood Protection", + "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.", + "flood_protection_enabled": "Enable auto-adjusting stamp cost", + "flood_threshold": "Messages per minute threshold", + "flood_max_stamp_cost": "Maximum stamp cost during flood", + "flood_cooldown": "Cooldown before lowering cost (seconds)" }, "common": { "open": "Ouvrir", @@ -2702,4 +2708,4 @@ "action_changelog": "Changer de journal", "action_changelog_desc": "Changements récents" } -} +} \ No newline at end of file diff --git a/meshchatx/src/frontend/locales/it.json b/meshchatx/src/frontend/locales/it.json index 29ed0b4..7e3d752 100644 --- a/meshchatx/src/frontend/locales/it.json +++ b/meshchatx/src/frontend/locales/it.json @@ -357,7 +357,13 @@ "telemetry_trust_revoke": "Revoca Fiducia Telemetrica", "telemetry_trust_grant": "Fidati per la Telemetria", "location_manage_desc": "Gestisci come viene condivisa la tua posizione.", - "restart_rns": "Riavvia RNS" + "restart_rns": "Riavvia RNS", + "flood_protection": "Flood Protection", + "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.", + "flood_protection_enabled": "Enable auto-adjusting stamp cost", + "flood_threshold": "Messages per minute threshold", + "flood_max_stamp_cost": "Maximum stamp cost during flood", + "flood_cooldown": "Cooldown before lowering cost (seconds)" }, "common": { "open": "Apri", @@ -2702,4 +2708,4 @@ "action_changelog": "Changelog", "action_changelog_desc": "Modifiche recenti" } -} +} \ No newline at end of file diff --git a/meshchatx/src/frontend/locales/nl.json b/meshchatx/src/frontend/locales/nl.json index 7495832..4afc52c 100644 --- a/meshchatx/src/frontend/locales/nl.json +++ b/meshchatx/src/frontend/locales/nl.json @@ -357,7 +357,13 @@ "telemetry_trust_revoke": "Revoce Telemetrie Trust", "telemetry_trust_grant": "Vertrouwen voor telemetrie", "location_manage_desc": "Beheer hoe uw locatie wordt gedeeld.", - "restart_rns": "RNS herstarten" + "restart_rns": "RNS herstarten", + "flood_protection": "Flood Protection", + "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.", + "flood_protection_enabled": "Enable auto-adjusting stamp cost", + "flood_threshold": "Messages per minute threshold", + "flood_max_stamp_cost": "Maximum stamp cost during flood", + "flood_cooldown": "Cooldown before lowering cost (seconds)" }, "common": { "open": "Open", @@ -2702,4 +2708,4 @@ "action_changelog": "Changelog", "action_changelog_desc": "Recente wijzigingen" } -} +} \ No newline at end of file diff --git a/meshchatx/src/frontend/locales/ru.json b/meshchatx/src/frontend/locales/ru.json index 7895b31..edcda63 100644 --- a/meshchatx/src/frontend/locales/ru.json +++ b/meshchatx/src/frontend/locales/ru.json @@ -357,7 +357,13 @@ "telemetry_trust_revoke": "Отозвать доверие телеметрии", "telemetry_trust_grant": "Доверять телеметрии", "location_manage_desc": "Управление тем, как передается ваше местоположение.", - "restart_rns": "Перезапуск RNS" + "restart_rns": "Перезапуск RNS", + "flood_protection": "Flood Protection", + "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.", + "flood_protection_enabled": "Enable auto-adjusting stamp cost", + "flood_threshold": "Messages per minute threshold", + "flood_max_stamp_cost": "Maximum stamp cost during flood", + "flood_cooldown": "Cooldown before lowering cost (seconds)" }, "common": { "open": "Открыть", @@ -2702,4 +2708,4 @@ "banishment_lifted": "Banishment lifted successfully", "failed_lift_banishment": "Failed to lift banishment" } -} +} \ No newline at end of file diff --git a/meshchatx/src/frontend/locales/zh.json b/meshchatx/src/frontend/locales/zh.json index 5fbe046..203c9fa 100644 --- a/meshchatx/src/frontend/locales/zh.json +++ b/meshchatx/src/frontend/locales/zh.json @@ -357,7 +357,13 @@ "telemetry_trust_revoke": "撤销遥测信任", "telemetry_trust_grant": "授予遥测信任", "location_manage_desc": "管理您的位置共享方式。", - "restart_rns": "重启 RNS" + "restart_rns": "重启 RNS", + "flood_protection": "Flood Protection", + "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.", + "flood_protection_enabled": "Enable auto-adjusting stamp cost", + "flood_threshold": "Messages per minute threshold", + "flood_max_stamp_cost": "Maximum stamp cost during flood", + "flood_cooldown": "Cooldown before lowering cost (seconds)" }, "common": { "open": "打开", @@ -2702,4 +2708,4 @@ "action_changelog": "更新日志", "action_changelog_desc": "最近的更改" } -} +} \ No newline at end of file