diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 84156ab..8d5657e 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "Schaltfläche zum Neustart des BLE-Scans" }, - "tapToConnect": "Zum Verbinden tippen", - "@tapToConnect": { - "description": "Untertiteltext für Gerät in der Scanliste" - }, "deviceNotConnected": "Gerät nicht verbunden", "@deviceNotConnected": { "description": "Fehlermeldung, wenn das Gerät nicht verbunden ist" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "Einstellung zum Anzeigen von RX/TX-Indikatoren" }, - "displayPacketActivity": "Paketaktivitätsindikatoren in der oberen Leiste anzeigen", - "@displayPacketActivity": { - "description": "Beschreibung für die Einstellung der RX/TX-Indikatoren" - }, "disableMap": "Karte deaktivieren", "@disableMap": { "description": "Einstellung zum Deaktivieren des Karten-Tabs" }, - "disableMapDescription": "Karten-Tab ausblenden, um Akku zu sparen", - "@disableMapDescription": { - "description": "Beschreibung für die Einstellung zum Deaktivieren der Karte" - }, "language": "Sprache", "@language": { "description": "Beschriftung der Spracheinstellung" @@ -173,10 +161,6 @@ "@appVersion": { "description": "Beschriftung der App-Version" }, - "appName": "App-Name", - "@appName": { - "description": "Beschriftung des App-Namens" - }, "aboutMeshCoreSar": "Über MeshCore SAR", "@aboutMeshCoreSar": { "description": "Titel des Über-Dialogs" @@ -308,10 +292,6 @@ "@resetPath": { "description": "Aktion zum Zurücksetzen des Kontaktpfads für Umleitung" }, - "publicKeyCopied": "Öffentlicher Schlüssel in die Zwischenablage kopiert", - "@publicKeyCopied": { - "description": "Erfolgsmeldung, wenn der öffentliche Schlüssel kopiert wurde" - }, "copiedToClipboard": "{label} in die Zwischenablage kopiert", "@copiedToClipboard": { "description": "Erfolgsmeldung, wenn ein Wert in die Zwischenablage kopiert wurde", @@ -720,22 +700,6 @@ "@lastSeen": { "description": "Beschriftung Zuletzt gesehen" }, - "roomStatus": "Raumstatus", - "@roomStatus": { - "description": "Überschrift des Raumstatus-Bereichs" - }, - "loginStatus": "Anmeldestatus", - "@loginStatus": { - "description": "Beschriftung des Anmeldestatus" - }, - "notLoggedIn": "Nicht angemeldet", - "@notLoggedIn": { - "description": "Nicht angemeldet-Status" - }, - "adminAccess": "Admin-Zugriff", - "@adminAccess": { - "description": "Beschriftung des Admin-Zugriffs" - }, "yes": "Ja", "@yes": { "description": "Ja-Antwort" @@ -748,14 +712,6 @@ "@permissions": { "description": "Beschriftung der Berechtigungen" }, - "passwordSaved": "Passwort gespeichert", - "@passwordSaved": { - "description": "Beschriftung Passwort gespeichert" - }, - "locationColon": "Standort:", - "@locationColon": { - "description": "Überschrift des Standortbereichs" - }, "telemetry": "Telemetrie", "@telemetry": { "description": "Überschrift des Telemetrie-Bereichs" @@ -784,19 +740,6 @@ "@gpsTelemetry": { "description": "GPS aus Telemetrie-Beschriftung" }, - "updated": "Aktualisiert", - "@updated": { - "description": "Beschriftung des Aktualisierungszeitstempels" - }, - "pathResetInfo": "Pfad zurückgesetzt für {name}. Nächste Nachricht findet eine neue Route.", - "@pathResetInfo": { - "description": "Infonachricht nach Pfad-Reset", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "Erneut bei Raum anmelden", "@reLoginToRoom": { "description": "Schaltfläche zur erneuten Anmeldung beim Raum" @@ -1114,10 +1057,6 @@ "@frequencyMHz": { "description": "Beschriftung für Funkfrequenzfeld" }, - "frequencyExample": "z.B. 869.618", - "@frequencyExample": { - "description": "Hilfetext-Beispiel für Frequenz" - }, "bandwidth": "Bandbreite", "@bandwidth": { "description": "Beschriftung für Bandbreiten-Dropdown" @@ -1221,47 +1160,6 @@ "@trailControls": { "description": "Tooltip für Verlaufssteuerung" }, - "contactTrails": "Kontaktverläufe", - "@contactTrails": { - "description": "Überschrift des Bereichs für Kontaktverläufe" - }, - "showAllContactTrails": "Alle Kontaktverläufe anzeigen", - "@showAllContactTrails": { - "description": "Beschriftung zum Umschalten der Anzeige aller Kontaktverläufe" - }, - "noContactsWithLocationHistory": "Keine Kontakte mit Standortverlauf", - "@noContactsWithLocationHistory": { - "description": "Untertitel, wenn keine Kontakte mit Verläufen vorhanden sind" - }, - "showingTrailsForContacts": "Verläufe für {count} Kontakte anzeigen", - "@showingTrailsForContacts": { - "description": "Untertitel mit Anzahl der Kontakte mit Verläufen", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "Einzelne Kontaktverläufe", - "@individualContactTrails": { - "description": "Titel des Erweiterungselements für einzelne Kontaktverläufe" - }, - "deviceInformation": "Geräteinformationen", - "@deviceInformation": { - "description": "Überschrift des Geräteinformationen-Bereichs" - }, - "bleName": "BLE-Name", - "@bleName": { - "description": "Beschriftung des Bluetooth-Low-Energy-Gerätenamens" - }, - "meshName": "Mesh-Name", - "@meshName": { - "description": "Beschriftung des Mesh-Netzwerknamens" - }, - "notSet": "Nicht festgelegt", - "@notSet": { - "description": "Beschriftung, wenn ein Wert nicht festgelegt ist" - }, "model": "Modell", "@model": { "description": "Beschriftung des Gerätemodells" @@ -1270,14 +1168,6 @@ "@version": { "description": "Beschriftung der Version" }, - "buildDate": "Build-Datum", - "@buildDate": { - "description": "Beschriftung des Firmware-Build-Datums" - }, - "firmware": "Firmware", - "@firmware": { - "description": "Beschriftung der Firmware" - }, "maxContacts": "Max. Kontakte", "@maxContacts": { "description": "Beschriftung der maximalen Kontaktkapazität" @@ -1290,26 +1180,6 @@ "@publicInfo": { "description": "Überschrift des öffentlichen Informationen-Bereichs" }, - "meshNetworkName": "Mesh-Netzwerkname", - "@meshNetworkName": { - "description": "Beschriftung des Mesh-Netzwerknamens-Felds" - }, - "nameBroadcastInMesh": "Name, der in Mesh-Sendungen übertragen wird", - "@nameBroadcastInMesh": { - "description": "Hilfetext für Mesh-Netzwerknamens-Feld" - }, - "telemetryAndLocationSharing": "Telemetrie & Standortfreigabe", - "@telemetryAndLocationSharing": { - "description": "Beschriftung des Telemetrie- und Standortfreigabe-Umschalters" - }, - "lat": "Breite", - "@lat": { - "description": "Beschriftung des Breitengradfelds (Kurzform)" - }, - "lon": "Lange", - "@lon": { - "description": "Beschriftung des Längengradfelds (Kurzform)" - }, "useCurrentLocation": "Aktuellen Standort verwenden", "@useCurrentLocation": { "description": "Tooltip für Schaltfläche zum Verwenden des aktuellen Standorts" @@ -1339,15 +1209,6 @@ } } }, - "copiedToClipboardShort": "{label} in Zwischenablage kopiert", - "@copiedToClipboardShort": { - "description": "Kurze Erfolgsmeldung beim Kopieren in die Zwischenablage", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "Fehler beim Speichern: {error}", "@failedToSave": { "description": "Allgemeine Fehlermeldung für Speicherfehler", @@ -1367,7 +1228,6 @@ } }, "sarTemplates": "SAR-Vorlagen", - "manageSarTemplates": "SAR-Vorlagen verwalten", "addTemplate": "Vorlage hinzufügen", "editTemplate": "Vorlage bearbeiten", "deleteTemplate": "Vorlage löschen", @@ -1395,7 +1255,6 @@ "noTemplates": "Keine Vorlagen verfugbar", "tapAddToCreate": "Tippen Sie auf +, um Ihre erste Vorlage zu erstellen", "ok": "OK", - "permissionsSection": "Berechtigungen", "locationPermission": "Standortberechtigung", "checking": "Überprüfen...", "locationPermissionGrantedAlways": "Erteilt (Immer)", @@ -1535,28 +1394,6 @@ "wizardNext": "Weiter", "wizardGetStarted": "Loslegen", "wizardWelcomeTitle": "Willkommen bei MeshCore SAR", - "wizardWelcomeDescription": "Ein leistungsstarkes Offline-Kommunikationstool für Such- und Rettungseinsätze. Verbinden Sie sich mit Ihrem Team über Mesh-Funktechnologie, wenn herkömmliche Netzwerke nicht verfügbar sind.", - "wizardConnectingTitle": "Verbindung zum Radio", - "wizardConnectingDescription": "Verbinden Sie Ihr Smartphone über Bluetooth mit einem MeshCore-Funkgerät, um offline zu kommunizieren.", - "wizardConnectingFeature1": "Nach MeshCore-Geräten in der Nähe suchen", - "wizardConnectingFeature2": "Mit Ihrem Funkgerät über Bluetooth koppeln", - "wizardConnectingFeature3": "Funktioniert vollständig offline - kein Internet erforderlich", - "wizardChannelTitle": "Kanäle", - "wizardChannelDescription": "Senden Sie Nachrichten an alle auf einem Kanal, perfekt für teamweite Ankündigungen und Koordination.", - "wizardChannelFeature1": "Öffentlicher Kanal für allgemeine Teamkommunikation", - "wizardChannelFeature2": "Erstellen Sie benutzerdefinierte Kanäle für bestimmte Gruppen", - "wizardChannelFeature3": "Nachrichten werden automatisch über das Mesh weitergeleitet", - "wizardContactsTitle": "Kontakte", - "wizardContactsDescription": "Ihre Teammitglieder erscheinen automatisch, wenn sie dem Mesh-Netzwerk beitreten. Senden Sie ihnen direkte Nachrichten oder sehen Sie ihren Standort.", - "wizardContactsFeature1": "Kontakte werden automatisch erkannt", - "wizardContactsFeature2": "Private Direktnachrichten senden", - "wizardContactsFeature3": "Batteriestand und letzte Aktivität anzeigen", - "wizardMapTitle": "Karte & Standort", - "wizardMapDescription": "Verfolgen Sie Ihr Team in Echtzeit und markieren Sie wichtige Standorte für Such- und Rettungseinsätze.", - "wizardMapFeature1": "SAR-Markierungen für gefundene Personen, Feuer und Sammelstellen", - "wizardMapFeature2": "GPS-Verfolgung von Teammitgliedern in Echtzeit", - "wizardMapFeature3": "Offline-Karten für entlegene Gebiete herunterladen", - "wizardMapFeature4": "Formen zeichnen und taktische Informationen teilen", "viewWelcomeTutorial": "Willkommens-Tutorial ansehen", "allTeamContacts": "Alle Team-Kontakte", "directMessagesInfo": "Direktnachrichten mit Bestätigungen. An {count} Teammitglieder gesendet.", @@ -1662,29 +1499,10 @@ "posttxDelay": "Sendeverzögerung", "bandpass": "Bandpass", "bandpassFilterVoice": "Bandpassfilter Sprache", - "frequency": "Frequenz", - "australia": "Australien", - "australiaNarrow": "Australien (Schmal)", - "australiaQld": "Australien: QLD", - "australiaSaWa": "Australien: SA, WA", - "newZealand": "Neuseeland", - "newZealandNarrow": "Neuseeland (Schmal)", - "switzerland": "Schweiz", - "portugal433": "Portugal 433", - "portugal868": "Portugal 868", - "czechRepublicNarrow": "Tschechien (Schmal)", - "eu433mhzLongRange": "EU 433MHz (Langstrecke)", - "euukDeprecated": "EU/UK (Veraltet)", - "euukNarrow": "EU/UK (Schmal)", - "usacanadaRecommended": "USA/Kanada (Empfohlen)", - "vietnamDeprecated": "Vietnam (Veraltet)", - "vietnamNarrow": "Vietnam (Schmal)", "active": "Aktiv", "addContact": "Kontakt hinzufügen", "all": "Alle", - "autoResolve": "Automatisch auflösen", "clearAllLabel": "Alle löschen", - "clearRelays": "Relais löschen", "clearFilters": "Filter löschen", "clearRoute": "Route löschen", "clearMessages": "Nachrichten löschen", @@ -1709,17 +1527,22 @@ "resolveAll": "Alle auflösen", "send": "Senden", "sendAnyway": "Trotzdem senden", + "autoSend": "Automatisch senden", + "autoSendDescription": "Über aktuellen Pfad senden.", + "sendDirect": "Direkt senden", + "sendDirectDescription": "Direkt an diesen Kontakt senden.", + "sendFlood": "Per Flutung senden", + "sendFloodDescription": "Über alle Repeater senden.", "share": "Teilen", - "shareContact": "Kontakt teilen", "trace": "Trace", - "use": "Verwenden", - "useSelectedFrequency": "Ausgewählte Frequenz verwenden", "discovery": "Erkennung", "discoverRepeaters": "Repeater entdecken", "discoverSensors": "Sensoren entdecken", "repeaterDiscoverySent": "Repeater-Erkennung gesendet", "sensorDiscoverySent": "Sensor-Erkennung gesendet", "clearedPendingDiscoveries": "Ausstehende Entdeckungen gelöscht.", + "postConnectDiscoveryTitle": "Repeater jetzt entdecken?", + "postConnectDiscoveryDescription": "Repeater-Erkennung direkt nach dem Verbinden ausführen, damit Sie nahegelegene MeshCore-Knoten sehen und schneller zu Ihrem Netzwerk hinzufügen können.", "autoDiscovery": "Automatische Erkennung", "enableAutomaticAdding": "Automatisches Hinzufügen aktivieren", "autoaddRepeaters": "Repeater automatisch hinzufügen", @@ -1736,7 +1559,6 @@ "gpsModule": "GPS-Modul", "liveTraffic": "Live-Verkehr", "repeatersMap": "Repeater-Karte", - "spectrumScan": "Spektrum-Scan", "blePacketLogs": "BLE-Paketprotokolle", "onlineTraceDatabase": "Online-Trace-Datenbank", "routePathByteSize": "Pfad-Bytegröße", @@ -1748,7 +1570,6 @@ "disableContacts": "Kontakte deaktivieren", "enableSensorsTab": "Sensoren-Tab aktivieren", "enableProfiles": "Profile aktivieren", - "autoRouteRotation": "Automatische Routenrotation", "nearestRepeaterFallback": "Nächster Repeater als Fallback", "deleteAllStoredMessageHistory": "Gesamten Nachrichtenverlauf löschen", "messageFontSize": "Nachrichtenschriftgröße", @@ -1756,18 +1577,13 @@ "showMapDebugInfo": "Karten-Debug-Info anzeigen", "openMapInFullscreen": "Karte im Vollbild öffnen", "showSarMarkersLabel": "SAR-Markierungen anzeigen", - "displaySarMarkersOnTheMainMap": "SAR-Markierungen auf der Hauptkarte anzeigen", - "showAllContactTrailsLabel": "Alle Kontaktpfade anzeigen", "hideRepeatersOnMap": "Repeater auf Karte ausblenden", "setMapScale": "Kartenmaßstab einstellen", "customMapScaleSaved": "Benutzerdefinierter Kartenmaßstab gespeichert", "voiceBitrate": "Sprach-Bitrate", "voiceCompressor": "Sprachkompressor", - "balancesQuietAndLoudSpeechLevels": "Gleicht leise und laute Sprache aus", "voiceLimiter": "Sprach-Limiter", - "preventsClippingPeaksBeforeEncoding": "Verhindert Clipping-Spitzen vor der Kodierung", "micAutoGain": "Mikrofon-Automatik", - "letsTheRecorderAdjustInputLevel": "Lässt den Rekorder den Eingangspegel anpassen", "echoCancellation": "Echounterdrückung", "noiseSuppression": "Rauschunterdrückung", "trimSilenceInVoiceMessages": "Stille in Sprachnachrichten trimmen", @@ -1809,13 +1625,10 @@ "staging": "Sammelpunkt", "object": "Objekt", "quiet": "Ruhig", - "moderate": "Mäßig", "busy": "Beschäftigt", - "spectrumScanReturnedNoCandidateFrequencies": "Spektrum-Scan hat keine Kandidatenfrequenzen gefunden", "searchMessages": "Nachrichten suchen", "sendImageFromGallery": "Bild aus Galerie senden", "takePhoto": "Foto aufnehmen", - "dmOnly": "Nur Direktnachricht", "allMessages": "Alle Nachrichten", "sendToPublicChannel": "An öffentlichen Kanal senden?", "selectMarkerTypeAndDestination": "Markierungstyp und Ziel auswählen", @@ -1834,8 +1647,6 @@ "wipeDevice": "Gerät löschen", "destructiveDeviceActions": "Destruktive Geräteaktionen.", "chooseAPresetOrFinetuneCustomRadioSettings": "Wählen Sie eine Voreinstellung oder passen Sie die Funkeinstellungen an.", - "chooseTheNameAndLocationThisDeviceShares": "Wählen Sie den Namen und Standort, den dieses Gerät teilt.", - "availableSpaceOnThisDevice": "Verfügbarer Speicherplatz auf diesem Gerät.", "used": "Belegt", "total": "Gesamt", "renameValue": "Wert umbenennen", @@ -1853,8 +1664,6 @@ "onlineOnly": "Nur online", "inBoth": "In beiden", "source": "Quelle", - "manualRouteEdit": "Manuelle Routenbearbeitung", - "observedMeshRoute": "Beobachtete Mesh-Route", "allMessagesCleared": "Alle Nachrichten gelöscht", "onlineTraceDatabaseCleared": "Online-Trace-Datenbank gelöscht", "packetLogsCleared": "Paketprotokolle gelöscht", @@ -1885,5 +1694,186 @@ "captured": "Erfasst", "size": "Größe", "noCustomChannelsToClear": "Keine benutzerdefinierten Kanäle zum Löschen.", - "noDeviceContactsToClear": "Keine Gerätekontakte zum Löschen." + "noDeviceContactsToClear": "Keine Gerätekontakte zum Löschen.", + "aToZ": "A-Z", + "add": "Hinzufügen", + "addAdditionalDetails": "Zusätzliche Details hinzufügen", + "addPeer": "Peer hinzufügen", + "addPeerManually": "Peer manuell hinzufügen", + "addedToContacts": "{name} zu Kontakten hinzugefügt", + "addedToSensors": "{name} zu Sensoren hinzugefügt", + "allowAll": "Alle zulassen", + "anonymousRxStats": "Anonyme RX-Statistiken", + "appearance": "Erscheinungsbild", + "ascii": "ASCII", + "baseTelemetry": "Basistelemetrie", + "blePin": "BLE PIN", + "buzzerAlerts": "Summer-Alarme", + "cancelImageReceive": "Bildempfang abbrechen", + "choose": "Auswählen", + "chooseWhichTabsAndContactSectionsToShow": "Wähle, welche Tabs und Kontaktbereiche angezeigt werden", + "clearCache": "Cache leeren", + "clearHistory": "Verlauf löschen", + "clearLiveView": "Live-Ansicht leeren", + "clearLogs": "Protokolle löschen", + "clearOfflineCache": "Offline-Cache leeren?", + "clearOverlay": "Overlay löschen", + "clearRouteOnlyAfterAllRetriesFail": "Route erst nach allen fehlgeschlagenen Versuchen löschen", + "codecBitrateAndAudioProcessing": "Codec, Bitrate und Audioverarbeitung", + "connectByIpAddress": "Über IP-Adresse verbinden", + "controlWhichAlertsYouReceive": "Steuere, welche Benachrichtigungen du erhältst", + "copyFullHex": "Vollständigen Hex kopieren", + "copyRawResponse": "Rohantwort kopieren", + "couldNotLoadMetHistory": "MET-Verlauf konnte nicht geladen werden", + "customizeSensor": "{name} anpassen", + "data": "Daten", + "deleteGroup": "Gruppe löschen", + "deleteStyleConfirm": "{name} löschen?", + "deleteThisDrawing": "Diese(s) {type} löschen?", + "deny": "Ablehnen", + "deviceInfo": "Geräteinformationen", + "deviceSettings": "Geräteeinstellungen", + "deviceTimeSynced": "Gerätezeit mit diesem Telefon synchronisiert.", + "disableFastGpsPublishing": "Schnelle GPS-Veröffentlichung deaktivieren", + "displayMarkersAndTraceDatabase": "Anzeige, Markierungen und Trace-Datenbank", + "download": "Herunterladen", + "environmentalTelemetry": "Umwelttelemetrie", + "errorCheckingForUpdates": "Fehler bei der Suche nach Updates: {error}", + "errorGeneric": "Fehler: {error}", + "errorOpeningDownload": "Fehler beim Öffnen des Downloads: {error}", + "exportLogs": "Protokolle exportieren", + "extraAggressiveAvifCompression": "Extra-aggressive AVIF-Komprimierung", + "failedToAddContact": "Kontakt konnte nicht hinzugefügt werden: {error}", + "failedToAddName": "{name} konnte nicht hinzugefügt werden: {error}", + "failedToClearChannels": "Kanäle konnten nicht gelöscht werden: {error}", + "failedToClearContacts": "Kontakte konnten nicht gelöscht werden: {error}", + "failedToConnectViaSerial": "Verbindung über seriell fehlgeschlagen", + "failedToLoadPreviewImage": "Vorschaubild konnte nicht geladen werden: {error}", + "failedToLoadTrace": "Trace konnte nicht geladen werden: {error}", + "failedToSendSarMarker": "SAR-Markierung konnte nicht gesendet werden: {error}", + "failedToSetBuzzerMode": "Summermodus konnte nicht gesetzt werden: {error}", + "failedToSetGpsMode": "GPS-Modus konnte nicht gesetzt werden: {error}", + "failedToSyncDeviceTime": "Gerätezeit konnte nicht synchronisiert werden: {error}", + "failedToWipeDeviceData": "Gerätedaten konnten nicht gelöscht werden: {error}", + "fastGpsTargetChannel": "Schneller GPS-Zielkanal", + "fastUpdatesThresholdsAndPermissions": "Schnelle Updates, Schwellenwerte und Berechtigungen", + "fetchingCatalog": "Katalog wird geladen...", + "fifteenMinutes": "15 Minuten", + "fifteenSeconds": "15 Sekunden", + "filterByDirection": "Nach Richtung filtern", + "finish": "Fertig", + "fiveMinutes": "5 Minuten", + "fiveSeconds": "5 Sekunden", + "fix": "Fix", + "gps": "GPS", + "gpsAdvertPolicy": "GPS-Anzeigenrichtlinie", + "gpsAndLocation": "GPS & Standort", + "gpsDiagnostics": "GPS-Diagnose", + "gpsSection": "GPS", + "help": "Hilfe", + "hex": "Hex", + "hidden": "Ausgeblendet", + "howTheRadioAutoAddsDiscoveredNodes": "Wie das Funkgerät entdeckte Knoten automatisch hinzufügt.", + "images": "Bilder", + "importProfile": "Profil importieren", + "lastFix": "Letzter Fix", + "latest": "Neueste", + "latitude": "Breitengrad", + "loadASavedRegion": "Gespeicherte Region laden", + "loading": "Laden", + "locationSharingHardwareAndUpdateInterval": "Standortfreigabe, Hardware und Aktualisierungsintervall.", + "locationTelemetry": "Standorttelemetrie", + "lockDestination": "Ziel sperren", + "longitude": "Längengrad", + "mapStyle": "Kartenstil", + "max": "Max", + "maxZoom": "Max. Zoom", + "messaging": "Nachrichten", + "metHistory": "MET-Verlauf", + "min": "Min", + "minZoom": "Min. Zoom", + "moveDown": "Nach unten", + "moveUp": "Nach oben", + "multiAckMode": "Multi-ACK-Modus", + "multiDeviceWorkspaceManagement": "Mehrgeräte-Arbeitsbereichsverwaltung", + "myLocation": "Mein Standort", + "nameAndTelemetryShared": "Name und Telemetrie werden mit anderen Geräten geteilt.", + "newVersionAvailable": "Neue Version: {version}", + "newer": "Neuer", + "noNeighboursFound": "Keine Nachbarn gefunden", + "noServersFound": "Keine Server gefunden", + "notSet": "Nicht gesetzt", + "notifications": "Benachrichtigungen", + "offZeroSeconds": "Aus (0 s)", + "offlineMaps": "Offlinekarten", + "older": "Älter", + "oneByteMode0": "1 Byte (Modus 0)", + "oneHour": "1 Stunde", + "oneMinute": "1 Minute", + "openPacketLogs": "Paketprotokolle öffnen", + "packetTypeHelp": "Pakettyp-Hilfe", + "pasteShareLinkOrHexAdvert": "Teilen-Link oder Hex-Anzeige einfügen", + "pathHash": "Pfad-Hash", + "pathSize": "Pfadgröße", + "ping": "Ping", + "polygon": "Polygon", + "rawResponseCopied": "Rohantwort kopiert", + "resendThroughNearestRepeaterOnFailure": "Bei Fehler über nächsten Repeater erneut senden", + "resolveContact": "Kontakt auflösen", + "routingRetriesAndDestinationLock": "Routing, Wiederholungsversuche und Zielsperre", + "samples": "Proben", + "satellites": "Satelliten", + "saving": "Speichern...", + "search": "Suchen", + "searchByNameOrToken": "Nach Name oder Token suchen", + "searchDiscoveredNodes": "Entdeckte Knoten suchen", + "searchInCurrentFilter": "Im aktuellen Filter suchen", + "searchLogs": "Protokolle durchsuchen...", + "searchSensors": "Sensoren suchen", + "searchThisSection": "Diesen Bereich durchsuchen", + "selectedRelays": "Ausgewählte Relais", + "sensor": "Sensor", + "serialError": "Serieller Fehler: {error}", + "setPathForContact": "Pfad für {name} festlegen", + "shareLiveGps": "Live-GPS teilen", + "shareMyTiles": "Meine Kacheln teilen", + "sharingLocationFromPhone": "Standort auf diesem Kanal vom Telefon wird geteilt.", + "sharingLocationFromRadio": "Standort auf diesem Kanal vom Funkgerät wird geteilt.", + "signalDbm": "Signal {rssi} dBm", + "sizeCompressionAndPreview": "Größe, Komprimierung und Vorschau", + "skip": "Überspringen", + "smallerFileSize": "Kleinere Dateigröße", + "sort": "Sortieren", + "stoppedSharingLocation": "Standortfreigabe auf diesem Kanal beendet.", + "suppressNotificationsWhileInForeground": "Benachrichtigungen im Vordergrund unterdrücken", + "tabsAndNavigation": "Tabs & Navigation", + "templatesAndTutorials": "Vorlagen und Anleitungen", + "tenMinutes": "10 Minuten", + "tenSeconds": "10 Sekunden", + "testSendUpdate": "Testupdate senden", + "themeLanguageAndDisplayPreferences": "Design, Sprache und Anzeigeeinstellungen", + "thirtyMinutes": "30 Minuten", + "thirtySeconds": "30 Sekunden", + "threeBytesMode2": "3 Bytes (Modus 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Verkehrsstatistiken, Nachrichtenverlauf und Entwicklertools", + "twoBytesMode1": "2 Bytes (Modus 1)", + "twoMinutes": "2 Minuten", + "undo": "Rückgängig", + "updated": "Aktualisiert", + "useContactFlags": "Kontakt-Flags verwenden", + "useSavedCoordinates": "Gespeicherte Koordinaten verwenden", + "view": "Ansicht", + "viewNeighbours": "Nachbarn anzeigen", + "viewPublicStats": "Öffentliche Statistiken anzeigen", + "setRegionScope": "Regionsbereich festlegen", + "regionScope": "Regionsbereich", + "regionScopeNone": "Keiner (global)", + "clearRegionScope": "Bereich löschen", + "regionScopeWarning": "Nur Repeater, die diese Region zulassen, werden weiterleiten.", + "discoverRegions": "Von Repeatern entdecken", + "discoveringRegions": "Regionen werden entdeckt...", + "enterRegionName": "Regionsname (z.B. auckland)", + "noRegionsFound": "Keine Regionen auf diesem Repeater gefunden.", + "regionScopeSet": "Regionsbereich auf {name} gesetzt", + "regionScopeCleared": "Regionsbereich gelöscht" } diff --git a/lib/l10n/app_el.arb b/lib/l10n/app_el.arb index ad933f5..27cabf8 100644 --- a/lib/l10n/app_el.arb +++ b/lib/l10n/app_el.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "Button to restart BLE scanning" }, - "tapToConnect": "Πατήστε για σύνδεση", - "@tapToConnect": { - "description": "Subtitle text for device in scan list" - }, "deviceNotConnected": "Η συσκευή δεν είναι συνδεδεμένη", "@deviceNotConnected": { "description": "Error message when device is not connected" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "Setting to show RX/TX indicators" }, - "displayPacketActivity": "Εμφάνιση ενδείξεων δραστηριότητας πακέτων στην επάνω μπάρα", - "@displayPacketActivity": { - "description": "Description for RX/TX indicators setting" - }, "disableMap": "Απενεργοποίηση χάρτη", "@disableMap": { "description": "Setting to disable the map tab" }, - "disableMapDescription": "Απόκρυψη της καρτέλας χάρτη για μείωση κατανάλωσης μπαταρίας", - "@disableMapDescription": { - "description": "Description for disable map setting" - }, "language": "Γλώσσα", "@language": { "description": "Language setting label" @@ -173,10 +161,6 @@ "@appVersion": { "description": "App version label" }, - "appName": "Όνομα εφαρμογής", - "@appName": { - "description": "App name label" - }, "aboutMeshCoreSar": "Σχετικά με το MeshCore SAR", "@aboutMeshCoreSar": { "description": "About dialog title" @@ -308,10 +292,6 @@ "@resetPath": { "description": "Action to reset contact path for re-routing" }, - "publicKeyCopied": "Το δημόσιο κλειδί αντιγράφηκε στο πρόχειρο", - "@publicKeyCopied": { - "description": "Success message when public key is copied" - }, "copiedToClipboard": "Το {label} αντιγράφηκε στο πρόχειρο", "@copiedToClipboard": { "description": "Success message when a value is copied to clipboard", @@ -720,22 +700,6 @@ "@lastSeen": { "description": "Last seen label" }, - "roomStatus": "Κατάσταση δωματίου", - "@roomStatus": { - "description": "Room status section header" - }, - "loginStatus": "Κατάσταση σύνδεσης", - "@loginStatus": { - "description": "Login status label" - }, - "notLoggedIn": "Μη συνδεδεμένος", - "@notLoggedIn": { - "description": "Not logged in status" - }, - "adminAccess": "Πρόσβαση διαχειριστή", - "@adminAccess": { - "description": "Admin access label" - }, "yes": "Ναι", "@yes": { "description": "Yes answer" @@ -748,14 +712,6 @@ "@permissions": { "description": "Permissions label" }, - "passwordSaved": "Ο κωδικός αποθηκεύτηκε", - "@passwordSaved": { - "description": "Password saved label" - }, - "locationColon": "Τοποθεσία:", - "@locationColon": { - "description": "Location section header" - }, "telemetry": "Τηλεμετρία", "@telemetry": { "description": "Telemetry section header" @@ -784,19 +740,6 @@ "@gpsTelemetry": { "description": "GPS from telemetry label" }, - "updated": "Ενημερώθηκε", - "@updated": { - "description": "Updated timestamp label" - }, - "pathResetInfo": "Η διαδρομή για το {name} επαναφέρθηκε. Το επόμενο μήνυμα θα βρει νέα διαδρομή.", - "@pathResetInfo": { - "description": "Info message after path reset", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "Επανασύνδεση στο δωμάτιο", "@reLoginToRoom": { "description": "Button to re-login to room" @@ -1158,10 +1101,6 @@ "@frequencyMHz": { "description": "Label for radio frequency field" }, - "frequencyExample": "π.χ. 869.618", - "@frequencyExample": { - "description": "Helper text example for frequency" - }, "bandwidth": "Εύρος ζώνης", "@bandwidth": { "description": "Label for bandwidth dropdown" @@ -1265,47 +1204,6 @@ "@trailControls": { "description": "Trail controls tooltip" }, - "contactTrails": "Ίχνη επαφών", - "@contactTrails": { - "description": "Contact trails section header" - }, - "showAllContactTrails": "Εμφάνιση όλων των ιχνών επαφών", - "@showAllContactTrails": { - "description": "Toggle label to show all contact trails" - }, - "noContactsWithLocationHistory": "Δεν υπάρχουν επαφές με ιστορικό τοποθεσίας", - "@noContactsWithLocationHistory": { - "description": "Subtitle when no contacts have trails" - }, - "showingTrailsForContacts": "Εμφανίζονται ίχνη για {count} επαφές", - "@showingTrailsForContacts": { - "description": "Subtitle showing number of contacts with trails", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "Μεμονωμένα ίχνη επαφών", - "@individualContactTrails": { - "description": "Expansion tile title for individual contact trails" - }, - "deviceInformation": "Πληροφορίες συσκευής", - "@deviceInformation": { - "description": "Device information section header" - }, - "bleName": "Όνομα BLE", - "@bleName": { - "description": "Bluetooth Low Energy device name label" - }, - "meshName": "Όνομα mesh", - "@meshName": { - "description": "Mesh network name label" - }, - "notSet": "Δεν έχει οριστεί", - "@notSet": { - "description": "Label when a value is not set" - }, "model": "Μοντέλο", "@model": { "description": "Device model label" @@ -1314,14 +1212,6 @@ "@version": { "description": "Version label" }, - "buildDate": "Ημερομηνία build", - "@buildDate": { - "description": "Firmware build date label" - }, - "firmware": "Υλικολογισμικό", - "@firmware": { - "description": "Firmware label" - }, "maxContacts": "Μέγιστες επαφές", "@maxContacts": { "description": "Maximum contacts capacity label" @@ -1334,26 +1224,6 @@ "@publicInfo": { "description": "Public information section header" }, - "meshNetworkName": "Όνομα δικτύου mesh", - "@meshNetworkName": { - "description": "Mesh network name field label" - }, - "nameBroadcastInMesh": "Όνομα που μεταδίδεται στις διαφημίσεις mesh", - "@nameBroadcastInMesh": { - "description": "Helper text for mesh network name field" - }, - "telemetryAndLocationSharing": "Τηλεμετρία και κοινοποίηση τοποθεσίας", - "@telemetryAndLocationSharing": { - "description": "Telemetry and location sharing toggle label" - }, - "lat": "Πλάτος", - "@lat": { - "description": "Latitude field label (short form)" - }, - "lon": "Μήκος", - "@lon": { - "description": "Longitude field label (short form)" - }, "useCurrentLocation": "Χρήση τρέχουσας τοποθεσίας", "@useCurrentLocation": { "description": "Tooltip for use current location button" @@ -1383,15 +1253,6 @@ } } }, - "copiedToClipboardShort": "Το {label} αντιγράφηκε στο πρόχειρο", - "@copiedToClipboardShort": { - "description": "Short success message when copying to clipboard", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "Αποτυχία αποθήκευσης: {error}", "@failedToSave": { "description": "Generic error message for save failures", @@ -1414,10 +1275,6 @@ "@sarTemplates": { "description": "SAR templates menu title" }, - "manageSarTemplates": "Διαχείριση προτύπων SAR", - "@manageSarTemplates": { - "description": "Subtitle for SAR templates settings" - }, "addTemplate": "Προσθήκη προτύπου", "@addTemplate": { "description": "Button to add new SAR template" @@ -1541,10 +1398,6 @@ "@ok": { "description": "OK button label" }, - "permissionsSection": "Δικαιώματα", - "@permissionsSection": { - "description": "Permissions section header" - }, "locationPermission": "Άδεια τοποθεσίας", "@locationPermission": { "description": "Location permission label" @@ -2109,94 +1962,6 @@ "@wizardWelcomeTitle": { "description": "Welcome wizard first page title" }, - "wizardWelcomeDescription": "Ένα ισχυρό εργαλείο επικοινωνίας εκτός δικτύου για επιχειρήσεις έρευνας και διάσωσης. Συνδεθείτε με την ομάδα σας χρησιμοποιώντας τεχνολογία mesh radio όταν τα παραδοσιακά δίκτυα δεν είναι διαθέσιμα.", - "@wizardWelcomeDescription": { - "description": "Welcome wizard first page description" - }, - "wizardConnectingTitle": "Σύνδεση στο radio σας", - "@wizardConnectingTitle": { - "description": "Wizard connecting page title" - }, - "wizardConnectingDescription": "Συνδέστε το smartphone σας με μια συσκευή MeshCore radio μέσω Bluetooth για να αρχίσετε να επικοινωνείτε εκτός δικτύου.", - "@wizardConnectingDescription": { - "description": "Wizard connecting page description" - }, - "wizardConnectingFeature1": "Σάρωση για κοντινές συσκευές MeshCore", - "@wizardConnectingFeature1": { - "description": "Wizard connecting feature 1" - }, - "wizardConnectingFeature2": "Σύζευξη με το radio σας μέσω Bluetooth", - "@wizardConnectingFeature2": { - "description": "Wizard connecting feature 2" - }, - "wizardConnectingFeature3": "Λειτουργεί πλήρως εκτός σύνδεσης - δεν απαιτείται internet", - "@wizardConnectingFeature3": { - "description": "Wizard connecting feature 3" - }, - "wizardChannelTitle": "Κανάλια", - "@wizardChannelTitle": { - "description": "Wizard channel page title" - }, - "wizardChannelDescription": "Μεταδώστε μηνύματα σε όλους σε ένα κανάλι, ιδανικό για ανακοινώσεις και συντονισμό σε όλη την ομάδα.", - "@wizardChannelDescription": { - "description": "Wizard channel page description" - }, - "wizardChannelFeature1": "Δημόσιο κανάλι για γενική επικοινωνία ομάδας", - "@wizardChannelFeature1": { - "description": "Wizard channel feature 1" - }, - "wizardChannelFeature2": "Δημιουργία προσαρμοσμένων καναλιών για συγκεκριμένες ομάδες", - "@wizardChannelFeature2": { - "description": "Wizard channel feature 2" - }, - "wizardChannelFeature3": "Τα μηνύματα αναμεταδίδονται αυτόματα από το mesh", - "@wizardChannelFeature3": { - "description": "Wizard channel feature 3" - }, - "wizardContactsTitle": "Επαφές", - "@wizardContactsTitle": { - "description": "Wizard contacts page title" - }, - "wizardContactsDescription": "Τα μέλη της ομάδας σας εμφανίζονται αυτόματα καθώς συνδέονται στο δίκτυο mesh. Στείλτε τους άμεσα μηνύματα ή δείτε την τοποθεσία τους.", - "@wizardContactsDescription": { - "description": "Wizard contacts page description" - }, - "wizardContactsFeature1": "Οι επαφές εντοπίζονται αυτόματα", - "@wizardContactsFeature1": { - "description": "Wizard contacts feature 1" - }, - "wizardContactsFeature2": "Αποστολή ιδιωτικών άμεσων μηνυμάτων", - "@wizardContactsFeature2": { - "description": "Wizard contacts feature 2" - }, - "wizardContactsFeature3": "Προβολή επιπέδου μπαταρίας και χρόνου τελευταίας εμφάνισης", - "@wizardContactsFeature3": { - "description": "Wizard contacts feature 3" - }, - "wizardMapTitle": "Χάρτης και τοποθεσία", - "@wizardMapTitle": { - "description": "Wizard map page title" - }, - "wizardMapDescription": "Παρακολουθήστε την ομάδα σας σε πραγματικό χρόνο και σημειώστε σημαντικές τοποθεσίες για επιχειρήσεις έρευνας και διάσωσης.", - "@wizardMapDescription": { - "description": "Wizard map page description" - }, - "wizardMapFeature1": "Δείκτες SAR για εντοπισμένα άτομα, φωτιές και σημεία συγκέντρωσης", - "@wizardMapFeature1": { - "description": "Wizard map feature 1" - }, - "wizardMapFeature2": "Παρακολούθηση GPS των μελών της ομάδας σε πραγματικό χρόνο", - "@wizardMapFeature2": { - "description": "Wizard map feature 2" - }, - "wizardMapFeature3": "Λήψη χαρτών εκτός σύνδεσης για απομακρυσμένες περιοχές", - "@wizardMapFeature3": { - "description": "Wizard map feature 3" - }, - "wizardMapFeature4": "Σχεδίαση σχημάτων και κοινοποίηση τακτικών πληροφοριών", - "@wizardMapFeature4": { - "description": "Wizard map feature 4" - }, "viewWelcomeTutorial": "Προβολή οδηγού καλωσορίσματος", "@viewWelcomeTutorial": { "description": "Settings option to re-show welcome wizard" @@ -2327,29 +2092,10 @@ "posttxDelay": "Καθυστέρηση μετά-tx", "bandpass": "Ζωνοπερατό", "bandpassFilterVoice": "Ζωνοπερατό φίλτρο φωνής", - "frequency": "Συχνότητα", - "australia": "Αυστραλία", - "australiaNarrow": "Αυστραλία (Στενό)", - "australiaQld": "Αυστραλία: QLD", - "australiaSaWa": "Αυστραλία: SA, WA", - "newZealand": "Νέα Ζηλανδία", - "newZealandNarrow": "Νέα Ζηλανδία (Στενό)", - "switzerland": "Ελβετία", - "portugal433": "Πορτογαλία 433", - "portugal868": "Πορτογαλία 868", - "czechRepublicNarrow": "Τσεχία (Στενό)", - "eu433mhzLongRange": "ΕΕ 433MHz (Μεγάλη Εμβέλεια)", - "euukDeprecated": "ΕΕ/ΗΒ (Παρωχημένο)", - "euukNarrow": "ΕΕ/ΗΒ (Στενό)", - "usacanadaRecommended": "ΗΠΑ/Καναδάς (Προτεινόμενο)", - "vietnamDeprecated": "Βιετνάμ (Παρωχημένο)", - "vietnamNarrow": "Βιετνάμ (Στενό)", "active": "Ενεργό", "addContact": "Προσθήκη επαφής", "all": "Όλα", - "autoResolve": "Αυτόματη επίλυση", "clearAllLabel": "Εκκαθάριση όλων", - "clearRelays": "Εκκαθάριση αναμεταδοτών", "clearFilters": "Εκκαθάριση φίλτρων", "clearRoute": "Εκκαθάριση διαδρομής", "clearMessages": "Εκκαθάριση μηνυμάτων", @@ -2375,10 +2121,7 @@ "send": "Αποστολή", "sendAnyway": "Αποστολή ούτως ή άλλως", "share": "Κοινοποίηση", - "shareContact": "Κοινοποίηση επαφής", "trace": "Ίχνος", - "use": "Χρήση", - "useSelectedFrequency": "Χρήση επιλεγμένης συχνότητας", "discovery": "Ανακάλυψη", "discoverRepeaters": "Ανακάλυψη αναμεταδοτών", "discoverSensors": "Ανακάλυψη αισθητήρων", @@ -2401,7 +2144,6 @@ "gpsModule": "Μονάδα GPS", "liveTraffic": "Ζωντανή κίνηση", "repeatersMap": "Χάρτης αναμεταδοτών", - "spectrumScan": "Σάρωση φάσματος", "blePacketLogs": "Αρχεία πακέτων BLE", "onlineTraceDatabase": "Βάση δεδομένων ιχνών", "routePathByteSize": "Μέγεθος διαδρομής σε bytes", @@ -2413,7 +2155,6 @@ "disableContacts": "Απενεργοποίηση επαφών", "enableSensorsTab": "Ενεργοποίηση καρτέλας Αισθητήρων", "enableProfiles": "Ενεργοποίηση προφίλ", - "autoRouteRotation": "Αυτόματη εναλλαγή διαδρομής", "nearestRepeaterFallback": "Πλησιέστερος αναμεταδότης ως εφεδρεία", "deleteAllStoredMessageHistory": "Διαγραφή όλου του ιστορικού", "messageFontSize": "Μέγεθος γραμματοσειράς μηνυμάτων", @@ -2421,18 +2162,13 @@ "showMapDebugInfo": "Εμφάνιση πληροφοριών αποσφαλμάτωσης", "openMapInFullscreen": "Άνοιγμα χάρτη σε πλήρη οθόνη", "showSarMarkersLabel": "Εμφάνιση δεικτών SAR", - "displaySarMarkersOnTheMainMap": "Εμφάνιση δεικτών SAR στον κύριο χάρτη", - "showAllContactTrailsLabel": "Εμφάνιση όλων των ιχνών επαφών", "hideRepeatersOnMap": "Απόκρυψη αναμεταδοτών στον χάρτη", "setMapScale": "Ρύθμιση κλίμακας χάρτη", "customMapScaleSaved": "Προσαρμοσμένη κλίμακα χάρτη αποθηκεύτηκε", "voiceBitrate": "Ρυθμός bit φωνής", "voiceCompressor": "Συμπιεστής φωνής", - "balancesQuietAndLoudSpeechLevels": "Εξισορρόπηση χαμηλών και δυνατών επιπέδων", "voiceLimiter": "Περιοριστής φωνής", - "preventsClippingPeaksBeforeEncoding": "Αποτρέπει κοπή κορυφών πριν την κωδικοποίηση", "micAutoGain": "Αυτόματη ενίσχυση μικροφώνου", - "letsTheRecorderAdjustInputLevel": "Αφήνει τη συσκευή να ρυθμίσει την ένταση", "echoCancellation": "Ακύρωση ηχούς", "noiseSuppression": "Καταστολή θορύβου", "trimSilenceInVoiceMessages": "Περικοπή σιωπής σε φωνητικά μηνύματα", @@ -2474,13 +2210,10 @@ "staging": "Χώρος συγκέντρωσης", "object": "Αντικείμενο", "quiet": "Ήσυχο", - "moderate": "Μέτριο", "busy": "Απασχολημένο", - "spectrumScanReturnedNoCandidateFrequencies": "Η σάρωση φάσματος δεν βρήκε υποψήφιες συχνότητες", "searchMessages": "Αναζήτηση μηνυμάτων", "sendImageFromGallery": "Αποστολή εικόνας από τη γκαλερί", "takePhoto": "Λήψη φωτογραφίας", - "dmOnly": "Μόνο απευθείας", "allMessages": "Όλα τα μηνύματα", "sendToPublicChannel": "Αποστολή στο δημόσιο κανάλι;", "selectMarkerTypeAndDestination": "Επιλέξτε τύπο δείκτη και προορισμό", @@ -2499,8 +2232,6 @@ "wipeDevice": "Διαγραφή συσκευής", "destructiveDeviceActions": "Καταστροφικές ενέργειες συσκευής.", "chooseAPresetOrFinetuneCustomRadioSettings": "Επιλέξτε μια προεπιλογή ή ρυθμίστε τις ρυθμίσεις ραδιοφώνου.", - "chooseTheNameAndLocationThisDeviceShares": "Επιλέξτε το όνομα και την τοποθεσία που μοιράζεται αυτή η συσκευή.", - "availableSpaceOnThisDevice": "Διαθέσιμος χώρος σε αυτή τη συσκευή.", "used": "Χρησιμοποιήθηκε", "total": "Σύνολο", "renameValue": "Μετονομασία τιμής", @@ -2518,8 +2249,6 @@ "onlineOnly": "Μόνο συνδεδεμένοι", "inBoth": "Σε αμφότερα", "source": "Πηγή", - "manualRouteEdit": "Χειροκίνητη επεξεργασία διαδρομής", - "observedMeshRoute": "Παρατηρούμενη διαδρομή δικτύου", "allMessagesCleared": "Όλα τα μηνύματα διαγράφηκαν", "onlineTraceDatabaseCleared": "Βάση δεδομένων ιχνών εκκαθαρίστηκε", "packetLogsCleared": "Τα αρχεία πακέτων εκκαθαρίστηκαν", @@ -2550,5 +2279,194 @@ "captured": "Καταγράφηκε", "size": "Μέγεθος", "noCustomChannelsToClear": "Δεν υπάρχουν προσαρμοσμένα κανάλια.", - "noDeviceContactsToClear": "Δεν υπάρχουν επαφές συσκευής." + "noDeviceContactsToClear": "Δεν υπάρχουν επαφές συσκευής.", + "autoSend": "Αυτόματη αποστολή", + "autoSendDescription": "Αποστολή μέσω τρέχουσας διαδρομής.", + "sendDirect": "Άμεση αποστολή", + "sendDirectDescription": "Αποστολή απευθείας σε αυτήν την επαφή.", + "sendFlood": "Αποστολή πλημμύρας", + "sendFloodDescription": "Αποστολή μέσω όλων των αναμεταδοτών.", + "postConnectDiscoveryTitle": "Ανακάλυψη αναμεταδοτών τώρα;", + "postConnectDiscoveryDescription": "Εκτελέστε ανακάλυψη αναμεταδοτών αμέσως μετά τη σύνδεση, ώστε να μπορείτε να δείτε κοντινούς κόμβους MeshCore και να τους προσθέσετε στο δίκτυό σας πιο γρήγορα.", + "aToZ": "A-Z", + "add": "Προσθήκη", + "addAdditionalDetails": "Προσθήκη επιπλέον λεπτομερειών", + "addPeer": "Προσθήκη κόμβου", + "addPeerManually": "Χειροκίνητη προσθήκη κόμβου", + "addedToContacts": "Ο/Η {name} προστέθηκε στις επαφές", + "addedToSensors": "Ο/Η {name} προστέθηκε στους αισθητήρες", + "allowAll": "Επιτρέπονται όλα", + "anonymousRxStats": "Ανώνυμα στατιστικά λήψης", + "appearance": "Εμφάνιση", + "ascii": "ASCII", + "baseTelemetry": "Βασική τηλεμετρία", + "blePin": "BLE PIN", + "buzzerAlerts": "Ειδοποιήσεις βομβητή", + "cancelImageReceive": "Ακύρωση λήψης εικόνας", + "choose": "Επιλογή", + "chooseWhichTabsAndContactSectionsToShow": "Επιλέξτε ποιες καρτέλες και ενότητες επαφών θα εμφανίζονται", + "clearCache": "Εκκαθάριση προσωρινής μνήμης", + "clearHistory": "Εκκαθάριση ιστορικού", + "clearLiveView": "Εκκαθάριση ζωντανής προβολής", + "clearLogs": "Εκκαθάριση αρχείων καταγραφής", + "clearOfflineCache": "Εκκαθάριση προσωρινής μνήμης εκτός σύνδεσης;", + "clearOverlay": "Εκκαθάριση επικάλυψης", + "clearRouteOnlyAfterAllRetriesFail": "Εκκαθάριση διαδρομής μόνο μετά την αποτυχία όλων των επαναπροσπαθειών", + "codecBitrateAndAudioProcessing": "Κωδικοποιητής, ρυθμός bit και επεξεργασία ήχου", + "connectByIpAddress": "Σύνδεση μέσω διεύθυνσης IP", + "controlWhichAlertsYouReceive": "Ελέγξτε ποιες ειδοποιήσεις λαμβάνετε", + "copyFullHex": "Αντιγραφή πλήρους Hex", + "copyRawResponse": "Αντιγραφή ακατέργαστης απόκρισης", + "couldNotLoadMetHistory": "Αδυναμία φόρτωσης ιστορικού MET", + "customizeSensor": "Προσαρμογή {name}", + "data": "Δεδομένα", + "deleteGroup": "Διαγραφή ομάδας", + "deleteStyleConfirm": "Διαγραφή {name};", + "deleteThisDrawing": "Διαγραφή αυτού του {type};", + "deny": "Απόρριψη", + "deviceInfo": "Πληροφορίες συσκευής", + "deviceSettings": "Ρυθμίσεις συσκευής", + "deviceTimeSynced": "Ο χρόνος της συσκευής συγχρονίστηκε με αυτό το τηλέφωνο.", + "disableFastGpsPublishing": "Απενεργοποίηση γρήγορης δημοσίευσης GPS", + "displayMarkersAndTraceDatabase": "Εμφάνιση, δείκτες και βάση δεδομένων ιχνών", + "download": "Λήψη", + "environmentalTelemetry": "Περιβαλλοντική τηλεμετρία", + "errorCheckingForUpdates": "Σφάλμα ελέγχου ενημερώσεων: {error}", + "errorGeneric": "Σφάλμα: {error}", + "errorOpeningDownload": "Σφάλμα ανοίγματος λήψης: {error}", + "exportLogs": "Εξαγωγή αρχείων καταγραφής", + "extraAggressiveAvifCompression": "Εξαιρετικά επιθετική συμπίεση AVIF", + "failedToAddContact": "Αποτυχία προσθήκης επαφής: {error}", + "failedToAddName": "Αποτυχία προσθήκης {name}: {error}", + "failedToClearChannels": "Αποτυχία εκκαθάρισης καναλιών: {error}", + "failedToClearContacts": "Αποτυχία εκκαθάρισης επαφών: {error}", + "failedToConnectViaSerial": "Αποτυχία σύνδεσης μέσω σειριακής θύρας", + "failedToLoadPreviewImage": "Αποτυχία φόρτωσης εικόνας προεπισκόπησης: {error}", + "failedToLoadTrace": "Αποτυχία φόρτωσης ίχνους: {error}", + "failedToSendSarMarker": "Αποτυχία αποστολής δείκτη SAR: {error}", + "failedToSetBuzzerMode": "Αποτυχία ρύθμισης λειτουργίας βομβητή: {error}", + "failedToSetGpsMode": "Αποτυχία ρύθμισης λειτουργίας GPS: {error}", + "failedToSyncDeviceTime": "Αποτυχία συγχρονισμού χρόνου συσκευής: {error}", + "failedToWipeDeviceData": "Αποτυχία διαγραφής δεδομένων συσκευής: {error}", + "fastGpsTargetChannel": "Κανάλι-στόχος γρήγορου GPS", + "fastUpdatesThresholdsAndPermissions": "Γρήγορες ενημερώσεις, όρια και δικαιώματα", + "fetchingCatalog": "Ανάκτηση καταλόγου...", + "fifteenMinutes": "15 λεπτά", + "fifteenSeconds": "15 δευτερόλεπτα", + "filterByDirection": "Φιλτράρισμα κατά κατεύθυνση", + "finish": "Τέλος", + "fiveMinutes": "5 λεπτά", + "fiveSeconds": "5 δευτερόλεπτα", + "fix": "Στίξη", + "gps": "GPS", + "gpsAdvertPolicy": "Πολιτική διαφήμισης GPS", + "gpsAndLocation": "GPS & Τοποθεσία", + "gpsDiagnostics": "Διαγνωστικά GPS", + "gpsSection": "GPS", + "help": "Βοήθεια", + "hex": "Hex", + "hidden": "Κρυφό", + "howTheRadioAutoAddsDiscoveredNodes": "Πώς το ραδιόφωνο προσθέτει αυτόματα ανακαλυφθέντες κόμβους.", + "images": "Εικόνες", + "importProfile": "Εισαγωγή προφίλ", + "lastFix": "Τελευταία στίξη", + "latest": "Πιο πρόσφατο", + "latitude": "Γεωγραφικό πλάτος", + "loadASavedRegion": "Φόρτωση αποθηκευμένης περιοχής", + "loading": "Φόρτωση", + "locationSharingHardwareAndUpdateInterval": "Κοινοποίηση τοποθεσίας, υλικό και διάστημα ενημέρωσης.", + "locationTelemetry": "Τηλεμετρία τοποθεσίας", + "lockDestination": "Κλείδωμα προορισμού", + "longitude": "Γεωγραφικό μήκος", + "mapStyle": "Στυλ χάρτη", + "max": "Μέγ.", + "maxZoom": "Μέγ. ζουμ", + "messaging": "Μηνύματα", + "metHistory": "Ιστορικό MET", + "min": "Ελάχ.", + "minZoom": "Ελάχ. ζουμ", + "moveDown": "Μετακίνηση κάτω", + "moveUp": "Μετακίνηση πάνω", + "multiAckMode": "Λειτουργία πολλαπλού ACK", + "multiDeviceWorkspaceManagement": "Διαχείριση χώρου εργασίας πολλαπλών συσκευών", + "myLocation": "Η τοποθεσία μου", + "nameAndTelemetryShared": "Το όνομα και η τηλεμετρία κοινοποιούνται σε άλλες συσκευές.", + "newVersionAvailable": "Νέα έκδοση: {version}", + "newer": "Νεότερο", + "noNeighboursFound": "Δεν βρέθηκαν γείτονες", + "noServersFound": "Δεν βρέθηκαν διακομιστές", + "notSet": "Δεν έχει οριστεί", + "notifications": "Ειδοποιήσεις", + "offZeroSeconds": "Ανενεργό (0 δ)", + "offlineMaps": "Χάρτες εκτός σύνδεσης", + "older": "Παλαιότερο", + "oneByteMode0": "1 byte (mode 0)", + "oneHour": "1 ώρα", + "oneMinute": "1 λεπτό", + "openPacketLogs": "Άνοιγμα αρχείων πακέτων", + "packetTypeHelp": "Βοήθεια τύπων πακέτων", + "pasteShareLinkOrHexAdvert": "Επικολλήστε σύνδεσμο κοινοποίησης ή hex διαφήμιση", + "pathHash": "Hash διαδρομής", + "pathSize": "Μέγεθος διαδρομής", + "ping": "Ping", + "polygon": "Πολύγωνο", + "rawResponseCopied": "Η ακατέργαστη απόκριση αντιγράφηκε", + "resendThroughNearestRepeaterOnFailure": "Επαναποστολή μέσω πλησιέστερου αναμεταδότη σε αποτυχία", + "resolveContact": "Επίλυση επαφής", + "routingRetriesAndDestinationLock": "Δρομολόγηση, επαναπροσπάθειες και κλείδωμα προορισμού", + "samples": "Δείγματα", + "satellites": "Δορυφόροι", + "saving": "Αποθήκευση...", + "search": "Αναζήτηση", + "searchByNameOrToken": "Αναζήτηση με όνομα ή token", + "searchDiscoveredNodes": "Αναζήτηση ανακαλυφθέντων κόμβων", + "searchInCurrentFilter": "Αναζήτηση στο τρέχον φίλτρο", + "searchLogs": "Αναζήτηση αρχείων καταγραφής...", + "searchSensors": "Αναζήτηση αισθητήρων", + "searchThisSection": "Αναζήτηση σε αυτήν την ενότητα", + "selectedRelays": "Επιλεγμένοι αναμεταδότες", + "sensor": "Αισθητήρας", + "serialError": "Σφάλμα σειριακής: {error}", + "setPathForContact": "Ορισμός διαδρομής για {name}", + "shareLiveGps": "Κοινοποίηση ζωντανού GPS", + "shareMyTiles": "Κοινοποίηση πλακιδίων μου", + "sharingLocationFromPhone": "Κοινοποίηση τοποθεσίας σε αυτό το κανάλι από το τηλέφωνο.", + "sharingLocationFromRadio": "Κοινοποίηση τοποθεσίας σε αυτό το κανάλι από το ραδιόφωνο.", + "signalDbm": "Σήμα {rssi} dBm", + "sizeCompressionAndPreview": "Μέγεθος, συμπίεση και προεπισκόπηση", + "skip": "Παράλειψη", + "smallerFileSize": "Μικρότερο μέγεθος αρχείου", + "sort": "Ταξινόμηση", + "stoppedSharingLocation": "Σταμάτησε η κοινοποίηση τοποθεσίας σε αυτό το κανάλι.", + "suppressNotificationsWhileInForeground": "Αποσιώπηση ειδοποιήσεων όταν η εφαρμογή είναι στο προσκήνιο", + "tabsAndNavigation": "Καρτέλες & Πλοήγηση", + "templatesAndTutorials": "Πρότυπα και οδηγίες", + "tenMinutes": "10 λεπτά", + "tenSeconds": "10 δευτερόλεπτα", + "testSendUpdate": "Δοκιμαστική αποστολή ενημέρωσης", + "themeLanguageAndDisplayPreferences": "Θέμα, γλώσσα και προτιμήσεις εμφάνισης", + "thirtyMinutes": "30 λεπτά", + "thirtySeconds": "30 δευτερόλεπτα", + "threeBytesMode2": "3 bytes (mode 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Στατιστικά κίνησης, ιστορικό μηνυμάτων και εργαλεία προγραμματιστή", + "twoBytesMode1": "2 bytes (mode 1)", + "twoMinutes": "2 λεπτά", + "undo": "Αναίρεση", + "updated": "Ενημερώθηκε", + "useContactFlags": "Χρήση σημαιών επαφής", + "useSavedCoordinates": "Χρήση αποθηκευμένων συντεταγμένων", + "view": "Προβολή", + "viewNeighbours": "Προβολή γειτόνων", + "viewPublicStats": "Προβολή δημόσιων στατιστικών", + "setRegionScope": "Ορισμός εύρους περιοχής", + "regionScope": "Εύρος περιοχής", + "regionScopeNone": "Κανένα (καθολικό)", + "clearRegionScope": "Εκκαθάριση εύρους", + "regionScopeWarning": "Μόνο οι αναμεταδότες που επιτρέπουν αυτή την περιοχή θα προωθήσουν.", + "discoverRegions": "Ανακάλυψη από αναμεταδότες", + "discoveringRegions": "Ανακάλυψη περιοχών...", + "enterRegionName": "Όνομα περιοχής (π.χ. auckland)", + "noRegionsFound": "Δεν βρέθηκαν περιοχές σε αυτόν τον αναμεταδότη.", + "regionScopeSet": "Εύρος περιοχής ορίστηκε σε {name}", + "regionScopeCleared": "Εύρος περιοχής εκκαθαρίστηκε" } diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 7d3af39..45027bd 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "Button to restart BLE scanning" }, - "tapToConnect": "Tap to connect", - "@tapToConnect": { - "description": "Subtitle text for device in scan list" - }, "deviceNotConnected": "Device not connected", "@deviceNotConnected": { "description": "Error message when device is not connected" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "Setting to show RX/TX indicators" }, - "displayPacketActivity": "Display packet activity indicators in top bar", - "@displayPacketActivity": { - "description": "Description for RX/TX indicators setting" - }, "disableMap": "Disable Map", "@disableMap": { "description": "Setting to disable the map tab" }, - "disableMapDescription": "Hide the map tab to reduce battery usage", - "@disableMapDescription": { - "description": "Description for disable map setting" - }, "language": "Language", "@language": { "description": "Language setting label" @@ -173,10 +161,6 @@ "@appVersion": { "description": "App version label" }, - "appName": "App Name", - "@appName": { - "description": "App name label" - }, "aboutMeshCoreSar": "About MeshCore SAR", "@aboutMeshCoreSar": { "description": "About dialog title" @@ -308,10 +292,6 @@ "@resetPath": { "description": "Action to reset contact path for re-routing" }, - "publicKeyCopied": "Public key copied to clipboard", - "@publicKeyCopied": { - "description": "Success message when public key is copied" - }, "copiedToClipboard": "{label} copied to clipboard", "@copiedToClipboard": { "description": "Success message when a value is copied to clipboard", @@ -744,22 +724,6 @@ "@lastSeen": { "description": "Last seen label" }, - "roomStatus": "Room Status", - "@roomStatus": { - "description": "Room status section header" - }, - "loginStatus": "Login Status", - "@loginStatus": { - "description": "Login status label" - }, - "notLoggedIn": "Not Logged In", - "@notLoggedIn": { - "description": "Not logged in status" - }, - "adminAccess": "Admin Access", - "@adminAccess": { - "description": "Admin access label" - }, "yes": "Yes", "@yes": { "description": "Yes answer" @@ -772,14 +736,6 @@ "@permissions": { "description": "Permissions label" }, - "passwordSaved": "Password Saved", - "@passwordSaved": { - "description": "Password saved label" - }, - "locationColon": "Location:", - "@locationColon": { - "description": "Location section header" - }, "telemetry": "Telemetry", "@telemetry": { "description": "Telemetry section header" @@ -808,19 +764,6 @@ "@gpsTelemetry": { "description": "GPS from telemetry label" }, - "updated": "Updated", - "@updated": { - "description": "Updated timestamp label" - }, - "pathResetInfo": "Path reset for {name}. Next message will find a new route.", - "@pathResetInfo": { - "description": "Info message after path reset", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "Re-Login to Room", "@reLoginToRoom": { "description": "Button to re-login to room" @@ -1182,10 +1125,6 @@ "@frequencyMHz": { "description": "Label for radio frequency field" }, - "frequencyExample": "e.g., 869.618", - "@frequencyExample": { - "description": "Helper text example for frequency" - }, "bandwidth": "Bandwidth", "@bandwidth": { "description": "Label for bandwidth dropdown" @@ -1289,47 +1228,6 @@ "@trailControls": { "description": "Trail controls tooltip" }, - "contactTrails": "Contact Trails", - "@contactTrails": { - "description": "Contact trails section header" - }, - "showAllContactTrails": "Show All Contact Trails", - "@showAllContactTrails": { - "description": "Toggle label to show all contact trails" - }, - "noContactsWithLocationHistory": "No contacts with location history", - "@noContactsWithLocationHistory": { - "description": "Subtitle when no contacts have trails" - }, - "showingTrailsForContacts": "Showing trails for {count} contacts", - "@showingTrailsForContacts": { - "description": "Subtitle showing number of contacts with trails", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "Individual Contact Trails", - "@individualContactTrails": { - "description": "Expansion tile title for individual contact trails" - }, - "deviceInformation": "Device Information", - "@deviceInformation": { - "description": "Device information section header" - }, - "bleName": "BLE Name", - "@bleName": { - "description": "Bluetooth Low Energy device name label" - }, - "meshName": "Mesh Name", - "@meshName": { - "description": "Mesh network name label" - }, - "notSet": "Not set", - "@notSet": { - "description": "Label when a value is not set" - }, "model": "Model", "@model": { "description": "Device model label" @@ -1338,14 +1236,6 @@ "@version": { "description": "Version label" }, - "buildDate": "Build Date", - "@buildDate": { - "description": "Firmware build date label" - }, - "firmware": "Firmware", - "@firmware": { - "description": "Firmware label" - }, "maxContacts": "Max Contacts", "@maxContacts": { "description": "Maximum contacts capacity label" @@ -1358,26 +1248,6 @@ "@publicInfo": { "description": "Public information section header" }, - "meshNetworkName": "Mesh Network Name", - "@meshNetworkName": { - "description": "Mesh network name field label" - }, - "nameBroadcastInMesh": "Name broadcast in mesh advertisements", - "@nameBroadcastInMesh": { - "description": "Helper text for mesh network name field" - }, - "telemetryAndLocationSharing": "Telemetry & Location Sharing", - "@telemetryAndLocationSharing": { - "description": "Telemetry and location sharing toggle label" - }, - "lat": "Lat", - "@lat": { - "description": "Latitude field label (short form)" - }, - "lon": "Lon", - "@lon": { - "description": "Longitude field label (short form)" - }, "useCurrentLocation": "Use current location", "@useCurrentLocation": { "description": "Tooltip for use current location button" @@ -1407,15 +1277,6 @@ } } }, - "copiedToClipboardShort": "Copied {label} to clipboard", - "@copiedToClipboardShort": { - "description": "Short success message when copying to clipboard", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "Failed to save: {error}", "@failedToSave": { "description": "Generic error message for save failures", @@ -1438,10 +1299,6 @@ "@sarTemplates": { "description": "SAR templates menu title" }, - "manageSarTemplates": "Manage cursor on target templates", - "@manageSarTemplates": { - "description": "Subtitle for SAR templates settings" - }, "addTemplate": "Add Template", "@addTemplate": { "description": "Button to add new SAR template" @@ -1565,10 +1422,6 @@ "@ok": { "description": "OK button label" }, - "permissionsSection": "Permissions", - "@permissionsSection": { - "description": "Permissions section header" - }, "locationPermission": "Location Permission", "@locationPermission": { "description": "Location permission label" @@ -2133,94 +1986,6 @@ "@wizardWelcomeTitle": { "description": "Welcome wizard first page title" }, - "wizardWelcomeDescription": "A powerful off-grid communication tool for search and rescue operations. Connect with your team using mesh radio technology when traditional networks are unavailable.", - "@wizardWelcomeDescription": { - "description": "Welcome wizard first page description" - }, - "wizardConnectingTitle": "Connecting to Your Radio", - "@wizardConnectingTitle": { - "description": "Wizard connecting page title" - }, - "wizardConnectingDescription": "Connect your smartphone to a MeshCore radio device via Bluetooth to start communicating off-grid.", - "@wizardConnectingDescription": { - "description": "Wizard connecting page description" - }, - "wizardConnectingFeature1": "Scan for nearby MeshCore devices", - "@wizardConnectingFeature1": { - "description": "Wizard connecting feature 1" - }, - "wizardConnectingFeature2": "Pair with your radio via Bluetooth", - "@wizardConnectingFeature2": { - "description": "Wizard connecting feature 2" - }, - "wizardConnectingFeature3": "Works completely offline - no internet required", - "@wizardConnectingFeature3": { - "description": "Wizard connecting feature 3" - }, - "wizardChannelTitle": "Channels", - "@wizardChannelTitle": { - "description": "Wizard channel page title" - }, - "wizardChannelDescription": "Broadcast messages to everyone on a channel, perfect for team-wide announcements and coordination.", - "@wizardChannelDescription": { - "description": "Wizard channel page description" - }, - "wizardChannelFeature1": "Public Channel for general team communication", - "@wizardChannelFeature1": { - "description": "Wizard channel feature 1" - }, - "wizardChannelFeature2": "Create custom channels for specific groups", - "@wizardChannelFeature2": { - "description": "Wizard channel feature 2" - }, - "wizardChannelFeature3": "Messages are automatically relayed by the mesh", - "@wizardChannelFeature3": { - "description": "Wizard channel feature 3" - }, - "wizardContactsTitle": "Contacts", - "@wizardContactsTitle": { - "description": "Wizard contacts page title" - }, - "wizardContactsDescription": "Your team members appear automatically as they join the mesh network. Send them direct messages or view their location.", - "@wizardContactsDescription": { - "description": "Wizard contacts page description" - }, - "wizardContactsFeature1": "Contacts discovered automatically", - "@wizardContactsFeature1": { - "description": "Wizard contacts feature 1" - }, - "wizardContactsFeature2": "Send private direct messages", - "@wizardContactsFeature2": { - "description": "Wizard contacts feature 2" - }, - "wizardContactsFeature3": "View battery level and last seen time", - "@wizardContactsFeature3": { - "description": "Wizard contacts feature 3" - }, - "wizardMapTitle": "Map & Location", - "@wizardMapTitle": { - "description": "Wizard map page title" - }, - "wizardMapDescription": "Track your team in real-time and mark important locations for search and rescue operations.", - "@wizardMapDescription": { - "description": "Wizard map page description" - }, - "wizardMapFeature1": "SAR markers for found persons, fires, and staging areas", - "@wizardMapFeature1": { - "description": "Wizard map feature 1" - }, - "wizardMapFeature2": "Real-time GPS tracking of team members", - "@wizardMapFeature2": { - "description": "Wizard map feature 2" - }, - "wizardMapFeature3": "Download offline maps for remote areas", - "@wizardMapFeature3": { - "description": "Wizard map feature 3" - }, - "wizardMapFeature4": "Draw shapes and share tactical information", - "@wizardMapFeature4": { - "description": "Wizard map feature 4" - }, "viewWelcomeTutorial": "View Welcome Tutorial", "@viewWelcomeTutorial": { "description": "Settings option to re-show welcome wizard" @@ -2579,29 +2344,10 @@ "posttxDelay": "Post-tx delay", "bandpass": "Band-pass", "bandpassFilterVoice": "Band-pass filter voice", - "frequency": "Frequency", - "australia": "Australia", - "australiaNarrow": "Australia (Narrow)", - "australiaQld": "Australia: QLD", - "australiaSaWa": "Australia: SA, WA", - "newZealand": "New Zealand", - "newZealandNarrow": "New Zealand (Narrow)", - "switzerland": "Switzerland", - "portugal433": "Portugal 433", - "portugal868": "Portugal 868", - "czechRepublicNarrow": "Czech Republic (Narrow)", - "eu433mhzLongRange": "EU 433MHz (Long Range)", - "euukDeprecated": "EU/UK (Deprecated)", - "euukNarrow": "EU/UK (Narrow)", - "usacanadaRecommended": "USA/Canada (Recommended)", - "vietnamDeprecated": "Vietnam (Deprecated)", - "vietnamNarrow": "Vietnam (Narrow)", "active": "Active", "addContact": "Add Contact", "all": "All", - "autoResolve": "Auto resolve", "clearAllLabel": "Clear all", - "clearRelays": "Clear relays", "clearFilters": "Clear filters", "clearRoute": "Clear Route", "clearMessages": "Clear Messages", @@ -2627,10 +2373,7 @@ "send": "Send", "sendAnyway": "Send anyway", "share": "Share", - "shareContact": "Share Contact", "trace": "Trace", - "use": "Use", - "useSelectedFrequency": "Use selected frequency", "discovery": "Discovery", "discoverRepeaters": "Discover repeaters", "discoverSensors": "Discover sensors", @@ -2653,7 +2396,6 @@ "gpsModule": "GPS Module", "liveTraffic": "Live Traffic", "repeatersMap": "Repeaters Map", - "spectrumScan": "Spectrum Scan", "blePacketLogs": "BLE Packet Logs", "onlineTraceDatabase": "Online trace database", "routePathByteSize": "Route path byte size", @@ -2665,7 +2407,6 @@ "disableContacts": "Disable Contacts", "enableSensorsTab": "Enable Sensors tab", "enableProfiles": "Enable Profiles", - "autoRouteRotation": "Auto route rotation", "nearestRepeaterFallback": "Nearest repeater fallback", "deleteAllStoredMessageHistory": "Delete all stored message history", "messageFontSize": "Message font size", @@ -2673,18 +2414,13 @@ "showMapDebugInfo": "Show map debug info", "openMapInFullscreen": "Open map in fullscreen", "showSarMarkersLabel": "Show SAR markers", - "displaySarMarkersOnTheMainMap": "Display SAR markers on the main map", - "showAllContactTrailsLabel": "Show all contact trails", "hideRepeatersOnMap": "Hide repeaters on map", "setMapScale": "Set map scale", "customMapScaleSaved": "Custom map scale saved", "voiceBitrate": "Voice bitrate", "voiceCompressor": "Voice compressor", - "balancesQuietAndLoudSpeechLevels": "Balances quiet and loud speech levels", "voiceLimiter": "Voice limiter", - "preventsClippingPeaksBeforeEncoding": "Prevents clipping peaks before encoding", "micAutoGain": "Mic auto gain", - "letsTheRecorderAdjustInputLevel": "Lets the recorder adjust input level", "echoCancellation": "Echo cancellation", "noiseSuppression": "Noise suppression", "trimSilenceInVoiceMessages": "Trim silence in voice messages", @@ -2726,13 +2462,10 @@ "staging": "Staging", "object": "Object", "quiet": "Quiet", - "moderate": "Moderate", "busy": "Busy", - "spectrumScanReturnedNoCandidateFrequencies": "Spectrum scan returned no candidate frequencies", "searchMessages": "Search messages", "sendImageFromGallery": "Send image from gallery", "takePhoto": "Take photo", - "dmOnly": "DM only", "allMessages": "All messages", "sendToPublicChannel": "Send to Public Channel?", "selectMarkerTypeAndDestination": "Select marker type and destination", @@ -2751,8 +2484,6 @@ "wipeDevice": "Wipe device", "destructiveDeviceActions": "Destructive device actions.", "chooseAPresetOrFinetuneCustomRadioSettings": "Choose a preset or fine-tune custom radio settings.", - "chooseTheNameAndLocationThisDeviceShares": "Choose the name and location this device shares.", - "availableSpaceOnThisDevice": "Available space on this device.", "used": "Used", "total": "Total", "renameValue": "Rename value", @@ -2770,8 +2501,6 @@ "onlineOnly": "Online only", "inBoth": "In both", "source": "Source", - "manualRouteEdit": "Manual route edit", - "observedMeshRoute": "Observed mesh route", "allMessagesCleared": "All messages cleared", "onlineTraceDatabaseCleared": "Online trace database cleared", "packetLogsCleared": "Packet logs cleared", @@ -2803,7 +2532,340 @@ "size": "Size", "noCustomChannelsToClear": "No custom channels to clear.", "noDeviceContactsToClear": "No device contacts to clear.", - + "aToZ": "A-Z", + "add": "Add", + "addAdditionalDetails": "Add additional details", + "addPeer": "Add Peer", + "addPeerManually": "Add peer manually", + "addedToContacts": "{name} added to contacts", + "@addedToContacts": { + "placeholders": { + "name": { + "type": "String" + } + } + }, + "addedToSensors": "{name} added to Sensors", + "@addedToSensors": { + "placeholders": { + "name": { + "type": "String" + } + } + }, + "allowAll": "Allow all", + "anonymousRxStats": "Anonymous RX stats", + "appearance": "Appearance", + "ascii": "ASCII", + "baseTelemetry": "Base telemetry", + "blePin": "BLE PIN", + "buzzerAlerts": "Buzzer alerts", + "cancelImageReceive": "Cancel image receive", + "choose": "Choose", + "chooseWhichTabsAndContactSectionsToShow": "Choose which tabs and contact sections to show", + "clearCache": "Clear cache", + "clearHistory": "Clear history", + "clearLiveView": "Clear live view", + "clearLogs": "Clear logs", + "clearOfflineCache": "Clear offline cache?", + "clearOverlay": "Clear overlay", + "clearRouteOnlyAfterAllRetriesFail": "Clear route only after all retries fail", + "codecBitrateAndAudioProcessing": "Codec, bitrate, and audio processing", + "connectByIpAddress": "Connect by IP address", + "controlWhichAlertsYouReceive": "Control which alerts you receive", + "copyFullHex": "Copy full hex", + "copyRawResponse": "Copy raw response", + "couldNotLoadMetHistory": "Could not load MET history", + "customizeSensor": "Customize {name}", + "@customizeSensor": { + "placeholders": { + "name": { + "type": "String" + } + } + }, + "data": "Data", + "deleteGroup": "Delete group", + "deleteStyleConfirm": "Delete {name}?", + "@deleteStyleConfirm": { + "placeholders": { + "name": { + "type": "String" + } + } + }, + "deleteThisDrawing": "Delete this {type}?", + "@deleteThisDrawing": { + "placeholders": { + "type": { + "type": "String" + } + } + }, + "deny": "Deny", + "deviceInfo": "Device info", + "deviceSettings": "Device Settings", + "deviceTimeSynced": "Device time synced to this phone.", + "disableFastGpsPublishing": "Disable fast GPS publishing", + "displayMarkersAndTraceDatabase": "Display, markers, and trace database", + "download": "Download", + "environmentalTelemetry": "Environmental telemetry", + "errorCheckingForUpdates": "Error checking for updates: {error}", + "@errorCheckingForUpdates": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "errorGeneric": "Error: {error}", + "@errorGeneric": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "errorOpeningDownload": "Error opening download: {error}", + "@errorOpeningDownload": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "exportLogs": "Export logs", + "extraAggressiveAvifCompression": "Extra-aggressive AVIF compression", + "failedToAddContact": "Failed to add contact: {error}", + "@failedToAddContact": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "failedToAddName": "Failed to add {name}: {error}", + "@failedToAddName": { + "placeholders": { + "name": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "failedToClearChannels": "Failed to clear channels: {error}", + "@failedToClearChannels": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "failedToClearContacts": "Failed to clear contacts: {error}", + "@failedToClearContacts": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "failedToConnectViaSerial": "Failed to connect via serial", + "failedToLoadPreviewImage": "Failed to load preview image: {error}", + "@failedToLoadPreviewImage": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "failedToLoadTrace": "Failed to load trace: {error}", + "@failedToLoadTrace": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "failedToSendSarMarker": "Failed to send SAR marker: {error}", + "@failedToSendSarMarker": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "failedToSetBuzzerMode": "Failed to set buzzer mode: {error}", + "@failedToSetBuzzerMode": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "failedToSetGpsMode": "Failed to set GPS mode: {error}", + "@failedToSetGpsMode": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "failedToSyncDeviceTime": "Failed to sync device time: {error}", + "@failedToSyncDeviceTime": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "failedToWipeDeviceData": "Failed to wipe device data: {error}", + "@failedToWipeDeviceData": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fastGpsTargetChannel": "Fast GPS target channel", + "fastUpdatesThresholdsAndPermissions": "Fast updates, thresholds, and permissions", + "fetchingCatalog": "Fetching catalog...", + "fifteenMinutes": "15 minutes", + "fifteenSeconds": "15 seconds", + "filterByDirection": "Filter by direction", + "finish": "Finish", + "fiveMinutes": "5 minutes", + "fiveSeconds": "5 seconds", + "fix": "Fix", + "gps": "GPS", + "gpsAdvertPolicy": "GPS advert policy", + "gpsAndLocation": "GPS & Location", + "gpsDiagnostics": "GPS diagnostics", + "gpsSection": "GPS", + "help": "Help", + "hex": "Hex", + "hidden": "Hidden", + "howTheRadioAutoAddsDiscoveredNodes": "How the radio auto-adds discovered nodes.", + "images": "Images", + "importProfile": "Import profile", + "lastFix": "Last fix", + "latest": "Latest", + "latitude": "Latitude", + "loadASavedRegion": "Load a saved region", + "loading": "Loading", + "locationSharingHardwareAndUpdateInterval": "Location sharing, hardware, and update interval.", + "locationTelemetry": "Location telemetry", + "lockDestination": "Lock destination", + "longitude": "Longitude", + "mapStyle": "Map Style", + "max": "Max", + "maxZoom": "Max Zoom", + "messaging": "Messaging", + "metHistory": "MET history", + "min": "Min", + "minZoom": "Min Zoom", + "moveDown": "Move down", + "moveUp": "Move up", + "multiAckMode": "Multi-ACK mode", + "multiDeviceWorkspaceManagement": "Multi-device workspace management", + "myLocation": "My location", + "nameAndTelemetryShared": "Name and telemetry shared with other devices.", + "newVersionAvailable": "New version: {version}", + "@newVersionAvailable": { + "placeholders": { + "version": { + "type": "String" + } + } + }, + "newer": "Newer", + "noNeighboursFound": "No neighbours found", + "noServersFound": "No servers found", + "notSet": "Not set", + "notifications": "Notifications", + "offZeroSeconds": "Off (0 s)", + "offlineMaps": "Offline Maps", + "older": "Older", + "oneByteMode0": "1 byte (mode 0)", + "oneHour": "1 hour", + "oneMinute": "1 minute", + "openPacketLogs": "Open packet logs", + "packetTypeHelp": "Packet type help", + "pasteShareLinkOrHexAdvert": "Paste a share link or hex advert", + "pathHash": "Path hash", + "pathSize": "Path size", + "ping": "Ping", + "polygon": "Polygon", + "rawResponseCopied": "Raw response copied", + "resendThroughNearestRepeaterOnFailure": "Resend through nearest repeater on failure", + "resolveContact": "Resolve contact", + "routingRetriesAndDestinationLock": "Routing, retries, and destination lock", + "samples": "Samples", + "satellites": "Satellites", + "saving": "Saving...", + "search": "Search", + "searchByNameOrToken": "Search by name or token", + "searchDiscoveredNodes": "Search discovered nodes", + "searchInCurrentFilter": "Search in current filter", + "searchLogs": "Search logs...", + "searchSensors": "Search sensors", + "searchThisSection": "Search this section", + "selectedRelays": "Selected relays", + "sensor": "Sensor", + "serialError": "Serial error: {error}", + "@serialError": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "setPathForContact": "Set Path for {name}", + "@setPathForContact": { + "placeholders": { + "name": { + "type": "String" + } + } + }, + "shareLiveGps": "Share live GPS", + "shareMyTiles": "Share my tiles", + "sharingLocationFromPhone": "Sharing location on this channel from the phone.", + "sharingLocationFromRadio": "Sharing location on this channel from the radio.", + "signalDbm": "Signal {rssi} dBm", + "@signalDbm": { + "placeholders": { + "rssi": { + "type": "String" + } + } + }, + "sizeCompressionAndPreview": "Size, compression, and preview", + "skip": "Skip", + "smallerFileSize": "Smaller file size", + "sort": "Sort", + "stoppedSharingLocation": "Stopped sharing location on this channel.", + "suppressNotificationsWhileInForeground": "Suppress notifications while in foreground", + "tabsAndNavigation": "Tabs & Navigation", + "templatesAndTutorials": "Templates and tutorials", + "tenMinutes": "10 minutes", + "tenSeconds": "10 seconds", + "testSendUpdate": "Test send update", + "themeLanguageAndDisplayPreferences": "Theme, language, and display preferences", + "thirtyMinutes": "30 minutes", + "thirtySeconds": "30 seconds", + "threeBytesMode2": "3 bytes (mode 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Traffic stats, message history, and developer tools", + "twoBytesMode1": "2 bytes (mode 1)", + "twoMinutes": "2 minutes", + "undo": "Undo", + "updated": "Updated", + "useContactFlags": "Use contact flags", + "useSavedCoordinates": "Use saved coordinates", + "view": "View", + "viewNeighbours": "View Neighbours", + "viewPublicStats": "View public stats", "setRegionScope": "Set region scope", "regionScope": "Region scope", "regionScopeNone": "None (global)", @@ -2814,12 +2876,12 @@ "enterRegionName": "Region name (e.g. auckland)", "noRegionsFound": "No regions found on this repeater.", "regionScopeSet": "Region scope set to {name}", + "regionScopeCleared": "Region scope cleared", "@regionScopeSet": { "placeholders": { "name": { "type": "String" } } - }, - "regionScopeCleared": "Region scope cleared" + } } diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 7afc39d..d26c66d 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "Botón para reiniciar el escaneo BLE" }, - "tapToConnect": "Toca para conectar", - "@tapToConnect": { - "description": "Texto de subtítulo para dispositivo en la lista de escaneo" - }, "deviceNotConnected": "Dispositivo no conectado", "@deviceNotConnected": { "description": "Mensaje de error cuando el dispositivo no está conectado" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "Configuración para mostrar indicadores RX/TX" }, - "displayPacketActivity": "Mostrar indicadores de actividad de paquetes en la barra superior", - "@displayPacketActivity": { - "description": "Descripción de la configuración de indicadores RX/TX" - }, "disableMap": "Desactivar mapa", "@disableMap": { "description": "Configuración para desactivar la pestaña del mapa" }, - "disableMapDescription": "Ocultar la pestaña del mapa para reducir el uso de batería", - "@disableMapDescription": { - "description": "Descripción de la configuración para desactivar el mapa" - }, "language": "Idioma", "@language": { "description": "Etiqueta de la configuración de idioma" @@ -173,10 +161,6 @@ "@appVersion": { "description": "Etiqueta de la versión de la aplicación" }, - "appName": "Nombre de la aplicación", - "@appName": { - "description": "Etiqueta del nombre de la aplicación" - }, "aboutMeshCoreSar": "Acerca de MeshCore SAR", "@aboutMeshCoreSar": { "description": "Título del diálogo acerca de" @@ -308,10 +292,6 @@ "@resetPath": { "description": "Acción para restablecer la ruta del contacto para re-enrutamiento" }, - "publicKeyCopied": "Clave pública copiada al portapapeles", - "@publicKeyCopied": { - "description": "Mensaje de éxito cuando se copia la clave pública" - }, "copiedToClipboard": "{label} copiado al portapapeles", "@copiedToClipboard": { "description": "Mensaje de éxito cuando se copia un valor al portapapeles", @@ -720,22 +700,6 @@ "@lastSeen": { "description": "Etiqueta de visto por última vez" }, - "roomStatus": "Estado de la sala", - "@roomStatus": { - "description": "Encabezado de la sección de estado de la sala" - }, - "loginStatus": "Estado de inicio de sesión", - "@loginStatus": { - "description": "Etiqueta de estado de inicio de sesión" - }, - "notLoggedIn": "No ha iniciado sesión", - "@notLoggedIn": { - "description": "Estado de no ha iniciado sesión" - }, - "adminAccess": "Acceso de administrador", - "@adminAccess": { - "description": "Etiqueta de acceso de administrador" - }, "yes": "Sí", "@yes": { "description": "Respuesta sí" @@ -748,14 +712,6 @@ "@permissions": { "description": "Etiqueta de permisos" }, - "passwordSaved": "Contraseña guardada", - "@passwordSaved": { - "description": "Etiqueta de contraseña guardada" - }, - "locationColon": "Ubicación:", - "@locationColon": { - "description": "Encabezado de la sección de ubicación" - }, "telemetry": "Telemetría", "@telemetry": { "description": "Encabezado de la sección de telemetría" @@ -784,19 +740,6 @@ "@gpsTelemetry": { "description": "Etiqueta de GPS desde telemetría" }, - "updated": "Actualizado", - "@updated": { - "description": "Etiqueta de marca de tiempo actualizada" - }, - "pathResetInfo": "Ruta restablecida para {name}. El próximo mensaje encontrará una nueva ruta.", - "@pathResetInfo": { - "description": "Mensaje de información después de restablecer ruta", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "Re-iniciar sesión en la sala", "@reLoginToRoom": { "description": "Botón para re-iniciar sesión en la sala" @@ -1114,10 +1057,6 @@ "@frequencyMHz": { "description": "Etiqueta del campo de frecuencia de radio" }, - "frequencyExample": "ej., 869.618", - "@frequencyExample": { - "description": "Texto de ayuda de ejemplo para frecuencia" - }, "bandwidth": "Ancho de banda", "@bandwidth": { "description": "Etiqueta del menú desplegable de ancho de banda" @@ -1221,47 +1160,6 @@ "@trailControls": { "description": "Tooltip de controles del rastro" }, - "contactTrails": "Rastros de contactos", - "@contactTrails": { - "description": "Encabezado de la sección de rastros de contactos" - }, - "showAllContactTrails": "Mostrar todos los rastros de contactos", - "@showAllContactTrails": { - "description": "Etiqueta del interruptor para mostrar todos los rastros de contactos" - }, - "noContactsWithLocationHistory": "No hay contactos con historial de ubicación", - "@noContactsWithLocationHistory": { - "description": "Subtítulo cuando no hay contactos con rastros" - }, - "showingTrailsForContacts": "Mostrando rastros para {count} contactos", - "@showingTrailsForContacts": { - "description": "Subtítulo que muestra el número de contactos con rastros", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "Rastros individuales de contactos", - "@individualContactTrails": { - "description": "Título del elemento expandible para rastros individuales de contactos" - }, - "deviceInformation": "Información del dispositivo", - "@deviceInformation": { - "description": "Encabezado de la sección de información del dispositivo" - }, - "bleName": "Nombre BLE", - "@bleName": { - "description": "Etiqueta del nombre del dispositivo Bluetooth Low Energy" - }, - "meshName": "Nombre Mesh", - "@meshName": { - "description": "Etiqueta del nombre de red mesh" - }, - "notSet": "No establecido", - "@notSet": { - "description": "Etiqueta cuando no se establece un valor" - }, "model": "Modelo", "@model": { "description": "Etiqueta del modelo del dispositivo" @@ -1270,14 +1168,6 @@ "@version": { "description": "Etiqueta de versión" }, - "buildDate": "Fecha de compilación", - "@buildDate": { - "description": "Etiqueta de fecha de compilación del firmware" - }, - "firmware": "Firmware", - "@firmware": { - "description": "Etiqueta de firmware" - }, "maxContacts": "Contactos máximos", "@maxContacts": { "description": "Etiqueta de capacidad máxima de contactos" @@ -1290,26 +1180,6 @@ "@publicInfo": { "description": "Encabezado de la sección de información pública" }, - "meshNetworkName": "Nombre de red Mesh", - "@meshNetworkName": { - "description": "Etiqueta del campo de nombre de red mesh" - }, - "nameBroadcastInMesh": "Nombre difundido en anuncios mesh", - "@nameBroadcastInMesh": { - "description": "Texto de ayuda para el campo de nombre de red mesh" - }, - "telemetryAndLocationSharing": "Telemetría y compartir ubicación", - "@telemetryAndLocationSharing": { - "description": "Etiqueta del alternar de telemetría y compartir ubicación" - }, - "lat": "Lat", - "@lat": { - "description": "Etiqueta del campo de latitud (forma corta)" - }, - "lon": "Lon", - "@lon": { - "description": "Etiqueta del campo de longitud (forma corta)" - }, "useCurrentLocation": "Usar ubicación actual", "@useCurrentLocation": { "description": "Tooltip para el botón de usar ubicación actual" @@ -1339,15 +1209,6 @@ } } }, - "copiedToClipboardShort": "Copiado {label} al portapapeles", - "@copiedToClipboardShort": { - "description": "Mensaje corto de éxito al copiar al portapapeles", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "Error al guardar: {error}", "@failedToSave": { "description": "Mensaje de error genérico para fallos al guardar", @@ -1367,7 +1228,6 @@ } }, "sarTemplates": "Plantillas SAR", - "manageSarTemplates": "Gestionar plantillas SAR", "addTemplate": "Agregar plantilla", "editTemplate": "Editar plantilla", "deleteTemplate": "Eliminar plantilla", @@ -1395,7 +1255,6 @@ "noTemplates": "No hay plantillas disponibles", "tapAddToCreate": "Toca + para crear tu primera plantilla", "ok": "OK", - "permissionsSection": "Permisos", "locationPermission": "Permiso de ubicación", "checking": "Comprobando...", "locationPermissionGrantedAlways": "Concedido (Siempre)", @@ -1535,28 +1394,6 @@ "wizardNext": "Siguiente", "wizardGetStarted": "Comenzar", "wizardWelcomeTitle": "Bienvenido a MeshCore SAR", - "wizardWelcomeDescription": "Una poderosa herramienta de comunicación sin conexión para operaciones de búsqueda y rescate. Conéctese con su equipo usando tecnología de radio en malla cuando las redes tradicionales no estén disponibles.", - "wizardConnectingTitle": "Conectando a su Radio", - "wizardConnectingDescription": "Conecte su smartphone a un dispositivo de radio MeshCore vía Bluetooth para comenzar a comunicarse sin conexión.", - "wizardConnectingFeature1": "Buscar dispositivos MeshCore cercanos", - "wizardConnectingFeature2": "Emparejar con su radio vía Bluetooth", - "wizardConnectingFeature3": "Funciona completamente sin conexión - no se requiere internet", - "wizardChannelTitle": "Canales", - "wizardChannelDescription": "Transmita mensajes a todos en un canal, perfecto para anuncios y coordinación de todo el equipo.", - "wizardChannelFeature1": "Canal público para comunicación general del equipo", - "wizardChannelFeature2": "Cree canales personalizados para grupos específicos", - "wizardChannelFeature3": "Los mensajes se retransmiten automáticamente por la malla", - "wizardContactsTitle": "Contactos", - "wizardContactsDescription": "Los miembros de su equipo aparecen automáticamente cuando se unen a la red en malla. Envíeles mensajes directos o vea su ubicación.", - "wizardContactsFeature1": "Contactos descubiertos automáticamente", - "wizardContactsFeature2": "Enviar mensajes directos privados", - "wizardContactsFeature3": "Ver nivel de batería y hora de última vista", - "wizardMapTitle": "Mapa & Ubicación", - "wizardMapDescription": "Rastree a su equipo en tiempo real y marque ubicaciones importantes para operaciones de búsqueda y rescate.", - "wizardMapFeature1": "Marcadores SAR para personas encontradas, incendios y áreas de preparación", - "wizardMapFeature2": "Rastreo GPS en tiempo real de miembros del equipo", - "wizardMapFeature3": "Descargar mapas sin conexión para áreas remotas", - "wizardMapFeature4": "Dibujar formas y compartir información táctica", "viewWelcomeTutorial": "Ver tutorial de bienvenida", "allTeamContacts": "Todos los contactos del equipo", "directMessagesInfo": "Mensajes directos con confirmaciones. Enviado a {count} miembros del equipo.", @@ -1662,29 +1499,10 @@ "posttxDelay": "Retardo post-tx", "bandpass": "Paso de banda", "bandpassFilterVoice": "Filtro de paso de banda de voz", - "frequency": "Frecuencia", - "australia": "Australia", - "australiaNarrow": "Australia (Estrecho)", - "australiaQld": "Australia: QLD", - "australiaSaWa": "Australia: SA, WA", - "newZealand": "Nueva Zelanda", - "newZealandNarrow": "Nueva Zelanda (Estrecho)", - "switzerland": "Suiza", - "portugal433": "Portugal 433", - "portugal868": "Portugal 868", - "czechRepublicNarrow": "República Checa (Estrecho)", - "eu433mhzLongRange": "EU 433MHz (Largo Alcance)", - "euukDeprecated": "UE/RU (Obsoleto)", - "euukNarrow": "UE/RU (Estrecho)", - "usacanadaRecommended": "EE.UU./Canadá (Recomendado)", - "vietnamDeprecated": "Vietnam (Obsoleto)", - "vietnamNarrow": "Vietnam (Estrecho)", "active": "Activo", "addContact": "Añadir contacto", "all": "Todo", - "autoResolve": "Resolver automáticamente", "clearAllLabel": "Borrar todo", - "clearRelays": "Borrar repetidores", "clearFilters": "Borrar filtros", "clearRoute": "Borrar ruta", "clearMessages": "Borrar mensajes", @@ -1710,10 +1528,7 @@ "send": "Enviar", "sendAnyway": "Enviar de todos modos", "share": "Compartir", - "shareContact": "Compartir contacto", "trace": "Traza", - "use": "Usar", - "useSelectedFrequency": "Usar frecuencia seleccionada", "discovery": "Descubrimiento", "discoverRepeaters": "Descubrir repetidores", "discoverSensors": "Descubrir sensores", @@ -1736,7 +1551,6 @@ "gpsModule": "Módulo GPS", "liveTraffic": "Tráfico en vivo", "repeatersMap": "Mapa de repetidores", - "spectrumScan": "Escaneo de espectro", "blePacketLogs": "Registros de paquetes BLE", "onlineTraceDatabase": "Base de datos de trazas", "routePathByteSize": "Tamaño en bytes de la ruta", @@ -1748,7 +1562,6 @@ "disableContacts": "Desactivar contactos", "enableSensorsTab": "Habilitar pestaña Sensores", "enableProfiles": "Habilitar perfiles", - "autoRouteRotation": "Rotación automática de ruta", "nearestRepeaterFallback": "Repetidor más cercano como reserva", "deleteAllStoredMessageHistory": "Eliminar todo el historial de mensajes", "messageFontSize": "Tamaño de fuente de mensajes", @@ -1756,18 +1569,13 @@ "showMapDebugInfo": "Mostrar info de depuración del mapa", "openMapInFullscreen": "Abrir mapa en pantalla completa", "showSarMarkersLabel": "Mostrar marcadores SAR", - "displaySarMarkersOnTheMainMap": "Mostrar marcadores SAR en el mapa principal", - "showAllContactTrailsLabel": "Mostrar todos los rastros de contactos", "hideRepeatersOnMap": "Ocultar repetidores en el mapa", "setMapScale": "Establecer escala del mapa", "customMapScaleSaved": "Escala de mapa personalizada guardada", "voiceBitrate": "Tasa de bits de voz", "voiceCompressor": "Compresor de voz", - "balancesQuietAndLoudSpeechLevels": "Equilibra niveles de habla suaves y altos", "voiceLimiter": "Limitador de voz", - "preventsClippingPeaksBeforeEncoding": "Previene recorte de picos antes de codificar", "micAutoGain": "Ganancia automática del micrófono", - "letsTheRecorderAdjustInputLevel": "Permite al grabador ajustar el nivel de entrada", "echoCancellation": "Cancelación de eco", "noiseSuppression": "Supresión de ruido", "trimSilenceInVoiceMessages": "Recortar silencio en mensajes de voz", @@ -1809,13 +1617,10 @@ "staging": "Área de reunión", "object": "Objeto", "quiet": "Silencioso", - "moderate": "Moderado", "busy": "Ocupado", - "spectrumScanReturnedNoCandidateFrequencies": "El escaneo de espectro no encontró frecuencias candidatas", "searchMessages": "Buscar mensajes", "sendImageFromGallery": "Enviar imagen desde galería", "takePhoto": "Tomar foto", - "dmOnly": "Solo mensaje directo", "allMessages": "Todos los mensajes", "sendToPublicChannel": "¿Enviar al canal público?", "selectMarkerTypeAndDestination": "Seleccione tipo de marcador y destino", @@ -1834,8 +1639,6 @@ "wipeDevice": "Borrar dispositivo", "destructiveDeviceActions": "Acciones destructivas del dispositivo.", "chooseAPresetOrFinetuneCustomRadioSettings": "Elija un preajuste o ajuste la configuración de radio.", - "chooseTheNameAndLocationThisDeviceShares": "Elija el nombre y la ubicación que comparte este dispositivo.", - "availableSpaceOnThisDevice": "Espacio disponible en este dispositivo.", "used": "Usado", "total": "Total", "renameValue": "Renombrar valor", @@ -1853,8 +1656,6 @@ "onlineOnly": "Solo en línea", "inBoth": "En ambos", "source": "Fuente", - "manualRouteEdit": "Edición manual de ruta", - "observedMeshRoute": "Ruta mesh observada", "allMessagesCleared": "Todos los mensajes borrados", "onlineTraceDatabaseCleared": "Base de datos de trazas borrada", "packetLogsCleared": "Registros de paquetes borrados", @@ -1885,5 +1686,194 @@ "captured": "Capturado", "size": "Tamaño", "noCustomChannelsToClear": "No hay canales personalizados que borrar.", - "noDeviceContactsToClear": "No hay contactos del dispositivo que borrar." + "noDeviceContactsToClear": "No hay contactos del dispositivo que borrar.", + "autoSend": "Envío automático", + "autoSendDescription": "Enviar por la ruta actual.", + "sendDirect": "Envío directo", + "sendDirectDescription": "Enviar directamente a este contacto.", + "sendFlood": "Envío por inundación", + "sendFloodDescription": "Enviar a través de todos los repetidores.", + "postConnectDiscoveryTitle": "¿Descubrir repetidores ahora?", + "postConnectDiscoveryDescription": "Ejecutar descubrimiento de repetidores justo después de conectarse para ver nodos MeshCore cercanos y agregarlos a su red más rápido.", + "aToZ": "A-Z", + "add": "Agregar", + "addAdditionalDetails": "Agregar detalles adicionales", + "addPeer": "Agregar par", + "addPeerManually": "Agregar par manualmente", + "addedToContacts": "{name} agregado a contactos", + "addedToSensors": "{name} agregado a Sensores", + "allowAll": "Permitir todos", + "anonymousRxStats": "Estadísticas RX anónimas", + "appearance": "Apariencia", + "ascii": "ASCII", + "baseTelemetry": "Telemetría base", + "blePin": "PIN BLE", + "buzzerAlerts": "Alertas de zumbador", + "cancelImageReceive": "Cancelar recepción de imagen", + "choose": "Elegir", + "chooseWhichTabsAndContactSectionsToShow": "Elige qué pestañas y secciones de contactos mostrar", + "clearCache": "Limpiar caché", + "clearHistory": "Limpiar historial", + "clearLiveView": "Limpiar vista en vivo", + "clearLogs": "Limpiar registros", + "clearOfflineCache": "¿Limpiar caché sin conexión?", + "clearOverlay": "Limpiar superposición", + "clearRouteOnlyAfterAllRetriesFail": "Limpiar ruta solo después de que fallen todos los reintentos", + "codecBitrateAndAudioProcessing": "Códec, tasa de bits y procesamiento de audio", + "connectByIpAddress": "Conectar por dirección IP", + "controlWhichAlertsYouReceive": "Controla qué alertas recibes", + "copyFullHex": "Copiar Hex completo", + "copyRawResponse": "Copiar respuesta sin procesar", + "couldNotLoadMetHistory": "No se pudo cargar el historial MET", + "customizeSensor": "Personalizar {name}", + "data": "Datos", + "deleteGroup": "Eliminar grupo", + "deleteStyleConfirm": "¿Eliminar {name}?", + "deleteThisDrawing": "¿Eliminar este {type}?", + "deny": "Denegar", + "deviceInfo": "Información del dispositivo", + "deviceSettings": "Configuración del dispositivo", + "deviceTimeSynced": "Hora del dispositivo sincronizada con este teléfono.", + "disableFastGpsPublishing": "Desactivar publicación rápida de GPS", + "displayMarkersAndTraceDatabase": "Pantalla, marcadores y base de datos de trazas", + "download": "Descargar", + "environmentalTelemetry": "Telemetría ambiental", + "errorCheckingForUpdates": "Error al buscar actualizaciones: {error}", + "errorGeneric": "Error: {error}", + "errorOpeningDownload": "Error al abrir la descarga: {error}", + "exportLogs": "Exportar registros", + "extraAggressiveAvifCompression": "Compresión AVIF extra agresiva", + "failedToAddContact": "Error al agregar contacto: {error}", + "failedToAddName": "Error al agregar {name}: {error}", + "failedToClearChannels": "Error al limpiar canales: {error}", + "failedToClearContacts": "Error al limpiar contactos: {error}", + "failedToConnectViaSerial": "Error al conectar por serial", + "failedToLoadPreviewImage": "Error al cargar imagen de vista previa: {error}", + "failedToLoadTrace": "Error al cargar traza: {error}", + "failedToSendSarMarker": "Error al enviar marcador SAR: {error}", + "failedToSetBuzzerMode": "Error al configurar modo de zumbador: {error}", + "failedToSetGpsMode": "Error al configurar modo GPS: {error}", + "failedToSyncDeviceTime": "Error al sincronizar hora del dispositivo: {error}", + "failedToWipeDeviceData": "Error al borrar datos del dispositivo: {error}", + "fastGpsTargetChannel": "Canal objetivo de GPS rápido", + "fastUpdatesThresholdsAndPermissions": "Actualizaciones rápidas, umbrales y permisos", + "fetchingCatalog": "Obteniendo catálogo...", + "fifteenMinutes": "15 minutos", + "fifteenSeconds": "15 segundos", + "filterByDirection": "Filtrar por dirección", + "finish": "Finalizar", + "fiveMinutes": "5 minutos", + "fiveSeconds": "5 segundos", + "fix": "Posición", + "gps": "GPS", + "gpsAdvertPolicy": "Política de anuncio GPS", + "gpsAndLocation": "GPS y ubicación", + "gpsDiagnostics": "Diagnósticos GPS", + "gpsSection": "GPS", + "help": "Ayuda", + "hex": "Hex", + "hidden": "Oculto", + "howTheRadioAutoAddsDiscoveredNodes": "Cómo la radio agrega automáticamente nodos descubiertos.", + "images": "Imágenes", + "importProfile": "Importar perfil", + "lastFix": "Última posición", + "latest": "Más reciente", + "latitude": "Latitud", + "loadASavedRegion": "Cargar una región guardada", + "loading": "Cargando", + "locationSharingHardwareAndUpdateInterval": "Compartir ubicación, hardware e intervalo de actualización.", + "locationTelemetry": "Telemetría de ubicación", + "lockDestination": "Bloquear destino", + "longitude": "Longitud", + "mapStyle": "Estilo de mapa", + "max": "Máx", + "maxZoom": "Zoom máximo", + "messaging": "Mensajería", + "metHistory": "Historial MET", + "min": "Mín", + "minZoom": "Zoom mínimo", + "moveDown": "Mover abajo", + "moveUp": "Mover arriba", + "multiAckMode": "Modo multi-ACK", + "multiDeviceWorkspaceManagement": "Gestión de espacio de trabajo multidispositivo", + "myLocation": "Mi ubicación", + "nameAndTelemetryShared": "Nombre y telemetría compartidos con otros dispositivos.", + "newVersionAvailable": "Nueva versión: {version}", + "newer": "Más nuevo", + "noNeighboursFound": "No se encontraron vecinos", + "noServersFound": "No se encontraron servidores", + "notSet": "Sin configurar", + "notifications": "Notificaciones", + "offZeroSeconds": "Apagado (0 s)", + "offlineMaps": "Mapas sin conexión", + "older": "Más antiguo", + "oneByteMode0": "1 byte (modo 0)", + "oneHour": "1 hora", + "oneMinute": "1 minuto", + "openPacketLogs": "Abrir registros de paquetes", + "packetTypeHelp": "Ayuda de tipo de paquete", + "pasteShareLinkOrHexAdvert": "Pega un enlace compartido o anuncio hex", + "pathHash": "Hash de ruta", + "pathSize": "Tamaño de ruta", + "ping": "Ping", + "polygon": "Polígono", + "rawResponseCopied": "Respuesta sin procesar copiada", + "resendThroughNearestRepeaterOnFailure": "Reenviar a través del repetidor más cercano en caso de fallo", + "resolveContact": "Resolver contacto", + "routingRetriesAndDestinationLock": "Enrutamiento, reintentos y bloqueo de destino", + "samples": "Muestras", + "satellites": "Satélites", + "saving": "Guardando...", + "search": "Buscar", + "searchByNameOrToken": "Buscar por nombre o token", + "searchDiscoveredNodes": "Buscar nodos descubiertos", + "searchInCurrentFilter": "Buscar en el filtro actual", + "searchLogs": "Buscar registros...", + "searchSensors": "Buscar sensores", + "searchThisSection": "Buscar en esta sección", + "selectedRelays": "Relés seleccionados", + "sensor": "Sensor", + "serialError": "Error serial: {error}", + "setPathForContact": "Establecer ruta para {name}", + "shareLiveGps": "Compartir GPS en vivo", + "shareMyTiles": "Compartir mis mosaicos", + "sharingLocationFromPhone": "Compartiendo ubicación en este canal desde el teléfono.", + "sharingLocationFromRadio": "Compartiendo ubicación en este canal desde la radio.", + "signalDbm": "Señal {rssi} dBm", + "sizeCompressionAndPreview": "Tamaño, compresión y vista previa", + "skip": "Omitir", + "smallerFileSize": "Tamaño de archivo más pequeño", + "sort": "Ordenar", + "stoppedSharingLocation": "Se dejó de compartir ubicación en este canal.", + "suppressNotificationsWhileInForeground": "Suprimir notificaciones en primer plano", + "tabsAndNavigation": "Pestañas y navegación", + "templatesAndTutorials": "Plantillas y tutoriales", + "tenMinutes": "10 minutos", + "tenSeconds": "10 segundos", + "testSendUpdate": "Probar envío de actualización", + "themeLanguageAndDisplayPreferences": "Tema, idioma y preferencias de visualización", + "thirtyMinutes": "30 minutos", + "thirtySeconds": "30 segundos", + "threeBytesMode2": "3 bytes (modo 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Estadísticas de tráfico, historial de mensajes y herramientas de desarrollo", + "twoBytesMode1": "2 bytes (modo 1)", + "twoMinutes": "2 minutos", + "undo": "Deshacer", + "updated": "Actualizado", + "useContactFlags": "Usar banderas de contacto", + "useSavedCoordinates": "Usar coordenadas guardadas", + "view": "Ver", + "viewNeighbours": "Ver vecinos", + "viewPublicStats": "Ver estadísticas públicas", + "setRegionScope": "Establecer ámbito de región", + "regionScope": "Ámbito de región", + "regionScopeNone": "Ninguno (global)", + "clearRegionScope": "Limpiar ámbito", + "regionScopeWarning": "Solo los repetidores que permitan esta región reenviarán.", + "discoverRegions": "Descubrir desde repetidores", + "discoveringRegions": "Descubriendo regiones...", + "enterRegionName": "Nombre de región (ej. auckland)", + "noRegionsFound": "No se encontraron regiones en este repetidor.", + "regionScopeSet": "Ámbito de región establecido a {name}", + "regionScopeCleared": "Ámbito de región limpiado" } diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 54f6a83..2bae716 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "Bouton pour relancer la recherche BLE" }, - "tapToConnect": "Appuyez pour connecter", - "@tapToConnect": { - "description": "Texte de sous-titre pour l'appareil dans la liste de recherche" - }, "deviceNotConnected": "Appareil non connecté", "@deviceNotConnected": { "description": "Message d'erreur lorsque l'appareil n'est pas connecté" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "Paramètre pour afficher les indicateurs RX/TX" }, - "displayPacketActivity": "Afficher les indicateurs d'activité des paquets dans la barre supérieure", - "@displayPacketActivity": { - "description": "Description du paramètre des indicateurs RX/TX" - }, "disableMap": "Désactiver la carte", "@disableMap": { "description": "Paramètre pour désactiver l'onglet carte" }, - "disableMapDescription": "Masquer l'onglet carte pour réduire la consommation de batterie", - "@disableMapDescription": { - "description": "Description du paramètre pour désactiver la carte" - }, "language": "Langue", "@language": { "description": "Libellé du paramètre de langue" @@ -173,10 +161,6 @@ "@appVersion": { "description": "Libellé de la version de l'application" }, - "appName": "Nom de l'application", - "@appName": { - "description": "Libellé du nom de l'application" - }, "aboutMeshCoreSar": "À propos de MeshCore SAR", "@aboutMeshCoreSar": { "description": "Titre de la boîte de dialogue À propos" @@ -308,10 +292,6 @@ "@resetPath": { "description": "Action pour réinitialiser le chemin du contact pour réacheminement" }, - "publicKeyCopied": "Clé publique copiée dans le presse-papiers", - "@publicKeyCopied": { - "description": "Message de succès lorsque la clé publique est copiée" - }, "copiedToClipboard": "{label} copié dans le presse-papiers", "@copiedToClipboard": { "description": "Message de succès lorsqu'une valeur est copiée dans le presse-papiers", @@ -720,22 +700,6 @@ "@lastSeen": { "description": "Libellé de la dernière vue" }, - "roomStatus": "État du salon", - "@roomStatus": { - "description": "En-tête de section de l'état du salon" - }, - "loginStatus": "État de connexion", - "@loginStatus": { - "description": "Libellé de l'état de connexion" - }, - "notLoggedIn": "Non connecté", - "@notLoggedIn": { - "description": "État non connecté" - }, - "adminAccess": "Accès administrateur", - "@adminAccess": { - "description": "Libellé de l'accès administrateur" - }, "yes": "Oui", "@yes": { "description": "Réponse Oui" @@ -748,14 +712,6 @@ "@permissions": { "description": "Libellé des permissions" }, - "passwordSaved": "Mot de passe enregistré", - "@passwordSaved": { - "description": "Libellé du mot de passe enregistré" - }, - "locationColon": "Position :", - "@locationColon": { - "description": "En-tête de section de position" - }, "telemetry": "Télémétrie", "@telemetry": { "description": "En-tête de section de télémétrie" @@ -784,19 +740,6 @@ "@gpsTelemetry": { "description": "Libellé du GPS depuis la télémétrie" }, - "updated": "Mis à jour", - "@updated": { - "description": "Libellé de l'horodatage de mise à jour" - }, - "pathResetInfo": "Chemin réinitialisé pour {name}. Le prochain message trouvera un nouvel itinéraire.", - "@pathResetInfo": { - "description": "Message d'information après la réinitialisation du chemin", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "Se reconnecter au salon", "@reLoginToRoom": { "description": "Bouton pour se reconnecter au salon" @@ -1114,10 +1057,6 @@ "@frequencyMHz": { "description": "Libellé du champ de fréquence radio" }, - "frequencyExample": "ex. : 869,618", - "@frequencyExample": { - "description": "Texte d'aide exemple pour la fréquence" - }, "bandwidth": "Bande passante", "@bandwidth": { "description": "Libellé du menu déroulant de bande passante" @@ -1221,47 +1160,6 @@ "@trailControls": { "description": "Info-bulle des contrôles de la trace" }, - "contactTrails": "Traces des contacts", - "@contactTrails": { - "description": "En-tête de section des traces des contacts" - }, - "showAllContactTrails": "Afficher toutes les traces des contacts", - "@showAllContactTrails": { - "description": "Étiquette du commutateur pour afficher toutes les traces des contacts" - }, - "noContactsWithLocationHistory": "Aucun contact avec historique de localisation", - "@noContactsWithLocationHistory": { - "description": "Sous-titre lorsqu'il n'y a pas de contacts avec des traces" - }, - "showingTrailsForContacts": "Affichage des traces pour {count} contacts", - "@showingTrailsForContacts": { - "description": "Sous-titre montrant le nombre de contacts avec des traces", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "Traces individuelles des contacts", - "@individualContactTrails": { - "description": "Titre de l'élément extensible pour les traces individuelles des contacts" - }, - "deviceInformation": "Informations sur l'appareil", - "@deviceInformation": { - "description": "En-tête de section des informations sur l'appareil" - }, - "bleName": "Nom BLE", - "@bleName": { - "description": "Libellé du nom de l'appareil Bluetooth Low Energy" - }, - "meshName": "Nom du maillage", - "@meshName": { - "description": "Libellé du nom du réseau maillé" - }, - "notSet": "Non défini", - "@notSet": { - "description": "Libellé lorsqu'une valeur n'est pas définie" - }, "model": "Modèle", "@model": { "description": "Libellé du modèle d'appareil" @@ -1270,14 +1168,6 @@ "@version": { "description": "Libellé de la version" }, - "buildDate": "Date de compilation", - "@buildDate": { - "description": "Libellé de la date de compilation du micrologiciel" - }, - "firmware": "Micrologiciel", - "@firmware": { - "description": "Libellé du micrologiciel" - }, "maxContacts": "Contacts max", "@maxContacts": { "description": "Libellé de la capacité maximale de contacts" @@ -1290,26 +1180,6 @@ "@publicInfo": { "description": "En-tête de section des informations publiques" }, - "meshNetworkName": "Nom du réseau maillé", - "@meshNetworkName": { - "description": "Libellé du champ du nom du réseau maillé" - }, - "nameBroadcastInMesh": "Nom diffusé dans les annonces du maillage", - "@nameBroadcastInMesh": { - "description": "Texte d'aide pour le champ du nom du réseau maillé" - }, - "telemetryAndLocationSharing": "Télémétrie et partage de position", - "@telemetryAndLocationSharing": { - "description": "Libellé de l'interrupteur de télémétrie et de partage de position" - }, - "lat": "Lat", - "@lat": { - "description": "Libellé du champ de latitude (forme courte)" - }, - "lon": "Lon", - "@lon": { - "description": "Libellé du champ de longitude (forme courte)" - }, "useCurrentLocation": "Utiliser la position actuelle", "@useCurrentLocation": { "description": "Info-bulle du bouton d'utilisation de la position actuelle" @@ -1339,15 +1209,6 @@ } } }, - "copiedToClipboardShort": "{label} copié dans le presse-papiers", - "@copiedToClipboardShort": { - "description": "Message de succès court lors de la copie dans le presse-papiers", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "Échec de l'enregistrement : {error}", "@failedToSave": { "description": "Message d'erreur générique pour les échecs d'enregistrement", @@ -1367,7 +1228,6 @@ } }, "sarTemplates": "Modèles SAR", - "manageSarTemplates": "Gérer les modèles SAR", "addTemplate": "Ajouter un modèle", "editTemplate": "Modifier le modèle", "deleteTemplate": "Supprimer le modèle", @@ -1395,7 +1255,6 @@ "noTemplates": "Aucun modele disponible", "tapAddToCreate": "Appuyez sur + pour creer votre premier modele", "ok": "OK", - "permissionsSection": "Autorisations", "locationPermission": "Autorisation de localisation", "checking": "Vérification...", "locationPermissionGrantedAlways": "Accordée (Toujours)", @@ -1538,28 +1397,6 @@ "wizardNext": "Suivant", "wizardGetStarted": "Commencer", "wizardWelcomeTitle": "Bienvenue dans MeshCore SAR", - "wizardWelcomeDescription": "Un outil de communication hors ligne puissant pour les opérations de recherche et de sauvetage. Connectez-vous avec votre équipe en utilisant la technologie radio maillée lorsque les réseaux traditionnels ne sont pas disponibles.", - "wizardConnectingTitle": "Connexion à votre Radio", - "wizardConnectingDescription": "Connectez votre smartphone à un appareil radio MeshCore via Bluetooth pour commencer à communiquer hors ligne.", - "wizardConnectingFeature1": "Rechercher les appareils MeshCore à proximité", - "wizardConnectingFeature2": "Coupler avec votre radio via Bluetooth", - "wizardConnectingFeature3": "Fonctionne entièrement hors ligne - aucun internet requis", - "wizardChannelTitle": "Canaux", - "wizardChannelDescription": "Diffusez des messages à tous sur un canal, parfait pour les annonces et la coordination de toute l'équipe.", - "wizardChannelFeature1": "Canal public pour la communication générale de l'équipe", - "wizardChannelFeature2": "Créer des canaux personnalisés pour des groupes spécifiques", - "wizardChannelFeature3": "Les messages sont automatiquement relayés par le maillage", - "wizardContactsTitle": "Contacts", - "wizardContactsDescription": "Les membres de votre équipe apparaissent automatiquement lorsqu'ils rejoignent le réseau maillé. Envoyez-leur des messages directs ou consultez leur emplacement.", - "wizardContactsFeature1": "Contacts découverts automatiquement", - "wizardContactsFeature2": "Envoyer des messages directs privés", - "wizardContactsFeature3": "Voir le niveau de batterie et l'heure de dernière vue", - "wizardMapTitle": "Carte & Localisation", - "wizardMapDescription": "Suivez votre équipe en temps réel et marquez les emplacements importants pour les opérations de recherche et de sauvetage.", - "wizardMapFeature1": "Marqueurs SAR pour les personnes retrouvées, les incendies et les zones de rassemblement", - "wizardMapFeature2": "Suivi GPS en temps réel des membres de l'équipe", - "wizardMapFeature3": "Télécharger des cartes hors ligne pour les zones éloignées", - "wizardMapFeature4": "Dessiner des formes et partager des informations tactiques", "viewWelcomeTutorial": "Voir le tutoriel de bienvenue", "allTeamContacts": "Tous les contacts de l'équipe", "directMessagesInfo": "Messages directs avec confirmations. Envoyé à {count} membres de l'équipe.", @@ -1665,29 +1502,10 @@ "posttxDelay": "Délai post-émission", "bandpass": "Passe-bande", "bandpassFilterVoice": "Filtre passe-bande voix", - "frequency": "Fréquence", - "australia": "Australie", - "australiaNarrow": "Australie (Étroit)", - "australiaQld": "Australie: QLD", - "australiaSaWa": "Australie: SA, WA", - "newZealand": "Nouvelle-Zélande", - "newZealandNarrow": "Nouvelle-Zélande (Étroit)", - "switzerland": "Suisse", - "portugal433": "Portugal 433", - "portugal868": "Portugal 868", - "czechRepublicNarrow": "République tchèque (Étroit)", - "eu433mhzLongRange": "UE 433MHz (Longue Portée)", - "euukDeprecated": "UE/RU (Obsolète)", - "euukNarrow": "UE/RU (Étroit)", - "usacanadaRecommended": "USA/Canada (Recommandé)", - "vietnamDeprecated": "Vietnam (Obsolète)", - "vietnamNarrow": "Vietnam (Étroit)", "active": "Actif", "addContact": "Ajouter un contact", "all": "Tout", - "autoResolve": "Résolution automatique", "clearAllLabel": "Tout effacer", - "clearRelays": "Effacer les relais", "clearFilters": "Effacer les filtres", "clearRoute": "Effacer la route", "clearMessages": "Effacer les messages", @@ -1713,10 +1531,7 @@ "send": "Envoyer", "sendAnyway": "Envoyer quand même", "share": "Partager", - "shareContact": "Partager le contact", "trace": "Trace", - "use": "Utiliser", - "useSelectedFrequency": "Utiliser la fréquence sélectionnée", "discovery": "Découverte", "discoverRepeaters": "Découvrir les répéteurs", "discoverSensors": "Découvrir les capteurs", @@ -1739,7 +1554,6 @@ "gpsModule": "Module GPS", "liveTraffic": "Trafic en direct", "repeatersMap": "Carte des répéteurs", - "spectrumScan": "Scan spectral", "blePacketLogs": "Journaux de paquets BLE", "onlineTraceDatabase": "Base de données de traces", "routePathByteSize": "Taille en octets du chemin", @@ -1751,7 +1565,6 @@ "disableContacts": "Désactiver les contacts", "enableSensorsTab": "Activer l'onglet Capteurs", "enableProfiles": "Activer les profils", - "autoRouteRotation": "Rotation automatique de route", "nearestRepeaterFallback": "Répéteur le plus proche en repli", "deleteAllStoredMessageHistory": "Supprimer tout l'historique", "messageFontSize": "Taille de police des messages", @@ -1759,18 +1572,13 @@ "showMapDebugInfo": "Afficher les infos de débogage", "openMapInFullscreen": "Ouvrir la carte en plein écran", "showSarMarkersLabel": "Afficher les marqueurs SAR", - "displaySarMarkersOnTheMainMap": "Afficher les marqueurs SAR sur la carte", - "showAllContactTrailsLabel": "Afficher toutes les traces de contacts", "hideRepeatersOnMap": "Masquer les répéteurs sur la carte", "setMapScale": "Définir l'échelle de la carte", "customMapScaleSaved": "Échelle de carte personnalisée enregistrée", "voiceBitrate": "Débit vocal", "voiceCompressor": "Compresseur vocal", - "balancesQuietAndLoudSpeechLevels": "Équilibre les niveaux faibles et forts", "voiceLimiter": "Limiteur vocal", - "preventsClippingPeaksBeforeEncoding": "Empêche l'écrêtage avant l'encodage", "micAutoGain": "Gain auto du micro", - "letsTheRecorderAdjustInputLevel": "Laisse l'enregistreur ajuster le niveau d'entrée", "echoCancellation": "Annulation d'écho", "noiseSuppression": "Suppression du bruit", "trimSilenceInVoiceMessages": "Couper le silence dans les messages vocaux", @@ -1812,13 +1620,10 @@ "staging": "Zone de regroupement", "object": "Objet", "quiet": "Calme", - "moderate": "Modéré", "busy": "Occupé", - "spectrumScanReturnedNoCandidateFrequencies": "Le scan spectral n'a trouvé aucune fréquence candidate", "searchMessages": "Rechercher des messages", "sendImageFromGallery": "Envoyer une image de la galerie", "takePhoto": "Prendre une photo", - "dmOnly": "Message direct uniquement", "allMessages": "Tous les messages", "sendToPublicChannel": "Envoyer au canal public ?", "selectMarkerTypeAndDestination": "Sélectionnez le type de marqueur et la destination", @@ -1837,8 +1642,6 @@ "wipeDevice": "Effacer l'appareil", "destructiveDeviceActions": "Actions destructives de l'appareil.", "chooseAPresetOrFinetuneCustomRadioSettings": "Choisissez un préréglage ou ajustez les paramètres radio.", - "chooseTheNameAndLocationThisDeviceShares": "Choisissez le nom et l'emplacement partagés par cet appareil.", - "availableSpaceOnThisDevice": "Espace disponible sur cet appareil.", "used": "Utilisé", "total": "Total", "renameValue": "Renommer la valeur", @@ -1856,8 +1659,6 @@ "onlineOnly": "En ligne uniquement", "inBoth": "Dans les deux", "source": "Source", - "manualRouteEdit": "Édition manuelle de route", - "observedMeshRoute": "Route mesh observée", "allMessagesCleared": "Tous les messages effacés", "onlineTraceDatabaseCleared": "Base de données de traces effacée", "packetLogsCleared": "Journaux de paquets effacés", @@ -1888,5 +1689,194 @@ "captured": "Capturé", "size": "Taille", "noCustomChannelsToClear": "Aucun canal personnalisé à effacer.", - "noDeviceContactsToClear": "Aucun contact de l'appareil à effacer." + "noDeviceContactsToClear": "Aucun contact de l'appareil à effacer.", + "autoSend": "Envoi automatique", + "autoSendDescription": "Envoyer via le chemin actuel.", + "sendDirect": "Envoi direct", + "sendDirectDescription": "Envoyer directement à ce contact.", + "sendFlood": "Envoi par inondation", + "sendFloodDescription": "Envoyer via tous les relais.", + "postConnectDiscoveryTitle": "Découvrir les relais maintenant ?", + "postConnectDiscoveryDescription": "Lancer la découverte des relais juste après la connexion pour voir les nœuds MeshCore à proximité et les ajouter plus rapidement à votre réseau.", + "aToZ": "A-Z", + "add": "Ajouter", + "addAdditionalDetails": "Ajouter des détails supplémentaires", + "addPeer": "Ajouter un pair", + "addPeerManually": "Ajouter un pair manuellement", + "addedToContacts": "{name} ajouté aux contacts", + "addedToSensors": "{name} ajouté aux capteurs", + "allowAll": "Tout autoriser", + "anonymousRxStats": "Statistiques RX anonymes", + "appearance": "Apparence", + "ascii": "ASCII", + "baseTelemetry": "Télémétrie de base", + "blePin": "PIN BLE", + "buzzerAlerts": "Alertes sonores", + "cancelImageReceive": "Annuler la réception d'image", + "choose": "Choisir", + "chooseWhichTabsAndContactSectionsToShow": "Choisir les onglets et sections de contacts à afficher", + "clearCache": "Vider le cache", + "clearHistory": "Effacer l'historique", + "clearLiveView": "Effacer la vue en direct", + "clearLogs": "Effacer les journaux", + "clearOfflineCache": "Vider le cache hors ligne ?", + "clearOverlay": "Effacer la superposition", + "clearRouteOnlyAfterAllRetriesFail": "Effacer la route uniquement après l'échec de toutes les tentatives", + "codecBitrateAndAudioProcessing": "Codec, débit et traitement audio", + "connectByIpAddress": "Connexion par adresse IP", + "controlWhichAlertsYouReceive": "Contrôler les alertes que vous recevez", + "copyFullHex": "Copier le Hex complet", + "copyRawResponse": "Copier la réponse brute", + "couldNotLoadMetHistory": "Impossible de charger l'historique MET", + "customizeSensor": "Personnaliser {name}", + "data": "Données", + "deleteGroup": "Supprimer le groupe", + "deleteStyleConfirm": "Supprimer {name} ?", + "deleteThisDrawing": "Supprimer ce {type} ?", + "deny": "Refuser", + "deviceInfo": "Infos de l'appareil", + "deviceSettings": "Paramètres de l'appareil", + "deviceTimeSynced": "Heure de l'appareil synchronisée avec ce téléphone.", + "disableFastGpsPublishing": "Désactiver la publication GPS rapide", + "displayMarkersAndTraceDatabase": "Affichage, marqueurs et base de données de traces", + "download": "Télécharger", + "environmentalTelemetry": "Télémétrie environnementale", + "errorCheckingForUpdates": "Erreur lors de la vérification des mises à jour : {error}", + "errorGeneric": "Erreur : {error}", + "errorOpeningDownload": "Erreur lors de l'ouverture du téléchargement : {error}", + "exportLogs": "Exporter les journaux", + "extraAggressiveAvifCompression": "Compression AVIF extra-agressive", + "failedToAddContact": "Échec de l'ajout du contact : {error}", + "failedToAddName": "Échec de l'ajout de {name} : {error}", + "failedToClearChannels": "Échec de l'effacement des canaux : {error}", + "failedToClearContacts": "Échec de l'effacement des contacts : {error}", + "failedToConnectViaSerial": "Échec de la connexion via série", + "failedToLoadPreviewImage": "Échec du chargement de l'aperçu : {error}", + "failedToLoadTrace": "Échec du chargement de la trace : {error}", + "failedToSendSarMarker": "Échec de l'envoi du marqueur SAR : {error}", + "failedToSetBuzzerMode": "Échec du réglage du mode buzzer : {error}", + "failedToSetGpsMode": "Échec du réglage du mode GPS : {error}", + "failedToSyncDeviceTime": "Échec de la synchronisation de l'heure de l'appareil : {error}", + "failedToWipeDeviceData": "Échec de l'effacement des données de l'appareil : {error}", + "fastGpsTargetChannel": "Canal cible GPS rapide", + "fastUpdatesThresholdsAndPermissions": "Mises à jour rapides, seuils et permissions", + "fetchingCatalog": "Récupération du catalogue...", + "fifteenMinutes": "15 minutes", + "fifteenSeconds": "15 secondes", + "filterByDirection": "Filtrer par direction", + "finish": "Terminer", + "fiveMinutes": "5 minutes", + "fiveSeconds": "5 secondes", + "fix": "Correctif", + "gps": "GPS", + "gpsAdvertPolicy": "Politique d'annonce GPS", + "gpsAndLocation": "GPS et localisation", + "gpsDiagnostics": "Diagnostics GPS", + "gpsSection": "GPS", + "help": "Aide", + "hex": "Hex", + "hidden": "Masqué", + "howTheRadioAutoAddsDiscoveredNodes": "Comment la radio ajoute automatiquement les nœuds découverts.", + "images": "Images", + "importProfile": "Importer un profil", + "lastFix": "Dernier correctif", + "latest": "Le plus récent", + "latitude": "Latitude", + "loadASavedRegion": "Charger une région enregistrée", + "loading": "Chargement", + "locationSharingHardwareAndUpdateInterval": "Partage de position, matériel et intervalle de mise à jour.", + "locationTelemetry": "Télémétrie de position", + "lockDestination": "Verrouiller la destination", + "longitude": "Longitude", + "mapStyle": "Style de carte", + "max": "Max", + "maxZoom": "Zoom max", + "messaging": "Messagerie", + "metHistory": "Historique MET", + "min": "Min", + "minZoom": "Zoom min", + "moveDown": "Déplacer vers le bas", + "moveUp": "Déplacer vers le haut", + "multiAckMode": "Mode multi-ACK", + "multiDeviceWorkspaceManagement": "Gestion d'espace de travail multi-appareils", + "myLocation": "Ma position", + "nameAndTelemetryShared": "Nom et télémétrie partagés avec d'autres appareils.", + "newVersionAvailable": "Nouvelle version : {version}", + "newer": "Plus récent", + "noNeighboursFound": "Aucun voisin trouvé", + "noServersFound": "Aucun serveur trouvé", + "notSet": "Non défini", + "notifications": "Notifications", + "offZeroSeconds": "Désactivé (0 s)", + "offlineMaps": "Cartes hors ligne", + "older": "Plus ancien", + "oneByteMode0": "1 octet (mode 0)", + "oneHour": "1 heure", + "oneMinute": "1 minute", + "openPacketLogs": "Ouvrir les journaux de paquets", + "packetTypeHelp": "Aide sur les types de paquets", + "pasteShareLinkOrHexAdvert": "Coller un lien de partage ou une annonce hex", + "pathHash": "Hash du chemin", + "pathSize": "Taille du chemin", + "ping": "Ping", + "polygon": "Polygone", + "rawResponseCopied": "Réponse brute copiée", + "resendThroughNearestRepeaterOnFailure": "Renvoyer via le répéteur le plus proche en cas d'échec", + "resolveContact": "Résoudre le contact", + "routingRetriesAndDestinationLock": "Routage, tentatives et verrouillage de destination", + "samples": "Échantillons", + "satellites": "Satellites", + "saving": "Enregistrement...", + "search": "Rechercher", + "searchByNameOrToken": "Rechercher par nom ou jeton", + "searchDiscoveredNodes": "Rechercher les nœuds découverts", + "searchInCurrentFilter": "Rechercher dans le filtre actuel", + "searchLogs": "Rechercher dans les journaux...", + "searchSensors": "Rechercher les capteurs", + "searchThisSection": "Rechercher dans cette section", + "selectedRelays": "Relais sélectionnés", + "sensor": "Capteur", + "serialError": "Erreur série : {error}", + "setPathForContact": "Définir le chemin pour {name}", + "shareLiveGps": "Partager le GPS en direct", + "shareMyTiles": "Partager mes tuiles", + "sharingLocationFromPhone": "Partage de la position sur ce canal depuis le téléphone.", + "sharingLocationFromRadio": "Partage de la position sur ce canal depuis la radio.", + "signalDbm": "Signal {rssi} dBm", + "sizeCompressionAndPreview": "Taille, compression et aperçu", + "skip": "Passer", + "smallerFileSize": "Taille de fichier réduite", + "sort": "Trier", + "stoppedSharingLocation": "Arrêt du partage de position sur ce canal.", + "suppressNotificationsWhileInForeground": "Supprimer les notifications en premier plan", + "tabsAndNavigation": "Onglets et navigation", + "templatesAndTutorials": "Modèles et tutoriels", + "tenMinutes": "10 minutes", + "tenSeconds": "10 secondes", + "testSendUpdate": "Tester l'envoi de mise à jour", + "themeLanguageAndDisplayPreferences": "Thème, langue et préférences d'affichage", + "thirtyMinutes": "30 minutes", + "thirtySeconds": "30 secondes", + "threeBytesMode2": "3 octets (mode 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Statistiques de trafic, historique des messages et outils de développement", + "twoBytesMode1": "2 octets (mode 1)", + "twoMinutes": "2 minutes", + "undo": "Annuler", + "updated": "Mis à jour", + "useContactFlags": "Utiliser les drapeaux de contact", + "useSavedCoordinates": "Utiliser les coordonnées enregistrées", + "view": "Voir", + "viewNeighbours": "Voir les voisins", + "viewPublicStats": "Voir les statistiques publiques", + "setRegionScope": "Définir la portée régionale", + "regionScope": "Portée régionale", + "regionScopeNone": "Aucune (globale)", + "clearRegionScope": "Effacer la portée", + "regionScopeWarning": "Seuls les relais autorisant cette région retransmettront.", + "discoverRegions": "Découvrir depuis les relais", + "discoveringRegions": "Découverte des régions...", + "enterRegionName": "Nom de région (ex. auckland)", + "noRegionsFound": "Aucune région trouvée sur ce relais.", + "regionScopeSet": "Portée régionale définie sur {name}", + "regionScopeCleared": "Portée régionale effacée" } diff --git a/lib/l10n/app_hr.arb b/lib/l10n/app_hr.arb index 7675efd..d283c22 100644 --- a/lib/l10n/app_hr.arb +++ b/lib/l10n/app_hr.arb @@ -9,7 +9,6 @@ "disconnect": "Prekini", "noDevicesFound": "Nisu pronađeni uređaji", "scanAgain": "Skeniraj ponovno", - "tapToConnect": "Dodirnite za povezivanje", "deviceNotConnected": "Uređaj nije povezan", "locationPermissionDenied": "Dopuštenje za lokaciju odbijeno", "locationPermissionPermanentlyDenied": "Dopuštenje za lokaciju trajno odbijeno. Molimo omogućite u Postavkama.", @@ -32,9 +31,7 @@ "autoSystem": "Automatski (Sustav)", "followSystemTheme": "Slijedi temu sustava", "showRxTxIndicators": "Prikaži RX/TX indikatore", - "displayPacketActivity": "Prikaži indikatore aktivnosti paketa u gornjoj traci", "disableMap": "Onemogući kartu", - "disableMapDescription": "Sakrij karticu karte za uštedu baterije", "language": "Jezik", "chooseLanguage": "Odaberite jezik", "save": "Spremi", @@ -42,7 +39,6 @@ "close": "Zatvori", "about": "O aplikaciji", "appVersion": "Verzija aplikacije", - "appName": "Ime aplikacije", "aboutMeshCoreSar": "O MeshCore SAR", "aboutDescription": "Aplikacija za potragu i spašavanje dizajnirana za timove za hitne slučajeve. Značajke uključuju:\n\n• BLE mesh mrežu za komunikaciju uređaj-uređaj\n• Offline karte s više slojeva\n• Praćenje članova tima u stvarnom vremenu\n• SAR taktički markeri (pronađena osoba, požar, zbirno mjesto)\n• Upravljanje kontaktima i razmjena poruka\n• GPS praćenje s kompasnim smjerom\n• Predmemoriranje karata za offline upotrebu", "technologiesUsed": "Korištene tehnologije:", @@ -69,7 +65,6 @@ "viewOnMap": "Prikaži na karti", "refresh": "Osvježi", "resetPath": "Resetiraj put (preusmjeri)", - "publicKeyCopied": "Javni ključ kopiran u međuspremnik", "copiedToClipboard": "{label} kopirano u međuspremnik", "pleaseEnterPassword": "Molimo unesite lozinku", "failedToSyncContacts": "Neuspjela sinkronizacija kontakata: {error}", @@ -148,15 +143,9 @@ "type": "Vrsta", "publicKey": "Javni ključ", "lastSeen": "Zadnje viđen", - "roomStatus": "Status sobe", - "loginStatus": "Status prijave", - "notLoggedIn": "Nije prijavljen", - "adminAccess": "Administratorski pristup", "yes": "Da", "no": "Ne", "permissions": "Dopuštenja", - "passwordSaved": "Lozinka spremljena", - "locationColon": "Lokacija:", "telemetry": "Telemetrija", "voltage": "Napon", "battery": "Baterija", @@ -164,8 +153,6 @@ "humidity": "Vlažnost", "pressure": "Tlak", "gpsTelemetry": "GPS (Telemetrija)", - "updated": "Ažurirano", - "pathResetInfo": "Put resetiran za {name}. Sljedeća poruka će pronaći novu rutu.", "reLoginToRoom": "Ponovna prijava u sobu", "heading": "Smjer", "elevation": "Nadmorska visina", @@ -240,7 +227,6 @@ "tapToViewOnMap": "Dodirnite za prikaz na karti", "radioSettings": "Postavke radija", "frequencyMHz": "Frekvencija (MHz)", - "frequencyExample": "npr. 869.618", "bandwidth": "Širina pojasa", "spreadingFactor": "Faktor širenja", "codingRate": "Omjer kodiranja", @@ -263,38 +249,20 @@ "noTrailRecorded": "Još nije snimljena putanja", "startTrackingToRecord": "Pokrenite praćenje lokacije za snimanje putanje", "trailControls": "Upravljanje putanjom", - "contactTrails": "Putanje kontakata", - "showAllContactTrails": "Prikaži sve putanje kontakata", - "noContactsWithLocationHistory": "Nema kontakata s poviješću lokacije", - "showingTrailsForContacts": "Prikazujem putanje za {count} kontakata", - "individualContactTrails": "Pojedinačne putanje kontakata", - "deviceInformation": "Informacije o uređaju", - "bleName": "BLE naziv", - "meshName": "Mesh naziv", - "notSet": "Nije postavljeno", "model": "Model", "version": "Verzija", - "buildDate": "Datum izgradnje", - "firmware": "Firmver", "maxContacts": "Maks. kontakata", "maxChannels": "Maks. kanala", "publicInfo": "Javne informacije", - "meshNetworkName": "Naziv mesh mreže", - "nameBroadcastInMesh": "Naziv koji se emitira u mesh oglasima", - "telemetryAndLocationSharing": "Telemetrija i dijeljenje lokacije", - "lat": "Šir", - "lon": "Duž", "useCurrentLocation": "Koristi trenutnu lokaciju", "noneUnknown": "Nema/Nepoznato", "chatNode": "Čvorište za razgovor", "repeater": "Repetitor", "roomChannel": "Soba/Kanal", "typeNumber": "Tip {number}", - "copiedToClipboardShort": "Kopirano {label} u međuspremnik", "failedToSave": "Neuspjelo spremanje: {error}", "failedToGetLocation": "Neuspjelo dohvaćanje lokacije: {error}", "sarTemplates": "SAR predlošci", - "manageSarTemplates": "Upravljanje SAR predlošcima", "addTemplate": "Dodaj predložak", "editTemplate": "Uredi predložak", "deleteTemplate": "Izbriši predložak", @@ -322,7 +290,6 @@ "noTemplates": "Nema dostupnih predložaka", "tapAddToCreate": "Dodirnite + za izradu prvog predloška", "ok": "U redu", - "permissionsSection": "Dozvole", "locationPermission": "Dozvola za lokaciju", "checking": "Provjera...", "locationPermissionGrantedAlways": "Odobreno (Uvijek)", @@ -460,28 +427,6 @@ "wizardNext": "Dalje", "wizardGetStarted": "Započni", "wizardWelcomeTitle": "Dobrodošli u MeshCore SAR", - "wizardWelcomeDescription": "Moćan alat za komunikaciju izvan mreže za spasilačke operacije. Povežite se s timom uz mesh radijsku tehnologiju kada tradicionalne mreže nisu dostupne.", - "wizardConnectingTitle": "Povezivanje s radiom", - "wizardConnectingDescription": "Povežite telefon s MeshCore radijskim uređajem putem Bluetootha i započnite komunikaciju izvan mreže.", - "wizardConnectingFeature1": "Skenira obližnje MeshCore uređaje", - "wizardConnectingFeature2": "Uparivanje s radijem putem Bluetootha", - "wizardConnectingFeature3": "Radi potpuno izvan mreže — internet nije potreban", - "wizardChannelTitle": "Kanali", - "wizardChannelDescription": "Šaljite poruke svima na kanalu — idealno za obavijesti i koordinaciju tima.", - "wizardChannelFeature1": "Javni kanal za opću komunikaciju ekipe", - "wizardChannelFeature2": "Stvorite prilagođene kanale za specifične grupe", - "wizardChannelFeature3": "Poruke se automatski prosljeđuju putem mreže", - "wizardContactsTitle": "Kontakti", - "wizardContactsDescription": "Članovi tima se prikazuju automatski kada se pridruže mesh mreži. Šaljite im izravne poruke ili pogledajte njihovu lokaciju.", - "wizardContactsFeature1": "Kontakti se automatski otkrivaju", - "wizardContactsFeature2": "Šaljite privatne direktne poruke", - "wizardContactsFeature3": "Prikažite stanje baterije i vrijeme zadnje aktivnosti", - "wizardMapTitle": "Karta i lokacija", - "wizardMapDescription": "Pratite tim u stvarnom vremenu i označavajte ključne lokacije za spasilačke operacije.", - "wizardMapFeature1": "SAR oznake za pronađene osobe, požare i točke okupljanja", - "wizardMapFeature2": "GPS praćenje članova tima u stvarnom vremenu", - "wizardMapFeature3": "Preuzmite karte za rad izvan mreže", - "wizardMapFeature4": "Crtajte oblike i dijelite taktičke informacije", "viewWelcomeTutorial": "Pogledaj uputu dobrodošlice", "allTeamContacts": "Svi kontakti tima", "directMessagesInfo": "Izravne poruke s potvrdom. Poslano {count} članovima tima.", @@ -587,29 +532,10 @@ "posttxDelay": "Kašnjenje nakon slanja", "bandpass": "Pojasni filtar", "bandpassFilterVoice": "Pojasni filtar glasa", - "frequency": "Frekvencija", - "australia": "Australija", - "australiaNarrow": "Australija (usko)", - "australiaQld": "Australija: QLD", - "australiaSaWa": "Australija: SA, WA", - "newZealand": "Novi Zeland", - "newZealandNarrow": "Novi Zeland (usko)", - "switzerland": "Švicarska", - "portugal433": "Portugal 433", - "portugal868": "Portugal 868", - "czechRepublicNarrow": "Češka (usko)", - "eu433mhzLongRange": "EU 433MHz (veliki domet)", - "euukDeprecated": "EU/UK (zastarjelo)", - "euukNarrow": "EU/UK (usko)", - "usacanadaRecommended": "SAD/Kanada (preporučeno)", - "vietnamDeprecated": "Vijetnam (zastarjelo)", - "vietnamNarrow": "Vijetnam (usko)", "active": "Aktivno", "addContact": "Dodaj kontakt", "all": "Sve", - "autoResolve": "Automatski razriješi", "clearAllLabel": "Očisti sve", - "clearRelays": "Očisti posrednike", "clearFilters": "Očisti filtre", "clearRoute": "Očisti putanju", "clearMessages": "Očisti poruke", @@ -635,10 +561,7 @@ "send": "Pošalji", "sendAnyway": "Svejedno pošalji", "share": "Dijeli", - "shareContact": "Dijeli kontakt", "trace": "Praćenje", - "use": "Koristi", - "useSelectedFrequency": "Koristi odabranu frekvenciju", "discovery": "Otkrivanje", "discoverRepeaters": "Otkrij posrednike", "discoverSensors": "Otkrij senzore", @@ -661,7 +584,6 @@ "gpsModule": "GPS modul", "liveTraffic": "Promet uživo", "repeatersMap": "Karta posrednika", - "spectrumScan": "Spektralno skeniranje", "blePacketLogs": "BLE zapisi paketa", "onlineTraceDatabase": "Baza mrežnih tragova", "routePathByteSize": "Veličina putanje u bajtima", @@ -673,7 +595,6 @@ "disableContacts": "Onemogući kontakte", "enableSensorsTab": "Omogući karticu Senzori", "enableProfiles": "Omogući profile", - "autoRouteRotation": "Automatsko rotiranje putanje", "nearestRepeaterFallback": "Najbliži posrednik kao rezerva", "deleteAllStoredMessageHistory": "Izbriši svu pohranjenu povijest poruka", "messageFontSize": "Veličina fonta poruka", @@ -681,18 +602,13 @@ "showMapDebugInfo": "Prikaži debug info karte", "openMapInFullscreen": "Otvori kartu na cijelom zaslonu", "showSarMarkersLabel": "Prikaži SAR oznake", - "displaySarMarkersOnTheMainMap": "Prikaži SAR oznake na glavnoj karti", - "showAllContactTrailsLabel": "Prikaži sve tragove kontakata", "hideRepeatersOnMap": "Sakrij posrednike na karti", "setMapScale": "Postavi mjerilo karte", "customMapScaleSaved": "Prilagođeno mjerilo karte spremljeno", "voiceBitrate": "Bitna brzina glasa", "voiceCompressor": "Kompresor glasa", - "balancesQuietAndLoudSpeechLevels": "Izravnava tihe i glasne razine govora", "voiceLimiter": "Ograničivač glasa", - "preventsClippingPeaksBeforeEncoding": "Sprječava rezanje vrhova prije kodiranja", "micAutoGain": "Automatsko pojačanje mikrofona", - "letsTheRecorderAdjustInputLevel": "Dopušta snimaču prilagodbu razine ulaza", "echoCancellation": "Poništavanje odjeka", "noiseSuppression": "Potiskivanje šuma", "trimSilenceInVoiceMessages": "Izreži tišinu u glasovnim porukama", @@ -734,13 +650,10 @@ "staging": "Sabirno mjesto", "object": "Objekt", "quiet": "Tiho", - "moderate": "Umjereno", "busy": "Zauzeto", - "spectrumScanReturnedNoCandidateFrequencies": "Spektralno skeniranje nije pronašlo prikladne frekvencije", "searchMessages": "Pretraži poruke", "sendImageFromGallery": "Pošalji sliku iz galerije", "takePhoto": "Snimi fotografiju", - "dmOnly": "Samo izravno", "allMessages": "Sve poruke", "sendToPublicChannel": "Pošalji na javni kanal?", "selectMarkerTypeAndDestination": "Odaberite vrstu oznake i odredište", @@ -759,8 +672,6 @@ "wipeDevice": "Obriši uređaj", "destructiveDeviceActions": "Destruktivne radnje na uređaju.", "chooseAPresetOrFinetuneCustomRadioSettings": "Odaberite predefiniranu postavku ili fino podesite radijske postavke.", - "chooseTheNameAndLocationThisDeviceShares": "Odaberite ime i lokaciju koju ovaj uređaj dijeli.", - "availableSpaceOnThisDevice": "Raspoloživi prostor na ovom uređaju.", "used": "Korišteno", "total": "Ukupno", "renameValue": "Preimenuj vrijednost", @@ -778,8 +689,6 @@ "onlineOnly": "Samo povezani", "inBoth": "U oba", "source": "Izvor", - "manualRouteEdit": "Ručno uređivanje putanje", - "observedMeshRoute": "Opažena mrežna putanja", "allMessagesCleared": "Sve poruke očišćene", "onlineTraceDatabaseCleared": "Baza mrežnih tragova očišćena", "packetLogsCleared": "Zapisi paketa očišćeni", @@ -810,5 +719,194 @@ "captured": "Zabilježeno", "size": "Veličina", "noCustomChannelsToClear": "Nema prilagođenih kanala za brisanje.", - "noDeviceContactsToClear": "Nema kontakata uređaja za brisanje." + "noDeviceContactsToClear": "Nema kontakata uređaja za brisanje.", + "autoSend": "Automatsko slanje", + "autoSendDescription": "Pošalji trenutnom rutom.", + "sendDirect": "Izravno slanje", + "sendDirectDescription": "Pošalji izravno ovom kontaktu.", + "sendFlood": "Slanje poplavom", + "sendFloodDescription": "Pošalji preko svih repetitora.", + "postConnectDiscoveryTitle": "Otkriti repetitore sada?", + "postConnectDiscoveryDescription": "Pokrenite otkrivanje repetitora odmah nakon povezivanja kako biste vidjeli obližnje MeshCore čvorove i brže ih dodali u svoju mrežu.", + "aToZ": "A-Ž", + "add": "Dodaj", + "addAdditionalDetails": "Dodaj dodatne detalje", + "addPeer": "Dodaj čvor", + "addPeerManually": "Ručno dodaj čvor", + "addedToContacts": "{name} dodan u kontakte", + "addedToSensors": "{name} dodan u Senzore", + "allowAll": "Dopusti sve", + "anonymousRxStats": "Anonimna RX statistika", + "appearance": "Izgled", + "ascii": "ASCII", + "baseTelemetry": "Osnovna telemetrija", + "blePin": "BLE PIN", + "buzzerAlerts": "Zvučna upozorenja", + "cancelImageReceive": "Otkaži primanje slike", + "choose": "Odaberi", + "chooseWhichTabsAndContactSectionsToShow": "Odaberite koje kartice i odjeljke kontakata prikazati", + "clearCache": "Očisti predmemoriju", + "clearHistory": "Očisti povijest", + "clearLiveView": "Očisti prikaz uživo", + "clearLogs": "Očisti zapise", + "clearOfflineCache": "Očistiti offline predmemoriju?", + "clearOverlay": "Očisti prekrivanje", + "clearRouteOnlyAfterAllRetriesFail": "Očisti rutu samo nakon što svi pokušaji ne uspiju", + "codecBitrateAndAudioProcessing": "Kodek, bitna brzina i obrada zvuka", + "connectByIpAddress": "Poveži se putem IP adrese", + "controlWhichAlertsYouReceive": "Upravljajte upozorenjima koja primate", + "copyFullHex": "Kopiraj cijeli Hex", + "copyRawResponse": "Kopiraj sirovi odgovor", + "couldNotLoadMetHistory": "Nije moguće učitati MET povijest", + "customizeSensor": "Prilagodi {name}", + "data": "Podaci", + "deleteGroup": "Izbriši grupu", + "deleteStyleConfirm": "Izbrisati {name}?", + "deleteThisDrawing": "Izbrisati ovaj {type}?", + "deny": "Odbij", + "deviceInfo": "Informacije o uređaju", + "deviceSettings": "Postavke uređaja", + "deviceTimeSynced": "Vrijeme uređaja sinkronizirano s ovim telefonom.", + "disableFastGpsPublishing": "Onemogući brzo GPS objavljivanje", + "displayMarkersAndTraceDatabase": "Prikaz, markeri i baza tragova", + "download": "Preuzmi", + "environmentalTelemetry": "Okolišna telemetrija", + "errorCheckingForUpdates": "Greška pri provjeri ažuriranja: {error}", + "errorGeneric": "Greška: {error}", + "errorOpeningDownload": "Greška pri otvaranju preuzimanja: {error}", + "exportLogs": "Izvezi zapise", + "extraAggressiveAvifCompression": "Dodatno agresivna AVIF kompresija", + "failedToAddContact": "Neuspjelo dodavanje kontakta: {error}", + "failedToAddName": "Neuspjelo dodavanje {name}: {error}", + "failedToClearChannels": "Neuspjelo brisanje kanala: {error}", + "failedToClearContacts": "Neuspjelo brisanje kontakata: {error}", + "failedToConnectViaSerial": "Neuspjelo povezivanje putem serijskog porta", + "failedToLoadPreviewImage": "Neuspjelo učitavanje slike za pregled: {error}", + "failedToLoadTrace": "Neuspjelo učitavanje traga: {error}", + "failedToSendSarMarker": "Neuspjelo slanje SAR markera: {error}", + "failedToSetBuzzerMode": "Neuspjelo postavljanje načina zujalice: {error}", + "failedToSetGpsMode": "Neuspjelo postavljanje GPS načina: {error}", + "failedToSyncDeviceTime": "Neuspjela sinkronizacija vremena uređaja: {error}", + "failedToWipeDeviceData": "Neuspjelo brisanje podataka uređaja: {error}", + "fastGpsTargetChannel": "Ciljni kanal brzog GPS-a", + "fastUpdatesThresholdsAndPermissions": "Brza ažuriranja, pragovi i dopuštenja", + "fetchingCatalog": "Dohvaćanje kataloga...", + "fifteenMinutes": "15 minuta", + "fifteenSeconds": "15 sekundi", + "filterByDirection": "Filtriraj po smjeru", + "finish": "Završi", + "fiveMinutes": "5 minuta", + "fiveSeconds": "5 sekundi", + "fix": "Fiksiranje", + "gps": "GPS", + "gpsAdvertPolicy": "Pravila GPS oglašavanja", + "gpsAndLocation": "GPS i lokacija", + "gpsDiagnostics": "GPS dijagnostika", + "gpsSection": "GPS", + "help": "Pomoć", + "hex": "Hex", + "hidden": "Skriveno", + "howTheRadioAutoAddsDiscoveredNodes": "Kako radio automatski dodaje otkrivene čvorove.", + "images": "Slike", + "importProfile": "Uvezi profil", + "lastFix": "Zadnje fiksiranje", + "latest": "Najnovije", + "latitude": "Geografska širina", + "loadASavedRegion": "Učitaj spremljenu regiju", + "loading": "Učitavanje", + "locationSharingHardwareAndUpdateInterval": "Dijeljenje lokacije, hardver i interval ažuriranja.", + "locationTelemetry": "Telemetrija lokacije", + "lockDestination": "Zaključaj odredište", + "longitude": "Geografska dužina", + "mapStyle": "Stil karte", + "max": "Maks", + "maxZoom": "Maks. zumiranje", + "messaging": "Poruke", + "metHistory": "MET povijest", + "min": "Min", + "minZoom": "Min. zumiranje", + "moveDown": "Pomakni dolje", + "moveUp": "Pomakni gore", + "multiAckMode": "Multi-ACK način", + "multiDeviceWorkspaceManagement": "Upravljanje radnim prostorom s više uređaja", + "myLocation": "Moja lokacija", + "nameAndTelemetryShared": "Ime i telemetrija dijeljeni s drugim uređajima.", + "newVersionAvailable": "Nova verzija: {version}", + "newer": "Novije", + "noNeighboursFound": "Nisu pronađeni susjedi", + "noServersFound": "Nisu pronađeni poslužitelji", + "notSet": "Nije postavljeno", + "notifications": "Obavijesti", + "offZeroSeconds": "Isključeno (0 s)", + "offlineMaps": "Offline karte", + "older": "Starije", + "oneByteMode0": "1 bajt (način 0)", + "oneHour": "1 sat", + "oneMinute": "1 minuta", + "openPacketLogs": "Otvori zapise paketa", + "packetTypeHelp": "Pomoć za vrstu paketa", + "pasteShareLinkOrHexAdvert": "Zalijepite dijeljenu vezu ili Hex oglas", + "pathHash": "Hash putanje", + "pathSize": "Veličina putanje", + "ping": "Ping", + "polygon": "Poligon", + "rawResponseCopied": "Sirovi odgovor kopiran", + "resendThroughNearestRepeaterOnFailure": "Ponovno pošalji kroz najbliži posrednik pri neuspjehu", + "resolveContact": "Razriješi kontakt", + "routingRetriesAndDestinationLock": "Usmjeravanje, pokušaji i zaključavanje odredišta", + "samples": "Uzorci", + "satellites": "Sateliti", + "saving": "Spremanje...", + "search": "Pretraži", + "searchByNameOrToken": "Pretraži po imenu ili tokenu", + "searchDiscoveredNodes": "Pretraži otkrivene čvorove", + "searchInCurrentFilter": "Pretraži u trenutnom filtru", + "searchLogs": "Pretraži zapise...", + "searchSensors": "Pretraži senzore", + "searchThisSection": "Pretraži ovaj odjeljak", + "selectedRelays": "Odabrani posrednici", + "sensor": "Senzor", + "serialError": "Serijska greška: {error}", + "setPathForContact": "Postavi putanju za {name}", + "shareLiveGps": "Dijeli GPS uživo", + "shareMyTiles": "Dijeli moje pločice", + "sharingLocationFromPhone": "Dijeljenje lokacije na ovom kanalu s telefona.", + "sharingLocationFromRadio": "Dijeljenje lokacije na ovom kanalu s radija.", + "signalDbm": "Signal {rssi} dBm", + "sizeCompressionAndPreview": "Veličina, kompresija i pregled", + "skip": "Preskoči", + "smallerFileSize": "Manja veličina datoteke", + "sort": "Sortiraj", + "stoppedSharingLocation": "Zaustavljeno dijeljenje lokacije na ovom kanalu.", + "suppressNotificationsWhileInForeground": "Utiši obavijesti dok je aplikacija u prvom planu", + "tabsAndNavigation": "Kartice i navigacija", + "templatesAndTutorials": "Predlošci i upute", + "tenMinutes": "10 minuta", + "tenSeconds": "10 sekundi", + "testSendUpdate": "Testno slanje ažuriranja", + "themeLanguageAndDisplayPreferences": "Tema, jezik i postavke prikaza", + "thirtyMinutes": "30 minuta", + "thirtySeconds": "30 sekundi", + "threeBytesMode2": "3 bajta (način 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Statistika prometa, povijest poruka i razvojni alati", + "twoBytesMode1": "2 bajta (način 1)", + "twoMinutes": "2 minute", + "undo": "Poništi", + "updated": "Ažurirano", + "useContactFlags": "Koristi zastavice kontakata", + "useSavedCoordinates": "Koristi spremljene koordinate", + "view": "Prikaži", + "viewNeighbours": "Prikaži susjede", + "viewPublicStats": "Prikaži javnu statistiku", + "setRegionScope": "Postavi opseg regije", + "regionScope": "Opseg regije", + "regionScopeNone": "Nema (globalno)", + "clearRegionScope": "Obriši opseg", + "regionScopeWarning": "Samo repetitori koji dopuštaju ovu regiju će prosljeđivati.", + "discoverRegions": "Otkrij iz repetitora", + "discoveringRegions": "Otkrivanje regija...", + "enterRegionName": "Naziv regije (npr. auckland)", + "noRegionsFound": "Nema pronađenih regija na ovom repetitoru.", + "regionScopeSet": "Opseg regije postavljen na {name}", + "regionScopeCleared": "Opseg regije obrisan" } diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index 88a8a98..ed7048a 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "Pulsante per riavviare la ricerca BLE" }, - "tapToConnect": "Tocca per connettere", - "@tapToConnect": { - "description": "Testo sottotitolo per dispositivo nell'elenco di ricerca" - }, "deviceNotConnected": "Dispositivo non connesso", "@deviceNotConnected": { "description": "Messaggio di errore quando il dispositivo non è connesso" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "Impostazione per mostrare gli indicatori RX/TX" }, - "displayPacketActivity": "Mostra indicatori di attività pacchetti nella barra superiore", - "@displayPacketActivity": { - "description": "Descrizione per l'impostazione degli indicatori RX/TX" - }, "disableMap": "Disabilita mappa", "@disableMap": { "description": "Impostazione per disabilitare la scheda mappa" }, - "disableMapDescription": "Nascondi la scheda mappa per ridurre il consumo della batteria", - "@disableMapDescription": { - "description": "Descrizione per l'impostazione di disabilitazione mappa" - }, "language": "Lingua", "@language": { "description": "Etichetta impostazione lingua" @@ -173,10 +161,6 @@ "@appVersion": { "description": "Etichetta versione app" }, - "appName": "Nome App", - "@appName": { - "description": "Etichetta nome app" - }, "aboutMeshCoreSar": "Informazioni su MeshCore SAR", "@aboutMeshCoreSar": { "description": "Titolo della finestra Informazioni" @@ -308,10 +292,6 @@ "@resetPath": { "description": "Azione per resettare il percorso del contatto per il re-instradamento" }, - "publicKeyCopied": "Chiave pubblica copiata negli appunti", - "@publicKeyCopied": { - "description": "Messaggio di successo quando la chiave pubblica viene copiata" - }, "copiedToClipboard": "{label} copiato negli appunti", "@copiedToClipboard": { "description": "Messaggio di successo quando un valore viene copiato negli appunti", @@ -720,22 +700,6 @@ "@lastSeen": { "description": "Etichetta ultima visita" }, - "roomStatus": "Stato Stanza", - "@roomStatus": { - "description": "Intestazione sezione stato stanza" - }, - "loginStatus": "Stato Accesso", - "@loginStatus": { - "description": "Etichetta stato accesso" - }, - "notLoggedIn": "Non Connesso", - "@notLoggedIn": { - "description": "Stato non connesso" - }, - "adminAccess": "Accesso Admin", - "@adminAccess": { - "description": "Etichetta accesso amministratore" - }, "yes": "Sì", "@yes": { "description": "Risposta Sì" @@ -748,14 +712,6 @@ "@permissions": { "description": "Etichetta permessi" }, - "passwordSaved": "Password Salvata", - "@passwordSaved": { - "description": "Etichetta password salvata" - }, - "locationColon": "Posizione:", - "@locationColon": { - "description": "Intestazione sezione posizione" - }, "telemetry": "Telemetria", "@telemetry": { "description": "Intestazione sezione telemetria" @@ -784,19 +740,6 @@ "@gpsTelemetry": { "description": "Etichetta GPS da telemetria" }, - "updated": "Aggiornato", - "@updated": { - "description": "Etichetta timestamp aggiornato" - }, - "pathResetInfo": "Percorso resettato per {name}. Il prossimo messaggio troverà un nuovo instradamento.", - "@pathResetInfo": { - "description": "Messaggio informativo dopo il reset del percorso", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "Riaccedi alla Stanza", "@reLoginToRoom": { "description": "Pulsante per riaccedere alla stanza" @@ -1114,10 +1057,6 @@ "@frequencyMHz": { "description": "Etichetta per il campo frequenza radio" }, - "frequencyExample": "es., 869.618", - "@frequencyExample": { - "description": "Testo di aiuto esempio per la frequenza" - }, "bandwidth": "Larghezza di Banda", "@bandwidth": { "description": "Etichetta per il menu a discesa larghezza di banda" @@ -1221,47 +1160,6 @@ "@trailControls": { "description": "Tooltip controlli traccia" }, - "contactTrails": "Tracce contatti", - "@contactTrails": { - "description": "Intestazione sezione tracce contatti" - }, - "showAllContactTrails": "Mostra tutte le tracce dei contatti", - "@showAllContactTrails": { - "description": "Etichetta dell'interruttore per mostrare tutte le tracce dei contatti" - }, - "noContactsWithLocationHistory": "Nessun contatto con cronologia posizione", - "@noContactsWithLocationHistory": { - "description": "Sottotitolo quando non ci sono contatti con tracce" - }, - "showingTrailsForContacts": "Visualizzazione tracce per {count} contatti", - "@showingTrailsForContacts": { - "description": "Sottotitolo che mostra il numero di contatti con tracce", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "Tracce individuali dei contatti", - "@individualContactTrails": { - "description": "Titolo dell'elemento espandibile per le tracce individuali dei contatti" - }, - "deviceInformation": "Informazioni Dispositivo", - "@deviceInformation": { - "description": "Intestazione sezione informazioni dispositivo" - }, - "bleName": "Nome BLE", - "@bleName": { - "description": "Etichetta nome dispositivo Bluetooth Low Energy" - }, - "meshName": "Nome Mesh", - "@meshName": { - "description": "Etichetta nome rete mesh" - }, - "notSet": "Non impostato", - "@notSet": { - "description": "Etichetta quando un valore non è impostato" - }, "model": "Modello", "@model": { "description": "Etichetta modello dispositivo" @@ -1270,14 +1168,6 @@ "@version": { "description": "Etichetta versione" }, - "buildDate": "Data Build", - "@buildDate": { - "description": "Etichetta data build firmware" - }, - "firmware": "Firmware", - "@firmware": { - "description": "Etichetta firmware" - }, "maxContacts": "Contatti Max", "@maxContacts": { "description": "Etichetta capacità massima contatti" @@ -1290,26 +1180,6 @@ "@publicInfo": { "description": "Intestazione sezione informazioni pubbliche" }, - "meshNetworkName": "Nome Rete Mesh", - "@meshNetworkName": { - "description": "Etichetta campo nome rete mesh" - }, - "nameBroadcastInMesh": "Nome trasmesso negli annunci mesh", - "@nameBroadcastInMesh": { - "description": "Testo di aiuto per il campo nome rete mesh" - }, - "telemetryAndLocationSharing": "Telemetria e Condivisione Posizione", - "@telemetryAndLocationSharing": { - "description": "Etichetta interruttore telemetria e condivisione posizione" - }, - "lat": "Lat", - "@lat": { - "description": "Etichetta campo latitudine (forma breve)" - }, - "lon": "Lon", - "@lon": { - "description": "Etichetta campo longitudine (forma breve)" - }, "useCurrentLocation": "Usa posizione attuale", "@useCurrentLocation": { "description": "Tooltip per il pulsante usa posizione attuale" @@ -1339,15 +1209,6 @@ } } }, - "copiedToClipboardShort": "Copiato {label} negli appunti", - "@copiedToClipboardShort": { - "description": "Messaggio di successo breve quando si copia negli appunti", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "Impossibile salvare: {error}", "@failedToSave": { "description": "Messaggio di errore generico per fallimenti di salvataggio", @@ -1367,7 +1228,6 @@ } }, "sarTemplates": "Modelli SAR", - "manageSarTemplates": "Gestisci modelli SAR", "addTemplate": "Aggiungi modello", "editTemplate": "Modifica modello", "deleteTemplate": "Elimina modello", @@ -1395,7 +1255,6 @@ "noTemplates": "Nessun modello disponibile", "tapAddToCreate": "Tocca + per creare il tuo primo modello", "ok": "OK", - "permissionsSection": "Permessi", "locationPermission": "Permesso di posizione", "checking": "Verifica in corso...", "locationPermissionGrantedAlways": "Concesso (Sempre)", @@ -1538,28 +1397,6 @@ "wizardNext": "Avanti", "wizardGetStarted": "Inizia", "wizardWelcomeTitle": "Benvenuto in MeshCore SAR", - "wizardWelcomeDescription": "Un potente strumento di comunicazione offline per operazioni di ricerca e soccorso. Connettiti con il tuo team usando la tecnologia radio mesh quando le reti tradizionali non sono disponibili.", - "wizardConnectingTitle": "Connessione alla Radio", - "wizardConnectingDescription": "Collega il tuo smartphone a un dispositivo radio MeshCore tramite Bluetooth per iniziare a comunicare offline.", - "wizardConnectingFeature1": "Cerca dispositivi MeshCore nelle vicinanze", - "wizardConnectingFeature2": "Accoppia con la tua radio tramite Bluetooth", - "wizardConnectingFeature3": "Funziona completamente offline - non è richiesta connessione internet", - "wizardChannelTitle": "Canali", - "wizardChannelDescription": "Trasmetti messaggi a tutti su un canale, perfetto per annunci e coordinamento di tutto il team.", - "wizardChannelFeature1": "Canale pubblico per comunicazione generale del team", - "wizardChannelFeature2": "Crea canali personalizzati per gruppi specifici", - "wizardChannelFeature3": "I messaggi vengono automaticamente inoltrati attraverso la rete mesh", - "wizardContactsTitle": "Contatti", - "wizardContactsDescription": "I membri del tuo team appaiono automaticamente quando si uniscono alla rete mesh. Invia loro messaggi diretti o visualizza la loro posizione.", - "wizardContactsFeature1": "Contatti scoperti automaticamente", - "wizardContactsFeature2": "Invia messaggi diretti privati", - "wizardContactsFeature3": "Visualizza livello batteria e ultima volta visto", - "wizardMapTitle": "Mappa & Posizione", - "wizardMapDescription": "Traccia il tuo team in tempo reale e segna posizioni importanti per operazioni di ricerca e soccorso.", - "wizardMapFeature1": "Marcatori SAR per persone trovate, incendi e aree di staging", - "wizardMapFeature2": "Tracciamento GPS in tempo reale dei membri del team", - "wizardMapFeature3": "Scarica mappe offline per aree remote", - "wizardMapFeature4": "Disegna forme e condividi informazioni tattiche", "viewWelcomeTutorial": "Visualizza tutorial di benvenuto", "allTeamContacts": "Tutti i contatti del team", "directMessagesInfo": "Messaggi diretti con conferme. Inviato a {count} membri del team.", @@ -1665,29 +1502,10 @@ "posttxDelay": "Ritardo post-tx", "bandpass": "Passa-banda", "bandpassFilterVoice": "Filtro passa-banda voce", - "frequency": "Frequenza", - "australia": "Australia", - "australiaNarrow": "Australia (Stretto)", - "australiaQld": "Australia: QLD", - "australiaSaWa": "Australia: SA, WA", - "newZealand": "Nuova Zelanda", - "newZealandNarrow": "Nuova Zelanda (Stretto)", - "switzerland": "Svizzera", - "portugal433": "Portogallo 433", - "portugal868": "Portogallo 868", - "czechRepublicNarrow": "Repubblica Ceca (Stretto)", - "eu433mhzLongRange": "UE 433MHz (Lungo Raggio)", - "euukDeprecated": "UE/UK (Deprecato)", - "euukNarrow": "UE/UK (Stretto)", - "usacanadaRecommended": "USA/Canada (Consigliato)", - "vietnamDeprecated": "Vietnam (Deprecato)", - "vietnamNarrow": "Vietnam (Stretto)", "active": "Attivo", "addContact": "Aggiungi contatto", "all": "Tutto", - "autoResolve": "Risolvi automaticamente", "clearAllLabel": "Cancella tutto", - "clearRelays": "Cancella relay", "clearFilters": "Cancella filtri", "clearRoute": "Cancella percorso", "clearMessages": "Cancella messaggi", @@ -1713,10 +1531,7 @@ "send": "Invia", "sendAnyway": "Invia comunque", "share": "Condividi", - "shareContact": "Condividi contatto", "trace": "Traccia", - "use": "Usa", - "useSelectedFrequency": "Usa frequenza selezionata", "discovery": "Scoperta", "discoverRepeaters": "Scopri ripetitori", "discoverSensors": "Scopri sensori", @@ -1739,7 +1554,6 @@ "gpsModule": "Modulo GPS", "liveTraffic": "Traffico in tempo reale", "repeatersMap": "Mappa ripetitori", - "spectrumScan": "Scansione spettro", "blePacketLogs": "Log pacchetti BLE", "onlineTraceDatabase": "Database tracce", "routePathByteSize": "Dimensione percorso in byte", @@ -1751,7 +1565,6 @@ "disableContacts": "Disabilita contatti", "enableSensorsTab": "Abilita scheda Sensori", "enableProfiles": "Abilita profili", - "autoRouteRotation": "Rotazione automatica percorso", "nearestRepeaterFallback": "Ripetitore più vicino come fallback", "deleteAllStoredMessageHistory": "Elimina tutta la cronologia messaggi", "messageFontSize": "Dimensione carattere messaggi", @@ -1759,18 +1572,13 @@ "showMapDebugInfo": "Mostra info debug mappa", "openMapInFullscreen": "Apri mappa a schermo intero", "showSarMarkersLabel": "Mostra marcatori SAR", - "displaySarMarkersOnTheMainMap": "Mostra marcatori SAR sulla mappa principale", - "showAllContactTrailsLabel": "Mostra tutti i percorsi contatti", "hideRepeatersOnMap": "Nascondi ripetitori sulla mappa", "setMapScale": "Imposta scala mappa", "customMapScaleSaved": "Scala mappa personalizzata salvata", "voiceBitrate": "Bitrate voce", "voiceCompressor": "Compressore voce", - "balancesQuietAndLoudSpeechLevels": "Bilancia i livelli di voce bassi e alti", "voiceLimiter": "Limitatore voce", - "preventsClippingPeaksBeforeEncoding": "Previene il clipping prima della codifica", "micAutoGain": "Guadagno automatico microfono", - "letsTheRecorderAdjustInputLevel": "Permette al registratore di regolare il livello", "echoCancellation": "Cancellazione eco", "noiseSuppression": "Soppressione rumore", "trimSilenceInVoiceMessages": "Taglia silenzio nei messaggi vocali", @@ -1812,13 +1620,10 @@ "staging": "Area di raccolta", "object": "Oggetto", "quiet": "Silenzioso", - "moderate": "Moderato", "busy": "Occupato", - "spectrumScanReturnedNoCandidateFrequencies": "La scansione spettro non ha trovato frequenze candidate", "searchMessages": "Cerca messaggi", "sendImageFromGallery": "Invia immagine dalla galleria", "takePhoto": "Scatta foto", - "dmOnly": "Solo messaggio diretto", "allMessages": "Tutti i messaggi", "sendToPublicChannel": "Inviare al canale pubblico?", "selectMarkerTypeAndDestination": "Seleziona tipo marcatore e destinazione", @@ -1837,8 +1642,6 @@ "wipeDevice": "Cancella dispositivo", "destructiveDeviceActions": "Azioni distruttive del dispositivo.", "chooseAPresetOrFinetuneCustomRadioSettings": "Scegli un preset o personalizza le impostazioni radio.", - "chooseTheNameAndLocationThisDeviceShares": "Scegli il nome e la posizione condivisi da questo dispositivo.", - "availableSpaceOnThisDevice": "Spazio disponibile su questo dispositivo.", "used": "Usato", "total": "Totale", "renameValue": "Rinomina valore", @@ -1856,8 +1659,6 @@ "onlineOnly": "Solo online", "inBoth": "In entrambi", "source": "Origine", - "manualRouteEdit": "Modifica manuale percorso", - "observedMeshRoute": "Percorso mesh osservato", "allMessagesCleared": "Tutti i messaggi cancellati", "onlineTraceDatabaseCleared": "Database tracce cancellata", "packetLogsCleared": "Log pacchetti cancellati", @@ -1888,5 +1689,194 @@ "captured": "Catturato", "size": "Dimensione", "noCustomChannelsToClear": "Nessun canale personalizzato da cancellare.", - "noDeviceContactsToClear": "Nessun contatto dispositivo da cancellare." + "noDeviceContactsToClear": "Nessun contatto dispositivo da cancellare.", + "autoSend": "Invio automatico", + "autoSendDescription": "Invia tramite il percorso attuale.", + "sendDirect": "Invio diretto", + "sendDirectDescription": "Invia direttamente a questo contatto.", + "sendFlood": "Invio flood", + "sendFloodDescription": "Invia tramite tutti i ripetitori.", + "postConnectDiscoveryTitle": "Scoprire i ripetitori ora?", + "postConnectDiscoveryDescription": "Esegui la scoperta dei ripetitori subito dopo la connessione per vedere i nodi MeshCore nelle vicinanze e aggiungerli alla tua rete più velocemente.", + "aToZ": "A-Z", + "add": "Aggiungi", + "addAdditionalDetails": "Aggiungi dettagli aggiuntivi", + "addPeer": "Aggiungi peer", + "addPeerManually": "Aggiungi peer manualmente", + "addedToContacts": "{name} aggiunto ai contatti", + "addedToSensors": "{name} aggiunto ai sensori", + "allowAll": "Consenti tutto", + "anonymousRxStats": "Statistiche RX anonime", + "appearance": "Aspetto", + "ascii": "ASCII", + "baseTelemetry": "Telemetria di base", + "blePin": "PIN BLE", + "buzzerAlerts": "Avvisi buzzer", + "cancelImageReceive": "Annulla ricezione immagine", + "choose": "Scegli", + "chooseWhichTabsAndContactSectionsToShow": "Scegli quali schede e sezioni contatti mostrare", + "clearCache": "Svuota cache", + "clearHistory": "Cancella cronologia", + "clearLiveView": "Cancella vista live", + "clearLogs": "Cancella log", + "clearOfflineCache": "Svuotare la cache offline?", + "clearOverlay": "Cancella sovrapposizione", + "clearRouteOnlyAfterAllRetriesFail": "Cancella il percorso solo dopo che tutti i tentativi falliscono", + "codecBitrateAndAudioProcessing": "Codec, bitrate ed elaborazione audio", + "connectByIpAddress": "Connetti tramite indirizzo IP", + "controlWhichAlertsYouReceive": "Controlla quali avvisi ricevi", + "copyFullHex": "Copia Hex completo", + "copyRawResponse": "Copia risposta grezza", + "couldNotLoadMetHistory": "Impossibile caricare la cronologia MET", + "customizeSensor": "Personalizza {name}", + "data": "Dati", + "deleteGroup": "Elimina gruppo", + "deleteStyleConfirm": "Eliminare {name}?", + "deleteThisDrawing": "Eliminare questo {type}?", + "deny": "Nega", + "deviceInfo": "Info dispositivo", + "deviceSettings": "Impostazioni dispositivo", + "deviceTimeSynced": "Ora del dispositivo sincronizzata con questo telefono.", + "disableFastGpsPublishing": "Disabilita pubblicazione GPS rapida", + "displayMarkersAndTraceDatabase": "Visualizzazione, marcatori e database tracce", + "download": "Scarica", + "environmentalTelemetry": "Telemetria ambientale", + "errorCheckingForUpdates": "Errore durante il controllo degli aggiornamenti: {error}", + "errorGeneric": "Errore: {error}", + "errorOpeningDownload": "Errore nell'apertura del download: {error}", + "exportLogs": "Esporta log", + "extraAggressiveAvifCompression": "Compressione AVIF extra aggressiva", + "failedToAddContact": "Impossibile aggiungere il contatto: {error}", + "failedToAddName": "Impossibile aggiungere {name}: {error}", + "failedToClearChannels": "Impossibile cancellare i canali: {error}", + "failedToClearContacts": "Impossibile cancellare i contatti: {error}", + "failedToConnectViaSerial": "Impossibile connettersi tramite seriale", + "failedToLoadPreviewImage": "Impossibile caricare l'anteprima: {error}", + "failedToLoadTrace": "Impossibile caricare la traccia: {error}", + "failedToSendSarMarker": "Impossibile inviare il marcatore SAR: {error}", + "failedToSetBuzzerMode": "Impossibile impostare la modalità buzzer: {error}", + "failedToSetGpsMode": "Impossibile impostare la modalità GPS: {error}", + "failedToSyncDeviceTime": "Impossibile sincronizzare l'ora del dispositivo: {error}", + "failedToWipeDeviceData": "Impossibile cancellare i dati del dispositivo: {error}", + "fastGpsTargetChannel": "Canale target GPS rapido", + "fastUpdatesThresholdsAndPermissions": "Aggiornamenti rapidi, soglie e permessi", + "fetchingCatalog": "Recupero catalogo...", + "fifteenMinutes": "15 minuti", + "fifteenSeconds": "15 secondi", + "filterByDirection": "Filtra per direzione", + "finish": "Fine", + "fiveMinutes": "5 minuti", + "fiveSeconds": "5 secondi", + "fix": "Fix", + "gps": "GPS", + "gpsAdvertPolicy": "Politica annunci GPS", + "gpsAndLocation": "GPS e posizione", + "gpsDiagnostics": "Diagnostica GPS", + "gpsSection": "GPS", + "help": "Aiuto", + "hex": "Hex", + "hidden": "Nascosto", + "howTheRadioAutoAddsDiscoveredNodes": "Come la radio aggiunge automaticamente i nodi scoperti.", + "images": "Immagini", + "importProfile": "Importa profilo", + "lastFix": "Ultimo fix", + "latest": "Più recente", + "latitude": "Latitudine", + "loadASavedRegion": "Carica una regione salvata", + "loading": "Caricamento", + "locationSharingHardwareAndUpdateInterval": "Condivisione posizione, hardware e intervallo di aggiornamento.", + "locationTelemetry": "Telemetria posizione", + "lockDestination": "Blocca destinazione", + "longitude": "Longitudine", + "mapStyle": "Stile mappa", + "max": "Max", + "maxZoom": "Zoom max", + "messaging": "Messaggistica", + "metHistory": "Cronologia MET", + "min": "Min", + "minZoom": "Zoom min", + "moveDown": "Sposta giù", + "moveUp": "Sposta su", + "multiAckMode": "Modalità multi-ACK", + "multiDeviceWorkspaceManagement": "Gestione spazio di lavoro multi-dispositivo", + "myLocation": "La mia posizione", + "nameAndTelemetryShared": "Nome e telemetria condivisi con altri dispositivi.", + "newVersionAvailable": "Nuova versione: {version}", + "newer": "Più recente", + "noNeighboursFound": "Nessun vicino trovato", + "noServersFound": "Nessun server trovato", + "notSet": "Non impostato", + "notifications": "Notifiche", + "offZeroSeconds": "Off (0 s)", + "offlineMaps": "Mappe offline", + "older": "Meno recente", + "oneByteMode0": "1 byte (modo 0)", + "oneHour": "1 ora", + "oneMinute": "1 minuto", + "openPacketLogs": "Apri log pacchetti", + "packetTypeHelp": "Guida tipi di pacchetto", + "pasteShareLinkOrHexAdvert": "Incolla un link di condivisione o annuncio Hex", + "pathHash": "Hash percorso", + "pathSize": "Dimensione percorso", + "ping": "Ping", + "polygon": "Poligono", + "rawResponseCopied": "Risposta grezza copiata", + "resendThroughNearestRepeaterOnFailure": "Rinvia tramite il ripetitore più vicino in caso di errore", + "resolveContact": "Risolvi contatto", + "routingRetriesAndDestinationLock": "Instradamento, tentativi e blocco destinazione", + "samples": "Campioni", + "satellites": "Satelliti", + "saving": "Salvataggio...", + "search": "Cerca", + "searchByNameOrToken": "Cerca per nome o token", + "searchDiscoveredNodes": "Cerca nodi scoperti", + "searchInCurrentFilter": "Cerca nel filtro corrente", + "searchLogs": "Cerca nei log...", + "searchSensors": "Cerca sensori", + "searchThisSection": "Cerca in questa sezione", + "selectedRelays": "Ripetitori selezionati", + "sensor": "Sensore", + "serialError": "Errore seriale: {error}", + "setPathForContact": "Imposta percorso per {name}", + "shareLiveGps": "Condividi GPS in tempo reale", + "shareMyTiles": "Condividi le mie tile", + "sharingLocationFromPhone": "Condivisione posizione su questo canale dal telefono.", + "sharingLocationFromRadio": "Condivisione posizione su questo canale dalla radio.", + "signalDbm": "Segnale {rssi} dBm", + "sizeCompressionAndPreview": "Dimensione, compressione e anteprima", + "skip": "Salta", + "smallerFileSize": "Dimensione file ridotta", + "sort": "Ordina", + "stoppedSharingLocation": "Condivisione posizione interrotta su questo canale.", + "suppressNotificationsWhileInForeground": "Disattiva notifiche quando l'app è in primo piano", + "tabsAndNavigation": "Schede e navigazione", + "templatesAndTutorials": "Modelli e tutorial", + "tenMinutes": "10 minuti", + "tenSeconds": "10 secondi", + "testSendUpdate": "Prova invio aggiornamento", + "themeLanguageAndDisplayPreferences": "Tema, lingua e preferenze di visualizzazione", + "thirtyMinutes": "30 minuti", + "thirtySeconds": "30 secondi", + "threeBytesMode2": "3 byte (modo 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Statistiche traffico, cronologia messaggi e strumenti sviluppatore", + "twoBytesMode1": "2 byte (modo 1)", + "twoMinutes": "2 minuti", + "undo": "Annulla", + "updated": "Aggiornato", + "useContactFlags": "Usa flag contatti", + "useSavedCoordinates": "Usa coordinate salvate", + "view": "Visualizza", + "viewNeighbours": "Visualizza vicini", + "viewPublicStats": "Visualizza statistiche pubbliche", + "setRegionScope": "Imposta ambito regionale", + "regionScope": "Ambito regionale", + "regionScopeNone": "Nessuno (globale)", + "clearRegionScope": "Cancella ambito", + "regionScopeWarning": "Solo i ripetitori che consentono questa regione inoltreranno.", + "discoverRegions": "Scopri dai ripetitori", + "discoveringRegions": "Scoperta delle regioni...", + "enterRegionName": "Nome regione (es. auckland)", + "noRegionsFound": "Nessuna regione trovata su questo ripetitore.", + "regionScopeSet": "Ambito regionale impostato su {name}", + "regionScopeCleared": "Ambito regionale cancellato" } diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 2cddd4b..f64b762 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -176,12 +176,6 @@ abstract class AppLocalizations { /// **'Scan Again'** String get scanAgain; - /// Subtitle text for device in scan list - /// - /// In en, this message translates to: - /// **'Tap to connect'** - String get tapToConnect; - /// Error message when device is not connected /// /// In en, this message translates to: @@ -314,24 +308,12 @@ abstract class AppLocalizations { /// **'Show RX/TX Indicators'** String get showRxTxIndicators; - /// Description for RX/TX indicators setting - /// - /// In en, this message translates to: - /// **'Display packet activity indicators in top bar'** - String get displayPacketActivity; - /// Setting to disable the map tab /// /// In en, this message translates to: /// **'Disable Map'** String get disableMap; - /// Description for disable map setting - /// - /// In en, this message translates to: - /// **'Hide the map tab to reduce battery usage'** - String get disableMapDescription; - /// Language setting label /// /// In en, this message translates to: @@ -374,12 +356,6 @@ abstract class AppLocalizations { /// **'App Version'** String get appVersion; - /// App name label - /// - /// In en, this message translates to: - /// **'App Name'** - String get appName; - /// About dialog title /// /// In en, this message translates to: @@ -541,12 +517,6 @@ abstract class AppLocalizations { /// **'Reset Path (Re-route)'** String get resetPath; - /// Success message when public key is copied - /// - /// In en, this message translates to: - /// **'Public key copied to clipboard'** - String get publicKeyCopied; - /// Success message when a value is copied to clipboard /// /// In en, this message translates to: @@ -1057,30 +1027,6 @@ abstract class AppLocalizations { /// **'Last Seen'** String get lastSeen; - /// Room status section header - /// - /// In en, this message translates to: - /// **'Room Status'** - String get roomStatus; - - /// Login status label - /// - /// In en, this message translates to: - /// **'Login Status'** - String get loginStatus; - - /// Not logged in status - /// - /// In en, this message translates to: - /// **'Not Logged In'** - String get notLoggedIn; - - /// Admin access label - /// - /// In en, this message translates to: - /// **'Admin Access'** - String get adminAccess; - /// Yes answer /// /// In en, this message translates to: @@ -1099,18 +1045,6 @@ abstract class AppLocalizations { /// **'Permissions'** String get permissions; - /// Password saved label - /// - /// In en, this message translates to: - /// **'Password Saved'** - String get passwordSaved; - - /// Location section header - /// - /// In en, this message translates to: - /// **'Location:'** - String get locationColon; - /// Telemetry section header /// /// In en, this message translates to: @@ -1153,18 +1087,6 @@ abstract class AppLocalizations { /// **'GPS (Telemetry)'** String get gpsTelemetry; - /// Updated timestamp label - /// - /// In en, this message translates to: - /// **'Updated'** - String get updated; - - /// Info message after path reset - /// - /// In en, this message translates to: - /// **'Path reset for {name}. Next message will find a new route.'** - String pathResetInfo(String name); - /// Button to re-login to room /// /// In en, this message translates to: @@ -1614,12 +1536,6 @@ abstract class AppLocalizations { /// **'Frequency (MHz)'** String get frequencyMHz; - /// Helper text example for frequency - /// - /// In en, this message translates to: - /// **'e.g., 869.618'** - String get frequencyExample; - /// Label for bandwidth dropdown /// /// In en, this message translates to: @@ -1752,60 +1668,6 @@ abstract class AppLocalizations { /// **'Trail Controls'** String get trailControls; - /// Contact trails section header - /// - /// In en, this message translates to: - /// **'Contact Trails'** - String get contactTrails; - - /// Toggle label to show all contact trails - /// - /// In en, this message translates to: - /// **'Show All Contact Trails'** - String get showAllContactTrails; - - /// Subtitle when no contacts have trails - /// - /// In en, this message translates to: - /// **'No contacts with location history'** - String get noContactsWithLocationHistory; - - /// Subtitle showing number of contacts with trails - /// - /// In en, this message translates to: - /// **'Showing trails for {count} contacts'** - String showingTrailsForContacts(int count); - - /// Expansion tile title for individual contact trails - /// - /// In en, this message translates to: - /// **'Individual Contact Trails'** - String get individualContactTrails; - - /// Device information section header - /// - /// In en, this message translates to: - /// **'Device Information'** - String get deviceInformation; - - /// Bluetooth Low Energy device name label - /// - /// In en, this message translates to: - /// **'BLE Name'** - String get bleName; - - /// Mesh network name label - /// - /// In en, this message translates to: - /// **'Mesh Name'** - String get meshName; - - /// Label when a value is not set - /// - /// In en, this message translates to: - /// **'Not set'** - String get notSet; - /// Device model label /// /// In en, this message translates to: @@ -1818,18 +1680,6 @@ abstract class AppLocalizations { /// **'Version'** String get version; - /// Firmware build date label - /// - /// In en, this message translates to: - /// **'Build Date'** - String get buildDate; - - /// Firmware label - /// - /// In en, this message translates to: - /// **'Firmware'** - String get firmware; - /// Maximum contacts capacity label /// /// In en, this message translates to: @@ -1848,36 +1698,6 @@ abstract class AppLocalizations { /// **'Public Info'** String get publicInfo; - /// Mesh network name field label - /// - /// In en, this message translates to: - /// **'Mesh Network Name'** - String get meshNetworkName; - - /// Helper text for mesh network name field - /// - /// In en, this message translates to: - /// **'Name broadcast in mesh advertisements'** - String get nameBroadcastInMesh; - - /// Telemetry and location sharing toggle label - /// - /// In en, this message translates to: - /// **'Telemetry & Location Sharing'** - String get telemetryAndLocationSharing; - - /// Latitude field label (short form) - /// - /// In en, this message translates to: - /// **'Lat'** - String get lat; - - /// Longitude field label (short form) - /// - /// In en, this message translates to: - /// **'Lon'** - String get lon; - /// Tooltip for use current location button /// /// In en, this message translates to: @@ -1914,12 +1734,6 @@ abstract class AppLocalizations { /// **'Type {number}'** String typeNumber(int number); - /// Short success message when copying to clipboard - /// - /// In en, this message translates to: - /// **'Copied {label} to clipboard'** - String copiedToClipboardShort(String label); - /// Generic error message for save failures /// /// In en, this message translates to: @@ -1938,12 +1752,6 @@ abstract class AppLocalizations { /// **'SAR Templates'** String get sarTemplates; - /// Subtitle for SAR templates settings - /// - /// In en, this message translates to: - /// **'Manage cursor on target templates'** - String get manageSarTemplates; - /// Button to add new SAR template /// /// In en, this message translates to: @@ -2106,12 +1914,6 @@ abstract class AppLocalizations { /// **'OK'** String get ok; - /// Permissions section header - /// - /// In en, this message translates to: - /// **'Permissions'** - String get permissionsSection; - /// Location permission label /// /// In en, this message translates to: @@ -2928,138 +2730,6 @@ abstract class AppLocalizations { /// **'Welcome to MeshCore SAR'** String get wizardWelcomeTitle; - /// Welcome wizard first page description - /// - /// In en, this message translates to: - /// **'A powerful off-grid communication tool for search and rescue operations. Connect with your team using mesh radio technology when traditional networks are unavailable.'** - String get wizardWelcomeDescription; - - /// Wizard connecting page title - /// - /// In en, this message translates to: - /// **'Connecting to Your Radio'** - String get wizardConnectingTitle; - - /// Wizard connecting page description - /// - /// In en, this message translates to: - /// **'Connect your smartphone to a MeshCore radio device via Bluetooth to start communicating off-grid.'** - String get wizardConnectingDescription; - - /// Wizard connecting feature 1 - /// - /// In en, this message translates to: - /// **'Scan for nearby MeshCore devices'** - String get wizardConnectingFeature1; - - /// Wizard connecting feature 2 - /// - /// In en, this message translates to: - /// **'Pair with your radio via Bluetooth'** - String get wizardConnectingFeature2; - - /// Wizard connecting feature 3 - /// - /// In en, this message translates to: - /// **'Works completely offline - no internet required'** - String get wizardConnectingFeature3; - - /// Wizard channel page title - /// - /// In en, this message translates to: - /// **'Channels'** - String get wizardChannelTitle; - - /// Wizard channel page description - /// - /// In en, this message translates to: - /// **'Broadcast messages to everyone on a channel, perfect for team-wide announcements and coordination.'** - String get wizardChannelDescription; - - /// Wizard channel feature 1 - /// - /// In en, this message translates to: - /// **'Public Channel for general team communication'** - String get wizardChannelFeature1; - - /// Wizard channel feature 2 - /// - /// In en, this message translates to: - /// **'Create custom channels for specific groups'** - String get wizardChannelFeature2; - - /// Wizard channel feature 3 - /// - /// In en, this message translates to: - /// **'Messages are automatically relayed by the mesh'** - String get wizardChannelFeature3; - - /// Wizard contacts page title - /// - /// In en, this message translates to: - /// **'Contacts'** - String get wizardContactsTitle; - - /// Wizard contacts page description - /// - /// In en, this message translates to: - /// **'Your team members appear automatically as they join the mesh network. Send them direct messages or view their location.'** - String get wizardContactsDescription; - - /// Wizard contacts feature 1 - /// - /// In en, this message translates to: - /// **'Contacts discovered automatically'** - String get wizardContactsFeature1; - - /// Wizard contacts feature 2 - /// - /// In en, this message translates to: - /// **'Send private direct messages'** - String get wizardContactsFeature2; - - /// Wizard contacts feature 3 - /// - /// In en, this message translates to: - /// **'View battery level and last seen time'** - String get wizardContactsFeature3; - - /// Wizard map page title - /// - /// In en, this message translates to: - /// **'Map & Location'** - String get wizardMapTitle; - - /// Wizard map page description - /// - /// In en, this message translates to: - /// **'Track your team in real-time and mark important locations for search and rescue operations.'** - String get wizardMapDescription; - - /// Wizard map feature 1 - /// - /// In en, this message translates to: - /// **'SAR markers for found persons, fires, and staging areas'** - String get wizardMapFeature1; - - /// Wizard map feature 2 - /// - /// In en, this message translates to: - /// **'Real-time GPS tracking of team members'** - String get wizardMapFeature2; - - /// Wizard map feature 3 - /// - /// In en, this message translates to: - /// **'Download offline maps for remote areas'** - String get wizardMapFeature3; - - /// Wizard map feature 4 - /// - /// In en, this message translates to: - /// **'Draw shapes and share tactical information'** - String get wizardMapFeature4; - /// Settings option to re-show welcome wizard /// /// In en, this message translates to: @@ -3702,108 +3372,6 @@ abstract class AppLocalizations { /// **'Band-pass filter voice'** String get bandpassFilterVoice; - /// No description provided for @frequency. - /// - /// In en, this message translates to: - /// **'Frequency'** - String get frequency; - - /// No description provided for @australia. - /// - /// In en, this message translates to: - /// **'Australia'** - String get australia; - - /// No description provided for @australiaNarrow. - /// - /// In en, this message translates to: - /// **'Australia (Narrow)'** - String get australiaNarrow; - - /// No description provided for @australiaQld. - /// - /// In en, this message translates to: - /// **'Australia: QLD'** - String get australiaQld; - - /// No description provided for @australiaSaWa. - /// - /// In en, this message translates to: - /// **'Australia: SA, WA'** - String get australiaSaWa; - - /// No description provided for @newZealand. - /// - /// In en, this message translates to: - /// **'New Zealand'** - String get newZealand; - - /// No description provided for @newZealandNarrow. - /// - /// In en, this message translates to: - /// **'New Zealand (Narrow)'** - String get newZealandNarrow; - - /// No description provided for @switzerland. - /// - /// In en, this message translates to: - /// **'Switzerland'** - String get switzerland; - - /// No description provided for @portugal433. - /// - /// In en, this message translates to: - /// **'Portugal 433'** - String get portugal433; - - /// No description provided for @portugal868. - /// - /// In en, this message translates to: - /// **'Portugal 868'** - String get portugal868; - - /// No description provided for @czechRepublicNarrow. - /// - /// In en, this message translates to: - /// **'Czech Republic (Narrow)'** - String get czechRepublicNarrow; - - /// No description provided for @eu433mhzLongRange. - /// - /// In en, this message translates to: - /// **'EU 433MHz (Long Range)'** - String get eu433mhzLongRange; - - /// No description provided for @euukDeprecated. - /// - /// In en, this message translates to: - /// **'EU/UK (Deprecated)'** - String get euukDeprecated; - - /// No description provided for @euukNarrow. - /// - /// In en, this message translates to: - /// **'EU/UK (Narrow)'** - String get euukNarrow; - - /// No description provided for @usacanadaRecommended. - /// - /// In en, this message translates to: - /// **'USA/Canada (Recommended)'** - String get usacanadaRecommended; - - /// No description provided for @vietnamDeprecated. - /// - /// In en, this message translates to: - /// **'Vietnam (Deprecated)'** - String get vietnamDeprecated; - - /// No description provided for @vietnamNarrow. - /// - /// In en, this message translates to: - /// **'Vietnam (Narrow)'** - String get vietnamNarrow; - /// No description provided for @active. /// /// In en, this message translates to: @@ -3822,24 +3390,12 @@ abstract class AppLocalizations { /// **'All'** String get all; - /// No description provided for @autoResolve. - /// - /// In en, this message translates to: - /// **'Auto resolve'** - String get autoResolve; - /// No description provided for @clearAllLabel. /// /// In en, this message translates to: /// **'Clear all'** String get clearAllLabel; - /// No description provided for @clearRelays. - /// - /// In en, this message translates to: - /// **'Clear relays'** - String get clearRelays; - /// No description provided for @clearFilters. /// /// In en, this message translates to: @@ -3990,30 +3546,12 @@ abstract class AppLocalizations { /// **'Share'** String get share; - /// No description provided for @shareContact. - /// - /// In en, this message translates to: - /// **'Share Contact'** - String get shareContact; - /// No description provided for @trace. /// /// In en, this message translates to: /// **'Trace'** String get trace; - /// No description provided for @use. - /// - /// In en, this message translates to: - /// **'Use'** - String get use; - - /// No description provided for @useSelectedFrequency. - /// - /// In en, this message translates to: - /// **'Use selected frequency'** - String get useSelectedFrequency; - /// No description provided for @discovery. /// /// In en, this message translates to: @@ -4146,12 +3684,6 @@ abstract class AppLocalizations { /// **'Repeaters Map'** String get repeatersMap; - /// No description provided for @spectrumScan. - /// - /// In en, this message translates to: - /// **'Spectrum Scan'** - String get spectrumScan; - /// No description provided for @blePacketLogs. /// /// In en, this message translates to: @@ -4218,12 +3750,6 @@ abstract class AppLocalizations { /// **'Enable Profiles'** String get enableProfiles; - /// No description provided for @autoRouteRotation. - /// - /// In en, this message translates to: - /// **'Auto route rotation'** - String get autoRouteRotation; - /// No description provided for @nearestRepeaterFallback. /// /// In en, this message translates to: @@ -4266,18 +3792,6 @@ abstract class AppLocalizations { /// **'Show SAR markers'** String get showSarMarkersLabel; - /// No description provided for @displaySarMarkersOnTheMainMap. - /// - /// In en, this message translates to: - /// **'Display SAR markers on the main map'** - String get displaySarMarkersOnTheMainMap; - - /// No description provided for @showAllContactTrailsLabel. - /// - /// In en, this message translates to: - /// **'Show all contact trails'** - String get showAllContactTrailsLabel; - /// No description provided for @hideRepeatersOnMap. /// /// In en, this message translates to: @@ -4308,36 +3822,18 @@ abstract class AppLocalizations { /// **'Voice compressor'** String get voiceCompressor; - /// No description provided for @balancesQuietAndLoudSpeechLevels. - /// - /// In en, this message translates to: - /// **'Balances quiet and loud speech levels'** - String get balancesQuietAndLoudSpeechLevels; - /// No description provided for @voiceLimiter. /// /// In en, this message translates to: /// **'Voice limiter'** String get voiceLimiter; - /// No description provided for @preventsClippingPeaksBeforeEncoding. - /// - /// In en, this message translates to: - /// **'Prevents clipping peaks before encoding'** - String get preventsClippingPeaksBeforeEncoding; - /// No description provided for @micAutoGain. /// /// In en, this message translates to: /// **'Mic auto gain'** String get micAutoGain; - /// No description provided for @letsTheRecorderAdjustInputLevel. - /// - /// In en, this message translates to: - /// **'Lets the recorder adjust input level'** - String get letsTheRecorderAdjustInputLevel; - /// No description provided for @echoCancellation. /// /// In en, this message translates to: @@ -4584,24 +4080,12 @@ abstract class AppLocalizations { /// **'Quiet'** String get quiet; - /// No description provided for @moderate. - /// - /// In en, this message translates to: - /// **'Moderate'** - String get moderate; - /// No description provided for @busy. /// /// In en, this message translates to: /// **'Busy'** String get busy; - /// No description provided for @spectrumScanReturnedNoCandidateFrequencies. - /// - /// In en, this message translates to: - /// **'Spectrum scan returned no candidate frequencies'** - String get spectrumScanReturnedNoCandidateFrequencies; - /// No description provided for @searchMessages. /// /// In en, this message translates to: @@ -4620,12 +4104,6 @@ abstract class AppLocalizations { /// **'Take photo'** String get takePhoto; - /// No description provided for @dmOnly. - /// - /// In en, this message translates to: - /// **'DM only'** - String get dmOnly; - /// No description provided for @allMessages. /// /// In en, this message translates to: @@ -4734,18 +4212,6 @@ abstract class AppLocalizations { /// **'Choose a preset or fine-tune custom radio settings.'** String get chooseAPresetOrFinetuneCustomRadioSettings; - /// No description provided for @chooseTheNameAndLocationThisDeviceShares. - /// - /// In en, this message translates to: - /// **'Choose the name and location this device shares.'** - String get chooseTheNameAndLocationThisDeviceShares; - - /// No description provided for @availableSpaceOnThisDevice. - /// - /// In en, this message translates to: - /// **'Available space on this device.'** - String get availableSpaceOnThisDevice; - /// No description provided for @used. /// /// In en, this message translates to: @@ -4848,18 +4314,6 @@ abstract class AppLocalizations { /// **'Source'** String get source; - /// No description provided for @manualRouteEdit. - /// - /// In en, this message translates to: - /// **'Manual route edit'** - String get manualRouteEdit; - - /// No description provided for @observedMeshRoute. - /// - /// In en, this message translates to: - /// **'Observed mesh route'** - String get observedMeshRoute; - /// No description provided for @allMessagesCleared. /// /// In en, this message translates to: @@ -5046,6 +4500,1026 @@ abstract class AppLocalizations { /// **'No device contacts to clear.'** String get noDeviceContactsToClear; + /// No description provided for @aToZ. + /// + /// In en, this message translates to: + /// **'A-Z'** + String get aToZ; + + /// No description provided for @add. + /// + /// In en, this message translates to: + /// **'Add'** + String get add; + + /// No description provided for @addAdditionalDetails. + /// + /// In en, this message translates to: + /// **'Add additional details'** + String get addAdditionalDetails; + + /// No description provided for @addPeer. + /// + /// In en, this message translates to: + /// **'Add Peer'** + String get addPeer; + + /// No description provided for @addPeerManually. + /// + /// In en, this message translates to: + /// **'Add peer manually'** + String get addPeerManually; + + /// No description provided for @addedToContacts. + /// + /// In en, this message translates to: + /// **'{name} added to contacts'** + String addedToContacts(String name); + + /// No description provided for @addedToSensors. + /// + /// In en, this message translates to: + /// **'{name} added to Sensors'** + String addedToSensors(String name); + + /// No description provided for @allowAll. + /// + /// In en, this message translates to: + /// **'Allow all'** + String get allowAll; + + /// No description provided for @anonymousRxStats. + /// + /// In en, this message translates to: + /// **'Anonymous RX stats'** + String get anonymousRxStats; + + /// No description provided for @appearance. + /// + /// In en, this message translates to: + /// **'Appearance'** + String get appearance; + + /// No description provided for @ascii. + /// + /// In en, this message translates to: + /// **'ASCII'** + String get ascii; + + /// No description provided for @baseTelemetry. + /// + /// In en, this message translates to: + /// **'Base telemetry'** + String get baseTelemetry; + + /// No description provided for @blePin. + /// + /// In en, this message translates to: + /// **'BLE PIN'** + String get blePin; + + /// No description provided for @buzzerAlerts. + /// + /// In en, this message translates to: + /// **'Buzzer alerts'** + String get buzzerAlerts; + + /// No description provided for @cancelImageReceive. + /// + /// In en, this message translates to: + /// **'Cancel image receive'** + String get cancelImageReceive; + + /// No description provided for @choose. + /// + /// In en, this message translates to: + /// **'Choose'** + String get choose; + + /// No description provided for @chooseWhichTabsAndContactSectionsToShow. + /// + /// In en, this message translates to: + /// **'Choose which tabs and contact sections to show'** + String get chooseWhichTabsAndContactSectionsToShow; + + /// No description provided for @clearCache. + /// + /// In en, this message translates to: + /// **'Clear cache'** + String get clearCache; + + /// No description provided for @clearHistory. + /// + /// In en, this message translates to: + /// **'Clear history'** + String get clearHistory; + + /// No description provided for @clearLiveView. + /// + /// In en, this message translates to: + /// **'Clear live view'** + String get clearLiveView; + + /// No description provided for @clearLogs. + /// + /// In en, this message translates to: + /// **'Clear logs'** + String get clearLogs; + + /// No description provided for @clearOfflineCache. + /// + /// In en, this message translates to: + /// **'Clear offline cache?'** + String get clearOfflineCache; + + /// No description provided for @clearOverlay. + /// + /// In en, this message translates to: + /// **'Clear overlay'** + String get clearOverlay; + + /// No description provided for @clearRouteOnlyAfterAllRetriesFail. + /// + /// In en, this message translates to: + /// **'Clear route only after all retries fail'** + String get clearRouteOnlyAfterAllRetriesFail; + + /// No description provided for @codecBitrateAndAudioProcessing. + /// + /// In en, this message translates to: + /// **'Codec, bitrate, and audio processing'** + String get codecBitrateAndAudioProcessing; + + /// No description provided for @connectByIpAddress. + /// + /// In en, this message translates to: + /// **'Connect by IP address'** + String get connectByIpAddress; + + /// No description provided for @controlWhichAlertsYouReceive. + /// + /// In en, this message translates to: + /// **'Control which alerts you receive'** + String get controlWhichAlertsYouReceive; + + /// No description provided for @copyFullHex. + /// + /// In en, this message translates to: + /// **'Copy full hex'** + String get copyFullHex; + + /// No description provided for @copyRawResponse. + /// + /// In en, this message translates to: + /// **'Copy raw response'** + String get copyRawResponse; + + /// No description provided for @couldNotLoadMetHistory. + /// + /// In en, this message translates to: + /// **'Could not load MET history'** + String get couldNotLoadMetHistory; + + /// No description provided for @customizeSensor. + /// + /// In en, this message translates to: + /// **'Customize {name}'** + String customizeSensor(String name); + + /// No description provided for @data. + /// + /// In en, this message translates to: + /// **'Data'** + String get data; + + /// No description provided for @deleteGroup. + /// + /// In en, this message translates to: + /// **'Delete group'** + String get deleteGroup; + + /// No description provided for @deleteStyleConfirm. + /// + /// In en, this message translates to: + /// **'Delete {name}?'** + String deleteStyleConfirm(String name); + + /// No description provided for @deleteThisDrawing. + /// + /// In en, this message translates to: + /// **'Delete this {type}?'** + String deleteThisDrawing(String type); + + /// No description provided for @deny. + /// + /// In en, this message translates to: + /// **'Deny'** + String get deny; + + /// No description provided for @deviceInfo. + /// + /// In en, this message translates to: + /// **'Device info'** + String get deviceInfo; + + /// No description provided for @deviceSettings. + /// + /// In en, this message translates to: + /// **'Device Settings'** + String get deviceSettings; + + /// No description provided for @deviceTimeSynced. + /// + /// In en, this message translates to: + /// **'Device time synced to this phone.'** + String get deviceTimeSynced; + + /// No description provided for @disableFastGpsPublishing. + /// + /// In en, this message translates to: + /// **'Disable fast GPS publishing'** + String get disableFastGpsPublishing; + + /// No description provided for @displayMarkersAndTraceDatabase. + /// + /// In en, this message translates to: + /// **'Display, markers, and trace database'** + String get displayMarkersAndTraceDatabase; + + /// No description provided for @download. + /// + /// In en, this message translates to: + /// **'Download'** + String get download; + + /// No description provided for @environmentalTelemetry. + /// + /// In en, this message translates to: + /// **'Environmental telemetry'** + String get environmentalTelemetry; + + /// No description provided for @errorCheckingForUpdates. + /// + /// In en, this message translates to: + /// **'Error checking for updates: {error}'** + String errorCheckingForUpdates(String error); + + /// No description provided for @errorGeneric. + /// + /// In en, this message translates to: + /// **'Error: {error}'** + String errorGeneric(String error); + + /// No description provided for @errorOpeningDownload. + /// + /// In en, this message translates to: + /// **'Error opening download: {error}'** + String errorOpeningDownload(String error); + + /// No description provided for @exportLogs. + /// + /// In en, this message translates to: + /// **'Export logs'** + String get exportLogs; + + /// No description provided for @extraAggressiveAvifCompression. + /// + /// In en, this message translates to: + /// **'Extra-aggressive AVIF compression'** + String get extraAggressiveAvifCompression; + + /// No description provided for @failedToAddContact. + /// + /// In en, this message translates to: + /// **'Failed to add contact: {error}'** + String failedToAddContact(String error); + + /// No description provided for @failedToAddName. + /// + /// In en, this message translates to: + /// **'Failed to add {name}: {error}'** + String failedToAddName(String name, String error); + + /// No description provided for @failedToClearChannels. + /// + /// In en, this message translates to: + /// **'Failed to clear channels: {error}'** + String failedToClearChannels(String error); + + /// No description provided for @failedToClearContacts. + /// + /// In en, this message translates to: + /// **'Failed to clear contacts: {error}'** + String failedToClearContacts(String error); + + /// No description provided for @failedToConnectViaSerial. + /// + /// In en, this message translates to: + /// **'Failed to connect via serial'** + String get failedToConnectViaSerial; + + /// No description provided for @failedToLoadPreviewImage. + /// + /// In en, this message translates to: + /// **'Failed to load preview image: {error}'** + String failedToLoadPreviewImage(String error); + + /// No description provided for @failedToLoadTrace. + /// + /// In en, this message translates to: + /// **'Failed to load trace: {error}'** + String failedToLoadTrace(String error); + + /// No description provided for @failedToSendSarMarker. + /// + /// In en, this message translates to: + /// **'Failed to send SAR marker: {error}'** + String failedToSendSarMarker(String error); + + /// No description provided for @failedToSetBuzzerMode. + /// + /// In en, this message translates to: + /// **'Failed to set buzzer mode: {error}'** + String failedToSetBuzzerMode(String error); + + /// No description provided for @failedToSetGpsMode. + /// + /// In en, this message translates to: + /// **'Failed to set GPS mode: {error}'** + String failedToSetGpsMode(String error); + + /// No description provided for @failedToSyncDeviceTime. + /// + /// In en, this message translates to: + /// **'Failed to sync device time: {error}'** + String failedToSyncDeviceTime(String error); + + /// No description provided for @failedToWipeDeviceData. + /// + /// In en, this message translates to: + /// **'Failed to wipe device data: {error}'** + String failedToWipeDeviceData(String error); + + /// No description provided for @fastGpsTargetChannel. + /// + /// In en, this message translates to: + /// **'Fast GPS target channel'** + String get fastGpsTargetChannel; + + /// No description provided for @fastUpdatesThresholdsAndPermissions. + /// + /// In en, this message translates to: + /// **'Fast updates, thresholds, and permissions'** + String get fastUpdatesThresholdsAndPermissions; + + /// No description provided for @fetchingCatalog. + /// + /// In en, this message translates to: + /// **'Fetching catalog...'** + String get fetchingCatalog; + + /// No description provided for @fifteenMinutes. + /// + /// In en, this message translates to: + /// **'15 minutes'** + String get fifteenMinutes; + + /// No description provided for @fifteenSeconds. + /// + /// In en, this message translates to: + /// **'15 seconds'** + String get fifteenSeconds; + + /// No description provided for @filterByDirection. + /// + /// In en, this message translates to: + /// **'Filter by direction'** + String get filterByDirection; + + /// No description provided for @finish. + /// + /// In en, this message translates to: + /// **'Finish'** + String get finish; + + /// No description provided for @fiveMinutes. + /// + /// In en, this message translates to: + /// **'5 minutes'** + String get fiveMinutes; + + /// No description provided for @fiveSeconds. + /// + /// In en, this message translates to: + /// **'5 seconds'** + String get fiveSeconds; + + /// No description provided for @fix. + /// + /// In en, this message translates to: + /// **'Fix'** + String get fix; + + /// No description provided for @gps. + /// + /// In en, this message translates to: + /// **'GPS'** + String get gps; + + /// No description provided for @gpsAdvertPolicy. + /// + /// In en, this message translates to: + /// **'GPS advert policy'** + String get gpsAdvertPolicy; + + /// No description provided for @gpsAndLocation. + /// + /// In en, this message translates to: + /// **'GPS & Location'** + String get gpsAndLocation; + + /// No description provided for @gpsDiagnostics. + /// + /// In en, this message translates to: + /// **'GPS diagnostics'** + String get gpsDiagnostics; + + /// No description provided for @gpsSection. + /// + /// In en, this message translates to: + /// **'GPS'** + String get gpsSection; + + /// No description provided for @help. + /// + /// In en, this message translates to: + /// **'Help'** + String get help; + + /// No description provided for @hex. + /// + /// In en, this message translates to: + /// **'Hex'** + String get hex; + + /// No description provided for @hidden. + /// + /// In en, this message translates to: + /// **'Hidden'** + String get hidden; + + /// No description provided for @howTheRadioAutoAddsDiscoveredNodes. + /// + /// In en, this message translates to: + /// **'How the radio auto-adds discovered nodes.'** + String get howTheRadioAutoAddsDiscoveredNodes; + + /// No description provided for @images. + /// + /// In en, this message translates to: + /// **'Images'** + String get images; + + /// No description provided for @importProfile. + /// + /// In en, this message translates to: + /// **'Import profile'** + String get importProfile; + + /// No description provided for @lastFix. + /// + /// In en, this message translates to: + /// **'Last fix'** + String get lastFix; + + /// No description provided for @latest. + /// + /// In en, this message translates to: + /// **'Latest'** + String get latest; + + /// No description provided for @latitude. + /// + /// In en, this message translates to: + /// **'Latitude'** + String get latitude; + + /// No description provided for @loadASavedRegion. + /// + /// In en, this message translates to: + /// **'Load a saved region'** + String get loadASavedRegion; + + /// No description provided for @loading. + /// + /// In en, this message translates to: + /// **'Loading'** + String get loading; + + /// No description provided for @locationSharingHardwareAndUpdateInterval. + /// + /// In en, this message translates to: + /// **'Location sharing, hardware, and update interval.'** + String get locationSharingHardwareAndUpdateInterval; + + /// No description provided for @locationTelemetry. + /// + /// In en, this message translates to: + /// **'Location telemetry'** + String get locationTelemetry; + + /// No description provided for @lockDestination. + /// + /// In en, this message translates to: + /// **'Lock destination'** + String get lockDestination; + + /// No description provided for @longitude. + /// + /// In en, this message translates to: + /// **'Longitude'** + String get longitude; + + /// No description provided for @mapStyle. + /// + /// In en, this message translates to: + /// **'Map Style'** + String get mapStyle; + + /// No description provided for @max. + /// + /// In en, this message translates to: + /// **'Max'** + String get max; + + /// No description provided for @maxZoom. + /// + /// In en, this message translates to: + /// **'Max Zoom'** + String get maxZoom; + + /// No description provided for @messaging. + /// + /// In en, this message translates to: + /// **'Messaging'** + String get messaging; + + /// No description provided for @metHistory. + /// + /// In en, this message translates to: + /// **'MET history'** + String get metHistory; + + /// No description provided for @min. + /// + /// In en, this message translates to: + /// **'Min'** + String get min; + + /// No description provided for @minZoom. + /// + /// In en, this message translates to: + /// **'Min Zoom'** + String get minZoom; + + /// No description provided for @moveDown. + /// + /// In en, this message translates to: + /// **'Move down'** + String get moveDown; + + /// No description provided for @moveUp. + /// + /// In en, this message translates to: + /// **'Move up'** + String get moveUp; + + /// No description provided for @multiAckMode. + /// + /// In en, this message translates to: + /// **'Multi-ACK mode'** + String get multiAckMode; + + /// No description provided for @multiDeviceWorkspaceManagement. + /// + /// In en, this message translates to: + /// **'Multi-device workspace management'** + String get multiDeviceWorkspaceManagement; + + /// No description provided for @myLocation. + /// + /// In en, this message translates to: + /// **'My location'** + String get myLocation; + + /// No description provided for @nameAndTelemetryShared. + /// + /// In en, this message translates to: + /// **'Name and telemetry shared with other devices.'** + String get nameAndTelemetryShared; + + /// No description provided for @newVersionAvailable. + /// + /// In en, this message translates to: + /// **'New version: {version}'** + String newVersionAvailable(String version); + + /// No description provided for @newer. + /// + /// In en, this message translates to: + /// **'Newer'** + String get newer; + + /// No description provided for @noNeighboursFound. + /// + /// In en, this message translates to: + /// **'No neighbours found'** + String get noNeighboursFound; + + /// No description provided for @noServersFound. + /// + /// In en, this message translates to: + /// **'No servers found'** + String get noServersFound; + + /// No description provided for @notSet. + /// + /// In en, this message translates to: + /// **'Not set'** + String get notSet; + + /// No description provided for @notifications. + /// + /// In en, this message translates to: + /// **'Notifications'** + String get notifications; + + /// No description provided for @offZeroSeconds. + /// + /// In en, this message translates to: + /// **'Off (0 s)'** + String get offZeroSeconds; + + /// No description provided for @offlineMaps. + /// + /// In en, this message translates to: + /// **'Offline Maps'** + String get offlineMaps; + + /// No description provided for @older. + /// + /// In en, this message translates to: + /// **'Older'** + String get older; + + /// No description provided for @oneByteMode0. + /// + /// In en, this message translates to: + /// **'1 byte (mode 0)'** + String get oneByteMode0; + + /// No description provided for @oneHour. + /// + /// In en, this message translates to: + /// **'1 hour'** + String get oneHour; + + /// No description provided for @oneMinute. + /// + /// In en, this message translates to: + /// **'1 minute'** + String get oneMinute; + + /// No description provided for @openPacketLogs. + /// + /// In en, this message translates to: + /// **'Open packet logs'** + String get openPacketLogs; + + /// No description provided for @packetTypeHelp. + /// + /// In en, this message translates to: + /// **'Packet type help'** + String get packetTypeHelp; + + /// No description provided for @pasteShareLinkOrHexAdvert. + /// + /// In en, this message translates to: + /// **'Paste a share link or hex advert'** + String get pasteShareLinkOrHexAdvert; + + /// No description provided for @pathHash. + /// + /// In en, this message translates to: + /// **'Path hash'** + String get pathHash; + + /// No description provided for @pathSize. + /// + /// In en, this message translates to: + /// **'Path size'** + String get pathSize; + + /// No description provided for @ping. + /// + /// In en, this message translates to: + /// **'Ping'** + String get ping; + + /// No description provided for @polygon. + /// + /// In en, this message translates to: + /// **'Polygon'** + String get polygon; + + /// No description provided for @rawResponseCopied. + /// + /// In en, this message translates to: + /// **'Raw response copied'** + String get rawResponseCopied; + + /// No description provided for @resendThroughNearestRepeaterOnFailure. + /// + /// In en, this message translates to: + /// **'Resend through nearest repeater on failure'** + String get resendThroughNearestRepeaterOnFailure; + + /// No description provided for @resolveContact. + /// + /// In en, this message translates to: + /// **'Resolve contact'** + String get resolveContact; + + /// No description provided for @routingRetriesAndDestinationLock. + /// + /// In en, this message translates to: + /// **'Routing, retries, and destination lock'** + String get routingRetriesAndDestinationLock; + + /// No description provided for @samples. + /// + /// In en, this message translates to: + /// **'Samples'** + String get samples; + + /// No description provided for @satellites. + /// + /// In en, this message translates to: + /// **'Satellites'** + String get satellites; + + /// No description provided for @saving. + /// + /// In en, this message translates to: + /// **'Saving...'** + String get saving; + + /// No description provided for @search. + /// + /// In en, this message translates to: + /// **'Search'** + String get search; + + /// No description provided for @searchByNameOrToken. + /// + /// In en, this message translates to: + /// **'Search by name or token'** + String get searchByNameOrToken; + + /// No description provided for @searchDiscoveredNodes. + /// + /// In en, this message translates to: + /// **'Search discovered nodes'** + String get searchDiscoveredNodes; + + /// No description provided for @searchInCurrentFilter. + /// + /// In en, this message translates to: + /// **'Search in current filter'** + String get searchInCurrentFilter; + + /// No description provided for @searchLogs. + /// + /// In en, this message translates to: + /// **'Search logs...'** + String get searchLogs; + + /// No description provided for @searchSensors. + /// + /// In en, this message translates to: + /// **'Search sensors'** + String get searchSensors; + + /// No description provided for @searchThisSection. + /// + /// In en, this message translates to: + /// **'Search this section'** + String get searchThisSection; + + /// No description provided for @selectedRelays. + /// + /// In en, this message translates to: + /// **'Selected relays'** + String get selectedRelays; + + /// No description provided for @sensor. + /// + /// In en, this message translates to: + /// **'Sensor'** + String get sensor; + + /// No description provided for @serialError. + /// + /// In en, this message translates to: + /// **'Serial error: {error}'** + String serialError(String error); + + /// No description provided for @setPathForContact. + /// + /// In en, this message translates to: + /// **'Set Path for {name}'** + String setPathForContact(String name); + + /// No description provided for @shareLiveGps. + /// + /// In en, this message translates to: + /// **'Share live GPS'** + String get shareLiveGps; + + /// No description provided for @shareMyTiles. + /// + /// In en, this message translates to: + /// **'Share my tiles'** + String get shareMyTiles; + + /// No description provided for @sharingLocationFromPhone. + /// + /// In en, this message translates to: + /// **'Sharing location on this channel from the phone.'** + String get sharingLocationFromPhone; + + /// No description provided for @sharingLocationFromRadio. + /// + /// In en, this message translates to: + /// **'Sharing location on this channel from the radio.'** + String get sharingLocationFromRadio; + + /// No description provided for @signalDbm. + /// + /// In en, this message translates to: + /// **'Signal {rssi} dBm'** + String signalDbm(String rssi); + + /// No description provided for @sizeCompressionAndPreview. + /// + /// In en, this message translates to: + /// **'Size, compression, and preview'** + String get sizeCompressionAndPreview; + + /// No description provided for @skip. + /// + /// In en, this message translates to: + /// **'Skip'** + String get skip; + + /// No description provided for @smallerFileSize. + /// + /// In en, this message translates to: + /// **'Smaller file size'** + String get smallerFileSize; + + /// No description provided for @sort. + /// + /// In en, this message translates to: + /// **'Sort'** + String get sort; + + /// No description provided for @stoppedSharingLocation. + /// + /// In en, this message translates to: + /// **'Stopped sharing location on this channel.'** + String get stoppedSharingLocation; + + /// No description provided for @suppressNotificationsWhileInForeground. + /// + /// In en, this message translates to: + /// **'Suppress notifications while in foreground'** + String get suppressNotificationsWhileInForeground; + + /// No description provided for @tabsAndNavigation. + /// + /// In en, this message translates to: + /// **'Tabs & Navigation'** + String get tabsAndNavigation; + + /// No description provided for @templatesAndTutorials. + /// + /// In en, this message translates to: + /// **'Templates and tutorials'** + String get templatesAndTutorials; + + /// No description provided for @tenMinutes. + /// + /// In en, this message translates to: + /// **'10 minutes'** + String get tenMinutes; + + /// No description provided for @tenSeconds. + /// + /// In en, this message translates to: + /// **'10 seconds'** + String get tenSeconds; + + /// No description provided for @testSendUpdate. + /// + /// In en, this message translates to: + /// **'Test send update'** + String get testSendUpdate; + + /// No description provided for @themeLanguageAndDisplayPreferences. + /// + /// In en, this message translates to: + /// **'Theme, language, and display preferences'** + String get themeLanguageAndDisplayPreferences; + + /// No description provided for @thirtyMinutes. + /// + /// In en, this message translates to: + /// **'30 minutes'** + String get thirtyMinutes; + + /// No description provided for @thirtySeconds. + /// + /// In en, this message translates to: + /// **'30 seconds'** + String get thirtySeconds; + + /// No description provided for @threeBytesMode2. + /// + /// In en, this message translates to: + /// **'3 bytes (mode 2)'** + String get threeBytesMode2; + + /// No description provided for @trafficStatsMessageHistoryAndDeveloperTools. + /// + /// In en, this message translates to: + /// **'Traffic stats, message history, and developer tools'** + String get trafficStatsMessageHistoryAndDeveloperTools; + + /// No description provided for @twoBytesMode1. + /// + /// In en, this message translates to: + /// **'2 bytes (mode 1)'** + String get twoBytesMode1; + + /// No description provided for @twoMinutes. + /// + /// In en, this message translates to: + /// **'2 minutes'** + String get twoMinutes; + + /// No description provided for @undo. + /// + /// In en, this message translates to: + /// **'Undo'** + String get undo; + + /// No description provided for @updated. + /// + /// In en, this message translates to: + /// **'Updated'** + String get updated; + + /// No description provided for @useContactFlags. + /// + /// In en, this message translates to: + /// **'Use contact flags'** + String get useContactFlags; + + /// No description provided for @useSavedCoordinates. + /// + /// In en, this message translates to: + /// **'Use saved coordinates'** + String get useSavedCoordinates; + + /// No description provided for @view. + /// + /// In en, this message translates to: + /// **'View'** + String get view; + + /// No description provided for @viewNeighbours. + /// + /// In en, this message translates to: + /// **'View Neighbours'** + String get viewNeighbours; + + /// No description provided for @viewPublicStats. + /// + /// In en, this message translates to: + /// **'View public stats'** + String get viewPublicStats; + /// No description provided for @setRegionScope. /// /// In en, this message translates to: diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index 899d9d1..b01e4f4 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -35,9 +35,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get scanAgain => 'Erneut scannen'; - @override - String get tapToConnect => 'Zum Verbinden tippen'; - @override String get deviceNotConnected => 'Gerät nicht verbunden'; @@ -110,17 +107,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get showRxTxIndicators => 'RX/TX-Indikatoren anzeigen'; - @override - String get displayPacketActivity => - 'Paketaktivitätsindikatoren in der oberen Leiste anzeigen'; - @override String get disableMap => 'Karte deaktivieren'; - @override - String get disableMapDescription => - 'Karten-Tab ausblenden, um Akku zu sparen'; - @override String get language => 'Sprache'; @@ -142,9 +131,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get appVersion => 'App-Version'; - @override - String get appName => 'App-Name'; - @override String get aboutMeshCoreSar => 'Über MeshCore SAR'; @@ -241,10 +227,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get resetPath => 'Pfad zurücksetzen (Umleitung)'; - @override - String get publicKeyCopied => - 'Öffentlicher Schlüssel in die Zwischenablage kopiert'; - @override String copiedToClipboard(String label) { return '$label in die Zwischenablage kopiert'; @@ -482,22 +464,22 @@ class AppLocalizationsDe extends AppLocalizations { String get flood => 'Flut'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Automatisch senden'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Über aktuellen Pfad senden.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Direkt senden'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Direkt an diesen Kontakt senden.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Per Flutung senden'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Über alle Repeater senden.'; @override String get loggedIn => 'Angemeldet'; @@ -537,18 +519,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get lastSeen => 'Zuletzt gesehen'; - @override - String get roomStatus => 'Raumstatus'; - - @override - String get loginStatus => 'Anmeldestatus'; - - @override - String get notLoggedIn => 'Nicht angemeldet'; - - @override - String get adminAccess => 'Admin-Zugriff'; - @override String get yes => 'Ja'; @@ -558,12 +528,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get permissions => 'Berechtigungen'; - @override - String get passwordSaved => 'Passwort gespeichert'; - - @override - String get locationColon => 'Standort:'; - @override String get telemetry => 'Telemetrie'; @@ -585,14 +549,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get gpsTelemetry => 'GPS (Telemetrie)'; - @override - String get updated => 'Aktualisiert'; - - @override - String pathResetInfo(String name) { - return 'Pfad zurückgesetzt für $name. Nächste Nachricht findet eine neue Route.'; - } - @override String get reLoginToRoom => 'Erneut bei Raum anmelden'; @@ -845,9 +801,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get frequencyMHz => 'Frequenz (MHz)'; - @override - String get frequencyExample => 'z.B. 869.618'; - @override String get bandwidth => 'Bandbreite'; @@ -923,48 +876,12 @@ class AppLocalizationsDe extends AppLocalizations { @override String get trailControls => 'Verlaufssteuerung'; - @override - String get contactTrails => 'Kontaktverläufe'; - - @override - String get showAllContactTrails => 'Alle Kontaktverläufe anzeigen'; - - @override - String get noContactsWithLocationHistory => - 'Keine Kontakte mit Standortverlauf'; - - @override - String showingTrailsForContacts(int count) { - return 'Verläufe für $count Kontakte anzeigen'; - } - - @override - String get individualContactTrails => 'Einzelne Kontaktverläufe'; - - @override - String get deviceInformation => 'Geräteinformationen'; - - @override - String get bleName => 'BLE-Name'; - - @override - String get meshName => 'Mesh-Name'; - - @override - String get notSet => 'Nicht festgelegt'; - @override String get model => 'Modell'; @override String get version => 'Version'; - @override - String get buildDate => 'Build-Datum'; - - @override - String get firmware => 'Firmware'; - @override String get maxContacts => 'Max. Kontakte'; @@ -974,22 +891,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get publicInfo => 'Öffentliche Informationen'; - @override - String get meshNetworkName => 'Mesh-Netzwerkname'; - - @override - String get nameBroadcastInMesh => - 'Name, der in Mesh-Sendungen übertragen wird'; - - @override - String get telemetryAndLocationSharing => 'Telemetrie & Standortfreigabe'; - - @override - String get lat => 'Breite'; - - @override - String get lon => 'Lange'; - @override String get useCurrentLocation => 'Aktuellen Standort verwenden'; @@ -1010,11 +911,6 @@ class AppLocalizationsDe extends AppLocalizations { return 'Typ $number'; } - @override - String copiedToClipboardShort(String label) { - return '$label in Zwischenablage kopiert'; - } - @override String failedToSave(String error) { return 'Fehler beim Speichern: $error'; @@ -1028,9 +924,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get sarTemplates => 'SAR-Vorlagen'; - @override - String get manageSarTemplates => 'SAR-Vorlagen verwalten'; - @override String get addTemplate => 'Vorlage hinzufügen'; @@ -1133,9 +1026,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get ok => 'OK'; - @override - String get permissionsSection => 'Berechtigungen'; - @override String get locationPermission => 'Standortberechtigung'; @@ -1576,88 +1466,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get wizardWelcomeTitle => 'Willkommen bei MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Ein leistungsstarkes Offline-Kommunikationstool für Such- und Rettungseinsätze. Verbinden Sie sich mit Ihrem Team über Mesh-Funktechnologie, wenn herkömmliche Netzwerke nicht verfügbar sind.'; - - @override - String get wizardConnectingTitle => 'Verbindung zum Radio'; - - @override - String get wizardConnectingDescription => - 'Verbinden Sie Ihr Smartphone über Bluetooth mit einem MeshCore-Funkgerät, um offline zu kommunizieren.'; - - @override - String get wizardConnectingFeature1 => - 'Nach MeshCore-Geräten in der Nähe suchen'; - - @override - String get wizardConnectingFeature2 => - 'Mit Ihrem Funkgerät über Bluetooth koppeln'; - - @override - String get wizardConnectingFeature3 => - 'Funktioniert vollständig offline - kein Internet erforderlich'; - - @override - String get wizardChannelTitle => 'Kanäle'; - - @override - String get wizardChannelDescription => - 'Senden Sie Nachrichten an alle auf einem Kanal, perfekt für teamweite Ankündigungen und Koordination.'; - - @override - String get wizardChannelFeature1 => - 'Öffentlicher Kanal für allgemeine Teamkommunikation'; - - @override - String get wizardChannelFeature2 => - 'Erstellen Sie benutzerdefinierte Kanäle für bestimmte Gruppen'; - - @override - String get wizardChannelFeature3 => - 'Nachrichten werden automatisch über das Mesh weitergeleitet'; - - @override - String get wizardContactsTitle => 'Kontakte'; - - @override - String get wizardContactsDescription => - 'Ihre Teammitglieder erscheinen automatisch, wenn sie dem Mesh-Netzwerk beitreten. Senden Sie ihnen direkte Nachrichten oder sehen Sie ihren Standort.'; - - @override - String get wizardContactsFeature1 => 'Kontakte werden automatisch erkannt'; - - @override - String get wizardContactsFeature2 => 'Private Direktnachrichten senden'; - - @override - String get wizardContactsFeature3 => - 'Batteriestand und letzte Aktivität anzeigen'; - - @override - String get wizardMapTitle => 'Karte & Standort'; - - @override - String get wizardMapDescription => - 'Verfolgen Sie Ihr Team in Echtzeit und markieren Sie wichtige Standorte für Such- und Rettungseinsätze.'; - - @override - String get wizardMapFeature1 => - 'SAR-Markierungen für gefundene Personen, Feuer und Sammelstellen'; - - @override - String get wizardMapFeature2 => - 'GPS-Verfolgung von Teammitgliedern in Echtzeit'; - - @override - String get wizardMapFeature3 => - 'Offline-Karten für entlegene Gebiete herunterladen'; - - @override - String get wizardMapFeature4 => - 'Formen zeichnen und taktische Informationen teilen'; - @override String get viewWelcomeTutorial => 'Willkommens-Tutorial ansehen'; @@ -1917,11 +1725,11 @@ class AppLocalizationsDe extends AppLocalizations { 'Nutze Paketprotokolle, Spektrumsuche und Entwicklerdiagnosen zur Fehlersuche im Mesh.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Repeater jetzt entdecken?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Repeater-Erkennung direkt nach dem Verbinden ausführen, damit Sie nahegelegene MeshCore-Knoten sehen und schneller zu Ihrem Netzwerk hinzufügen können.'; @override String get contactInSensors => 'In Sensoren'; @@ -2024,57 +1832,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get bandpassFilterVoice => 'Bandpassfilter Sprache'; - @override - String get frequency => 'Frequenz'; - - @override - String get australia => 'Australien'; - - @override - String get australiaNarrow => 'Australien (Schmal)'; - - @override - String get australiaQld => 'Australien: QLD'; - - @override - String get australiaSaWa => 'Australien: SA, WA'; - - @override - String get newZealand => 'Neuseeland'; - - @override - String get newZealandNarrow => 'Neuseeland (Schmal)'; - - @override - String get switzerland => 'Schweiz'; - - @override - String get portugal433 => 'Portugal 433'; - - @override - String get portugal868 => 'Portugal 868'; - - @override - String get czechRepublicNarrow => 'Tschechien (Schmal)'; - - @override - String get eu433mhzLongRange => 'EU 433MHz (Langstrecke)'; - - @override - String get euukDeprecated => 'EU/UK (Veraltet)'; - - @override - String get euukNarrow => 'EU/UK (Schmal)'; - - @override - String get usacanadaRecommended => 'USA/Kanada (Empfohlen)'; - - @override - String get vietnamDeprecated => 'Vietnam (Veraltet)'; - - @override - String get vietnamNarrow => 'Vietnam (Schmal)'; - @override String get active => 'Aktiv'; @@ -2084,15 +1841,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get all => 'Alle'; - @override - String get autoResolve => 'Automatisch auflösen'; - @override String get clearAllLabel => 'Alle löschen'; - @override - String get clearRelays => 'Relais löschen'; - @override String get clearFilters => 'Filter löschen'; @@ -2168,18 +1919,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get share => 'Teilen'; - @override - String get shareContact => 'Kontakt teilen'; - @override String get trace => 'Trace'; - @override - String get use => 'Verwenden'; - - @override - String get useSelectedFrequency => 'Ausgewählte Frequenz verwenden'; - @override String get discovery => 'Erkennung'; @@ -2247,9 +1989,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get repeatersMap => 'Repeater-Karte'; - @override - String get spectrumScan => 'Spektrum-Scan'; - @override String get blePacketLogs => 'BLE-Paketprotokolle'; @@ -2283,9 +2022,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get enableProfiles => 'Profile aktivieren'; - @override - String get autoRouteRotation => 'Automatische Routenrotation'; - @override String get nearestRepeaterFallback => 'Nächster Repeater als Fallback'; @@ -2308,13 +2044,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get showSarMarkersLabel => 'SAR-Markierungen anzeigen'; - @override - String get displaySarMarkersOnTheMainMap => - 'SAR-Markierungen auf der Hauptkarte anzeigen'; - - @override - String get showAllContactTrailsLabel => 'Alle Kontaktpfade anzeigen'; - @override String get hideRepeatersOnMap => 'Repeater auf Karte ausblenden'; @@ -2331,24 +2060,12 @@ class AppLocalizationsDe extends AppLocalizations { @override String get voiceCompressor => 'Sprachkompressor'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Gleicht leise und laute Sprache aus'; - @override String get voiceLimiter => 'Sprach-Limiter'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Verhindert Clipping-Spitzen vor der Kodierung'; - @override String get micAutoGain => 'Mikrofon-Automatik'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Lässt den Rekorder den Eingangspegel anpassen'; - @override String get echoCancellation => 'Echounterdrückung'; @@ -2480,16 +2197,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get quiet => 'Ruhig'; - @override - String get moderate => 'Mäßig'; - @override String get busy => 'Beschäftigt'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'Spektrum-Scan hat keine Kandidatenfrequenzen gefunden'; - @override String get searchMessages => 'Nachrichten suchen'; @@ -2499,9 +2209,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get takePhoto => 'Foto aufnehmen'; - @override - String get dmOnly => 'Nur Direktnachricht'; - @override String get allMessages => 'Alle Nachrichten'; @@ -2558,14 +2265,6 @@ class AppLocalizationsDe extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Wählen Sie eine Voreinstellung oder passen Sie die Funkeinstellungen an.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Wählen Sie den Namen und Standort, den dieses Gerät teilt.'; - - @override - String get availableSpaceOnThisDevice => - 'Verfügbarer Speicherplatz auf diesem Gerät.'; - @override String get used => 'Belegt'; @@ -2619,12 +2318,6 @@ class AppLocalizationsDe extends AppLocalizations { @override String get source => 'Quelle'; - @override - String get manualRouteEdit => 'Manuelle Routenbearbeitung'; - - @override - String get observedMeshRoute => 'Beobachtete Mesh-Route'; - @override String get allMessagesCleared => 'Alle Nachrichten gelöscht'; @@ -2725,38 +2418,618 @@ class AppLocalizationsDe extends AppLocalizations { String get noDeviceContactsToClear => 'Keine Gerätekontakte zum Löschen.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Z'; @override - String get regionScope => 'Region scope'; + String get add => 'Hinzufügen'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Zusätzliche Details hinzufügen'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Peer hinzufügen'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Peer manuell hinzufügen'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name zu Kontakten hinzugefügt'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name zu Sensoren hinzugefügt'; + } + + @override + String get allowAll => 'Alle zulassen'; + + @override + String get anonymousRxStats => 'Anonyme RX-Statistiken'; + + @override + String get appearance => 'Erscheinungsbild'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Basistelemetrie'; + + @override + String get blePin => 'BLE PIN'; + + @override + String get buzzerAlerts => 'Summer-Alarme'; + + @override + String get cancelImageReceive => 'Bildempfang abbrechen'; + + @override + String get choose => 'Auswählen'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Wähle, welche Tabs und Kontaktbereiche angezeigt werden'; + + @override + String get clearCache => 'Cache leeren'; + + @override + String get clearHistory => 'Verlauf löschen'; + + @override + String get clearLiveView => 'Live-Ansicht leeren'; + + @override + String get clearLogs => 'Protokolle löschen'; + + @override + String get clearOfflineCache => 'Offline-Cache leeren?'; + + @override + String get clearOverlay => 'Overlay löschen'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Route erst nach allen fehlgeschlagenen Versuchen löschen'; + + @override + String get codecBitrateAndAudioProcessing => + 'Codec, Bitrate und Audioverarbeitung'; + + @override + String get connectByIpAddress => 'Über IP-Adresse verbinden'; + + @override + String get controlWhichAlertsYouReceive => + 'Steuere, welche Benachrichtigungen du erhältst'; + + @override + String get copyFullHex => 'Vollständigen Hex kopieren'; + + @override + String get copyRawResponse => 'Rohantwort kopieren'; + + @override + String get couldNotLoadMetHistory => + 'MET-Verlauf konnte nicht geladen werden'; + + @override + String customizeSensor(String name) { + return '$name anpassen'; + } + + @override + String get data => 'Daten'; + + @override + String get deleteGroup => 'Gruppe löschen'; + + @override + String deleteStyleConfirm(String name) { + return '$name löschen?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Diese(s) $type löschen?'; + } + + @override + String get deny => 'Ablehnen'; + + @override + String get deviceInfo => 'Geräteinformationen'; + + @override + String get deviceSettings => 'Geräteeinstellungen'; + + @override + String get deviceTimeSynced => + 'Gerätezeit mit diesem Telefon synchronisiert.'; + + @override + String get disableFastGpsPublishing => + 'Schnelle GPS-Veröffentlichung deaktivieren'; + + @override + String get displayMarkersAndTraceDatabase => + 'Anzeige, Markierungen und Trace-Datenbank'; + + @override + String get download => 'Herunterladen'; + + @override + String get environmentalTelemetry => 'Umwelttelemetrie'; + + @override + String errorCheckingForUpdates(String error) { + return 'Fehler bei der Suche nach Updates: $error'; + } + + @override + String errorGeneric(String error) { + return 'Fehler: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Fehler beim Öffnen des Downloads: $error'; + } + + @override + String get exportLogs => 'Protokolle exportieren'; + + @override + String get extraAggressiveAvifCompression => + 'Extra-aggressive AVIF-Komprimierung'; + + @override + String failedToAddContact(String error) { + return 'Kontakt konnte nicht hinzugefügt werden: $error'; + } + + @override + String failedToAddName(String name, String error) { + return '$name konnte nicht hinzugefügt werden: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Kanäle konnten nicht gelöscht werden: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Kontakte konnten nicht gelöscht werden: $error'; + } + + @override + String get failedToConnectViaSerial => + 'Verbindung über seriell fehlgeschlagen'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Vorschaubild konnte nicht geladen werden: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Trace konnte nicht geladen werden: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'SAR-Markierung konnte nicht gesendet werden: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Summermodus konnte nicht gesetzt werden: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'GPS-Modus konnte nicht gesetzt werden: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Gerätezeit konnte nicht synchronisiert werden: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Gerätedaten konnten nicht gelöscht werden: $error'; + } + + @override + String get fastGpsTargetChannel => 'Schneller GPS-Zielkanal'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Schnelle Updates, Schwellenwerte und Berechtigungen'; + + @override + String get fetchingCatalog => 'Katalog wird geladen...'; + + @override + String get fifteenMinutes => '15 Minuten'; + + @override + String get fifteenSeconds => '15 Sekunden'; + + @override + String get filterByDirection => 'Nach Richtung filtern'; + + @override + String get finish => 'Fertig'; + + @override + String get fiveMinutes => '5 Minuten'; + + @override + String get fiveSeconds => '5 Sekunden'; + + @override + String get fix => 'Fix'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'GPS-Anzeigenrichtlinie'; + + @override + String get gpsAndLocation => 'GPS & Standort'; + + @override + String get gpsDiagnostics => 'GPS-Diagnose'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Hilfe'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Ausgeblendet'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Wie das Funkgerät entdeckte Knoten automatisch hinzufügt.'; + + @override + String get images => 'Bilder'; + + @override + String get importProfile => 'Profil importieren'; + + @override + String get lastFix => 'Letzter Fix'; + + @override + String get latest => 'Neueste'; + + @override + String get latitude => 'Breitengrad'; + + @override + String get loadASavedRegion => 'Gespeicherte Region laden'; + + @override + String get loading => 'Laden'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Standortfreigabe, Hardware und Aktualisierungsintervall.'; + + @override + String get locationTelemetry => 'Standorttelemetrie'; + + @override + String get lockDestination => 'Ziel sperren'; + + @override + String get longitude => 'Längengrad'; + + @override + String get mapStyle => 'Kartenstil'; + + @override + String get max => 'Max'; + + @override + String get maxZoom => 'Max. Zoom'; + + @override + String get messaging => 'Nachrichten'; + + @override + String get metHistory => 'MET-Verlauf'; + + @override + String get min => 'Min'; + + @override + String get minZoom => 'Min. Zoom'; + + @override + String get moveDown => 'Nach unten'; + + @override + String get moveUp => 'Nach oben'; + + @override + String get multiAckMode => 'Multi-ACK-Modus'; + + @override + String get multiDeviceWorkspaceManagement => + 'Mehrgeräte-Arbeitsbereichsverwaltung'; + + @override + String get myLocation => 'Mein Standort'; + + @override + String get nameAndTelemetryShared => + 'Name und Telemetrie werden mit anderen Geräten geteilt.'; + + @override + String newVersionAvailable(String version) { + return 'Neue Version: $version'; + } + + @override + String get newer => 'Neuer'; + + @override + String get noNeighboursFound => 'Keine Nachbarn gefunden'; + + @override + String get noServersFound => 'Keine Server gefunden'; + + @override + String get notSet => 'Nicht gesetzt'; + + @override + String get notifications => 'Benachrichtigungen'; + + @override + String get offZeroSeconds => 'Aus (0 s)'; + + @override + String get offlineMaps => 'Offlinekarten'; + + @override + String get older => 'Älter'; + + @override + String get oneByteMode0 => '1 Byte (Modus 0)'; + + @override + String get oneHour => '1 Stunde'; + + @override + String get oneMinute => '1 Minute'; + + @override + String get openPacketLogs => 'Paketprotokolle öffnen'; + + @override + String get packetTypeHelp => 'Pakettyp-Hilfe'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Teilen-Link oder Hex-Anzeige einfügen'; + + @override + String get pathHash => 'Pfad-Hash'; + + @override + String get pathSize => 'Pfadgröße'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Polygon'; + + @override + String get rawResponseCopied => 'Rohantwort kopiert'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Bei Fehler über nächsten Repeater erneut senden'; + + @override + String get resolveContact => 'Kontakt auflösen'; + + @override + String get routingRetriesAndDestinationLock => + 'Routing, Wiederholungsversuche und Zielsperre'; + + @override + String get samples => 'Proben'; + + @override + String get satellites => 'Satelliten'; + + @override + String get saving => 'Speichern...'; + + @override + String get search => 'Suchen'; + + @override + String get searchByNameOrToken => 'Nach Name oder Token suchen'; + + @override + String get searchDiscoveredNodes => 'Entdeckte Knoten suchen'; + + @override + String get searchInCurrentFilter => 'Im aktuellen Filter suchen'; + + @override + String get searchLogs => 'Protokolle durchsuchen...'; + + @override + String get searchSensors => 'Sensoren suchen'; + + @override + String get searchThisSection => 'Diesen Bereich durchsuchen'; + + @override + String get selectedRelays => 'Ausgewählte Relais'; + + @override + String get sensor => 'Sensor'; + + @override + String serialError(String error) { + return 'Serieller Fehler: $error'; + } + + @override + String setPathForContact(String name) { + return 'Pfad für $name festlegen'; + } + + @override + String get shareLiveGps => 'Live-GPS teilen'; + + @override + String get shareMyTiles => 'Meine Kacheln teilen'; + + @override + String get sharingLocationFromPhone => + 'Standort auf diesem Kanal vom Telefon wird geteilt.'; + + @override + String get sharingLocationFromRadio => + 'Standort auf diesem Kanal vom Funkgerät wird geteilt.'; + + @override + String signalDbm(String rssi) { + return 'Signal $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => 'Größe, Komprimierung und Vorschau'; + + @override + String get skip => 'Überspringen'; + + @override + String get smallerFileSize => 'Kleinere Dateigröße'; + + @override + String get sort => 'Sortieren'; + + @override + String get stoppedSharingLocation => + 'Standortfreigabe auf diesem Kanal beendet.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Benachrichtigungen im Vordergrund unterdrücken'; + + @override + String get tabsAndNavigation => 'Tabs & Navigation'; + + @override + String get templatesAndTutorials => 'Vorlagen und Anleitungen'; + + @override + String get tenMinutes => '10 Minuten'; + + @override + String get tenSeconds => '10 Sekunden'; + + @override + String get testSendUpdate => 'Testupdate senden'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Design, Sprache und Anzeigeeinstellungen'; + + @override + String get thirtyMinutes => '30 Minuten'; + + @override + String get thirtySeconds => '30 Sekunden'; + + @override + String get threeBytesMode2 => '3 Bytes (Modus 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Verkehrsstatistiken, Nachrichtenverlauf und Entwicklertools'; + + @override + String get twoBytesMode1 => '2 Bytes (Modus 1)'; + + @override + String get twoMinutes => '2 Minuten'; + + @override + String get undo => 'Rückgängig'; + + @override + String get updated => 'Aktualisiert'; + + @override + String get useContactFlags => 'Kontakt-Flags verwenden'; + + @override + String get useSavedCoordinates => 'Gespeicherte Koordinaten verwenden'; + + @override + String get view => 'Ansicht'; + + @override + String get viewNeighbours => 'Nachbarn anzeigen'; + + @override + String get viewPublicStats => 'Öffentliche Statistiken anzeigen'; + + @override + String get setRegionScope => 'Regionsbereich festlegen'; + + @override + String get regionScope => 'Regionsbereich'; + + @override + String get regionScopeNone => 'Keiner (global)'; + + @override + String get clearRegionScope => 'Bereich löschen'; + + @override + String get regionScopeWarning => + 'Nur Repeater, die diese Region zulassen, werden weiterleiten.'; + + @override + String get discoverRegions => 'Von Repeatern entdecken'; + + @override + String get discoveringRegions => 'Regionen werden entdeckt...'; + + @override + String get enterRegionName => 'Regionsname (z.B. auckland)'; + + @override + String get noRegionsFound => 'Keine Regionen auf diesem Repeater gefunden.'; + + @override + String regionScopeSet(String name) { + return 'Regionsbereich auf $name gesetzt'; + } + + @override + String get regionScopeCleared => 'Regionsbereich gelöscht'; } diff --git a/lib/l10n/app_localizations_el.dart b/lib/l10n/app_localizations_el.dart index 4c921b8..453af74 100644 --- a/lib/l10n/app_localizations_el.dart +++ b/lib/l10n/app_localizations_el.dart @@ -35,9 +35,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get scanAgain => 'Σάρωση ξανά'; - @override - String get tapToConnect => 'Πατήστε για σύνδεση'; - @override String get deviceNotConnected => 'Η συσκευή δεν είναι συνδεδεμένη'; @@ -109,17 +106,9 @@ class AppLocalizationsEl extends AppLocalizations { @override String get showRxTxIndicators => 'Εμφάνιση ενδείξεων RX/TX'; - @override - String get displayPacketActivity => - 'Εμφάνιση ενδείξεων δραστηριότητας πακέτων στην επάνω μπάρα'; - @override String get disableMap => 'Απενεργοποίηση χάρτη'; - @override - String get disableMapDescription => - 'Απόκρυψη της καρτέλας χάρτη για μείωση κατανάλωσης μπαταρίας'; - @override String get language => 'Γλώσσα'; @@ -141,9 +130,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get appVersion => 'Έκδοση εφαρμογής'; - @override - String get appName => 'Όνομα εφαρμογής'; - @override String get aboutMeshCoreSar => 'Σχετικά με το MeshCore SAR'; @@ -240,9 +226,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get resetPath => 'Επαναφορά διαδρομής (νέα δρομολόγηση)'; - @override - String get publicKeyCopied => 'Το δημόσιο κλειδί αντιγράφηκε στο πρόχειρο'; - @override String copiedToClipboard(String label) { return 'Το $label αντιγράφηκε στο πρόχειρο'; @@ -484,22 +467,22 @@ class AppLocalizationsEl extends AppLocalizations { String get flood => 'Πλημμυρικό'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Αυτόματη αποστολή'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Αποστολή μέσω τρέχουσας διαδρομής.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Άμεση αποστολή'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Αποστολή απευθείας σε αυτήν την επαφή.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Αποστολή πλημμύρας'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Αποστολή μέσω όλων των αναμεταδοτών.'; @override String get loggedIn => 'Συνδεδεμένος'; @@ -539,18 +522,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get lastSeen => 'Τελευταία εμφάνιση'; - @override - String get roomStatus => 'Κατάσταση δωματίου'; - - @override - String get loginStatus => 'Κατάσταση σύνδεσης'; - - @override - String get notLoggedIn => 'Μη συνδεδεμένος'; - - @override - String get adminAccess => 'Πρόσβαση διαχειριστή'; - @override String get yes => 'Ναι'; @@ -560,12 +531,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get permissions => 'Δικαιώματα'; - @override - String get passwordSaved => 'Ο κωδικός αποθηκεύτηκε'; - - @override - String get locationColon => 'Τοποθεσία:'; - @override String get telemetry => 'Τηλεμετρία'; @@ -587,14 +552,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get gpsTelemetry => 'GPS (τηλεμετρία)'; - @override - String get updated => 'Ενημερώθηκε'; - - @override - String pathResetInfo(String name) { - return 'Η διαδρομή για το $name επαναφέρθηκε. Το επόμενο μήνυμα θα βρει νέα διαδρομή.'; - } - @override String get reLoginToRoom => 'Επανασύνδεση στο δωμάτιο'; @@ -846,9 +803,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get frequencyMHz => 'Συχνότητα (MHz)'; - @override - String get frequencyExample => 'π.χ. 869.618'; - @override String get bandwidth => 'Εύρος ζώνης'; @@ -924,48 +878,12 @@ class AppLocalizationsEl extends AppLocalizations { @override String get trailControls => 'Στοιχεία ελέγχου ίχνους'; - @override - String get contactTrails => 'Ίχνη επαφών'; - - @override - String get showAllContactTrails => 'Εμφάνιση όλων των ιχνών επαφών'; - - @override - String get noContactsWithLocationHistory => - 'Δεν υπάρχουν επαφές με ιστορικό τοποθεσίας'; - - @override - String showingTrailsForContacts(int count) { - return 'Εμφανίζονται ίχνη για $count επαφές'; - } - - @override - String get individualContactTrails => 'Μεμονωμένα ίχνη επαφών'; - - @override - String get deviceInformation => 'Πληροφορίες συσκευής'; - - @override - String get bleName => 'Όνομα BLE'; - - @override - String get meshName => 'Όνομα mesh'; - - @override - String get notSet => 'Δεν έχει οριστεί'; - @override String get model => 'Μοντέλο'; @override String get version => 'Έκδοση'; - @override - String get buildDate => 'Ημερομηνία build'; - - @override - String get firmware => 'Υλικολογισμικό'; - @override String get maxContacts => 'Μέγιστες επαφές'; @@ -975,23 +893,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get publicInfo => 'Δημόσιες πληροφορίες'; - @override - String get meshNetworkName => 'Όνομα δικτύου mesh'; - - @override - String get nameBroadcastInMesh => - 'Όνομα που μεταδίδεται στις διαφημίσεις mesh'; - - @override - String get telemetryAndLocationSharing => - 'Τηλεμετρία και κοινοποίηση τοποθεσίας'; - - @override - String get lat => 'Πλάτος'; - - @override - String get lon => 'Μήκος'; - @override String get useCurrentLocation => 'Χρήση τρέχουσας τοποθεσίας'; @@ -1012,11 +913,6 @@ class AppLocalizationsEl extends AppLocalizations { return 'Τύπος $number'; } - @override - String copiedToClipboardShort(String label) { - return 'Το $label αντιγράφηκε στο πρόχειρο'; - } - @override String failedToSave(String error) { return 'Αποτυχία αποθήκευσης: $error'; @@ -1030,9 +926,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get sarTemplates => 'Πρότυπα SAR'; - @override - String get manageSarTemplates => 'Διαχείριση προτύπων SAR'; - @override String get addTemplate => 'Προσθήκη προτύπου'; @@ -1135,9 +1028,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get ok => 'ΟΚ'; - @override - String get permissionsSection => 'Δικαιώματα'; - @override String get locationPermission => 'Άδεια τοποθεσίας'; @@ -1583,88 +1473,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get wizardWelcomeTitle => 'Καλώς ήρθατε στο MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Ένα ισχυρό εργαλείο επικοινωνίας εκτός δικτύου για επιχειρήσεις έρευνας και διάσωσης. Συνδεθείτε με την ομάδα σας χρησιμοποιώντας τεχνολογία mesh radio όταν τα παραδοσιακά δίκτυα δεν είναι διαθέσιμα.'; - - @override - String get wizardConnectingTitle => 'Σύνδεση στο radio σας'; - - @override - String get wizardConnectingDescription => - 'Συνδέστε το smartphone σας με μια συσκευή MeshCore radio μέσω Bluetooth για να αρχίσετε να επικοινωνείτε εκτός δικτύου.'; - - @override - String get wizardConnectingFeature1 => - 'Σάρωση για κοντινές συσκευές MeshCore'; - - @override - String get wizardConnectingFeature2 => - 'Σύζευξη με το radio σας μέσω Bluetooth'; - - @override - String get wizardConnectingFeature3 => - 'Λειτουργεί πλήρως εκτός σύνδεσης - δεν απαιτείται internet'; - - @override - String get wizardChannelTitle => 'Κανάλια'; - - @override - String get wizardChannelDescription => - 'Μεταδώστε μηνύματα σε όλους σε ένα κανάλι, ιδανικό για ανακοινώσεις και συντονισμό σε όλη την ομάδα.'; - - @override - String get wizardChannelFeature1 => - 'Δημόσιο κανάλι για γενική επικοινωνία ομάδας'; - - @override - String get wizardChannelFeature2 => - 'Δημιουργία προσαρμοσμένων καναλιών για συγκεκριμένες ομάδες'; - - @override - String get wizardChannelFeature3 => - 'Τα μηνύματα αναμεταδίδονται αυτόματα από το mesh'; - - @override - String get wizardContactsTitle => 'Επαφές'; - - @override - String get wizardContactsDescription => - 'Τα μέλη της ομάδας σας εμφανίζονται αυτόματα καθώς συνδέονται στο δίκτυο mesh. Στείλτε τους άμεσα μηνύματα ή δείτε την τοποθεσία τους.'; - - @override - String get wizardContactsFeature1 => 'Οι επαφές εντοπίζονται αυτόματα'; - - @override - String get wizardContactsFeature2 => 'Αποστολή ιδιωτικών άμεσων μηνυμάτων'; - - @override - String get wizardContactsFeature3 => - 'Προβολή επιπέδου μπαταρίας και χρόνου τελευταίας εμφάνισης'; - - @override - String get wizardMapTitle => 'Χάρτης και τοποθεσία'; - - @override - String get wizardMapDescription => - 'Παρακολουθήστε την ομάδα σας σε πραγματικό χρόνο και σημειώστε σημαντικές τοποθεσίες για επιχειρήσεις έρευνας και διάσωσης.'; - - @override - String get wizardMapFeature1 => - 'Δείκτες SAR για εντοπισμένα άτομα, φωτιές και σημεία συγκέντρωσης'; - - @override - String get wizardMapFeature2 => - 'Παρακολούθηση GPS των μελών της ομάδας σε πραγματικό χρόνο'; - - @override - String get wizardMapFeature3 => - 'Λήψη χαρτών εκτός σύνδεσης για απομακρυσμένες περιοχές'; - - @override - String get wizardMapFeature4 => - 'Σχεδίαση σχημάτων και κοινοποίηση τακτικών πληροφοριών'; - @override String get viewWelcomeTutorial => 'Προβολή οδηγού καλωσορίσματος'; @@ -1924,11 +1732,11 @@ class AppLocalizationsEl extends AppLocalizations { 'Χρησιμοποιήστε καταγραφές πακέτων, σάρωση φάσματος και διαγνωστικά προγραμματιστή κατά την αντιμετώπιση προβλημάτων του mesh.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Ανακάλυψη αναμεταδοτών τώρα;'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Εκτελέστε ανακάλυψη αναμεταδοτών αμέσως μετά τη σύνδεση, ώστε να μπορείτε να δείτε κοντινούς κόμβους MeshCore και να τους προσθέσετε στο δίκτυό σας πιο γρήγορα.'; @override String get contactInSensors => 'Στους αισθητήρες'; @@ -2031,57 +1839,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get bandpassFilterVoice => 'Ζωνοπερατό φίλτρο φωνής'; - @override - String get frequency => 'Συχνότητα'; - - @override - String get australia => 'Αυστραλία'; - - @override - String get australiaNarrow => 'Αυστραλία (Στενό)'; - - @override - String get australiaQld => 'Αυστραλία: QLD'; - - @override - String get australiaSaWa => 'Αυστραλία: SA, WA'; - - @override - String get newZealand => 'Νέα Ζηλανδία'; - - @override - String get newZealandNarrow => 'Νέα Ζηλανδία (Στενό)'; - - @override - String get switzerland => 'Ελβετία'; - - @override - String get portugal433 => 'Πορτογαλία 433'; - - @override - String get portugal868 => 'Πορτογαλία 868'; - - @override - String get czechRepublicNarrow => 'Τσεχία (Στενό)'; - - @override - String get eu433mhzLongRange => 'ΕΕ 433MHz (Μεγάλη Εμβέλεια)'; - - @override - String get euukDeprecated => 'ΕΕ/ΗΒ (Παρωχημένο)'; - - @override - String get euukNarrow => 'ΕΕ/ΗΒ (Στενό)'; - - @override - String get usacanadaRecommended => 'ΗΠΑ/Καναδάς (Προτεινόμενο)'; - - @override - String get vietnamDeprecated => 'Βιετνάμ (Παρωχημένο)'; - - @override - String get vietnamNarrow => 'Βιετνάμ (Στενό)'; - @override String get active => 'Ενεργό'; @@ -2091,15 +1848,9 @@ class AppLocalizationsEl extends AppLocalizations { @override String get all => 'Όλα'; - @override - String get autoResolve => 'Αυτόματη επίλυση'; - @override String get clearAllLabel => 'Εκκαθάριση όλων'; - @override - String get clearRelays => 'Εκκαθάριση αναμεταδοτών'; - @override String get clearFilters => 'Εκκαθάριση φίλτρων'; @@ -2175,18 +1926,9 @@ class AppLocalizationsEl extends AppLocalizations { @override String get share => 'Κοινοποίηση'; - @override - String get shareContact => 'Κοινοποίηση επαφής'; - @override String get trace => 'Ίχνος'; - @override - String get use => 'Χρήση'; - - @override - String get useSelectedFrequency => 'Χρήση επιλεγμένης συχνότητας'; - @override String get discovery => 'Ανακάλυψη'; @@ -2254,9 +1996,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get repeatersMap => 'Χάρτης αναμεταδοτών'; - @override - String get spectrumScan => 'Σάρωση φάσματος'; - @override String get blePacketLogs => 'Αρχεία πακέτων BLE'; @@ -2290,9 +2029,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get enableProfiles => 'Ενεργοποίηση προφίλ'; - @override - String get autoRouteRotation => 'Αυτόματη εναλλαγή διαδρομής'; - @override String get nearestRepeaterFallback => 'Πλησιέστερος αναμεταδότης ως εφεδρεία'; @@ -2314,13 +2050,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get showSarMarkersLabel => 'Εμφάνιση δεικτών SAR'; - @override - String get displaySarMarkersOnTheMainMap => - 'Εμφάνιση δεικτών SAR στον κύριο χάρτη'; - - @override - String get showAllContactTrailsLabel => 'Εμφάνιση όλων των ιχνών επαφών'; - @override String get hideRepeatersOnMap => 'Απόκρυψη αναμεταδοτών στον χάρτη'; @@ -2336,24 +2065,12 @@ class AppLocalizationsEl extends AppLocalizations { @override String get voiceCompressor => 'Συμπιεστής φωνής'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Εξισορρόπηση χαμηλών και δυνατών επιπέδων'; - @override String get voiceLimiter => 'Περιοριστής φωνής'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Αποτρέπει κοπή κορυφών πριν την κωδικοποίηση'; - @override String get micAutoGain => 'Αυτόματη ενίσχυση μικροφώνου'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Αφήνει τη συσκευή να ρυθμίσει την ένταση'; - @override String get echoCancellation => 'Ακύρωση ηχούς'; @@ -2483,16 +2200,9 @@ class AppLocalizationsEl extends AppLocalizations { @override String get quiet => 'Ήσυχο'; - @override - String get moderate => 'Μέτριο'; - @override String get busy => 'Απασχολημένο'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'Η σάρωση φάσματος δεν βρήκε υποψήφιες συχνότητες'; - @override String get searchMessages => 'Αναζήτηση μηνυμάτων'; @@ -2502,9 +2212,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get takePhoto => 'Λήψη φωτογραφίας'; - @override - String get dmOnly => 'Μόνο απευθείας'; - @override String get allMessages => 'Όλα τα μηνύματα'; @@ -2562,14 +2269,6 @@ class AppLocalizationsEl extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Επιλέξτε μια προεπιλογή ή ρυθμίστε τις ρυθμίσεις ραδιοφώνου.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Επιλέξτε το όνομα και την τοποθεσία που μοιράζεται αυτή η συσκευή.'; - - @override - String get availableSpaceOnThisDevice => - 'Διαθέσιμος χώρος σε αυτή τη συσκευή.'; - @override String get used => 'Χρησιμοποιήθηκε'; @@ -2623,12 +2322,6 @@ class AppLocalizationsEl extends AppLocalizations { @override String get source => 'Πηγή'; - @override - String get manualRouteEdit => 'Χειροκίνητη επεξεργασία διαδρομής'; - - @override - String get observedMeshRoute => 'Παρατηρούμενη διαδρομή δικτύου'; - @override String get allMessagesCleared => 'Όλα τα μηνύματα διαγράφηκαν'; @@ -2727,38 +2420,619 @@ class AppLocalizationsEl extends AppLocalizations { String get noDeviceContactsToClear => 'Δεν υπάρχουν επαφές συσκευής.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Z'; @override - String get regionScope => 'Region scope'; + String get add => 'Προσθήκη'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Προσθήκη επιπλέον λεπτομερειών'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Προσθήκη κόμβου'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Χειροκίνητη προσθήκη κόμβου'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return 'Ο/Η $name προστέθηκε στις επαφές'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return 'Ο/Η $name προστέθηκε στους αισθητήρες'; + } + + @override + String get allowAll => 'Επιτρέπονται όλα'; + + @override + String get anonymousRxStats => 'Ανώνυμα στατιστικά λήψης'; + + @override + String get appearance => 'Εμφάνιση'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Βασική τηλεμετρία'; + + @override + String get blePin => 'BLE PIN'; + + @override + String get buzzerAlerts => 'Ειδοποιήσεις βομβητή'; + + @override + String get cancelImageReceive => 'Ακύρωση λήψης εικόνας'; + + @override + String get choose => 'Επιλογή'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Επιλέξτε ποιες καρτέλες και ενότητες επαφών θα εμφανίζονται'; + + @override + String get clearCache => 'Εκκαθάριση προσωρινής μνήμης'; + + @override + String get clearHistory => 'Εκκαθάριση ιστορικού'; + + @override + String get clearLiveView => 'Εκκαθάριση ζωντανής προβολής'; + + @override + String get clearLogs => 'Εκκαθάριση αρχείων καταγραφής'; + + @override + String get clearOfflineCache => + 'Εκκαθάριση προσωρινής μνήμης εκτός σύνδεσης;'; + + @override + String get clearOverlay => 'Εκκαθάριση επικάλυψης'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Εκκαθάριση διαδρομής μόνο μετά την αποτυχία όλων των επαναπροσπαθειών'; + + @override + String get codecBitrateAndAudioProcessing => + 'Κωδικοποιητής, ρυθμός bit και επεξεργασία ήχου'; + + @override + String get connectByIpAddress => 'Σύνδεση μέσω διεύθυνσης IP'; + + @override + String get controlWhichAlertsYouReceive => + 'Ελέγξτε ποιες ειδοποιήσεις λαμβάνετε'; + + @override + String get copyFullHex => 'Αντιγραφή πλήρους Hex'; + + @override + String get copyRawResponse => 'Αντιγραφή ακατέργαστης απόκρισης'; + + @override + String get couldNotLoadMetHistory => 'Αδυναμία φόρτωσης ιστορικού MET'; + + @override + String customizeSensor(String name) { + return 'Προσαρμογή $name'; + } + + @override + String get data => 'Δεδομένα'; + + @override + String get deleteGroup => 'Διαγραφή ομάδας'; + + @override + String deleteStyleConfirm(String name) { + return 'Διαγραφή $name;'; + } + + @override + String deleteThisDrawing(String type) { + return 'Διαγραφή αυτού του $type;'; + } + + @override + String get deny => 'Απόρριψη'; + + @override + String get deviceInfo => 'Πληροφορίες συσκευής'; + + @override + String get deviceSettings => 'Ρυθμίσεις συσκευής'; + + @override + String get deviceTimeSynced => + 'Ο χρόνος της συσκευής συγχρονίστηκε με αυτό το τηλέφωνο.'; + + @override + String get disableFastGpsPublishing => + 'Απενεργοποίηση γρήγορης δημοσίευσης GPS'; + + @override + String get displayMarkersAndTraceDatabase => + 'Εμφάνιση, δείκτες και βάση δεδομένων ιχνών'; + + @override + String get download => 'Λήψη'; + + @override + String get environmentalTelemetry => 'Περιβαλλοντική τηλεμετρία'; + + @override + String errorCheckingForUpdates(String error) { + return 'Σφάλμα ελέγχου ενημερώσεων: $error'; + } + + @override + String errorGeneric(String error) { + return 'Σφάλμα: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Σφάλμα ανοίγματος λήψης: $error'; + } + + @override + String get exportLogs => 'Εξαγωγή αρχείων καταγραφής'; + + @override + String get extraAggressiveAvifCompression => + 'Εξαιρετικά επιθετική συμπίεση AVIF'; + + @override + String failedToAddContact(String error) { + return 'Αποτυχία προσθήκης επαφής: $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Αποτυχία προσθήκης $name: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Αποτυχία εκκαθάρισης καναλιών: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Αποτυχία εκκαθάρισης επαφών: $error'; + } + + @override + String get failedToConnectViaSerial => + 'Αποτυχία σύνδεσης μέσω σειριακής θύρας'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Αποτυχία φόρτωσης εικόνας προεπισκόπησης: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Αποτυχία φόρτωσης ίχνους: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Αποτυχία αποστολής δείκτη SAR: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Αποτυχία ρύθμισης λειτουργίας βομβητή: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Αποτυχία ρύθμισης λειτουργίας GPS: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Αποτυχία συγχρονισμού χρόνου συσκευής: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Αποτυχία διαγραφής δεδομένων συσκευής: $error'; + } + + @override + String get fastGpsTargetChannel => 'Κανάλι-στόχος γρήγορου GPS'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Γρήγορες ενημερώσεις, όρια και δικαιώματα'; + + @override + String get fetchingCatalog => 'Ανάκτηση καταλόγου...'; + + @override + String get fifteenMinutes => '15 λεπτά'; + + @override + String get fifteenSeconds => '15 δευτερόλεπτα'; + + @override + String get filterByDirection => 'Φιλτράρισμα κατά κατεύθυνση'; + + @override + String get finish => 'Τέλος'; + + @override + String get fiveMinutes => '5 λεπτά'; + + @override + String get fiveSeconds => '5 δευτερόλεπτα'; + + @override + String get fix => 'Στίξη'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'Πολιτική διαφήμισης GPS'; + + @override + String get gpsAndLocation => 'GPS & Τοποθεσία'; + + @override + String get gpsDiagnostics => 'Διαγνωστικά GPS'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Βοήθεια'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Κρυφό'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Πώς το ραδιόφωνο προσθέτει αυτόματα ανακαλυφθέντες κόμβους.'; + + @override + String get images => 'Εικόνες'; + + @override + String get importProfile => 'Εισαγωγή προφίλ'; + + @override + String get lastFix => 'Τελευταία στίξη'; + + @override + String get latest => 'Πιο πρόσφατο'; + + @override + String get latitude => 'Γεωγραφικό πλάτος'; + + @override + String get loadASavedRegion => 'Φόρτωση αποθηκευμένης περιοχής'; + + @override + String get loading => 'Φόρτωση'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Κοινοποίηση τοποθεσίας, υλικό και διάστημα ενημέρωσης.'; + + @override + String get locationTelemetry => 'Τηλεμετρία τοποθεσίας'; + + @override + String get lockDestination => 'Κλείδωμα προορισμού'; + + @override + String get longitude => 'Γεωγραφικό μήκος'; + + @override + String get mapStyle => 'Στυλ χάρτη'; + + @override + String get max => 'Μέγ.'; + + @override + String get maxZoom => 'Μέγ. ζουμ'; + + @override + String get messaging => 'Μηνύματα'; + + @override + String get metHistory => 'Ιστορικό MET'; + + @override + String get min => 'Ελάχ.'; + + @override + String get minZoom => 'Ελάχ. ζουμ'; + + @override + String get moveDown => 'Μετακίνηση κάτω'; + + @override + String get moveUp => 'Μετακίνηση πάνω'; + + @override + String get multiAckMode => 'Λειτουργία πολλαπλού ACK'; + + @override + String get multiDeviceWorkspaceManagement => + 'Διαχείριση χώρου εργασίας πολλαπλών συσκευών'; + + @override + String get myLocation => 'Η τοποθεσία μου'; + + @override + String get nameAndTelemetryShared => + 'Το όνομα και η τηλεμετρία κοινοποιούνται σε άλλες συσκευές.'; + + @override + String newVersionAvailable(String version) { + return 'Νέα έκδοση: $version'; + } + + @override + String get newer => 'Νεότερο'; + + @override + String get noNeighboursFound => 'Δεν βρέθηκαν γείτονες'; + + @override + String get noServersFound => 'Δεν βρέθηκαν διακομιστές'; + + @override + String get notSet => 'Δεν έχει οριστεί'; + + @override + String get notifications => 'Ειδοποιήσεις'; + + @override + String get offZeroSeconds => 'Ανενεργό (0 δ)'; + + @override + String get offlineMaps => 'Χάρτες εκτός σύνδεσης'; + + @override + String get older => 'Παλαιότερο'; + + @override + String get oneByteMode0 => '1 byte (mode 0)'; + + @override + String get oneHour => '1 ώρα'; + + @override + String get oneMinute => '1 λεπτό'; + + @override + String get openPacketLogs => 'Άνοιγμα αρχείων πακέτων'; + + @override + String get packetTypeHelp => 'Βοήθεια τύπων πακέτων'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Επικολλήστε σύνδεσμο κοινοποίησης ή hex διαφήμιση'; + + @override + String get pathHash => 'Hash διαδρομής'; + + @override + String get pathSize => 'Μέγεθος διαδρομής'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Πολύγωνο'; + + @override + String get rawResponseCopied => 'Η ακατέργαστη απόκριση αντιγράφηκε'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Επαναποστολή μέσω πλησιέστερου αναμεταδότη σε αποτυχία'; + + @override + String get resolveContact => 'Επίλυση επαφής'; + + @override + String get routingRetriesAndDestinationLock => + 'Δρομολόγηση, επαναπροσπάθειες και κλείδωμα προορισμού'; + + @override + String get samples => 'Δείγματα'; + + @override + String get satellites => 'Δορυφόροι'; + + @override + String get saving => 'Αποθήκευση...'; + + @override + String get search => 'Αναζήτηση'; + + @override + String get searchByNameOrToken => 'Αναζήτηση με όνομα ή token'; + + @override + String get searchDiscoveredNodes => 'Αναζήτηση ανακαλυφθέντων κόμβων'; + + @override + String get searchInCurrentFilter => 'Αναζήτηση στο τρέχον φίλτρο'; + + @override + String get searchLogs => 'Αναζήτηση αρχείων καταγραφής...'; + + @override + String get searchSensors => 'Αναζήτηση αισθητήρων'; + + @override + String get searchThisSection => 'Αναζήτηση σε αυτήν την ενότητα'; + + @override + String get selectedRelays => 'Επιλεγμένοι αναμεταδότες'; + + @override + String get sensor => 'Αισθητήρας'; + + @override + String serialError(String error) { + return 'Σφάλμα σειριακής: $error'; + } + + @override + String setPathForContact(String name) { + return 'Ορισμός διαδρομής για $name'; + } + + @override + String get shareLiveGps => 'Κοινοποίηση ζωντανού GPS'; + + @override + String get shareMyTiles => 'Κοινοποίηση πλακιδίων μου'; + + @override + String get sharingLocationFromPhone => + 'Κοινοποίηση τοποθεσίας σε αυτό το κανάλι από το τηλέφωνο.'; + + @override + String get sharingLocationFromRadio => + 'Κοινοποίηση τοποθεσίας σε αυτό το κανάλι από το ραδιόφωνο.'; + + @override + String signalDbm(String rssi) { + return 'Σήμα $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => 'Μέγεθος, συμπίεση και προεπισκόπηση'; + + @override + String get skip => 'Παράλειψη'; + + @override + String get smallerFileSize => 'Μικρότερο μέγεθος αρχείου'; + + @override + String get sort => 'Ταξινόμηση'; + + @override + String get stoppedSharingLocation => + 'Σταμάτησε η κοινοποίηση τοποθεσίας σε αυτό το κανάλι.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Αποσιώπηση ειδοποιήσεων όταν η εφαρμογή είναι στο προσκήνιο'; + + @override + String get tabsAndNavigation => 'Καρτέλες & Πλοήγηση'; + + @override + String get templatesAndTutorials => 'Πρότυπα και οδηγίες'; + + @override + String get tenMinutes => '10 λεπτά'; + + @override + String get tenSeconds => '10 δευτερόλεπτα'; + + @override + String get testSendUpdate => 'Δοκιμαστική αποστολή ενημέρωσης'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Θέμα, γλώσσα και προτιμήσεις εμφάνισης'; + + @override + String get thirtyMinutes => '30 λεπτά'; + + @override + String get thirtySeconds => '30 δευτερόλεπτα'; + + @override + String get threeBytesMode2 => '3 bytes (mode 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Στατιστικά κίνησης, ιστορικό μηνυμάτων και εργαλεία προγραμματιστή'; + + @override + String get twoBytesMode1 => '2 bytes (mode 1)'; + + @override + String get twoMinutes => '2 λεπτά'; + + @override + String get undo => 'Αναίρεση'; + + @override + String get updated => 'Ενημερώθηκε'; + + @override + String get useContactFlags => 'Χρήση σημαιών επαφής'; + + @override + String get useSavedCoordinates => 'Χρήση αποθηκευμένων συντεταγμένων'; + + @override + String get view => 'Προβολή'; + + @override + String get viewNeighbours => 'Προβολή γειτόνων'; + + @override + String get viewPublicStats => 'Προβολή δημόσιων στατιστικών'; + + @override + String get setRegionScope => 'Ορισμός εύρους περιοχής'; + + @override + String get regionScope => 'Εύρος περιοχής'; + + @override + String get regionScopeNone => 'Κανένα (καθολικό)'; + + @override + String get clearRegionScope => 'Εκκαθάριση εύρους'; + + @override + String get regionScopeWarning => + 'Μόνο οι αναμεταδότες που επιτρέπουν αυτή την περιοχή θα προωθήσουν.'; + + @override + String get discoverRegions => 'Ανακάλυψη από αναμεταδότες'; + + @override + String get discoveringRegions => 'Ανακάλυψη περιοχών...'; + + @override + String get enterRegionName => 'Όνομα περιοχής (π.χ. auckland)'; + + @override + String get noRegionsFound => + 'Δεν βρέθηκαν περιοχές σε αυτόν τον αναμεταδότη.'; + + @override + String regionScopeSet(String name) { + return 'Εύρος περιοχής ορίστηκε σε $name'; + } + + @override + String get regionScopeCleared => 'Εύρος περιοχής εκκαθαρίστηκε'; } diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index ead6ed5..95a8647 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -35,9 +35,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get scanAgain => 'Scan Again'; - @override - String get tapToConnect => 'Tap to connect'; - @override String get deviceNotConnected => 'Device not connected'; @@ -109,17 +106,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get showRxTxIndicators => 'Show RX/TX Indicators'; - @override - String get displayPacketActivity => - 'Display packet activity indicators in top bar'; - @override String get disableMap => 'Disable Map'; - @override - String get disableMapDescription => - 'Hide the map tab to reduce battery usage'; - @override String get language => 'Language'; @@ -141,9 +130,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get appVersion => 'App Version'; - @override - String get appName => 'App Name'; - @override String get aboutMeshCoreSar => 'About MeshCore SAR'; @@ -239,9 +225,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get resetPath => 'Reset Path (Re-route)'; - @override - String get publicKeyCopied => 'Public key copied to clipboard'; - @override String copiedToClipboard(String label) { return '$label copied to clipboard'; @@ -534,18 +517,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get lastSeen => 'Last Seen'; - @override - String get roomStatus => 'Room Status'; - - @override - String get loginStatus => 'Login Status'; - - @override - String get notLoggedIn => 'Not Logged In'; - - @override - String get adminAccess => 'Admin Access'; - @override String get yes => 'Yes'; @@ -555,12 +526,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get permissions => 'Permissions'; - @override - String get passwordSaved => 'Password Saved'; - - @override - String get locationColon => 'Location:'; - @override String get telemetry => 'Telemetry'; @@ -582,14 +547,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get gpsTelemetry => 'GPS (Telemetry)'; - @override - String get updated => 'Updated'; - - @override - String pathResetInfo(String name) { - return 'Path reset for $name. Next message will find a new route.'; - } - @override String get reLoginToRoom => 'Re-Login to Room'; @@ -840,9 +797,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get frequencyMHz => 'Frequency (MHz)'; - @override - String get frequencyExample => 'e.g., 869.618'; - @override String get bandwidth => 'Bandwidth'; @@ -917,48 +871,12 @@ class AppLocalizationsEn extends AppLocalizations { @override String get trailControls => 'Trail Controls'; - @override - String get contactTrails => 'Contact Trails'; - - @override - String get showAllContactTrails => 'Show All Contact Trails'; - - @override - String get noContactsWithLocationHistory => - 'No contacts with location history'; - - @override - String showingTrailsForContacts(int count) { - return 'Showing trails for $count contacts'; - } - - @override - String get individualContactTrails => 'Individual Contact Trails'; - - @override - String get deviceInformation => 'Device Information'; - - @override - String get bleName => 'BLE Name'; - - @override - String get meshName => 'Mesh Name'; - - @override - String get notSet => 'Not set'; - @override String get model => 'Model'; @override String get version => 'Version'; - @override - String get buildDate => 'Build Date'; - - @override - String get firmware => 'Firmware'; - @override String get maxContacts => 'Max Contacts'; @@ -968,21 +886,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get publicInfo => 'Public Info'; - @override - String get meshNetworkName => 'Mesh Network Name'; - - @override - String get nameBroadcastInMesh => 'Name broadcast in mesh advertisements'; - - @override - String get telemetryAndLocationSharing => 'Telemetry & Location Sharing'; - - @override - String get lat => 'Lat'; - - @override - String get lon => 'Lon'; - @override String get useCurrentLocation => 'Use current location'; @@ -1003,11 +906,6 @@ class AppLocalizationsEn extends AppLocalizations { return 'Type $number'; } - @override - String copiedToClipboardShort(String label) { - return 'Copied $label to clipboard'; - } - @override String failedToSave(String error) { return 'Failed to save: $error'; @@ -1021,9 +919,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get sarTemplates => 'SAR Templates'; - @override - String get manageSarTemplates => 'Manage cursor on target templates'; - @override String get addTemplate => 'Add Template'; @@ -1125,9 +1020,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get ok => 'OK'; - @override - String get permissionsSection => 'Permissions'; - @override String get locationPermission => 'Location Permission'; @@ -1556,82 +1448,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get wizardWelcomeTitle => 'Welcome to MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'A powerful off-grid communication tool for search and rescue operations. Connect with your team using mesh radio technology when traditional networks are unavailable.'; - - @override - String get wizardConnectingTitle => 'Connecting to Your Radio'; - - @override - String get wizardConnectingDescription => - 'Connect your smartphone to a MeshCore radio device via Bluetooth to start communicating off-grid.'; - - @override - String get wizardConnectingFeature1 => 'Scan for nearby MeshCore devices'; - - @override - String get wizardConnectingFeature2 => 'Pair with your radio via Bluetooth'; - - @override - String get wizardConnectingFeature3 => - 'Works completely offline - no internet required'; - - @override - String get wizardChannelTitle => 'Channels'; - - @override - String get wizardChannelDescription => - 'Broadcast messages to everyone on a channel, perfect for team-wide announcements and coordination.'; - - @override - String get wizardChannelFeature1 => - 'Public Channel for general team communication'; - - @override - String get wizardChannelFeature2 => - 'Create custom channels for specific groups'; - - @override - String get wizardChannelFeature3 => - 'Messages are automatically relayed by the mesh'; - - @override - String get wizardContactsTitle => 'Contacts'; - - @override - String get wizardContactsDescription => - 'Your team members appear automatically as they join the mesh network. Send them direct messages or view their location.'; - - @override - String get wizardContactsFeature1 => 'Contacts discovered automatically'; - - @override - String get wizardContactsFeature2 => 'Send private direct messages'; - - @override - String get wizardContactsFeature3 => 'View battery level and last seen time'; - - @override - String get wizardMapTitle => 'Map & Location'; - - @override - String get wizardMapDescription => - 'Track your team in real-time and mark important locations for search and rescue operations.'; - - @override - String get wizardMapFeature1 => - 'SAR markers for found persons, fires, and staging areas'; - - @override - String get wizardMapFeature2 => 'Real-time GPS tracking of team members'; - - @override - String get wizardMapFeature3 => 'Download offline maps for remote areas'; - - @override - String get wizardMapFeature4 => 'Draw shapes and share tactical information'; - @override String get viewWelcomeTutorial => 'View Welcome Tutorial'; @@ -1997,57 +1813,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get bandpassFilterVoice => 'Band-pass filter voice'; - @override - String get frequency => 'Frequency'; - - @override - String get australia => 'Australia'; - - @override - String get australiaNarrow => 'Australia (Narrow)'; - - @override - String get australiaQld => 'Australia: QLD'; - - @override - String get australiaSaWa => 'Australia: SA, WA'; - - @override - String get newZealand => 'New Zealand'; - - @override - String get newZealandNarrow => 'New Zealand (Narrow)'; - - @override - String get switzerland => 'Switzerland'; - - @override - String get portugal433 => 'Portugal 433'; - - @override - String get portugal868 => 'Portugal 868'; - - @override - String get czechRepublicNarrow => 'Czech Republic (Narrow)'; - - @override - String get eu433mhzLongRange => 'EU 433MHz (Long Range)'; - - @override - String get euukDeprecated => 'EU/UK (Deprecated)'; - - @override - String get euukNarrow => 'EU/UK (Narrow)'; - - @override - String get usacanadaRecommended => 'USA/Canada (Recommended)'; - - @override - String get vietnamDeprecated => 'Vietnam (Deprecated)'; - - @override - String get vietnamNarrow => 'Vietnam (Narrow)'; - @override String get active => 'Active'; @@ -2057,15 +1822,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get all => 'All'; - @override - String get autoResolve => 'Auto resolve'; - @override String get clearAllLabel => 'Clear all'; - @override - String get clearRelays => 'Clear relays'; - @override String get clearFilters => 'Clear filters'; @@ -2141,18 +1900,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get share => 'Share'; - @override - String get shareContact => 'Share Contact'; - @override String get trace => 'Trace'; - @override - String get use => 'Use'; - - @override - String get useSelectedFrequency => 'Use selected frequency'; - @override String get discovery => 'Discovery'; @@ -2219,9 +1969,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get repeatersMap => 'Repeaters Map'; - @override - String get spectrumScan => 'Spectrum Scan'; - @override String get blePacketLogs => 'BLE Packet Logs'; @@ -2255,9 +2002,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get enableProfiles => 'Enable Profiles'; - @override - String get autoRouteRotation => 'Auto route rotation'; - @override String get nearestRepeaterFallback => 'Nearest repeater fallback'; @@ -2280,13 +2024,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get showSarMarkersLabel => 'Show SAR markers'; - @override - String get displaySarMarkersOnTheMainMap => - 'Display SAR markers on the main map'; - - @override - String get showAllContactTrailsLabel => 'Show all contact trails'; - @override String get hideRepeatersOnMap => 'Hide repeaters on map'; @@ -2302,24 +2039,12 @@ class AppLocalizationsEn extends AppLocalizations { @override String get voiceCompressor => 'Voice compressor'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Balances quiet and loud speech levels'; - @override String get voiceLimiter => 'Voice limiter'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Prevents clipping peaks before encoding'; - @override String get micAutoGain => 'Mic auto gain'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Lets the recorder adjust input level'; - @override String get echoCancellation => 'Echo cancellation'; @@ -2448,16 +2173,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get quiet => 'Quiet'; - @override - String get moderate => 'Moderate'; - @override String get busy => 'Busy'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'Spectrum scan returned no candidate frequencies'; - @override String get searchMessages => 'Search messages'; @@ -2467,9 +2185,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get takePhoto => 'Take photo'; - @override - String get dmOnly => 'DM only'; - @override String get allMessages => 'All messages'; @@ -2526,13 +2241,6 @@ class AppLocalizationsEn extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Choose a preset or fine-tune custom radio settings.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Choose the name and location this device shares.'; - - @override - String get availableSpaceOnThisDevice => 'Available space on this device.'; - @override String get used => 'Used'; @@ -2586,12 +2294,6 @@ class AppLocalizationsEn extends AppLocalizations { @override String get source => 'Source'; - @override - String get manualRouteEdit => 'Manual route edit'; - - @override - String get observedMeshRoute => 'Observed mesh route'; - @override String get allMessagesCleared => 'All messages cleared'; @@ -2688,6 +2390,580 @@ class AppLocalizationsEn extends AppLocalizations { @override String get noDeviceContactsToClear => 'No device contacts to clear.'; + @override + String get aToZ => 'A-Z'; + + @override + String get add => 'Add'; + + @override + String get addAdditionalDetails => 'Add additional details'; + + @override + String get addPeer => 'Add Peer'; + + @override + String get addPeerManually => 'Add peer manually'; + + @override + String addedToContacts(String name) { + return '$name added to contacts'; + } + + @override + String addedToSensors(String name) { + return '$name added to Sensors'; + } + + @override + String get allowAll => 'Allow all'; + + @override + String get anonymousRxStats => 'Anonymous RX stats'; + + @override + String get appearance => 'Appearance'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Base telemetry'; + + @override + String get blePin => 'BLE PIN'; + + @override + String get buzzerAlerts => 'Buzzer alerts'; + + @override + String get cancelImageReceive => 'Cancel image receive'; + + @override + String get choose => 'Choose'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Choose which tabs and contact sections to show'; + + @override + String get clearCache => 'Clear cache'; + + @override + String get clearHistory => 'Clear history'; + + @override + String get clearLiveView => 'Clear live view'; + + @override + String get clearLogs => 'Clear logs'; + + @override + String get clearOfflineCache => 'Clear offline cache?'; + + @override + String get clearOverlay => 'Clear overlay'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Clear route only after all retries fail'; + + @override + String get codecBitrateAndAudioProcessing => + 'Codec, bitrate, and audio processing'; + + @override + String get connectByIpAddress => 'Connect by IP address'; + + @override + String get controlWhichAlertsYouReceive => 'Control which alerts you receive'; + + @override + String get copyFullHex => 'Copy full hex'; + + @override + String get copyRawResponse => 'Copy raw response'; + + @override + String get couldNotLoadMetHistory => 'Could not load MET history'; + + @override + String customizeSensor(String name) { + return 'Customize $name'; + } + + @override + String get data => 'Data'; + + @override + String get deleteGroup => 'Delete group'; + + @override + String deleteStyleConfirm(String name) { + return 'Delete $name?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Delete this $type?'; + } + + @override + String get deny => 'Deny'; + + @override + String get deviceInfo => 'Device info'; + + @override + String get deviceSettings => 'Device Settings'; + + @override + String get deviceTimeSynced => 'Device time synced to this phone.'; + + @override + String get disableFastGpsPublishing => 'Disable fast GPS publishing'; + + @override + String get displayMarkersAndTraceDatabase => + 'Display, markers, and trace database'; + + @override + String get download => 'Download'; + + @override + String get environmentalTelemetry => 'Environmental telemetry'; + + @override + String errorCheckingForUpdates(String error) { + return 'Error checking for updates: $error'; + } + + @override + String errorGeneric(String error) { + return 'Error: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Error opening download: $error'; + } + + @override + String get exportLogs => 'Export logs'; + + @override + String get extraAggressiveAvifCompression => + 'Extra-aggressive AVIF compression'; + + @override + String failedToAddContact(String error) { + return 'Failed to add contact: $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Failed to add $name: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Failed to clear channels: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Failed to clear contacts: $error'; + } + + @override + String get failedToConnectViaSerial => 'Failed to connect via serial'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Failed to load preview image: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Failed to load trace: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Failed to send SAR marker: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Failed to set buzzer mode: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Failed to set GPS mode: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Failed to sync device time: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Failed to wipe device data: $error'; + } + + @override + String get fastGpsTargetChannel => 'Fast GPS target channel'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Fast updates, thresholds, and permissions'; + + @override + String get fetchingCatalog => 'Fetching catalog...'; + + @override + String get fifteenMinutes => '15 minutes'; + + @override + String get fifteenSeconds => '15 seconds'; + + @override + String get filterByDirection => 'Filter by direction'; + + @override + String get finish => 'Finish'; + + @override + String get fiveMinutes => '5 minutes'; + + @override + String get fiveSeconds => '5 seconds'; + + @override + String get fix => 'Fix'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'GPS advert policy'; + + @override + String get gpsAndLocation => 'GPS & Location'; + + @override + String get gpsDiagnostics => 'GPS diagnostics'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Help'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Hidden'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'How the radio auto-adds discovered nodes.'; + + @override + String get images => 'Images'; + + @override + String get importProfile => 'Import profile'; + + @override + String get lastFix => 'Last fix'; + + @override + String get latest => 'Latest'; + + @override + String get latitude => 'Latitude'; + + @override + String get loadASavedRegion => 'Load a saved region'; + + @override + String get loading => 'Loading'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Location sharing, hardware, and update interval.'; + + @override + String get locationTelemetry => 'Location telemetry'; + + @override + String get lockDestination => 'Lock destination'; + + @override + String get longitude => 'Longitude'; + + @override + String get mapStyle => 'Map Style'; + + @override + String get max => 'Max'; + + @override + String get maxZoom => 'Max Zoom'; + + @override + String get messaging => 'Messaging'; + + @override + String get metHistory => 'MET history'; + + @override + String get min => 'Min'; + + @override + String get minZoom => 'Min Zoom'; + + @override + String get moveDown => 'Move down'; + + @override + String get moveUp => 'Move up'; + + @override + String get multiAckMode => 'Multi-ACK mode'; + + @override + String get multiDeviceWorkspaceManagement => + 'Multi-device workspace management'; + + @override + String get myLocation => 'My location'; + + @override + String get nameAndTelemetryShared => + 'Name and telemetry shared with other devices.'; + + @override + String newVersionAvailable(String version) { + return 'New version: $version'; + } + + @override + String get newer => 'Newer'; + + @override + String get noNeighboursFound => 'No neighbours found'; + + @override + String get noServersFound => 'No servers found'; + + @override + String get notSet => 'Not set'; + + @override + String get notifications => 'Notifications'; + + @override + String get offZeroSeconds => 'Off (0 s)'; + + @override + String get offlineMaps => 'Offline Maps'; + + @override + String get older => 'Older'; + + @override + String get oneByteMode0 => '1 byte (mode 0)'; + + @override + String get oneHour => '1 hour'; + + @override + String get oneMinute => '1 minute'; + + @override + String get openPacketLogs => 'Open packet logs'; + + @override + String get packetTypeHelp => 'Packet type help'; + + @override + String get pasteShareLinkOrHexAdvert => 'Paste a share link or hex advert'; + + @override + String get pathHash => 'Path hash'; + + @override + String get pathSize => 'Path size'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Polygon'; + + @override + String get rawResponseCopied => 'Raw response copied'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Resend through nearest repeater on failure'; + + @override + String get resolveContact => 'Resolve contact'; + + @override + String get routingRetriesAndDestinationLock => + 'Routing, retries, and destination lock'; + + @override + String get samples => 'Samples'; + + @override + String get satellites => 'Satellites'; + + @override + String get saving => 'Saving...'; + + @override + String get search => 'Search'; + + @override + String get searchByNameOrToken => 'Search by name or token'; + + @override + String get searchDiscoveredNodes => 'Search discovered nodes'; + + @override + String get searchInCurrentFilter => 'Search in current filter'; + + @override + String get searchLogs => 'Search logs...'; + + @override + String get searchSensors => 'Search sensors'; + + @override + String get searchThisSection => 'Search this section'; + + @override + String get selectedRelays => 'Selected relays'; + + @override + String get sensor => 'Sensor'; + + @override + String serialError(String error) { + return 'Serial error: $error'; + } + + @override + String setPathForContact(String name) { + return 'Set Path for $name'; + } + + @override + String get shareLiveGps => 'Share live GPS'; + + @override + String get shareMyTiles => 'Share my tiles'; + + @override + String get sharingLocationFromPhone => + 'Sharing location on this channel from the phone.'; + + @override + String get sharingLocationFromRadio => + 'Sharing location on this channel from the radio.'; + + @override + String signalDbm(String rssi) { + return 'Signal $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => 'Size, compression, and preview'; + + @override + String get skip => 'Skip'; + + @override + String get smallerFileSize => 'Smaller file size'; + + @override + String get sort => 'Sort'; + + @override + String get stoppedSharingLocation => + 'Stopped sharing location on this channel.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Suppress notifications while in foreground'; + + @override + String get tabsAndNavigation => 'Tabs & Navigation'; + + @override + String get templatesAndTutorials => 'Templates and tutorials'; + + @override + String get tenMinutes => '10 minutes'; + + @override + String get tenSeconds => '10 seconds'; + + @override + String get testSendUpdate => 'Test send update'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Theme, language, and display preferences'; + + @override + String get thirtyMinutes => '30 minutes'; + + @override + String get thirtySeconds => '30 seconds'; + + @override + String get threeBytesMode2 => '3 bytes (mode 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Traffic stats, message history, and developer tools'; + + @override + String get twoBytesMode1 => '2 bytes (mode 1)'; + + @override + String get twoMinutes => '2 minutes'; + + @override + String get undo => 'Undo'; + + @override + String get updated => 'Updated'; + + @override + String get useContactFlags => 'Use contact flags'; + + @override + String get useSavedCoordinates => 'Use saved coordinates'; + + @override + String get view => 'View'; + + @override + String get viewNeighbours => 'View Neighbours'; + + @override + String get viewPublicStats => 'View public stats'; + @override String get setRegionScope => 'Set region scope'; diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index b4c9f1f..cf4fb58 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -35,9 +35,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get scanAgain => 'Buscar de nuevo'; - @override - String get tapToConnect => 'Toca para conectar'; - @override String get deviceNotConnected => 'Dispositivo no conectado'; @@ -109,17 +106,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get showRxTxIndicators => 'Mostrar indicadores RX/TX'; - @override - String get displayPacketActivity => - 'Mostrar indicadores de actividad de paquetes en la barra superior'; - @override String get disableMap => 'Desactivar mapa'; - @override - String get disableMapDescription => - 'Ocultar la pestaña del mapa para reducir el uso de batería'; - @override String get language => 'Idioma'; @@ -141,9 +130,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get appVersion => 'Versión de la aplicación'; - @override - String get appName => 'Nombre de la aplicación'; - @override String get aboutMeshCoreSar => 'Acerca de MeshCore SAR'; @@ -239,9 +225,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get resetPath => 'Restablecer ruta (Re-enrutar)'; - @override - String get publicKeyCopied => 'Clave pública copiada al portapapeles'; - @override String copiedToClipboard(String label) { return '$label copiado al portapapeles'; @@ -482,22 +465,23 @@ class AppLocalizationsEs extends AppLocalizations { String get flood => 'Inundación'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Envío automático'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Enviar por la ruta actual.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Envío directo'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Enviar directamente a este contacto.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Envío por inundación'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => + 'Enviar a través de todos los repetidores.'; @override String get loggedIn => 'Sesión iniciada'; @@ -537,18 +521,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get lastSeen => 'Visto por última vez'; - @override - String get roomStatus => 'Estado de la sala'; - - @override - String get loginStatus => 'Estado de inicio de sesión'; - - @override - String get notLoggedIn => 'No ha iniciado sesión'; - - @override - String get adminAccess => 'Acceso de administrador'; - @override String get yes => 'Sí'; @@ -558,12 +530,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get permissions => 'Permisos'; - @override - String get passwordSaved => 'Contraseña guardada'; - - @override - String get locationColon => 'Ubicación:'; - @override String get telemetry => 'Telemetría'; @@ -585,14 +551,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get gpsTelemetry => 'GPS (Telemetría)'; - @override - String get updated => 'Actualizado'; - - @override - String pathResetInfo(String name) { - return 'Ruta restablecida para $name. El próximo mensaje encontrará una nueva ruta.'; - } - @override String get reLoginToRoom => 'Re-iniciar sesión en la sala'; @@ -844,9 +802,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get frequencyMHz => 'Frecuencia (MHz)'; - @override - String get frequencyExample => 'ej., 869.618'; - @override String get bandwidth => 'Ancho de banda'; @@ -921,48 +876,12 @@ class AppLocalizationsEs extends AppLocalizations { @override String get trailControls => 'Controles del rastro'; - @override - String get contactTrails => 'Rastros de contactos'; - - @override - String get showAllContactTrails => 'Mostrar todos los rastros de contactos'; - - @override - String get noContactsWithLocationHistory => - 'No hay contactos con historial de ubicación'; - - @override - String showingTrailsForContacts(int count) { - return 'Mostrando rastros para $count contactos'; - } - - @override - String get individualContactTrails => 'Rastros individuales de contactos'; - - @override - String get deviceInformation => 'Información del dispositivo'; - - @override - String get bleName => 'Nombre BLE'; - - @override - String get meshName => 'Nombre Mesh'; - - @override - String get notSet => 'No establecido'; - @override String get model => 'Modelo'; @override String get version => 'Versión'; - @override - String get buildDate => 'Fecha de compilación'; - - @override - String get firmware => 'Firmware'; - @override String get maxContacts => 'Contactos máximos'; @@ -972,21 +891,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get publicInfo => 'Información pública'; - @override - String get meshNetworkName => 'Nombre de red Mesh'; - - @override - String get nameBroadcastInMesh => 'Nombre difundido en anuncios mesh'; - - @override - String get telemetryAndLocationSharing => 'Telemetría y compartir ubicación'; - - @override - String get lat => 'Lat'; - - @override - String get lon => 'Lon'; - @override String get useCurrentLocation => 'Usar ubicación actual'; @@ -1007,11 +911,6 @@ class AppLocalizationsEs extends AppLocalizations { return 'Tipo $number'; } - @override - String copiedToClipboardShort(String label) { - return 'Copiado $label al portapapeles'; - } - @override String failedToSave(String error) { return 'Error al guardar: $error'; @@ -1025,9 +924,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get sarTemplates => 'Plantillas SAR'; - @override - String get manageSarTemplates => 'Gestionar plantillas SAR'; - @override String get addTemplate => 'Agregar plantilla'; @@ -1130,9 +1026,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get ok => 'OK'; - @override - String get permissionsSection => 'Permisos'; - @override String get locationPermission => 'Permiso de ubicación'; @@ -1579,87 +1472,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get wizardWelcomeTitle => 'Bienvenido a MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Una poderosa herramienta de comunicación sin conexión para operaciones de búsqueda y rescate. Conéctese con su equipo usando tecnología de radio en malla cuando las redes tradicionales no estén disponibles.'; - - @override - String get wizardConnectingTitle => 'Conectando a su Radio'; - - @override - String get wizardConnectingDescription => - 'Conecte su smartphone a un dispositivo de radio MeshCore vía Bluetooth para comenzar a comunicarse sin conexión.'; - - @override - String get wizardConnectingFeature1 => - 'Buscar dispositivos MeshCore cercanos'; - - @override - String get wizardConnectingFeature2 => 'Emparejar con su radio vía Bluetooth'; - - @override - String get wizardConnectingFeature3 => - 'Funciona completamente sin conexión - no se requiere internet'; - - @override - String get wizardChannelTitle => 'Canales'; - - @override - String get wizardChannelDescription => - 'Transmita mensajes a todos en un canal, perfecto para anuncios y coordinación de todo el equipo.'; - - @override - String get wizardChannelFeature1 => - 'Canal público para comunicación general del equipo'; - - @override - String get wizardChannelFeature2 => - 'Cree canales personalizados para grupos específicos'; - - @override - String get wizardChannelFeature3 => - 'Los mensajes se retransmiten automáticamente por la malla'; - - @override - String get wizardContactsTitle => 'Contactos'; - - @override - String get wizardContactsDescription => - 'Los miembros de su equipo aparecen automáticamente cuando se unen a la red en malla. Envíeles mensajes directos o vea su ubicación.'; - - @override - String get wizardContactsFeature1 => 'Contactos descubiertos automáticamente'; - - @override - String get wizardContactsFeature2 => 'Enviar mensajes directos privados'; - - @override - String get wizardContactsFeature3 => - 'Ver nivel de batería y hora de última vista'; - - @override - String get wizardMapTitle => 'Mapa & Ubicación'; - - @override - String get wizardMapDescription => - 'Rastree a su equipo en tiempo real y marque ubicaciones importantes para operaciones de búsqueda y rescate.'; - - @override - String get wizardMapFeature1 => - 'Marcadores SAR para personas encontradas, incendios y áreas de preparación'; - - @override - String get wizardMapFeature2 => - 'Rastreo GPS en tiempo real de miembros del equipo'; - - @override - String get wizardMapFeature3 => - 'Descargar mapas sin conexión para áreas remotas'; - - @override - String get wizardMapFeature4 => - 'Dibujar formas y compartir información táctica'; - @override String get viewWelcomeTutorial => 'Ver tutorial de bienvenida'; @@ -1920,11 +1732,11 @@ class AppLocalizationsEs extends AppLocalizations { 'Usa registros de paquetes, escaneo de espectro y diagnósticos de desarrollador al solucionar problemas de la malla.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => '¿Descubrir repetidores ahora?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Ejecutar descubrimiento de repetidores justo después de conectarse para ver nodos MeshCore cercanos y agregarlos a su red más rápido.'; @override String get contactInSensors => 'En Sensores'; @@ -2027,57 +1839,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get bandpassFilterVoice => 'Filtro de paso de banda de voz'; - @override - String get frequency => 'Frecuencia'; - - @override - String get australia => 'Australia'; - - @override - String get australiaNarrow => 'Australia (Estrecho)'; - - @override - String get australiaQld => 'Australia: QLD'; - - @override - String get australiaSaWa => 'Australia: SA, WA'; - - @override - String get newZealand => 'Nueva Zelanda'; - - @override - String get newZealandNarrow => 'Nueva Zelanda (Estrecho)'; - - @override - String get switzerland => 'Suiza'; - - @override - String get portugal433 => 'Portugal 433'; - - @override - String get portugal868 => 'Portugal 868'; - - @override - String get czechRepublicNarrow => 'República Checa (Estrecho)'; - - @override - String get eu433mhzLongRange => 'EU 433MHz (Largo Alcance)'; - - @override - String get euukDeprecated => 'UE/RU (Obsoleto)'; - - @override - String get euukNarrow => 'UE/RU (Estrecho)'; - - @override - String get usacanadaRecommended => 'EE.UU./Canadá (Recomendado)'; - - @override - String get vietnamDeprecated => 'Vietnam (Obsoleto)'; - - @override - String get vietnamNarrow => 'Vietnam (Estrecho)'; - @override String get active => 'Activo'; @@ -2087,15 +1848,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get all => 'Todo'; - @override - String get autoResolve => 'Resolver automáticamente'; - @override String get clearAllLabel => 'Borrar todo'; - @override - String get clearRelays => 'Borrar repetidores'; - @override String get clearFilters => 'Borrar filtros'; @@ -2171,18 +1926,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get share => 'Compartir'; - @override - String get shareContact => 'Compartir contacto'; - @override String get trace => 'Traza'; - @override - String get use => 'Usar'; - - @override - String get useSelectedFrequency => 'Usar frecuencia seleccionada'; - @override String get discovery => 'Descubrimiento'; @@ -2251,9 +1997,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get repeatersMap => 'Mapa de repetidores'; - @override - String get spectrumScan => 'Escaneo de espectro'; - @override String get blePacketLogs => 'Registros de paquetes BLE'; @@ -2287,9 +2030,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get enableProfiles => 'Habilitar perfiles'; - @override - String get autoRouteRotation => 'Rotación automática de ruta'; - @override String get nearestRepeaterFallback => 'Repetidor más cercano como reserva'; @@ -2312,14 +2052,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get showSarMarkersLabel => 'Mostrar marcadores SAR'; - @override - String get displaySarMarkersOnTheMainMap => - 'Mostrar marcadores SAR en el mapa principal'; - - @override - String get showAllContactTrailsLabel => - 'Mostrar todos los rastros de contactos'; - @override String get hideRepeatersOnMap => 'Ocultar repetidores en el mapa'; @@ -2335,24 +2067,12 @@ class AppLocalizationsEs extends AppLocalizations { @override String get voiceCompressor => 'Compresor de voz'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Equilibra niveles de habla suaves y altos'; - @override String get voiceLimiter => 'Limitador de voz'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Previene recorte de picos antes de codificar'; - @override String get micAutoGain => 'Ganancia automática del micrófono'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Permite al grabador ajustar el nivel de entrada'; - @override String get echoCancellation => 'Cancelación de eco'; @@ -2483,16 +2203,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get quiet => 'Silencioso'; - @override - String get moderate => 'Moderado'; - @override String get busy => 'Ocupado'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'El escaneo de espectro no encontró frecuencias candidatas'; - @override String get searchMessages => 'Buscar mensajes'; @@ -2502,9 +2215,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get takePhoto => 'Tomar foto'; - @override - String get dmOnly => 'Solo mensaje directo'; - @override String get allMessages => 'Todos los mensajes'; @@ -2562,14 +2272,6 @@ class AppLocalizationsEs extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Elija un preajuste o ajuste la configuración de radio.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Elija el nombre y la ubicación que comparte este dispositivo.'; - - @override - String get availableSpaceOnThisDevice => - 'Espacio disponible en este dispositivo.'; - @override String get used => 'Usado'; @@ -2623,12 +2325,6 @@ class AppLocalizationsEs extends AppLocalizations { @override String get source => 'Fuente'; - @override - String get manualRouteEdit => 'Edición manual de ruta'; - - @override - String get observedMeshRoute => 'Ruta mesh observada'; - @override String get allMessagesCleared => 'Todos los mensajes borrados'; @@ -2729,38 +2425,613 @@ class AppLocalizationsEs extends AppLocalizations { 'No hay contactos del dispositivo que borrar.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Z'; @override - String get regionScope => 'Region scope'; + String get add => 'Agregar'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Agregar detalles adicionales'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Agregar par'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Agregar par manualmente'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name agregado a contactos'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name agregado a Sensores'; + } + + @override + String get allowAll => 'Permitir todos'; + + @override + String get anonymousRxStats => 'Estadísticas RX anónimas'; + + @override + String get appearance => 'Apariencia'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Telemetría base'; + + @override + String get blePin => 'PIN BLE'; + + @override + String get buzzerAlerts => 'Alertas de zumbador'; + + @override + String get cancelImageReceive => 'Cancelar recepción de imagen'; + + @override + String get choose => 'Elegir'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Elige qué pestañas y secciones de contactos mostrar'; + + @override + String get clearCache => 'Limpiar caché'; + + @override + String get clearHistory => 'Limpiar historial'; + + @override + String get clearLiveView => 'Limpiar vista en vivo'; + + @override + String get clearLogs => 'Limpiar registros'; + + @override + String get clearOfflineCache => '¿Limpiar caché sin conexión?'; + + @override + String get clearOverlay => 'Limpiar superposición'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Limpiar ruta solo después de que fallen todos los reintentos'; + + @override + String get codecBitrateAndAudioProcessing => + 'Códec, tasa de bits y procesamiento de audio'; + + @override + String get connectByIpAddress => 'Conectar por dirección IP'; + + @override + String get controlWhichAlertsYouReceive => 'Controla qué alertas recibes'; + + @override + String get copyFullHex => 'Copiar Hex completo'; + + @override + String get copyRawResponse => 'Copiar respuesta sin procesar'; + + @override + String get couldNotLoadMetHistory => 'No se pudo cargar el historial MET'; + + @override + String customizeSensor(String name) { + return 'Personalizar $name'; + } + + @override + String get data => 'Datos'; + + @override + String get deleteGroup => 'Eliminar grupo'; + + @override + String deleteStyleConfirm(String name) { + return '¿Eliminar $name?'; + } + + @override + String deleteThisDrawing(String type) { + return '¿Eliminar este $type?'; + } + + @override + String get deny => 'Denegar'; + + @override + String get deviceInfo => 'Información del dispositivo'; + + @override + String get deviceSettings => 'Configuración del dispositivo'; + + @override + String get deviceTimeSynced => + 'Hora del dispositivo sincronizada con este teléfono.'; + + @override + String get disableFastGpsPublishing => 'Desactivar publicación rápida de GPS'; + + @override + String get displayMarkersAndTraceDatabase => + 'Pantalla, marcadores y base de datos de trazas'; + + @override + String get download => 'Descargar'; + + @override + String get environmentalTelemetry => 'Telemetría ambiental'; + + @override + String errorCheckingForUpdates(String error) { + return 'Error al buscar actualizaciones: $error'; + } + + @override + String errorGeneric(String error) { + return 'Error: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Error al abrir la descarga: $error'; + } + + @override + String get exportLogs => 'Exportar registros'; + + @override + String get extraAggressiveAvifCompression => 'Compresión AVIF extra agresiva'; + + @override + String failedToAddContact(String error) { + return 'Error al agregar contacto: $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Error al agregar $name: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Error al limpiar canales: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Error al limpiar contactos: $error'; + } + + @override + String get failedToConnectViaSerial => 'Error al conectar por serial'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Error al cargar imagen de vista previa: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Error al cargar traza: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Error al enviar marcador SAR: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Error al configurar modo de zumbador: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Error al configurar modo GPS: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Error al sincronizar hora del dispositivo: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Error al borrar datos del dispositivo: $error'; + } + + @override + String get fastGpsTargetChannel => 'Canal objetivo de GPS rápido'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Actualizaciones rápidas, umbrales y permisos'; + + @override + String get fetchingCatalog => 'Obteniendo catálogo...'; + + @override + String get fifteenMinutes => '15 minutos'; + + @override + String get fifteenSeconds => '15 segundos'; + + @override + String get filterByDirection => 'Filtrar por dirección'; + + @override + String get finish => 'Finalizar'; + + @override + String get fiveMinutes => '5 minutos'; + + @override + String get fiveSeconds => '5 segundos'; + + @override + String get fix => 'Posición'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'Política de anuncio GPS'; + + @override + String get gpsAndLocation => 'GPS y ubicación'; + + @override + String get gpsDiagnostics => 'Diagnósticos GPS'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Ayuda'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Oculto'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Cómo la radio agrega automáticamente nodos descubiertos.'; + + @override + String get images => 'Imágenes'; + + @override + String get importProfile => 'Importar perfil'; + + @override + String get lastFix => 'Última posición'; + + @override + String get latest => 'Más reciente'; + + @override + String get latitude => 'Latitud'; + + @override + String get loadASavedRegion => 'Cargar una región guardada'; + + @override + String get loading => 'Cargando'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Compartir ubicación, hardware e intervalo de actualización.'; + + @override + String get locationTelemetry => 'Telemetría de ubicación'; + + @override + String get lockDestination => 'Bloquear destino'; + + @override + String get longitude => 'Longitud'; + + @override + String get mapStyle => 'Estilo de mapa'; + + @override + String get max => 'Máx'; + + @override + String get maxZoom => 'Zoom máximo'; + + @override + String get messaging => 'Mensajería'; + + @override + String get metHistory => 'Historial MET'; + + @override + String get min => 'Mín'; + + @override + String get minZoom => 'Zoom mínimo'; + + @override + String get moveDown => 'Mover abajo'; + + @override + String get moveUp => 'Mover arriba'; + + @override + String get multiAckMode => 'Modo multi-ACK'; + + @override + String get multiDeviceWorkspaceManagement => + 'Gestión de espacio de trabajo multidispositivo'; + + @override + String get myLocation => 'Mi ubicación'; + + @override + String get nameAndTelemetryShared => + 'Nombre y telemetría compartidos con otros dispositivos.'; + + @override + String newVersionAvailable(String version) { + return 'Nueva versión: $version'; + } + + @override + String get newer => 'Más nuevo'; + + @override + String get noNeighboursFound => 'No se encontraron vecinos'; + + @override + String get noServersFound => 'No se encontraron servidores'; + + @override + String get notSet => 'Sin configurar'; + + @override + String get notifications => 'Notificaciones'; + + @override + String get offZeroSeconds => 'Apagado (0 s)'; + + @override + String get offlineMaps => 'Mapas sin conexión'; + + @override + String get older => 'Más antiguo'; + + @override + String get oneByteMode0 => '1 byte (modo 0)'; + + @override + String get oneHour => '1 hora'; + + @override + String get oneMinute => '1 minuto'; + + @override + String get openPacketLogs => 'Abrir registros de paquetes'; + + @override + String get packetTypeHelp => 'Ayuda de tipo de paquete'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Pega un enlace compartido o anuncio hex'; + + @override + String get pathHash => 'Hash de ruta'; + + @override + String get pathSize => 'Tamaño de ruta'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Polígono'; + + @override + String get rawResponseCopied => 'Respuesta sin procesar copiada'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Reenviar a través del repetidor más cercano en caso de fallo'; + + @override + String get resolveContact => 'Resolver contacto'; + + @override + String get routingRetriesAndDestinationLock => + 'Enrutamiento, reintentos y bloqueo de destino'; + + @override + String get samples => 'Muestras'; + + @override + String get satellites => 'Satélites'; + + @override + String get saving => 'Guardando...'; + + @override + String get search => 'Buscar'; + + @override + String get searchByNameOrToken => 'Buscar por nombre o token'; + + @override + String get searchDiscoveredNodes => 'Buscar nodos descubiertos'; + + @override + String get searchInCurrentFilter => 'Buscar en el filtro actual'; + + @override + String get searchLogs => 'Buscar registros...'; + + @override + String get searchSensors => 'Buscar sensores'; + + @override + String get searchThisSection => 'Buscar en esta sección'; + + @override + String get selectedRelays => 'Relés seleccionados'; + + @override + String get sensor => 'Sensor'; + + @override + String serialError(String error) { + return 'Error serial: $error'; + } + + @override + String setPathForContact(String name) { + return 'Establecer ruta para $name'; + } + + @override + String get shareLiveGps => 'Compartir GPS en vivo'; + + @override + String get shareMyTiles => 'Compartir mis mosaicos'; + + @override + String get sharingLocationFromPhone => + 'Compartiendo ubicación en este canal desde el teléfono.'; + + @override + String get sharingLocationFromRadio => + 'Compartiendo ubicación en este canal desde la radio.'; + + @override + String signalDbm(String rssi) { + return 'Señal $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => 'Tamaño, compresión y vista previa'; + + @override + String get skip => 'Omitir'; + + @override + String get smallerFileSize => 'Tamaño de archivo más pequeño'; + + @override + String get sort => 'Ordenar'; + + @override + String get stoppedSharingLocation => + 'Se dejó de compartir ubicación en este canal.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Suprimir notificaciones en primer plano'; + + @override + String get tabsAndNavigation => 'Pestañas y navegación'; + + @override + String get templatesAndTutorials => 'Plantillas y tutoriales'; + + @override + String get tenMinutes => '10 minutos'; + + @override + String get tenSeconds => '10 segundos'; + + @override + String get testSendUpdate => 'Probar envío de actualización'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Tema, idioma y preferencias de visualización'; + + @override + String get thirtyMinutes => '30 minutos'; + + @override + String get thirtySeconds => '30 segundos'; + + @override + String get threeBytesMode2 => '3 bytes (modo 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Estadísticas de tráfico, historial de mensajes y herramientas de desarrollo'; + + @override + String get twoBytesMode1 => '2 bytes (modo 1)'; + + @override + String get twoMinutes => '2 minutos'; + + @override + String get undo => 'Deshacer'; + + @override + String get updated => 'Actualizado'; + + @override + String get useContactFlags => 'Usar banderas de contacto'; + + @override + String get useSavedCoordinates => 'Usar coordenadas guardadas'; + + @override + String get view => 'Ver'; + + @override + String get viewNeighbours => 'Ver vecinos'; + + @override + String get viewPublicStats => 'Ver estadísticas públicas'; + + @override + String get setRegionScope => 'Establecer ámbito de región'; + + @override + String get regionScope => 'Ámbito de región'; + + @override + String get regionScopeNone => 'Ninguno (global)'; + + @override + String get clearRegionScope => 'Limpiar ámbito'; + + @override + String get regionScopeWarning => + 'Solo los repetidores que permitan esta región reenviarán.'; + + @override + String get discoverRegions => 'Descubrir desde repetidores'; + + @override + String get discoveringRegions => 'Descubriendo regiones...'; + + @override + String get enterRegionName => 'Nombre de región (ej. auckland)'; + + @override + String get noRegionsFound => 'No se encontraron regiones en este repetidor.'; + + @override + String regionScopeSet(String name) { + return 'Ámbito de región establecido a $name'; + } + + @override + String get regionScopeCleared => 'Ámbito de región limpiado'; } diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index bdf7492..71f81a3 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -35,9 +35,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get scanAgain => 'Rechercher à nouveau'; - @override - String get tapToConnect => 'Appuyez pour connecter'; - @override String get deviceNotConnected => 'Appareil non connecté'; @@ -110,17 +107,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get showRxTxIndicators => 'Afficher les indicateurs RX/TX'; - @override - String get displayPacketActivity => - 'Afficher les indicateurs d\'activité des paquets dans la barre supérieure'; - @override String get disableMap => 'Désactiver la carte'; - @override - String get disableMapDescription => - 'Masquer l\'onglet carte pour réduire la consommation de batterie'; - @override String get language => 'Langue'; @@ -142,9 +131,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get appVersion => 'Version de l\'application'; - @override - String get appName => 'Nom de l\'application'; - @override String get aboutMeshCoreSar => 'À propos de MeshCore SAR'; @@ -241,9 +227,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get resetPath => 'Réinitialiser le chemin (Re-router)'; - @override - String get publicKeyCopied => 'Clé publique copiée dans le presse-papiers'; - @override String copiedToClipboard(String label) { return '$label copié dans le presse-papiers'; @@ -484,22 +467,22 @@ class AppLocalizationsFr extends AppLocalizations { String get flood => 'Inondation'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Envoi automatique'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Envoyer via le chemin actuel.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Envoi direct'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Envoyer directement à ce contact.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Envoi par inondation'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Envoyer via tous les relais.'; @override String get loggedIn => 'Connecté'; @@ -539,18 +522,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get lastSeen => 'Dernière vue'; - @override - String get roomStatus => 'État du salon'; - - @override - String get loginStatus => 'État de connexion'; - - @override - String get notLoggedIn => 'Non connecté'; - - @override - String get adminAccess => 'Accès administrateur'; - @override String get yes => 'Oui'; @@ -560,12 +531,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get permissions => 'Permissions'; - @override - String get passwordSaved => 'Mot de passe enregistré'; - - @override - String get locationColon => 'Position :'; - @override String get telemetry => 'Télémétrie'; @@ -587,14 +552,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get gpsTelemetry => 'GPS (Télémétrie)'; - @override - String get updated => 'Mis à jour'; - - @override - String pathResetInfo(String name) { - return 'Chemin réinitialisé pour $name. Le prochain message trouvera un nouvel itinéraire.'; - } - @override String get reLoginToRoom => 'Se reconnecter au salon'; @@ -846,9 +803,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get frequencyMHz => 'Fréquence (MHz)'; - @override - String get frequencyExample => 'ex. : 869,618'; - @override String get bandwidth => 'Bande passante'; @@ -924,48 +878,12 @@ class AppLocalizationsFr extends AppLocalizations { @override String get trailControls => 'Contrôles de la trace'; - @override - String get contactTrails => 'Traces des contacts'; - - @override - String get showAllContactTrails => 'Afficher toutes les traces des contacts'; - - @override - String get noContactsWithLocationHistory => - 'Aucun contact avec historique de localisation'; - - @override - String showingTrailsForContacts(int count) { - return 'Affichage des traces pour $count contacts'; - } - - @override - String get individualContactTrails => 'Traces individuelles des contacts'; - - @override - String get deviceInformation => 'Informations sur l\'appareil'; - - @override - String get bleName => 'Nom BLE'; - - @override - String get meshName => 'Nom du maillage'; - - @override - String get notSet => 'Non défini'; - @override String get model => 'Modèle'; @override String get version => 'Version'; - @override - String get buildDate => 'Date de compilation'; - - @override - String get firmware => 'Micrologiciel'; - @override String get maxContacts => 'Contacts max'; @@ -975,21 +893,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get publicInfo => 'Informations publiques'; - @override - String get meshNetworkName => 'Nom du réseau maillé'; - - @override - String get nameBroadcastInMesh => 'Nom diffusé dans les annonces du maillage'; - - @override - String get telemetryAndLocationSharing => 'Télémétrie et partage de position'; - - @override - String get lat => 'Lat'; - - @override - String get lon => 'Lon'; - @override String get useCurrentLocation => 'Utiliser la position actuelle'; @@ -1010,11 +913,6 @@ class AppLocalizationsFr extends AppLocalizations { return 'Type $number'; } - @override - String copiedToClipboardShort(String label) { - return '$label copié dans le presse-papiers'; - } - @override String failedToSave(String error) { return 'Échec de l\'enregistrement : $error'; @@ -1028,9 +926,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get sarTemplates => 'Modèles SAR'; - @override - String get manageSarTemplates => 'Gérer les modèles SAR'; - @override String get addTemplate => 'Ajouter un modèle'; @@ -1132,9 +1027,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get ok => 'OK'; - @override - String get permissionsSection => 'Autorisations'; - @override String get locationPermission => 'Autorisation de localisation'; @@ -1582,88 +1474,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get wizardWelcomeTitle => 'Bienvenue dans MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Un outil de communication hors ligne puissant pour les opérations de recherche et de sauvetage. Connectez-vous avec votre équipe en utilisant la technologie radio maillée lorsque les réseaux traditionnels ne sont pas disponibles.'; - - @override - String get wizardConnectingTitle => 'Connexion à votre Radio'; - - @override - String get wizardConnectingDescription => - 'Connectez votre smartphone à un appareil radio MeshCore via Bluetooth pour commencer à communiquer hors ligne.'; - - @override - String get wizardConnectingFeature1 => - 'Rechercher les appareils MeshCore à proximité'; - - @override - String get wizardConnectingFeature2 => - 'Coupler avec votre radio via Bluetooth'; - - @override - String get wizardConnectingFeature3 => - 'Fonctionne entièrement hors ligne - aucun internet requis'; - - @override - String get wizardChannelTitle => 'Canaux'; - - @override - String get wizardChannelDescription => - 'Diffusez des messages à tous sur un canal, parfait pour les annonces et la coordination de toute l\'équipe.'; - - @override - String get wizardChannelFeature1 => - 'Canal public pour la communication générale de l\'équipe'; - - @override - String get wizardChannelFeature2 => - 'Créer des canaux personnalisés pour des groupes spécifiques'; - - @override - String get wizardChannelFeature3 => - 'Les messages sont automatiquement relayés par le maillage'; - - @override - String get wizardContactsTitle => 'Contacts'; - - @override - String get wizardContactsDescription => - 'Les membres de votre équipe apparaissent automatiquement lorsqu\'ils rejoignent le réseau maillé. Envoyez-leur des messages directs ou consultez leur emplacement.'; - - @override - String get wizardContactsFeature1 => 'Contacts découverts automatiquement'; - - @override - String get wizardContactsFeature2 => 'Envoyer des messages directs privés'; - - @override - String get wizardContactsFeature3 => - 'Voir le niveau de batterie et l\'heure de dernière vue'; - - @override - String get wizardMapTitle => 'Carte & Localisation'; - - @override - String get wizardMapDescription => - 'Suivez votre équipe en temps réel et marquez les emplacements importants pour les opérations de recherche et de sauvetage.'; - - @override - String get wizardMapFeature1 => - 'Marqueurs SAR pour les personnes retrouvées, les incendies et les zones de rassemblement'; - - @override - String get wizardMapFeature2 => - 'Suivi GPS en temps réel des membres de l\'équipe'; - - @override - String get wizardMapFeature3 => - 'Télécharger des cartes hors ligne pour les zones éloignées'; - - @override - String get wizardMapFeature4 => - 'Dessiner des formes et partager des informations tactiques'; - @override String get viewWelcomeTutorial => 'Voir le tutoriel de bienvenue'; @@ -1924,11 +1734,11 @@ class AppLocalizationsFr extends AppLocalizations { 'Utilisez les journaux de paquets, le balayage du spectre et les diagnostics développeur pour dépanner le réseau maillé.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Découvrir les relais maintenant ?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Lancer la découverte des relais juste après la connexion pour voir les nœuds MeshCore à proximité et les ajouter plus rapidement à votre réseau.'; @override String get contactInSensors => 'Dans Capteurs'; @@ -2031,57 +1841,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get bandpassFilterVoice => 'Filtre passe-bande voix'; - @override - String get frequency => 'Fréquence'; - - @override - String get australia => 'Australie'; - - @override - String get australiaNarrow => 'Australie (Étroit)'; - - @override - String get australiaQld => 'Australie: QLD'; - - @override - String get australiaSaWa => 'Australie: SA, WA'; - - @override - String get newZealand => 'Nouvelle-Zélande'; - - @override - String get newZealandNarrow => 'Nouvelle-Zélande (Étroit)'; - - @override - String get switzerland => 'Suisse'; - - @override - String get portugal433 => 'Portugal 433'; - - @override - String get portugal868 => 'Portugal 868'; - - @override - String get czechRepublicNarrow => 'République tchèque (Étroit)'; - - @override - String get eu433mhzLongRange => 'UE 433MHz (Longue Portée)'; - - @override - String get euukDeprecated => 'UE/RU (Obsolète)'; - - @override - String get euukNarrow => 'UE/RU (Étroit)'; - - @override - String get usacanadaRecommended => 'USA/Canada (Recommandé)'; - - @override - String get vietnamDeprecated => 'Vietnam (Obsolète)'; - - @override - String get vietnamNarrow => 'Vietnam (Étroit)'; - @override String get active => 'Actif'; @@ -2091,15 +1850,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get all => 'Tout'; - @override - String get autoResolve => 'Résolution automatique'; - @override String get clearAllLabel => 'Tout effacer'; - @override - String get clearRelays => 'Effacer les relais'; - @override String get clearFilters => 'Effacer les filtres'; @@ -2175,18 +1928,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get share => 'Partager'; - @override - String get shareContact => 'Partager le contact'; - @override String get trace => 'Trace'; - @override - String get use => 'Utiliser'; - - @override - String get useSelectedFrequency => 'Utiliser la fréquence sélectionnée'; - @override String get discovery => 'Découverte'; @@ -2253,9 +1997,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get repeatersMap => 'Carte des répéteurs'; - @override - String get spectrumScan => 'Scan spectral'; - @override String get blePacketLogs => 'Journaux de paquets BLE'; @@ -2289,9 +2030,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get enableProfiles => 'Activer les profils'; - @override - String get autoRouteRotation => 'Rotation automatique de route'; - @override String get nearestRepeaterFallback => 'Répéteur le plus proche en repli'; @@ -2313,14 +2051,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get showSarMarkersLabel => 'Afficher les marqueurs SAR'; - @override - String get displaySarMarkersOnTheMainMap => - 'Afficher les marqueurs SAR sur la carte'; - - @override - String get showAllContactTrailsLabel => - 'Afficher toutes les traces de contacts'; - @override String get hideRepeatersOnMap => 'Masquer les répéteurs sur la carte'; @@ -2337,24 +2067,12 @@ class AppLocalizationsFr extends AppLocalizations { @override String get voiceCompressor => 'Compresseur vocal'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Équilibre les niveaux faibles et forts'; - @override String get voiceLimiter => 'Limiteur vocal'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Empêche l\'écrêtage avant l\'encodage'; - @override String get micAutoGain => 'Gain auto du micro'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Laisse l\'enregistreur ajuster le niveau d\'entrée'; - @override String get echoCancellation => 'Annulation d\'écho'; @@ -2486,16 +2204,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get quiet => 'Calme'; - @override - String get moderate => 'Modéré'; - @override String get busy => 'Occupé'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'Le scan spectral n\'a trouvé aucune fréquence candidate'; - @override String get searchMessages => 'Rechercher des messages'; @@ -2505,9 +2216,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get takePhoto => 'Prendre une photo'; - @override - String get dmOnly => 'Message direct uniquement'; - @override String get allMessages => 'Tous les messages'; @@ -2565,14 +2273,6 @@ class AppLocalizationsFr extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Choisissez un préréglage ou ajustez les paramètres radio.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Choisissez le nom et l\'emplacement partagés par cet appareil.'; - - @override - String get availableSpaceOnThisDevice => - 'Espace disponible sur cet appareil.'; - @override String get used => 'Utilisé'; @@ -2626,12 +2326,6 @@ class AppLocalizationsFr extends AppLocalizations { @override String get source => 'Source'; - @override - String get manualRouteEdit => 'Édition manuelle de route'; - - @override - String get observedMeshRoute => 'Route mesh observée'; - @override String get allMessagesCleared => 'Tous les messages effacés'; @@ -2733,38 +2427,616 @@ class AppLocalizationsFr extends AppLocalizations { 'Aucun contact de l\'appareil à effacer.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Z'; @override - String get regionScope => 'Region scope'; + String get add => 'Ajouter'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Ajouter des détails supplémentaires'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Ajouter un pair'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Ajouter un pair manuellement'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name ajouté aux contacts'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name ajouté aux capteurs'; + } + + @override + String get allowAll => 'Tout autoriser'; + + @override + String get anonymousRxStats => 'Statistiques RX anonymes'; + + @override + String get appearance => 'Apparence'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Télémétrie de base'; + + @override + String get blePin => 'PIN BLE'; + + @override + String get buzzerAlerts => 'Alertes sonores'; + + @override + String get cancelImageReceive => 'Annuler la réception d\'image'; + + @override + String get choose => 'Choisir'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Choisir les onglets et sections de contacts à afficher'; + + @override + String get clearCache => 'Vider le cache'; + + @override + String get clearHistory => 'Effacer l\'historique'; + + @override + String get clearLiveView => 'Effacer la vue en direct'; + + @override + String get clearLogs => 'Effacer les journaux'; + + @override + String get clearOfflineCache => 'Vider le cache hors ligne ?'; + + @override + String get clearOverlay => 'Effacer la superposition'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Effacer la route uniquement après l\'échec de toutes les tentatives'; + + @override + String get codecBitrateAndAudioProcessing => + 'Codec, débit et traitement audio'; + + @override + String get connectByIpAddress => 'Connexion par adresse IP'; + + @override + String get controlWhichAlertsYouReceive => + 'Contrôler les alertes que vous recevez'; + + @override + String get copyFullHex => 'Copier le Hex complet'; + + @override + String get copyRawResponse => 'Copier la réponse brute'; + + @override + String get couldNotLoadMetHistory => + 'Impossible de charger l\'historique MET'; + + @override + String customizeSensor(String name) { + return 'Personnaliser $name'; + } + + @override + String get data => 'Données'; + + @override + String get deleteGroup => 'Supprimer le groupe'; + + @override + String deleteStyleConfirm(String name) { + return 'Supprimer $name ?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Supprimer ce $type ?'; + } + + @override + String get deny => 'Refuser'; + + @override + String get deviceInfo => 'Infos de l\'appareil'; + + @override + String get deviceSettings => 'Paramètres de l\'appareil'; + + @override + String get deviceTimeSynced => + 'Heure de l\'appareil synchronisée avec ce téléphone.'; + + @override + String get disableFastGpsPublishing => 'Désactiver la publication GPS rapide'; + + @override + String get displayMarkersAndTraceDatabase => + 'Affichage, marqueurs et base de données de traces'; + + @override + String get download => 'Télécharger'; + + @override + String get environmentalTelemetry => 'Télémétrie environnementale'; + + @override + String errorCheckingForUpdates(String error) { + return 'Erreur lors de la vérification des mises à jour : $error'; + } + + @override + String errorGeneric(String error) { + return 'Erreur : $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Erreur lors de l\'ouverture du téléchargement : $error'; + } + + @override + String get exportLogs => 'Exporter les journaux'; + + @override + String get extraAggressiveAvifCompression => + 'Compression AVIF extra-agressive'; + + @override + String failedToAddContact(String error) { + return 'Échec de l\'ajout du contact : $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Échec de l\'ajout de $name : $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Échec de l\'effacement des canaux : $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Échec de l\'effacement des contacts : $error'; + } + + @override + String get failedToConnectViaSerial => 'Échec de la connexion via série'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Échec du chargement de l\'aperçu : $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Échec du chargement de la trace : $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Échec de l\'envoi du marqueur SAR : $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Échec du réglage du mode buzzer : $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Échec du réglage du mode GPS : $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Échec de la synchronisation de l\'heure de l\'appareil : $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Échec de l\'effacement des données de l\'appareil : $error'; + } + + @override + String get fastGpsTargetChannel => 'Canal cible GPS rapide'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Mises à jour rapides, seuils et permissions'; + + @override + String get fetchingCatalog => 'Récupération du catalogue...'; + + @override + String get fifteenMinutes => '15 minutes'; + + @override + String get fifteenSeconds => '15 secondes'; + + @override + String get filterByDirection => 'Filtrer par direction'; + + @override + String get finish => 'Terminer'; + + @override + String get fiveMinutes => '5 minutes'; + + @override + String get fiveSeconds => '5 secondes'; + + @override + String get fix => 'Correctif'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'Politique d\'annonce GPS'; + + @override + String get gpsAndLocation => 'GPS et localisation'; + + @override + String get gpsDiagnostics => 'Diagnostics GPS'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Aide'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Masqué'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Comment la radio ajoute automatiquement les nœuds découverts.'; + + @override + String get images => 'Images'; + + @override + String get importProfile => 'Importer un profil'; + + @override + String get lastFix => 'Dernier correctif'; + + @override + String get latest => 'Le plus récent'; + + @override + String get latitude => 'Latitude'; + + @override + String get loadASavedRegion => 'Charger une région enregistrée'; + + @override + String get loading => 'Chargement'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Partage de position, matériel et intervalle de mise à jour.'; + + @override + String get locationTelemetry => 'Télémétrie de position'; + + @override + String get lockDestination => 'Verrouiller la destination'; + + @override + String get longitude => 'Longitude'; + + @override + String get mapStyle => 'Style de carte'; + + @override + String get max => 'Max'; + + @override + String get maxZoom => 'Zoom max'; + + @override + String get messaging => 'Messagerie'; + + @override + String get metHistory => 'Historique MET'; + + @override + String get min => 'Min'; + + @override + String get minZoom => 'Zoom min'; + + @override + String get moveDown => 'Déplacer vers le bas'; + + @override + String get moveUp => 'Déplacer vers le haut'; + + @override + String get multiAckMode => 'Mode multi-ACK'; + + @override + String get multiDeviceWorkspaceManagement => + 'Gestion d\'espace de travail multi-appareils'; + + @override + String get myLocation => 'Ma position'; + + @override + String get nameAndTelemetryShared => + 'Nom et télémétrie partagés avec d\'autres appareils.'; + + @override + String newVersionAvailable(String version) { + return 'Nouvelle version : $version'; + } + + @override + String get newer => 'Plus récent'; + + @override + String get noNeighboursFound => 'Aucun voisin trouvé'; + + @override + String get noServersFound => 'Aucun serveur trouvé'; + + @override + String get notSet => 'Non défini'; + + @override + String get notifications => 'Notifications'; + + @override + String get offZeroSeconds => 'Désactivé (0 s)'; + + @override + String get offlineMaps => 'Cartes hors ligne'; + + @override + String get older => 'Plus ancien'; + + @override + String get oneByteMode0 => '1 octet (mode 0)'; + + @override + String get oneHour => '1 heure'; + + @override + String get oneMinute => '1 minute'; + + @override + String get openPacketLogs => 'Ouvrir les journaux de paquets'; + + @override + String get packetTypeHelp => 'Aide sur les types de paquets'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Coller un lien de partage ou une annonce hex'; + + @override + String get pathHash => 'Hash du chemin'; + + @override + String get pathSize => 'Taille du chemin'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Polygone'; + + @override + String get rawResponseCopied => 'Réponse brute copiée'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Renvoyer via le répéteur le plus proche en cas d\'échec'; + + @override + String get resolveContact => 'Résoudre le contact'; + + @override + String get routingRetriesAndDestinationLock => + 'Routage, tentatives et verrouillage de destination'; + + @override + String get samples => 'Échantillons'; + + @override + String get satellites => 'Satellites'; + + @override + String get saving => 'Enregistrement...'; + + @override + String get search => 'Rechercher'; + + @override + String get searchByNameOrToken => 'Rechercher par nom ou jeton'; + + @override + String get searchDiscoveredNodes => 'Rechercher les nœuds découverts'; + + @override + String get searchInCurrentFilter => 'Rechercher dans le filtre actuel'; + + @override + String get searchLogs => 'Rechercher dans les journaux...'; + + @override + String get searchSensors => 'Rechercher les capteurs'; + + @override + String get searchThisSection => 'Rechercher dans cette section'; + + @override + String get selectedRelays => 'Relais sélectionnés'; + + @override + String get sensor => 'Capteur'; + + @override + String serialError(String error) { + return 'Erreur série : $error'; + } + + @override + String setPathForContact(String name) { + return 'Définir le chemin pour $name'; + } + + @override + String get shareLiveGps => 'Partager le GPS en direct'; + + @override + String get shareMyTiles => 'Partager mes tuiles'; + + @override + String get sharingLocationFromPhone => + 'Partage de la position sur ce canal depuis le téléphone.'; + + @override + String get sharingLocationFromRadio => + 'Partage de la position sur ce canal depuis la radio.'; + + @override + String signalDbm(String rssi) { + return 'Signal $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => 'Taille, compression et aperçu'; + + @override + String get skip => 'Passer'; + + @override + String get smallerFileSize => 'Taille de fichier réduite'; + + @override + String get sort => 'Trier'; + + @override + String get stoppedSharingLocation => + 'Arrêt du partage de position sur ce canal.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Supprimer les notifications en premier plan'; + + @override + String get tabsAndNavigation => 'Onglets et navigation'; + + @override + String get templatesAndTutorials => 'Modèles et tutoriels'; + + @override + String get tenMinutes => '10 minutes'; + + @override + String get tenSeconds => '10 secondes'; + + @override + String get testSendUpdate => 'Tester l\'envoi de mise à jour'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Thème, langue et préférences d\'affichage'; + + @override + String get thirtyMinutes => '30 minutes'; + + @override + String get thirtySeconds => '30 secondes'; + + @override + String get threeBytesMode2 => '3 octets (mode 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Statistiques de trafic, historique des messages et outils de développement'; + + @override + String get twoBytesMode1 => '2 octets (mode 1)'; + + @override + String get twoMinutes => '2 minutes'; + + @override + String get undo => 'Annuler'; + + @override + String get updated => 'Mis à jour'; + + @override + String get useContactFlags => 'Utiliser les drapeaux de contact'; + + @override + String get useSavedCoordinates => 'Utiliser les coordonnées enregistrées'; + + @override + String get view => 'Voir'; + + @override + String get viewNeighbours => 'Voir les voisins'; + + @override + String get viewPublicStats => 'Voir les statistiques publiques'; + + @override + String get setRegionScope => 'Définir la portée régionale'; + + @override + String get regionScope => 'Portée régionale'; + + @override + String get regionScopeNone => 'Aucune (globale)'; + + @override + String get clearRegionScope => 'Effacer la portée'; + + @override + String get regionScopeWarning => + 'Seuls les relais autorisant cette région retransmettront.'; + + @override + String get discoverRegions => 'Découvrir depuis les relais'; + + @override + String get discoveringRegions => 'Découverte des régions...'; + + @override + String get enterRegionName => 'Nom de région (ex. auckland)'; + + @override + String get noRegionsFound => 'Aucune région trouvée sur ce relais.'; + + @override + String regionScopeSet(String name) { + return 'Portée régionale définie sur $name'; + } + + @override + String get regionScopeCleared => 'Portée régionale effacée'; } diff --git a/lib/l10n/app_localizations_hr.dart b/lib/l10n/app_localizations_hr.dart index 9bffdab..6d8ffb6 100644 --- a/lib/l10n/app_localizations_hr.dart +++ b/lib/l10n/app_localizations_hr.dart @@ -35,9 +35,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get scanAgain => 'Skeniraj ponovno'; - @override - String get tapToConnect => 'Dodirnite za povezivanje'; - @override String get deviceNotConnected => 'Uređaj nije povezan'; @@ -109,16 +106,9 @@ class AppLocalizationsHr extends AppLocalizations { @override String get showRxTxIndicators => 'Prikaži RX/TX indikatore'; - @override - String get displayPacketActivity => - 'Prikaži indikatore aktivnosti paketa u gornjoj traci'; - @override String get disableMap => 'Onemogući kartu'; - @override - String get disableMapDescription => 'Sakrij karticu karte za uštedu baterije'; - @override String get language => 'Jezik'; @@ -140,9 +130,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get appVersion => 'Verzija aplikacije'; - @override - String get appName => 'Ime aplikacije'; - @override String get aboutMeshCoreSar => 'O MeshCore SAR'; @@ -238,9 +225,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get resetPath => 'Resetiraj put (preusmjeri)'; - @override - String get publicKeyCopied => 'Javni ključ kopiran u međuspremnik'; - @override String copiedToClipboard(String label) { return '$label kopirano u međuspremnik'; @@ -477,22 +461,22 @@ class AppLocalizationsHr extends AppLocalizations { String get flood => 'Preplavljanje'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Automatsko slanje'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Pošalji trenutnom rutom.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Izravno slanje'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Pošalji izravno ovom kontaktu.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Slanje poplavom'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Pošalji preko svih repetitora.'; @override String get loggedIn => 'Prijavljen'; @@ -532,18 +516,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get lastSeen => 'Zadnje viđen'; - @override - String get roomStatus => 'Status sobe'; - - @override - String get loginStatus => 'Status prijave'; - - @override - String get notLoggedIn => 'Nije prijavljen'; - - @override - String get adminAccess => 'Administratorski pristup'; - @override String get yes => 'Da'; @@ -553,12 +525,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get permissions => 'Dopuštenja'; - @override - String get passwordSaved => 'Lozinka spremljena'; - - @override - String get locationColon => 'Lokacija:'; - @override String get telemetry => 'Telemetrija'; @@ -580,14 +546,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get gpsTelemetry => 'GPS (Telemetrija)'; - @override - String get updated => 'Ažurirano'; - - @override - String pathResetInfo(String name) { - return 'Put resetiran za $name. Sljedeća poruka će pronaći novu rutu.'; - } - @override String get reLoginToRoom => 'Ponovna prijava u sobu'; @@ -839,9 +797,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get frequencyMHz => 'Frekvencija (MHz)'; - @override - String get frequencyExample => 'npr. 869.618'; - @override String get bandwidth => 'Širina pojasa'; @@ -916,48 +871,12 @@ class AppLocalizationsHr extends AppLocalizations { @override String get trailControls => 'Upravljanje putanjom'; - @override - String get contactTrails => 'Putanje kontakata'; - - @override - String get showAllContactTrails => 'Prikaži sve putanje kontakata'; - - @override - String get noContactsWithLocationHistory => - 'Nema kontakata s poviješću lokacije'; - - @override - String showingTrailsForContacts(int count) { - return 'Prikazujem putanje za $count kontakata'; - } - - @override - String get individualContactTrails => 'Pojedinačne putanje kontakata'; - - @override - String get deviceInformation => 'Informacije o uređaju'; - - @override - String get bleName => 'BLE naziv'; - - @override - String get meshName => 'Mesh naziv'; - - @override - String get notSet => 'Nije postavljeno'; - @override String get model => 'Model'; @override String get version => 'Verzija'; - @override - String get buildDate => 'Datum izgradnje'; - - @override - String get firmware => 'Firmver'; - @override String get maxContacts => 'Maks. kontakata'; @@ -967,21 +886,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get publicInfo => 'Javne informacije'; - @override - String get meshNetworkName => 'Naziv mesh mreže'; - - @override - String get nameBroadcastInMesh => 'Naziv koji se emitira u mesh oglasima'; - - @override - String get telemetryAndLocationSharing => 'Telemetrija i dijeljenje lokacije'; - - @override - String get lat => 'Šir'; - - @override - String get lon => 'Duž'; - @override String get useCurrentLocation => 'Koristi trenutnu lokaciju'; @@ -1002,11 +906,6 @@ class AppLocalizationsHr extends AppLocalizations { return 'Tip $number'; } - @override - String copiedToClipboardShort(String label) { - return 'Kopirano $label u međuspremnik'; - } - @override String failedToSave(String error) { return 'Neuspjelo spremanje: $error'; @@ -1020,9 +919,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get sarTemplates => 'SAR predlošci'; - @override - String get manageSarTemplates => 'Upravljanje SAR predlošcima'; - @override String get addTemplate => 'Dodaj predložak'; @@ -1124,9 +1020,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get ok => 'U redu'; - @override - String get permissionsSection => 'Dozvole'; - @override String get locationPermission => 'Dozvola za lokaciju'; @@ -1563,85 +1456,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get wizardWelcomeTitle => 'Dobrodošli u MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Moćan alat za komunikaciju izvan mreže za spasilačke operacije. Povežite se s timom uz mesh radijsku tehnologiju kada tradicionalne mreže nisu dostupne.'; - - @override - String get wizardConnectingTitle => 'Povezivanje s radiom'; - - @override - String get wizardConnectingDescription => - 'Povežite telefon s MeshCore radijskim uređajem putem Bluetootha i započnite komunikaciju izvan mreže.'; - - @override - String get wizardConnectingFeature1 => 'Skenira obližnje MeshCore uređaje'; - - @override - String get wizardConnectingFeature2 => - 'Uparivanje s radijem putem Bluetootha'; - - @override - String get wizardConnectingFeature3 => - 'Radi potpuno izvan mreže — internet nije potreban'; - - @override - String get wizardChannelTitle => 'Kanali'; - - @override - String get wizardChannelDescription => - 'Šaljite poruke svima na kanalu — idealno za obavijesti i koordinaciju tima.'; - - @override - String get wizardChannelFeature1 => 'Javni kanal za opću komunikaciju ekipe'; - - @override - String get wizardChannelFeature2 => - 'Stvorite prilagođene kanale za specifične grupe'; - - @override - String get wizardChannelFeature3 => - 'Poruke se automatski prosljeđuju putem mreže'; - - @override - String get wizardContactsTitle => 'Kontakti'; - - @override - String get wizardContactsDescription => - 'Članovi tima se prikazuju automatski kada se pridruže mesh mreži. Šaljite im izravne poruke ili pogledajte njihovu lokaciju.'; - - @override - String get wizardContactsFeature1 => 'Kontakti se automatski otkrivaju'; - - @override - String get wizardContactsFeature2 => 'Šaljite privatne direktne poruke'; - - @override - String get wizardContactsFeature3 => - 'Prikažite stanje baterije i vrijeme zadnje aktivnosti'; - - @override - String get wizardMapTitle => 'Karta i lokacija'; - - @override - String get wizardMapDescription => - 'Pratite tim u stvarnom vremenu i označavajte ključne lokacije za spasilačke operacije.'; - - @override - String get wizardMapFeature1 => - 'SAR oznake za pronađene osobe, požare i točke okupljanja'; - - @override - String get wizardMapFeature2 => - 'GPS praćenje članova tima u stvarnom vremenu'; - - @override - String get wizardMapFeature3 => 'Preuzmite karte za rad izvan mreže'; - - @override - String get wizardMapFeature4 => - 'Crtajte oblike i dijelite taktičke informacije'; - @override String get viewWelcomeTutorial => 'Pogledaj uputu dobrodošlice'; @@ -1900,11 +1714,11 @@ class AppLocalizationsHr extends AppLocalizations { 'Koristite zapisnike paketa, skeniranje spektra i razvojnu dijagnostiku pri rješavanju problema s mesh mrežom.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Otkriti repetitore sada?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Pokrenite otkrivanje repetitora odmah nakon povezivanja kako biste vidjeli obližnje MeshCore čvorove i brže ih dodali u svoju mrežu.'; @override String get contactInSensors => 'U Senzorima'; @@ -2007,57 +1821,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get bandpassFilterVoice => 'Pojasni filtar glasa'; - @override - String get frequency => 'Frekvencija'; - - @override - String get australia => 'Australija'; - - @override - String get australiaNarrow => 'Australija (usko)'; - - @override - String get australiaQld => 'Australija: QLD'; - - @override - String get australiaSaWa => 'Australija: SA, WA'; - - @override - String get newZealand => 'Novi Zeland'; - - @override - String get newZealandNarrow => 'Novi Zeland (usko)'; - - @override - String get switzerland => 'Švicarska'; - - @override - String get portugal433 => 'Portugal 433'; - - @override - String get portugal868 => 'Portugal 868'; - - @override - String get czechRepublicNarrow => 'Češka (usko)'; - - @override - String get eu433mhzLongRange => 'EU 433MHz (veliki domet)'; - - @override - String get euukDeprecated => 'EU/UK (zastarjelo)'; - - @override - String get euukNarrow => 'EU/UK (usko)'; - - @override - String get usacanadaRecommended => 'SAD/Kanada (preporučeno)'; - - @override - String get vietnamDeprecated => 'Vijetnam (zastarjelo)'; - - @override - String get vietnamNarrow => 'Vijetnam (usko)'; - @override String get active => 'Aktivno'; @@ -2067,15 +1830,9 @@ class AppLocalizationsHr extends AppLocalizations { @override String get all => 'Sve'; - @override - String get autoResolve => 'Automatski razriješi'; - @override String get clearAllLabel => 'Očisti sve'; - @override - String get clearRelays => 'Očisti posrednike'; - @override String get clearFilters => 'Očisti filtre'; @@ -2151,18 +1908,9 @@ class AppLocalizationsHr extends AppLocalizations { @override String get share => 'Dijeli'; - @override - String get shareContact => 'Dijeli kontakt'; - @override String get trace => 'Praćenje'; - @override - String get use => 'Koristi'; - - @override - String get useSelectedFrequency => 'Koristi odabranu frekvenciju'; - @override String get discovery => 'Otkrivanje'; @@ -2229,9 +1977,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get repeatersMap => 'Karta posrednika'; - @override - String get spectrumScan => 'Spektralno skeniranje'; - @override String get blePacketLogs => 'BLE zapisi paketa'; @@ -2265,9 +2010,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get enableProfiles => 'Omogući profile'; - @override - String get autoRouteRotation => 'Automatsko rotiranje putanje'; - @override String get nearestRepeaterFallback => 'Najbliži posrednik kao rezerva'; @@ -2290,13 +2032,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get showSarMarkersLabel => 'Prikaži SAR oznake'; - @override - String get displaySarMarkersOnTheMainMap => - 'Prikaži SAR oznake na glavnoj karti'; - - @override - String get showAllContactTrailsLabel => 'Prikaži sve tragove kontakata'; - @override String get hideRepeatersOnMap => 'Sakrij posrednike na karti'; @@ -2312,24 +2047,12 @@ class AppLocalizationsHr extends AppLocalizations { @override String get voiceCompressor => 'Kompresor glasa'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Izravnava tihe i glasne razine govora'; - @override String get voiceLimiter => 'Ograničivač glasa'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Sprječava rezanje vrhova prije kodiranja'; - @override String get micAutoGain => 'Automatsko pojačanje mikrofona'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Dopušta snimaču prilagodbu razine ulaza'; - @override String get echoCancellation => 'Poništavanje odjeka'; @@ -2460,16 +2183,9 @@ class AppLocalizationsHr extends AppLocalizations { @override String get quiet => 'Tiho'; - @override - String get moderate => 'Umjereno'; - @override String get busy => 'Zauzeto'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'Spektralno skeniranje nije pronašlo prikladne frekvencije'; - @override String get searchMessages => 'Pretraži poruke'; @@ -2479,9 +2195,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get takePhoto => 'Snimi fotografiju'; - @override - String get dmOnly => 'Samo izravno'; - @override String get allMessages => 'Sve poruke'; @@ -2538,14 +2251,6 @@ class AppLocalizationsHr extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Odaberite predefiniranu postavku ili fino podesite radijske postavke.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Odaberite ime i lokaciju koju ovaj uređaj dijeli.'; - - @override - String get availableSpaceOnThisDevice => - 'Raspoloživi prostor na ovom uređaju.'; - @override String get used => 'Korišteno'; @@ -2599,12 +2304,6 @@ class AppLocalizationsHr extends AppLocalizations { @override String get source => 'Izvor'; - @override - String get manualRouteEdit => 'Ručno uređivanje putanje'; - - @override - String get observedMeshRoute => 'Opažena mrežna putanja'; - @override String get allMessagesCleared => 'Sve poruke očišćene'; @@ -2702,38 +2401,615 @@ class AppLocalizationsHr extends AppLocalizations { String get noDeviceContactsToClear => 'Nema kontakata uređaja za brisanje.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Ž'; @override - String get regionScope => 'Region scope'; + String get add => 'Dodaj'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Dodaj dodatne detalje'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Dodaj čvor'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Ručno dodaj čvor'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name dodan u kontakte'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name dodan u Senzore'; + } + + @override + String get allowAll => 'Dopusti sve'; + + @override + String get anonymousRxStats => 'Anonimna RX statistika'; + + @override + String get appearance => 'Izgled'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Osnovna telemetrija'; + + @override + String get blePin => 'BLE PIN'; + + @override + String get buzzerAlerts => 'Zvučna upozorenja'; + + @override + String get cancelImageReceive => 'Otkaži primanje slike'; + + @override + String get choose => 'Odaberi'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Odaberite koje kartice i odjeljke kontakata prikazati'; + + @override + String get clearCache => 'Očisti predmemoriju'; + + @override + String get clearHistory => 'Očisti povijest'; + + @override + String get clearLiveView => 'Očisti prikaz uživo'; + + @override + String get clearLogs => 'Očisti zapise'; + + @override + String get clearOfflineCache => 'Očistiti offline predmemoriju?'; + + @override + String get clearOverlay => 'Očisti prekrivanje'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Očisti rutu samo nakon što svi pokušaji ne uspiju'; + + @override + String get codecBitrateAndAudioProcessing => + 'Kodek, bitna brzina i obrada zvuka'; + + @override + String get connectByIpAddress => 'Poveži se putem IP adrese'; + + @override + String get controlWhichAlertsYouReceive => + 'Upravljajte upozorenjima koja primate'; + + @override + String get copyFullHex => 'Kopiraj cijeli Hex'; + + @override + String get copyRawResponse => 'Kopiraj sirovi odgovor'; + + @override + String get couldNotLoadMetHistory => 'Nije moguće učitati MET povijest'; + + @override + String customizeSensor(String name) { + return 'Prilagodi $name'; + } + + @override + String get data => 'Podaci'; + + @override + String get deleteGroup => 'Izbriši grupu'; + + @override + String deleteStyleConfirm(String name) { + return 'Izbrisati $name?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Izbrisati ovaj $type?'; + } + + @override + String get deny => 'Odbij'; + + @override + String get deviceInfo => 'Informacije o uređaju'; + + @override + String get deviceSettings => 'Postavke uređaja'; + + @override + String get deviceTimeSynced => + 'Vrijeme uređaja sinkronizirano s ovim telefonom.'; + + @override + String get disableFastGpsPublishing => 'Onemogući brzo GPS objavljivanje'; + + @override + String get displayMarkersAndTraceDatabase => 'Prikaz, markeri i baza tragova'; + + @override + String get download => 'Preuzmi'; + + @override + String get environmentalTelemetry => 'Okolišna telemetrija'; + + @override + String errorCheckingForUpdates(String error) { + return 'Greška pri provjeri ažuriranja: $error'; + } + + @override + String errorGeneric(String error) { + return 'Greška: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Greška pri otvaranju preuzimanja: $error'; + } + + @override + String get exportLogs => 'Izvezi zapise'; + + @override + String get extraAggressiveAvifCompression => + 'Dodatno agresivna AVIF kompresija'; + + @override + String failedToAddContact(String error) { + return 'Neuspjelo dodavanje kontakta: $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Neuspjelo dodavanje $name: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Neuspjelo brisanje kanala: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Neuspjelo brisanje kontakata: $error'; + } + + @override + String get failedToConnectViaSerial => + 'Neuspjelo povezivanje putem serijskog porta'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Neuspjelo učitavanje slike za pregled: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Neuspjelo učitavanje traga: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Neuspjelo slanje SAR markera: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Neuspjelo postavljanje načina zujalice: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Neuspjelo postavljanje GPS načina: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Neuspjela sinkronizacija vremena uređaja: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Neuspjelo brisanje podataka uređaja: $error'; + } + + @override + String get fastGpsTargetChannel => 'Ciljni kanal brzog GPS-a'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Brza ažuriranja, pragovi i dopuštenja'; + + @override + String get fetchingCatalog => 'Dohvaćanje kataloga...'; + + @override + String get fifteenMinutes => '15 minuta'; + + @override + String get fifteenSeconds => '15 sekundi'; + + @override + String get filterByDirection => 'Filtriraj po smjeru'; + + @override + String get finish => 'Završi'; + + @override + String get fiveMinutes => '5 minuta'; + + @override + String get fiveSeconds => '5 sekundi'; + + @override + String get fix => 'Fiksiranje'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'Pravila GPS oglašavanja'; + + @override + String get gpsAndLocation => 'GPS i lokacija'; + + @override + String get gpsDiagnostics => 'GPS dijagnostika'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Pomoć'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Skriveno'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Kako radio automatski dodaje otkrivene čvorove.'; + + @override + String get images => 'Slike'; + + @override + String get importProfile => 'Uvezi profil'; + + @override + String get lastFix => 'Zadnje fiksiranje'; + + @override + String get latest => 'Najnovije'; + + @override + String get latitude => 'Geografska širina'; + + @override + String get loadASavedRegion => 'Učitaj spremljenu regiju'; + + @override + String get loading => 'Učitavanje'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Dijeljenje lokacije, hardver i interval ažuriranja.'; + + @override + String get locationTelemetry => 'Telemetrija lokacije'; + + @override + String get lockDestination => 'Zaključaj odredište'; + + @override + String get longitude => 'Geografska dužina'; + + @override + String get mapStyle => 'Stil karte'; + + @override + String get max => 'Maks'; + + @override + String get maxZoom => 'Maks. zumiranje'; + + @override + String get messaging => 'Poruke'; + + @override + String get metHistory => 'MET povijest'; + + @override + String get min => 'Min'; + + @override + String get minZoom => 'Min. zumiranje'; + + @override + String get moveDown => 'Pomakni dolje'; + + @override + String get moveUp => 'Pomakni gore'; + + @override + String get multiAckMode => 'Multi-ACK način'; + + @override + String get multiDeviceWorkspaceManagement => + 'Upravljanje radnim prostorom s više uređaja'; + + @override + String get myLocation => 'Moja lokacija'; + + @override + String get nameAndTelemetryShared => + 'Ime i telemetrija dijeljeni s drugim uređajima.'; + + @override + String newVersionAvailable(String version) { + return 'Nova verzija: $version'; + } + + @override + String get newer => 'Novije'; + + @override + String get noNeighboursFound => 'Nisu pronađeni susjedi'; + + @override + String get noServersFound => 'Nisu pronađeni poslužitelji'; + + @override + String get notSet => 'Nije postavljeno'; + + @override + String get notifications => 'Obavijesti'; + + @override + String get offZeroSeconds => 'Isključeno (0 s)'; + + @override + String get offlineMaps => 'Offline karte'; + + @override + String get older => 'Starije'; + + @override + String get oneByteMode0 => '1 bajt (način 0)'; + + @override + String get oneHour => '1 sat'; + + @override + String get oneMinute => '1 minuta'; + + @override + String get openPacketLogs => 'Otvori zapise paketa'; + + @override + String get packetTypeHelp => 'Pomoć za vrstu paketa'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Zalijepite dijeljenu vezu ili Hex oglas'; + + @override + String get pathHash => 'Hash putanje'; + + @override + String get pathSize => 'Veličina putanje'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Poligon'; + + @override + String get rawResponseCopied => 'Sirovi odgovor kopiran'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Ponovno pošalji kroz najbliži posrednik pri neuspjehu'; + + @override + String get resolveContact => 'Razriješi kontakt'; + + @override + String get routingRetriesAndDestinationLock => + 'Usmjeravanje, pokušaji i zaključavanje odredišta'; + + @override + String get samples => 'Uzorci'; + + @override + String get satellites => 'Sateliti'; + + @override + String get saving => 'Spremanje...'; + + @override + String get search => 'Pretraži'; + + @override + String get searchByNameOrToken => 'Pretraži po imenu ili tokenu'; + + @override + String get searchDiscoveredNodes => 'Pretraži otkrivene čvorove'; + + @override + String get searchInCurrentFilter => 'Pretraži u trenutnom filtru'; + + @override + String get searchLogs => 'Pretraži zapise...'; + + @override + String get searchSensors => 'Pretraži senzore'; + + @override + String get searchThisSection => 'Pretraži ovaj odjeljak'; + + @override + String get selectedRelays => 'Odabrani posrednici'; + + @override + String get sensor => 'Senzor'; + + @override + String serialError(String error) { + return 'Serijska greška: $error'; + } + + @override + String setPathForContact(String name) { + return 'Postavi putanju za $name'; + } + + @override + String get shareLiveGps => 'Dijeli GPS uživo'; + + @override + String get shareMyTiles => 'Dijeli moje pločice'; + + @override + String get sharingLocationFromPhone => + 'Dijeljenje lokacije na ovom kanalu s telefona.'; + + @override + String get sharingLocationFromRadio => + 'Dijeljenje lokacije na ovom kanalu s radija.'; + + @override + String signalDbm(String rssi) { + return 'Signal $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => 'Veličina, kompresija i pregled'; + + @override + String get skip => 'Preskoči'; + + @override + String get smallerFileSize => 'Manja veličina datoteke'; + + @override + String get sort => 'Sortiraj'; + + @override + String get stoppedSharingLocation => + 'Zaustavljeno dijeljenje lokacije na ovom kanalu.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Utiši obavijesti dok je aplikacija u prvom planu'; + + @override + String get tabsAndNavigation => 'Kartice i navigacija'; + + @override + String get templatesAndTutorials => 'Predlošci i upute'; + + @override + String get tenMinutes => '10 minuta'; + + @override + String get tenSeconds => '10 sekundi'; + + @override + String get testSendUpdate => 'Testno slanje ažuriranja'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Tema, jezik i postavke prikaza'; + + @override + String get thirtyMinutes => '30 minuta'; + + @override + String get thirtySeconds => '30 sekundi'; + + @override + String get threeBytesMode2 => '3 bajta (način 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Statistika prometa, povijest poruka i razvojni alati'; + + @override + String get twoBytesMode1 => '2 bajta (način 1)'; + + @override + String get twoMinutes => '2 minute'; + + @override + String get undo => 'Poništi'; + + @override + String get updated => 'Ažurirano'; + + @override + String get useContactFlags => 'Koristi zastavice kontakata'; + + @override + String get useSavedCoordinates => 'Koristi spremljene koordinate'; + + @override + String get view => 'Prikaži'; + + @override + String get viewNeighbours => 'Prikaži susjede'; + + @override + String get viewPublicStats => 'Prikaži javnu statistiku'; + + @override + String get setRegionScope => 'Postavi opseg regije'; + + @override + String get regionScope => 'Opseg regije'; + + @override + String get regionScopeNone => 'Nema (globalno)'; + + @override + String get clearRegionScope => 'Obriši opseg'; + + @override + String get regionScopeWarning => + 'Samo repetitori koji dopuštaju ovu regiju će prosljeđivati.'; + + @override + String get discoverRegions => 'Otkrij iz repetitora'; + + @override + String get discoveringRegions => 'Otkrivanje regija...'; + + @override + String get enterRegionName => 'Naziv regije (npr. auckland)'; + + @override + String get noRegionsFound => 'Nema pronađenih regija na ovom repetitoru.'; + + @override + String regionScopeSet(String name) { + return 'Opseg regije postavljen na $name'; + } + + @override + String get regionScopeCleared => 'Opseg regije obrisan'; } diff --git a/lib/l10n/app_localizations_it.dart b/lib/l10n/app_localizations_it.dart index 7139c2a..faf0c49 100644 --- a/lib/l10n/app_localizations_it.dart +++ b/lib/l10n/app_localizations_it.dart @@ -35,9 +35,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get scanAgain => 'Cerca Nuovamente'; - @override - String get tapToConnect => 'Tocca per connettere'; - @override String get deviceNotConnected => 'Dispositivo non connesso'; @@ -109,17 +106,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get showRxTxIndicators => 'Mostra Indicatori RX/TX'; - @override - String get displayPacketActivity => - 'Mostra indicatori di attività pacchetti nella barra superiore'; - @override String get disableMap => 'Disabilita mappa'; - @override - String get disableMapDescription => - 'Nascondi la scheda mappa per ridurre il consumo della batteria'; - @override String get language => 'Lingua'; @@ -141,9 +130,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get appVersion => 'Versione App'; - @override - String get appName => 'Nome App'; - @override String get aboutMeshCoreSar => 'Informazioni su MeshCore SAR'; @@ -240,9 +226,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get resetPath => 'Resetta Percorso (Ri-instrada)'; - @override - String get publicKeyCopied => 'Chiave pubblica copiata negli appunti'; - @override String copiedToClipboard(String label) { return '$label copiato negli appunti'; @@ -481,22 +464,22 @@ class AppLocalizationsIt extends AppLocalizations { String get flood => 'Flood'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Invio automatico'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Invia tramite il percorso attuale.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Invio diretto'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Invia direttamente a questo contatto.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Invio flood'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Invia tramite tutti i ripetitori.'; @override String get loggedIn => 'Connesso'; @@ -536,18 +519,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get lastSeen => 'Ultima Visita'; - @override - String get roomStatus => 'Stato Stanza'; - - @override - String get loginStatus => 'Stato Accesso'; - - @override - String get notLoggedIn => 'Non Connesso'; - - @override - String get adminAccess => 'Accesso Admin'; - @override String get yes => 'Sì'; @@ -557,12 +528,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get permissions => 'Permessi'; - @override - String get passwordSaved => 'Password Salvata'; - - @override - String get locationColon => 'Posizione:'; - @override String get telemetry => 'Telemetria'; @@ -584,14 +549,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get gpsTelemetry => 'GPS (Telemetria)'; - @override - String get updated => 'Aggiornato'; - - @override - String pathResetInfo(String name) { - return 'Percorso resettato per $name. Il prossimo messaggio troverà un nuovo instradamento.'; - } - @override String get reLoginToRoom => 'Riaccedi alla Stanza'; @@ -843,9 +800,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get frequencyMHz => 'Frequenza (MHz)'; - @override - String get frequencyExample => 'es., 869.618'; - @override String get bandwidth => 'Larghezza di Banda'; @@ -921,48 +875,12 @@ class AppLocalizationsIt extends AppLocalizations { @override String get trailControls => 'Controlli Traccia'; - @override - String get contactTrails => 'Tracce contatti'; - - @override - String get showAllContactTrails => 'Mostra tutte le tracce dei contatti'; - - @override - String get noContactsWithLocationHistory => - 'Nessun contatto con cronologia posizione'; - - @override - String showingTrailsForContacts(int count) { - return 'Visualizzazione tracce per $count contatti'; - } - - @override - String get individualContactTrails => 'Tracce individuali dei contatti'; - - @override - String get deviceInformation => 'Informazioni Dispositivo'; - - @override - String get bleName => 'Nome BLE'; - - @override - String get meshName => 'Nome Mesh'; - - @override - String get notSet => 'Non impostato'; - @override String get model => 'Modello'; @override String get version => 'Versione'; - @override - String get buildDate => 'Data Build'; - - @override - String get firmware => 'Firmware'; - @override String get maxContacts => 'Contatti Max'; @@ -972,22 +890,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get publicInfo => 'Informazioni Pubbliche'; - @override - String get meshNetworkName => 'Nome Rete Mesh'; - - @override - String get nameBroadcastInMesh => 'Nome trasmesso negli annunci mesh'; - - @override - String get telemetryAndLocationSharing => - 'Telemetria e Condivisione Posizione'; - - @override - String get lat => 'Lat'; - - @override - String get lon => 'Lon'; - @override String get useCurrentLocation => 'Usa posizione attuale'; @@ -1008,11 +910,6 @@ class AppLocalizationsIt extends AppLocalizations { return 'Tipo $number'; } - @override - String copiedToClipboardShort(String label) { - return 'Copiato $label negli appunti'; - } - @override String failedToSave(String error) { return 'Impossibile salvare: $error'; @@ -1026,9 +923,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get sarTemplates => 'Modelli SAR'; - @override - String get manageSarTemplates => 'Gestisci modelli SAR'; - @override String get addTemplate => 'Aggiungi modello'; @@ -1130,9 +1024,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get ok => 'OK'; - @override - String get permissionsSection => 'Permessi'; - @override String get locationPermission => 'Permesso di posizione'; @@ -1575,87 +1466,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get wizardWelcomeTitle => 'Benvenuto in MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Un potente strumento di comunicazione offline per operazioni di ricerca e soccorso. Connettiti con il tuo team usando la tecnologia radio mesh quando le reti tradizionali non sono disponibili.'; - - @override - String get wizardConnectingTitle => 'Connessione alla Radio'; - - @override - String get wizardConnectingDescription => - 'Collega il tuo smartphone a un dispositivo radio MeshCore tramite Bluetooth per iniziare a comunicare offline.'; - - @override - String get wizardConnectingFeature1 => - 'Cerca dispositivi MeshCore nelle vicinanze'; - - @override - String get wizardConnectingFeature2 => - 'Accoppia con la tua radio tramite Bluetooth'; - - @override - String get wizardConnectingFeature3 => - 'Funziona completamente offline - non è richiesta connessione internet'; - - @override - String get wizardChannelTitle => 'Canali'; - - @override - String get wizardChannelDescription => - 'Trasmetti messaggi a tutti su un canale, perfetto per annunci e coordinamento di tutto il team.'; - - @override - String get wizardChannelFeature1 => - 'Canale pubblico per comunicazione generale del team'; - - @override - String get wizardChannelFeature2 => - 'Crea canali personalizzati per gruppi specifici'; - - @override - String get wizardChannelFeature3 => - 'I messaggi vengono automaticamente inoltrati attraverso la rete mesh'; - - @override - String get wizardContactsTitle => 'Contatti'; - - @override - String get wizardContactsDescription => - 'I membri del tuo team appaiono automaticamente quando si uniscono alla rete mesh. Invia loro messaggi diretti o visualizza la loro posizione.'; - - @override - String get wizardContactsFeature1 => 'Contatti scoperti automaticamente'; - - @override - String get wizardContactsFeature2 => 'Invia messaggi diretti privati'; - - @override - String get wizardContactsFeature3 => - 'Visualizza livello batteria e ultima volta visto'; - - @override - String get wizardMapTitle => 'Mappa & Posizione'; - - @override - String get wizardMapDescription => - 'Traccia il tuo team in tempo reale e segna posizioni importanti per operazioni di ricerca e soccorso.'; - - @override - String get wizardMapFeature1 => - 'Marcatori SAR per persone trovate, incendi e aree di staging'; - - @override - String get wizardMapFeature2 => - 'Tracciamento GPS in tempo reale dei membri del team'; - - @override - String get wizardMapFeature3 => 'Scarica mappe offline per aree remote'; - - @override - String get wizardMapFeature4 => - 'Disegna forme e condividi informazioni tattiche'; - @override String get viewWelcomeTutorial => 'Visualizza tutorial di benvenuto'; @@ -1915,11 +1725,11 @@ class AppLocalizationsIt extends AppLocalizations { 'Usa log dei pacchetti, scansione dello spettro e diagnostica sviluppatore per risolvere problemi della mesh.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Scoprire i ripetitori ora?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Esegui la scoperta dei ripetitori subito dopo la connessione per vedere i nodi MeshCore nelle vicinanze e aggiungerli alla tua rete più velocemente.'; @override String get contactInSensors => 'Nei Sensori'; @@ -2022,57 +1832,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get bandpassFilterVoice => 'Filtro passa-banda voce'; - @override - String get frequency => 'Frequenza'; - - @override - String get australia => 'Australia'; - - @override - String get australiaNarrow => 'Australia (Stretto)'; - - @override - String get australiaQld => 'Australia: QLD'; - - @override - String get australiaSaWa => 'Australia: SA, WA'; - - @override - String get newZealand => 'Nuova Zelanda'; - - @override - String get newZealandNarrow => 'Nuova Zelanda (Stretto)'; - - @override - String get switzerland => 'Svizzera'; - - @override - String get portugal433 => 'Portogallo 433'; - - @override - String get portugal868 => 'Portogallo 868'; - - @override - String get czechRepublicNarrow => 'Repubblica Ceca (Stretto)'; - - @override - String get eu433mhzLongRange => 'UE 433MHz (Lungo Raggio)'; - - @override - String get euukDeprecated => 'UE/UK (Deprecato)'; - - @override - String get euukNarrow => 'UE/UK (Stretto)'; - - @override - String get usacanadaRecommended => 'USA/Canada (Consigliato)'; - - @override - String get vietnamDeprecated => 'Vietnam (Deprecato)'; - - @override - String get vietnamNarrow => 'Vietnam (Stretto)'; - @override String get active => 'Attivo'; @@ -2082,15 +1841,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get all => 'Tutto'; - @override - String get autoResolve => 'Risolvi automaticamente'; - @override String get clearAllLabel => 'Cancella tutto'; - @override - String get clearRelays => 'Cancella relay'; - @override String get clearFilters => 'Cancella filtri'; @@ -2166,18 +1919,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get share => 'Condividi'; - @override - String get shareContact => 'Condividi contatto'; - @override String get trace => 'Traccia'; - @override - String get use => 'Usa'; - - @override - String get useSelectedFrequency => 'Usa frequenza selezionata'; - @override String get discovery => 'Scoperta'; @@ -2244,9 +1988,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get repeatersMap => 'Mappa ripetitori'; - @override - String get spectrumScan => 'Scansione spettro'; - @override String get blePacketLogs => 'Log pacchetti BLE'; @@ -2280,9 +2021,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get enableProfiles => 'Abilita profili'; - @override - String get autoRouteRotation => 'Rotazione automatica percorso'; - @override String get nearestRepeaterFallback => 'Ripetitore più vicino come fallback'; @@ -2305,13 +2043,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get showSarMarkersLabel => 'Mostra marcatori SAR'; - @override - String get displaySarMarkersOnTheMainMap => - 'Mostra marcatori SAR sulla mappa principale'; - - @override - String get showAllContactTrailsLabel => 'Mostra tutti i percorsi contatti'; - @override String get hideRepeatersOnMap => 'Nascondi ripetitori sulla mappa'; @@ -2327,24 +2058,12 @@ class AppLocalizationsIt extends AppLocalizations { @override String get voiceCompressor => 'Compressore voce'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Bilancia i livelli di voce bassi e alti'; - @override String get voiceLimiter => 'Limitatore voce'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Previene il clipping prima della codifica'; - @override String get micAutoGain => 'Guadagno automatico microfono'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Permette al registratore di regolare il livello'; - @override String get echoCancellation => 'Cancellazione eco'; @@ -2474,16 +2193,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get quiet => 'Silenzioso'; - @override - String get moderate => 'Moderato'; - @override String get busy => 'Occupato'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'La scansione spettro non ha trovato frequenze candidate'; - @override String get searchMessages => 'Cerca messaggi'; @@ -2493,9 +2205,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get takePhoto => 'Scatta foto'; - @override - String get dmOnly => 'Solo messaggio diretto'; - @override String get allMessages => 'Tutti i messaggi'; @@ -2552,14 +2261,6 @@ class AppLocalizationsIt extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Scegli un preset o personalizza le impostazioni radio.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Scegli il nome e la posizione condivisi da questo dispositivo.'; - - @override - String get availableSpaceOnThisDevice => - 'Spazio disponibile su questo dispositivo.'; - @override String get used => 'Usato'; @@ -2613,12 +2314,6 @@ class AppLocalizationsIt extends AppLocalizations { @override String get source => 'Origine'; - @override - String get manualRouteEdit => 'Modifica manuale percorso'; - - @override - String get observedMeshRoute => 'Percorso mesh osservato'; - @override String get allMessagesCleared => 'Tutti i messaggi cancellati'; @@ -2719,38 +2414,616 @@ class AppLocalizationsIt extends AppLocalizations { 'Nessun contatto dispositivo da cancellare.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Z'; @override - String get regionScope => 'Region scope'; + String get add => 'Aggiungi'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Aggiungi dettagli aggiuntivi'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Aggiungi peer'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Aggiungi peer manualmente'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name aggiunto ai contatti'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name aggiunto ai sensori'; + } + + @override + String get allowAll => 'Consenti tutto'; + + @override + String get anonymousRxStats => 'Statistiche RX anonime'; + + @override + String get appearance => 'Aspetto'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Telemetria di base'; + + @override + String get blePin => 'PIN BLE'; + + @override + String get buzzerAlerts => 'Avvisi buzzer'; + + @override + String get cancelImageReceive => 'Annulla ricezione immagine'; + + @override + String get choose => 'Scegli'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Scegli quali schede e sezioni contatti mostrare'; + + @override + String get clearCache => 'Svuota cache'; + + @override + String get clearHistory => 'Cancella cronologia'; + + @override + String get clearLiveView => 'Cancella vista live'; + + @override + String get clearLogs => 'Cancella log'; + + @override + String get clearOfflineCache => 'Svuotare la cache offline?'; + + @override + String get clearOverlay => 'Cancella sovrapposizione'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Cancella il percorso solo dopo che tutti i tentativi falliscono'; + + @override + String get codecBitrateAndAudioProcessing => + 'Codec, bitrate ed elaborazione audio'; + + @override + String get connectByIpAddress => 'Connetti tramite indirizzo IP'; + + @override + String get controlWhichAlertsYouReceive => 'Controlla quali avvisi ricevi'; + + @override + String get copyFullHex => 'Copia Hex completo'; + + @override + String get copyRawResponse => 'Copia risposta grezza'; + + @override + String get couldNotLoadMetHistory => 'Impossibile caricare la cronologia MET'; + + @override + String customizeSensor(String name) { + return 'Personalizza $name'; + } + + @override + String get data => 'Dati'; + + @override + String get deleteGroup => 'Elimina gruppo'; + + @override + String deleteStyleConfirm(String name) { + return 'Eliminare $name?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Eliminare questo $type?'; + } + + @override + String get deny => 'Nega'; + + @override + String get deviceInfo => 'Info dispositivo'; + + @override + String get deviceSettings => 'Impostazioni dispositivo'; + + @override + String get deviceTimeSynced => + 'Ora del dispositivo sincronizzata con questo telefono.'; + + @override + String get disableFastGpsPublishing => 'Disabilita pubblicazione GPS rapida'; + + @override + String get displayMarkersAndTraceDatabase => + 'Visualizzazione, marcatori e database tracce'; + + @override + String get download => 'Scarica'; + + @override + String get environmentalTelemetry => 'Telemetria ambientale'; + + @override + String errorCheckingForUpdates(String error) { + return 'Errore durante il controllo degli aggiornamenti: $error'; + } + + @override + String errorGeneric(String error) { + return 'Errore: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Errore nell\'apertura del download: $error'; + } + + @override + String get exportLogs => 'Esporta log'; + + @override + String get extraAggressiveAvifCompression => + 'Compressione AVIF extra aggressiva'; + + @override + String failedToAddContact(String error) { + return 'Impossibile aggiungere il contatto: $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Impossibile aggiungere $name: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Impossibile cancellare i canali: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Impossibile cancellare i contatti: $error'; + } + + @override + String get failedToConnectViaSerial => + 'Impossibile connettersi tramite seriale'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Impossibile caricare l\'anteprima: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Impossibile caricare la traccia: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Impossibile inviare il marcatore SAR: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Impossibile impostare la modalità buzzer: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Impossibile impostare la modalità GPS: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Impossibile sincronizzare l\'ora del dispositivo: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Impossibile cancellare i dati del dispositivo: $error'; + } + + @override + String get fastGpsTargetChannel => 'Canale target GPS rapido'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Aggiornamenti rapidi, soglie e permessi'; + + @override + String get fetchingCatalog => 'Recupero catalogo...'; + + @override + String get fifteenMinutes => '15 minuti'; + + @override + String get fifteenSeconds => '15 secondi'; + + @override + String get filterByDirection => 'Filtra per direzione'; + + @override + String get finish => 'Fine'; + + @override + String get fiveMinutes => '5 minuti'; + + @override + String get fiveSeconds => '5 secondi'; + + @override + String get fix => 'Fix'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'Politica annunci GPS'; + + @override + String get gpsAndLocation => 'GPS e posizione'; + + @override + String get gpsDiagnostics => 'Diagnostica GPS'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Aiuto'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Nascosto'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Come la radio aggiunge automaticamente i nodi scoperti.'; + + @override + String get images => 'Immagini'; + + @override + String get importProfile => 'Importa profilo'; + + @override + String get lastFix => 'Ultimo fix'; + + @override + String get latest => 'Più recente'; + + @override + String get latitude => 'Latitudine'; + + @override + String get loadASavedRegion => 'Carica una regione salvata'; + + @override + String get loading => 'Caricamento'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Condivisione posizione, hardware e intervallo di aggiornamento.'; + + @override + String get locationTelemetry => 'Telemetria posizione'; + + @override + String get lockDestination => 'Blocca destinazione'; + + @override + String get longitude => 'Longitudine'; + + @override + String get mapStyle => 'Stile mappa'; + + @override + String get max => 'Max'; + + @override + String get maxZoom => 'Zoom max'; + + @override + String get messaging => 'Messaggistica'; + + @override + String get metHistory => 'Cronologia MET'; + + @override + String get min => 'Min'; + + @override + String get minZoom => 'Zoom min'; + + @override + String get moveDown => 'Sposta giù'; + + @override + String get moveUp => 'Sposta su'; + + @override + String get multiAckMode => 'Modalità multi-ACK'; + + @override + String get multiDeviceWorkspaceManagement => + 'Gestione spazio di lavoro multi-dispositivo'; + + @override + String get myLocation => 'La mia posizione'; + + @override + String get nameAndTelemetryShared => + 'Nome e telemetria condivisi con altri dispositivi.'; + + @override + String newVersionAvailable(String version) { + return 'Nuova versione: $version'; + } + + @override + String get newer => 'Più recente'; + + @override + String get noNeighboursFound => 'Nessun vicino trovato'; + + @override + String get noServersFound => 'Nessun server trovato'; + + @override + String get notSet => 'Non impostato'; + + @override + String get notifications => 'Notifiche'; + + @override + String get offZeroSeconds => 'Off (0 s)'; + + @override + String get offlineMaps => 'Mappe offline'; + + @override + String get older => 'Meno recente'; + + @override + String get oneByteMode0 => '1 byte (modo 0)'; + + @override + String get oneHour => '1 ora'; + + @override + String get oneMinute => '1 minuto'; + + @override + String get openPacketLogs => 'Apri log pacchetti'; + + @override + String get packetTypeHelp => 'Guida tipi di pacchetto'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Incolla un link di condivisione o annuncio Hex'; + + @override + String get pathHash => 'Hash percorso'; + + @override + String get pathSize => 'Dimensione percorso'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Poligono'; + + @override + String get rawResponseCopied => 'Risposta grezza copiata'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Rinvia tramite il ripetitore più vicino in caso di errore'; + + @override + String get resolveContact => 'Risolvi contatto'; + + @override + String get routingRetriesAndDestinationLock => + 'Instradamento, tentativi e blocco destinazione'; + + @override + String get samples => 'Campioni'; + + @override + String get satellites => 'Satelliti'; + + @override + String get saving => 'Salvataggio...'; + + @override + String get search => 'Cerca'; + + @override + String get searchByNameOrToken => 'Cerca per nome o token'; + + @override + String get searchDiscoveredNodes => 'Cerca nodi scoperti'; + + @override + String get searchInCurrentFilter => 'Cerca nel filtro corrente'; + + @override + String get searchLogs => 'Cerca nei log...'; + + @override + String get searchSensors => 'Cerca sensori'; + + @override + String get searchThisSection => 'Cerca in questa sezione'; + + @override + String get selectedRelays => 'Ripetitori selezionati'; + + @override + String get sensor => 'Sensore'; + + @override + String serialError(String error) { + return 'Errore seriale: $error'; + } + + @override + String setPathForContact(String name) { + return 'Imposta percorso per $name'; + } + + @override + String get shareLiveGps => 'Condividi GPS in tempo reale'; + + @override + String get shareMyTiles => 'Condividi le mie tile'; + + @override + String get sharingLocationFromPhone => + 'Condivisione posizione su questo canale dal telefono.'; + + @override + String get sharingLocationFromRadio => + 'Condivisione posizione su questo canale dalla radio.'; + + @override + String signalDbm(String rssi) { + return 'Segnale $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => + 'Dimensione, compressione e anteprima'; + + @override + String get skip => 'Salta'; + + @override + String get smallerFileSize => 'Dimensione file ridotta'; + + @override + String get sort => 'Ordina'; + + @override + String get stoppedSharingLocation => + 'Condivisione posizione interrotta su questo canale.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Disattiva notifiche quando l\'app è in primo piano'; + + @override + String get tabsAndNavigation => 'Schede e navigazione'; + + @override + String get templatesAndTutorials => 'Modelli e tutorial'; + + @override + String get tenMinutes => '10 minuti'; + + @override + String get tenSeconds => '10 secondi'; + + @override + String get testSendUpdate => 'Prova invio aggiornamento'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Tema, lingua e preferenze di visualizzazione'; + + @override + String get thirtyMinutes => '30 minuti'; + + @override + String get thirtySeconds => '30 secondi'; + + @override + String get threeBytesMode2 => '3 byte (modo 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Statistiche traffico, cronologia messaggi e strumenti sviluppatore'; + + @override + String get twoBytesMode1 => '2 byte (modo 1)'; + + @override + String get twoMinutes => '2 minuti'; + + @override + String get undo => 'Annulla'; + + @override + String get updated => 'Aggiornato'; + + @override + String get useContactFlags => 'Usa flag contatti'; + + @override + String get useSavedCoordinates => 'Usa coordinate salvate'; + + @override + String get view => 'Visualizza'; + + @override + String get viewNeighbours => 'Visualizza vicini'; + + @override + String get viewPublicStats => 'Visualizza statistiche pubbliche'; + + @override + String get setRegionScope => 'Imposta ambito regionale'; + + @override + String get regionScope => 'Ambito regionale'; + + @override + String get regionScopeNone => 'Nessuno (globale)'; + + @override + String get clearRegionScope => 'Cancella ambito'; + + @override + String get regionScopeWarning => + 'Solo i ripetitori che consentono questa regione inoltreranno.'; + + @override + String get discoverRegions => 'Scopri dai ripetitori'; + + @override + String get discoveringRegions => 'Scoperta delle regioni...'; + + @override + String get enterRegionName => 'Nome regione (es. auckland)'; + + @override + String get noRegionsFound => 'Nessuna regione trovata su questo ripetitore.'; + + @override + String regionScopeSet(String name) { + return 'Ambito regionale impostato su $name'; + } + + @override + String get regionScopeCleared => 'Ambito regionale cancellato'; } diff --git a/lib/l10n/app_localizations_pl.dart b/lib/l10n/app_localizations_pl.dart index 2ed4e31..fb7340a 100644 --- a/lib/l10n/app_localizations_pl.dart +++ b/lib/l10n/app_localizations_pl.dart @@ -35,9 +35,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get scanAgain => 'Skanuj ponownie'; - @override - String get tapToConnect => 'Dotknij, aby połączyć'; - @override String get deviceNotConnected => 'Urządzenie nie jest połączone'; @@ -109,17 +106,9 @@ class AppLocalizationsPl extends AppLocalizations { @override String get showRxTxIndicators => 'Pokaż wskaźniki RX/TX'; - @override - String get displayPacketActivity => - 'Wyświetlaj wskaźniki aktywności pakietów na górnym pasku'; - @override String get disableMap => 'Wyłącz mapę'; - @override - String get disableMapDescription => - 'Ukryj kartę mapy, aby zmniejszyć zużycie baterii'; - @override String get language => 'Język'; @@ -141,9 +130,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get appVersion => 'Wersja aplikacji'; - @override - String get appName => 'Nazwa aplikacji'; - @override String get aboutMeshCoreSar => 'O MeshCore SAR'; @@ -240,9 +226,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get resetPath => 'Resetuj trasę (wyznacz ponownie)'; - @override - String get publicKeyCopied => 'Klucz publiczny skopiowano do schowka'; - @override String copiedToClipboard(String label) { return 'Skopiowano $label do schowka'; @@ -482,22 +465,22 @@ class AppLocalizationsPl extends AppLocalizations { String get flood => 'Rozgłoszeniowo'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Automatyczne wysyłanie'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Wyślij bieżącą trasą.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Wysyłanie bezpośrednie'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Wyślij bezpośrednio do tego kontaktu.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Wysyłanie zalewowe'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Wyślij przez wszystkie przekaźniki.'; @override String get loggedIn => 'Zalogowano'; @@ -537,18 +520,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get lastSeen => 'Ostatnio widziany'; - @override - String get roomStatus => 'Status pokoju'; - - @override - String get loginStatus => 'Status logowania'; - - @override - String get notLoggedIn => 'Niezalogowany'; - - @override - String get adminAccess => 'Dostęp administratora'; - @override String get yes => 'Tak'; @@ -558,12 +529,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get permissions => 'Uprawnienia'; - @override - String get passwordSaved => 'Hasło zapisano'; - - @override - String get locationColon => 'Lokalizacja:'; - @override String get telemetry => 'Telemetria'; @@ -585,14 +550,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get gpsTelemetry => 'GPS (telemetria)'; - @override - String get updated => 'Zaktualizowano'; - - @override - String pathResetInfo(String name) { - return 'Trasa dla $name została zresetowana. Następna wiadomość znajdzie nową trasę.'; - } - @override String get reLoginToRoom => 'Zaloguj ponownie do pokoju'; @@ -844,9 +801,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get frequencyMHz => 'Częstotliwość (MHz)'; - @override - String get frequencyExample => 'np. 869.618'; - @override String get bandwidth => 'Szerokość pasma'; @@ -921,48 +875,12 @@ class AppLocalizationsPl extends AppLocalizations { @override String get trailControls => 'Sterowanie śladem'; - @override - String get contactTrails => 'Ślady kontaktów'; - - @override - String get showAllContactTrails => 'Pokaż wszystkie ślady kontaktów'; - - @override - String get noContactsWithLocationHistory => - 'Brak kontaktów z historią lokalizacji'; - - @override - String showingTrailsForContacts(int count) { - return 'Pokazywane są ślady dla $count kontaktów'; - } - - @override - String get individualContactTrails => 'Indywidualne ślady kontaktów'; - - @override - String get deviceInformation => 'Informacje o urządzeniu'; - - @override - String get bleName => 'Nazwa BLE'; - - @override - String get meshName => 'Nazwa mesh'; - - @override - String get notSet => 'Nie ustawiono'; - @override String get model => 'Model'; @override String get version => 'Wersja'; - @override - String get buildDate => 'Data kompilacji'; - - @override - String get firmware => 'Firmware'; - @override String get maxContacts => 'Maks. kontaktów'; @@ -972,22 +890,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get publicInfo => 'Informacje publiczne'; - @override - String get meshNetworkName => 'Nazwa sieci mesh'; - - @override - String get nameBroadcastInMesh => 'Nazwa nadawana w ogłoszeniach mesh'; - - @override - String get telemetryAndLocationSharing => - 'Telemetria i udostępnianie lokalizacji'; - - @override - String get lat => 'Szer.'; - - @override - String get lon => 'Dł.'; - @override String get useCurrentLocation => 'Użyj bieżącej lokalizacji'; @@ -1008,11 +910,6 @@ class AppLocalizationsPl extends AppLocalizations { return 'Typ $number'; } - @override - String copiedToClipboardShort(String label) { - return 'Skopiowano $label do schowka'; - } - @override String failedToSave(String error) { return 'Nie udało się zapisać: $error'; @@ -1026,9 +923,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get sarTemplates => 'Szablony SAR'; - @override - String get manageSarTemplates => 'Zarządzaj szablonami SAR'; - @override String get addTemplate => 'Dodaj szablon'; @@ -1130,9 +1024,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get ok => 'OK'; - @override - String get permissionsSection => 'Uprawnienia'; - @override String get locationPermission => 'Uprawnienie lokalizacji'; @@ -1572,87 +1463,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get wizardWelcomeTitle => 'Witamy w MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Potężne narzędzie komunikacji poza siecią do operacji poszukiwawczo-ratowniczych. Połącz się ze swoim zespołem przy użyciu technologii radia mesh, gdy tradycyjne sieci są niedostępne.'; - - @override - String get wizardConnectingTitle => 'Łączenie z radiem'; - - @override - String get wizardConnectingDescription => - 'Połącz smartfon z urządzeniem radiowym MeshCore przez Bluetooth, aby rozpocząć komunikację poza siecią.'; - - @override - String get wizardConnectingFeature1 => 'Skanuj pobliskie urządzenia MeshCore'; - - @override - String get wizardConnectingFeature2 => 'Sparuj radio przez Bluetooth'; - - @override - String get wizardConnectingFeature3 => - 'Działa całkowicie offline - internet nie jest wymagany'; - - @override - String get wizardChannelTitle => 'Kanały'; - - @override - String get wizardChannelDescription => - 'Nadawaj wiadomości do wszystkich na kanale, idealne do ogłoszeń i koordynacji całego zespołu.'; - - @override - String get wizardChannelFeature1 => - 'Kanał publiczny do ogólnej komunikacji zespołu'; - - @override - String get wizardChannelFeature2 => - 'Twórz własne kanały dla konkretnych grup'; - - @override - String get wizardChannelFeature3 => - 'Wiadomości są automatycznie przekazywane przez mesh'; - - @override - String get wizardContactsTitle => 'Kontakty'; - - @override - String get wizardContactsDescription => - 'Członkowie zespołu pojawiają się automatycznie, gdy dołączają do sieci mesh. Wyślij im wiadomość bezpośrednią lub zobacz ich lokalizację.'; - - @override - String get wizardContactsFeature1 => 'Kontakty wykrywane automatycznie'; - - @override - String get wizardContactsFeature2 => - 'Wysyłaj prywatne wiadomości bezpośrednie'; - - @override - String get wizardContactsFeature3 => - 'Podgląd poziomu baterii i czasu ostatniej aktywności'; - - @override - String get wizardMapTitle => 'Mapa i lokalizacja'; - - @override - String get wizardMapDescription => - 'Śledź swój zespół w czasie rzeczywistym i oznaczaj ważne lokalizacje dla działań poszukiwawczo-ratowniczych.'; - - @override - String get wizardMapFeature1 => - 'Znaczniki SAR dla odnalezionych osób, pożarów i stref zbiórki'; - - @override - String get wizardMapFeature2 => - 'Śledzenie GPS członków zespołu w czasie rzeczywistym'; - - @override - String get wizardMapFeature3 => - 'Pobieraj mapy offline dla odległych obszarów'; - - @override - String get wizardMapFeature4 => - 'Rysuj kształty i udostępniaj informacje taktyczne'; - @override String get viewWelcomeTutorial => 'Pokaż samouczek powitalny'; @@ -1912,11 +1722,11 @@ class AppLocalizationsPl extends AppLocalizations { 'Używaj logów pakietów, skanowania widma i diagnostyki deweloperskiej podczas rozwiązywania problemów z mesh.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Odkryć przekaźniki teraz?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Uruchom odkrywanie przekaźników zaraz po połączeniu, aby zobaczyć pobliskie węzły MeshCore i szybciej dodać je do sieci.'; @override String get contactInSensors => 'W Czujnikach'; @@ -2019,57 +1829,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get bandpassFilterVoice => 'Filtr pasmowy głosu'; - @override - String get frequency => 'Częstotliwość'; - - @override - String get australia => 'Australia'; - - @override - String get australiaNarrow => 'Australia (wąski)'; - - @override - String get australiaQld => 'Australia: QLD'; - - @override - String get australiaSaWa => 'Australia: SA, WA'; - - @override - String get newZealand => 'Nowa Zelandia'; - - @override - String get newZealandNarrow => 'Nowa Zelandia (wąski)'; - - @override - String get switzerland => 'Szwajcaria'; - - @override - String get portugal433 => 'Portugalia 433'; - - @override - String get portugal868 => 'Portugalia 868'; - - @override - String get czechRepublicNarrow => 'Czechy (wąski)'; - - @override - String get eu433mhzLongRange => 'EU 433MHz (daleki zasięg)'; - - @override - String get euukDeprecated => 'EU/UK (przestarzały)'; - - @override - String get euukNarrow => 'EU/UK (wąski)'; - - @override - String get usacanadaRecommended => 'USA/Kanada (zalecany)'; - - @override - String get vietnamDeprecated => 'Wietnam (przestarzały)'; - - @override - String get vietnamNarrow => 'Wietnam (wąski)'; - @override String get active => 'Aktywny'; @@ -2079,15 +1838,9 @@ class AppLocalizationsPl extends AppLocalizations { @override String get all => 'Wszystko'; - @override - String get autoResolve => 'Automatyczne rozwiązanie'; - @override String get clearAllLabel => 'Wyczyść wszystko'; - @override - String get clearRelays => 'Wyczyść przekaźniki'; - @override String get clearFilters => 'Wyczyść filtry'; @@ -2163,18 +1916,9 @@ class AppLocalizationsPl extends AppLocalizations { @override String get share => 'Udostępnij'; - @override - String get shareContact => 'Udostępnij kontakt'; - @override String get trace => 'Śledzenie'; - @override - String get use => 'Użyj'; - - @override - String get useSelectedFrequency => 'Użyj wybranej częstotliwości'; - @override String get discovery => 'Wykrywanie'; @@ -2241,9 +1985,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get repeatersMap => 'Mapa przekaźników'; - @override - String get spectrumScan => 'Skanowanie spektrum'; - @override String get blePacketLogs => 'Logi pakietów BLE'; @@ -2277,9 +2018,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get enableProfiles => 'Włącz profile'; - @override - String get autoRouteRotation => 'Automatyczna rotacja trasy'; - @override String get nearestRepeaterFallback => 'Najbliższy przekaźnik awaryjny'; @@ -2301,13 +2039,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get showSarMarkersLabel => 'Pokaż znaczniki SAR'; - @override - String get displaySarMarkersOnTheMainMap => - 'Wyświetlaj znaczniki SAR na głównej mapie'; - - @override - String get showAllContactTrailsLabel => 'Pokaż wszystkie ślady kontaktów'; - @override String get hideRepeatersOnMap => 'Ukryj przekaźniki na mapie'; @@ -2323,24 +2054,12 @@ class AppLocalizationsPl extends AppLocalizations { @override String get voiceCompressor => 'Kompresor głosu'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Wyrównuje ciche i głośne poziomy mowy'; - @override String get voiceLimiter => 'Limiter głosu'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Zapobiega przycinaniu szczytów przed kodowaniem'; - @override String get micAutoGain => 'Automatyczne wzmocnienie mikrofonu'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Pozwala nagrywarkowi dostosować poziom wejścia'; - @override String get echoCancellation => 'Usuwanie echa'; @@ -2473,16 +2192,9 @@ class AppLocalizationsPl extends AppLocalizations { @override String get quiet => 'Cicho'; - @override - String get moderate => 'Umiarkowane'; - @override String get busy => 'Zajęty'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'Skanowanie spektrum nie znalazło częstotliwości kandydatów'; - @override String get searchMessages => 'Szukaj wiadomości'; @@ -2492,9 +2204,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get takePhoto => 'Zrób zdjęcie'; - @override - String get dmOnly => 'Tylko wiadomość bezpośrednia'; - @override String get allMessages => 'Wszystkie wiadomości'; @@ -2550,14 +2259,6 @@ class AppLocalizationsPl extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Wybierz ustawienie wstępne lub dostosuj ustawienia radia.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Wybierz nazwę i lokalizację udostępnianą przez to urządzenie.'; - - @override - String get availableSpaceOnThisDevice => - 'Dostępne miejsce na tym urządzeniu.'; - @override String get used => 'Użyto'; @@ -2611,12 +2312,6 @@ class AppLocalizationsPl extends AppLocalizations { @override String get source => 'Źródło'; - @override - String get manualRouteEdit => 'Ręczna edycja trasy'; - - @override - String get observedMeshRoute => 'Obserwowana trasa sieci'; - @override String get allMessagesCleared => 'Wszystkie wiadomości wyczyszczone'; @@ -2716,38 +2411,616 @@ class AppLocalizationsPl extends AppLocalizations { 'Brak kontaktów urządzenia do wyczyszczenia.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Z'; @override - String get regionScope => 'Region scope'; + String get add => 'Dodaj'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Dodaj dodatkowe szczegóły'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Dodaj węzeł'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Dodaj węzeł ręcznie'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name dodano do kontaktów'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name dodano do czujników'; + } + + @override + String get allowAll => 'Zezwól na wszystko'; + + @override + String get anonymousRxStats => 'Anonimowe statystyki RX'; + + @override + String get appearance => 'Wygląd'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Telemetria bazowa'; + + @override + String get blePin => 'PIN BLE'; + + @override + String get buzzerAlerts => 'Alerty brzęczyka'; + + @override + String get cancelImageReceive => 'Anuluj odbieranie obrazu'; + + @override + String get choose => 'Wybierz'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Wybierz, które zakładki i sekcje kontaktów mają być widoczne'; + + @override + String get clearCache => 'Wyczyść pamięć podręczną'; + + @override + String get clearHistory => 'Wyczyść historię'; + + @override + String get clearLiveView => 'Wyczyść widok na żywo'; + + @override + String get clearLogs => 'Wyczyść logi'; + + @override + String get clearOfflineCache => 'Wyczyścić pamięć podręczną offline?'; + + @override + String get clearOverlay => 'Wyczyść nakładkę'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Wyczyść trasę dopiero po wyczerpaniu wszystkich prób'; + + @override + String get codecBitrateAndAudioProcessing => + 'Kodek, bitrate i przetwarzanie dźwięku'; + + @override + String get connectByIpAddress => 'Połącz przez adres IP'; + + @override + String get controlWhichAlertsYouReceive => + 'Kontroluj, które alerty otrzymujesz'; + + @override + String get copyFullHex => 'Kopiuj pełny Hex'; + + @override + String get copyRawResponse => 'Kopiuj surową odpowiedź'; + + @override + String get couldNotLoadMetHistory => 'Nie udało się wczytać historii MET'; + + @override + String customizeSensor(String name) { + return 'Dostosuj $name'; + } + + @override + String get data => 'Dane'; + + @override + String get deleteGroup => 'Usuń grupę'; + + @override + String deleteStyleConfirm(String name) { + return 'Usunąć $name?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Usunąć ten $type?'; + } + + @override + String get deny => 'Odmów'; + + @override + String get deviceInfo => 'Informacje o urządzeniu'; + + @override + String get deviceSettings => 'Ustawienia urządzenia'; + + @override + String get deviceTimeSynced => + 'Czas urządzenia zsynchronizowany z tym telefonem.'; + + @override + String get disableFastGpsPublishing => 'Wyłącz szybkie publikowanie GPS'; + + @override + String get displayMarkersAndTraceDatabase => + 'Wyświetlanie, znaczniki i baza danych tras'; + + @override + String get download => 'Pobierz'; + + @override + String get environmentalTelemetry => 'Telemetria środowiskowa'; + + @override + String errorCheckingForUpdates(String error) { + return 'Błąd sprawdzania aktualizacji: $error'; + } + + @override + String errorGeneric(String error) { + return 'Błąd: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Błąd otwierania pobranego pliku: $error'; + } + + @override + String get exportLogs => 'Eksportuj logi'; + + @override + String get extraAggressiveAvifCompression => + 'Bardzo agresywna kompresja AVIF'; + + @override + String failedToAddContact(String error) { + return 'Nie udało się dodać kontaktu: $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Nie udało się dodać $name: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Nie udało się wyczyścić kanałów: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Nie udało się wyczyścić kontaktów: $error'; + } + + @override + String get failedToConnectViaSerial => + 'Nie udało się połączyć przez port szeregowy'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Nie udało się wczytać podglądu obrazu: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Nie udało się wczytać trasy: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Nie udało się wysłać znacznika SAR: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Nie udało się ustawić trybu brzęczyka: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Nie udało się ustawić trybu GPS: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Nie udało się zsynchronizować czasu urządzenia: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Nie udało się wymazać danych urządzenia: $error'; + } + + @override + String get fastGpsTargetChannel => 'Docelowy kanał szybkiego GPS'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Szybkie aktualizacje, progi i uprawnienia'; + + @override + String get fetchingCatalog => 'Pobieranie katalogu...'; + + @override + String get fifteenMinutes => '15 minut'; + + @override + String get fifteenSeconds => '15 sekund'; + + @override + String get filterByDirection => 'Filtruj według kierunku'; + + @override + String get finish => 'Zakończ'; + + @override + String get fiveMinutes => '5 minut'; + + @override + String get fiveSeconds => '5 sekund'; + + @override + String get fix => 'Napraw'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'Zasady rozgłaszania GPS'; + + @override + String get gpsAndLocation => 'GPS i lokalizacja'; + + @override + String get gpsDiagnostics => 'Diagnostyka GPS'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Pomoc'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Ukryte'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Jak radio automatycznie dodaje odkryte węzły.'; + + @override + String get images => 'Obrazy'; + + @override + String get importProfile => 'Importuj profil'; + + @override + String get lastFix => 'Ostatni fix'; + + @override + String get latest => 'Najnowsze'; + + @override + String get latitude => 'Szerokość geograficzna'; + + @override + String get loadASavedRegion => 'Wczytaj zapisany region'; + + @override + String get loading => 'Ładowanie'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Udostępnianie lokalizacji, sprzęt i interwał aktualizacji.'; + + @override + String get locationTelemetry => 'Telemetria lokalizacji'; + + @override + String get lockDestination => 'Zablokuj cel'; + + @override + String get longitude => 'Długość geograficzna'; + + @override + String get mapStyle => 'Styl mapy'; + + @override + String get max => 'Maks.'; + + @override + String get maxZoom => 'Maks. przybliżenie'; + + @override + String get messaging => 'Wiadomości'; + + @override + String get metHistory => 'Historia MET'; + + @override + String get min => 'Min.'; + + @override + String get minZoom => 'Min. przybliżenie'; + + @override + String get moveDown => 'Przesuń w dół'; + + @override + String get moveUp => 'Przesuń w górę'; + + @override + String get multiAckMode => 'Tryb multi-ACK'; + + @override + String get multiDeviceWorkspaceManagement => + 'Zarządzanie przestrzenią roboczą wielu urządzeń'; + + @override + String get myLocation => 'Moja lokalizacja'; + + @override + String get nameAndTelemetryShared => + 'Nazwa i telemetria udostępniana innym urządzeniom.'; + + @override + String newVersionAvailable(String version) { + return 'Nowa wersja: $version'; + } + + @override + String get newer => 'Nowsze'; + + @override + String get noNeighboursFound => 'Nie znaleziono sąsiadów'; + + @override + String get noServersFound => 'Nie znaleziono serwerów'; + + @override + String get notSet => 'Nie ustawiono'; + + @override + String get notifications => 'Powiadomienia'; + + @override + String get offZeroSeconds => 'Wył. (0 s)'; + + @override + String get offlineMaps => 'Mapy offline'; + + @override + String get older => 'Starsze'; + + @override + String get oneByteMode0 => '1 bajt (tryb 0)'; + + @override + String get oneHour => '1 godzina'; + + @override + String get oneMinute => '1 minuta'; + + @override + String get openPacketLogs => 'Otwórz logi pakietów'; + + @override + String get packetTypeHelp => 'Pomoc typów pakietów'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Wklej link udostępniania lub ogłoszenie Hex'; + + @override + String get pathHash => 'Hash ścieżki'; + + @override + String get pathSize => 'Rozmiar ścieżki'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Wielokąt'; + + @override + String get rawResponseCopied => 'Skopiowano surową odpowiedź'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Ponów wysyłkę przez najbliższy przekaźnik po niepowodzeniu'; + + @override + String get resolveContact => 'Rozwiąż kontakt'; + + @override + String get routingRetriesAndDestinationLock => + 'Routing, ponawianie i blokada celu'; + + @override + String get samples => 'Próbki'; + + @override + String get satellites => 'Satelity'; + + @override + String get saving => 'Zapisywanie...'; + + @override + String get search => 'Szukaj'; + + @override + String get searchByNameOrToken => 'Szukaj po nazwie lub tokenie'; + + @override + String get searchDiscoveredNodes => 'Szukaj odkrytych węzłów'; + + @override + String get searchInCurrentFilter => 'Szukaj w bieżącym filtrze'; + + @override + String get searchLogs => 'Szukaj w logach...'; + + @override + String get searchSensors => 'Szukaj czujników'; + + @override + String get searchThisSection => 'Szukaj w tej sekcji'; + + @override + String get selectedRelays => 'Wybrane przekaźniki'; + + @override + String get sensor => 'Czujnik'; + + @override + String serialError(String error) { + return 'Błąd portu szeregowego: $error'; + } + + @override + String setPathForContact(String name) { + return 'Ustaw ścieżkę dla $name'; + } + + @override + String get shareLiveGps => 'Udostępnij GPS na żywo'; + + @override + String get shareMyTiles => 'Udostępnij moje kafelki'; + + @override + String get sharingLocationFromPhone => + 'Udostępnianie lokalizacji na tym kanale z telefonu.'; + + @override + String get sharingLocationFromRadio => + 'Udostępnianie lokalizacji na tym kanale z radia.'; + + @override + String signalDbm(String rssi) { + return 'Sygnał $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => 'Rozmiar, kompresja i podgląd'; + + @override + String get skip => 'Pomiń'; + + @override + String get smallerFileSize => 'Mniejszy rozmiar pliku'; + + @override + String get sort => 'Sortuj'; + + @override + String get stoppedSharingLocation => + 'Zatrzymano udostępnianie lokalizacji na tym kanale.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Wycisz powiadomienia, gdy aplikacja jest na pierwszym planie'; + + @override + String get tabsAndNavigation => 'Zakładki i nawigacja'; + + @override + String get templatesAndTutorials => 'Szablony i samouczki'; + + @override + String get tenMinutes => '10 minut'; + + @override + String get tenSeconds => '10 sekund'; + + @override + String get testSendUpdate => 'Testowe wysłanie aktualizacji'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Motyw, język i preferencje wyświetlania'; + + @override + String get thirtyMinutes => '30 minut'; + + @override + String get thirtySeconds => '30 sekund'; + + @override + String get threeBytesMode2 => '3 bajty (tryb 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Statystyki ruchu, historia wiadomości i narzędzia deweloperskie'; + + @override + String get twoBytesMode1 => '2 bajty (tryb 1)'; + + @override + String get twoMinutes => '2 minuty'; + + @override + String get undo => 'Cofnij'; + + @override + String get updated => 'Zaktualizowano'; + + @override + String get useContactFlags => 'Używaj flag kontaktów'; + + @override + String get useSavedCoordinates => 'Użyj zapisanych współrzędnych'; + + @override + String get view => 'Widok'; + + @override + String get viewNeighbours => 'Pokaż sąsiadów'; + + @override + String get viewPublicStats => 'Pokaż publiczne statystyki'; + + @override + String get setRegionScope => 'Ustaw zakres regionu'; + + @override + String get regionScope => 'Zakres regionu'; + + @override + String get regionScopeNone => 'Brak (globalny)'; + + @override + String get clearRegionScope => 'Wyczyść zakres'; + + @override + String get regionScopeWarning => + 'Tylko przekaźniki zezwalające na ten region będą przekazywać.'; + + @override + String get discoverRegions => 'Odkryj z przekaźników'; + + @override + String get discoveringRegions => 'Odkrywanie regionów...'; + + @override + String get enterRegionName => 'Nazwa regionu (np. auckland)'; + + @override + String get noRegionsFound => 'Nie znaleziono regionów na tym przekaźniku.'; + + @override + String regionScopeSet(String name) { + return 'Zakres regionu ustawiony na $name'; + } + + @override + String get regionScopeCleared => 'Zakres regionu wyczyszczony'; } diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart index 884d7a7..432ecdd 100644 --- a/lib/l10n/app_localizations_pt.dart +++ b/lib/l10n/app_localizations_pt.dart @@ -35,9 +35,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get scanAgain => 'Escanear novamente'; - @override - String get tapToConnect => 'Toque para conectar'; - @override String get deviceNotConnected => 'Dispositivo não conectado'; @@ -109,17 +106,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get showRxTxIndicators => 'Mostrar indicadores RX/TX'; - @override - String get displayPacketActivity => - 'Exibir indicadores de atividade de pacotes na barra superior'; - @override String get disableMap => 'Desativar mapa'; - @override - String get disableMapDescription => - 'Ocultar a aba de mapa para reduzir o uso de bateria'; - @override String get language => 'Idioma'; @@ -141,9 +130,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get appVersion => 'Versão do app'; - @override - String get appName => 'Nome do app'; - @override String get aboutMeshCoreSar => 'Sobre o MeshCore SAR'; @@ -239,10 +225,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get resetPath => 'Redefinir rota'; - @override - String get publicKeyCopied => - 'Chave pública copiada para a área de transferência'; - @override String copiedToClipboard(String label) { return '$label copiado para a área de transferência'; @@ -483,22 +465,22 @@ class AppLocalizationsPt extends AppLocalizations { String get flood => 'Inundação'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Envio automático'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Enviar pela rota atual.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Envio direto'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Enviar diretamente a este contacto.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Envio por inundação'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Enviar por todos os repetidores.'; @override String get loggedIn => 'Conectado'; @@ -538,18 +520,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get lastSeen => 'Visto por último'; - @override - String get roomStatus => 'Status da sala'; - - @override - String get loginStatus => 'Status do login'; - - @override - String get notLoggedIn => 'Não conectado'; - - @override - String get adminAccess => 'Acesso de administrador'; - @override String get yes => 'Sim'; @@ -559,12 +529,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get permissions => 'Permissões'; - @override - String get passwordSaved => 'Senha salva'; - - @override - String get locationColon => 'Localização:'; - @override String get telemetry => 'Telemetria'; @@ -586,14 +550,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get gpsTelemetry => 'GPS (telemetria)'; - @override - String get updated => 'Atualizado'; - - @override - String pathResetInfo(String name) { - return 'Rota redefinida para $name. A próxima mensagem encontrará um novo caminho.'; - } - @override String get reLoginToRoom => 'Entrar novamente na sala'; @@ -846,9 +802,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get frequencyMHz => 'Frequência (MHz)'; - @override - String get frequencyExample => 'ex.: 869.618'; - @override String get bandwidth => 'Largura de banda'; @@ -923,48 +876,12 @@ class AppLocalizationsPt extends AppLocalizations { @override String get trailControls => 'Controles da trilha'; - @override - String get contactTrails => 'Trilhas dos contatos'; - - @override - String get showAllContactTrails => 'Mostrar todas as trilhas dos contatos'; - - @override - String get noContactsWithLocationHistory => - 'Nenhum contato com histórico de localização'; - - @override - String showingTrailsForContacts(int count) { - return 'Mostrando trilhas de $count contatos'; - } - - @override - String get individualContactTrails => 'Trilhas individuais dos contatos'; - - @override - String get deviceInformation => 'Informações do dispositivo'; - - @override - String get bleName => 'Nome BLE'; - - @override - String get meshName => 'Nome da mesh'; - - @override - String get notSet => 'Não definido'; - @override String get model => 'Modelo'; @override String get version => 'Versão'; - @override - String get buildDate => 'Data de build'; - - @override - String get firmware => 'Firmware'; - @override String get maxContacts => 'Máx. de contatos'; @@ -974,22 +891,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get publicInfo => 'Informações públicas'; - @override - String get meshNetworkName => 'Nome da rede mesh'; - - @override - String get nameBroadcastInMesh => 'Nome transmitido nos anúncios mesh'; - - @override - String get telemetryAndLocationSharing => - 'Telemetria e compartilhamento de localização'; - - @override - String get lat => 'Lat.'; - - @override - String get lon => 'Lon.'; - @override String get useCurrentLocation => 'Usar localização atual'; @@ -1010,11 +911,6 @@ class AppLocalizationsPt extends AppLocalizations { return 'Tipo $number'; } - @override - String copiedToClipboardShort(String label) { - return '$label copiado para a área de transferência'; - } - @override String failedToSave(String error) { return 'Falha ao salvar: $error'; @@ -1028,9 +924,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get sarTemplates => 'Modelos SAR'; - @override - String get manageSarTemplates => 'Gerenciar modelos SAR'; - @override String get addTemplate => 'Adicionar modelo'; @@ -1132,9 +1025,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get ok => 'OK'; - @override - String get permissionsSection => 'Permissões'; - @override String get locationPermission => 'Permissão de localização'; @@ -1579,87 +1469,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get wizardWelcomeTitle => 'Bem-vindo ao MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Uma poderosa ferramenta de comunicação off-grid para operações de busca e resgate. Conecte-se com sua equipe usando tecnologia de rádio mesh quando as redes tradicionais não estiverem disponíveis.'; - - @override - String get wizardConnectingTitle => 'Conectando ao seu rádio'; - - @override - String get wizardConnectingDescription => - 'Conecte seu smartphone a um dispositivo de rádio MeshCore via Bluetooth para começar a se comunicar off-grid.'; - - @override - String get wizardConnectingFeature1 => - 'Procure dispositivos MeshCore próximos'; - - @override - String get wizardConnectingFeature2 => - 'Emparelhe com seu rádio via Bluetooth'; - - @override - String get wizardConnectingFeature3 => - 'Funciona totalmente offline - internet não é necessária'; - - @override - String get wizardChannelTitle => 'Canais'; - - @override - String get wizardChannelDescription => - 'Transmita mensagens para todos em um canal, ideal para anúncios e coordenação de toda a equipe.'; - - @override - String get wizardChannelFeature1 => - 'Canal público para comunicação geral da equipe'; - - @override - String get wizardChannelFeature2 => - 'Crie canais personalizados para grupos específicos'; - - @override - String get wizardChannelFeature3 => - 'As mensagens são retransmitidas automaticamente pela malha'; - - @override - String get wizardContactsTitle => 'Contatos'; - - @override - String get wizardContactsDescription => - 'Os membros da sua equipe aparecem automaticamente à medida que entram na rede mesh. Envie mensagens diretas ou veja a localização deles.'; - - @override - String get wizardContactsFeature1 => 'Contatos descobertos automaticamente'; - - @override - String get wizardContactsFeature2 => 'Envie mensagens diretas privadas'; - - @override - String get wizardContactsFeature3 => - 'Veja o nível de bateria e o horário da última visualização'; - - @override - String get wizardMapTitle => 'Mapa e localização'; - - @override - String get wizardMapDescription => - 'Acompanhe sua equipe em tempo real e marque locais importantes para operações de busca e resgate.'; - - @override - String get wizardMapFeature1 => - 'Marcadores SAR para pessoas encontradas, incêndios e áreas de apoio'; - - @override - String get wizardMapFeature2 => - 'Rastreamento GPS em tempo real dos membros da equipe'; - - @override - String get wizardMapFeature3 => 'Baixe mapas offline para áreas remotas'; - - @override - String get wizardMapFeature4 => - 'Desenhe formas e compartilhe informações táticas'; - @override String get viewWelcomeTutorial => 'Ver tutorial de boas-vindas'; @@ -1919,11 +1728,11 @@ class AppLocalizationsPt extends AppLocalizations { 'Use logs de pacotes, varredura de espectro e diagnóstico de desenvolvedor ao solucionar problemas da malha.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Descobrir repetidores agora?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Execute a descoberta de repetidores logo após a conexão para ver os nós MeshCore próximos e adicioná-los à sua rede mais rapidamente.'; @override String get contactInSensors => 'Nos Sensores'; @@ -2026,57 +1835,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get bandpassFilterVoice => 'Filtro passa-banda de voz'; - @override - String get frequency => 'Frequência'; - - @override - String get australia => 'Austrália'; - - @override - String get australiaNarrow => 'Austrália (Estreito)'; - - @override - String get australiaQld => 'Austrália: QLD'; - - @override - String get australiaSaWa => 'Austrália: SA, WA'; - - @override - String get newZealand => 'Nova Zelândia'; - - @override - String get newZealandNarrow => 'Nova Zelândia (Estreito)'; - - @override - String get switzerland => 'Suíça'; - - @override - String get portugal433 => 'Portugal 433'; - - @override - String get portugal868 => 'Portugal 868'; - - @override - String get czechRepublicNarrow => 'República Checa (Estreito)'; - - @override - String get eu433mhzLongRange => 'UE 433MHz (Longo Alcance)'; - - @override - String get euukDeprecated => 'UE/RU (Obsoleto)'; - - @override - String get euukNarrow => 'UE/RU (Estreito)'; - - @override - String get usacanadaRecommended => 'EUA/Canadá (Recomendado)'; - - @override - String get vietnamDeprecated => 'Vietname (Obsoleto)'; - - @override - String get vietnamNarrow => 'Vietname (Estreito)'; - @override String get active => 'Ativo'; @@ -2086,15 +1844,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get all => 'Tudo'; - @override - String get autoResolve => 'Resolver automaticamente'; - @override String get clearAllLabel => 'Limpar tudo'; - @override - String get clearRelays => 'Limpar relays'; - @override String get clearFilters => 'Limpar filtros'; @@ -2170,18 +1922,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get share => 'Partilhar'; - @override - String get shareContact => 'Partilhar contacto'; - @override String get trace => 'Rastreio'; - @override - String get use => 'Usar'; - - @override - String get useSelectedFrequency => 'Usar frequência selecionada'; - @override String get discovery => 'Descoberta'; @@ -2250,9 +1993,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get repeatersMap => 'Mapa de repetidores'; - @override - String get spectrumScan => 'Varredura de espectro'; - @override String get blePacketLogs => 'Registos de pacotes BLE'; @@ -2286,9 +2026,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get enableProfiles => 'Ativar perfis'; - @override - String get autoRouteRotation => 'Rotação automática de rota'; - @override String get nearestRepeaterFallback => 'Repetidor mais próximo como reserva'; @@ -2311,14 +2048,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get showSarMarkersLabel => 'Mostrar marcadores SAR'; - @override - String get displaySarMarkersOnTheMainMap => - 'Mostrar marcadores SAR no mapa principal'; - - @override - String get showAllContactTrailsLabel => - 'Mostrar todos os rastos de contactos'; - @override String get hideRepeatersOnMap => 'Ocultar repetidores no mapa'; @@ -2334,24 +2063,12 @@ class AppLocalizationsPt extends AppLocalizations { @override String get voiceCompressor => 'Compressor de voz'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Equilibra níveis de fala suaves e altos'; - @override String get voiceLimiter => 'Limitador de voz'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Previne corte de picos antes da codificação'; - @override String get micAutoGain => 'Ganho automático do microfone'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Permite ao gravador ajustar o nível de entrada'; - @override String get echoCancellation => 'Cancelamento de eco'; @@ -2481,16 +2198,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get quiet => 'Silencioso'; - @override - String get moderate => 'Moderado'; - @override String get busy => 'Ocupado'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'A varredura de espectro não encontrou frequências candidatas'; - @override String get searchMessages => 'Pesquisar mensagens'; @@ -2500,9 +2210,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get takePhoto => 'Tirar foto'; - @override - String get dmOnly => 'Apenas mensagem direta'; - @override String get allMessages => 'Todas as mensagens'; @@ -2559,14 +2266,6 @@ class AppLocalizationsPt extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Escolha uma predefinição ou ajuste as definições de rádio.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Escolha o nome e a localização que este dispositivo partilha.'; - - @override - String get availableSpaceOnThisDevice => - 'Espaço disponível neste dispositivo.'; - @override String get used => 'Usado'; @@ -2620,12 +2319,6 @@ class AppLocalizationsPt extends AppLocalizations { @override String get source => 'Fonte'; - @override - String get manualRouteEdit => 'Edição manual de rota'; - - @override - String get observedMeshRoute => 'Rota mesh observada'; - @override String get allMessagesCleared => 'Todas as mensagens limpas'; @@ -2727,38 +2420,616 @@ class AppLocalizationsPt extends AppLocalizations { 'Sem contactos do dispositivo para limpar.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Z'; @override - String get regionScope => 'Region scope'; + String get add => 'Adicionar'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Adicionar detalhes adicionais'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Adicionar par'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Adicionar par manualmente'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name adicionado aos contatos'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name adicionado aos Sensores'; + } + + @override + String get allowAll => 'Permitir todos'; + + @override + String get anonymousRxStats => 'Estatísticas RX anónimas'; + + @override + String get appearance => 'Aparência'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Telemetria base'; + + @override + String get blePin => 'PIN BLE'; + + @override + String get buzzerAlerts => 'Alertas sonoros'; + + @override + String get cancelImageReceive => 'Cancelar receção de imagem'; + + @override + String get choose => 'Escolher'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Escolher quais separadores e secções de contatos mostrar'; + + @override + String get clearCache => 'Limpar cache'; + + @override + String get clearHistory => 'Limpar histórico'; + + @override + String get clearLiveView => 'Limpar vista ao vivo'; + + @override + String get clearLogs => 'Limpar registos'; + + @override + String get clearOfflineCache => 'Limpar cache offline?'; + + @override + String get clearOverlay => 'Limpar sobreposição'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Limpar rota apenas após todas as tentativas falharem'; + + @override + String get codecBitrateAndAudioProcessing => + 'Codec, bitrate e processamento de áudio'; + + @override + String get connectByIpAddress => 'Conectar por endereço IP'; + + @override + String get controlWhichAlertsYouReceive => 'Controlar quais alertas recebe'; + + @override + String get copyFullHex => 'Copiar hex completo'; + + @override + String get copyRawResponse => 'Copiar resposta bruta'; + + @override + String get couldNotLoadMetHistory => + 'Não foi possível carregar o histórico MET'; + + @override + String customizeSensor(String name) { + return 'Personalizar $name'; + } + + @override + String get data => 'Dados'; + + @override + String get deleteGroup => 'Eliminar grupo'; + + @override + String deleteStyleConfirm(String name) { + return 'Eliminar $name?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Eliminar este $type?'; + } + + @override + String get deny => 'Negar'; + + @override + String get deviceInfo => 'Informações do dispositivo'; + + @override + String get deviceSettings => 'Definições do dispositivo'; + + @override + String get deviceTimeSynced => + 'Hora do dispositivo sincronizada com este telemóvel.'; + + @override + String get disableFastGpsPublishing => 'Desativar publicação rápida de GPS'; + + @override + String get displayMarkersAndTraceDatabase => + 'Ecrã, marcadores e base de dados de percursos'; + + @override + String get download => 'Transferir'; + + @override + String get environmentalTelemetry => 'Telemetria ambiental'; + + @override + String errorCheckingForUpdates(String error) { + return 'Erro ao verificar atualizações: $error'; + } + + @override + String errorGeneric(String error) { + return 'Erro: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Erro ao abrir transferência: $error'; + } + + @override + String get exportLogs => 'Exportar registos'; + + @override + String get extraAggressiveAvifCompression => + 'Compressão AVIF extra-agressiva'; + + @override + String failedToAddContact(String error) { + return 'Falha ao adicionar contato: $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Falha ao adicionar $name: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Falha ao limpar canais: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Falha ao limpar contatos: $error'; + } + + @override + String get failedToConnectViaSerial => 'Falha ao conectar via série'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Falha ao carregar imagem de pré-visualização: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Falha ao carregar percurso: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Falha ao enviar marcador SAR: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Falha ao definir modo de alarme: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Falha ao definir modo GPS: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Falha ao sincronizar hora do dispositivo: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Falha ao apagar dados do dispositivo: $error'; + } + + @override + String get fastGpsTargetChannel => 'Canal alvo de GPS rápido'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Atualizações rápidas, limiares e permissões'; + + @override + String get fetchingCatalog => 'A obter catálogo...'; + + @override + String get fifteenMinutes => '15 minutos'; + + @override + String get fifteenSeconds => '15 segundos'; + + @override + String get filterByDirection => 'Filtrar por direção'; + + @override + String get finish => 'Concluir'; + + @override + String get fiveMinutes => '5 minutos'; + + @override + String get fiveSeconds => '5 segundos'; + + @override + String get fix => 'Correção'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'Política de anúncio GPS'; + + @override + String get gpsAndLocation => 'GPS e Localização'; + + @override + String get gpsDiagnostics => 'Diagnósticos GPS'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Ajuda'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Oculto'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Como o rádio adiciona automaticamente nós descobertos.'; + + @override + String get images => 'Imagens'; + + @override + String get importProfile => 'Importar perfil'; + + @override + String get lastFix => 'Última correção'; + + @override + String get latest => 'Mais recente'; + + @override + String get latitude => 'Latitude'; + + @override + String get loadASavedRegion => 'Carregar uma região guardada'; + + @override + String get loading => 'A carregar'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Partilha de localização, hardware e intervalo de atualização.'; + + @override + String get locationTelemetry => 'Telemetria de localização'; + + @override + String get lockDestination => 'Bloquear destino'; + + @override + String get longitude => 'Longitude'; + + @override + String get mapStyle => 'Estilo do mapa'; + + @override + String get max => 'Máx'; + + @override + String get maxZoom => 'Zoom máximo'; + + @override + String get messaging => 'Mensagens'; + + @override + String get metHistory => 'Histórico MET'; + + @override + String get min => 'Mín'; + + @override + String get minZoom => 'Zoom mínimo'; + + @override + String get moveDown => 'Mover para baixo'; + + @override + String get moveUp => 'Mover para cima'; + + @override + String get multiAckMode => 'Modo multi-ACK'; + + @override + String get multiDeviceWorkspaceManagement => + 'Gestão de espaço de trabalho multi-dispositivo'; + + @override + String get myLocation => 'A minha localização'; + + @override + String get nameAndTelemetryShared => + 'Nome e telemetria partilhados com outros dispositivos.'; + + @override + String newVersionAvailable(String version) { + return 'Nova versão: $version'; + } + + @override + String get newer => 'Mais recente'; + + @override + String get noNeighboursFound => 'Nenhum vizinho encontrado'; + + @override + String get noServersFound => 'Nenhum servidor encontrado'; + + @override + String get notSet => 'Não definido'; + + @override + String get notifications => 'Notificações'; + + @override + String get offZeroSeconds => 'Desligado (0 s)'; + + @override + String get offlineMaps => 'Mapas offline'; + + @override + String get older => 'Mais antigo'; + + @override + String get oneByteMode0 => '1 byte (modo 0)'; + + @override + String get oneHour => '1 hora'; + + @override + String get oneMinute => '1 minuto'; + + @override + String get openPacketLogs => 'Abrir registos de pacotes'; + + @override + String get packetTypeHelp => 'Ajuda sobre tipos de pacotes'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Colar um link de partilha ou anúncio hex'; + + @override + String get pathHash => 'Hash do caminho'; + + @override + String get pathSize => 'Tamanho do caminho'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Polígono'; + + @override + String get rawResponseCopied => 'Resposta bruta copiada'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Reenviar pelo repetidor mais próximo em caso de falha'; + + @override + String get resolveContact => 'Resolver contato'; + + @override + String get routingRetriesAndDestinationLock => + 'Encaminhamento, tentativas e bloqueio de destino'; + + @override + String get samples => 'Amostras'; + + @override + String get satellites => 'Satélites'; + + @override + String get saving => 'A guardar...'; + + @override + String get search => 'Pesquisar'; + + @override + String get searchByNameOrToken => 'Pesquisar por nome ou token'; + + @override + String get searchDiscoveredNodes => 'Pesquisar nós descobertos'; + + @override + String get searchInCurrentFilter => 'Pesquisar no filtro atual'; + + @override + String get searchLogs => 'Pesquisar registos...'; + + @override + String get searchSensors => 'Pesquisar sensores'; + + @override + String get searchThisSection => 'Pesquisar nesta secção'; + + @override + String get selectedRelays => 'Repetidores selecionados'; + + @override + String get sensor => 'Sensor'; + + @override + String serialError(String error) { + return 'Erro de série: $error'; + } + + @override + String setPathForContact(String name) { + return 'Definir caminho para $name'; + } + + @override + String get shareLiveGps => 'Partilhar GPS ao vivo'; + + @override + String get shareMyTiles => 'Partilhar os meus mosaicos'; + + @override + String get sharingLocationFromPhone => + 'A partilhar localização neste canal a partir do telemóvel.'; + + @override + String get sharingLocationFromRadio => + 'A partilhar localização neste canal a partir do rádio.'; + + @override + String signalDbm(String rssi) { + return 'Sinal $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => + 'Tamanho, compressão e pré-visualização'; + + @override + String get skip => 'Saltar'; + + @override + String get smallerFileSize => 'Tamanho de ficheiro menor'; + + @override + String get sort => 'Ordenar'; + + @override + String get stoppedSharingLocation => + 'Deixou de partilhar localização neste canal.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Suprimir notificações em primeiro plano'; + + @override + String get tabsAndNavigation => 'Separadores e Navegação'; + + @override + String get templatesAndTutorials => 'Modelos e tutoriais'; + + @override + String get tenMinutes => '10 minutos'; + + @override + String get tenSeconds => '10 segundos'; + + @override + String get testSendUpdate => 'Testar envio de atualização'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Tema, idioma e preferências de apresentação'; + + @override + String get thirtyMinutes => '30 minutos'; + + @override + String get thirtySeconds => '30 segundos'; + + @override + String get threeBytesMode2 => '3 bytes (modo 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Estatísticas de tráfego, histórico de mensagens e ferramentas de programador'; + + @override + String get twoBytesMode1 => '2 bytes (modo 1)'; + + @override + String get twoMinutes => '2 minutos'; + + @override + String get undo => 'Desfazer'; + + @override + String get updated => 'Atualizado'; + + @override + String get useContactFlags => 'Usar bandeiras de contato'; + + @override + String get useSavedCoordinates => 'Usar coordenadas guardadas'; + + @override + String get view => 'Ver'; + + @override + String get viewNeighbours => 'Ver vizinhos'; + + @override + String get viewPublicStats => 'Ver estatísticas públicas'; + + @override + String get setRegionScope => 'Definir âmbito de região'; + + @override + String get regionScope => 'Âmbito de região'; + + @override + String get regionScopeNone => 'Nenhum (global)'; + + @override + String get clearRegionScope => 'Limpar âmbito'; + + @override + String get regionScopeWarning => + 'Apenas os repetidores que permitem esta região irão retransmitir.'; + + @override + String get discoverRegions => 'Descobrir a partir dos repetidores'; + + @override + String get discoveringRegions => 'A descobrir regiões...'; + + @override + String get enterRegionName => 'Nome da região (ex. auckland)'; + + @override + String get noRegionsFound => 'Nenhuma região encontrada neste repetidor.'; + + @override + String regionScopeSet(String name) { + return 'Âmbito de região definido para $name'; + } + + @override + String get regionScopeCleared => 'Âmbito de região limpo'; } diff --git a/lib/l10n/app_localizations_ru.dart b/lib/l10n/app_localizations_ru.dart index 138169d..33903b8 100644 --- a/lib/l10n/app_localizations_ru.dart +++ b/lib/l10n/app_localizations_ru.dart @@ -35,9 +35,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get scanAgain => 'Повторить поиск'; - @override - String get tapToConnect => 'Нажмите для подключения'; - @override String get deviceNotConnected => 'Устройство не подключено'; @@ -109,17 +106,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get showRxTxIndicators => 'Показывать индикаторы RX/TX'; - @override - String get displayPacketActivity => - 'Отображать активность пакетов в верхней панели'; - @override String get disableMap => 'Отключить карту'; - @override - String get disableMapDescription => - 'Скрыть вкладку карты для экономии заряда батареи'; - @override String get language => 'Язык'; @@ -141,9 +130,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get appVersion => 'Версия приложения'; - @override - String get appName => 'Название приложения'; - @override String get aboutMeshCoreSar => 'О MeshCore SAR'; @@ -239,9 +225,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get resetPath => 'Сбросить маршрут (перепроложить)'; - @override - String get publicKeyCopied => 'Публичный ключ скопирован в буфер обмена'; - @override String copiedToClipboard(String label) { return '$label скопировано в буфер обмена'; @@ -481,22 +464,22 @@ class AppLocalizationsRu extends AppLocalizations { String get flood => 'Широковещательно'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Автоотправка'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Отправить текущим маршрутом.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Прямая отправка'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Отправить напрямую этому контакту.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Отправка лавиной'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Отправить через все ретрансляторы.'; @override String get loggedIn => 'Вход выполнен'; @@ -536,18 +519,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get lastSeen => 'Последнее появление'; - @override - String get roomStatus => 'Статус комнаты'; - - @override - String get loginStatus => 'Статус входа'; - - @override - String get notLoggedIn => 'Не выполнен вход'; - - @override - String get adminAccess => 'Доступ администратора'; - @override String get yes => 'Да'; @@ -557,12 +528,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get permissions => 'Разрешения'; - @override - String get passwordSaved => 'Пароль сохранён'; - - @override - String get locationColon => 'Местоположение:'; - @override String get telemetry => 'Телеметрия'; @@ -584,14 +549,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get gpsTelemetry => 'GPS (телеметрия)'; - @override - String get updated => 'Обновлено'; - - @override - String pathResetInfo(String name) { - return 'Маршрут сброшен для $name. Следующее сообщение найдёт новый путь.'; - } - @override String get reLoginToRoom => 'Войти в комнату повторно'; @@ -843,9 +800,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get frequencyMHz => 'Частота (МГц)'; - @override - String get frequencyExample => 'например, 869.618'; - @override String get bandwidth => 'Полоса пропускания'; @@ -920,48 +874,12 @@ class AppLocalizationsRu extends AppLocalizations { @override String get trailControls => 'Управление треком'; - @override - String get contactTrails => 'Треки контактов'; - - @override - String get showAllContactTrails => 'Показать все треки контактов'; - - @override - String get noContactsWithLocationHistory => - 'Нет контактов с историей местоположения'; - - @override - String showingTrailsForContacts(int count) { - return 'Показаны треки для $count контактов'; - } - - @override - String get individualContactTrails => 'Индивидуальные треки контактов'; - - @override - String get deviceInformation => 'Информация об устройстве'; - - @override - String get bleName => 'Имя BLE'; - - @override - String get meshName => 'Имя в сети Mesh'; - - @override - String get notSet => 'Не задано'; - @override String get model => 'Модель'; @override String get version => 'Версия'; - @override - String get buildDate => 'Дата сборки'; - - @override - String get firmware => 'Прошивка'; - @override String get maxContacts => 'Макс. контактов'; @@ -971,22 +889,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get publicInfo => 'Публичная информация'; - @override - String get meshNetworkName => 'Название сети Mesh'; - - @override - String get nameBroadcastInMesh => 'Имя, транслируемое в mesh-объявлениях'; - - @override - String get telemetryAndLocationSharing => - 'Телеметрия и передача местоположения'; - - @override - String get lat => 'Ш'; - - @override - String get lon => 'Д'; - @override String get useCurrentLocation => 'Использовать текущее местоположение'; @@ -1007,11 +909,6 @@ class AppLocalizationsRu extends AppLocalizations { return 'Тип $number'; } - @override - String copiedToClipboardShort(String label) { - return '$label скопировано в буфер обмена'; - } - @override String failedToSave(String error) { return 'Не удалось сохранить: $error'; @@ -1025,9 +922,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get sarTemplates => 'Шаблоны SAR'; - @override - String get manageSarTemplates => 'Управление шаблонами целеуказания'; - @override String get addTemplate => 'Добавить шаблон'; @@ -1129,9 +1023,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get ok => 'ОК'; - @override - String get permissionsSection => 'Разрешения'; - @override String get locationPermission => 'Разрешение геолокации'; @@ -1571,85 +1462,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get wizardWelcomeTitle => 'Добро пожаловать в MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Мощный инструмент связи вне сети для поисково-спасательных операций. Поддерживайте связь с командой через mesh-радио, когда традиционные сети недоступны.'; - - @override - String get wizardConnectingTitle => 'Подключение к радиоустройству'; - - @override - String get wizardConnectingDescription => - 'Подключите смартфон к радиоустройству MeshCore по Bluetooth для связи вне сети.'; - - @override - String get wizardConnectingFeature1 => 'Поиск ближайших устройств MeshCore'; - - @override - String get wizardConnectingFeature2 => - 'Сопряжение с радиоустройством по Bluetooth'; - - @override - String get wizardConnectingFeature3 => - 'Работает полностью офлайн — интернет не нужен'; - - @override - String get wizardChannelTitle => 'Каналы'; - - @override - String get wizardChannelDescription => - 'Транслируйте сообщения всем участникам канала — идеально для общих объявлений и координации команды.'; - - @override - String get wizardChannelFeature1 => 'Публичный канал для общей связи команды'; - - @override - String get wizardChannelFeature2 => - 'Создавайте пользовательские каналы для отдельных групп'; - - @override - String get wizardChannelFeature3 => - 'Сообщения автоматически ретранслируются через mesh'; - - @override - String get wizardContactsTitle => 'Контакты'; - - @override - String get wizardContactsDescription => - 'Члены вашей команды появляются автоматически по мере подключения к mesh-сети. Отправляйте им личные сообщения или просматривайте их местоположение.'; - - @override - String get wizardContactsFeature1 => 'Контакты обнаруживаются автоматически'; - - @override - String get wizardContactsFeature2 => 'Отправка личных сообщений'; - - @override - String get wizardContactsFeature3 => - 'Просмотр уровня заряда и времени последнего появления'; - - @override - String get wizardMapTitle => 'Карта и местоположение'; - - @override - String get wizardMapDescription => - 'Отслеживайте команду в реальном времени и отмечайте важные места для поисково-спасательных операций.'; - - @override - String get wizardMapFeature1 => - 'Маркеры SAR для найденных людей, пожаров и мест сбора'; - - @override - String get wizardMapFeature2 => - 'GPS-отслеживание членов команды в реальном времени'; - - @override - String get wizardMapFeature3 => 'Загрузка офлайн-карт для отдалённых районов'; - - @override - String get wizardMapFeature4 => - 'Рисование фигур и обмен тактической информацией'; - @override String get viewWelcomeTutorial => 'Просмотреть обучение'; @@ -1909,11 +1721,11 @@ class AppLocalizationsRu extends AppLocalizations { 'Используйте журналы пакетов, сканирование спектра и диагностику разработчика для устранения проблем mesh-сети.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Обнаружить ретрансляторы сейчас?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Запустите обнаружение ретрансляторов сразу после подключения, чтобы увидеть ближайшие узлы MeshCore и быстрее добавить их в свою сеть.'; @override String get contactInSensors => 'В датчиках'; @@ -2016,57 +1828,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get bandpassFilterVoice => 'Полосовой фильтр голоса'; - @override - String get frequency => 'Частота'; - - @override - String get australia => 'Австралия'; - - @override - String get australiaNarrow => 'Австралия (Узкий)'; - - @override - String get australiaQld => 'Австралия: QLD'; - - @override - String get australiaSaWa => 'Австралия: SA, WA'; - - @override - String get newZealand => 'Новая Зеландия'; - - @override - String get newZealandNarrow => 'Новая Зеландия (Узкий)'; - - @override - String get switzerland => 'Швейцария'; - - @override - String get portugal433 => 'Португалия 433'; - - @override - String get portugal868 => 'Португалия 868'; - - @override - String get czechRepublicNarrow => 'Чехия (Узкий)'; - - @override - String get eu433mhzLongRange => 'ЕС 433МГц (Дальний)'; - - @override - String get euukDeprecated => 'ЕС/Великобритания (Устарело)'; - - @override - String get euukNarrow => 'ЕС/Великобритания (Узкий)'; - - @override - String get usacanadaRecommended => 'США/Канада (Рекомендуется)'; - - @override - String get vietnamDeprecated => 'Вьетнам (Устарело)'; - - @override - String get vietnamNarrow => 'Вьетнам (Узкий)'; - @override String get active => 'Активно'; @@ -2076,15 +1837,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get all => 'Все'; - @override - String get autoResolve => 'Автоматическое разрешение'; - @override String get clearAllLabel => 'Очистить все'; - @override - String get clearRelays => 'Очистить реле'; - @override String get clearFilters => 'Очистить фильтры'; @@ -2160,18 +1915,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get share => 'Поделиться'; - @override - String get shareContact => 'Поделиться контактом'; - @override String get trace => 'Трассировка'; - @override - String get use => 'Использовать'; - - @override - String get useSelectedFrequency => 'Использовать выбранную частоту'; - @override String get discovery => 'Обнаружение'; @@ -2238,9 +1984,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get repeatersMap => 'Карта повторителей'; - @override - String get spectrumScan => 'Сканирование спектра'; - @override String get blePacketLogs => 'Журналы BLE-пакетов'; @@ -2274,9 +2017,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get enableProfiles => 'Включить профили'; - @override - String get autoRouteRotation => 'Автоматическая ротация маршрута'; - @override String get nearestRepeaterFallback => 'Ближайший повторитель как резерв'; @@ -2298,13 +2038,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get showSarMarkersLabel => 'Показать SAR-маркеры'; - @override - String get displaySarMarkersOnTheMainMap => - 'Отображать SAR-маркеры на основной карте'; - - @override - String get showAllContactTrailsLabel => 'Показать все следы контактов'; - @override String get hideRepeatersOnMap => 'Скрыть повторители на карте'; @@ -2320,24 +2053,12 @@ class AppLocalizationsRu extends AppLocalizations { @override String get voiceCompressor => 'Компрессор голоса'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Выравнивает тихую и громкую речь'; - @override String get voiceLimiter => 'Лимитер голоса'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Предотвращает обрезку пиков перед кодированием'; - @override String get micAutoGain => 'Автоусиление микрофона'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Позволяет рекордеру регулировать уровень входа'; - @override String get echoCancellation => 'Подавление эха'; @@ -2469,16 +2190,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get quiet => 'Тихо'; - @override - String get moderate => 'Умеренно'; - @override String get busy => 'Занято'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'Сканирование спектра не нашло частот-кандидатов'; - @override String get searchMessages => 'Поиск сообщений'; @@ -2488,9 +2202,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get takePhoto => 'Сделать фото'; - @override - String get dmOnly => 'Только личные сообщения'; - @override String get allMessages => 'Все сообщения'; @@ -2547,14 +2258,6 @@ class AppLocalizationsRu extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Выберите пресет или настройте радио вручную.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Выберите имя и местоположение, которыми делится устройство.'; - - @override - String get availableSpaceOnThisDevice => - 'Доступное место на этом устройстве.'; - @override String get used => 'Использовано'; @@ -2608,12 +2311,6 @@ class AppLocalizationsRu extends AppLocalizations { @override String get source => 'Источник'; - @override - String get manualRouteEdit => 'Ручное редактирование маршрута'; - - @override - String get observedMeshRoute => 'Наблюдаемый mesh-маршрут'; - @override String get allMessagesCleared => 'Все сообщения очищены'; @@ -2712,38 +2409,614 @@ class AppLocalizationsRu extends AppLocalizations { String get noDeviceContactsToClear => 'Нет контактов устройства для очистки.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'А-Я'; @override - String get regionScope => 'Region scope'; + String get add => 'Добавить'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Добавить дополнительные сведения'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Добавить узел'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Добавить узел вручную'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name добавлен в контакты'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name добавлен в Датчики'; + } + + @override + String get allowAll => 'Разрешить все'; + + @override + String get anonymousRxStats => 'Анонимная статистика RX'; + + @override + String get appearance => 'Внешний вид'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Базовая телеметрия'; + + @override + String get blePin => 'BLE PIN'; + + @override + String get buzzerAlerts => 'Звуковые оповещения'; + + @override + String get cancelImageReceive => 'Отменить получение изображения'; + + @override + String get choose => 'Выбрать'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Выберите отображаемые вкладки и разделы контактов'; + + @override + String get clearCache => 'Очистить кэш'; + + @override + String get clearHistory => 'Очистить историю'; + + @override + String get clearLiveView => 'Очистить режим реального времени'; + + @override + String get clearLogs => 'Очистить журналы'; + + @override + String get clearOfflineCache => 'Очистить офлайн-кэш?'; + + @override + String get clearOverlay => 'Очистить наложение'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Очищать маршрут только после всех неудачных повторов'; + + @override + String get codecBitrateAndAudioProcessing => + 'Кодек, битрейт и обработка звука'; + + @override + String get connectByIpAddress => 'Подключиться по IP-адресу'; + + @override + String get controlWhichAlertsYouReceive => + 'Управление получаемыми оповещениями'; + + @override + String get copyFullHex => 'Копировать полный Hex'; + + @override + String get copyRawResponse => 'Копировать необработанный ответ'; + + @override + String get couldNotLoadMetHistory => 'Не удалось загрузить историю MET'; + + @override + String customizeSensor(String name) { + return 'Настроить $name'; + } + + @override + String get data => 'Данные'; + + @override + String get deleteGroup => 'Удалить группу'; + + @override + String deleteStyleConfirm(String name) { + return 'Удалить $name?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Удалить этот $type?'; + } + + @override + String get deny => 'Запретить'; + + @override + String get deviceInfo => 'Информация об устройстве'; + + @override + String get deviceSettings => 'Настройки устройства'; + + @override + String get deviceTimeSynced => + 'Время устройства синхронизировано с телефоном.'; + + @override + String get disableFastGpsPublishing => 'Отключить быструю публикацию GPS'; + + @override + String get displayMarkersAndTraceDatabase => + 'Отображение, маркеры и база трассировок'; + + @override + String get download => 'Скачать'; + + @override + String get environmentalTelemetry => 'Телеметрия окружающей среды'; + + @override + String errorCheckingForUpdates(String error) { + return 'Ошибка проверки обновлений: $error'; + } + + @override + String errorGeneric(String error) { + return 'Ошибка: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Ошибка открытия загрузки: $error'; + } + + @override + String get exportLogs => 'Экспортировать журналы'; + + @override + String get extraAggressiveAvifCompression => 'Сверхагрессивное сжатие AVIF'; + + @override + String failedToAddContact(String error) { + return 'Не удалось добавить контакт: $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Не удалось добавить $name: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Не удалось очистить каналы: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Не удалось очистить контакты: $error'; + } + + @override + String get failedToConnectViaSerial => + 'Не удалось подключиться через последовательный порт'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Не удалось загрузить изображение предпросмотра: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Не удалось загрузить трассировку: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Не удалось отправить маркер SAR: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Не удалось установить режим зуммера: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Не удалось установить режим GPS: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Не удалось синхронизировать время устройства: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Не удалось стереть данные устройства: $error'; + } + + @override + String get fastGpsTargetChannel => 'Целевой канал быстрого GPS'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Быстрые обновления, пороги и разрешения'; + + @override + String get fetchingCatalog => 'Загрузка каталога...'; + + @override + String get fifteenMinutes => '15 минут'; + + @override + String get fifteenSeconds => '15 секунд'; + + @override + String get filterByDirection => 'Фильтр по направлению'; + + @override + String get finish => 'Завершить'; + + @override + String get fiveMinutes => '5 минут'; + + @override + String get fiveSeconds => '5 секунд'; + + @override + String get fix => 'Фикс'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'Политика объявлений GPS'; + + @override + String get gpsAndLocation => 'GPS и местоположение'; + + @override + String get gpsDiagnostics => 'Диагностика GPS'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Помощь'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Скрыто'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Как радио автоматически добавляет обнаруженные узлы.'; + + @override + String get images => 'Изображения'; + + @override + String get importProfile => 'Импортировать профиль'; + + @override + String get lastFix => 'Последний фикс'; + + @override + String get latest => 'Последняя'; + + @override + String get latitude => 'Широта'; + + @override + String get loadASavedRegion => 'Загрузить сохранённый регион'; + + @override + String get loading => 'Загрузка'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Обмен местоположением, оборудование и интервал обновления.'; + + @override + String get locationTelemetry => 'Телеметрия местоположения'; + + @override + String get lockDestination => 'Зафиксировать назначение'; + + @override + String get longitude => 'Долгота'; + + @override + String get mapStyle => 'Стиль карты'; + + @override + String get max => 'Макс'; + + @override + String get maxZoom => 'Макс. масштаб'; + + @override + String get messaging => 'Сообщения'; + + @override + String get metHistory => 'История MET'; + + @override + String get min => 'Мин'; + + @override + String get minZoom => 'Мин. масштаб'; + + @override + String get moveDown => 'Переместить вниз'; + + @override + String get moveUp => 'Переместить вверх'; + + @override + String get multiAckMode => 'Режим множественного ACK'; + + @override + String get multiDeviceWorkspaceManagement => + 'Управление рабочим пространством на нескольких устройствах'; + + @override + String get myLocation => 'Моё местоположение'; + + @override + String get nameAndTelemetryShared => + 'Имя и телеметрия доступны другим устройствам.'; + + @override + String newVersionAvailable(String version) { + return 'Новая версия: $version'; + } + + @override + String get newer => 'Новее'; + + @override + String get noNeighboursFound => 'Соседи не найдены'; + + @override + String get noServersFound => 'Серверы не найдены'; + + @override + String get notSet => 'Не задано'; + + @override + String get notifications => 'Уведомления'; + + @override + String get offZeroSeconds => 'Выкл (0 с)'; + + @override + String get offlineMaps => 'Офлайн-карты'; + + @override + String get older => 'Старее'; + + @override + String get oneByteMode0 => '1 байт (режим 0)'; + + @override + String get oneHour => '1 час'; + + @override + String get oneMinute => '1 минута'; + + @override + String get openPacketLogs => 'Открыть журналы пакетов'; + + @override + String get packetTypeHelp => 'Справка по типам пакетов'; + + @override + String get pasteShareLinkOrHexAdvert => 'Вставьте ссылку или Hex-объявление'; + + @override + String get pathHash => 'Хеш пути'; + + @override + String get pathSize => 'Размер пути'; + + @override + String get ping => 'Пинг'; + + @override + String get polygon => 'Полигон'; + + @override + String get rawResponseCopied => 'Необработанный ответ скопирован'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Повторить через ближайший ретранслятор при ошибке'; + + @override + String get resolveContact => 'Разрешить контакт'; + + @override + String get routingRetriesAndDestinationLock => + 'Маршрутизация, повторы и фиксация назначения'; + + @override + String get samples => 'Образцы'; + + @override + String get satellites => 'Спутники'; + + @override + String get saving => 'Сохранение...'; + + @override + String get search => 'Поиск'; + + @override + String get searchByNameOrToken => 'Поиск по имени или токену'; + + @override + String get searchDiscoveredNodes => 'Поиск обнаруженных узлов'; + + @override + String get searchInCurrentFilter => 'Поиск в текущем фильтре'; + + @override + String get searchLogs => 'Поиск по журналам...'; + + @override + String get searchSensors => 'Поиск датчиков'; + + @override + String get searchThisSection => 'Поиск в этом разделе'; + + @override + String get selectedRelays => 'Выбранные ретрансляторы'; + + @override + String get sensor => 'Датчик'; + + @override + String serialError(String error) { + return 'Ошибка последовательного порта: $error'; + } + + @override + String setPathForContact(String name) { + return 'Задать путь для $name'; + } + + @override + String get shareLiveGps => 'Транслировать GPS'; + + @override + String get shareMyTiles => 'Поделиться моими тайлами'; + + @override + String get sharingLocationFromPhone => + 'Трансляция местоположения на этом канале с телефона.'; + + @override + String get sharingLocationFromRadio => + 'Трансляция местоположения на этом канале с радио.'; + + @override + String signalDbm(String rssi) { + return 'Сигнал $rssi дБм'; + } + + @override + String get sizeCompressionAndPreview => 'Размер, сжатие и предпросмотр'; + + @override + String get skip => 'Пропустить'; + + @override + String get smallerFileSize => 'Меньший размер файла'; + + @override + String get sort => 'Сортировка'; + + @override + String get stoppedSharingLocation => + 'Трансляция местоположения на этом канале остановлена.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Отключить уведомления при открытом приложении'; + + @override + String get tabsAndNavigation => 'Вкладки и навигация'; + + @override + String get templatesAndTutorials => 'Шаблоны и обучение'; + + @override + String get tenMinutes => '10 минут'; + + @override + String get tenSeconds => '10 секунд'; + + @override + String get testSendUpdate => 'Тестовая отправка обновления'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Тема, язык и настройки отображения'; + + @override + String get thirtyMinutes => '30 минут'; + + @override + String get thirtySeconds => '30 секунд'; + + @override + String get threeBytesMode2 => '3 байта (режим 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Статистика трафика, история сообщений и инструменты разработчика'; + + @override + String get twoBytesMode1 => '2 байта (режим 1)'; + + @override + String get twoMinutes => '2 минуты'; + + @override + String get undo => 'Отменить'; + + @override + String get updated => 'Обновлено'; + + @override + String get useContactFlags => 'Использовать флаги контактов'; + + @override + String get useSavedCoordinates => 'Использовать сохранённые координаты'; + + @override + String get view => 'Просмотр'; + + @override + String get viewNeighbours => 'Просмотр соседей'; + + @override + String get viewPublicStats => 'Просмотр публичной статистики'; + + @override + String get setRegionScope => 'Установить область региона'; + + @override + String get regionScope => 'Область региона'; + + @override + String get regionScopeNone => 'Нет (глобально)'; + + @override + String get clearRegionScope => 'Очистить область'; + + @override + String get regionScopeWarning => + 'Только ретрансляторы, разрешающие этот регион, будут пересылать.'; + + @override + String get discoverRegions => 'Обнаружить из ретрансляторов'; + + @override + String get discoveringRegions => 'Обнаружение регионов...'; + + @override + String get enterRegionName => 'Название региона (напр. auckland)'; + + @override + String get noRegionsFound => 'Регионы не найдены на этом ретрансляторе.'; + + @override + String regionScopeSet(String name) { + return 'Область региона установлена на $name'; + } + + @override + String get regionScopeCleared => 'Область региона очищена'; } diff --git a/lib/l10n/app_localizations_sl.dart b/lib/l10n/app_localizations_sl.dart index 28d2590..c3f32f1 100644 --- a/lib/l10n/app_localizations_sl.dart +++ b/lib/l10n/app_localizations_sl.dart @@ -35,9 +35,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get scanAgain => 'Ponovi iskanje'; - @override - String get tapToConnect => 'Tapnite za povezavo'; - @override String get deviceNotConnected => 'Naprava ni povezana'; @@ -109,17 +106,9 @@ class AppLocalizationsSl extends AppLocalizations { @override String get showRxTxIndicators => 'Prikaži RX/TX kazalnike'; - @override - String get displayPacketActivity => - 'Prikaži kazalnike aktivnosti paketov v zgornji vrstici'; - @override String get disableMap => 'Onemogoči zemljevid'; - @override - String get disableMapDescription => - 'Skrij zavihek z zemljevidom za varčevanje z baterijo'; - @override String get language => 'Jezik'; @@ -141,9 +130,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get appVersion => 'Različica aplikacije'; - @override - String get appName => 'Ime aplikacije'; - @override String get aboutMeshCoreSar => 'O MeshCore SAR'; @@ -239,9 +225,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get resetPath => 'Ponastavi pot (preusmeri)'; - @override - String get publicKeyCopied => 'Javni ključ kopiran v odložišče'; - @override String copiedToClipboard(String label) { return '$label kopirano v odložišče'; @@ -478,22 +461,22 @@ class AppLocalizationsSl extends AppLocalizations { String get flood => 'Razpršitev'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Samodejno pošiljanje'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Pošlji po trenutni poti.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Neposredno pošiljanje'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Pošlji neposredno temu kontaktu.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Pošiljanje s poplavo'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Pošlji prek vseh repetitorjev.'; @override String get loggedIn => 'Prijavljen'; @@ -533,18 +516,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get lastSeen => 'Nazadnje viden'; - @override - String get roomStatus => 'Status sobe'; - - @override - String get loginStatus => 'Status prijave'; - - @override - String get notLoggedIn => 'Ni prijavljen'; - - @override - String get adminAccess => 'Administratorski dostop'; - @override String get yes => 'Da'; @@ -554,12 +525,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get permissions => 'Dovoljenja'; - @override - String get passwordSaved => 'Geslo shranjeno'; - - @override - String get locationColon => 'Lokacija:'; - @override String get telemetry => 'Telemetrija'; @@ -581,14 +546,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get gpsTelemetry => 'GPS (Telemetrija)'; - @override - String get updated => 'Posodobljeno'; - - @override - String pathResetInfo(String name) { - return 'Pot ponastavljena za $name. Naslednje sporočilo bo našlo novo pot.'; - } - @override String get reLoginToRoom => 'Ponovna prijava v sobo'; @@ -840,9 +797,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get frequencyMHz => 'Frekvenca (MHz)'; - @override - String get frequencyExample => 'npr. 869.618'; - @override String get bandwidth => 'Pasovna širina'; @@ -917,47 +871,12 @@ class AppLocalizationsSl extends AppLocalizations { @override String get trailControls => 'Nadzor poti'; - @override - String get contactTrails => 'Poti stikov'; - - @override - String get showAllContactTrails => 'Prikaži vse poti stikov'; - - @override - String get noContactsWithLocationHistory => 'Ni stikov z zgodovino lokacije'; - - @override - String showingTrailsForContacts(int count) { - return 'Prikazujem poti za $count stikov'; - } - - @override - String get individualContactTrails => 'Posamezne poti stikov'; - - @override - String get deviceInformation => 'Informacije o napravi'; - - @override - String get bleName => 'BLE ime'; - - @override - String get meshName => 'Mesh ime'; - - @override - String get notSet => 'Ni nastavljeno'; - @override String get model => 'Model'; @override String get version => 'Različica'; - @override - String get buildDate => 'Datum izdelave'; - - @override - String get firmware => 'Vdelana programska oprema'; - @override String get maxContacts => 'Maks. stikov'; @@ -967,21 +886,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get publicInfo => 'Javne informacije'; - @override - String get meshNetworkName => 'Ime mesh omrežja'; - - @override - String get nameBroadcastInMesh => 'Ime, ki se oddaja v mesh oglasih'; - - @override - String get telemetryAndLocationSharing => 'Telemetrija in deljenje lokacije'; - - @override - String get lat => 'Šir'; - - @override - String get lon => 'Dolž'; - @override String get useCurrentLocation => 'Uporabi trenutno lokacijo'; @@ -1002,11 +906,6 @@ class AppLocalizationsSl extends AppLocalizations { return 'Tip $number'; } - @override - String copiedToClipboardShort(String label) { - return 'Kopirano $label v odložišče'; - } - @override String failedToSave(String error) { return 'Shranjevanje ni uspelo: $error'; @@ -1020,9 +919,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get sarTemplates => 'SAR predloge'; - @override - String get manageSarTemplates => 'Upravljanje SAR predlog'; - @override String get addTemplate => 'Dodaj predlogo'; @@ -1124,9 +1020,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get ok => 'V redu'; - @override - String get permissionsSection => 'Dovoljenja'; - @override String get locationPermission => 'Dovoljenje za lokacijo'; @@ -1561,87 +1454,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get wizardWelcomeTitle => 'Dobrodošli v MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Zmogljivo orodje za komunikacijo brez omrežja za reševalne operacije. S svojo ekipo se povežite z mesh radijsko tehnologijo, ko tradicionalna omrežja niso na voljo.'; - - @override - String get wizardConnectingTitle => 'Povezava z radijem'; - - @override - String get wizardConnectingDescription => - 'Svoj telefon povežite z radijsko napravo MeshCore prek Bluetootha in začnite komunicirati brez omrežja.'; - - @override - String get wizardConnectingFeature1 => 'Poišče bližnje naprave MeshCore'; - - @override - String get wizardConnectingFeature2 => - 'Seznanitev z radijsko napravo prek Bluetootha'; - - @override - String get wizardConnectingFeature3 => - 'Deluje povsem brez povezave — internet ni potreben'; - - @override - String get wizardChannelTitle => 'Kanali'; - - @override - String get wizardChannelDescription => - 'Pošiljajte sporočila vsem na kanalu — idealno za obvestila in koordinacijo ekipe.'; - - @override - String get wizardChannelFeature1 => - 'Javni kanal za splošno komunikacijo ekipe'; - - @override - String get wizardChannelFeature2 => - 'Ustvarite kanale po meri za določene skupine'; - - @override - String get wizardChannelFeature3 => - 'Sporočila se samodejno posredujejo prek mreže'; - - @override - String get wizardContactsTitle => 'Stiki'; - - @override - String get wizardContactsDescription => - 'Člani ekipe se prikažejo samodejno, ko se pridružijo mesh omrežju. Pošiljajte jim neposredna sporočila ali si oglejte njihovo lokacijo.'; - - @override - String get wizardContactsFeature1 => 'Samodejno odkrivanje stikov'; - - @override - String get wizardContactsFeature2 => - 'Pošiljanje zasebnih neposrednih sporočil'; - - @override - String get wizardContactsFeature3 => - 'Prikaz stanja baterije in časa zadnje aktivnosti'; - - @override - String get wizardMapTitle => 'Zemljevid in lokacija'; - - @override - String get wizardMapDescription => - 'Spremljajte svojo ekipo v realnem času in označujte ključne lokacije za reševalne operacije.'; - - @override - String get wizardMapFeature1 => - 'SAR označevalci za najdene osebe, požare in zbirna mesta'; - - @override - String get wizardMapFeature2 => 'Sledenje članom ekipe z GPS v realnem času'; - - @override - String get wizardMapFeature3 => - 'Prenesite zemljevide za uporabo brez povezave'; - - @override - String get wizardMapFeature4 => - 'Rišite oblike in delite taktične informacije'; - @override String get viewWelcomeTutorial => 'Ogled vadnice dobrodošlice'; @@ -1900,11 +1712,11 @@ class AppLocalizationsSl extends AppLocalizations { 'Uporabite dnevnik paketov, pregled spektra in razvojno diagnostiko pri odpravljanju težav v mesh omrežju.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Odkriti repetitorje zdaj?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Zaženite odkrivanje repetitorjev takoj po povezavi, da vidite bližnja vozlišča MeshCore in jih hitreje dodate v svoje omrežje.'; @override String get contactInSensors => 'V senzorjih'; @@ -2007,57 +1819,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get bandpassFilterVoice => 'Pasovno sito za glas'; - @override - String get frequency => 'Frekvenca'; - - @override - String get australia => 'Avstralija'; - - @override - String get australiaNarrow => 'Avstralija (ozko)'; - - @override - String get australiaQld => 'Avstralija: QLD'; - - @override - String get australiaSaWa => 'Avstralija: SA, WA'; - - @override - String get newZealand => 'Nova Zelandija'; - - @override - String get newZealandNarrow => 'Nova Zelandija (ozko)'; - - @override - String get switzerland => 'Švica'; - - @override - String get portugal433 => 'Portugalska 433'; - - @override - String get portugal868 => 'Portugalska 868'; - - @override - String get czechRepublicNarrow => 'Češka (ozko)'; - - @override - String get eu433mhzLongRange => 'EU 433MHz (dolg doseg)'; - - @override - String get euukDeprecated => 'EU/UK (zastarelo)'; - - @override - String get euukNarrow => 'EU/UK (ozko)'; - - @override - String get usacanadaRecommended => 'ZDA/Kanada (priporočeno)'; - - @override - String get vietnamDeprecated => 'Vietnam (zastarelo)'; - - @override - String get vietnamNarrow => 'Vietnam (ozko)'; - @override String get active => 'Aktivno'; @@ -2067,15 +1828,9 @@ class AppLocalizationsSl extends AppLocalizations { @override String get all => 'Vse'; - @override - String get autoResolve => 'Samodejno razreši'; - @override String get clearAllLabel => 'Počisti vse'; - @override - String get clearRelays => 'Počisti posrednike'; - @override String get clearFilters => 'Počisti filtre'; @@ -2151,18 +1906,9 @@ class AppLocalizationsSl extends AppLocalizations { @override String get share => 'Deli'; - @override - String get shareContact => 'Deli stik'; - @override String get trace => 'Sledenje'; - @override - String get use => 'Uporabi'; - - @override - String get useSelectedFrequency => 'Uporabi izbrano frekvenco'; - @override String get discovery => 'Odkrivanje'; @@ -2229,9 +1975,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get repeatersMap => 'Zemljevid posrednikov'; - @override - String get spectrumScan => 'Spektralno skeniranje'; - @override String get blePacketLogs => 'Dnevniki BLE paketov'; @@ -2265,9 +2008,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get enableProfiles => 'Omogoči profile'; - @override - String get autoRouteRotation => 'Samodejno kroženje poti'; - @override String get nearestRepeaterFallback => 'Najbližji posrednik kot rezerva'; @@ -2290,13 +2030,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get showSarMarkersLabel => 'Prikaži SAR oznake'; - @override - String get displaySarMarkersOnTheMainMap => - 'Prikaži SAR oznake na glavnem zemljevidu'; - - @override - String get showAllContactTrailsLabel => 'Prikaži vse sledi stikov'; - @override String get hideRepeatersOnMap => 'Skrij posrednike na zemljevidu'; @@ -2312,24 +2045,12 @@ class AppLocalizationsSl extends AppLocalizations { @override String get voiceCompressor => 'Kompresor glasu'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Izravnava tihe in glasne govorne ravni'; - @override String get voiceLimiter => 'Omejevalnik glasu'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Preprečuje rezanje vrhov pred kodiranjem'; - @override String get micAutoGain => 'Samodejna ojačitev mikrofona'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Omogoči snemalniku prilagoditev vhodne ravni'; - @override String get echoCancellation => 'Odstranjevanje odmeva'; @@ -2460,16 +2181,9 @@ class AppLocalizationsSl extends AppLocalizations { @override String get quiet => 'Tiho'; - @override - String get moderate => 'Zmerno'; - @override String get busy => 'Zasedeno'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'Spektralno skeniranje ni našlo primernih frekvenc'; - @override String get searchMessages => 'Iskanje sporočil'; @@ -2479,9 +2193,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get takePhoto => 'Posnemi fotografijo'; - @override - String get dmOnly => 'Samo neposredno'; - @override String get allMessages => 'Vsa sporočila'; @@ -2537,14 +2248,6 @@ class AppLocalizationsSl extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Izberite prednastavitev ali natančno prilagodite radijske nastavitve.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Izberite ime in lokacijo, ki ju naprava deli.'; - - @override - String get availableSpaceOnThisDevice => - 'Razpoložljiv prostor na tej napravi.'; - @override String get used => 'Uporabljeno'; @@ -2598,12 +2301,6 @@ class AppLocalizationsSl extends AppLocalizations { @override String get source => 'Vir'; - @override - String get manualRouteEdit => 'Ročno urejanje poti'; - - @override - String get observedMeshRoute => 'Opazovana mrežna pot'; - @override String get allMessagesCleared => 'Vsa sporočila počiščena'; @@ -2702,38 +2399,615 @@ class AppLocalizationsSl extends AppLocalizations { String get noDeviceContactsToClear => 'Ni stikov naprave za brisanje.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Ž'; @override - String get regionScope => 'Region scope'; + String get add => 'Dodaj'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Dodaj dodatne podrobnosti'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Dodaj soležnika'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Ročno dodaj soležnika'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name dodan med stike'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name dodan med senzorje'; + } + + @override + String get allowAll => 'Dovoli vse'; + + @override + String get anonymousRxStats => 'Anonimna RX statistika'; + + @override + String get appearance => 'Videz'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Osnovna telemetrija'; + + @override + String get blePin => 'BLE PIN'; + + @override + String get buzzerAlerts => 'Zvočni alarmi'; + + @override + String get cancelImageReceive => 'Prekliči prejem slike'; + + @override + String get choose => 'Izberi'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Izberite, katere zavihke in razdelke stikov prikazati'; + + @override + String get clearCache => 'Počisti predpomnilnik'; + + @override + String get clearHistory => 'Počisti zgodovino'; + + @override + String get clearLiveView => 'Počisti pogled v živo'; + + @override + String get clearLogs => 'Počisti dnevnike'; + + @override + String get clearOfflineCache => 'Počisti predpomnilnik brez povezave?'; + + @override + String get clearOverlay => 'Počisti prekrivanje'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Počisti pot šele po neuspehu vseh ponovitev'; + + @override + String get codecBitrateAndAudioProcessing => + 'Kodek, bitna hitrost in obdelava zvoka'; + + @override + String get connectByIpAddress => 'Poveži prek IP naslova'; + + @override + String get controlWhichAlertsYouReceive => + 'Nadzirajte, katera opozorila prejemate'; + + @override + String get copyFullHex => 'Kopiraj celoten Hex'; + + @override + String get copyRawResponse => 'Kopiraj surov odgovor'; + + @override + String get couldNotLoadMetHistory => 'Nalaganje MET zgodovine ni uspelo'; + + @override + String customizeSensor(String name) { + return 'Prilagodi $name'; + } + + @override + String get data => 'Podatki'; + + @override + String get deleteGroup => 'Izbriši skupino'; + + @override + String deleteStyleConfirm(String name) { + return 'Izbriši $name?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Izbriši to $type?'; + } + + @override + String get deny => 'Zavrni'; + + @override + String get deviceInfo => 'Informacije o napravi'; + + @override + String get deviceSettings => 'Nastavitve naprave'; + + @override + String get deviceTimeSynced => 'Čas naprave sinhroniziran s tem telefonom.'; + + @override + String get disableFastGpsPublishing => 'Onemogoči hitro GPS objavljanje'; + + @override + String get displayMarkersAndTraceDatabase => + 'Prikaz, oznake in baza sledenja'; + + @override + String get download => 'Prenesi'; + + @override + String get environmentalTelemetry => 'Okoljska telemetrija'; + + @override + String errorCheckingForUpdates(String error) { + return 'Napaka pri preverjanju posodobitev: $error'; + } + + @override + String errorGeneric(String error) { + return 'Napaka: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Napaka pri odpiranju prenosa: $error'; + } + + @override + String get exportLogs => 'Izvozi dnevnike'; + + @override + String get extraAggressiveAvifCompression => + 'Posebno agresivno AVIF stiskanje'; + + @override + String failedToAddContact(String error) { + return 'Dodajanje stika ni uspelo: $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Dodajanje $name ni uspelo: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Brisanje kanalov ni uspelo: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Brisanje stikov ni uspelo: $error'; + } + + @override + String get failedToConnectViaSerial => + 'Povezava prek serijske povezave ni uspela'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Nalaganje predogleda slike ni uspelo: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Nalaganje sledi ni uspelo: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Pošiljanje SAR oznake ni uspelo: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Nastavitev zvočnega alarma ni uspela: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Nastavitev GPS načina ni uspela: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Sinhronizacija časa naprave ni uspela: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Brisanje podatkov naprave ni uspelo: $error'; + } + + @override + String get fastGpsTargetChannel => 'Ciljni kanal hitrega GPS-a'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Hitre posodobitve, pragovi in dovoljenja'; + + @override + String get fetchingCatalog => 'Pridobivanje kataloga...'; + + @override + String get fifteenMinutes => '15 minut'; + + @override + String get fifteenSeconds => '15 sekund'; + + @override + String get filterByDirection => 'Filtriraj po smeri'; + + @override + String get finish => 'Končaj'; + + @override + String get fiveMinutes => '5 minut'; + + @override + String get fiveSeconds => '5 sekund'; + + @override + String get fix => 'Popravi'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'Politika GPS oglašanja'; + + @override + String get gpsAndLocation => 'GPS in lokacija'; + + @override + String get gpsDiagnostics => 'GPS diagnostika'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Pomoč'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Skrito'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Kako radio samodejno dodaja odkrita vozlišča.'; + + @override + String get images => 'Slike'; + + @override + String get importProfile => 'Uvozi profil'; + + @override + String get lastFix => 'Zadnja posneta lokacija'; + + @override + String get latest => 'Najnovejše'; + + @override + String get latitude => 'Geografska širina'; + + @override + String get loadASavedRegion => 'Naloži shranjeno regijo'; + + @override + String get loading => 'Nalaganje'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Deljenje lokacije, strojna oprema in interval posodobitev.'; + + @override + String get locationTelemetry => 'Telemetrija lokacije'; + + @override + String get lockDestination => 'Zakleni cilj'; + + @override + String get longitude => 'Geografska dolžina'; + + @override + String get mapStyle => 'Slog zemljevida'; + + @override + String get max => 'Maks'; + + @override + String get maxZoom => 'Maks. povečava'; + + @override + String get messaging => 'Sporočanje'; + + @override + String get metHistory => 'MET zgodovina'; + + @override + String get min => 'Min'; + + @override + String get minZoom => 'Min. povečava'; + + @override + String get moveDown => 'Premakni navzdol'; + + @override + String get moveUp => 'Premakni navzgor'; + + @override + String get multiAckMode => 'Način večkratne ACK potrditve'; + + @override + String get multiDeviceWorkspaceManagement => + 'Upravljanje delovnega prostora z več napravami'; + + @override + String get myLocation => 'Moja lokacija'; + + @override + String get nameAndTelemetryShared => + 'Ime in telemetrija deljena z drugimi napravami.'; + + @override + String newVersionAvailable(String version) { + return 'Nova različica: $version'; + } + + @override + String get newer => 'Novejše'; + + @override + String get noNeighboursFound => 'Ni najdenih sosedov'; + + @override + String get noServersFound => 'Ni najdenih strežnikov'; + + @override + String get notSet => 'Ni nastavljeno'; + + @override + String get notifications => 'Obvestila'; + + @override + String get offZeroSeconds => 'Izključeno (0 s)'; + + @override + String get offlineMaps => 'Zemljevidi brez povezave'; + + @override + String get older => 'Starejše'; + + @override + String get oneByteMode0 => '1 bajt (način 0)'; + + @override + String get oneHour => '1 ura'; + + @override + String get oneMinute => '1 minuta'; + + @override + String get openPacketLogs => 'Odpri dnevnike paketov'; + + @override + String get packetTypeHelp => 'Pomoč za vrsto paketa'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Prilepite deljeno povezavo ali Hex oglas'; + + @override + String get pathHash => 'Zgoščevalna vrednost poti'; + + @override + String get pathSize => 'Velikost poti'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Poligon'; + + @override + String get rawResponseCopied => 'Surov odgovor kopiran'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Ponovno pošlji prek najbližjega posrednika ob neuspehu'; + + @override + String get resolveContact => 'Razreši stik'; + + @override + String get routingRetriesAndDestinationLock => + 'Usmerjanje, ponovitve in zaklepanje cilja'; + + @override + String get samples => 'Vzorci'; + + @override + String get satellites => 'Sateliti'; + + @override + String get saving => 'Shranjujem...'; + + @override + String get search => 'Iskanje'; + + @override + String get searchByNameOrToken => 'Iskanje po imenu ali žetonu'; + + @override + String get searchDiscoveredNodes => 'Iskanje odkritih vozlišč'; + + @override + String get searchInCurrentFilter => 'Iskanje v trenutnem filtru'; + + @override + String get searchLogs => 'Iskanje dnevnikov...'; + + @override + String get searchSensors => 'Iskanje senzorjev'; + + @override + String get searchThisSection => 'Iskanje v tem razdelku'; + + @override + String get selectedRelays => 'Izbrani posredniki'; + + @override + String get sensor => 'Senzor'; + + @override + String serialError(String error) { + return 'Napaka serijske povezave: $error'; + } + + @override + String setPathForContact(String name) { + return 'Nastavi pot za $name'; + } + + @override + String get shareLiveGps => 'Deli GPS v živo'; + + @override + String get shareMyTiles => 'Deli moje ploščice'; + + @override + String get sharingLocationFromPhone => + 'Deljenje lokacije na tem kanalu s telefona.'; + + @override + String get sharingLocationFromRadio => + 'Deljenje lokacije na tem kanalu z radia.'; + + @override + String signalDbm(String rssi) { + return 'Signal $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => 'Velikost, stiskanje in predogled'; + + @override + String get skip => 'Preskoči'; + + @override + String get smallerFileSize => 'Manjša velikost datoteke'; + + @override + String get sort => 'Razvrsti'; + + @override + String get stoppedSharingLocation => + 'Deljenje lokacije na tem kanalu ustavljeno.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Zadrži obvestila, ko je aplikacija v ospredju'; + + @override + String get tabsAndNavigation => 'Zavihki in navigacija'; + + @override + String get templatesAndTutorials => 'Predloge in vadnice'; + + @override + String get tenMinutes => '10 minut'; + + @override + String get tenSeconds => '10 sekund'; + + @override + String get testSendUpdate => 'Preizkusno pošlji posodobitev'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Tema, jezik in nastavitve prikaza'; + + @override + String get thirtyMinutes => '30 minut'; + + @override + String get thirtySeconds => '30 sekund'; + + @override + String get threeBytesMode2 => '3 bajti (način 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Statistika prometa, zgodovina sporočil in razvojna orodja'; + + @override + String get twoBytesMode1 => '2 bajta (način 1)'; + + @override + String get twoMinutes => '2 minuti'; + + @override + String get undo => 'Razveljavi'; + + @override + String get updated => 'Posodobljeno'; + + @override + String get useContactFlags => 'Uporabi zastavice stikov'; + + @override + String get useSavedCoordinates => 'Uporabi shranjene koordinate'; + + @override + String get view => 'Pogled'; + + @override + String get viewNeighbours => 'Poglej sosede'; + + @override + String get viewPublicStats => 'Poglej javno statistiko'; + + @override + String get setRegionScope => 'Nastavi obseg regije'; + + @override + String get regionScope => 'Obseg regije'; + + @override + String get regionScopeNone => 'Brez (globalno)'; + + @override + String get clearRegionScope => 'Počisti obseg'; + + @override + String get regionScopeWarning => + 'Samo repetitorji, ki dovoljujejo to regijo, bodo posredovali.'; + + @override + String get discoverRegions => 'Odkrij iz repetitorjev'; + + @override + String get discoveringRegions => 'Odkrivanje regij...'; + + @override + String get enterRegionName => 'Ime regije (npr. auckland)'; + + @override + String get noRegionsFound => 'Na tem repetitorju ni najdenih regij.'; + + @override + String regionScopeSet(String name) { + return 'Obseg regije nastavljen na $name'; + } + + @override + String get regionScopeCleared => 'Obseg regije počiščen'; } diff --git a/lib/l10n/app_localizations_tr.dart b/lib/l10n/app_localizations_tr.dart index e24b214..d2ad433 100644 --- a/lib/l10n/app_localizations_tr.dart +++ b/lib/l10n/app_localizations_tr.dart @@ -35,9 +35,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get scanAgain => 'Tekrar tara'; - @override - String get tapToConnect => 'Bağlanmak için dokunun'; - @override String get deviceNotConnected => 'Cihaz bağlı değil'; @@ -109,17 +106,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get showRxTxIndicators => 'RX/TX göstergelerini göster'; - @override - String get displayPacketActivity => - 'Üst çubukta paket etkinliği göstergelerini göster'; - @override String get disableMap => 'Haritayı devre dışı bırak'; - @override - String get disableMapDescription => - 'Pil kullanımını azaltmak için harita sekmesini gizle'; - @override String get language => 'Dil'; @@ -141,9 +130,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get appVersion => 'Uygulama sürümü'; - @override - String get appName => 'Uygulama adı'; - @override String get aboutMeshCoreSar => 'MeshCore SAR hakkında'; @@ -239,9 +225,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get resetPath => 'Yolu sıfırla (yeniden yönlendir)'; - @override - String get publicKeyCopied => 'Genel anahtar panoya kopyalandı'; - @override String copiedToClipboard(String label) { return '$label panoya kopyalandı'; @@ -481,22 +464,22 @@ class AppLocalizationsTr extends AppLocalizations { String get flood => 'Yayılım'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Otomatik Gönder'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Mevcut yol üzerinden gönder.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Doğrudan Gönder'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Bu kişiye doğrudan gönder.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Taşkın Gönder'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Tüm aktarıcılar üzerinden gönder.'; @override String get loggedIn => 'Giriş yapıldı'; @@ -536,18 +519,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get lastSeen => 'Son görülme'; - @override - String get roomStatus => 'Oda durumu'; - - @override - String get loginStatus => 'Giriş durumu'; - - @override - String get notLoggedIn => 'Giriş yapılmadı'; - - @override - String get adminAccess => 'Yönetici erişimi'; - @override String get yes => 'Evet'; @@ -557,12 +528,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get permissions => 'İzinler'; - @override - String get passwordSaved => 'Parola kaydedildi'; - - @override - String get locationColon => 'Konum:'; - @override String get telemetry => 'Telemetri'; @@ -584,14 +549,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get gpsTelemetry => 'GPS (telemetri)'; - @override - String get updated => 'Güncellendi'; - - @override - String pathResetInfo(String name) { - return '$name için yol sıfırlandı. Sonraki mesaj yeni bir rota bulacak.'; - } - @override String get reLoginToRoom => 'Odaya yeniden giriş yap'; @@ -842,9 +799,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get frequencyMHz => 'Frekans (MHz)'; - @override - String get frequencyExample => 'örn. 869.618'; - @override String get bandwidth => 'Bant genişliği'; @@ -919,47 +873,12 @@ class AppLocalizationsTr extends AppLocalizations { @override String get trailControls => 'İz kontrolleri'; - @override - String get contactTrails => 'Kişi izleri'; - - @override - String get showAllContactTrails => 'Tüm kişi izlerini göster'; - - @override - String get noContactsWithLocationHistory => 'Konum geçmişi olan kişi yok'; - - @override - String showingTrailsForContacts(int count) { - return '$count kişi için izler gösteriliyor'; - } - - @override - String get individualContactTrails => 'Tek tek kişi izleri'; - - @override - String get deviceInformation => 'Cihaz bilgileri'; - - @override - String get bleName => 'BLE adı'; - - @override - String get meshName => 'Mesh adı'; - - @override - String get notSet => 'Ayarlanmadı'; - @override String get model => 'Model'; @override String get version => 'Sürüm'; - @override - String get buildDate => 'Derleme tarihi'; - - @override - String get firmware => 'Bellenim'; - @override String get maxContacts => 'Maks kişi'; @@ -969,21 +888,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get publicInfo => 'Genel bilgiler'; - @override - String get meshNetworkName => 'Mesh ağ adı'; - - @override - String get nameBroadcastInMesh => 'Mesh duyurularında yayınlanan ad'; - - @override - String get telemetryAndLocationSharing => 'Telemetri ve konum paylaşımı'; - - @override - String get lat => 'Enl.'; - - @override - String get lon => 'Boyl.'; - @override String get useCurrentLocation => 'Geçerli konumu kullan'; @@ -1004,11 +908,6 @@ class AppLocalizationsTr extends AppLocalizations { return 'Tür $number'; } - @override - String copiedToClipboardShort(String label) { - return '$label panoya kopyalandı'; - } - @override String failedToSave(String error) { return 'Kaydetme başarısız: $error'; @@ -1022,9 +921,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get sarTemplates => 'SAR şablonları'; - @override - String get manageSarTemplates => 'SAR şablonlarını yönet'; - @override String get addTemplate => 'Şablon ekle'; @@ -1127,9 +1023,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get ok => 'Tamam'; - @override - String get permissionsSection => 'İzinler'; - @override String get locationPermission => 'Konum izni'; @@ -1564,86 +1457,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get wizardWelcomeTitle => 'MeshCore SAR uygulamasına hoş geldiniz'; - @override - String get wizardWelcomeDescription => - 'Arama ve kurtarma operasyonları için güçlü bir şebeke dışı iletişim aracı. Geleneksel ağlar kullanılamadığında ekibinizle mesh radyo teknolojisi üzerinden bağlantı kurun.'; - - @override - String get wizardConnectingTitle => 'Radyonuza bağlanma'; - - @override - String get wizardConnectingDescription => - 'Şebeke dışı iletişime başlamak için akıllı telefonunuzu Bluetooth üzerinden bir MeshCore radyo cihazına bağlayın.'; - - @override - String get wizardConnectingFeature1 => - 'Yakındaki MeshCore cihazlarını tarayın'; - - @override - String get wizardConnectingFeature2 => - 'Radyonuzla Bluetooth üzerinden eşleşin'; - - @override - String get wizardConnectingFeature3 => - 'Tamamen çevrimdışı çalışır - internet gerekmez'; - - @override - String get wizardChannelTitle => 'Kanallar'; - - @override - String get wizardChannelDescription => - 'Bir kanaldaki herkese mesaj yayınlayın; ekip genelindeki duyurular ve koordinasyon için idealdir.'; - - @override - String get wizardChannelFeature1 => - 'Genel ekip iletişimi için herkese açık kanal'; - - @override - String get wizardChannelFeature2 => - 'Belirli gruplar için özel kanallar oluşturun'; - - @override - String get wizardChannelFeature3 => - 'Mesajlar mesh tarafından otomatik iletilir'; - - @override - String get wizardContactsTitle => 'Kişiler'; - - @override - String get wizardContactsDescription => - 'Ekip üyeleriniz mesh ağına katıldıkça otomatik olarak görünür. Onlara doğrudan mesaj gönderin veya konumlarını görüntüleyin.'; - - @override - String get wizardContactsFeature1 => 'Kişiler otomatik bulunur'; - - @override - String get wizardContactsFeature2 => 'Özel doğrudan mesaj gönderin'; - - @override - String get wizardContactsFeature3 => - 'Pil seviyesini ve son görülme zamanını görüntüleyin'; - - @override - String get wizardMapTitle => 'Harita ve konum'; - - @override - String get wizardMapDescription => - 'Ekibinizi gerçek zamanlı izleyin ve arama kurtarma operasyonları için önemli konumları işaretleyin.'; - - @override - String get wizardMapFeature1 => - 'Bulunan kişiler, yangınlar ve toplanma alanları için SAR işaretleri'; - - @override - String get wizardMapFeature2 => 'Ekip üyelerinin gerçek zamanlı GPS takibi'; - - @override - String get wizardMapFeature3 => - 'Uzak bölgeler için çevrimdışı haritalar indirin'; - - @override - String get wizardMapFeature4 => 'Şekiller çizin ve taktik bilgileri paylaşın'; - @override String get viewWelcomeTutorial => 'Karşılama eğitimini görüntüle'; @@ -1902,11 +1715,11 @@ class AppLocalizationsTr extends AppLocalizations { 'Mesh sorunlarını giderirken paket günlükleri, spektrum taraması ve geliştirici tanılamalarını kullanın.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Aktarıcıları şimdi keşfet?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Bağlandıktan hemen sonra aktarıcı keşfi çalıştırarak yakındaki MeshCore düğümlerini görün ve ağınıza daha hızlı ekleyin.'; @override String get contactInSensors => 'Sensörlerde'; @@ -2009,57 +1822,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get bandpassFilterVoice => 'Bant geçiren filtre ses'; - @override - String get frequency => 'Frekans'; - - @override - String get australia => 'Avustralya'; - - @override - String get australiaNarrow => 'Avustralya (Dar)'; - - @override - String get australiaQld => 'Avustralya: QLD'; - - @override - String get australiaSaWa => 'Avustralya: SA, WA'; - - @override - String get newZealand => 'Yeni Zelanda'; - - @override - String get newZealandNarrow => 'Yeni Zelanda (Dar)'; - - @override - String get switzerland => 'İsviçre'; - - @override - String get portugal433 => 'Portekiz 433'; - - @override - String get portugal868 => 'Portekiz 868'; - - @override - String get czechRepublicNarrow => 'Çek Cumhuriyeti (Dar)'; - - @override - String get eu433mhzLongRange => 'AB 433MHz (Uzun Menzil)'; - - @override - String get euukDeprecated => 'AB/BK (Kullanımdan kalktı)'; - - @override - String get euukNarrow => 'AB/BK (Dar)'; - - @override - String get usacanadaRecommended => 'ABD/Kanada (Önerilen)'; - - @override - String get vietnamDeprecated => 'Vietnam (Kullanımdan kalktı)'; - - @override - String get vietnamNarrow => 'Vietnam (Dar)'; - @override String get active => 'Aktif'; @@ -2069,15 +1831,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get all => 'Tümü'; - @override - String get autoResolve => 'Otomatik çöz'; - @override String get clearAllLabel => 'Tümünü temizle'; - @override - String get clearRelays => 'Röleleri temizle'; - @override String get clearFilters => 'Filtreleri temizle'; @@ -2153,18 +1909,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get share => 'Paylaş'; - @override - String get shareContact => 'Kişiyi paylaş'; - @override String get trace => 'İz'; - @override - String get use => 'Kullan'; - - @override - String get useSelectedFrequency => 'Seçilen frekansı kullan'; - @override String get discovery => 'Keşif'; @@ -2231,9 +1978,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get repeatersMap => 'Tekrarlayıcılar haritası'; - @override - String get spectrumScan => 'Spektrum taraması'; - @override String get blePacketLogs => 'BLE paket günlükleri'; @@ -2267,9 +2011,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get enableProfiles => 'Profilleri etkinleştir'; - @override - String get autoRouteRotation => 'Otomatik rota rotasyonu'; - @override String get nearestRepeaterFallback => 'En yakın tekrarlayıcıya geri dönüş'; @@ -2291,13 +2032,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get showSarMarkersLabel => 'SAR işaretçilerini göster'; - @override - String get displaySarMarkersOnTheMainMap => - 'SAR işaretçilerini ana haritada göster'; - - @override - String get showAllContactTrailsLabel => 'Tüm kişi izlerini göster'; - @override String get hideRepeatersOnMap => 'Haritada tekrarlayıcıları gizle'; @@ -2313,24 +2047,12 @@ class AppLocalizationsTr extends AppLocalizations { @override String get voiceCompressor => 'Ses sıkıştırıcı'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Sessiz ve yüksek konuşma seviyelerini dengeler'; - @override String get voiceLimiter => 'Ses sınırlayıcı'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Kodlama öncesi tepe kırpmasını önler'; - @override String get micAutoGain => 'Mikrofon otomatik kazancı'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Kaydedicinin giriş seviyesini ayarlamasına izin verir'; - @override String get echoCancellation => 'Yankı iptali'; @@ -2459,16 +2181,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get quiet => 'Sessiz'; - @override - String get moderate => 'Orta'; - @override String get busy => 'Meşgul'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'Spektrum taraması aday frekans bulamadı'; - @override String get searchMessages => 'Mesajlarda ara'; @@ -2478,9 +2193,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get takePhoto => 'Fotoğraf çek'; - @override - String get dmOnly => 'Yalnızca DM'; - @override String get allMessages => 'Tüm mesajlar'; @@ -2537,13 +2249,6 @@ class AppLocalizationsTr extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Bir ön ayar seçin veya radyo ayarlarını ince ayarlayın.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Bu cihazın paylaştığı ad ve konumu seçin.'; - - @override - String get availableSpaceOnThisDevice => 'Bu cihazda kullanılabilir alan.'; - @override String get used => 'Kullanılan'; @@ -2597,12 +2302,6 @@ class AppLocalizationsTr extends AppLocalizations { @override String get source => 'Kaynak'; - @override - String get manualRouteEdit => 'Manuel rota düzenle'; - - @override - String get observedMeshRoute => 'Gözlemlenen mesh rotası'; - @override String get allMessagesCleared => 'Tüm mesajlar temizlendi'; @@ -2700,38 +2399,611 @@ class AppLocalizationsTr extends AppLocalizations { String get noDeviceContactsToClear => 'Temizlenecek cihaz kişisi yok.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Z'; @override - String get regionScope => 'Region scope'; + String get add => 'Ekle'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Ek ayrıntılar ekle'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Eş ekle'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Eşi elle ekle'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name kişilere eklendi'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name Sensörlere eklendi'; + } + + @override + String get allowAll => 'Tümüne izin ver'; + + @override + String get anonymousRxStats => 'Anonim RX istatistikleri'; + + @override + String get appearance => 'Görünüm'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Temel telemetri'; + + @override + String get blePin => 'BLE PIN'; + + @override + String get buzzerAlerts => 'Buzzer uyarıları'; + + @override + String get cancelImageReceive => 'Görüntü alımını iptal et'; + + @override + String get choose => 'Seç'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Gösterilecek sekmeleri ve kişi bölümlerini seçin'; + + @override + String get clearCache => 'Önbelleği temizle'; + + @override + String get clearHistory => 'Geçmişi temizle'; + + @override + String get clearLiveView => 'Canlı görünümü temizle'; + + @override + String get clearLogs => 'Günlükleri temizle'; + + @override + String get clearOfflineCache => 'Çevrimdışı önbellek temizlensin mi?'; + + @override + String get clearOverlay => 'Katmanı temizle'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Rotayı yalnızca tüm yeniden denemeler başarısız olduktan sonra temizle'; + + @override + String get codecBitrateAndAudioProcessing => 'Codec, bit hızı ve ses işleme'; + + @override + String get connectByIpAddress => 'IP adresiyle bağlan'; + + @override + String get controlWhichAlertsYouReceive => + 'Hangi uyarıları alacağınızı kontrol edin'; + + @override + String get copyFullHex => 'Tam Hex kopyala'; + + @override + String get copyRawResponse => 'Ham yanıtı kopyala'; + + @override + String get couldNotLoadMetHistory => 'MET geçmişi yüklenemedi'; + + @override + String customizeSensor(String name) { + return '$name sensörünü özelleştir'; + } + + @override + String get data => 'Veri'; + + @override + String get deleteGroup => 'Grubu sil'; + + @override + String deleteStyleConfirm(String name) { + return '$name silinsin mi?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Bu $type silinsin mi?'; + } + + @override + String get deny => 'Reddet'; + + @override + String get deviceInfo => 'Cihaz bilgisi'; + + @override + String get deviceSettings => 'Cihaz Ayarları'; + + @override + String get deviceTimeSynced => 'Cihaz saati bu telefonla senkronize edildi.'; + + @override + String get disableFastGpsPublishing => 'Hızlı GPS yayınını devre dışı bırak'; + + @override + String get displayMarkersAndTraceDatabase => + 'Ekran, işaretçiler ve iz veritabanı'; + + @override + String get download => 'İndir'; + + @override + String get environmentalTelemetry => 'Çevresel telemetri'; + + @override + String errorCheckingForUpdates(String error) { + return 'Güncelleme kontrolünde hata: $error'; + } + + @override + String errorGeneric(String error) { + return 'Hata: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'İndirme açılırken hata: $error'; + } + + @override + String get exportLogs => 'Günlükleri dışa aktar'; + + @override + String get extraAggressiveAvifCompression => 'Ekstra agresif AVIF sıkıştırma'; + + @override + String failedToAddContact(String error) { + return 'Kişi eklenemedi: $error'; + } + + @override + String failedToAddName(String name, String error) { + return '$name eklenemedi: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Kanallar temizlenemedi: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Kişiler temizlenemedi: $error'; + } + + @override + String get failedToConnectViaSerial => 'Seri bağlantı kurulamadı'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Önizleme görüntüsü yüklenemedi: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'İz yüklenemedi: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'SAR işaretçisi gönderilemedi: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Buzzer modu ayarlanamadı: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'GPS modu ayarlanamadı: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Cihaz saati senkronize edilemedi: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Cihaz verileri silinemedi: $error'; + } + + @override + String get fastGpsTargetChannel => 'Hızlı GPS hedef kanalı'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Hızlı güncellemeler, eşikler ve izinler'; + + @override + String get fetchingCatalog => 'Katalog getiriliyor...'; + + @override + String get fifteenMinutes => '15 dakika'; + + @override + String get fifteenSeconds => '15 saniye'; + + @override + String get filterByDirection => 'Yöne göre filtrele'; + + @override + String get finish => 'Bitir'; + + @override + String get fiveMinutes => '5 dakika'; + + @override + String get fiveSeconds => '5 saniye'; + + @override + String get fix => 'Düzelt'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'GPS ilan politikası'; + + @override + String get gpsAndLocation => 'GPS ve Konum'; + + @override + String get gpsDiagnostics => 'GPS tanılama'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Yardım'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Gizli'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Radyonun keşfedilen düğümleri otomatik olarak nasıl eklediği.'; + + @override + String get images => 'Görüntüler'; + + @override + String get importProfile => 'Profili içe aktar'; + + @override + String get lastFix => 'Son konum'; + + @override + String get latest => 'En yeni'; + + @override + String get latitude => 'Enlem'; + + @override + String get loadASavedRegion => 'Kayıtlı bir bölge yükle'; + + @override + String get loading => 'Yükleniyor'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Konum paylaşımı, donanım ve güncelleme aralığı.'; + + @override + String get locationTelemetry => 'Konum telemetrisi'; + + @override + String get lockDestination => 'Hedefi kilitle'; + + @override + String get longitude => 'Boylam'; + + @override + String get mapStyle => 'Harita Stili'; + + @override + String get max => 'Maks'; + + @override + String get maxZoom => 'Maks Yakınlaştırma'; + + @override + String get messaging => 'Mesajlaşma'; + + @override + String get metHistory => 'MET geçmişi'; + + @override + String get min => 'Min'; + + @override + String get minZoom => 'Min Yakınlaştırma'; + + @override + String get moveDown => 'Aşağı taşı'; + + @override + String get moveUp => 'Yukarı taşı'; + + @override + String get multiAckMode => 'Çoklu ACK modu'; + + @override + String get multiDeviceWorkspaceManagement => + 'Çoklu cihaz çalışma alanı yönetimi'; + + @override + String get myLocation => 'Konumum'; + + @override + String get nameAndTelemetryShared => + 'Ad ve telemetri diğer cihazlarla paylaşılır.'; + + @override + String newVersionAvailable(String version) { + return 'Yeni sürüm: $version'; + } + + @override + String get newer => 'Daha yeni'; + + @override + String get noNeighboursFound => 'Komşu bulunamadı'; + + @override + String get noServersFound => 'Sunucu bulunamadı'; + + @override + String get notSet => 'Ayarlanmadı'; + + @override + String get notifications => 'Bildirimler'; + + @override + String get offZeroSeconds => 'Kapalı (0 sn)'; + + @override + String get offlineMaps => 'Çevrimdışı Haritalar'; + + @override + String get older => 'Daha eski'; + + @override + String get oneByteMode0 => '1 bayt (mod 0)'; + + @override + String get oneHour => '1 saat'; + + @override + String get oneMinute => '1 dakika'; + + @override + String get openPacketLogs => 'Paket günlüklerini aç'; + + @override + String get packetTypeHelp => 'Paket türü yardımı'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Paylaşım bağlantısı veya Hex ilanı yapıştırın'; + + @override + String get pathHash => 'Yol hash'; + + @override + String get pathSize => 'Yol boyutu'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Çokgen'; + + @override + String get rawResponseCopied => 'Ham yanıt kopyalandı'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Başarısızlık durumunda en yakın aktarıcı üzerinden yeniden gönder'; + + @override + String get resolveContact => 'Kişiyi çözümle'; + + @override + String get routingRetriesAndDestinationLock => + 'Yönlendirme, yeniden denemeler ve hedef kilidi'; + + @override + String get samples => 'Örnekler'; + + @override + String get satellites => 'Uydular'; + + @override + String get saving => 'Kaydediliyor...'; + + @override + String get search => 'Ara'; + + @override + String get searchByNameOrToken => 'Ada veya jetona göre ara'; + + @override + String get searchDiscoveredNodes => 'Keşfedilen düğümleri ara'; + + @override + String get searchInCurrentFilter => 'Geçerli filtrede ara'; + + @override + String get searchLogs => 'Günlüklerde ara...'; + + @override + String get searchSensors => 'Sensörleri ara'; + + @override + String get searchThisSection => 'Bu bölümde ara'; + + @override + String get selectedRelays => 'Seçili aktarıcılar'; + + @override + String get sensor => 'Sensör'; + + @override + String serialError(String error) { + return 'Seri hata: $error'; + } + + @override + String setPathForContact(String name) { + return '$name için yol ayarla'; + } + + @override + String get shareLiveGps => 'Canlı GPS paylaş'; + + @override + String get shareMyTiles => 'Döşemelerimi paylaş'; + + @override + String get sharingLocationFromPhone => + 'Bu kanalda telefondan konum paylaşılıyor.'; + + @override + String get sharingLocationFromRadio => + 'Bu kanalda radyodan konum paylaşılıyor.'; + + @override + String signalDbm(String rssi) { + return 'Sinyal $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => 'Boyut, sıkıştırma ve önizleme'; + + @override + String get skip => 'Atla'; + + @override + String get smallerFileSize => 'Daha küçük dosya boyutu'; + + @override + String get sort => 'Sırala'; + + @override + String get stoppedSharingLocation => 'Bu kanalda konum paylaşımı durduruldu.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Ön plandayken bildirimleri bastır'; + + @override + String get tabsAndNavigation => 'Sekmeler ve Gezinme'; + + @override + String get templatesAndTutorials => 'Şablonlar ve öğreticiler'; + + @override + String get tenMinutes => '10 dakika'; + + @override + String get tenSeconds => '10 saniye'; + + @override + String get testSendUpdate => 'Test güncelleme gönder'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Tema, dil ve görüntüleme tercihleri'; + + @override + String get thirtyMinutes => '30 dakika'; + + @override + String get thirtySeconds => '30 saniye'; + + @override + String get threeBytesMode2 => '3 bayt (mod 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Trafik istatistikleri, mesaj geçmişi ve geliştirici araçları'; + + @override + String get twoBytesMode1 => '2 bayt (mod 1)'; + + @override + String get twoMinutes => '2 dakika'; + + @override + String get undo => 'Geri al'; + + @override + String get updated => 'Güncellendi'; + + @override + String get useContactFlags => 'Kişi bayraklarını kullan'; + + @override + String get useSavedCoordinates => 'Kayıtlı koordinatları kullan'; + + @override + String get view => 'Görüntüle'; + + @override + String get viewNeighbours => 'Komşuları Görüntüle'; + + @override + String get viewPublicStats => 'Herkese açık istatistikleri görüntüle'; + + @override + String get setRegionScope => 'Bölge kapsamını ayarla'; + + @override + String get regionScope => 'Bölge kapsamı'; + + @override + String get regionScopeNone => 'Yok (genel)'; + + @override + String get clearRegionScope => 'Kapsamı temizle'; + + @override + String get regionScopeWarning => + 'Yalnızca bu bölgeye izin veren aktarıcılar iletecektir.'; + + @override + String get discoverRegions => 'Aktarıcılardan keşfet'; + + @override + String get discoveringRegions => 'Bölgeler keşfediliyor...'; + + @override + String get enterRegionName => 'Bölge adı (ör. auckland)'; + + @override + String get noRegionsFound => 'Bu aktarıcıda bölge bulunamadı.'; + + @override + String regionScopeSet(String name) { + return 'Bölge kapsamı $name olarak ayarlandı'; + } + + @override + String get regionScopeCleared => 'Bölge kapsamı temizlendi'; } diff --git a/lib/l10n/app_localizations_uk.dart b/lib/l10n/app_localizations_uk.dart index 701f4fd..e429f5a 100644 --- a/lib/l10n/app_localizations_uk.dart +++ b/lib/l10n/app_localizations_uk.dart @@ -35,9 +35,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get scanAgain => 'Сканувати знову'; - @override - String get tapToConnect => 'Торкніться, щоб підключитися'; - @override String get deviceNotConnected => 'Пристрій не підключено'; @@ -109,17 +106,9 @@ class AppLocalizationsUk extends AppLocalizations { @override String get showRxTxIndicators => 'Показувати індикатори RX/TX'; - @override - String get displayPacketActivity => - 'Показувати індикатори активності пакетів у верхній панелі'; - @override String get disableMap => 'Вимкнути мапу'; - @override - String get disableMapDescription => - 'Приховати вкладку мапи для зменшення споживання батареї'; - @override String get language => 'Мова'; @@ -141,9 +130,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get appVersion => 'Версія застосунку'; - @override - String get appName => 'Назва застосунку'; - @override String get aboutMeshCoreSar => 'Про MeshCore SAR'; @@ -240,9 +226,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get resetPath => 'Скинути маршрут (побудувати заново)'; - @override - String get publicKeyCopied => 'Публічний ключ скопійовано в буфер обміну'; - @override String copiedToClipboard(String label) { return '$label скопійовано в буфер обміну'; @@ -481,22 +464,22 @@ class AppLocalizationsUk extends AppLocalizations { String get flood => 'Широкомовно'; @override - String get autoSend => 'Auto Send'; + String get autoSend => 'Автовідправлення'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => 'Надіслати поточним маршрутом.'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => 'Пряме надсилання'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => 'Надіслати безпосередньо цьому контакту.'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => 'Надсилання лавиною'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => 'Надіслати через усі ретранслятори.'; @override String get loggedIn => 'Увійшли'; @@ -536,18 +519,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get lastSeen => 'Востаннє бачили'; - @override - String get roomStatus => 'Стан кімнати'; - - @override - String get loginStatus => 'Стан входу'; - - @override - String get notLoggedIn => 'Не увійшли'; - - @override - String get adminAccess => 'Доступ адміністратора'; - @override String get yes => 'Так'; @@ -557,12 +528,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get permissions => 'Дозволи'; - @override - String get passwordSaved => 'Пароль збережено'; - - @override - String get locationColon => 'Місцезнаходження:'; - @override String get telemetry => 'Телеметрія'; @@ -584,14 +549,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get gpsTelemetry => 'GPS (телеметрія)'; - @override - String get updated => 'Оновлено'; - - @override - String pathResetInfo(String name) { - return 'Маршрут для $name скинуто. Наступне повідомлення знайде новий маршрут.'; - } - @override String get reLoginToRoom => 'Повторно увійти до кімнати'; @@ -843,9 +800,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get frequencyMHz => 'Частота (MHz)'; - @override - String get frequencyExample => 'напр., 869.618'; - @override String get bandwidth => 'Ширина смуги'; @@ -920,48 +874,12 @@ class AppLocalizationsUk extends AppLocalizations { @override String get trailControls => 'Керування слідом'; - @override - String get contactTrails => 'Сліди контактів'; - - @override - String get showAllContactTrails => 'Показати всі сліди контактів'; - - @override - String get noContactsWithLocationHistory => - 'Немає контактів з історією місцезнаходження'; - - @override - String showingTrailsForContacts(int count) { - return 'Показуються сліди для $count контактів'; - } - - @override - String get individualContactTrails => 'Окремі сліди контактів'; - - @override - String get deviceInformation => 'Інформація про пристрій'; - - @override - String get bleName => 'Назва BLE'; - - @override - String get meshName => 'Назва mesh'; - - @override - String get notSet => 'Не задано'; - @override String get model => 'Модель'; @override String get version => 'Версія'; - @override - String get buildDate => 'Дата збірки'; - - @override - String get firmware => 'Прошивка'; - @override String get maxContacts => 'Макс. контактів'; @@ -971,22 +889,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get publicInfo => 'Публічна інформація'; - @override - String get meshNetworkName => 'Назва mesh-мережі'; - - @override - String get nameBroadcastInMesh => 'Ім’я, що транслюється в mesh-оголошеннях'; - - @override - String get telemetryAndLocationSharing => - 'Телеметрія та поширення місцезнаходження'; - - @override - String get lat => 'Шир.'; - - @override - String get lon => 'Довг.'; - @override String get useCurrentLocation => 'Використати поточне місцезнаходження'; @@ -1007,11 +909,6 @@ class AppLocalizationsUk extends AppLocalizations { return 'Тип $number'; } - @override - String copiedToClipboardShort(String label) { - return '$label скопійовано в буфер обміну'; - } - @override String failedToSave(String error) { return 'Не вдалося зберегти: $error'; @@ -1025,9 +922,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get sarTemplates => 'Шаблони SAR'; - @override - String get manageSarTemplates => 'Керувати шаблонами SAR'; - @override String get addTemplate => 'Додати шаблон'; @@ -1129,9 +1023,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get ok => 'OK'; - @override - String get permissionsSection => 'Дозволи'; - @override String get locationPermission => 'Дозвіл на геолокацію'; @@ -1575,87 +1466,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get wizardWelcomeTitle => 'Ласкаво просимо до MeshCore SAR'; - @override - String get wizardWelcomeDescription => - 'Потужний інструмент офлайн-комунікації для операцій пошуку та рятування. Зв’язуйтеся зі своєю командою за допомогою mesh-радіо, коли традиційні мережі недоступні.'; - - @override - String get wizardConnectingTitle => 'Підключення до радіо'; - - @override - String get wizardConnectingDescription => - 'Підключіть смартфон до радіопристрою MeshCore через Bluetooth, щоб почати спілкування поза мережею.'; - - @override - String get wizardConnectingFeature1 => 'Скануйте сусідні пристрої MeshCore'; - - @override - String get wizardConnectingFeature2 => - 'Сполучіть свій радіопристрій через Bluetooth'; - - @override - String get wizardConnectingFeature3 => - 'Працює повністю офлайн - інтернет не потрібен'; - - @override - String get wizardChannelTitle => 'Канали'; - - @override - String get wizardChannelDescription => - 'Транслюйте повідомлення всім у каналі - ідеально для загальнокомандних оголошень і координації.'; - - @override - String get wizardChannelFeature1 => - 'Публічний канал для загального спілкування команди'; - - @override - String get wizardChannelFeature2 => - 'Створюйте власні канали для окремих груп'; - - @override - String get wizardChannelFeature3 => - 'Повідомлення автоматично ретранслюються mesh-мережею'; - - @override - String get wizardContactsTitle => 'Контакти'; - - @override - String get wizardContactsDescription => - 'Члени вашої команди з’являються автоматично, коли приєднуються до mesh-мережі. Надсилайте їм прямі повідомлення або переглядайте їхнє місцезнаходження.'; - - @override - String get wizardContactsFeature1 => 'Контакти виявляються автоматично'; - - @override - String get wizardContactsFeature2 => 'Надсилайте приватні прямі повідомлення'; - - @override - String get wizardContactsFeature3 => - 'Переглядайте рівень батареї та час останньої появи'; - - @override - String get wizardMapTitle => 'Мапа та місцезнаходження'; - - @override - String get wizardMapDescription => - 'Відстежуйте команду в реальному часі та позначайте важливі місця для операцій пошуку та рятування.'; - - @override - String get wizardMapFeature1 => - 'Маркери SAR для знайдених людей, пожеж і зон збору'; - - @override - String get wizardMapFeature2 => - 'GPS-відстеження членів команди в реальному часі'; - - @override - String get wizardMapFeature3 => - 'Завантажуйте офлайн-мапи для віддалених районів'; - - @override - String get wizardMapFeature4 => - 'Малюйте фігури та діліться тактичною інформацією'; - @override String get viewWelcomeTutorial => 'Переглянути вступний посібник'; @@ -1915,11 +1725,11 @@ class AppLocalizationsUk extends AppLocalizations { 'Використовуйте журнали пакетів, сканування спектра та діагностику розробника для усунення проблем mesh-мережі.'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => 'Виявити ретранслятори зараз?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + 'Запустіть виявлення ретрансляторів одразу після підключення, щоб побачити найближчі вузли MeshCore та швидше додати їх до своєї мережі.'; @override String get contactInSensors => 'У датчиках'; @@ -2022,57 +1832,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get bandpassFilterVoice => 'Смуговий фільтр голосу'; - @override - String get frequency => 'Частота'; - - @override - String get australia => 'Австралія'; - - @override - String get australiaNarrow => 'Австралія (Вузький)'; - - @override - String get australiaQld => 'Австралія: QLD'; - - @override - String get australiaSaWa => 'Австралія: SA, WA'; - - @override - String get newZealand => 'Нова Зеландія'; - - @override - String get newZealandNarrow => 'Нова Зеландія (Вузький)'; - - @override - String get switzerland => 'Швейцарія'; - - @override - String get portugal433 => 'Португалія 433'; - - @override - String get portugal868 => 'Португалія 868'; - - @override - String get czechRepublicNarrow => 'Чехія (Вузький)'; - - @override - String get eu433mhzLongRange => 'ЄС 433МГц (Далекий)'; - - @override - String get euukDeprecated => 'ЄС/Великобританія (Застаріле)'; - - @override - String get euukNarrow => 'ЄС/Великобританія (Вузький)'; - - @override - String get usacanadaRecommended => 'США/Канада (Рекомендовано)'; - - @override - String get vietnamDeprecated => 'В\'єтнам (Застаріле)'; - - @override - String get vietnamNarrow => 'В\'єтнам (Вузький)'; - @override String get active => 'Активно'; @@ -2082,15 +1841,9 @@ class AppLocalizationsUk extends AppLocalizations { @override String get all => 'Усі'; - @override - String get autoResolve => 'Автоматичне вирішення'; - @override String get clearAllLabel => 'Очистити все'; - @override - String get clearRelays => 'Очистити реле'; - @override String get clearFilters => 'Очистити фільтри'; @@ -2166,18 +1919,9 @@ class AppLocalizationsUk extends AppLocalizations { @override String get share => 'Поділитися'; - @override - String get shareContact => 'Поділитися контактом'; - @override String get trace => 'Трасування'; - @override - String get use => 'Використати'; - - @override - String get useSelectedFrequency => 'Використати обрану частоту'; - @override String get discovery => 'Виявлення'; @@ -2245,9 +1989,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get repeatersMap => 'Карта повторювачів'; - @override - String get spectrumScan => 'Сканування спектру'; - @override String get blePacketLogs => 'Журнали BLE-пакетів'; @@ -2281,9 +2022,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get enableProfiles => 'Увімкнути профілі'; - @override - String get autoRouteRotation => 'Автоматична ротація маршруту'; - @override String get nearestRepeaterFallback => 'Найближчий повторювач як резерв'; @@ -2306,13 +2044,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get showSarMarkersLabel => 'Показати SAR-маркери'; - @override - String get displaySarMarkersOnTheMainMap => - 'Показувати SAR-маркери на головній карті'; - - @override - String get showAllContactTrailsLabel => 'Показати всі сліди контактів'; - @override String get hideRepeatersOnMap => 'Сховати повторювачі на карті'; @@ -2328,24 +2059,12 @@ class AppLocalizationsUk extends AppLocalizations { @override String get voiceCompressor => 'Компресор голосу'; - @override - String get balancesQuietAndLoudSpeechLevels => - 'Вирівнює тихий і гучний рівні мови'; - @override String get voiceLimiter => 'Лімітер голосу'; - @override - String get preventsClippingPeaksBeforeEncoding => - 'Запобігає обрізанню піків перед кодуванням'; - @override String get micAutoGain => 'Автопідсилення мікрофона'; - @override - String get letsTheRecorderAdjustInputLevel => - 'Дозволяє рекордеру налаштувати рівень входу'; - @override String get echoCancellation => 'Придушення ехо'; @@ -2478,16 +2197,9 @@ class AppLocalizationsUk extends AppLocalizations { @override String get quiet => 'Тихо'; - @override - String get moderate => 'Помірно'; - @override String get busy => 'Зайнято'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => - 'Сканування спектру не знайшло частот-кандидатів'; - @override String get searchMessages => 'Пошук повідомлень'; @@ -2497,9 +2209,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get takePhoto => 'Зробити фото'; - @override - String get dmOnly => 'Лише особисті повідомлення'; - @override String get allMessages => 'Усі повідомлення'; @@ -2556,14 +2265,6 @@ class AppLocalizationsUk extends AppLocalizations { String get chooseAPresetOrFinetuneCustomRadioSettings => 'Оберіть пресет або налаштуйте радіо вручну.'; - @override - String get chooseTheNameAndLocationThisDeviceShares => - 'Оберіть ім\'я та місцеположення, якими ділиться пристрій.'; - - @override - String get availableSpaceOnThisDevice => - 'Доступний простір на цьому пристрої.'; - @override String get used => 'Використано'; @@ -2617,12 +2318,6 @@ class AppLocalizationsUk extends AppLocalizations { @override String get source => 'Джерело'; - @override - String get manualRouteEdit => 'Ручне редагування маршруту'; - - @override - String get observedMeshRoute => 'Спостережуваний mesh-маршрут'; - @override String get allMessagesCleared => 'Усі повідомлення очищено'; @@ -2723,38 +2418,615 @@ class AppLocalizationsUk extends AppLocalizations { 'Немає контактів пристрою для очищення.'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'А-Я'; @override - String get regionScope => 'Region scope'; + String get add => 'Додати'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => 'Додати додаткові деталі'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => 'Додати вузол'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => 'Додати вузол вручну'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name додано до контактів'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name додано до сенсорів'; + } + + @override + String get allowAll => 'Дозволити все'; + + @override + String get anonymousRxStats => 'Анонімна статистика RX'; + + @override + String get appearance => 'Зовнішній вигляд'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => 'Базова телеметрія'; + + @override + String get blePin => 'BLE PIN'; + + @override + String get buzzerAlerts => 'Сповіщення зумером'; + + @override + String get cancelImageReceive => 'Скасувати отримання зображення'; + + @override + String get choose => 'Обрати'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => + 'Оберіть, які вкладки та розділи контактів показувати'; + + @override + String get clearCache => 'Очистити кеш'; + + @override + String get clearHistory => 'Очистити історію'; + + @override + String get clearLiveView => 'Очистити живий перегляд'; + + @override + String get clearLogs => 'Очистити журнали'; + + @override + String get clearOfflineCache => 'Очистити офлайн-кеш?'; + + @override + String get clearOverlay => 'Очистити накладання'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => + 'Очистити маршрут лише після невдачі всіх спроб'; + + @override + String get codecBitrateAndAudioProcessing => + 'Кодек, бітрейт та обробка звуку'; + + @override + String get connectByIpAddress => 'Підключити за IP-адресою'; + + @override + String get controlWhichAlertsYouReceive => + 'Керуйте сповіщеннями, які ви отримуєте'; + + @override + String get copyFullHex => 'Копіювати повний Hex'; + + @override + String get copyRawResponse => 'Копіювати необроблену відповідь'; + + @override + String get couldNotLoadMetHistory => 'Не вдалося завантажити історію MET'; + + @override + String customizeSensor(String name) { + return 'Налаштувати $name'; + } + + @override + String get data => 'Дані'; + + @override + String get deleteGroup => 'Видалити групу'; + + @override + String deleteStyleConfirm(String name) { + return 'Видалити $name?'; + } + + @override + String deleteThisDrawing(String type) { + return 'Видалити цей $type?'; + } + + @override + String get deny => 'Відхилити'; + + @override + String get deviceInfo => 'Інформація про пристрій'; + + @override + String get deviceSettings => 'Налаштування пристрою'; + + @override + String get deviceTimeSynced => 'Час пристрою синхронізовано з цим телефоном.'; + + @override + String get disableFastGpsPublishing => 'Вимкнути швидку публікацію GPS'; + + @override + String get displayMarkersAndTraceDatabase => + 'Відображення, маркери та база даних трасувань'; + + @override + String get download => 'Завантажити'; + + @override + String get environmentalTelemetry => 'Телеметрія довкілля'; + + @override + String errorCheckingForUpdates(String error) { + return 'Помилка перевірки оновлень: $error'; + } + + @override + String errorGeneric(String error) { + return 'Помилка: $error'; + } + + @override + String errorOpeningDownload(String error) { + return 'Помилка відкриття завантаження: $error'; + } + + @override + String get exportLogs => 'Експортувати журнали'; + + @override + String get extraAggressiveAvifCompression => 'Надагресивне стиснення AVIF'; + + @override + String failedToAddContact(String error) { + return 'Не вдалося додати контакт: $error'; + } + + @override + String failedToAddName(String name, String error) { + return 'Не вдалося додати $name: $error'; + } + + @override + String failedToClearChannels(String error) { + return 'Не вдалося очистити канали: $error'; + } + + @override + String failedToClearContacts(String error) { + return 'Не вдалося очистити контакти: $error'; + } + + @override + String get failedToConnectViaSerial => + 'Не вдалося підключитися через послідовний порт'; + + @override + String failedToLoadPreviewImage(String error) { + return 'Не вдалося завантажити попередній перегляд: $error'; + } + + @override + String failedToLoadTrace(String error) { + return 'Не вдалося завантажити трасування: $error'; + } + + @override + String failedToSendSarMarker(String error) { + return 'Не вдалося надіслати SAR маркер: $error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return 'Не вдалося встановити режим зумера: $error'; + } + + @override + String failedToSetGpsMode(String error) { + return 'Не вдалося встановити режим GPS: $error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return 'Не вдалося синхронізувати час пристрою: $error'; + } + + @override + String failedToWipeDeviceData(String error) { + return 'Не вдалося стерти дані пристрою: $error'; + } + + @override + String get fastGpsTargetChannel => 'Цільовий канал швидкого GPS'; + + @override + String get fastUpdatesThresholdsAndPermissions => + 'Швидкі оновлення, пороги та дозволи'; + + @override + String get fetchingCatalog => 'Завантаження каталогу...'; + + @override + String get fifteenMinutes => '15 хвилин'; + + @override + String get fifteenSeconds => '15 секунд'; + + @override + String get filterByDirection => 'Фільтрувати за напрямком'; + + @override + String get finish => 'Завершити'; + + @override + String get fiveMinutes => '5 хвилин'; + + @override + String get fiveSeconds => '5 секунд'; + + @override + String get fix => 'Фіксація'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'Політика оголошень GPS'; + + @override + String get gpsAndLocation => 'GPS та місцезнаходження'; + + @override + String get gpsDiagnostics => 'Діагностика GPS'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => 'Допомога'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => 'Приховано'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => + 'Як радіо автоматично додає виявлені вузли.'; + + @override + String get images => 'Зображення'; + + @override + String get importProfile => 'Імпортувати профіль'; + + @override + String get lastFix => 'Остання фіксація'; + + @override + String get latest => 'Найновіші'; + + @override + String get latitude => 'Широта'; + + @override + String get loadASavedRegion => 'Завантажити збережений регіон'; + + @override + String get loading => 'Завантаження'; + + @override + String get locationSharingHardwareAndUpdateInterval => + 'Обмін місцезнаходженням, обладнання та інтервал оновлення.'; + + @override + String get locationTelemetry => 'Телеметрія місцезнаходження'; + + @override + String get lockDestination => 'Зафіксувати призначення'; + + @override + String get longitude => 'Довгота'; + + @override + String get mapStyle => 'Стиль мапи'; + + @override + String get max => 'Макс'; + + @override + String get maxZoom => 'Макс. масштаб'; + + @override + String get messaging => 'Обмін повідомленнями'; + + @override + String get metHistory => 'Історія MET'; + + @override + String get min => 'Мін'; + + @override + String get minZoom => 'Мін. масштаб'; + + @override + String get moveDown => 'Перемістити вниз'; + + @override + String get moveUp => 'Перемістити вгору'; + + @override + String get multiAckMode => 'Режим мульти-ACK'; + + @override + String get multiDeviceWorkspaceManagement => + 'Керування робочим простором кількох пристроїв'; + + @override + String get myLocation => 'Моє місцезнаходження'; + + @override + String get nameAndTelemetryShared => + 'Ім\'я та телеметрія надсилаються іншим пристроям.'; + + @override + String newVersionAvailable(String version) { + return 'Нова версія: $version'; + } + + @override + String get newer => 'Новіші'; + + @override + String get noNeighboursFound => 'Сусідів не знайдено'; + + @override + String get noServersFound => 'Серверів не знайдено'; + + @override + String get notSet => 'Не встановлено'; + + @override + String get notifications => 'Сповіщення'; + + @override + String get offZeroSeconds => 'Вимк (0 с)'; + + @override + String get offlineMaps => 'Офлайн-мапи'; + + @override + String get older => 'Старіші'; + + @override + String get oneByteMode0 => '1 байт (режим 0)'; + + @override + String get oneHour => '1 година'; + + @override + String get oneMinute => '1 хвилина'; + + @override + String get openPacketLogs => 'Відкрити журнали пакетів'; + + @override + String get packetTypeHelp => 'Довідка типів пакетів'; + + @override + String get pasteShareLinkOrHexAdvert => + 'Вставте посилання або hex-оголошення'; + + @override + String get pathHash => 'Хеш шляху'; + + @override + String get pathSize => 'Розмір шляху'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => 'Полігон'; + + @override + String get rawResponseCopied => 'Необроблену відповідь скопійовано'; + + @override + String get resendThroughNearestRepeaterOnFailure => + 'Повторно надіслати через найближчий ретранслятор у разі невдачі'; + + @override + String get resolveContact => 'Розв\'язати контакт'; + + @override + String get routingRetriesAndDestinationLock => + 'Маршрутизація, повторні спроби та фіксація призначення'; + + @override + String get samples => 'Зразки'; + + @override + String get satellites => 'Супутники'; + + @override + String get saving => 'Збереження...'; + + @override + String get search => 'Пошук'; + + @override + String get searchByNameOrToken => 'Шукати за іменем або токеном'; + + @override + String get searchDiscoveredNodes => 'Шукати виявлені вузли'; + + @override + String get searchInCurrentFilter => 'Шукати в поточному фільтрі'; + + @override + String get searchLogs => 'Шукати в журналах...'; + + @override + String get searchSensors => 'Шукати сенсори'; + + @override + String get searchThisSection => 'Шукати в цьому розділі'; + + @override + String get selectedRelays => 'Обрані ретранслятори'; + + @override + String get sensor => 'Сенсор'; + + @override + String serialError(String error) { + return 'Помилка послідовного порту: $error'; + } + + @override + String setPathForContact(String name) { + return 'Встановити шлях для $name'; + } + + @override + String get shareLiveGps => 'Поділитися GPS у реальному часі'; + + @override + String get shareMyTiles => 'Поділитися моїми тайлами'; + + @override + String get sharingLocationFromPhone => + 'Обмін місцезнаходженням на цьому каналі з телефону.'; + + @override + String get sharingLocationFromRadio => + 'Обмін місцезнаходженням на цьому каналі з радіо.'; + + @override + String signalDbm(String rssi) { + return 'Сигнал $rssi дБм'; + } + + @override + String get sizeCompressionAndPreview => + 'Розмір, стиснення та попередній перегляд'; + + @override + String get skip => 'Пропустити'; + + @override + String get smallerFileSize => 'Менший розмір файлу'; + + @override + String get sort => 'Сортувати'; + + @override + String get stoppedSharingLocation => + 'Обмін місцезнаходженням на цьому каналі зупинено.'; + + @override + String get suppressNotificationsWhileInForeground => + 'Придушити сповіщення, коли застосунок на передньому плані'; + + @override + String get tabsAndNavigation => 'Вкладки та навігація'; + + @override + String get templatesAndTutorials => 'Шаблони та посібники'; + + @override + String get tenMinutes => '10 хвилин'; + + @override + String get tenSeconds => '10 секунд'; + + @override + String get testSendUpdate => 'Тестове надсилання оновлення'; + + @override + String get themeLanguageAndDisplayPreferences => + 'Тема, мова та налаштування відображення'; + + @override + String get thirtyMinutes => '30 хвилин'; + + @override + String get thirtySeconds => '30 секунд'; + + @override + String get threeBytesMode2 => '3 байти (режим 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => + 'Статистика трафіку, історія повідомлень та інструменти розробника'; + + @override + String get twoBytesMode1 => '2 байти (режим 1)'; + + @override + String get twoMinutes => '2 хвилини'; + + @override + String get undo => 'Скасувати'; + + @override + String get updated => 'Оновлено'; + + @override + String get useContactFlags => 'Використовувати прапорці контактів'; + + @override + String get useSavedCoordinates => 'Використати збережені координати'; + + @override + String get view => 'Перегляд'; + + @override + String get viewNeighbours => 'Переглянути сусідів'; + + @override + String get viewPublicStats => 'Переглянути публічну статистику'; + + @override + String get setRegionScope => 'Встановити область регіону'; + + @override + String get regionScope => 'Область регіону'; + + @override + String get regionScopeNone => 'Немає (глобально)'; + + @override + String get clearRegionScope => 'Очистити область'; + + @override + String get regionScopeWarning => + 'Лише ретранслятори, що дозволяють цей регіон, будуть пересилати.'; + + @override + String get discoverRegions => 'Виявити з ретрансляторів'; + + @override + String get discoveringRegions => 'Виявлення регіонів...'; + + @override + String get enterRegionName => 'Назва регіону (напр. auckland)'; + + @override + String get noRegionsFound => 'Регіони не знайдені на цьому ретрансляторі.'; + + @override + String regionScopeSet(String name) { + return 'Область регіону встановлена на $name'; + } + + @override + String get regionScopeCleared => 'Область регіону очищена'; } diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart index 66465eb..bbfc71e 100644 --- a/lib/l10n/app_localizations_zh.dart +++ b/lib/l10n/app_localizations_zh.dart @@ -35,9 +35,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get scanAgain => '重新扫描'; - @override - String get tapToConnect => '点击连接'; - @override String get deviceNotConnected => '设备未连接'; @@ -106,15 +103,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get showRxTxIndicators => '显示 RX/TX 指示器'; - @override - String get displayPacketActivity => '在顶部栏显示数据包活动指示器'; - @override String get disableMap => '禁用地图'; - @override - String get disableMapDescription => '隐藏地图标签页以减少电池消耗'; - @override String get language => '语言'; @@ -136,9 +127,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get appVersion => '应用版本'; - @override - String get appName => '应用名称'; - @override String get aboutMeshCoreSar => '关于 MeshCore 搜救助手'; @@ -230,9 +218,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get resetPath => '重置路径 (重新路由)'; - @override - String get publicKeyCopied => '公钥已复制到剪贴板'; - @override String copiedToClipboard(String label) { return '$label 已复制到剪贴板'; @@ -465,22 +450,22 @@ class AppLocalizationsZh extends AppLocalizations { String get flood => '泛洪'; @override - String get autoSend => 'Auto Send'; + String get autoSend => '自动发送'; @override - String get autoSendDescription => 'Send via current path.'; + String get autoSendDescription => '通过当前路径发送。'; @override - String get sendDirect => 'Send Direct'; + String get sendDirect => '直接发送'; @override - String get sendDirectDescription => 'Send directly to this contact.'; + String get sendDirectDescription => '直接发送给此联系人。'; @override - String get sendFlood => 'Send Flood'; + String get sendFlood => '泛洪发送'; @override - String get sendFloodDescription => 'Send via all repeaters.'; + String get sendFloodDescription => '通过所有中继器发送。'; @override String get loggedIn => '已登录'; @@ -520,18 +505,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get lastSeen => '最后在线'; - @override - String get roomStatus => '房间状态'; - - @override - String get loginStatus => '登录状态'; - - @override - String get notLoggedIn => '未登录'; - - @override - String get adminAccess => '管理员权限'; - @override String get yes => '是'; @@ -541,12 +514,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get permissions => '权限'; - @override - String get passwordSaved => '密码已保存'; - - @override - String get locationColon => '位置:'; - @override String get telemetry => '遥测'; @@ -568,14 +535,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get gpsTelemetry => 'GPS(遥测)'; - @override - String get updated => '更新于'; - - @override - String pathResetInfo(String name) { - return '已重置 $name 的路径。下一条消息将寻找新路由。'; - } - @override String get reLoginToRoom => '重新登录到房间'; @@ -823,9 +782,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get frequencyMHz => '频率 (MHz)'; - @override - String get frequencyExample => '例如 869.618'; - @override String get bandwidth => '带宽'; @@ -898,47 +854,12 @@ class AppLocalizationsZh extends AppLocalizations { @override String get trailControls => '轨迹控制'; - @override - String get contactTrails => '联系人轨迹'; - - @override - String get showAllContactTrails => '显示所有联系人轨迹'; - - @override - String get noContactsWithLocationHistory => '没有带位置历史的联系人'; - - @override - String showingTrailsForContacts(int count) { - return '正在显示 $count 个联系人的轨迹'; - } - - @override - String get individualContactTrails => '单个联系人轨迹'; - - @override - String get deviceInformation => '设备信息'; - - @override - String get bleName => 'BLE 名称'; - - @override - String get meshName => 'Mesh 名称'; - - @override - String get notSet => '未设置'; - @override String get model => '型号'; @override String get version => '版本'; - @override - String get buildDate => '构建日期'; - - @override - String get firmware => '固件'; - @override String get maxContacts => '最大联系人数量'; @@ -948,21 +869,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get publicInfo => '公共信息'; - @override - String get meshNetworkName => 'Mesh 网络名称'; - - @override - String get nameBroadcastInMesh => '在 Mesh 广播中公布的名称'; - - @override - String get telemetryAndLocationSharing => '遥测与位置共享'; - - @override - String get lat => '纬度'; - - @override - String get lon => '经度'; - @override String get useCurrentLocation => '使用当前位置'; @@ -983,11 +889,6 @@ class AppLocalizationsZh extends AppLocalizations { return '类型 $number'; } - @override - String copiedToClipboardShort(String label) { - return '$label 已复制到剪贴板'; - } - @override String failedToSave(String error) { return '保存失败:$error'; @@ -1001,9 +902,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get sarTemplates => '搜救模板'; - @override - String get manageSarTemplates => '管理光标目标模板'; - @override String get addTemplate => '添加模板'; @@ -1091,9 +989,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get ok => '确定'; - @override - String get permissionsSection => '权限'; - @override String get locationPermission => '位置权限'; @@ -1512,75 +1407,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get wizardWelcomeTitle => '欢迎使用 MeshCore 搜救助手'; - @override - String get wizardWelcomeDescription => - '一个功能强大的离网通信工具,用于搜索和救援行动。当传统网络不可用时,使用 Mesh 无线电技术与您的团队保持联系。'; - - @override - String get wizardConnectingTitle => '连接到您的无线电'; - - @override - String get wizardConnectingDescription => - '通过蓝牙将您的智能手机连接到 MeshCore 无线电设备,开始离网通信。'; - - @override - String get wizardConnectingFeature1 => '扫描附近的 MeshCore 设备'; - - @override - String get wizardConnectingFeature2 => '通过蓝牙与您的无线电配对'; - - @override - String get wizardConnectingFeature3 => '完全离线工作 - 无需互联网'; - - @override - String get wizardChannelTitle => '频道'; - - @override - String get wizardChannelDescription => '向频道上的所有人广播消息,非常适合全队通告和协调。'; - - @override - String get wizardChannelFeature1 => '用于一般团队通信的公共频道'; - - @override - String get wizardChannelFeature2 => '为特定小组创建自定义频道'; - - @override - String get wizardChannelFeature3 => '消息由 Mesh 网络自动转发'; - - @override - String get wizardContactsTitle => '联系人'; - - @override - String get wizardContactsDescription => - '您的团队成员在加入 Mesh 网络时会自动出现。向他们发送直连消息或查看他们的位置。'; - - @override - String get wizardContactsFeature1 => '联系人自动发现'; - - @override - String get wizardContactsFeature2 => '发送私密的直连消息'; - - @override - String get wizardContactsFeature3 => '查看电池电量和最后在线时间'; - - @override - String get wizardMapTitle => '地图与位置'; - - @override - String get wizardMapDescription => '实时跟踪您的团队,并为搜救行动标记重要位置。'; - - @override - String get wizardMapFeature1 => '用于标记找到的人员、火灾和集结区的搜救标记'; - - @override - String get wizardMapFeature2 => '团队成员的实时 GPS 跟踪'; - - @override - String get wizardMapFeature3 => '为偏远地区下载离线地图'; - - @override - String get wizardMapFeature4 => '绘制形状并共享战术信息'; - @override String get viewWelcomeTutorial => '查看欢迎教程'; @@ -1815,11 +1641,11 @@ class AppLocalizationsZh extends AppLocalizations { String get wizardToolsFeature3 => '在排查 mesh 网络问题时使用数据包日志、频谱扫描和开发者诊断。'; @override - String get postConnectDiscoveryTitle => 'Discover repeaters now?'; + String get postConnectDiscoveryTitle => '现在发现中继器?'; @override String get postConnectDiscoveryDescription => - 'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.'; + '连接后立即运行中继器发现,以查看附近的 MeshCore 节点并更快地将它们添加到您的网络中。'; @override String get contactInSensors => '在传感器中'; @@ -1922,57 +1748,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get bandpassFilterVoice => '带通语音滤波'; - @override - String get frequency => '频率'; - - @override - String get australia => '澳大利亚'; - - @override - String get australiaNarrow => '澳大利亚(窄带)'; - - @override - String get australiaQld => '澳大利亚:QLD'; - - @override - String get australiaSaWa => '澳大利亚:SA, WA'; - - @override - String get newZealand => '新西兰'; - - @override - String get newZealandNarrow => '新西兰(窄带)'; - - @override - String get switzerland => '瑞士'; - - @override - String get portugal433 => '葡萄牙 433'; - - @override - String get portugal868 => '葡萄牙 868'; - - @override - String get czechRepublicNarrow => '捷克(窄带)'; - - @override - String get eu433mhzLongRange => '欧盟 433MHz(远距离)'; - - @override - String get euukDeprecated => '欧盟/英国(已弃用)'; - - @override - String get euukNarrow => '欧盟/英国(窄带)'; - - @override - String get usacanadaRecommended => '美国/加拿大(推荐)'; - - @override - String get vietnamDeprecated => '越南(已弃用)'; - - @override - String get vietnamNarrow => '越南(窄带)'; - @override String get active => '活动'; @@ -1982,15 +1757,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get all => '全部'; - @override - String get autoResolve => '自动解析'; - @override String get clearAllLabel => '清除全部'; - @override - String get clearRelays => '清除中继'; - @override String get clearFilters => '清除过滤器'; @@ -2066,18 +1835,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get share => '分享'; - @override - String get shareContact => '分享联系人'; - @override String get trace => '追踪'; - @override - String get use => '使用'; - - @override - String get useSelectedFrequency => '使用选定频率'; - @override String get discovery => '发现'; @@ -2144,9 +1904,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get repeatersMap => '中继器地图'; - @override - String get spectrumScan => '频谱扫描'; - @override String get blePacketLogs => 'BLE 数据包日志'; @@ -2180,9 +1937,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get enableProfiles => '启用配置文件'; - @override - String get autoRouteRotation => '自动路由轮换'; - @override String get nearestRepeaterFallback => '最近中继器回退'; @@ -2204,12 +1958,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get showSarMarkersLabel => '显示 SAR 标记'; - @override - String get displaySarMarkersOnTheMainMap => '在主地图上显示 SAR 标记'; - - @override - String get showAllContactTrailsLabel => '显示所有联系人轨迹'; - @override String get hideRepeatersOnMap => '在地图上隐藏中继器'; @@ -2225,21 +1973,12 @@ class AppLocalizationsZh extends AppLocalizations { @override String get voiceCompressor => '语音压缩器'; - @override - String get balancesQuietAndLoudSpeechLevels => '平衡安静和响亮的语音级别'; - @override String get voiceLimiter => '语音限制器'; - @override - String get preventsClippingPeaksBeforeEncoding => '防止编码前的削波'; - @override String get micAutoGain => '麦克风自动增益'; - @override - String get letsTheRecorderAdjustInputLevel => '让录音器调整输入级别'; - @override String get echoCancellation => '回声消除'; @@ -2363,15 +2102,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get quiet => '安静'; - @override - String get moderate => '中等'; - @override String get busy => '繁忙'; - @override - String get spectrumScanReturnedNoCandidateFrequencies => '频谱扫描未找到候选频率'; - @override String get searchMessages => '搜索消息'; @@ -2381,9 +2114,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get takePhoto => '拍照'; - @override - String get dmOnly => '仅私信'; - @override String get allMessages => '所有消息'; @@ -2438,12 +2168,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get chooseAPresetOrFinetuneCustomRadioSettings => '选择预设或微调自定义无线电设置。'; - @override - String get chooseTheNameAndLocationThisDeviceShares => '选择此设备共享的名称和位置。'; - - @override - String get availableSpaceOnThisDevice => '此设备上的可用空间。'; - @override String get used => '已使用'; @@ -2495,12 +2219,6 @@ class AppLocalizationsZh extends AppLocalizations { @override String get source => '来源'; - @override - String get manualRouteEdit => '手动路由编辑'; - - @override - String get observedMeshRoute => '观察到的网格路由'; - @override String get allMessagesCleared => '所有消息已清除'; @@ -2595,38 +2313,593 @@ class AppLocalizationsZh extends AppLocalizations { String get noDeviceContactsToClear => '没有设备联系人可清除。'; @override - String get setRegionScope => 'Set region scope'; + String get aToZ => 'A-Z'; @override - String get regionScope => 'Region scope'; + String get add => '添加'; @override - String get regionScopeNone => 'None (global)'; + String get addAdditionalDetails => '添加其他详情'; @override - String get clearRegionScope => 'Clear scope'; + String get addPeer => '添加节点'; @override - String get regionScopeWarning => - 'Only repeaters allowing this region will forward.'; + String get addPeerManually => '手动添加节点'; @override - String get discoverRegions => 'Discover from repeaters'; - - @override - String get discoveringRegions => 'Discovering regions...'; - - @override - String get enterRegionName => 'Region name (e.g. auckland)'; - - @override - String get noRegionsFound => 'No regions found on this repeater.'; - - @override - String regionScopeSet(String name) { - return 'Region scope set to $name'; + String addedToContacts(String name) { + return '$name 已添加到联系人'; } @override - String get regionScopeCleared => 'Region scope cleared'; + String addedToSensors(String name) { + return '$name 已添加到传感器'; + } + + @override + String get allowAll => '全部允许'; + + @override + String get anonymousRxStats => '匿名接收统计'; + + @override + String get appearance => '外观'; + + @override + String get ascii => 'ASCII'; + + @override + String get baseTelemetry => '基础遥测'; + + @override + String get blePin => 'BLE PIN'; + + @override + String get buzzerAlerts => '蜂鸣器警报'; + + @override + String get cancelImageReceive => '取消接收图片'; + + @override + String get choose => '选择'; + + @override + String get chooseWhichTabsAndContactSectionsToShow => '选择要显示的标签页和联系人分区'; + + @override + String get clearCache => '清除缓存'; + + @override + String get clearHistory => '清除历史'; + + @override + String get clearLiveView => '清除实时视图'; + + @override + String get clearLogs => '清除日志'; + + @override + String get clearOfflineCache => '清除离线缓存?'; + + @override + String get clearOverlay => '清除叠加层'; + + @override + String get clearRouteOnlyAfterAllRetriesFail => '仅在所有重试失败后清除路由'; + + @override + String get codecBitrateAndAudioProcessing => '编解码器、比特率和音频处理'; + + @override + String get connectByIpAddress => '通过 IP 地址连接'; + + @override + String get controlWhichAlertsYouReceive => '控制接收哪些警报'; + + @override + String get copyFullHex => '复制完整 Hex'; + + @override + String get copyRawResponse => '复制原始响应'; + + @override + String get couldNotLoadMetHistory => '无法加载 MET 历史'; + + @override + String customizeSensor(String name) { + return '自定义 $name'; + } + + @override + String get data => '数据'; + + @override + String get deleteGroup => '删除群组'; + + @override + String deleteStyleConfirm(String name) { + return '删除 $name?'; + } + + @override + String deleteThisDrawing(String type) { + return '删除此$type?'; + } + + @override + String get deny => '拒绝'; + + @override + String get deviceInfo => '设备信息'; + + @override + String get deviceSettings => '设备设置'; + + @override + String get deviceTimeSynced => '设备时间已同步到此手机。'; + + @override + String get disableFastGpsPublishing => '禁用快速 GPS 发布'; + + @override + String get displayMarkersAndTraceDatabase => '显示、标记和轨迹数据库'; + + @override + String get download => '下载'; + + @override + String get environmentalTelemetry => '环境遥测'; + + @override + String errorCheckingForUpdates(String error) { + return '检查更新出错:$error'; + } + + @override + String errorGeneric(String error) { + return '错误:$error'; + } + + @override + String errorOpeningDownload(String error) { + return '打开下载出错:$error'; + } + + @override + String get exportLogs => '导出日志'; + + @override + String get extraAggressiveAvifCompression => '超强 AVIF 压缩'; + + @override + String failedToAddContact(String error) { + return '添加联系人失败:$error'; + } + + @override + String failedToAddName(String name, String error) { + return '添加 $name 失败:$error'; + } + + @override + String failedToClearChannels(String error) { + return '清除频道失败:$error'; + } + + @override + String failedToClearContacts(String error) { + return '清除联系人失败:$error'; + } + + @override + String get failedToConnectViaSerial => '通过串口连接失败'; + + @override + String failedToLoadPreviewImage(String error) { + return '加载预览图片失败:$error'; + } + + @override + String failedToLoadTrace(String error) { + return '加载轨迹失败:$error'; + } + + @override + String failedToSendSarMarker(String error) { + return '发送 SAR 标记失败:$error'; + } + + @override + String failedToSetBuzzerMode(String error) { + return '设置蜂鸣器模式失败:$error'; + } + + @override + String failedToSetGpsMode(String error) { + return '设置 GPS 模式失败:$error'; + } + + @override + String failedToSyncDeviceTime(String error) { + return '同步设备时间失败:$error'; + } + + @override + String failedToWipeDeviceData(String error) { + return '擦除设备数据失败:$error'; + } + + @override + String get fastGpsTargetChannel => '快速 GPS 目标频道'; + + @override + String get fastUpdatesThresholdsAndPermissions => '快速更新、阈值和权限'; + + @override + String get fetchingCatalog => '正在获取目录…'; + + @override + String get fifteenMinutes => '15 分钟'; + + @override + String get fifteenSeconds => '15 秒'; + + @override + String get filterByDirection => '按方向筛选'; + + @override + String get finish => '完成'; + + @override + String get fiveMinutes => '5 分钟'; + + @override + String get fiveSeconds => '5 秒'; + + @override + String get fix => '定位'; + + @override + String get gps => 'GPS'; + + @override + String get gpsAdvertPolicy => 'GPS 广播策略'; + + @override + String get gpsAndLocation => 'GPS 与位置'; + + @override + String get gpsDiagnostics => 'GPS 诊断'; + + @override + String get gpsSection => 'GPS'; + + @override + String get help => '帮助'; + + @override + String get hex => 'Hex'; + + @override + String get hidden => '已隐藏'; + + @override + String get howTheRadioAutoAddsDiscoveredNodes => '无线电自动添加已发现节点的方式。'; + + @override + String get images => '图片'; + + @override + String get importProfile => '导入配置文件'; + + @override + String get lastFix => '最后定位'; + + @override + String get latest => '最新'; + + @override + String get latitude => '纬度'; + + @override + String get loadASavedRegion => '加载已保存的区域'; + + @override + String get loading => '加载中'; + + @override + String get locationSharingHardwareAndUpdateInterval => '位置共享、硬件和更新间隔。'; + + @override + String get locationTelemetry => '位置遥测'; + + @override + String get lockDestination => '锁定目的地'; + + @override + String get longitude => '经度'; + + @override + String get mapStyle => '地图样式'; + + @override + String get max => '最大'; + + @override + String get maxZoom => '最大缩放'; + + @override + String get messaging => '消息传递'; + + @override + String get metHistory => 'MET 历史'; + + @override + String get min => '最小'; + + @override + String get minZoom => '最小缩放'; + + @override + String get moveDown => '下移'; + + @override + String get moveUp => '上移'; + + @override + String get multiAckMode => '多重 ACK 模式'; + + @override + String get multiDeviceWorkspaceManagement => '多设备工作区管理'; + + @override + String get myLocation => '我的位置'; + + @override + String get nameAndTelemetryShared => '名称和遥测数据已与其他设备共享。'; + + @override + String newVersionAvailable(String version) { + return '新版本:$version'; + } + + @override + String get newer => '较新'; + + @override + String get noNeighboursFound => '未找到邻近节点'; + + @override + String get noServersFound => '未找到服务器'; + + @override + String get notSet => '未设置'; + + @override + String get notifications => '通知'; + + @override + String get offZeroSeconds => '关闭 (0 秒)'; + + @override + String get offlineMaps => '离线地图'; + + @override + String get older => '较旧'; + + @override + String get oneByteMode0 => '1 字节(模式 0)'; + + @override + String get oneHour => '1 小时'; + + @override + String get oneMinute => '1 分钟'; + + @override + String get openPacketLogs => '打开数据包日志'; + + @override + String get packetTypeHelp => '数据包类型帮助'; + + @override + String get pasteShareLinkOrHexAdvert => '粘贴分享链接或 Hex 广播'; + + @override + String get pathHash => '路径哈希'; + + @override + String get pathSize => '路径大小'; + + @override + String get ping => 'Ping'; + + @override + String get polygon => '多边形'; + + @override + String get rawResponseCopied => '原始响应已复制'; + + @override + String get resendThroughNearestRepeaterOnFailure => '失败时通过最近的中继器重新发送'; + + @override + String get resolveContact => '解析联系人'; + + @override + String get routingRetriesAndDestinationLock => '路由、重试和目的地锁定'; + + @override + String get samples => '采样'; + + @override + String get satellites => '卫星'; + + @override + String get saving => '保存中…'; + + @override + String get search => '搜索'; + + @override + String get searchByNameOrToken => '按名称或令牌搜索'; + + @override + String get searchDiscoveredNodes => '搜索已发现的节点'; + + @override + String get searchInCurrentFilter => '在当前筛选中搜索'; + + @override + String get searchLogs => '搜索日志…'; + + @override + String get searchSensors => '搜索传感器'; + + @override + String get searchThisSection => '搜索此分区'; + + @override + String get selectedRelays => '已选中继器'; + + @override + String get sensor => '传感器'; + + @override + String serialError(String error) { + return '串口错误:$error'; + } + + @override + String setPathForContact(String name) { + return '为 $name 设置路径'; + } + + @override + String get shareLiveGps => '共享实时 GPS'; + + @override + String get shareMyTiles => '共享我的地图瓦片'; + + @override + String get sharingLocationFromPhone => '正在从手机共享此频道的位置。'; + + @override + String get sharingLocationFromRadio => '正在从无线电共享此频道的位置。'; + + @override + String signalDbm(String rssi) { + return '信号 $rssi dBm'; + } + + @override + String get sizeCompressionAndPreview => '大小、压缩和预览'; + + @override + String get skip => '跳过'; + + @override + String get smallerFileSize => '更小的文件大小'; + + @override + String get sort => '排序'; + + @override + String get stoppedSharingLocation => '已停止在此频道上共享位置。'; + + @override + String get suppressNotificationsWhileInForeground => '前台运行时抑制通知'; + + @override + String get tabsAndNavigation => '标签页与导航'; + + @override + String get templatesAndTutorials => '模板和教程'; + + @override + String get tenMinutes => '10 分钟'; + + @override + String get tenSeconds => '10 秒'; + + @override + String get testSendUpdate => '测试发送更新'; + + @override + String get themeLanguageAndDisplayPreferences => '主题、语言和显示偏好'; + + @override + String get thirtyMinutes => '30 分钟'; + + @override + String get thirtySeconds => '30 秒'; + + @override + String get threeBytesMode2 => '3 字节(模式 2)'; + + @override + String get trafficStatsMessageHistoryAndDeveloperTools => '流量统计、消息历史和开发者工具'; + + @override + String get twoBytesMode1 => '2 字节(模式 1)'; + + @override + String get twoMinutes => '2 分钟'; + + @override + String get undo => '撤销'; + + @override + String get updated => '已更新'; + + @override + String get useContactFlags => '使用联系人标志'; + + @override + String get useSavedCoordinates => '使用已保存的坐标'; + + @override + String get view => '查看'; + + @override + String get viewNeighbours => '查看邻近节点'; + + @override + String get viewPublicStats => '查看公开统计'; + + @override + String get setRegionScope => '设置区域范围'; + + @override + String get regionScope => '区域范围'; + + @override + String get regionScopeNone => '无(全局)'; + + @override + String get clearRegionScope => '清除范围'; + + @override + String get regionScopeWarning => '只有允许此区域的中继器会转发。'; + + @override + String get discoverRegions => '从中继器发现'; + + @override + String get discoveringRegions => '正在发现区域...'; + + @override + String get enterRegionName => '区域名称(例如 auckland)'; + + @override + String get noRegionsFound => '此中继器上未找到区域。'; + + @override + String regionScopeSet(String name) { + return '区域范围已设置为 $name'; + } + + @override + String get regionScopeCleared => '区域范围已清除'; } diff --git a/lib/l10n/app_pl.arb b/lib/l10n/app_pl.arb index 7120d22..224c58c 100644 --- a/lib/l10n/app_pl.arb +++ b/lib/l10n/app_pl.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "Button to restart BLE scanning" }, - "tapToConnect": "Dotknij, aby połączyć", - "@tapToConnect": { - "description": "Subtitle text for device in scan list" - }, "deviceNotConnected": "Urządzenie nie jest połączone", "@deviceNotConnected": { "description": "Error message when device is not connected" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "Setting to show RX/TX indicators" }, - "displayPacketActivity": "Wyświetlaj wskaźniki aktywności pakietów na górnym pasku", - "@displayPacketActivity": { - "description": "Description for RX/TX indicators setting" - }, "disableMap": "Wyłącz mapę", "@disableMap": { "description": "Setting to disable the map tab" }, - "disableMapDescription": "Ukryj kartę mapy, aby zmniejszyć zużycie baterii", - "@disableMapDescription": { - "description": "Description for disable map setting" - }, "language": "Język", "@language": { "description": "Language setting label" @@ -173,10 +161,6 @@ "@appVersion": { "description": "App version label" }, - "appName": "Nazwa aplikacji", - "@appName": { - "description": "App name label" - }, "aboutMeshCoreSar": "O MeshCore SAR", "@aboutMeshCoreSar": { "description": "About dialog title" @@ -308,10 +292,6 @@ "@resetPath": { "description": "Action to reset contact path for re-routing" }, - "publicKeyCopied": "Klucz publiczny skopiowano do schowka", - "@publicKeyCopied": { - "description": "Success message when public key is copied" - }, "copiedToClipboard": "Skopiowano {label} do schowka", "@copiedToClipboard": { "description": "Success message when a value is copied to clipboard", @@ -720,22 +700,6 @@ "@lastSeen": { "description": "Last seen label" }, - "roomStatus": "Status pokoju", - "@roomStatus": { - "description": "Room status section header" - }, - "loginStatus": "Status logowania", - "@loginStatus": { - "description": "Login status label" - }, - "notLoggedIn": "Niezalogowany", - "@notLoggedIn": { - "description": "Not logged in status" - }, - "adminAccess": "Dostęp administratora", - "@adminAccess": { - "description": "Admin access label" - }, "yes": "Tak", "@yes": { "description": "Yes answer" @@ -748,14 +712,6 @@ "@permissions": { "description": "Permissions label" }, - "passwordSaved": "Hasło zapisano", - "@passwordSaved": { - "description": "Password saved label" - }, - "locationColon": "Lokalizacja:", - "@locationColon": { - "description": "Location section header" - }, "telemetry": "Telemetria", "@telemetry": { "description": "Telemetry section header" @@ -784,19 +740,6 @@ "@gpsTelemetry": { "description": "GPS from telemetry label" }, - "updated": "Zaktualizowano", - "@updated": { - "description": "Updated timestamp label" - }, - "pathResetInfo": "Trasa dla {name} została zresetowana. Następna wiadomość znajdzie nową trasę.", - "@pathResetInfo": { - "description": "Info message after path reset", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "Zaloguj ponownie do pokoju", "@reLoginToRoom": { "description": "Button to re-login to room" @@ -1158,10 +1101,6 @@ "@frequencyMHz": { "description": "Label for radio frequency field" }, - "frequencyExample": "np. 869.618", - "@frequencyExample": { - "description": "Helper text example for frequency" - }, "bandwidth": "Szerokość pasma", "@bandwidth": { "description": "Label for bandwidth dropdown" @@ -1265,47 +1204,6 @@ "@trailControls": { "description": "Trail controls tooltip" }, - "contactTrails": "Ślady kontaktów", - "@contactTrails": { - "description": "Contact trails section header" - }, - "showAllContactTrails": "Pokaż wszystkie ślady kontaktów", - "@showAllContactTrails": { - "description": "Toggle label to show all contact trails" - }, - "noContactsWithLocationHistory": "Brak kontaktów z historią lokalizacji", - "@noContactsWithLocationHistory": { - "description": "Subtitle when no contacts have trails" - }, - "showingTrailsForContacts": "Pokazywane są ślady dla {count} kontaktów", - "@showingTrailsForContacts": { - "description": "Subtitle showing number of contacts with trails", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "Indywidualne ślady kontaktów", - "@individualContactTrails": { - "description": "Expansion tile title for individual contact trails" - }, - "deviceInformation": "Informacje o urządzeniu", - "@deviceInformation": { - "description": "Device information section header" - }, - "bleName": "Nazwa BLE", - "@bleName": { - "description": "Bluetooth Low Energy device name label" - }, - "meshName": "Nazwa mesh", - "@meshName": { - "description": "Mesh network name label" - }, - "notSet": "Nie ustawiono", - "@notSet": { - "description": "Label when a value is not set" - }, "model": "Model", "@model": { "description": "Device model label" @@ -1314,14 +1212,6 @@ "@version": { "description": "Version label" }, - "buildDate": "Data kompilacji", - "@buildDate": { - "description": "Firmware build date label" - }, - "firmware": "Firmware", - "@firmware": { - "description": "Firmware label" - }, "maxContacts": "Maks. kontaktów", "@maxContacts": { "description": "Maximum contacts capacity label" @@ -1334,26 +1224,6 @@ "@publicInfo": { "description": "Public information section header" }, - "meshNetworkName": "Nazwa sieci mesh", - "@meshNetworkName": { - "description": "Mesh network name field label" - }, - "nameBroadcastInMesh": "Nazwa nadawana w ogłoszeniach mesh", - "@nameBroadcastInMesh": { - "description": "Helper text for mesh network name field" - }, - "telemetryAndLocationSharing": "Telemetria i udostępnianie lokalizacji", - "@telemetryAndLocationSharing": { - "description": "Telemetry and location sharing toggle label" - }, - "lat": "Szer.", - "@lat": { - "description": "Latitude field label (short form)" - }, - "lon": "Dł.", - "@lon": { - "description": "Longitude field label (short form)" - }, "useCurrentLocation": "Użyj bieżącej lokalizacji", "@useCurrentLocation": { "description": "Tooltip for use current location button" @@ -1383,15 +1253,6 @@ } } }, - "copiedToClipboardShort": "Skopiowano {label} do schowka", - "@copiedToClipboardShort": { - "description": "Short success message when copying to clipboard", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "Nie udało się zapisać: {error}", "@failedToSave": { "description": "Generic error message for save failures", @@ -1414,10 +1275,6 @@ "@sarTemplates": { "description": "SAR templates menu title" }, - "manageSarTemplates": "Zarządzaj szablonami SAR", - "@manageSarTemplates": { - "description": "Subtitle for SAR templates settings" - }, "addTemplate": "Dodaj szablon", "@addTemplate": { "description": "Button to add new SAR template" @@ -1541,10 +1398,6 @@ "@ok": { "description": "OK button label" }, - "permissionsSection": "Uprawnienia", - "@permissionsSection": { - "description": "Permissions section header" - }, "locationPermission": "Uprawnienie lokalizacji", "@locationPermission": { "description": "Location permission label" @@ -2109,94 +1962,6 @@ "@wizardWelcomeTitle": { "description": "Welcome wizard first page title" }, - "wizardWelcomeDescription": "Potężne narzędzie komunikacji poza siecią do operacji poszukiwawczo-ratowniczych. Połącz się ze swoim zespołem przy użyciu technologii radia mesh, gdy tradycyjne sieci są niedostępne.", - "@wizardWelcomeDescription": { - "description": "Welcome wizard first page description" - }, - "wizardConnectingTitle": "Łączenie z radiem", - "@wizardConnectingTitle": { - "description": "Wizard connecting page title" - }, - "wizardConnectingDescription": "Połącz smartfon z urządzeniem radiowym MeshCore przez Bluetooth, aby rozpocząć komunikację poza siecią.", - "@wizardConnectingDescription": { - "description": "Wizard connecting page description" - }, - "wizardConnectingFeature1": "Skanuj pobliskie urządzenia MeshCore", - "@wizardConnectingFeature1": { - "description": "Wizard connecting feature 1" - }, - "wizardConnectingFeature2": "Sparuj radio przez Bluetooth", - "@wizardConnectingFeature2": { - "description": "Wizard connecting feature 2" - }, - "wizardConnectingFeature3": "Działa całkowicie offline - internet nie jest wymagany", - "@wizardConnectingFeature3": { - "description": "Wizard connecting feature 3" - }, - "wizardChannelTitle": "Kanały", - "@wizardChannelTitle": { - "description": "Wizard channel page title" - }, - "wizardChannelDescription": "Nadawaj wiadomości do wszystkich na kanale, idealne do ogłoszeń i koordynacji całego zespołu.", - "@wizardChannelDescription": { - "description": "Wizard channel page description" - }, - "wizardChannelFeature1": "Kanał publiczny do ogólnej komunikacji zespołu", - "@wizardChannelFeature1": { - "description": "Wizard channel feature 1" - }, - "wizardChannelFeature2": "Twórz własne kanały dla konkretnych grup", - "@wizardChannelFeature2": { - "description": "Wizard channel feature 2" - }, - "wizardChannelFeature3": "Wiadomości są automatycznie przekazywane przez mesh", - "@wizardChannelFeature3": { - "description": "Wizard channel feature 3" - }, - "wizardContactsTitle": "Kontakty", - "@wizardContactsTitle": { - "description": "Wizard contacts page title" - }, - "wizardContactsDescription": "Członkowie zespołu pojawiają się automatycznie, gdy dołączają do sieci mesh. Wyślij im wiadomość bezpośrednią lub zobacz ich lokalizację.", - "@wizardContactsDescription": { - "description": "Wizard contacts page description" - }, - "wizardContactsFeature1": "Kontakty wykrywane automatycznie", - "@wizardContactsFeature1": { - "description": "Wizard contacts feature 1" - }, - "wizardContactsFeature2": "Wysyłaj prywatne wiadomości bezpośrednie", - "@wizardContactsFeature2": { - "description": "Wizard contacts feature 2" - }, - "wizardContactsFeature3": "Podgląd poziomu baterii i czasu ostatniej aktywności", - "@wizardContactsFeature3": { - "description": "Wizard contacts feature 3" - }, - "wizardMapTitle": "Mapa i lokalizacja", - "@wizardMapTitle": { - "description": "Wizard map page title" - }, - "wizardMapDescription": "Śledź swój zespół w czasie rzeczywistym i oznaczaj ważne lokalizacje dla działań poszukiwawczo-ratowniczych.", - "@wizardMapDescription": { - "description": "Wizard map page description" - }, - "wizardMapFeature1": "Znaczniki SAR dla odnalezionych osób, pożarów i stref zbiórki", - "@wizardMapFeature1": { - "description": "Wizard map feature 1" - }, - "wizardMapFeature2": "Śledzenie GPS członków zespołu w czasie rzeczywistym", - "@wizardMapFeature2": { - "description": "Wizard map feature 2" - }, - "wizardMapFeature3": "Pobieraj mapy offline dla odległych obszarów", - "@wizardMapFeature3": { - "description": "Wizard map feature 3" - }, - "wizardMapFeature4": "Rysuj kształty i udostępniaj informacje taktyczne", - "@wizardMapFeature4": { - "description": "Wizard map feature 4" - }, "viewWelcomeTutorial": "Pokaż samouczek powitalny", "@viewWelcomeTutorial": { "description": "Settings option to re-show welcome wizard" @@ -2352,29 +2117,10 @@ "posttxDelay": "Opóźnienie po nadawaniu", "bandpass": "Pasmowy", "bandpassFilterVoice": "Filtr pasmowy głosu", - "frequency": "Częstotliwość", - "australia": "Australia", - "australiaNarrow": "Australia (wąski)", - "australiaQld": "Australia: QLD", - "australiaSaWa": "Australia: SA, WA", - "newZealand": "Nowa Zelandia", - "newZealandNarrow": "Nowa Zelandia (wąski)", - "switzerland": "Szwajcaria", - "portugal433": "Portugalia 433", - "portugal868": "Portugalia 868", - "czechRepublicNarrow": "Czechy (wąski)", - "eu433mhzLongRange": "EU 433MHz (daleki zasięg)", - "euukDeprecated": "EU/UK (przestarzały)", - "euukNarrow": "EU/UK (wąski)", - "usacanadaRecommended": "USA/Kanada (zalecany)", - "vietnamDeprecated": "Wietnam (przestarzały)", - "vietnamNarrow": "Wietnam (wąski)", "active": "Aktywny", "addContact": "Dodaj kontakt", "all": "Wszystko", - "autoResolve": "Automatyczne rozwiązanie", "clearAllLabel": "Wyczyść wszystko", - "clearRelays": "Wyczyść przekaźniki", "clearFilters": "Wyczyść filtry", "clearRoute": "Wyczyść trasę", "clearMessages": "Wyczyść wiadomości", @@ -2400,10 +2146,7 @@ "send": "Wyślij", "sendAnyway": "Wyślij mimo to", "share": "Udostępnij", - "shareContact": "Udostępnij kontakt", "trace": "Śledzenie", - "use": "Użyj", - "useSelectedFrequency": "Użyj wybranej częstotliwości", "discovery": "Wykrywanie", "discoverRepeaters": "Wykryj przekaźniki", "discoverSensors": "Wykryj czujniki", @@ -2426,7 +2169,6 @@ "gpsModule": "Moduł GPS", "liveTraffic": "Ruch na żywo", "repeatersMap": "Mapa przekaźników", - "spectrumScan": "Skanowanie spektrum", "blePacketLogs": "Logi pakietów BLE", "onlineTraceDatabase": "Baza śladów", "routePathByteSize": "Rozmiar ścieżki w bajtach", @@ -2438,7 +2180,6 @@ "disableContacts": "Wyłącz kontakty", "enableSensorsTab": "Włącz kartę Czujniki", "enableProfiles": "Włącz profile", - "autoRouteRotation": "Automatyczna rotacja trasy", "nearestRepeaterFallback": "Najbliższy przekaźnik awaryjny", "deleteAllStoredMessageHistory": "Usuń całą historię wiadomości", "messageFontSize": "Rozmiar czcionki wiadomości", @@ -2446,18 +2187,13 @@ "showMapDebugInfo": "Pokaż info debugowania mapy", "openMapInFullscreen": "Otwórz mapę na pełnym ekranie", "showSarMarkersLabel": "Pokaż znaczniki SAR", - "displaySarMarkersOnTheMainMap": "Wyświetlaj znaczniki SAR na głównej mapie", - "showAllContactTrailsLabel": "Pokaż wszystkie ślady kontaktów", "hideRepeatersOnMap": "Ukryj przekaźniki na mapie", "setMapScale": "Ustaw skalę mapy", "customMapScaleSaved": "Niestandardowa skala mapy zapisana", "voiceBitrate": "Bitrate głosu", "voiceCompressor": "Kompresor głosu", - "balancesQuietAndLoudSpeechLevels": "Wyrównuje ciche i głośne poziomy mowy", "voiceLimiter": "Limiter głosu", - "preventsClippingPeaksBeforeEncoding": "Zapobiega przycinaniu szczytów przed kodowaniem", "micAutoGain": "Automatyczne wzmocnienie mikrofonu", - "letsTheRecorderAdjustInputLevel": "Pozwala nagrywarkowi dostosować poziom wejścia", "echoCancellation": "Usuwanie echa", "noiseSuppression": "Tłumienie szumu", "trimSilenceInVoiceMessages": "Przytnij ciszę w wiadomościach głosowych", @@ -2499,13 +2235,10 @@ "staging": "Punkt zbiórki", "object": "Obiekt", "quiet": "Cicho", - "moderate": "Umiarkowane", "busy": "Zajęty", - "spectrumScanReturnedNoCandidateFrequencies": "Skanowanie spektrum nie znalazło częstotliwości kandydatów", "searchMessages": "Szukaj wiadomości", "sendImageFromGallery": "Wyślij obraz z galerii", "takePhoto": "Zrób zdjęcie", - "dmOnly": "Tylko wiadomość bezpośrednia", "allMessages": "Wszystkie wiadomości", "sendToPublicChannel": "Wysłać na kanał publiczny?", "selectMarkerTypeAndDestination": "Wybierz typ znacznika i cel", @@ -2524,8 +2257,6 @@ "wipeDevice": "Wyczyść urządzenie", "destructiveDeviceActions": "Destrukcyjne akcje na urządzeniu.", "chooseAPresetOrFinetuneCustomRadioSettings": "Wybierz ustawienie wstępne lub dostosuj ustawienia radia.", - "chooseTheNameAndLocationThisDeviceShares": "Wybierz nazwę i lokalizację udostępnianą przez to urządzenie.", - "availableSpaceOnThisDevice": "Dostępne miejsce na tym urządzeniu.", "used": "Użyto", "total": "Razem", "renameValue": "Zmień nazwę wartości", @@ -2543,8 +2274,6 @@ "onlineOnly": "Tylko online", "inBoth": "W obu", "source": "Źródło", - "manualRouteEdit": "Ręczna edycja trasy", - "observedMeshRoute": "Obserwowana trasa sieci", "allMessagesCleared": "Wszystkie wiadomości wyczyszczone", "onlineTraceDatabaseCleared": "Baza śladów wyczyszczona", "packetLogsCleared": "Logi pakietów wyczyszczone", @@ -2575,5 +2304,194 @@ "captured": "Przechwycone", "size": "Rozmiar", "noCustomChannelsToClear": "Brak niestandardowych kanałów do wyczyszczenia.", - "noDeviceContactsToClear": "Brak kontaktów urządzenia do wyczyszczenia." + "noDeviceContactsToClear": "Brak kontaktów urządzenia do wyczyszczenia.", + "autoSend": "Automatyczne wysyłanie", + "autoSendDescription": "Wyślij bieżącą trasą.", + "sendDirect": "Wysyłanie bezpośrednie", + "sendDirectDescription": "Wyślij bezpośrednio do tego kontaktu.", + "sendFlood": "Wysyłanie zalewowe", + "sendFloodDescription": "Wyślij przez wszystkie przekaźniki.", + "postConnectDiscoveryTitle": "Odkryć przekaźniki teraz?", + "postConnectDiscoveryDescription": "Uruchom odkrywanie przekaźników zaraz po połączeniu, aby zobaczyć pobliskie węzły MeshCore i szybciej dodać je do sieci.", + "aToZ": "A-Z", + "add": "Dodaj", + "addAdditionalDetails": "Dodaj dodatkowe szczegóły", + "addPeer": "Dodaj węzeł", + "addPeerManually": "Dodaj węzeł ręcznie", + "addedToContacts": "{name} dodano do kontaktów", + "addedToSensors": "{name} dodano do czujników", + "allowAll": "Zezwól na wszystko", + "anonymousRxStats": "Anonimowe statystyki RX", + "appearance": "Wygląd", + "ascii": "ASCII", + "baseTelemetry": "Telemetria bazowa", + "blePin": "PIN BLE", + "buzzerAlerts": "Alerty brzęczyka", + "cancelImageReceive": "Anuluj odbieranie obrazu", + "choose": "Wybierz", + "chooseWhichTabsAndContactSectionsToShow": "Wybierz, które zakładki i sekcje kontaktów mają być widoczne", + "clearCache": "Wyczyść pamięć podręczną", + "clearHistory": "Wyczyść historię", + "clearLiveView": "Wyczyść widok na żywo", + "clearLogs": "Wyczyść logi", + "clearOfflineCache": "Wyczyścić pamięć podręczną offline?", + "clearOverlay": "Wyczyść nakładkę", + "clearRouteOnlyAfterAllRetriesFail": "Wyczyść trasę dopiero po wyczerpaniu wszystkich prób", + "codecBitrateAndAudioProcessing": "Kodek, bitrate i przetwarzanie dźwięku", + "connectByIpAddress": "Połącz przez adres IP", + "controlWhichAlertsYouReceive": "Kontroluj, które alerty otrzymujesz", + "copyFullHex": "Kopiuj pełny Hex", + "copyRawResponse": "Kopiuj surową odpowiedź", + "couldNotLoadMetHistory": "Nie udało się wczytać historii MET", + "customizeSensor": "Dostosuj {name}", + "data": "Dane", + "deleteGroup": "Usuń grupę", + "deleteStyleConfirm": "Usunąć {name}?", + "deleteThisDrawing": "Usunąć ten {type}?", + "deny": "Odmów", + "deviceInfo": "Informacje o urządzeniu", + "deviceSettings": "Ustawienia urządzenia", + "deviceTimeSynced": "Czas urządzenia zsynchronizowany z tym telefonem.", + "disableFastGpsPublishing": "Wyłącz szybkie publikowanie GPS", + "displayMarkersAndTraceDatabase": "Wyświetlanie, znaczniki i baza danych tras", + "download": "Pobierz", + "environmentalTelemetry": "Telemetria środowiskowa", + "errorCheckingForUpdates": "Błąd sprawdzania aktualizacji: {error}", + "errorGeneric": "Błąd: {error}", + "errorOpeningDownload": "Błąd otwierania pobranego pliku: {error}", + "exportLogs": "Eksportuj logi", + "extraAggressiveAvifCompression": "Bardzo agresywna kompresja AVIF", + "failedToAddContact": "Nie udało się dodać kontaktu: {error}", + "failedToAddName": "Nie udało się dodać {name}: {error}", + "failedToClearChannels": "Nie udało się wyczyścić kanałów: {error}", + "failedToClearContacts": "Nie udało się wyczyścić kontaktów: {error}", + "failedToConnectViaSerial": "Nie udało się połączyć przez port szeregowy", + "failedToLoadPreviewImage": "Nie udało się wczytać podglądu obrazu: {error}", + "failedToLoadTrace": "Nie udało się wczytać trasy: {error}", + "failedToSendSarMarker": "Nie udało się wysłać znacznika SAR: {error}", + "failedToSetBuzzerMode": "Nie udało się ustawić trybu brzęczyka: {error}", + "failedToSetGpsMode": "Nie udało się ustawić trybu GPS: {error}", + "failedToSyncDeviceTime": "Nie udało się zsynchronizować czasu urządzenia: {error}", + "failedToWipeDeviceData": "Nie udało się wymazać danych urządzenia: {error}", + "fastGpsTargetChannel": "Docelowy kanał szybkiego GPS", + "fastUpdatesThresholdsAndPermissions": "Szybkie aktualizacje, progi i uprawnienia", + "fetchingCatalog": "Pobieranie katalogu...", + "fifteenMinutes": "15 minut", + "fifteenSeconds": "15 sekund", + "filterByDirection": "Filtruj według kierunku", + "finish": "Zakończ", + "fiveMinutes": "5 minut", + "fiveSeconds": "5 sekund", + "fix": "Napraw", + "gps": "GPS", + "gpsAdvertPolicy": "Zasady rozgłaszania GPS", + "gpsAndLocation": "GPS i lokalizacja", + "gpsDiagnostics": "Diagnostyka GPS", + "gpsSection": "GPS", + "help": "Pomoc", + "hex": "Hex", + "hidden": "Ukryte", + "howTheRadioAutoAddsDiscoveredNodes": "Jak radio automatycznie dodaje odkryte węzły.", + "images": "Obrazy", + "importProfile": "Importuj profil", + "lastFix": "Ostatni fix", + "latest": "Najnowsze", + "latitude": "Szerokość geograficzna", + "loadASavedRegion": "Wczytaj zapisany region", + "loading": "Ładowanie", + "locationSharingHardwareAndUpdateInterval": "Udostępnianie lokalizacji, sprzęt i interwał aktualizacji.", + "locationTelemetry": "Telemetria lokalizacji", + "lockDestination": "Zablokuj cel", + "longitude": "Długość geograficzna", + "mapStyle": "Styl mapy", + "max": "Maks.", + "maxZoom": "Maks. przybliżenie", + "messaging": "Wiadomości", + "metHistory": "Historia MET", + "min": "Min.", + "minZoom": "Min. przybliżenie", + "moveDown": "Przesuń w dół", + "moveUp": "Przesuń w górę", + "multiAckMode": "Tryb multi-ACK", + "multiDeviceWorkspaceManagement": "Zarządzanie przestrzenią roboczą wielu urządzeń", + "myLocation": "Moja lokalizacja", + "nameAndTelemetryShared": "Nazwa i telemetria udostępniana innym urządzeniom.", + "newVersionAvailable": "Nowa wersja: {version}", + "newer": "Nowsze", + "noNeighboursFound": "Nie znaleziono sąsiadów", + "noServersFound": "Nie znaleziono serwerów", + "notSet": "Nie ustawiono", + "notifications": "Powiadomienia", + "offZeroSeconds": "Wył. (0 s)", + "offlineMaps": "Mapy offline", + "older": "Starsze", + "oneByteMode0": "1 bajt (tryb 0)", + "oneHour": "1 godzina", + "oneMinute": "1 minuta", + "openPacketLogs": "Otwórz logi pakietów", + "packetTypeHelp": "Pomoc typów pakietów", + "pasteShareLinkOrHexAdvert": "Wklej link udostępniania lub ogłoszenie Hex", + "pathHash": "Hash ścieżki", + "pathSize": "Rozmiar ścieżki", + "ping": "Ping", + "polygon": "Wielokąt", + "rawResponseCopied": "Skopiowano surową odpowiedź", + "resendThroughNearestRepeaterOnFailure": "Ponów wysyłkę przez najbliższy przekaźnik po niepowodzeniu", + "resolveContact": "Rozwiąż kontakt", + "routingRetriesAndDestinationLock": "Routing, ponawianie i blokada celu", + "samples": "Próbki", + "satellites": "Satelity", + "saving": "Zapisywanie...", + "search": "Szukaj", + "searchByNameOrToken": "Szukaj po nazwie lub tokenie", + "searchDiscoveredNodes": "Szukaj odkrytych węzłów", + "searchInCurrentFilter": "Szukaj w bieżącym filtrze", + "searchLogs": "Szukaj w logach...", + "searchSensors": "Szukaj czujników", + "searchThisSection": "Szukaj w tej sekcji", + "selectedRelays": "Wybrane przekaźniki", + "sensor": "Czujnik", + "serialError": "Błąd portu szeregowego: {error}", + "setPathForContact": "Ustaw ścieżkę dla {name}", + "shareLiveGps": "Udostępnij GPS na żywo", + "shareMyTiles": "Udostępnij moje kafelki", + "sharingLocationFromPhone": "Udostępnianie lokalizacji na tym kanale z telefonu.", + "sharingLocationFromRadio": "Udostępnianie lokalizacji na tym kanale z radia.", + "signalDbm": "Sygnał {rssi} dBm", + "sizeCompressionAndPreview": "Rozmiar, kompresja i podgląd", + "skip": "Pomiń", + "smallerFileSize": "Mniejszy rozmiar pliku", + "sort": "Sortuj", + "stoppedSharingLocation": "Zatrzymano udostępnianie lokalizacji na tym kanale.", + "suppressNotificationsWhileInForeground": "Wycisz powiadomienia, gdy aplikacja jest na pierwszym planie", + "tabsAndNavigation": "Zakładki i nawigacja", + "templatesAndTutorials": "Szablony i samouczki", + "tenMinutes": "10 minut", + "tenSeconds": "10 sekund", + "testSendUpdate": "Testowe wysłanie aktualizacji", + "themeLanguageAndDisplayPreferences": "Motyw, język i preferencje wyświetlania", + "thirtyMinutes": "30 minut", + "thirtySeconds": "30 sekund", + "threeBytesMode2": "3 bajty (tryb 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Statystyki ruchu, historia wiadomości i narzędzia deweloperskie", + "twoBytesMode1": "2 bajty (tryb 1)", + "twoMinutes": "2 minuty", + "undo": "Cofnij", + "updated": "Zaktualizowano", + "useContactFlags": "Używaj flag kontaktów", + "useSavedCoordinates": "Użyj zapisanych współrzędnych", + "view": "Widok", + "viewNeighbours": "Pokaż sąsiadów", + "viewPublicStats": "Pokaż publiczne statystyki", + "setRegionScope": "Ustaw zakres regionu", + "regionScope": "Zakres regionu", + "regionScopeNone": "Brak (globalny)", + "clearRegionScope": "Wyczyść zakres", + "regionScopeWarning": "Tylko przekaźniki zezwalające na ten region będą przekazywać.", + "discoverRegions": "Odkryj z przekaźników", + "discoveringRegions": "Odkrywanie regionów...", + "enterRegionName": "Nazwa regionu (np. auckland)", + "noRegionsFound": "Nie znaleziono regionów na tym przekaźniku.", + "regionScopeSet": "Zakres regionu ustawiony na {name}", + "regionScopeCleared": "Zakres regionu wyczyszczony" } diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index eddf6c3..a4ac9ab 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "Button to restart BLE scanning" }, - "tapToConnect": "Toque para conectar", - "@tapToConnect": { - "description": "Subtitle text for device in scan list" - }, "deviceNotConnected": "Dispositivo não conectado", "@deviceNotConnected": { "description": "Error message when device is not connected" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "Setting to show RX/TX indicators" }, - "displayPacketActivity": "Exibir indicadores de atividade de pacotes na barra superior", - "@displayPacketActivity": { - "description": "Description for RX/TX indicators setting" - }, "disableMap": "Desativar mapa", "@disableMap": { "description": "Setting to disable the map tab" }, - "disableMapDescription": "Ocultar a aba de mapa para reduzir o uso de bateria", - "@disableMapDescription": { - "description": "Description for disable map setting" - }, "language": "Idioma", "@language": { "description": "Language setting label" @@ -173,10 +161,6 @@ "@appVersion": { "description": "App version label" }, - "appName": "Nome do app", - "@appName": { - "description": "App name label" - }, "aboutMeshCoreSar": "Sobre o MeshCore SAR", "@aboutMeshCoreSar": { "description": "About dialog title" @@ -308,10 +292,6 @@ "@resetPath": { "description": "Action to reset contact path for re-routing" }, - "publicKeyCopied": "Chave pública copiada para a área de transferência", - "@publicKeyCopied": { - "description": "Success message when public key is copied" - }, "copiedToClipboard": "{label} copiado para a área de transferência", "@copiedToClipboard": { "description": "Success message when a value is copied to clipboard", @@ -720,22 +700,6 @@ "@lastSeen": { "description": "Last seen label" }, - "roomStatus": "Status da sala", - "@roomStatus": { - "description": "Room status section header" - }, - "loginStatus": "Status do login", - "@loginStatus": { - "description": "Login status label" - }, - "notLoggedIn": "Não conectado", - "@notLoggedIn": { - "description": "Not logged in status" - }, - "adminAccess": "Acesso de administrador", - "@adminAccess": { - "description": "Admin access label" - }, "yes": "Sim", "@yes": { "description": "Yes answer" @@ -748,14 +712,6 @@ "@permissions": { "description": "Permissions label" }, - "passwordSaved": "Senha salva", - "@passwordSaved": { - "description": "Password saved label" - }, - "locationColon": "Localização:", - "@locationColon": { - "description": "Location section header" - }, "telemetry": "Telemetria", "@telemetry": { "description": "Telemetry section header" @@ -784,19 +740,6 @@ "@gpsTelemetry": { "description": "GPS from telemetry label" }, - "updated": "Atualizado", - "@updated": { - "description": "Updated timestamp label" - }, - "pathResetInfo": "Rota redefinida para {name}. A próxima mensagem encontrará um novo caminho.", - "@pathResetInfo": { - "description": "Info message after path reset", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "Entrar novamente na sala", "@reLoginToRoom": { "description": "Button to re-login to room" @@ -1158,10 +1101,6 @@ "@frequencyMHz": { "description": "Label for radio frequency field" }, - "frequencyExample": "ex.: 869.618", - "@frequencyExample": { - "description": "Helper text example for frequency" - }, "bandwidth": "Largura de banda", "@bandwidth": { "description": "Label for bandwidth dropdown" @@ -1265,47 +1204,6 @@ "@trailControls": { "description": "Trail controls tooltip" }, - "contactTrails": "Trilhas dos contatos", - "@contactTrails": { - "description": "Contact trails section header" - }, - "showAllContactTrails": "Mostrar todas as trilhas dos contatos", - "@showAllContactTrails": { - "description": "Toggle label to show all contact trails" - }, - "noContactsWithLocationHistory": "Nenhum contato com histórico de localização", - "@noContactsWithLocationHistory": { - "description": "Subtitle when no contacts have trails" - }, - "showingTrailsForContacts": "Mostrando trilhas de {count} contatos", - "@showingTrailsForContacts": { - "description": "Subtitle showing number of contacts with trails", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "Trilhas individuais dos contatos", - "@individualContactTrails": { - "description": "Expansion tile title for individual contact trails" - }, - "deviceInformation": "Informações do dispositivo", - "@deviceInformation": { - "description": "Device information section header" - }, - "bleName": "Nome BLE", - "@bleName": { - "description": "Bluetooth Low Energy device name label" - }, - "meshName": "Nome da mesh", - "@meshName": { - "description": "Mesh network name label" - }, - "notSet": "Não definido", - "@notSet": { - "description": "Label when a value is not set" - }, "model": "Modelo", "@model": { "description": "Device model label" @@ -1314,14 +1212,6 @@ "@version": { "description": "Version label" }, - "buildDate": "Data de build", - "@buildDate": { - "description": "Firmware build date label" - }, - "firmware": "Firmware", - "@firmware": { - "description": "Firmware label" - }, "maxContacts": "Máx. de contatos", "@maxContacts": { "description": "Maximum contacts capacity label" @@ -1334,26 +1224,6 @@ "@publicInfo": { "description": "Public information section header" }, - "meshNetworkName": "Nome da rede mesh", - "@meshNetworkName": { - "description": "Mesh network name field label" - }, - "nameBroadcastInMesh": "Nome transmitido nos anúncios mesh", - "@nameBroadcastInMesh": { - "description": "Helper text for mesh network name field" - }, - "telemetryAndLocationSharing": "Telemetria e compartilhamento de localização", - "@telemetryAndLocationSharing": { - "description": "Telemetry and location sharing toggle label" - }, - "lat": "Lat.", - "@lat": { - "description": "Latitude field label (short form)" - }, - "lon": "Lon.", - "@lon": { - "description": "Longitude field label (short form)" - }, "useCurrentLocation": "Usar localização atual", "@useCurrentLocation": { "description": "Tooltip for use current location button" @@ -1383,15 +1253,6 @@ } } }, - "copiedToClipboardShort": "{label} copiado para a área de transferência", - "@copiedToClipboardShort": { - "description": "Short success message when copying to clipboard", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "Falha ao salvar: {error}", "@failedToSave": { "description": "Generic error message for save failures", @@ -1414,10 +1275,6 @@ "@sarTemplates": { "description": "SAR templates menu title" }, - "manageSarTemplates": "Gerenciar modelos SAR", - "@manageSarTemplates": { - "description": "Subtitle for SAR templates settings" - }, "addTemplate": "Adicionar modelo", "@addTemplate": { "description": "Button to add new SAR template" @@ -1541,10 +1398,6 @@ "@ok": { "description": "OK button label" }, - "permissionsSection": "Permissões", - "@permissionsSection": { - "description": "Permissions section header" - }, "locationPermission": "Permissão de localização", "@locationPermission": { "description": "Location permission label" @@ -2109,94 +1962,6 @@ "@wizardWelcomeTitle": { "description": "Welcome wizard first page title" }, - "wizardWelcomeDescription": "Uma poderosa ferramenta de comunicação off-grid para operações de busca e resgate. Conecte-se com sua equipe usando tecnologia de rádio mesh quando as redes tradicionais não estiverem disponíveis.", - "@wizardWelcomeDescription": { - "description": "Welcome wizard first page description" - }, - "wizardConnectingTitle": "Conectando ao seu rádio", - "@wizardConnectingTitle": { - "description": "Wizard connecting page title" - }, - "wizardConnectingDescription": "Conecte seu smartphone a um dispositivo de rádio MeshCore via Bluetooth para começar a se comunicar off-grid.", - "@wizardConnectingDescription": { - "description": "Wizard connecting page description" - }, - "wizardConnectingFeature1": "Procure dispositivos MeshCore próximos", - "@wizardConnectingFeature1": { - "description": "Wizard connecting feature 1" - }, - "wizardConnectingFeature2": "Emparelhe com seu rádio via Bluetooth", - "@wizardConnectingFeature2": { - "description": "Wizard connecting feature 2" - }, - "wizardConnectingFeature3": "Funciona totalmente offline - internet não é necessária", - "@wizardConnectingFeature3": { - "description": "Wizard connecting feature 3" - }, - "wizardChannelTitle": "Canais", - "@wizardChannelTitle": { - "description": "Wizard channel page title" - }, - "wizardChannelDescription": "Transmita mensagens para todos em um canal, ideal para anúncios e coordenação de toda a equipe.", - "@wizardChannelDescription": { - "description": "Wizard channel page description" - }, - "wizardChannelFeature1": "Canal público para comunicação geral da equipe", - "@wizardChannelFeature1": { - "description": "Wizard channel feature 1" - }, - "wizardChannelFeature2": "Crie canais personalizados para grupos específicos", - "@wizardChannelFeature2": { - "description": "Wizard channel feature 2" - }, - "wizardChannelFeature3": "As mensagens são retransmitidas automaticamente pela malha", - "@wizardChannelFeature3": { - "description": "Wizard channel feature 3" - }, - "wizardContactsTitle": "Contatos", - "@wizardContactsTitle": { - "description": "Wizard contacts page title" - }, - "wizardContactsDescription": "Os membros da sua equipe aparecem automaticamente à medida que entram na rede mesh. Envie mensagens diretas ou veja a localização deles.", - "@wizardContactsDescription": { - "description": "Wizard contacts page description" - }, - "wizardContactsFeature1": "Contatos descobertos automaticamente", - "@wizardContactsFeature1": { - "description": "Wizard contacts feature 1" - }, - "wizardContactsFeature2": "Envie mensagens diretas privadas", - "@wizardContactsFeature2": { - "description": "Wizard contacts feature 2" - }, - "wizardContactsFeature3": "Veja o nível de bateria e o horário da última visualização", - "@wizardContactsFeature3": { - "description": "Wizard contacts feature 3" - }, - "wizardMapTitle": "Mapa e localização", - "@wizardMapTitle": { - "description": "Wizard map page title" - }, - "wizardMapDescription": "Acompanhe sua equipe em tempo real e marque locais importantes para operações de busca e resgate.", - "@wizardMapDescription": { - "description": "Wizard map page description" - }, - "wizardMapFeature1": "Marcadores SAR para pessoas encontradas, incêndios e áreas de apoio", - "@wizardMapFeature1": { - "description": "Wizard map feature 1" - }, - "wizardMapFeature2": "Rastreamento GPS em tempo real dos membros da equipe", - "@wizardMapFeature2": { - "description": "Wizard map feature 2" - }, - "wizardMapFeature3": "Baixe mapas offline para áreas remotas", - "@wizardMapFeature3": { - "description": "Wizard map feature 3" - }, - "wizardMapFeature4": "Desenhe formas e compartilhe informações táticas", - "@wizardMapFeature4": { - "description": "Wizard map feature 4" - }, "viewWelcomeTutorial": "Ver tutorial de boas-vindas", "@viewWelcomeTutorial": { "description": "Settings option to re-show welcome wizard" @@ -2352,29 +2117,10 @@ "posttxDelay": "Atraso pós-tx", "bandpass": "Passa-banda", "bandpassFilterVoice": "Filtro passa-banda de voz", - "frequency": "Frequência", - "australia": "Austrália", - "australiaNarrow": "Austrália (Estreito)", - "australiaQld": "Austrália: QLD", - "australiaSaWa": "Austrália: SA, WA", - "newZealand": "Nova Zelândia", - "newZealandNarrow": "Nova Zelândia (Estreito)", - "switzerland": "Suíça", - "portugal433": "Portugal 433", - "portugal868": "Portugal 868", - "czechRepublicNarrow": "República Checa (Estreito)", - "eu433mhzLongRange": "UE 433MHz (Longo Alcance)", - "euukDeprecated": "UE/RU (Obsoleto)", - "euukNarrow": "UE/RU (Estreito)", - "usacanadaRecommended": "EUA/Canadá (Recomendado)", - "vietnamDeprecated": "Vietname (Obsoleto)", - "vietnamNarrow": "Vietname (Estreito)", "active": "Ativo", "addContact": "Adicionar contacto", "all": "Tudo", - "autoResolve": "Resolver automaticamente", "clearAllLabel": "Limpar tudo", - "clearRelays": "Limpar relays", "clearFilters": "Limpar filtros", "clearRoute": "Limpar rota", "clearMessages": "Limpar mensagens", @@ -2400,10 +2146,7 @@ "send": "Enviar", "sendAnyway": "Enviar mesmo assim", "share": "Partilhar", - "shareContact": "Partilhar contacto", "trace": "Rastreio", - "use": "Usar", - "useSelectedFrequency": "Usar frequência selecionada", "discovery": "Descoberta", "discoverRepeaters": "Descobrir repetidores", "discoverSensors": "Descobrir sensores", @@ -2426,7 +2169,6 @@ "gpsModule": "Módulo GPS", "liveTraffic": "Tráfego ao vivo", "repeatersMap": "Mapa de repetidores", - "spectrumScan": "Varredura de espectro", "blePacketLogs": "Registos de pacotes BLE", "onlineTraceDatabase": "Base de dados de rastreio", "routePathByteSize": "Tamanho do caminho em bytes", @@ -2438,7 +2180,6 @@ "disableContacts": "Desativar contactos", "enableSensorsTab": "Ativar separador Sensores", "enableProfiles": "Ativar perfis", - "autoRouteRotation": "Rotação automática de rota", "nearestRepeaterFallback": "Repetidor mais próximo como reserva", "deleteAllStoredMessageHistory": "Apagar todo o histórico de mensagens", "messageFontSize": "Tamanho da fonte de mensagens", @@ -2446,18 +2187,13 @@ "showMapDebugInfo": "Mostrar info de depuração do mapa", "openMapInFullscreen": "Abrir mapa em ecrã inteiro", "showSarMarkersLabel": "Mostrar marcadores SAR", - "displaySarMarkersOnTheMainMap": "Mostrar marcadores SAR no mapa principal", - "showAllContactTrailsLabel": "Mostrar todos os rastos de contactos", "hideRepeatersOnMap": "Ocultar repetidores no mapa", "setMapScale": "Definir escala do mapa", "customMapScaleSaved": "Escala de mapa personalizada guardada", "voiceBitrate": "Taxa de bits de voz", "voiceCompressor": "Compressor de voz", - "balancesQuietAndLoudSpeechLevels": "Equilibra níveis de fala suaves e altos", "voiceLimiter": "Limitador de voz", - "preventsClippingPeaksBeforeEncoding": "Previne corte de picos antes da codificação", "micAutoGain": "Ganho automático do microfone", - "letsTheRecorderAdjustInputLevel": "Permite ao gravador ajustar o nível de entrada", "echoCancellation": "Cancelamento de eco", "noiseSuppression": "Supressão de ruído", "trimSilenceInVoiceMessages": "Cortar silêncio em mensagens de voz", @@ -2499,13 +2235,10 @@ "staging": "Área de reunião", "object": "Objeto", "quiet": "Silencioso", - "moderate": "Moderado", "busy": "Ocupado", - "spectrumScanReturnedNoCandidateFrequencies": "A varredura de espectro não encontrou frequências candidatas", "searchMessages": "Pesquisar mensagens", "sendImageFromGallery": "Enviar imagem da galeria", "takePhoto": "Tirar foto", - "dmOnly": "Apenas mensagem direta", "allMessages": "Todas as mensagens", "sendToPublicChannel": "Enviar para o canal público?", "selectMarkerTypeAndDestination": "Selecione tipo de marcador e destino", @@ -2524,8 +2257,6 @@ "wipeDevice": "Apagar dispositivo", "destructiveDeviceActions": "Ações destrutivas do dispositivo.", "chooseAPresetOrFinetuneCustomRadioSettings": "Escolha uma predefinição ou ajuste as definições de rádio.", - "chooseTheNameAndLocationThisDeviceShares": "Escolha o nome e a localização que este dispositivo partilha.", - "availableSpaceOnThisDevice": "Espaço disponível neste dispositivo.", "used": "Usado", "total": "Total", "renameValue": "Renomear valor", @@ -2543,8 +2274,6 @@ "onlineOnly": "Apenas online", "inBoth": "Em ambos", "source": "Fonte", - "manualRouteEdit": "Edição manual de rota", - "observedMeshRoute": "Rota mesh observada", "allMessagesCleared": "Todas as mensagens limpas", "onlineTraceDatabaseCleared": "Base de dados de rastreio limpa", "packetLogsCleared": "Registos de pacotes limpos", @@ -2575,5 +2304,194 @@ "captured": "Capturado", "size": "Tamanho", "noCustomChannelsToClear": "Sem canais personalizados para limpar.", - "noDeviceContactsToClear": "Sem contactos do dispositivo para limpar." + "noDeviceContactsToClear": "Sem contactos do dispositivo para limpar.", + "autoSend": "Envio automático", + "autoSendDescription": "Enviar pela rota atual.", + "sendDirect": "Envio direto", + "sendDirectDescription": "Enviar diretamente a este contacto.", + "sendFlood": "Envio por inundação", + "sendFloodDescription": "Enviar por todos os repetidores.", + "postConnectDiscoveryTitle": "Descobrir repetidores agora?", + "postConnectDiscoveryDescription": "Execute a descoberta de repetidores logo após a conexão para ver os nós MeshCore próximos e adicioná-los à sua rede mais rapidamente.", + "aToZ": "A-Z", + "add": "Adicionar", + "addAdditionalDetails": "Adicionar detalhes adicionais", + "addPeer": "Adicionar par", + "addPeerManually": "Adicionar par manualmente", + "addedToContacts": "{name} adicionado aos contatos", + "addedToSensors": "{name} adicionado aos Sensores", + "allowAll": "Permitir todos", + "anonymousRxStats": "Estatísticas RX anónimas", + "appearance": "Aparência", + "ascii": "ASCII", + "baseTelemetry": "Telemetria base", + "blePin": "PIN BLE", + "buzzerAlerts": "Alertas sonoros", + "cancelImageReceive": "Cancelar receção de imagem", + "choose": "Escolher", + "chooseWhichTabsAndContactSectionsToShow": "Escolher quais separadores e secções de contatos mostrar", + "clearCache": "Limpar cache", + "clearHistory": "Limpar histórico", + "clearLiveView": "Limpar vista ao vivo", + "clearLogs": "Limpar registos", + "clearOfflineCache": "Limpar cache offline?", + "clearOverlay": "Limpar sobreposição", + "clearRouteOnlyAfterAllRetriesFail": "Limpar rota apenas após todas as tentativas falharem", + "codecBitrateAndAudioProcessing": "Codec, bitrate e processamento de áudio", + "connectByIpAddress": "Conectar por endereço IP", + "controlWhichAlertsYouReceive": "Controlar quais alertas recebe", + "copyFullHex": "Copiar hex completo", + "copyRawResponse": "Copiar resposta bruta", + "couldNotLoadMetHistory": "Não foi possível carregar o histórico MET", + "customizeSensor": "Personalizar {name}", + "data": "Dados", + "deleteGroup": "Eliminar grupo", + "deleteStyleConfirm": "Eliminar {name}?", + "deleteThisDrawing": "Eliminar este {type}?", + "deny": "Negar", + "deviceInfo": "Informações do dispositivo", + "deviceSettings": "Definições do dispositivo", + "deviceTimeSynced": "Hora do dispositivo sincronizada com este telemóvel.", + "disableFastGpsPublishing": "Desativar publicação rápida de GPS", + "displayMarkersAndTraceDatabase": "Ecrã, marcadores e base de dados de percursos", + "download": "Transferir", + "environmentalTelemetry": "Telemetria ambiental", + "errorCheckingForUpdates": "Erro ao verificar atualizações: {error}", + "errorGeneric": "Erro: {error}", + "errorOpeningDownload": "Erro ao abrir transferência: {error}", + "exportLogs": "Exportar registos", + "extraAggressiveAvifCompression": "Compressão AVIF extra-agressiva", + "failedToAddContact": "Falha ao adicionar contato: {error}", + "failedToAddName": "Falha ao adicionar {name}: {error}", + "failedToClearChannels": "Falha ao limpar canais: {error}", + "failedToClearContacts": "Falha ao limpar contatos: {error}", + "failedToConnectViaSerial": "Falha ao conectar via série", + "failedToLoadPreviewImage": "Falha ao carregar imagem de pré-visualização: {error}", + "failedToLoadTrace": "Falha ao carregar percurso: {error}", + "failedToSendSarMarker": "Falha ao enviar marcador SAR: {error}", + "failedToSetBuzzerMode": "Falha ao definir modo de alarme: {error}", + "failedToSetGpsMode": "Falha ao definir modo GPS: {error}", + "failedToSyncDeviceTime": "Falha ao sincronizar hora do dispositivo: {error}", + "failedToWipeDeviceData": "Falha ao apagar dados do dispositivo: {error}", + "fastGpsTargetChannel": "Canal alvo de GPS rápido", + "fastUpdatesThresholdsAndPermissions": "Atualizações rápidas, limiares e permissões", + "fetchingCatalog": "A obter catálogo...", + "fifteenMinutes": "15 minutos", + "fifteenSeconds": "15 segundos", + "filterByDirection": "Filtrar por direção", + "finish": "Concluir", + "fiveMinutes": "5 minutos", + "fiveSeconds": "5 segundos", + "fix": "Correção", + "gps": "GPS", + "gpsAdvertPolicy": "Política de anúncio GPS", + "gpsAndLocation": "GPS e Localização", + "gpsDiagnostics": "Diagnósticos GPS", + "gpsSection": "GPS", + "help": "Ajuda", + "hex": "Hex", + "hidden": "Oculto", + "howTheRadioAutoAddsDiscoveredNodes": "Como o rádio adiciona automaticamente nós descobertos.", + "images": "Imagens", + "importProfile": "Importar perfil", + "lastFix": "Última correção", + "latest": "Mais recente", + "latitude": "Latitude", + "loadASavedRegion": "Carregar uma região guardada", + "loading": "A carregar", + "locationSharingHardwareAndUpdateInterval": "Partilha de localização, hardware e intervalo de atualização.", + "locationTelemetry": "Telemetria de localização", + "lockDestination": "Bloquear destino", + "longitude": "Longitude", + "mapStyle": "Estilo do mapa", + "max": "Máx", + "maxZoom": "Zoom máximo", + "messaging": "Mensagens", + "metHistory": "Histórico MET", + "min": "Mín", + "minZoom": "Zoom mínimo", + "moveDown": "Mover para baixo", + "moveUp": "Mover para cima", + "multiAckMode": "Modo multi-ACK", + "multiDeviceWorkspaceManagement": "Gestão de espaço de trabalho multi-dispositivo", + "myLocation": "A minha localização", + "nameAndTelemetryShared": "Nome e telemetria partilhados com outros dispositivos.", + "newVersionAvailable": "Nova versão: {version}", + "newer": "Mais recente", + "noNeighboursFound": "Nenhum vizinho encontrado", + "noServersFound": "Nenhum servidor encontrado", + "notSet": "Não definido", + "notifications": "Notificações", + "offZeroSeconds": "Desligado (0 s)", + "offlineMaps": "Mapas offline", + "older": "Mais antigo", + "oneByteMode0": "1 byte (modo 0)", + "oneHour": "1 hora", + "oneMinute": "1 minuto", + "openPacketLogs": "Abrir registos de pacotes", + "packetTypeHelp": "Ajuda sobre tipos de pacotes", + "pasteShareLinkOrHexAdvert": "Colar um link de partilha ou anúncio hex", + "pathHash": "Hash do caminho", + "pathSize": "Tamanho do caminho", + "ping": "Ping", + "polygon": "Polígono", + "rawResponseCopied": "Resposta bruta copiada", + "resendThroughNearestRepeaterOnFailure": "Reenviar pelo repetidor mais próximo em caso de falha", + "resolveContact": "Resolver contato", + "routingRetriesAndDestinationLock": "Encaminhamento, tentativas e bloqueio de destino", + "samples": "Amostras", + "satellites": "Satélites", + "saving": "A guardar...", + "search": "Pesquisar", + "searchByNameOrToken": "Pesquisar por nome ou token", + "searchDiscoveredNodes": "Pesquisar nós descobertos", + "searchInCurrentFilter": "Pesquisar no filtro atual", + "searchLogs": "Pesquisar registos...", + "searchSensors": "Pesquisar sensores", + "searchThisSection": "Pesquisar nesta secção", + "selectedRelays": "Repetidores selecionados", + "sensor": "Sensor", + "serialError": "Erro de série: {error}", + "setPathForContact": "Definir caminho para {name}", + "shareLiveGps": "Partilhar GPS ao vivo", + "shareMyTiles": "Partilhar os meus mosaicos", + "sharingLocationFromPhone": "A partilhar localização neste canal a partir do telemóvel.", + "sharingLocationFromRadio": "A partilhar localização neste canal a partir do rádio.", + "signalDbm": "Sinal {rssi} dBm", + "sizeCompressionAndPreview": "Tamanho, compressão e pré-visualização", + "skip": "Saltar", + "smallerFileSize": "Tamanho de ficheiro menor", + "sort": "Ordenar", + "stoppedSharingLocation": "Deixou de partilhar localização neste canal.", + "suppressNotificationsWhileInForeground": "Suprimir notificações em primeiro plano", + "tabsAndNavigation": "Separadores e Navegação", + "templatesAndTutorials": "Modelos e tutoriais", + "tenMinutes": "10 minutos", + "tenSeconds": "10 segundos", + "testSendUpdate": "Testar envio de atualização", + "themeLanguageAndDisplayPreferences": "Tema, idioma e preferências de apresentação", + "thirtyMinutes": "30 minutos", + "thirtySeconds": "30 segundos", + "threeBytesMode2": "3 bytes (modo 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Estatísticas de tráfego, histórico de mensagens e ferramentas de programador", + "twoBytesMode1": "2 bytes (modo 1)", + "twoMinutes": "2 minutos", + "undo": "Desfazer", + "updated": "Atualizado", + "useContactFlags": "Usar bandeiras de contato", + "useSavedCoordinates": "Usar coordenadas guardadas", + "view": "Ver", + "viewNeighbours": "Ver vizinhos", + "viewPublicStats": "Ver estatísticas públicas", + "setRegionScope": "Definir âmbito de região", + "regionScope": "Âmbito de região", + "regionScopeNone": "Nenhum (global)", + "clearRegionScope": "Limpar âmbito", + "regionScopeWarning": "Apenas os repetidores que permitem esta região irão retransmitir.", + "discoverRegions": "Descobrir a partir dos repetidores", + "discoveringRegions": "A descobrir regiões...", + "enterRegionName": "Nome da região (ex. auckland)", + "noRegionsFound": "Nenhuma região encontrada neste repetidor.", + "regionScopeSet": "Âmbito de região definido para {name}", + "regionScopeCleared": "Âmbito de região limpo" } diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 740dda6..351c5de 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -9,7 +9,6 @@ "disconnect": "Отключить", "noDevicesFound": "Устройства не найдены", "scanAgain": "Повторить поиск", - "tapToConnect": "Нажмите для подключения", "deviceNotConnected": "Устройство не подключено", "locationPermissionDenied": "Доступ к геолокации запрещён", "locationPermissionPermanentlyDenied": "Доступ к геолокации запрещён навсегда. Включите его в настройках.", @@ -32,9 +31,7 @@ "autoSystem": "Авто (Система)", "followSystemTheme": "Следовать системной теме", "showRxTxIndicators": "Показывать индикаторы RX/TX", - "displayPacketActivity": "Отображать активность пакетов в верхней панели", "disableMap": "Отключить карту", - "disableMapDescription": "Скрыть вкладку карты для экономии заряда батареи", "language": "Язык", "chooseLanguage": "Выбрать язык", "save": "Сохранить", @@ -42,7 +39,6 @@ "close": "Закрыть", "about": "О приложении", "appVersion": "Версия приложения", - "appName": "Название приложения", "aboutMeshCoreSar": "О MeshCore SAR", "aboutDescription": "Приложение для поисково-спасательных операций, разработанное для аварийно-спасательных служб. Возможности:\n\n• BLE mesh-сеть для связи между устройствами\n• Офлайн-карты с несколькими вариантами слоёв\n• Отслеживание членов команды в реальном времени\n• Тактические маркеры SAR (найденный человек, пожар, место сбора)\n• Управление контактами и обмен сообщениями\n• GPS-трекинг с показанием курса компаса\n• Кэширование тайлов карт для работы офлайн", "technologiesUsed": "Используемые технологии:", @@ -69,7 +65,6 @@ "viewOnMap": "Показать на карте", "refresh": "Обновить", "resetPath": "Сбросить маршрут (перепроложить)", - "publicKeyCopied": "Публичный ключ скопирован в буфер обмена", "copiedToClipboard": "{label} скопировано в буфер обмена", "pleaseEnterPassword": "Пожалуйста, введите пароль", "failedToSyncContacts": "Не удалось синхронизировать контакты: {error}", @@ -149,15 +144,9 @@ "type": "Тип", "publicKey": "Публичный ключ", "lastSeen": "Последнее появление", - "roomStatus": "Статус комнаты", - "loginStatus": "Статус входа", - "notLoggedIn": "Не выполнен вход", - "adminAccess": "Доступ администратора", "yes": "Да", "no": "Нет", "permissions": "Разрешения", - "passwordSaved": "Пароль сохранён", - "locationColon": "Местоположение:", "telemetry": "Телеметрия", "voltage": "Напряжение", "battery": "Батарея", @@ -165,8 +154,6 @@ "humidity": "Влажность", "pressure": "Давление", "gpsTelemetry": "GPS (телеметрия)", - "updated": "Обновлено", - "pathResetInfo": "Маршрут сброшен для {name}. Следующее сообщение найдёт новый путь.", "reLoginToRoom": "Войти в комнату повторно", "heading": "Курс", "elevation": "Высота", @@ -241,7 +228,6 @@ "tapToViewOnMap": "Нажмите, чтобы открыть на карте", "radioSettings": "Настройки радио", "frequencyMHz": "Частота (МГц)", - "frequencyExample": "например, 869.618", "bandwidth": "Полоса пропускания", "spreadingFactor": "Коэффициент расширения", "codingRate": "Скорость кодирования", @@ -264,38 +250,20 @@ "noTrailRecorded": "Трек ещё не записан", "startTrackingToRecord": "Запустите отслеживание геолокации для записи трека", "trailControls": "Управление треком", - "contactTrails": "Треки контактов", - "showAllContactTrails": "Показать все треки контактов", - "noContactsWithLocationHistory": "Нет контактов с историей местоположения", - "showingTrailsForContacts": "Показаны треки для {count} контактов", - "individualContactTrails": "Индивидуальные треки контактов", - "deviceInformation": "Информация об устройстве", - "bleName": "Имя BLE", - "meshName": "Имя в сети Mesh", - "notSet": "Не задано", "model": "Модель", "version": "Версия", - "buildDate": "Дата сборки", - "firmware": "Прошивка", "maxContacts": "Макс. контактов", "maxChannels": "Макс. каналов", "publicInfo": "Публичная информация", - "meshNetworkName": "Название сети Mesh", - "nameBroadcastInMesh": "Имя, транслируемое в mesh-объявлениях", - "telemetryAndLocationSharing": "Телеметрия и передача местоположения", - "lat": "Ш", - "lon": "Д", "useCurrentLocation": "Использовать текущее местоположение", "noneUnknown": "Нет/Неизвестно", "chatNode": "Узел чата", "repeater": "Ретранслятор", "roomChannel": "Комната/Канал", "typeNumber": "Тип {number}", - "copiedToClipboardShort": "{label} скопировано в буфер обмена", "failedToSave": "Не удалось сохранить: {error}", "failedToGetLocation": "Не удалось получить местоположение: {error}", "sarTemplates": "Шаблоны SAR", - "manageSarTemplates": "Управление шаблонами целеуказания", "addTemplate": "Добавить шаблон", "editTemplate": "Изменить шаблон", "deleteTemplate": "Удалить шаблон", @@ -323,7 +291,6 @@ "noTemplates": "Шаблоны недоступны", "tapAddToCreate": "Нажмите +, чтобы создать первый шаблон", "ok": "ОК", - "permissionsSection": "Разрешения", "locationPermission": "Разрешение геолокации", "checking": "Проверка...", "locationPermissionGrantedAlways": "Разрешено (всегда)", @@ -460,28 +427,6 @@ "wizardNext": "Далее", "wizardGetStarted": "Начать", "wizardWelcomeTitle": "Добро пожаловать в MeshCore SAR", - "wizardWelcomeDescription": "Мощный инструмент связи вне сети для поисково-спасательных операций. Поддерживайте связь с командой через mesh-радио, когда традиционные сети недоступны.", - "wizardConnectingTitle": "Подключение к радиоустройству", - "wizardConnectingDescription": "Подключите смартфон к радиоустройству MeshCore по Bluetooth для связи вне сети.", - "wizardConnectingFeature1": "Поиск ближайших устройств MeshCore", - "wizardConnectingFeature2": "Сопряжение с радиоустройством по Bluetooth", - "wizardConnectingFeature3": "Работает полностью офлайн — интернет не нужен", - "wizardChannelTitle": "Каналы", - "wizardChannelDescription": "Транслируйте сообщения всем участникам канала — идеально для общих объявлений и координации команды.", - "wizardChannelFeature1": "Публичный канал для общей связи команды", - "wizardChannelFeature2": "Создавайте пользовательские каналы для отдельных групп", - "wizardChannelFeature3": "Сообщения автоматически ретранслируются через mesh", - "wizardContactsTitle": "Контакты", - "wizardContactsDescription": "Члены вашей команды появляются автоматически по мере подключения к mesh-сети. Отправляйте им личные сообщения или просматривайте их местоположение.", - "wizardContactsFeature1": "Контакты обнаруживаются автоматически", - "wizardContactsFeature2": "Отправка личных сообщений", - "wizardContactsFeature3": "Просмотр уровня заряда и времени последнего появления", - "wizardMapTitle": "Карта и местоположение", - "wizardMapDescription": "Отслеживайте команду в реальном времени и отмечайте важные места для поисково-спасательных операций.", - "wizardMapFeature1": "Маркеры SAR для найденных людей, пожаров и мест сбора", - "wizardMapFeature2": "GPS-отслеживание членов команды в реальном времени", - "wizardMapFeature3": "Загрузка офлайн-карт для отдалённых районов", - "wizardMapFeature4": "Рисование фигур и обмен тактической информацией", "viewWelcomeTutorial": "Просмотреть обучение", "allTeamContacts": "Все контакты команды", "directMessagesInfo": "Личные сообщения с подтверждением. Отправлено {count} членам команды.", @@ -587,29 +532,10 @@ "posttxDelay": "Задержка после передачи", "bandpass": "Полосовой", "bandpassFilterVoice": "Полосовой фильтр голоса", - "frequency": "Частота", - "australia": "Австралия", - "australiaNarrow": "Австралия (Узкий)", - "australiaQld": "Австралия: QLD", - "australiaSaWa": "Австралия: SA, WA", - "newZealand": "Новая Зеландия", - "newZealandNarrow": "Новая Зеландия (Узкий)", - "switzerland": "Швейцария", - "portugal433": "Португалия 433", - "portugal868": "Португалия 868", - "czechRepublicNarrow": "Чехия (Узкий)", - "eu433mhzLongRange": "ЕС 433МГц (Дальний)", - "euukDeprecated": "ЕС/Великобритания (Устарело)", - "euukNarrow": "ЕС/Великобритания (Узкий)", - "usacanadaRecommended": "США/Канада (Рекомендуется)", - "vietnamDeprecated": "Вьетнам (Устарело)", - "vietnamNarrow": "Вьетнам (Узкий)", "active": "Активно", "addContact": "Добавить контакт", "all": "Все", - "autoResolve": "Автоматическое разрешение", "clearAllLabel": "Очистить все", - "clearRelays": "Очистить реле", "clearFilters": "Очистить фильтры", "clearRoute": "Очистить маршрут", "clearMessages": "Очистить сообщения", @@ -635,10 +561,7 @@ "send": "Отправить", "sendAnyway": "Отправить все равно", "share": "Поделиться", - "shareContact": "Поделиться контактом", "trace": "Трассировка", - "use": "Использовать", - "useSelectedFrequency": "Использовать выбранную частоту", "discovery": "Обнаружение", "discoverRepeaters": "Обнаружить повторители", "discoverSensors": "Обнаружить датчики", @@ -661,7 +584,6 @@ "gpsModule": "Модуль GPS", "liveTraffic": "Живой трафик", "repeatersMap": "Карта повторителей", - "spectrumScan": "Сканирование спектра", "blePacketLogs": "Журналы BLE-пакетов", "onlineTraceDatabase": "База трассировок", "routePathByteSize": "Размер пути в байтах", @@ -673,7 +595,6 @@ "disableContacts": "Отключить контакты", "enableSensorsTab": "Включить вкладку Датчики", "enableProfiles": "Включить профили", - "autoRouteRotation": "Автоматическая ротация маршрута", "nearestRepeaterFallback": "Ближайший повторитель как резерв", "deleteAllStoredMessageHistory": "Удалить всю историю сообщений", "messageFontSize": "Размер шрифта сообщений", @@ -681,18 +602,13 @@ "showMapDebugInfo": "Показать отладочную информацию карты", "openMapInFullscreen": "Открыть карту на весь экран", "showSarMarkersLabel": "Показать SAR-маркеры", - "displaySarMarkersOnTheMainMap": "Отображать SAR-маркеры на основной карте", - "showAllContactTrailsLabel": "Показать все следы контактов", "hideRepeatersOnMap": "Скрыть повторители на карте", "setMapScale": "Установить масштаб карты", "customMapScaleSaved": "Пользовательский масштаб карты сохранён", "voiceBitrate": "Битрейт голоса", "voiceCompressor": "Компрессор голоса", - "balancesQuietAndLoudSpeechLevels": "Выравнивает тихую и громкую речь", "voiceLimiter": "Лимитер голоса", - "preventsClippingPeaksBeforeEncoding": "Предотвращает обрезку пиков перед кодированием", "micAutoGain": "Автоусиление микрофона", - "letsTheRecorderAdjustInputLevel": "Позволяет рекордеру регулировать уровень входа", "echoCancellation": "Подавление эха", "noiseSuppression": "Подавление шума", "trimSilenceInVoiceMessages": "Обрезать тишину в голосовых сообщениях", @@ -734,13 +650,10 @@ "staging": "Место сбора", "object": "Объект", "quiet": "Тихо", - "moderate": "Умеренно", "busy": "Занято", - "spectrumScanReturnedNoCandidateFrequencies": "Сканирование спектра не нашло частот-кандидатов", "searchMessages": "Поиск сообщений", "sendImageFromGallery": "Отправить изображение из галереи", "takePhoto": "Сделать фото", - "dmOnly": "Только личные сообщения", "allMessages": "Все сообщения", "sendToPublicChannel": "Отправить в публичный канал?", "selectMarkerTypeAndDestination": "Выберите тип маркера и назначение", @@ -759,8 +672,6 @@ "wipeDevice": "Стереть устройство", "destructiveDeviceActions": "Деструктивные действия устройства.", "chooseAPresetOrFinetuneCustomRadioSettings": "Выберите пресет или настройте радио вручную.", - "chooseTheNameAndLocationThisDeviceShares": "Выберите имя и местоположение, которыми делится устройство.", - "availableSpaceOnThisDevice": "Доступное место на этом устройстве.", "used": "Использовано", "total": "Всего", "renameValue": "Переименовать значение", @@ -778,8 +689,6 @@ "onlineOnly": "Только онлайн", "inBoth": "В обоих", "source": "Источник", - "manualRouteEdit": "Ручное редактирование маршрута", - "observedMeshRoute": "Наблюдаемый mesh-маршрут", "allMessagesCleared": "Все сообщения очищены", "onlineTraceDatabaseCleared": "База трассировок очищена", "packetLogsCleared": "Журналы пакетов очищены", @@ -810,5 +719,194 @@ "captured": "Захвачено", "size": "Размер", "noCustomChannelsToClear": "Нет пользовательских каналов для очистки.", - "noDeviceContactsToClear": "Нет контактов устройства для очистки." + "noDeviceContactsToClear": "Нет контактов устройства для очистки.", + "autoSend": "Автоотправка", + "autoSendDescription": "Отправить текущим маршрутом.", + "sendDirect": "Прямая отправка", + "sendDirectDescription": "Отправить напрямую этому контакту.", + "sendFlood": "Отправка лавиной", + "sendFloodDescription": "Отправить через все ретрансляторы.", + "postConnectDiscoveryTitle": "Обнаружить ретрансляторы сейчас?", + "postConnectDiscoveryDescription": "Запустите обнаружение ретрансляторов сразу после подключения, чтобы увидеть ближайшие узлы MeshCore и быстрее добавить их в свою сеть.", + "aToZ": "А-Я", + "add": "Добавить", + "addAdditionalDetails": "Добавить дополнительные сведения", + "addPeer": "Добавить узел", + "addPeerManually": "Добавить узел вручную", + "addedToContacts": "{name} добавлен в контакты", + "addedToSensors": "{name} добавлен в Датчики", + "allowAll": "Разрешить все", + "anonymousRxStats": "Анонимная статистика RX", + "appearance": "Внешний вид", + "ascii": "ASCII", + "baseTelemetry": "Базовая телеметрия", + "blePin": "BLE PIN", + "buzzerAlerts": "Звуковые оповещения", + "cancelImageReceive": "Отменить получение изображения", + "choose": "Выбрать", + "chooseWhichTabsAndContactSectionsToShow": "Выберите отображаемые вкладки и разделы контактов", + "clearCache": "Очистить кэш", + "clearHistory": "Очистить историю", + "clearLiveView": "Очистить режим реального времени", + "clearLogs": "Очистить журналы", + "clearOfflineCache": "Очистить офлайн-кэш?", + "clearOverlay": "Очистить наложение", + "clearRouteOnlyAfterAllRetriesFail": "Очищать маршрут только после всех неудачных повторов", + "codecBitrateAndAudioProcessing": "Кодек, битрейт и обработка звука", + "connectByIpAddress": "Подключиться по IP-адресу", + "controlWhichAlertsYouReceive": "Управление получаемыми оповещениями", + "copyFullHex": "Копировать полный Hex", + "copyRawResponse": "Копировать необработанный ответ", + "couldNotLoadMetHistory": "Не удалось загрузить историю MET", + "customizeSensor": "Настроить {name}", + "data": "Данные", + "deleteGroup": "Удалить группу", + "deleteStyleConfirm": "Удалить {name}?", + "deleteThisDrawing": "Удалить этот {type}?", + "deny": "Запретить", + "deviceInfo": "Информация об устройстве", + "deviceSettings": "Настройки устройства", + "deviceTimeSynced": "Время устройства синхронизировано с телефоном.", + "disableFastGpsPublishing": "Отключить быструю публикацию GPS", + "displayMarkersAndTraceDatabase": "Отображение, маркеры и база трассировок", + "download": "Скачать", + "environmentalTelemetry": "Телеметрия окружающей среды", + "errorCheckingForUpdates": "Ошибка проверки обновлений: {error}", + "errorGeneric": "Ошибка: {error}", + "errorOpeningDownload": "Ошибка открытия загрузки: {error}", + "exportLogs": "Экспортировать журналы", + "extraAggressiveAvifCompression": "Сверхагрессивное сжатие AVIF", + "failedToAddContact": "Не удалось добавить контакт: {error}", + "failedToAddName": "Не удалось добавить {name}: {error}", + "failedToClearChannels": "Не удалось очистить каналы: {error}", + "failedToClearContacts": "Не удалось очистить контакты: {error}", + "failedToConnectViaSerial": "Не удалось подключиться через последовательный порт", + "failedToLoadPreviewImage": "Не удалось загрузить изображение предпросмотра: {error}", + "failedToLoadTrace": "Не удалось загрузить трассировку: {error}", + "failedToSendSarMarker": "Не удалось отправить маркер SAR: {error}", + "failedToSetBuzzerMode": "Не удалось установить режим зуммера: {error}", + "failedToSetGpsMode": "Не удалось установить режим GPS: {error}", + "failedToSyncDeviceTime": "Не удалось синхронизировать время устройства: {error}", + "failedToWipeDeviceData": "Не удалось стереть данные устройства: {error}", + "fastGpsTargetChannel": "Целевой канал быстрого GPS", + "fastUpdatesThresholdsAndPermissions": "Быстрые обновления, пороги и разрешения", + "fetchingCatalog": "Загрузка каталога...", + "fifteenMinutes": "15 минут", + "fifteenSeconds": "15 секунд", + "filterByDirection": "Фильтр по направлению", + "finish": "Завершить", + "fiveMinutes": "5 минут", + "fiveSeconds": "5 секунд", + "fix": "Фикс", + "gps": "GPS", + "gpsAdvertPolicy": "Политика объявлений GPS", + "gpsAndLocation": "GPS и местоположение", + "gpsDiagnostics": "Диагностика GPS", + "gpsSection": "GPS", + "help": "Помощь", + "hex": "Hex", + "hidden": "Скрыто", + "howTheRadioAutoAddsDiscoveredNodes": "Как радио автоматически добавляет обнаруженные узлы.", + "images": "Изображения", + "importProfile": "Импортировать профиль", + "lastFix": "Последний фикс", + "latest": "Последняя", + "latitude": "Широта", + "loadASavedRegion": "Загрузить сохранённый регион", + "loading": "Загрузка", + "locationSharingHardwareAndUpdateInterval": "Обмен местоположением, оборудование и интервал обновления.", + "locationTelemetry": "Телеметрия местоположения", + "lockDestination": "Зафиксировать назначение", + "longitude": "Долгота", + "mapStyle": "Стиль карты", + "max": "Макс", + "maxZoom": "Макс. масштаб", + "messaging": "Сообщения", + "metHistory": "История MET", + "min": "Мин", + "minZoom": "Мин. масштаб", + "moveDown": "Переместить вниз", + "moveUp": "Переместить вверх", + "multiAckMode": "Режим множественного ACK", + "multiDeviceWorkspaceManagement": "Управление рабочим пространством на нескольких устройствах", + "myLocation": "Моё местоположение", + "nameAndTelemetryShared": "Имя и телеметрия доступны другим устройствам.", + "newVersionAvailable": "Новая версия: {version}", + "newer": "Новее", + "noNeighboursFound": "Соседи не найдены", + "noServersFound": "Серверы не найдены", + "notSet": "Не задано", + "notifications": "Уведомления", + "offZeroSeconds": "Выкл (0 с)", + "offlineMaps": "Офлайн-карты", + "older": "Старее", + "oneByteMode0": "1 байт (режим 0)", + "oneHour": "1 час", + "oneMinute": "1 минута", + "openPacketLogs": "Открыть журналы пакетов", + "packetTypeHelp": "Справка по типам пакетов", + "pasteShareLinkOrHexAdvert": "Вставьте ссылку или Hex-объявление", + "pathHash": "Хеш пути", + "pathSize": "Размер пути", + "ping": "Пинг", + "polygon": "Полигон", + "rawResponseCopied": "Необработанный ответ скопирован", + "resendThroughNearestRepeaterOnFailure": "Повторить через ближайший ретранслятор при ошибке", + "resolveContact": "Разрешить контакт", + "routingRetriesAndDestinationLock": "Маршрутизация, повторы и фиксация назначения", + "samples": "Образцы", + "satellites": "Спутники", + "saving": "Сохранение...", + "search": "Поиск", + "searchByNameOrToken": "Поиск по имени или токену", + "searchDiscoveredNodes": "Поиск обнаруженных узлов", + "searchInCurrentFilter": "Поиск в текущем фильтре", + "searchLogs": "Поиск по журналам...", + "searchSensors": "Поиск датчиков", + "searchThisSection": "Поиск в этом разделе", + "selectedRelays": "Выбранные ретрансляторы", + "sensor": "Датчик", + "serialError": "Ошибка последовательного порта: {error}", + "setPathForContact": "Задать путь для {name}", + "shareLiveGps": "Транслировать GPS", + "shareMyTiles": "Поделиться моими тайлами", + "sharingLocationFromPhone": "Трансляция местоположения на этом канале с телефона.", + "sharingLocationFromRadio": "Трансляция местоположения на этом канале с радио.", + "signalDbm": "Сигнал {rssi} дБм", + "sizeCompressionAndPreview": "Размер, сжатие и предпросмотр", + "skip": "Пропустить", + "smallerFileSize": "Меньший размер файла", + "sort": "Сортировка", + "stoppedSharingLocation": "Трансляция местоположения на этом канале остановлена.", + "suppressNotificationsWhileInForeground": "Отключить уведомления при открытом приложении", + "tabsAndNavigation": "Вкладки и навигация", + "templatesAndTutorials": "Шаблоны и обучение", + "tenMinutes": "10 минут", + "tenSeconds": "10 секунд", + "testSendUpdate": "Тестовая отправка обновления", + "themeLanguageAndDisplayPreferences": "Тема, язык и настройки отображения", + "thirtyMinutes": "30 минут", + "thirtySeconds": "30 секунд", + "threeBytesMode2": "3 байта (режим 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Статистика трафика, история сообщений и инструменты разработчика", + "twoBytesMode1": "2 байта (режим 1)", + "twoMinutes": "2 минуты", + "undo": "Отменить", + "updated": "Обновлено", + "useContactFlags": "Использовать флаги контактов", + "useSavedCoordinates": "Использовать сохранённые координаты", + "view": "Просмотр", + "viewNeighbours": "Просмотр соседей", + "viewPublicStats": "Просмотр публичной статистики", + "setRegionScope": "Установить область региона", + "regionScope": "Область региона", + "regionScopeNone": "Нет (глобально)", + "clearRegionScope": "Очистить область", + "regionScopeWarning": "Только ретрансляторы, разрешающие этот регион, будут пересылать.", + "discoverRegions": "Обнаружить из ретрансляторов", + "discoveringRegions": "Обнаружение регионов...", + "enterRegionName": "Название региона (напр. auckland)", + "noRegionsFound": "Регионы не найдены на этом ретрансляторе.", + "regionScopeSet": "Область региона установлена на {name}", + "regionScopeCleared": "Область региона очищена" } diff --git a/lib/l10n/app_sl.arb b/lib/l10n/app_sl.arb index e46dd71..71f0dc8 100644 --- a/lib/l10n/app_sl.arb +++ b/lib/l10n/app_sl.arb @@ -9,7 +9,6 @@ "disconnect": "Prekini", "noDevicesFound": "Ni najdenih naprav", "scanAgain": "Ponovi iskanje", - "tapToConnect": "Tapnite za povezavo", "deviceNotConnected": "Naprava ni povezana", "locationPermissionDenied": "Dovoljenje za lokacijo zavrnjeno", "locationPermissionPermanentlyDenied": "Dovoljenje za lokacijo trajno zavrnjeno. Prosimo, omogočite v Nastavitvah.", @@ -32,9 +31,7 @@ "autoSystem": "Samodejno (Sistem)", "followSystemTheme": "Sledi sistemski temi", "showRxTxIndicators": "Prikaži RX/TX kazalnike", - "displayPacketActivity": "Prikaži kazalnike aktivnosti paketov v zgornji vrstici", "disableMap": "Onemogoči zemljevid", - "disableMapDescription": "Skrij zavihek z zemljevidom za varčevanje z baterijo", "language": "Jezik", "chooseLanguage": "Izberite jezik", "save": "Shrani", @@ -42,7 +39,6 @@ "close": "Zapri", "about": "O aplikaciji", "appVersion": "Različica aplikacije", - "appName": "Ime aplikacije", "aboutMeshCoreSar": "O MeshCore SAR", "aboutDescription": "Aplikacija za iskanje in reševanje, zasnovana za ekipe za odzivanje v nujnih primerih. Funkcije vključujejo:\n\n• BLE mesh omrežje za komunikacijo naprava-naprava\n• Brez povezave delujejo zemljevidi z več sloji\n• Sledenje članov ekipe v realnem času\n• SAR taktični označevalci (najdena oseba, ogenj, zbirališče)\n• Upravljanje stikov in sporočanje\n• GPS sledenje s kompasno smerjo\n• Predpomnenje ploščic zemljevida za uporabo brez povezave", "technologiesUsed": "Uporabljene tehnologije:", @@ -69,7 +65,6 @@ "viewOnMap": "Poglej na zemljevidu", "refresh": "Osveži", "resetPath": "Ponastavi pot (preusmeri)", - "publicKeyCopied": "Javni ključ kopiran v odložišče", "copiedToClipboard": "{label} kopirano v odložišče", "pleaseEnterPassword": "Prosimo, vnesite geslo", "failedToSyncContacts": "Sinhronizacija stikov ni uspela: {error}", @@ -148,15 +143,9 @@ "type": "Vrsta", "publicKey": "Javni ključ", "lastSeen": "Nazadnje viden", - "roomStatus": "Status sobe", - "loginStatus": "Status prijave", - "notLoggedIn": "Ni prijavljen", - "adminAccess": "Administratorski dostop", "yes": "Da", "no": "Ne", "permissions": "Dovoljenja", - "passwordSaved": "Geslo shranjeno", - "locationColon": "Lokacija:", "telemetry": "Telemetrija", "voltage": "Napetost", "battery": "Baterija", @@ -164,8 +153,6 @@ "humidity": "Vlažnost", "pressure": "Tlak", "gpsTelemetry": "GPS (Telemetrija)", - "updated": "Posodobljeno", - "pathResetInfo": "Pot ponastavljena za {name}. Naslednje sporočilo bo našlo novo pot.", "reLoginToRoom": "Ponovna prijava v sobo", "heading": "Smer", "elevation": "Nadmorska višina", @@ -241,7 +228,6 @@ "tapToViewOnMap": "Tapnite za prikaz na zemljevidu", "radioSettings": "Nastavitve radia", "frequencyMHz": "Frekvenca (MHz)", - "frequencyExample": "npr. 869.618", "bandwidth": "Pasovna širina", "spreadingFactor": "Faktor razširitve", "codingRate": "Razmerje kodiranja", @@ -264,38 +250,20 @@ "noTrailRecorded": "Še ni posnete poti", "startTrackingToRecord": "Začnite sledenje lokacije za snemanje poti", "trailControls": "Nadzor poti", - "contactTrails": "Poti stikov", - "showAllContactTrails": "Prikaži vse poti stikov", - "noContactsWithLocationHistory": "Ni stikov z zgodovino lokacije", - "showingTrailsForContacts": "Prikazujem poti za {count} stikov", - "individualContactTrails": "Posamezne poti stikov", - "deviceInformation": "Informacije o napravi", - "bleName": "BLE ime", - "meshName": "Mesh ime", - "notSet": "Ni nastavljeno", "model": "Model", "version": "Različica", - "buildDate": "Datum izdelave", - "firmware": "Vdelana programska oprema", "maxContacts": "Maks. stikov", "maxChannels": "Maks. kanalov", "publicInfo": "Javne informacije", - "meshNetworkName": "Ime mesh omrežja", - "nameBroadcastInMesh": "Ime, ki se oddaja v mesh oglasih", - "telemetryAndLocationSharing": "Telemetrija in deljenje lokacije", - "lat": "Šir", - "lon": "Dolž", "useCurrentLocation": "Uporabi trenutno lokacijo", "noneUnknown": "Brez/Neznano", "chatNode": "Vozlišče za klepet", "repeater": "Ponavljalnik", "roomChannel": "Soba/Kanal", "typeNumber": "Tip {number}", - "copiedToClipboardShort": "Kopirano {label} v odložišče", "failedToSave": "Shranjevanje ni uspelo: {error}", "failedToGetLocation": "Pridobivanje lokacije ni uspelo: {error}", "sarTemplates": "SAR predloge", - "manageSarTemplates": "Upravljanje SAR predlog", "addTemplate": "Dodaj predlogo", "editTemplate": "Uredi predlogo", "deleteTemplate": "Izbriši predlogo", @@ -323,7 +291,6 @@ "noTemplates": "Ni razpoložljivih predlog", "tapAddToCreate": "Tapnite + za ustvarjanje prve predloge", "ok": "V redu", - "permissionsSection": "Dovoljenja", "locationPermission": "Dovoljenje za lokacijo", "checking": "Preverjanje...", "locationPermissionGrantedAlways": "Odobreno (Vedno)", @@ -460,28 +427,6 @@ "wizardNext": "Naprej", "wizardGetStarted": "Začni", "wizardWelcomeTitle": "Dobrodošli v MeshCore SAR", - "wizardWelcomeDescription": "Zmogljivo orodje za komunikacijo brez omrežja za reševalne operacije. S svojo ekipo se povežite z mesh radijsko tehnologijo, ko tradicionalna omrežja niso na voljo.", - "wizardConnectingTitle": "Povezava z radijem", - "wizardConnectingDescription": "Svoj telefon povežite z radijsko napravo MeshCore prek Bluetootha in začnite komunicirati brez omrežja.", - "wizardConnectingFeature1": "Poišče bližnje naprave MeshCore", - "wizardConnectingFeature2": "Seznanitev z radijsko napravo prek Bluetootha", - "wizardConnectingFeature3": "Deluje povsem brez povezave — internet ni potreben", - "wizardChannelTitle": "Kanali", - "wizardChannelDescription": "Pošiljajte sporočila vsem na kanalu — idealno za obvestila in koordinacijo ekipe.", - "wizardChannelFeature1": "Javni kanal za splošno komunikacijo ekipe", - "wizardChannelFeature2": "Ustvarite kanale po meri za določene skupine", - "wizardChannelFeature3": "Sporočila se samodejno posredujejo prek mreže", - "wizardContactsTitle": "Stiki", - "wizardContactsDescription": "Člani ekipe se prikažejo samodejno, ko se pridružijo mesh omrežju. Pošiljajte jim neposredna sporočila ali si oglejte njihovo lokacijo.", - "wizardContactsFeature1": "Samodejno odkrivanje stikov", - "wizardContactsFeature2": "Pošiljanje zasebnih neposrednih sporočil", - "wizardContactsFeature3": "Prikaz stanja baterije in časa zadnje aktivnosti", - "wizardMapTitle": "Zemljevid in lokacija", - "wizardMapDescription": "Spremljajte svojo ekipo v realnem času in označujte ključne lokacije za reševalne operacije.", - "wizardMapFeature1": "SAR označevalci za najdene osebe, požare in zbirna mesta", - "wizardMapFeature2": "Sledenje članom ekipe z GPS v realnem času", - "wizardMapFeature3": "Prenesite zemljevide za uporabo brez povezave", - "wizardMapFeature4": "Rišite oblike in delite taktične informacije", "viewWelcomeTutorial": "Ogled vadnice dobrodošlice", "allTeamContacts": "Vsi stiki ekipe", "directMessagesInfo": "Neposredna sporočila s potrditvami. Poslano {count} članom ekipe.", @@ -587,29 +532,10 @@ "posttxDelay": "Zakasnitev po oddaji", "bandpass": "Pasovno sito", "bandpassFilterVoice": "Pasovno sito za glas", - "frequency": "Frekvenca", - "australia": "Avstralija", - "australiaNarrow": "Avstralija (ozko)", - "australiaQld": "Avstralija: QLD", - "australiaSaWa": "Avstralija: SA, WA", - "newZealand": "Nova Zelandija", - "newZealandNarrow": "Nova Zelandija (ozko)", - "switzerland": "Švica", - "portugal433": "Portugalska 433", - "portugal868": "Portugalska 868", - "czechRepublicNarrow": "Češka (ozko)", - "eu433mhzLongRange": "EU 433MHz (dolg doseg)", - "euukDeprecated": "EU/UK (zastarelo)", - "euukNarrow": "EU/UK (ozko)", - "usacanadaRecommended": "ZDA/Kanada (priporočeno)", - "vietnamDeprecated": "Vietnam (zastarelo)", - "vietnamNarrow": "Vietnam (ozko)", "active": "Aktivno", "addContact": "Dodaj stik", "all": "Vse", - "autoResolve": "Samodejno razreši", "clearAllLabel": "Počisti vse", - "clearRelays": "Počisti posrednike", "clearFilters": "Počisti filtre", "clearRoute": "Počisti pot", "clearMessages": "Počisti sporočila", @@ -635,10 +561,7 @@ "send": "Pošlji", "sendAnyway": "Vseeno pošlji", "share": "Deli", - "shareContact": "Deli stik", "trace": "Sledenje", - "use": "Uporabi", - "useSelectedFrequency": "Uporabi izbrano frekvenco", "discovery": "Odkrivanje", "discoverRepeaters": "Odkrij posrednike", "discoverSensors": "Odkrij senzorje", @@ -661,7 +584,6 @@ "gpsModule": "GPS modul", "liveTraffic": "Promet v živo", "repeatersMap": "Zemljevid posrednikov", - "spectrumScan": "Spektralno skeniranje", "blePacketLogs": "Dnevniki BLE paketov", "onlineTraceDatabase": "Baza sledi", "routePathByteSize": "Velikost poti v bajtih", @@ -673,7 +595,6 @@ "disableContacts": "Onemogoči stike", "enableSensorsTab": "Omogoči zavihek Senzorji", "enableProfiles": "Omogoči profile", - "autoRouteRotation": "Samodejno kroženje poti", "nearestRepeaterFallback": "Najbližji posrednik kot rezerva", "deleteAllStoredMessageHistory": "Izbriši vso shranjeno zgodovino sporočil", "messageFontSize": "Velikost pisave sporočil", @@ -681,18 +602,13 @@ "showMapDebugInfo": "Prikaži razhroščevalne info zemljevida", "openMapInFullscreen": "Odpri zemljevid na cel zaslon", "showSarMarkersLabel": "Prikaži SAR oznake", - "displaySarMarkersOnTheMainMap": "Prikaži SAR oznake na glavnem zemljevidu", - "showAllContactTrailsLabel": "Prikaži vse sledi stikov", "hideRepeatersOnMap": "Skrij posrednike na zemljevidu", "setMapScale": "Nastavi merilo zemljevida", "customMapScaleSaved": "Merilo zemljevida shranjeno", "voiceBitrate": "Bitna hitrost glasu", "voiceCompressor": "Kompresor glasu", - "balancesQuietAndLoudSpeechLevels": "Izravnava tihe in glasne govorne ravni", "voiceLimiter": "Omejevalnik glasu", - "preventsClippingPeaksBeforeEncoding": "Preprečuje rezanje vrhov pred kodiranjem", "micAutoGain": "Samodejna ojačitev mikrofona", - "letsTheRecorderAdjustInputLevel": "Omogoči snemalniku prilagoditev vhodne ravni", "echoCancellation": "Odstranjevanje odmeva", "noiseSuppression": "Dušenje šuma", "trimSilenceInVoiceMessages": "Obreži tišino v glasovnih sporočilih", @@ -734,13 +650,10 @@ "staging": "Zbirno mesto", "object": "Predmet", "quiet": "Tiho", - "moderate": "Zmerno", "busy": "Zasedeno", - "spectrumScanReturnedNoCandidateFrequencies": "Spektralno skeniranje ni našlo primernih frekvenc", "searchMessages": "Iskanje sporočil", "sendImageFromGallery": "Pošlji sliko iz galerije", "takePhoto": "Posnemi fotografijo", - "dmOnly": "Samo neposredno", "allMessages": "Vsa sporočila", "sendToPublicChannel": "Pošlji na javni kanal?", "selectMarkerTypeAndDestination": "Izberite vrsto oznake in cilj", @@ -759,8 +672,6 @@ "wipeDevice": "Izbriši napravo", "destructiveDeviceActions": "Destruktivna dejanja na napravi.", "chooseAPresetOrFinetuneCustomRadioSettings": "Izberite prednastavitev ali natančno prilagodite radijske nastavitve.", - "chooseTheNameAndLocationThisDeviceShares": "Izberite ime in lokacijo, ki ju naprava deli.", - "availableSpaceOnThisDevice": "Razpoložljiv prostor na tej napravi.", "used": "Uporabljeno", "total": "Skupaj", "renameValue": "Preimenuj vrednost", @@ -778,8 +689,6 @@ "onlineOnly": "Samo povezani", "inBoth": "V obeh", "source": "Vir", - "manualRouteEdit": "Ročno urejanje poti", - "observedMeshRoute": "Opazovana mrežna pot", "allMessagesCleared": "Vsa sporočila počiščena", "onlineTraceDatabaseCleared": "Baza sledi počiščena", "packetLogsCleared": "Dnevniki paketov počiščeni", @@ -810,5 +719,194 @@ "captured": "Zajeto", "size": "Velikost", "noCustomChannelsToClear": "Ni prilagojenih kanalov za brisanje.", - "noDeviceContactsToClear": "Ni stikov naprave za brisanje." + "noDeviceContactsToClear": "Ni stikov naprave za brisanje.", + "autoSend": "Samodejno pošiljanje", + "autoSendDescription": "Pošlji po trenutni poti.", + "sendDirect": "Neposredno pošiljanje", + "sendDirectDescription": "Pošlji neposredno temu kontaktu.", + "sendFlood": "Pošiljanje s poplavo", + "sendFloodDescription": "Pošlji prek vseh repetitorjev.", + "postConnectDiscoveryTitle": "Odkriti repetitorje zdaj?", + "postConnectDiscoveryDescription": "Zaženite odkrivanje repetitorjev takoj po povezavi, da vidite bližnja vozlišča MeshCore in jih hitreje dodate v svoje omrežje.", + "aToZ": "A-Ž", + "add": "Dodaj", + "addAdditionalDetails": "Dodaj dodatne podrobnosti", + "addPeer": "Dodaj soležnika", + "addPeerManually": "Ročno dodaj soležnika", + "addedToContacts": "{name} dodan med stike", + "addedToSensors": "{name} dodan med senzorje", + "allowAll": "Dovoli vse", + "anonymousRxStats": "Anonimna RX statistika", + "appearance": "Videz", + "ascii": "ASCII", + "baseTelemetry": "Osnovna telemetrija", + "blePin": "BLE PIN", + "buzzerAlerts": "Zvočni alarmi", + "cancelImageReceive": "Prekliči prejem slike", + "choose": "Izberi", + "chooseWhichTabsAndContactSectionsToShow": "Izberite, katere zavihke in razdelke stikov prikazati", + "clearCache": "Počisti predpomnilnik", + "clearHistory": "Počisti zgodovino", + "clearLiveView": "Počisti pogled v živo", + "clearLogs": "Počisti dnevnike", + "clearOfflineCache": "Počisti predpomnilnik brez povezave?", + "clearOverlay": "Počisti prekrivanje", + "clearRouteOnlyAfterAllRetriesFail": "Počisti pot šele po neuspehu vseh ponovitev", + "codecBitrateAndAudioProcessing": "Kodek, bitna hitrost in obdelava zvoka", + "connectByIpAddress": "Poveži prek IP naslova", + "controlWhichAlertsYouReceive": "Nadzirajte, katera opozorila prejemate", + "copyFullHex": "Kopiraj celoten Hex", + "copyRawResponse": "Kopiraj surov odgovor", + "couldNotLoadMetHistory": "Nalaganje MET zgodovine ni uspelo", + "customizeSensor": "Prilagodi {name}", + "data": "Podatki", + "deleteGroup": "Izbriši skupino", + "deleteStyleConfirm": "Izbriši {name}?", + "deleteThisDrawing": "Izbriši to {type}?", + "deny": "Zavrni", + "deviceInfo": "Informacije o napravi", + "deviceSettings": "Nastavitve naprave", + "deviceTimeSynced": "Čas naprave sinhroniziran s tem telefonom.", + "disableFastGpsPublishing": "Onemogoči hitro GPS objavljanje", + "displayMarkersAndTraceDatabase": "Prikaz, oznake in baza sledenja", + "download": "Prenesi", + "environmentalTelemetry": "Okoljska telemetrija", + "errorCheckingForUpdates": "Napaka pri preverjanju posodobitev: {error}", + "errorGeneric": "Napaka: {error}", + "errorOpeningDownload": "Napaka pri odpiranju prenosa: {error}", + "exportLogs": "Izvozi dnevnike", + "extraAggressiveAvifCompression": "Posebno agresivno AVIF stiskanje", + "failedToAddContact": "Dodajanje stika ni uspelo: {error}", + "failedToAddName": "Dodajanje {name} ni uspelo: {error}", + "failedToClearChannels": "Brisanje kanalov ni uspelo: {error}", + "failedToClearContacts": "Brisanje stikov ni uspelo: {error}", + "failedToConnectViaSerial": "Povezava prek serijske povezave ni uspela", + "failedToLoadPreviewImage": "Nalaganje predogleda slike ni uspelo: {error}", + "failedToLoadTrace": "Nalaganje sledi ni uspelo: {error}", + "failedToSendSarMarker": "Pošiljanje SAR oznake ni uspelo: {error}", + "failedToSetBuzzerMode": "Nastavitev zvočnega alarma ni uspela: {error}", + "failedToSetGpsMode": "Nastavitev GPS načina ni uspela: {error}", + "failedToSyncDeviceTime": "Sinhronizacija časa naprave ni uspela: {error}", + "failedToWipeDeviceData": "Brisanje podatkov naprave ni uspelo: {error}", + "fastGpsTargetChannel": "Ciljni kanal hitrega GPS-a", + "fastUpdatesThresholdsAndPermissions": "Hitre posodobitve, pragovi in dovoljenja", + "fetchingCatalog": "Pridobivanje kataloga...", + "fifteenMinutes": "15 minut", + "fifteenSeconds": "15 sekund", + "filterByDirection": "Filtriraj po smeri", + "finish": "Končaj", + "fiveMinutes": "5 minut", + "fiveSeconds": "5 sekund", + "fix": "Popravi", + "gps": "GPS", + "gpsAdvertPolicy": "Politika GPS oglašanja", + "gpsAndLocation": "GPS in lokacija", + "gpsDiagnostics": "GPS diagnostika", + "gpsSection": "GPS", + "help": "Pomoč", + "hex": "Hex", + "hidden": "Skrito", + "howTheRadioAutoAddsDiscoveredNodes": "Kako radio samodejno dodaja odkrita vozlišča.", + "images": "Slike", + "importProfile": "Uvozi profil", + "lastFix": "Zadnja posneta lokacija", + "latest": "Najnovejše", + "latitude": "Geografska širina", + "loadASavedRegion": "Naloži shranjeno regijo", + "loading": "Nalaganje", + "locationSharingHardwareAndUpdateInterval": "Deljenje lokacije, strojna oprema in interval posodobitev.", + "locationTelemetry": "Telemetrija lokacije", + "lockDestination": "Zakleni cilj", + "longitude": "Geografska dolžina", + "mapStyle": "Slog zemljevida", + "max": "Maks", + "maxZoom": "Maks. povečava", + "messaging": "Sporočanje", + "metHistory": "MET zgodovina", + "min": "Min", + "minZoom": "Min. povečava", + "moveDown": "Premakni navzdol", + "moveUp": "Premakni navzgor", + "multiAckMode": "Način večkratne ACK potrditve", + "multiDeviceWorkspaceManagement": "Upravljanje delovnega prostora z več napravami", + "myLocation": "Moja lokacija", + "nameAndTelemetryShared": "Ime in telemetrija deljena z drugimi napravami.", + "newVersionAvailable": "Nova različica: {version}", + "newer": "Novejše", + "noNeighboursFound": "Ni najdenih sosedov", + "noServersFound": "Ni najdenih strežnikov", + "notSet": "Ni nastavljeno", + "notifications": "Obvestila", + "offZeroSeconds": "Izključeno (0 s)", + "offlineMaps": "Zemljevidi brez povezave", + "older": "Starejše", + "oneByteMode0": "1 bajt (način 0)", + "oneHour": "1 ura", + "oneMinute": "1 minuta", + "openPacketLogs": "Odpri dnevnike paketov", + "packetTypeHelp": "Pomoč za vrsto paketa", + "pasteShareLinkOrHexAdvert": "Prilepite deljeno povezavo ali Hex oglas", + "pathHash": "Zgoščevalna vrednost poti", + "pathSize": "Velikost poti", + "ping": "Ping", + "polygon": "Poligon", + "rawResponseCopied": "Surov odgovor kopiran", + "resendThroughNearestRepeaterOnFailure": "Ponovno pošlji prek najbližjega posrednika ob neuspehu", + "resolveContact": "Razreši stik", + "routingRetriesAndDestinationLock": "Usmerjanje, ponovitve in zaklepanje cilja", + "samples": "Vzorci", + "satellites": "Sateliti", + "saving": "Shranjujem...", + "search": "Iskanje", + "searchByNameOrToken": "Iskanje po imenu ali žetonu", + "searchDiscoveredNodes": "Iskanje odkritih vozlišč", + "searchInCurrentFilter": "Iskanje v trenutnem filtru", + "searchLogs": "Iskanje dnevnikov...", + "searchSensors": "Iskanje senzorjev", + "searchThisSection": "Iskanje v tem razdelku", + "selectedRelays": "Izbrani posredniki", + "sensor": "Senzor", + "serialError": "Napaka serijske povezave: {error}", + "setPathForContact": "Nastavi pot za {name}", + "shareLiveGps": "Deli GPS v živo", + "shareMyTiles": "Deli moje ploščice", + "sharingLocationFromPhone": "Deljenje lokacije na tem kanalu s telefona.", + "sharingLocationFromRadio": "Deljenje lokacije na tem kanalu z radia.", + "signalDbm": "Signal {rssi} dBm", + "sizeCompressionAndPreview": "Velikost, stiskanje in predogled", + "skip": "Preskoči", + "smallerFileSize": "Manjša velikost datoteke", + "sort": "Razvrsti", + "stoppedSharingLocation": "Deljenje lokacije na tem kanalu ustavljeno.", + "suppressNotificationsWhileInForeground": "Zadrži obvestila, ko je aplikacija v ospredju", + "tabsAndNavigation": "Zavihki in navigacija", + "templatesAndTutorials": "Predloge in vadnice", + "tenMinutes": "10 minut", + "tenSeconds": "10 sekund", + "testSendUpdate": "Preizkusno pošlji posodobitev", + "themeLanguageAndDisplayPreferences": "Tema, jezik in nastavitve prikaza", + "thirtyMinutes": "30 minut", + "thirtySeconds": "30 sekund", + "threeBytesMode2": "3 bajti (način 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Statistika prometa, zgodovina sporočil in razvojna orodja", + "twoBytesMode1": "2 bajta (način 1)", + "twoMinutes": "2 minuti", + "undo": "Razveljavi", + "updated": "Posodobljeno", + "useContactFlags": "Uporabi zastavice stikov", + "useSavedCoordinates": "Uporabi shranjene koordinate", + "view": "Pogled", + "viewNeighbours": "Poglej sosede", + "viewPublicStats": "Poglej javno statistiko", + "setRegionScope": "Nastavi obseg regije", + "regionScope": "Obseg regije", + "regionScopeNone": "Brez (globalno)", + "clearRegionScope": "Počisti obseg", + "regionScopeWarning": "Samo repetitorji, ki dovoljujejo to regijo, bodo posredovali.", + "discoverRegions": "Odkrij iz repetitorjev", + "discoveringRegions": "Odkrivanje regij...", + "enterRegionName": "Ime regije (npr. auckland)", + "noRegionsFound": "Na tem repetitorju ni najdenih regij.", + "regionScopeSet": "Obseg regije nastavljen na {name}", + "regionScopeCleared": "Obseg regije počiščen" } diff --git a/lib/l10n/app_tr.arb b/lib/l10n/app_tr.arb index 2956736..daa9068 100644 --- a/lib/l10n/app_tr.arb +++ b/lib/l10n/app_tr.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "Button to restart BLE scanning" }, - "tapToConnect": "Bağlanmak için dokunun", - "@tapToConnect": { - "description": "Subtitle text for device in scan list" - }, "deviceNotConnected": "Cihaz bağlı değil", "@deviceNotConnected": { "description": "Error message when device is not connected" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "Setting to show RX/TX indicators" }, - "displayPacketActivity": "Üst çubukta paket etkinliği göstergelerini göster", - "@displayPacketActivity": { - "description": "Description for RX/TX indicators setting" - }, "disableMap": "Haritayı devre dışı bırak", "@disableMap": { "description": "Setting to disable the map tab" }, - "disableMapDescription": "Pil kullanımını azaltmak için harita sekmesini gizle", - "@disableMapDescription": { - "description": "Description for disable map setting" - }, "language": "Dil", "@language": { "description": "Language setting label" @@ -173,10 +161,6 @@ "@appVersion": { "description": "App version label" }, - "appName": "Uygulama adı", - "@appName": { - "description": "App name label" - }, "aboutMeshCoreSar": "MeshCore SAR hakkında", "@aboutMeshCoreSar": { "description": "About dialog title" @@ -308,10 +292,6 @@ "@resetPath": { "description": "Action to reset contact path for re-routing" }, - "publicKeyCopied": "Genel anahtar panoya kopyalandı", - "@publicKeyCopied": { - "description": "Success message when public key is copied" - }, "copiedToClipboard": "{label} panoya kopyalandı", "@copiedToClipboard": { "description": "Success message when a value is copied to clipboard", @@ -720,22 +700,6 @@ "@lastSeen": { "description": "Last seen label" }, - "roomStatus": "Oda durumu", - "@roomStatus": { - "description": "Room status section header" - }, - "loginStatus": "Giriş durumu", - "@loginStatus": { - "description": "Login status label" - }, - "notLoggedIn": "Giriş yapılmadı", - "@notLoggedIn": { - "description": "Not logged in status" - }, - "adminAccess": "Yönetici erişimi", - "@adminAccess": { - "description": "Admin access label" - }, "yes": "Evet", "@yes": { "description": "Yes answer" @@ -748,14 +712,6 @@ "@permissions": { "description": "Permissions label" }, - "passwordSaved": "Parola kaydedildi", - "@passwordSaved": { - "description": "Password saved label" - }, - "locationColon": "Konum:", - "@locationColon": { - "description": "Location section header" - }, "telemetry": "Telemetri", "@telemetry": { "description": "Telemetry section header" @@ -784,19 +740,6 @@ "@gpsTelemetry": { "description": "GPS from telemetry label" }, - "updated": "Güncellendi", - "@updated": { - "description": "Updated timestamp label" - }, - "pathResetInfo": "{name} için yol sıfırlandı. Sonraki mesaj yeni bir rota bulacak.", - "@pathResetInfo": { - "description": "Info message after path reset", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "Odaya yeniden giriş yap", "@reLoginToRoom": { "description": "Button to re-login to room" @@ -1158,10 +1101,6 @@ "@frequencyMHz": { "description": "Label for radio frequency field" }, - "frequencyExample": "örn. 869.618", - "@frequencyExample": { - "description": "Helper text example for frequency" - }, "bandwidth": "Bant genişliği", "@bandwidth": { "description": "Label for bandwidth dropdown" @@ -1265,47 +1204,6 @@ "@trailControls": { "description": "Trail controls tooltip" }, - "contactTrails": "Kişi izleri", - "@contactTrails": { - "description": "Contact trails section header" - }, - "showAllContactTrails": "Tüm kişi izlerini göster", - "@showAllContactTrails": { - "description": "Toggle label to show all contact trails" - }, - "noContactsWithLocationHistory": "Konum geçmişi olan kişi yok", - "@noContactsWithLocationHistory": { - "description": "Subtitle when no contacts have trails" - }, - "showingTrailsForContacts": "{count} kişi için izler gösteriliyor", - "@showingTrailsForContacts": { - "description": "Subtitle showing number of contacts with trails", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "Tek tek kişi izleri", - "@individualContactTrails": { - "description": "Expansion tile title for individual contact trails" - }, - "deviceInformation": "Cihaz bilgileri", - "@deviceInformation": { - "description": "Device information section header" - }, - "bleName": "BLE adı", - "@bleName": { - "description": "Bluetooth Low Energy device name label" - }, - "meshName": "Mesh adı", - "@meshName": { - "description": "Mesh network name label" - }, - "notSet": "Ayarlanmadı", - "@notSet": { - "description": "Label when a value is not set" - }, "model": "Model", "@model": { "description": "Device model label" @@ -1314,14 +1212,6 @@ "@version": { "description": "Version label" }, - "buildDate": "Derleme tarihi", - "@buildDate": { - "description": "Firmware build date label" - }, - "firmware": "Bellenim", - "@firmware": { - "description": "Firmware label" - }, "maxContacts": "Maks kişi", "@maxContacts": { "description": "Maximum contacts capacity label" @@ -1334,26 +1224,6 @@ "@publicInfo": { "description": "Public information section header" }, - "meshNetworkName": "Mesh ağ adı", - "@meshNetworkName": { - "description": "Mesh network name field label" - }, - "nameBroadcastInMesh": "Mesh duyurularında yayınlanan ad", - "@nameBroadcastInMesh": { - "description": "Helper text for mesh network name field" - }, - "telemetryAndLocationSharing": "Telemetri ve konum paylaşımı", - "@telemetryAndLocationSharing": { - "description": "Telemetry and location sharing toggle label" - }, - "lat": "Enl.", - "@lat": { - "description": "Latitude field label (short form)" - }, - "lon": "Boyl.", - "@lon": { - "description": "Longitude field label (short form)" - }, "useCurrentLocation": "Geçerli konumu kullan", "@useCurrentLocation": { "description": "Tooltip for use current location button" @@ -1383,15 +1253,6 @@ } } }, - "copiedToClipboardShort": "{label} panoya kopyalandı", - "@copiedToClipboardShort": { - "description": "Short success message when copying to clipboard", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "Kaydetme başarısız: {error}", "@failedToSave": { "description": "Generic error message for save failures", @@ -1414,10 +1275,6 @@ "@sarTemplates": { "description": "SAR templates menu title" }, - "manageSarTemplates": "SAR şablonlarını yönet", - "@manageSarTemplates": { - "description": "Subtitle for SAR templates settings" - }, "addTemplate": "Şablon ekle", "@addTemplate": { "description": "Button to add new SAR template" @@ -1541,10 +1398,6 @@ "@ok": { "description": "OK button label" }, - "permissionsSection": "İzinler", - "@permissionsSection": { - "description": "Permissions section header" - }, "locationPermission": "Konum izni", "@locationPermission": { "description": "Location permission label" @@ -2109,94 +1962,6 @@ "@wizardWelcomeTitle": { "description": "Welcome wizard first page title" }, - "wizardWelcomeDescription": "Arama ve kurtarma operasyonları için güçlü bir şebeke dışı iletişim aracı. Geleneksel ağlar kullanılamadığında ekibinizle mesh radyo teknolojisi üzerinden bağlantı kurun.", - "@wizardWelcomeDescription": { - "description": "Welcome wizard first page description" - }, - "wizardConnectingTitle": "Radyonuza bağlanma", - "@wizardConnectingTitle": { - "description": "Wizard connecting page title" - }, - "wizardConnectingDescription": "Şebeke dışı iletişime başlamak için akıllı telefonunuzu Bluetooth üzerinden bir MeshCore radyo cihazına bağlayın.", - "@wizardConnectingDescription": { - "description": "Wizard connecting page description" - }, - "wizardConnectingFeature1": "Yakındaki MeshCore cihazlarını tarayın", - "@wizardConnectingFeature1": { - "description": "Wizard connecting feature 1" - }, - "wizardConnectingFeature2": "Radyonuzla Bluetooth üzerinden eşleşin", - "@wizardConnectingFeature2": { - "description": "Wizard connecting feature 2" - }, - "wizardConnectingFeature3": "Tamamen çevrimdışı çalışır - internet gerekmez", - "@wizardConnectingFeature3": { - "description": "Wizard connecting feature 3" - }, - "wizardChannelTitle": "Kanallar", - "@wizardChannelTitle": { - "description": "Wizard channel page title" - }, - "wizardChannelDescription": "Bir kanaldaki herkese mesaj yayınlayın; ekip genelindeki duyurular ve koordinasyon için idealdir.", - "@wizardChannelDescription": { - "description": "Wizard channel page description" - }, - "wizardChannelFeature1": "Genel ekip iletişimi için herkese açık kanal", - "@wizardChannelFeature1": { - "description": "Wizard channel feature 1" - }, - "wizardChannelFeature2": "Belirli gruplar için özel kanallar oluşturun", - "@wizardChannelFeature2": { - "description": "Wizard channel feature 2" - }, - "wizardChannelFeature3": "Mesajlar mesh tarafından otomatik iletilir", - "@wizardChannelFeature3": { - "description": "Wizard channel feature 3" - }, - "wizardContactsTitle": "Kişiler", - "@wizardContactsTitle": { - "description": "Wizard contacts page title" - }, - "wizardContactsDescription": "Ekip üyeleriniz mesh ağına katıldıkça otomatik olarak görünür. Onlara doğrudan mesaj gönderin veya konumlarını görüntüleyin.", - "@wizardContactsDescription": { - "description": "Wizard contacts page description" - }, - "wizardContactsFeature1": "Kişiler otomatik bulunur", - "@wizardContactsFeature1": { - "description": "Wizard contacts feature 1" - }, - "wizardContactsFeature2": "Özel doğrudan mesaj gönderin", - "@wizardContactsFeature2": { - "description": "Wizard contacts feature 2" - }, - "wizardContactsFeature3": "Pil seviyesini ve son görülme zamanını görüntüleyin", - "@wizardContactsFeature3": { - "description": "Wizard contacts feature 3" - }, - "wizardMapTitle": "Harita ve konum", - "@wizardMapTitle": { - "description": "Wizard map page title" - }, - "wizardMapDescription": "Ekibinizi gerçek zamanlı izleyin ve arama kurtarma operasyonları için önemli konumları işaretleyin.", - "@wizardMapDescription": { - "description": "Wizard map page description" - }, - "wizardMapFeature1": "Bulunan kişiler, yangınlar ve toplanma alanları için SAR işaretleri", - "@wizardMapFeature1": { - "description": "Wizard map feature 1" - }, - "wizardMapFeature2": "Ekip üyelerinin gerçek zamanlı GPS takibi", - "@wizardMapFeature2": { - "description": "Wizard map feature 2" - }, - "wizardMapFeature3": "Uzak bölgeler için çevrimdışı haritalar indirin", - "@wizardMapFeature3": { - "description": "Wizard map feature 3" - }, - "wizardMapFeature4": "Şekiller çizin ve taktik bilgileri paylaşın", - "@wizardMapFeature4": { - "description": "Wizard map feature 4" - }, "viewWelcomeTutorial": "Karşılama eğitimini görüntüle", "@viewWelcomeTutorial": { "description": "Settings option to re-show welcome wizard" @@ -2352,29 +2117,10 @@ "posttxDelay": "Gönderim sonrası gecikme", "bandpass": "Bant geçiren", "bandpassFilterVoice": "Bant geçiren filtre ses", - "frequency": "Frekans", - "australia": "Avustralya", - "australiaNarrow": "Avustralya (Dar)", - "australiaQld": "Avustralya: QLD", - "australiaSaWa": "Avustralya: SA, WA", - "newZealand": "Yeni Zelanda", - "newZealandNarrow": "Yeni Zelanda (Dar)", - "switzerland": "İsviçre", - "portugal433": "Portekiz 433", - "portugal868": "Portekiz 868", - "czechRepublicNarrow": "Çek Cumhuriyeti (Dar)", - "eu433mhzLongRange": "AB 433MHz (Uzun Menzil)", - "euukDeprecated": "AB/BK (Kullanımdan kalktı)", - "euukNarrow": "AB/BK (Dar)", - "usacanadaRecommended": "ABD/Kanada (Önerilen)", - "vietnamDeprecated": "Vietnam (Kullanımdan kalktı)", - "vietnamNarrow": "Vietnam (Dar)", "active": "Aktif", "addContact": "Kişi ekle", "all": "Tümü", - "autoResolve": "Otomatik çöz", "clearAllLabel": "Tümünü temizle", - "clearRelays": "Röleleri temizle", "clearFilters": "Filtreleri temizle", "clearRoute": "Rotayı temizle", "clearMessages": "Mesajları temizle", @@ -2400,10 +2146,7 @@ "send": "Gönder", "sendAnyway": "Yine de gönder", "share": "Paylaş", - "shareContact": "Kişiyi paylaş", "trace": "İz", - "use": "Kullan", - "useSelectedFrequency": "Seçilen frekansı kullan", "discovery": "Keşif", "discoverRepeaters": "Tekrarlayıcıları keşfet", "discoverSensors": "Sensörleri keşfet", @@ -2426,7 +2169,6 @@ "gpsModule": "GPS Modülü", "liveTraffic": "Canlı trafik", "repeatersMap": "Tekrarlayıcılar haritası", - "spectrumScan": "Spektrum taraması", "blePacketLogs": "BLE paket günlükleri", "onlineTraceDatabase": "Çevrimiçi iz veritabanı", "routePathByteSize": "Yol bayt boyutu", @@ -2438,7 +2180,6 @@ "disableContacts": "Kişileri devre dışı bırak", "enableSensorsTab": "Sensörler sekmesini etkinleştir", "enableProfiles": "Profilleri etkinleştir", - "autoRouteRotation": "Otomatik rota rotasyonu", "nearestRepeaterFallback": "En yakın tekrarlayıcıya geri dönüş", "deleteAllStoredMessageHistory": "Tüm mesaj geçmişini sil", "messageFontSize": "Mesaj yazı tipi boyutu", @@ -2446,18 +2187,13 @@ "showMapDebugInfo": "Harita hata ayıklama bilgisini göster", "openMapInFullscreen": "Haritayı tam ekranda aç", "showSarMarkersLabel": "SAR işaretçilerini göster", - "displaySarMarkersOnTheMainMap": "SAR işaretçilerini ana haritada göster", - "showAllContactTrailsLabel": "Tüm kişi izlerini göster", "hideRepeatersOnMap": "Haritada tekrarlayıcıları gizle", "setMapScale": "Harita ölçeğini ayarla", "customMapScaleSaved": "Özel harita ölçeği kaydedildi", "voiceBitrate": "Ses bit hızı", "voiceCompressor": "Ses sıkıştırıcı", - "balancesQuietAndLoudSpeechLevels": "Sessiz ve yüksek konuşma seviyelerini dengeler", "voiceLimiter": "Ses sınırlayıcı", - "preventsClippingPeaksBeforeEncoding": "Kodlama öncesi tepe kırpmasını önler", "micAutoGain": "Mikrofon otomatik kazancı", - "letsTheRecorderAdjustInputLevel": "Kaydedicinin giriş seviyesini ayarlamasına izin verir", "echoCancellation": "Yankı iptali", "noiseSuppression": "Gürültü bastırma", "trimSilenceInVoiceMessages": "Sesli mesajlarda sessizliği kırp", @@ -2499,13 +2235,10 @@ "staging": "Toplanma alanı", "object": "Nesne", "quiet": "Sessiz", - "moderate": "Orta", "busy": "Meşgul", - "spectrumScanReturnedNoCandidateFrequencies": "Spektrum taraması aday frekans bulamadı", "searchMessages": "Mesajlarda ara", "sendImageFromGallery": "Galeriden resim gönder", "takePhoto": "Fotoğraf çek", - "dmOnly": "Yalnızca DM", "allMessages": "Tüm mesajlar", "sendToPublicChannel": "Genel kanala gönderilsin mi?", "selectMarkerTypeAndDestination": "İşaretçi türünü ve hedefi seçin", @@ -2524,8 +2257,6 @@ "wipeDevice": "Cihazı sil", "destructiveDeviceActions": "Yıkıcı cihaz işlemleri.", "chooseAPresetOrFinetuneCustomRadioSettings": "Bir ön ayar seçin veya radyo ayarlarını ince ayarlayın.", - "chooseTheNameAndLocationThisDeviceShares": "Bu cihazın paylaştığı ad ve konumu seçin.", - "availableSpaceOnThisDevice": "Bu cihazda kullanılabilir alan.", "used": "Kullanılan", "total": "Toplam", "renameValue": "Değeri yeniden adlandır", @@ -2543,8 +2274,6 @@ "onlineOnly": "Yalnızca çevrimiçi", "inBoth": "Her ikisinde", "source": "Kaynak", - "manualRouteEdit": "Manuel rota düzenle", - "observedMeshRoute": "Gözlemlenen mesh rotası", "allMessagesCleared": "Tüm mesajlar temizlendi", "onlineTraceDatabaseCleared": "Çevrimiçi iz veritabanı temizlendi", "packetLogsCleared": "Paket günlükleri temizlendi", @@ -2575,5 +2304,194 @@ "captured": "Yakalandı", "size": "Boyut", "noCustomChannelsToClear": "Temizlenecek özel kanal yok.", - "noDeviceContactsToClear": "Temizlenecek cihaz kişisi yok." + "noDeviceContactsToClear": "Temizlenecek cihaz kişisi yok.", + "autoSend": "Otomatik Gönder", + "autoSendDescription": "Mevcut yol üzerinden gönder.", + "sendDirect": "Doğrudan Gönder", + "sendDirectDescription": "Bu kişiye doğrudan gönder.", + "sendFlood": "Taşkın Gönder", + "sendFloodDescription": "Tüm aktarıcılar üzerinden gönder.", + "postConnectDiscoveryTitle": "Aktarıcıları şimdi keşfet?", + "postConnectDiscoveryDescription": "Bağlandıktan hemen sonra aktarıcı keşfi çalıştırarak yakındaki MeshCore düğümlerini görün ve ağınıza daha hızlı ekleyin.", + "aToZ": "A-Z", + "add": "Ekle", + "addAdditionalDetails": "Ek ayrıntılar ekle", + "addPeer": "Eş ekle", + "addPeerManually": "Eşi elle ekle", + "addedToContacts": "{name} kişilere eklendi", + "addedToSensors": "{name} Sensörlere eklendi", + "allowAll": "Tümüne izin ver", + "anonymousRxStats": "Anonim RX istatistikleri", + "appearance": "Görünüm", + "ascii": "ASCII", + "baseTelemetry": "Temel telemetri", + "blePin": "BLE PIN", + "buzzerAlerts": "Buzzer uyarıları", + "cancelImageReceive": "Görüntü alımını iptal et", + "choose": "Seç", + "chooseWhichTabsAndContactSectionsToShow": "Gösterilecek sekmeleri ve kişi bölümlerini seçin", + "clearCache": "Önbelleği temizle", + "clearHistory": "Geçmişi temizle", + "clearLiveView": "Canlı görünümü temizle", + "clearLogs": "Günlükleri temizle", + "clearOfflineCache": "Çevrimdışı önbellek temizlensin mi?", + "clearOverlay": "Katmanı temizle", + "clearRouteOnlyAfterAllRetriesFail": "Rotayı yalnızca tüm yeniden denemeler başarısız olduktan sonra temizle", + "codecBitrateAndAudioProcessing": "Codec, bit hızı ve ses işleme", + "connectByIpAddress": "IP adresiyle bağlan", + "controlWhichAlertsYouReceive": "Hangi uyarıları alacağınızı kontrol edin", + "copyFullHex": "Tam Hex kopyala", + "copyRawResponse": "Ham yanıtı kopyala", + "couldNotLoadMetHistory": "MET geçmişi yüklenemedi", + "customizeSensor": "{name} sensörünü özelleştir", + "data": "Veri", + "deleteGroup": "Grubu sil", + "deleteStyleConfirm": "{name} silinsin mi?", + "deleteThisDrawing": "Bu {type} silinsin mi?", + "deny": "Reddet", + "deviceInfo": "Cihaz bilgisi", + "deviceSettings": "Cihaz Ayarları", + "deviceTimeSynced": "Cihaz saati bu telefonla senkronize edildi.", + "disableFastGpsPublishing": "Hızlı GPS yayınını devre dışı bırak", + "displayMarkersAndTraceDatabase": "Ekran, işaretçiler ve iz veritabanı", + "download": "İndir", + "environmentalTelemetry": "Çevresel telemetri", + "errorCheckingForUpdates": "Güncelleme kontrolünde hata: {error}", + "errorGeneric": "Hata: {error}", + "errorOpeningDownload": "İndirme açılırken hata: {error}", + "exportLogs": "Günlükleri dışa aktar", + "extraAggressiveAvifCompression": "Ekstra agresif AVIF sıkıştırma", + "failedToAddContact": "Kişi eklenemedi: {error}", + "failedToAddName": "{name} eklenemedi: {error}", + "failedToClearChannels": "Kanallar temizlenemedi: {error}", + "failedToClearContacts": "Kişiler temizlenemedi: {error}", + "failedToConnectViaSerial": "Seri bağlantı kurulamadı", + "failedToLoadPreviewImage": "Önizleme görüntüsü yüklenemedi: {error}", + "failedToLoadTrace": "İz yüklenemedi: {error}", + "failedToSendSarMarker": "SAR işaretçisi gönderilemedi: {error}", + "failedToSetBuzzerMode": "Buzzer modu ayarlanamadı: {error}", + "failedToSetGpsMode": "GPS modu ayarlanamadı: {error}", + "failedToSyncDeviceTime": "Cihaz saati senkronize edilemedi: {error}", + "failedToWipeDeviceData": "Cihaz verileri silinemedi: {error}", + "fastGpsTargetChannel": "Hızlı GPS hedef kanalı", + "fastUpdatesThresholdsAndPermissions": "Hızlı güncellemeler, eşikler ve izinler", + "fetchingCatalog": "Katalog getiriliyor...", + "fifteenMinutes": "15 dakika", + "fifteenSeconds": "15 saniye", + "filterByDirection": "Yöne göre filtrele", + "finish": "Bitir", + "fiveMinutes": "5 dakika", + "fiveSeconds": "5 saniye", + "fix": "Düzelt", + "gps": "GPS", + "gpsAdvertPolicy": "GPS ilan politikası", + "gpsAndLocation": "GPS ve Konum", + "gpsDiagnostics": "GPS tanılama", + "gpsSection": "GPS", + "help": "Yardım", + "hex": "Hex", + "hidden": "Gizli", + "howTheRadioAutoAddsDiscoveredNodes": "Radyonun keşfedilen düğümleri otomatik olarak nasıl eklediği.", + "images": "Görüntüler", + "importProfile": "Profili içe aktar", + "lastFix": "Son konum", + "latest": "En yeni", + "latitude": "Enlem", + "loadASavedRegion": "Kayıtlı bir bölge yükle", + "loading": "Yükleniyor", + "locationSharingHardwareAndUpdateInterval": "Konum paylaşımı, donanım ve güncelleme aralığı.", + "locationTelemetry": "Konum telemetrisi", + "lockDestination": "Hedefi kilitle", + "longitude": "Boylam", + "mapStyle": "Harita Stili", + "max": "Maks", + "maxZoom": "Maks Yakınlaştırma", + "messaging": "Mesajlaşma", + "metHistory": "MET geçmişi", + "min": "Min", + "minZoom": "Min Yakınlaştırma", + "moveDown": "Aşağı taşı", + "moveUp": "Yukarı taşı", + "multiAckMode": "Çoklu ACK modu", + "multiDeviceWorkspaceManagement": "Çoklu cihaz çalışma alanı yönetimi", + "myLocation": "Konumum", + "nameAndTelemetryShared": "Ad ve telemetri diğer cihazlarla paylaşılır.", + "newVersionAvailable": "Yeni sürüm: {version}", + "newer": "Daha yeni", + "noNeighboursFound": "Komşu bulunamadı", + "noServersFound": "Sunucu bulunamadı", + "notSet": "Ayarlanmadı", + "notifications": "Bildirimler", + "offZeroSeconds": "Kapalı (0 sn)", + "offlineMaps": "Çevrimdışı Haritalar", + "older": "Daha eski", + "oneByteMode0": "1 bayt (mod 0)", + "oneHour": "1 saat", + "oneMinute": "1 dakika", + "openPacketLogs": "Paket günlüklerini aç", + "packetTypeHelp": "Paket türü yardımı", + "pasteShareLinkOrHexAdvert": "Paylaşım bağlantısı veya Hex ilanı yapıştırın", + "pathHash": "Yol hash", + "pathSize": "Yol boyutu", + "ping": "Ping", + "polygon": "Çokgen", + "rawResponseCopied": "Ham yanıt kopyalandı", + "resendThroughNearestRepeaterOnFailure": "Başarısızlık durumunda en yakın aktarıcı üzerinden yeniden gönder", + "resolveContact": "Kişiyi çözümle", + "routingRetriesAndDestinationLock": "Yönlendirme, yeniden denemeler ve hedef kilidi", + "samples": "Örnekler", + "satellites": "Uydular", + "saving": "Kaydediliyor...", + "search": "Ara", + "searchByNameOrToken": "Ada veya jetona göre ara", + "searchDiscoveredNodes": "Keşfedilen düğümleri ara", + "searchInCurrentFilter": "Geçerli filtrede ara", + "searchLogs": "Günlüklerde ara...", + "searchSensors": "Sensörleri ara", + "searchThisSection": "Bu bölümde ara", + "selectedRelays": "Seçili aktarıcılar", + "sensor": "Sensör", + "serialError": "Seri hata: {error}", + "setPathForContact": "{name} için yol ayarla", + "shareLiveGps": "Canlı GPS paylaş", + "shareMyTiles": "Döşemelerimi paylaş", + "sharingLocationFromPhone": "Bu kanalda telefondan konum paylaşılıyor.", + "sharingLocationFromRadio": "Bu kanalda radyodan konum paylaşılıyor.", + "signalDbm": "Sinyal {rssi} dBm", + "sizeCompressionAndPreview": "Boyut, sıkıştırma ve önizleme", + "skip": "Atla", + "smallerFileSize": "Daha küçük dosya boyutu", + "sort": "Sırala", + "stoppedSharingLocation": "Bu kanalda konum paylaşımı durduruldu.", + "suppressNotificationsWhileInForeground": "Ön plandayken bildirimleri bastır", + "tabsAndNavigation": "Sekmeler ve Gezinme", + "templatesAndTutorials": "Şablonlar ve öğreticiler", + "tenMinutes": "10 dakika", + "tenSeconds": "10 saniye", + "testSendUpdate": "Test güncelleme gönder", + "themeLanguageAndDisplayPreferences": "Tema, dil ve görüntüleme tercihleri", + "thirtyMinutes": "30 dakika", + "thirtySeconds": "30 saniye", + "threeBytesMode2": "3 bayt (mod 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Trafik istatistikleri, mesaj geçmişi ve geliştirici araçları", + "twoBytesMode1": "2 bayt (mod 1)", + "twoMinutes": "2 dakika", + "undo": "Geri al", + "updated": "Güncellendi", + "useContactFlags": "Kişi bayraklarını kullan", + "useSavedCoordinates": "Kayıtlı koordinatları kullan", + "view": "Görüntüle", + "viewNeighbours": "Komşuları Görüntüle", + "viewPublicStats": "Herkese açık istatistikleri görüntüle", + "setRegionScope": "Bölge kapsamını ayarla", + "regionScope": "Bölge kapsamı", + "regionScopeNone": "Yok (genel)", + "clearRegionScope": "Kapsamı temizle", + "regionScopeWarning": "Yalnızca bu bölgeye izin veren aktarıcılar iletecektir.", + "discoverRegions": "Aktarıcılardan keşfet", + "discoveringRegions": "Bölgeler keşfediliyor...", + "enterRegionName": "Bölge adı (ör. auckland)", + "noRegionsFound": "Bu aktarıcıda bölge bulunamadı.", + "regionScopeSet": "Bölge kapsamı {name} olarak ayarlandı", + "regionScopeCleared": "Bölge kapsamı temizlendi" } diff --git a/lib/l10n/app_uk.arb b/lib/l10n/app_uk.arb index 5574570..8c50add 100644 --- a/lib/l10n/app_uk.arb +++ b/lib/l10n/app_uk.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "Button to restart BLE scanning" }, - "tapToConnect": "Торкніться, щоб підключитися", - "@tapToConnect": { - "description": "Subtitle text for device in scan list" - }, "deviceNotConnected": "Пристрій не підключено", "@deviceNotConnected": { "description": "Error message when device is not connected" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "Setting to show RX/TX indicators" }, - "displayPacketActivity": "Показувати індикатори активності пакетів у верхній панелі", - "@displayPacketActivity": { - "description": "Description for RX/TX indicators setting" - }, "disableMap": "Вимкнути мапу", "@disableMap": { "description": "Setting to disable the map tab" }, - "disableMapDescription": "Приховати вкладку мапи для зменшення споживання батареї", - "@disableMapDescription": { - "description": "Description for disable map setting" - }, "language": "Мова", "@language": { "description": "Language setting label" @@ -173,10 +161,6 @@ "@appVersion": { "description": "App version label" }, - "appName": "Назва застосунку", - "@appName": { - "description": "App name label" - }, "aboutMeshCoreSar": "Про MeshCore SAR", "@aboutMeshCoreSar": { "description": "About dialog title" @@ -308,10 +292,6 @@ "@resetPath": { "description": "Action to reset contact path for re-routing" }, - "publicKeyCopied": "Публічний ключ скопійовано в буфер обміну", - "@publicKeyCopied": { - "description": "Success message when public key is copied" - }, "copiedToClipboard": "{label} скопійовано в буфер обміну", "@copiedToClipboard": { "description": "Success message when a value is copied to clipboard", @@ -720,22 +700,6 @@ "@lastSeen": { "description": "Last seen label" }, - "roomStatus": "Стан кімнати", - "@roomStatus": { - "description": "Room status section header" - }, - "loginStatus": "Стан входу", - "@loginStatus": { - "description": "Login status label" - }, - "notLoggedIn": "Не увійшли", - "@notLoggedIn": { - "description": "Not logged in status" - }, - "adminAccess": "Доступ адміністратора", - "@adminAccess": { - "description": "Admin access label" - }, "yes": "Так", "@yes": { "description": "Yes answer" @@ -748,14 +712,6 @@ "@permissions": { "description": "Permissions label" }, - "passwordSaved": "Пароль збережено", - "@passwordSaved": { - "description": "Password saved label" - }, - "locationColon": "Місцезнаходження:", - "@locationColon": { - "description": "Location section header" - }, "telemetry": "Телеметрія", "@telemetry": { "description": "Telemetry section header" @@ -784,19 +740,6 @@ "@gpsTelemetry": { "description": "GPS from telemetry label" }, - "updated": "Оновлено", - "@updated": { - "description": "Updated timestamp label" - }, - "pathResetInfo": "Маршрут для {name} скинуто. Наступне повідомлення знайде новий маршрут.", - "@pathResetInfo": { - "description": "Info message after path reset", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "Повторно увійти до кімнати", "@reLoginToRoom": { "description": "Button to re-login to room" @@ -1158,10 +1101,6 @@ "@frequencyMHz": { "description": "Label for radio frequency field" }, - "frequencyExample": "напр., 869.618", - "@frequencyExample": { - "description": "Helper text example for frequency" - }, "bandwidth": "Ширина смуги", "@bandwidth": { "description": "Label for bandwidth dropdown" @@ -1265,47 +1204,6 @@ "@trailControls": { "description": "Trail controls tooltip" }, - "contactTrails": "Сліди контактів", - "@contactTrails": { - "description": "Contact trails section header" - }, - "showAllContactTrails": "Показати всі сліди контактів", - "@showAllContactTrails": { - "description": "Toggle label to show all contact trails" - }, - "noContactsWithLocationHistory": "Немає контактів з історією місцезнаходження", - "@noContactsWithLocationHistory": { - "description": "Subtitle when no contacts have trails" - }, - "showingTrailsForContacts": "Показуються сліди для {count} контактів", - "@showingTrailsForContacts": { - "description": "Subtitle showing number of contacts with trails", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "Окремі сліди контактів", - "@individualContactTrails": { - "description": "Expansion tile title for individual contact trails" - }, - "deviceInformation": "Інформація про пристрій", - "@deviceInformation": { - "description": "Device information section header" - }, - "bleName": "Назва BLE", - "@bleName": { - "description": "Bluetooth Low Energy device name label" - }, - "meshName": "Назва mesh", - "@meshName": { - "description": "Mesh network name label" - }, - "notSet": "Не задано", - "@notSet": { - "description": "Label when a value is not set" - }, "model": "Модель", "@model": { "description": "Device model label" @@ -1314,14 +1212,6 @@ "@version": { "description": "Version label" }, - "buildDate": "Дата збірки", - "@buildDate": { - "description": "Firmware build date label" - }, - "firmware": "Прошивка", - "@firmware": { - "description": "Firmware label" - }, "maxContacts": "Макс. контактів", "@maxContacts": { "description": "Maximum contacts capacity label" @@ -1334,26 +1224,6 @@ "@publicInfo": { "description": "Public information section header" }, - "meshNetworkName": "Назва mesh-мережі", - "@meshNetworkName": { - "description": "Mesh network name field label" - }, - "nameBroadcastInMesh": "Ім’я, що транслюється в mesh-оголошеннях", - "@nameBroadcastInMesh": { - "description": "Helper text for mesh network name field" - }, - "telemetryAndLocationSharing": "Телеметрія та поширення місцезнаходження", - "@telemetryAndLocationSharing": { - "description": "Telemetry and location sharing toggle label" - }, - "lat": "Шир.", - "@lat": { - "description": "Latitude field label (short form)" - }, - "lon": "Довг.", - "@lon": { - "description": "Longitude field label (short form)" - }, "useCurrentLocation": "Використати поточне місцезнаходження", "@useCurrentLocation": { "description": "Tooltip for use current location button" @@ -1383,15 +1253,6 @@ } } }, - "copiedToClipboardShort": "{label} скопійовано в буфер обміну", - "@copiedToClipboardShort": { - "description": "Short success message when copying to clipboard", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "Не вдалося зберегти: {error}", "@failedToSave": { "description": "Generic error message for save failures", @@ -1414,10 +1275,6 @@ "@sarTemplates": { "description": "SAR templates menu title" }, - "manageSarTemplates": "Керувати шаблонами SAR", - "@manageSarTemplates": { - "description": "Subtitle for SAR templates settings" - }, "addTemplate": "Додати шаблон", "@addTemplate": { "description": "Button to add new SAR template" @@ -1541,10 +1398,6 @@ "@ok": { "description": "OK button label" }, - "permissionsSection": "Дозволи", - "@permissionsSection": { - "description": "Permissions section header" - }, "locationPermission": "Дозвіл на геолокацію", "@locationPermission": { "description": "Location permission label" @@ -2109,94 +1962,6 @@ "@wizardWelcomeTitle": { "description": "Welcome wizard first page title" }, - "wizardWelcomeDescription": "Потужний інструмент офлайн-комунікації для операцій пошуку та рятування. Зв’язуйтеся зі своєю командою за допомогою mesh-радіо, коли традиційні мережі недоступні.", - "@wizardWelcomeDescription": { - "description": "Welcome wizard first page description" - }, - "wizardConnectingTitle": "Підключення до радіо", - "@wizardConnectingTitle": { - "description": "Wizard connecting page title" - }, - "wizardConnectingDescription": "Підключіть смартфон до радіопристрою MeshCore через Bluetooth, щоб почати спілкування поза мережею.", - "@wizardConnectingDescription": { - "description": "Wizard connecting page description" - }, - "wizardConnectingFeature1": "Скануйте сусідні пристрої MeshCore", - "@wizardConnectingFeature1": { - "description": "Wizard connecting feature 1" - }, - "wizardConnectingFeature2": "Сполучіть свій радіопристрій через Bluetooth", - "@wizardConnectingFeature2": { - "description": "Wizard connecting feature 2" - }, - "wizardConnectingFeature3": "Працює повністю офлайн - інтернет не потрібен", - "@wizardConnectingFeature3": { - "description": "Wizard connecting feature 3" - }, - "wizardChannelTitle": "Канали", - "@wizardChannelTitle": { - "description": "Wizard channel page title" - }, - "wizardChannelDescription": "Транслюйте повідомлення всім у каналі - ідеально для загальнокомандних оголошень і координації.", - "@wizardChannelDescription": { - "description": "Wizard channel page description" - }, - "wizardChannelFeature1": "Публічний канал для загального спілкування команди", - "@wizardChannelFeature1": { - "description": "Wizard channel feature 1" - }, - "wizardChannelFeature2": "Створюйте власні канали для окремих груп", - "@wizardChannelFeature2": { - "description": "Wizard channel feature 2" - }, - "wizardChannelFeature3": "Повідомлення автоматично ретранслюються mesh-мережею", - "@wizardChannelFeature3": { - "description": "Wizard channel feature 3" - }, - "wizardContactsTitle": "Контакти", - "@wizardContactsTitle": { - "description": "Wizard contacts page title" - }, - "wizardContactsDescription": "Члени вашої команди з’являються автоматично, коли приєднуються до mesh-мережі. Надсилайте їм прямі повідомлення або переглядайте їхнє місцезнаходження.", - "@wizardContactsDescription": { - "description": "Wizard contacts page description" - }, - "wizardContactsFeature1": "Контакти виявляються автоматично", - "@wizardContactsFeature1": { - "description": "Wizard contacts feature 1" - }, - "wizardContactsFeature2": "Надсилайте приватні прямі повідомлення", - "@wizardContactsFeature2": { - "description": "Wizard contacts feature 2" - }, - "wizardContactsFeature3": "Переглядайте рівень батареї та час останньої появи", - "@wizardContactsFeature3": { - "description": "Wizard contacts feature 3" - }, - "wizardMapTitle": "Мапа та місцезнаходження", - "@wizardMapTitle": { - "description": "Wizard map page title" - }, - "wizardMapDescription": "Відстежуйте команду в реальному часі та позначайте важливі місця для операцій пошуку та рятування.", - "@wizardMapDescription": { - "description": "Wizard map page description" - }, - "wizardMapFeature1": "Маркери SAR для знайдених людей, пожеж і зон збору", - "@wizardMapFeature1": { - "description": "Wizard map feature 1" - }, - "wizardMapFeature2": "GPS-відстеження членів команди в реальному часі", - "@wizardMapFeature2": { - "description": "Wizard map feature 2" - }, - "wizardMapFeature3": "Завантажуйте офлайн-мапи для віддалених районів", - "@wizardMapFeature3": { - "description": "Wizard map feature 3" - }, - "wizardMapFeature4": "Малюйте фігури та діліться тактичною інформацією", - "@wizardMapFeature4": { - "description": "Wizard map feature 4" - }, "viewWelcomeTutorial": "Переглянути вступний посібник", "@viewWelcomeTutorial": { "description": "Settings option to re-show welcome wizard" @@ -2352,29 +2117,10 @@ "posttxDelay": "Затримка після передачі", "bandpass": "Смуговий", "bandpassFilterVoice": "Смуговий фільтр голосу", - "frequency": "Частота", - "australia": "Австралія", - "australiaNarrow": "Австралія (Вузький)", - "australiaQld": "Австралія: QLD", - "australiaSaWa": "Австралія: SA, WA", - "newZealand": "Нова Зеландія", - "newZealandNarrow": "Нова Зеландія (Вузький)", - "switzerland": "Швейцарія", - "portugal433": "Португалія 433", - "portugal868": "Португалія 868", - "czechRepublicNarrow": "Чехія (Вузький)", - "eu433mhzLongRange": "ЄС 433МГц (Далекий)", - "euukDeprecated": "ЄС/Великобританія (Застаріле)", - "euukNarrow": "ЄС/Великобританія (Вузький)", - "usacanadaRecommended": "США/Канада (Рекомендовано)", - "vietnamDeprecated": "В'єтнам (Застаріле)", - "vietnamNarrow": "В'єтнам (Вузький)", "active": "Активно", "addContact": "Додати контакт", "all": "Усі", - "autoResolve": "Автоматичне вирішення", "clearAllLabel": "Очистити все", - "clearRelays": "Очистити реле", "clearFilters": "Очистити фільтри", "clearRoute": "Очистити маршрут", "clearMessages": "Очистити повідомлення", @@ -2400,10 +2146,7 @@ "send": "Надіслати", "sendAnyway": "Надіслати все одно", "share": "Поділитися", - "shareContact": "Поділитися контактом", "trace": "Трасування", - "use": "Використати", - "useSelectedFrequency": "Використати обрану частоту", "discovery": "Виявлення", "discoverRepeaters": "Виявити повторювачі", "discoverSensors": "Виявити датчики", @@ -2426,7 +2169,6 @@ "gpsModule": "Модуль GPS", "liveTraffic": "Живий трафік", "repeatersMap": "Карта повторювачів", - "spectrumScan": "Сканування спектру", "blePacketLogs": "Журнали BLE-пакетів", "onlineTraceDatabase": "База трасувань", "routePathByteSize": "Розмір шляху в байтах", @@ -2438,7 +2180,6 @@ "disableContacts": "Вимкнути контакти", "enableSensorsTab": "Увімкнути вкладку Датчики", "enableProfiles": "Увімкнути профілі", - "autoRouteRotation": "Автоматична ротація маршруту", "nearestRepeaterFallback": "Найближчий повторювач як резерв", "deleteAllStoredMessageHistory": "Видалити всю історію повідомлень", "messageFontSize": "Розмір шрифту повідомлень", @@ -2446,18 +2187,13 @@ "showMapDebugInfo": "Показати налагоджувальну інфо карти", "openMapInFullscreen": "Відкрити карту на повний екран", "showSarMarkersLabel": "Показати SAR-маркери", - "displaySarMarkersOnTheMainMap": "Показувати SAR-маркери на головній карті", - "showAllContactTrailsLabel": "Показати всі сліди контактів", "hideRepeatersOnMap": "Сховати повторювачі на карті", "setMapScale": "Встановити масштаб карти", "customMapScaleSaved": "Користувацький масштаб карти збережено", "voiceBitrate": "Бітрейт голосу", "voiceCompressor": "Компресор голосу", - "balancesQuietAndLoudSpeechLevels": "Вирівнює тихий і гучний рівні мови", "voiceLimiter": "Лімітер голосу", - "preventsClippingPeaksBeforeEncoding": "Запобігає обрізанню піків перед кодуванням", "micAutoGain": "Автопідсилення мікрофона", - "letsTheRecorderAdjustInputLevel": "Дозволяє рекордеру налаштувати рівень входу", "echoCancellation": "Придушення ехо", "noiseSuppression": "Придушення шуму", "trimSilenceInVoiceMessages": "Обрізати тишу в голосових повідомленнях", @@ -2499,13 +2235,10 @@ "staging": "Місце збору", "object": "Об'єкт", "quiet": "Тихо", - "moderate": "Помірно", "busy": "Зайнято", - "spectrumScanReturnedNoCandidateFrequencies": "Сканування спектру не знайшло частот-кандидатів", "searchMessages": "Пошук повідомлень", "sendImageFromGallery": "Надіслати зображення з галереї", "takePhoto": "Зробити фото", - "dmOnly": "Лише особисті повідомлення", "allMessages": "Усі повідомлення", "sendToPublicChannel": "Надіслати в публічний канал?", "selectMarkerTypeAndDestination": "Виберіть тип маркера та призначення", @@ -2524,8 +2257,6 @@ "wipeDevice": "Стерти пристрій", "destructiveDeviceActions": "Деструктивні дії пристрою.", "chooseAPresetOrFinetuneCustomRadioSettings": "Оберіть пресет або налаштуйте радіо вручну.", - "chooseTheNameAndLocationThisDeviceShares": "Оберіть ім'я та місцеположення, якими ділиться пристрій.", - "availableSpaceOnThisDevice": "Доступний простір на цьому пристрої.", "used": "Використано", "total": "Загалом", "renameValue": "Перейменувати значення", @@ -2543,8 +2274,6 @@ "onlineOnly": "Лише онлайн", "inBoth": "В обох", "source": "Джерело", - "manualRouteEdit": "Ручне редагування маршруту", - "observedMeshRoute": "Спостережуваний mesh-маршрут", "allMessagesCleared": "Усі повідомлення очищено", "onlineTraceDatabaseCleared": "Базу трасувань очищено", "packetLogsCleared": "Журнали пакетів очищено", @@ -2575,5 +2304,194 @@ "captured": "Захоплено", "size": "Розмір", "noCustomChannelsToClear": "Немає користувацьких каналів для очищення.", - "noDeviceContactsToClear": "Немає контактів пристрою для очищення." + "noDeviceContactsToClear": "Немає контактів пристрою для очищення.", + "autoSend": "Автовідправлення", + "autoSendDescription": "Надіслати поточним маршрутом.", + "sendDirect": "Пряме надсилання", + "sendDirectDescription": "Надіслати безпосередньо цьому контакту.", + "sendFlood": "Надсилання лавиною", + "sendFloodDescription": "Надіслати через усі ретранслятори.", + "postConnectDiscoveryTitle": "Виявити ретранслятори зараз?", + "postConnectDiscoveryDescription": "Запустіть виявлення ретрансляторів одразу після підключення, щоб побачити найближчі вузли MeshCore та швидше додати їх до своєї мережі.", + "aToZ": "А-Я", + "add": "Додати", + "addAdditionalDetails": "Додати додаткові деталі", + "addPeer": "Додати вузол", + "addPeerManually": "Додати вузол вручну", + "addedToContacts": "{name} додано до контактів", + "addedToSensors": "{name} додано до сенсорів", + "allowAll": "Дозволити все", + "anonymousRxStats": "Анонімна статистика RX", + "appearance": "Зовнішній вигляд", + "ascii": "ASCII", + "baseTelemetry": "Базова телеметрія", + "blePin": "BLE PIN", + "buzzerAlerts": "Сповіщення зумером", + "cancelImageReceive": "Скасувати отримання зображення", + "choose": "Обрати", + "chooseWhichTabsAndContactSectionsToShow": "Оберіть, які вкладки та розділи контактів показувати", + "clearCache": "Очистити кеш", + "clearHistory": "Очистити історію", + "clearLiveView": "Очистити живий перегляд", + "clearLogs": "Очистити журнали", + "clearOfflineCache": "Очистити офлайн-кеш?", + "clearOverlay": "Очистити накладання", + "clearRouteOnlyAfterAllRetriesFail": "Очистити маршрут лише після невдачі всіх спроб", + "codecBitrateAndAudioProcessing": "Кодек, бітрейт та обробка звуку", + "connectByIpAddress": "Підключити за IP-адресою", + "controlWhichAlertsYouReceive": "Керуйте сповіщеннями, які ви отримуєте", + "copyFullHex": "Копіювати повний Hex", + "copyRawResponse": "Копіювати необроблену відповідь", + "couldNotLoadMetHistory": "Не вдалося завантажити історію MET", + "customizeSensor": "Налаштувати {name}", + "data": "Дані", + "deleteGroup": "Видалити групу", + "deleteStyleConfirm": "Видалити {name}?", + "deleteThisDrawing": "Видалити цей {type}?", + "deny": "Відхилити", + "deviceInfo": "Інформація про пристрій", + "deviceSettings": "Налаштування пристрою", + "deviceTimeSynced": "Час пристрою синхронізовано з цим телефоном.", + "disableFastGpsPublishing": "Вимкнути швидку публікацію GPS", + "displayMarkersAndTraceDatabase": "Відображення, маркери та база даних трасувань", + "download": "Завантажити", + "environmentalTelemetry": "Телеметрія довкілля", + "errorCheckingForUpdates": "Помилка перевірки оновлень: {error}", + "errorGeneric": "Помилка: {error}", + "errorOpeningDownload": "Помилка відкриття завантаження: {error}", + "exportLogs": "Експортувати журнали", + "extraAggressiveAvifCompression": "Надагресивне стиснення AVIF", + "failedToAddContact": "Не вдалося додати контакт: {error}", + "failedToAddName": "Не вдалося додати {name}: {error}", + "failedToClearChannels": "Не вдалося очистити канали: {error}", + "failedToClearContacts": "Не вдалося очистити контакти: {error}", + "failedToConnectViaSerial": "Не вдалося підключитися через послідовний порт", + "failedToLoadPreviewImage": "Не вдалося завантажити попередній перегляд: {error}", + "failedToLoadTrace": "Не вдалося завантажити трасування: {error}", + "failedToSendSarMarker": "Не вдалося надіслати SAR маркер: {error}", + "failedToSetBuzzerMode": "Не вдалося встановити режим зумера: {error}", + "failedToSetGpsMode": "Не вдалося встановити режим GPS: {error}", + "failedToSyncDeviceTime": "Не вдалося синхронізувати час пристрою: {error}", + "failedToWipeDeviceData": "Не вдалося стерти дані пристрою: {error}", + "fastGpsTargetChannel": "Цільовий канал швидкого GPS", + "fastUpdatesThresholdsAndPermissions": "Швидкі оновлення, пороги та дозволи", + "fetchingCatalog": "Завантаження каталогу...", + "fifteenMinutes": "15 хвилин", + "fifteenSeconds": "15 секунд", + "filterByDirection": "Фільтрувати за напрямком", + "finish": "Завершити", + "fiveMinutes": "5 хвилин", + "fiveSeconds": "5 секунд", + "fix": "Фіксація", + "gps": "GPS", + "gpsAdvertPolicy": "Політика оголошень GPS", + "gpsAndLocation": "GPS та місцезнаходження", + "gpsDiagnostics": "Діагностика GPS", + "gpsSection": "GPS", + "help": "Допомога", + "hex": "Hex", + "hidden": "Приховано", + "howTheRadioAutoAddsDiscoveredNodes": "Як радіо автоматично додає виявлені вузли.", + "images": "Зображення", + "importProfile": "Імпортувати профіль", + "lastFix": "Остання фіксація", + "latest": "Найновіші", + "latitude": "Широта", + "loadASavedRegion": "Завантажити збережений регіон", + "loading": "Завантаження", + "locationSharingHardwareAndUpdateInterval": "Обмін місцезнаходженням, обладнання та інтервал оновлення.", + "locationTelemetry": "Телеметрія місцезнаходження", + "lockDestination": "Зафіксувати призначення", + "longitude": "Довгота", + "mapStyle": "Стиль мапи", + "max": "Макс", + "maxZoom": "Макс. масштаб", + "messaging": "Обмін повідомленнями", + "metHistory": "Історія MET", + "min": "Мін", + "minZoom": "Мін. масштаб", + "moveDown": "Перемістити вниз", + "moveUp": "Перемістити вгору", + "multiAckMode": "Режим мульти-ACK", + "multiDeviceWorkspaceManagement": "Керування робочим простором кількох пристроїв", + "myLocation": "Моє місцезнаходження", + "nameAndTelemetryShared": "Ім'я та телеметрія надсилаються іншим пристроям.", + "newVersionAvailable": "Нова версія: {version}", + "newer": "Новіші", + "noNeighboursFound": "Сусідів не знайдено", + "noServersFound": "Серверів не знайдено", + "notSet": "Не встановлено", + "notifications": "Сповіщення", + "offZeroSeconds": "Вимк (0 с)", + "offlineMaps": "Офлайн-мапи", + "older": "Старіші", + "oneByteMode0": "1 байт (режим 0)", + "oneHour": "1 година", + "oneMinute": "1 хвилина", + "openPacketLogs": "Відкрити журнали пакетів", + "packetTypeHelp": "Довідка типів пакетів", + "pasteShareLinkOrHexAdvert": "Вставте посилання або hex-оголошення", + "pathHash": "Хеш шляху", + "pathSize": "Розмір шляху", + "ping": "Ping", + "polygon": "Полігон", + "rawResponseCopied": "Необроблену відповідь скопійовано", + "resendThroughNearestRepeaterOnFailure": "Повторно надіслати через найближчий ретранслятор у разі невдачі", + "resolveContact": "Розв'язати контакт", + "routingRetriesAndDestinationLock": "Маршрутизація, повторні спроби та фіксація призначення", + "samples": "Зразки", + "satellites": "Супутники", + "saving": "Збереження...", + "search": "Пошук", + "searchByNameOrToken": "Шукати за іменем або токеном", + "searchDiscoveredNodes": "Шукати виявлені вузли", + "searchInCurrentFilter": "Шукати в поточному фільтрі", + "searchLogs": "Шукати в журналах...", + "searchSensors": "Шукати сенсори", + "searchThisSection": "Шукати в цьому розділі", + "selectedRelays": "Обрані ретранслятори", + "sensor": "Сенсор", + "serialError": "Помилка послідовного порту: {error}", + "setPathForContact": "Встановити шлях для {name}", + "shareLiveGps": "Поділитися GPS у реальному часі", + "shareMyTiles": "Поділитися моїми тайлами", + "sharingLocationFromPhone": "Обмін місцезнаходженням на цьому каналі з телефону.", + "sharingLocationFromRadio": "Обмін місцезнаходженням на цьому каналі з радіо.", + "signalDbm": "Сигнал {rssi} дБм", + "sizeCompressionAndPreview": "Розмір, стиснення та попередній перегляд", + "skip": "Пропустити", + "smallerFileSize": "Менший розмір файлу", + "sort": "Сортувати", + "stoppedSharingLocation": "Обмін місцезнаходженням на цьому каналі зупинено.", + "suppressNotificationsWhileInForeground": "Придушити сповіщення, коли застосунок на передньому плані", + "tabsAndNavigation": "Вкладки та навігація", + "templatesAndTutorials": "Шаблони та посібники", + "tenMinutes": "10 хвилин", + "tenSeconds": "10 секунд", + "testSendUpdate": "Тестове надсилання оновлення", + "themeLanguageAndDisplayPreferences": "Тема, мова та налаштування відображення", + "thirtyMinutes": "30 хвилин", + "thirtySeconds": "30 секунд", + "threeBytesMode2": "3 байти (режим 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "Статистика трафіку, історія повідомлень та інструменти розробника", + "twoBytesMode1": "2 байти (режим 1)", + "twoMinutes": "2 хвилини", + "undo": "Скасувати", + "updated": "Оновлено", + "useContactFlags": "Використовувати прапорці контактів", + "useSavedCoordinates": "Використати збережені координати", + "view": "Перегляд", + "viewNeighbours": "Переглянути сусідів", + "viewPublicStats": "Переглянути публічну статистику", + "setRegionScope": "Встановити область регіону", + "regionScope": "Область регіону", + "regionScopeNone": "Немає (глобально)", + "clearRegionScope": "Очистити область", + "regionScopeWarning": "Лише ретранслятори, що дозволяють цей регіон, будуть пересилати.", + "discoverRegions": "Виявити з ретрансляторів", + "discoveringRegions": "Виявлення регіонів...", + "enterRegionName": "Назва регіону (напр. auckland)", + "noRegionsFound": "Регіони не знайдені на цьому ретрансляторі.", + "regionScopeSet": "Область регіону встановлена на {name}", + "regionScopeCleared": "Область регіону очищена" } diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 5674dd3..aa7b114 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -36,10 +36,6 @@ "@scanAgain": { "description": "重新开始 BLE 扫描的按钮" }, - "tapToConnect": "点击连接", - "@tapToConnect": { - "description": "扫描列表中设备的副标题文本" - }, "deviceNotConnected": "设备未连接", "@deviceNotConnected": { "description": "设备未连接时的错误消息" @@ -133,18 +129,10 @@ "@showRxTxIndicators": { "description": "显示 RX/TX 指示器的设置" }, - "displayPacketActivity": "在顶部栏显示数据包活动指示器", - "@displayPacketActivity": { - "description": "RX/TX 指示器设置的描述" - }, "disableMap": "禁用地图", "@disableMap": { "description": "禁用地图标签页的设置" }, - "disableMapDescription": "隐藏地图标签页以减少电池消耗", - "@disableMapDescription": { - "description": "禁用地图设置的描述" - }, "language": "语言", "@language": { "description": "语言设置标签" @@ -173,10 +161,6 @@ "@appVersion": { "description": "应用版本标签" }, - "appName": "应用名称", - "@appName": { - "description": "应用名称标签" - }, "aboutMeshCoreSar": "关于 MeshCore 搜救助手", "@aboutMeshCoreSar": { "description": "关于对话框标题" @@ -308,10 +292,6 @@ "@resetPath": { "description": "重置联系人路径以重新路由的操作" }, - "publicKeyCopied": "公钥已复制到剪贴板", - "@publicKeyCopied": { - "description": "复制公钥后的成功消息" - }, "copiedToClipboard": "{label} 已复制到剪贴板", "@copiedToClipboard": { "description": "将值复制到剪贴板后的成功消息", @@ -720,22 +700,6 @@ "@lastSeen": { "description": "最后在线标签" }, - "roomStatus": "房间状态", - "@roomStatus": { - "description": "房间状态区域标题" - }, - "loginStatus": "登录状态", - "@loginStatus": { - "description": "登录状态标签" - }, - "notLoggedIn": "未登录", - "@notLoggedIn": { - "description": "未登录状态" - }, - "adminAccess": "管理员权限", - "@adminAccess": { - "description": "管理员权限标签" - }, "yes": "是", "@yes": { "description": "肯定回答" @@ -748,14 +712,6 @@ "@permissions": { "description": "权限标签" }, - "passwordSaved": "密码已保存", - "@passwordSaved": { - "description": "密码已保存标签" - }, - "locationColon": "位置:", - "@locationColon": { - "description": "位置区域标题" - }, "telemetry": "遥测", "@telemetry": { "description": "遥测区域标题" @@ -784,19 +740,6 @@ "@gpsTelemetry": { "description": "来自遥测的 GPS 标签" }, - "updated": "更新于", - "@updated": { - "description": "更新时间戳标签" - }, - "pathResetInfo": "已重置 {name} 的路径。下一条消息将寻找新路由。", - "@pathResetInfo": { - "description": "路径重置后的信息消息", - "placeholders": { - "name": { - "type": "String" - } - } - }, "reLoginToRoom": "重新登录到房间", "@reLoginToRoom": { "description": "重新登录到房间的按钮" @@ -1158,10 +1101,6 @@ "@frequencyMHz": { "description": "无线电频率字段标签" }, - "frequencyExample": "例如 869.618", - "@frequencyExample": { - "description": "频率示例帮助文本" - }, "bandwidth": "带宽", "@bandwidth": { "description": "带宽下拉菜单标签" @@ -1265,47 +1204,6 @@ "@trailControls": { "description": "轨迹控制工具提示" }, - "contactTrails": "联系人轨迹", - "@contactTrails": { - "description": "联系人轨迹区域标题" - }, - "showAllContactTrails": "显示所有联系人轨迹", - "@showAllContactTrails": { - "description": "显示所有联系人轨迹的开关标签" - }, - "noContactsWithLocationHistory": "没有带位置历史的联系人", - "@noContactsWithLocationHistory": { - "description": "当没有联系人拥有轨迹时的副标题" - }, - "showingTrailsForContacts": "正在显示 {count} 个联系人的轨迹", - "@showingTrailsForContacts": { - "description": "显示拥有轨迹的联系人数量的副标题", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "individualContactTrails": "单个联系人轨迹", - "@individualContactTrails": { - "description": "单个联系人轨迹的扩展磁贴标题" - }, - "deviceInformation": "设备信息", - "@deviceInformation": { - "description": "设备信息区域标题" - }, - "bleName": "BLE 名称", - "@bleName": { - "description": "低功耗蓝牙设备名称标签" - }, - "meshName": "Mesh 名称", - "@meshName": { - "description": "Mesh 网络名称标签" - }, - "notSet": "未设置", - "@notSet": { - "description": "当值未设置时的标签" - }, "model": "型号", "@model": { "description": "设备型号标签" @@ -1314,14 +1212,6 @@ "@version": { "description": "版本标签" }, - "buildDate": "构建日期", - "@buildDate": { - "description": "固件构建日期标签" - }, - "firmware": "固件", - "@firmware": { - "description": "固件标签" - }, "maxContacts": "最大联系人数量", "@maxContacts": { "description": "最大联系人容量标签" @@ -1334,26 +1224,6 @@ "@publicInfo": { "description": "公共信息区域标题" }, - "meshNetworkName": "Mesh 网络名称", - "@meshNetworkName": { - "description": "Mesh 网络名称字段标签" - }, - "nameBroadcastInMesh": "在 Mesh 广播中公布的名称", - "@nameBroadcastInMesh": { - "description": "Mesh 网络名称字段的帮助文本" - }, - "telemetryAndLocationSharing": "遥测与位置共享", - "@telemetryAndLocationSharing": { - "description": "遥测和位置共享开关标签" - }, - "lat": "纬度", - "@lat": { - "description": "纬度字段标签(短格式)" - }, - "lon": "经度", - "@lon": { - "description": "经度字段标签(短格式)" - }, "useCurrentLocation": "使用当前位置", "@useCurrentLocation": { "description": "使用当前位置按钮的工具提示" @@ -1383,15 +1253,6 @@ } } }, - "copiedToClipboardShort": "{label} 已复制到剪贴板", - "@copiedToClipboardShort": { - "description": "复制到剪贴板的简短成功消息", - "placeholders": { - "label": { - "type": "String" - } - } - }, "failedToSave": "保存失败:{error}", "@failedToSave": { "description": "保存失败的通用错误消息", @@ -1414,10 +1275,6 @@ "@sarTemplates": { "description": "搜救模板菜单标题" }, - "manageSarTemplates": "管理光标目标模板", - "@manageSarTemplates": { - "description": "搜救模板设置的副标题" - }, "addTemplate": "添加模板", "@addTemplate": { "description": "添加新搜救模板的按钮" @@ -1541,10 +1398,6 @@ "@ok": { "description": "确定按钮标签" }, - "permissionsSection": "权限", - "@permissionsSection": { - "description": "权限区域标题" - }, "locationPermission": "位置权限", "@locationPermission": { "description": "位置权限标签" @@ -2109,94 +1962,6 @@ "@wizardWelcomeTitle": { "description": "欢迎向导第一页标题" }, - "wizardWelcomeDescription": "一个功能强大的离网通信工具,用于搜索和救援行动。当传统网络不可用时,使用 Mesh 无线电技术与您的团队保持联系。", - "@wizardWelcomeDescription": { - "description": "欢迎向导第一页描述" - }, - "wizardConnectingTitle": "连接到您的无线电", - "@wizardConnectingTitle": { - "description": "向导连接页面标题" - }, - "wizardConnectingDescription": "通过蓝牙将您的智能手机连接到 MeshCore 无线电设备,开始离网通信。", - "@wizardConnectingDescription": { - "description": "向导连接页面描述" - }, - "wizardConnectingFeature1": "扫描附近的 MeshCore 设备", - "@wizardConnectingFeature1": { - "description": "向导连接功能 1" - }, - "wizardConnectingFeature2": "通过蓝牙与您的无线电配对", - "@wizardConnectingFeature2": { - "description": "向导连接功能 2" - }, - "wizardConnectingFeature3": "完全离线工作 - 无需互联网", - "@wizardConnectingFeature3": { - "description": "向导连接功能 3" - }, - "wizardChannelTitle": "频道", - "@wizardChannelTitle": { - "description": "向导频道页面标题" - }, - "wizardChannelDescription": "向频道上的所有人广播消息,非常适合全队通告和协调。", - "@wizardChannelDescription": { - "description": "向导频道页面描述" - }, - "wizardChannelFeature1": "用于一般团队通信的公共频道", - "@wizardChannelFeature1": { - "description": "向导频道功能 1" - }, - "wizardChannelFeature2": "为特定小组创建自定义频道", - "@wizardChannelFeature2": { - "description": "向导频道功能 2" - }, - "wizardChannelFeature3": "消息由 Mesh 网络自动转发", - "@wizardChannelFeature3": { - "description": "向导频道功能 3" - }, - "wizardContactsTitle": "联系人", - "@wizardContactsTitle": { - "description": "向导联系人页面标题" - }, - "wizardContactsDescription": "您的团队成员在加入 Mesh 网络时会自动出现。向他们发送直连消息或查看他们的位置。", - "@wizardContactsDescription": { - "description": "向导联系人页面描述" - }, - "wizardContactsFeature1": "联系人自动发现", - "@wizardContactsFeature1": { - "description": "向导联系人功能 1" - }, - "wizardContactsFeature2": "发送私密的直连消息", - "@wizardContactsFeature2": { - "description": "向导联系人功能 2" - }, - "wizardContactsFeature3": "查看电池电量和最后在线时间", - "@wizardContactsFeature3": { - "description": "向导联系人功能 3" - }, - "wizardMapTitle": "地图与位置", - "@wizardMapTitle": { - "description": "向导地图页面标题" - }, - "wizardMapDescription": "实时跟踪您的团队,并为搜救行动标记重要位置。", - "@wizardMapDescription": { - "description": "向导地图页面描述" - }, - "wizardMapFeature1": "用于标记找到的人员、火灾和集结区的搜救标记", - "@wizardMapFeature1": { - "description": "向导地图功能 1" - }, - "wizardMapFeature2": "团队成员的实时 GPS 跟踪", - "@wizardMapFeature2": { - "description": "向导地图功能 2" - }, - "wizardMapFeature3": "为偏远地区下载离线地图", - "@wizardMapFeature3": { - "description": "向导地图功能 3" - }, - "wizardMapFeature4": "绘制形状并共享战术信息", - "@wizardMapFeature4": { - "description": "向导地图功能 4" - }, "viewWelcomeTutorial": "查看欢迎教程", "@viewWelcomeTutorial": { "description": "设置中重新显示欢迎向导的选项" @@ -2352,29 +2117,10 @@ "posttxDelay": "发送后延迟", "bandpass": "带通", "bandpassFilterVoice": "带通语音滤波", - "frequency": "频率", - "australia": "澳大利亚", - "australiaNarrow": "澳大利亚(窄带)", - "australiaQld": "澳大利亚:QLD", - "australiaSaWa": "澳大利亚:SA, WA", - "newZealand": "新西兰", - "newZealandNarrow": "新西兰(窄带)", - "switzerland": "瑞士", - "portugal433": "葡萄牙 433", - "portugal868": "葡萄牙 868", - "czechRepublicNarrow": "捷克(窄带)", - "eu433mhzLongRange": "欧盟 433MHz(远距离)", - "euukDeprecated": "欧盟/英国(已弃用)", - "euukNarrow": "欧盟/英国(窄带)", - "usacanadaRecommended": "美国/加拿大(推荐)", - "vietnamDeprecated": "越南(已弃用)", - "vietnamNarrow": "越南(窄带)", "active": "活动", "addContact": "添加联系人", "all": "全部", - "autoResolve": "自动解析", "clearAllLabel": "清除全部", - "clearRelays": "清除中继", "clearFilters": "清除过滤器", "clearRoute": "清除路由", "clearMessages": "清除消息", @@ -2400,10 +2146,7 @@ "send": "发送", "sendAnyway": "仍然发送", "share": "分享", - "shareContact": "分享联系人", "trace": "追踪", - "use": "使用", - "useSelectedFrequency": "使用选定频率", "discovery": "发现", "discoverRepeaters": "发现中继器", "discoverSensors": "发现传感器", @@ -2426,7 +2169,6 @@ "gpsModule": "GPS 模块", "liveTraffic": "实时流量", "repeatersMap": "中继器地图", - "spectrumScan": "频谱扫描", "blePacketLogs": "BLE 数据包日志", "onlineTraceDatabase": "在线追踪数据库", "routePathByteSize": "路由路径字节大小", @@ -2438,7 +2180,6 @@ "disableContacts": "禁用联系人", "enableSensorsTab": "启用传感器标签", "enableProfiles": "启用配置文件", - "autoRouteRotation": "自动路由轮换", "nearestRepeaterFallback": "最近中继器回退", "deleteAllStoredMessageHistory": "删除所有存储的消息历史", "messageFontSize": "消息字体大小", @@ -2446,18 +2187,13 @@ "showMapDebugInfo": "显示地图调试信息", "openMapInFullscreen": "全屏打开地图", "showSarMarkersLabel": "显示 SAR 标记", - "displaySarMarkersOnTheMainMap": "在主地图上显示 SAR 标记", - "showAllContactTrailsLabel": "显示所有联系人轨迹", "hideRepeatersOnMap": "在地图上隐藏中继器", "setMapScale": "设置地图比例", "customMapScaleSaved": "自定义地图比例已保存", "voiceBitrate": "语音比特率", "voiceCompressor": "语音压缩器", - "balancesQuietAndLoudSpeechLevels": "平衡安静和响亮的语音级别", "voiceLimiter": "语音限制器", - "preventsClippingPeaksBeforeEncoding": "防止编码前的削波", "micAutoGain": "麦克风自动增益", - "letsTheRecorderAdjustInputLevel": "让录音器调整输入级别", "echoCancellation": "回声消除", "noiseSuppression": "噪音抑制", "trimSilenceInVoiceMessages": "修剪语音消息中的静音", @@ -2499,13 +2235,10 @@ "staging": "集结区", "object": "物体", "quiet": "安静", - "moderate": "中等", "busy": "繁忙", - "spectrumScanReturnedNoCandidateFrequencies": "频谱扫描未找到候选频率", "searchMessages": "搜索消息", "sendImageFromGallery": "从图库发送图片", "takePhoto": "拍照", - "dmOnly": "仅私信", "allMessages": "所有消息", "sendToPublicChannel": "发送到公共频道?", "selectMarkerTypeAndDestination": "选择标记类型和目标", @@ -2524,8 +2257,6 @@ "wipeDevice": "擦除设备", "destructiveDeviceActions": "破坏性设备操作。", "chooseAPresetOrFinetuneCustomRadioSettings": "选择预设或微调自定义无线电设置。", - "chooseTheNameAndLocationThisDeviceShares": "选择此设备共享的名称和位置。", - "availableSpaceOnThisDevice": "此设备上的可用空间。", "used": "已使用", "total": "总计", "renameValue": "重命名值", @@ -2543,8 +2274,6 @@ "onlineOnly": "仅在线", "inBoth": "两者中", "source": "来源", - "manualRouteEdit": "手动路由编辑", - "observedMeshRoute": "观察到的网格路由", "allMessagesCleared": "所有消息已清除", "onlineTraceDatabaseCleared": "在线追踪数据库已清除", "packetLogsCleared": "数据包日志已清除", @@ -2575,5 +2304,194 @@ "captured": "已捕获", "size": "大小", "noCustomChannelsToClear": "没有自定义频道可清除。", - "noDeviceContactsToClear": "没有设备联系人可清除。" + "noDeviceContactsToClear": "没有设备联系人可清除。", + "autoSend": "自动发送", + "autoSendDescription": "通过当前路径发送。", + "sendDirect": "直接发送", + "sendDirectDescription": "直接发送给此联系人。", + "sendFlood": "泛洪发送", + "sendFloodDescription": "通过所有中继器发送。", + "postConnectDiscoveryTitle": "现在发现中继器?", + "postConnectDiscoveryDescription": "连接后立即运行中继器发现,以查看附近的 MeshCore 节点并更快地将它们添加到您的网络中。", + "aToZ": "A-Z", + "add": "添加", + "addAdditionalDetails": "添加其他详情", + "addPeer": "添加节点", + "addPeerManually": "手动添加节点", + "addedToContacts": "{name} 已添加到联系人", + "addedToSensors": "{name} 已添加到传感器", + "allowAll": "全部允许", + "anonymousRxStats": "匿名接收统计", + "appearance": "外观", + "ascii": "ASCII", + "baseTelemetry": "基础遥测", + "blePin": "BLE PIN", + "buzzerAlerts": "蜂鸣器警报", + "cancelImageReceive": "取消接收图片", + "choose": "选择", + "chooseWhichTabsAndContactSectionsToShow": "选择要显示的标签页和联系人分区", + "clearCache": "清除缓存", + "clearHistory": "清除历史", + "clearLiveView": "清除实时视图", + "clearLogs": "清除日志", + "clearOfflineCache": "清除离线缓存?", + "clearOverlay": "清除叠加层", + "clearRouteOnlyAfterAllRetriesFail": "仅在所有重试失败后清除路由", + "codecBitrateAndAudioProcessing": "编解码器、比特率和音频处理", + "connectByIpAddress": "通过 IP 地址连接", + "controlWhichAlertsYouReceive": "控制接收哪些警报", + "copyFullHex": "复制完整 Hex", + "copyRawResponse": "复制原始响应", + "couldNotLoadMetHistory": "无法加载 MET 历史", + "customizeSensor": "自定义 {name}", + "data": "数据", + "deleteGroup": "删除群组", + "deleteStyleConfirm": "删除 {name}?", + "deleteThisDrawing": "删除此{type}?", + "deny": "拒绝", + "deviceInfo": "设备信息", + "deviceSettings": "设备设置", + "deviceTimeSynced": "设备时间已同步到此手机。", + "disableFastGpsPublishing": "禁用快速 GPS 发布", + "displayMarkersAndTraceDatabase": "显示、标记和轨迹数据库", + "download": "下载", + "environmentalTelemetry": "环境遥测", + "errorCheckingForUpdates": "检查更新出错:{error}", + "errorGeneric": "错误:{error}", + "errorOpeningDownload": "打开下载出错:{error}", + "exportLogs": "导出日志", + "extraAggressiveAvifCompression": "超强 AVIF 压缩", + "failedToAddContact": "添加联系人失败:{error}", + "failedToAddName": "添加 {name} 失败:{error}", + "failedToClearChannels": "清除频道失败:{error}", + "failedToClearContacts": "清除联系人失败:{error}", + "failedToConnectViaSerial": "通过串口连接失败", + "failedToLoadPreviewImage": "加载预览图片失败:{error}", + "failedToLoadTrace": "加载轨迹失败:{error}", + "failedToSendSarMarker": "发送 SAR 标记失败:{error}", + "failedToSetBuzzerMode": "设置蜂鸣器模式失败:{error}", + "failedToSetGpsMode": "设置 GPS 模式失败:{error}", + "failedToSyncDeviceTime": "同步设备时间失败:{error}", + "failedToWipeDeviceData": "擦除设备数据失败:{error}", + "fastGpsTargetChannel": "快速 GPS 目标频道", + "fastUpdatesThresholdsAndPermissions": "快速更新、阈值和权限", + "fetchingCatalog": "正在获取目录…", + "fifteenMinutes": "15 分钟", + "fifteenSeconds": "15 秒", + "filterByDirection": "按方向筛选", + "finish": "完成", + "fiveMinutes": "5 分钟", + "fiveSeconds": "5 秒", + "fix": "定位", + "gps": "GPS", + "gpsAdvertPolicy": "GPS 广播策略", + "gpsAndLocation": "GPS 与位置", + "gpsDiagnostics": "GPS 诊断", + "gpsSection": "GPS", + "help": "帮助", + "hex": "Hex", + "hidden": "已隐藏", + "howTheRadioAutoAddsDiscoveredNodes": "无线电自动添加已发现节点的方式。", + "images": "图片", + "importProfile": "导入配置文件", + "lastFix": "最后定位", + "latest": "最新", + "latitude": "纬度", + "loadASavedRegion": "加载已保存的区域", + "loading": "加载中", + "locationSharingHardwareAndUpdateInterval": "位置共享、硬件和更新间隔。", + "locationTelemetry": "位置遥测", + "lockDestination": "锁定目的地", + "longitude": "经度", + "mapStyle": "地图样式", + "max": "最大", + "maxZoom": "最大缩放", + "messaging": "消息传递", + "metHistory": "MET 历史", + "min": "最小", + "minZoom": "最小缩放", + "moveDown": "下移", + "moveUp": "上移", + "multiAckMode": "多重 ACK 模式", + "multiDeviceWorkspaceManagement": "多设备工作区管理", + "myLocation": "我的位置", + "nameAndTelemetryShared": "名称和遥测数据已与其他设备共享。", + "newVersionAvailable": "新版本:{version}", + "newer": "较新", + "noNeighboursFound": "未找到邻近节点", + "noServersFound": "未找到服务器", + "notSet": "未设置", + "notifications": "通知", + "offZeroSeconds": "关闭 (0 秒)", + "offlineMaps": "离线地图", + "older": "较旧", + "oneByteMode0": "1 字节(模式 0)", + "oneHour": "1 小时", + "oneMinute": "1 分钟", + "openPacketLogs": "打开数据包日志", + "packetTypeHelp": "数据包类型帮助", + "pasteShareLinkOrHexAdvert": "粘贴分享链接或 Hex 广播", + "pathHash": "路径哈希", + "pathSize": "路径大小", + "ping": "Ping", + "polygon": "多边形", + "rawResponseCopied": "原始响应已复制", + "resendThroughNearestRepeaterOnFailure": "失败时通过最近的中继器重新发送", + "resolveContact": "解析联系人", + "routingRetriesAndDestinationLock": "路由、重试和目的地锁定", + "samples": "采样", + "satellites": "卫星", + "saving": "保存中…", + "search": "搜索", + "searchByNameOrToken": "按名称或令牌搜索", + "searchDiscoveredNodes": "搜索已发现的节点", + "searchInCurrentFilter": "在当前筛选中搜索", + "searchLogs": "搜索日志…", + "searchSensors": "搜索传感器", + "searchThisSection": "搜索此分区", + "selectedRelays": "已选中继器", + "sensor": "传感器", + "serialError": "串口错误:{error}", + "setPathForContact": "为 {name} 设置路径", + "shareLiveGps": "共享实时 GPS", + "shareMyTiles": "共享我的地图瓦片", + "sharingLocationFromPhone": "正在从手机共享此频道的位置。", + "sharingLocationFromRadio": "正在从无线电共享此频道的位置。", + "signalDbm": "信号 {rssi} dBm", + "sizeCompressionAndPreview": "大小、压缩和预览", + "skip": "跳过", + "smallerFileSize": "更小的文件大小", + "sort": "排序", + "stoppedSharingLocation": "已停止在此频道上共享位置。", + "suppressNotificationsWhileInForeground": "前台运行时抑制通知", + "tabsAndNavigation": "标签页与导航", + "templatesAndTutorials": "模板和教程", + "tenMinutes": "10 分钟", + "tenSeconds": "10 秒", + "testSendUpdate": "测试发送更新", + "themeLanguageAndDisplayPreferences": "主题、语言和显示偏好", + "thirtyMinutes": "30 分钟", + "thirtySeconds": "30 秒", + "threeBytesMode2": "3 字节(模式 2)", + "trafficStatsMessageHistoryAndDeveloperTools": "流量统计、消息历史和开发者工具", + "twoBytesMode1": "2 字节(模式 1)", + "twoMinutes": "2 分钟", + "undo": "撤销", + "updated": "已更新", + "useContactFlags": "使用联系人标志", + "useSavedCoordinates": "使用已保存的坐标", + "view": "查看", + "viewNeighbours": "查看邻近节点", + "viewPublicStats": "查看公开统计", + "setRegionScope": "设置区域范围", + "regionScope": "区域范围", + "regionScopeNone": "无(全局)", + "clearRegionScope": "清除范围", + "regionScopeWarning": "只有允许此区域的中继器会转发。", + "discoverRegions": "从中继器发现", + "discoveringRegions": "正在发现区域...", + "enterRegionName": "区域名称(例如 auckland)", + "noRegionsFound": "此中继器上未找到区域。", + "regionScopeSet": "区域范围已设置为 {name}", + "regionScopeCleared": "区域范围已清除" } diff --git a/lib/l10n/untranslated.json b/lib/l10n/untranslated.json index 48d17db..9e26dfe 100644 --- a/lib/l10n/untranslated.json +++ b/lib/l10n/untranslated.json @@ -1,287 +1 @@ -{ - "de": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "el": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "es": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "fr": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "hr": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "it": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "pl": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "pt": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "ru": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "sl": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "tr": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "uk": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ], - - "zh": [ - "autoSend", - "autoSendDescription", - "sendDirect", - "sendDirectDescription", - "sendFlood", - "sendFloodDescription", - "postConnectDiscoveryTitle", - "postConnectDiscoveryDescription", - "setRegionScope", - "regionScope", - "regionScopeNone", - "clearRegionScope", - "regionScopeWarning", - "discoverRegions", - "discoveringRegions", - "enterRegionName", - "noRegionsFound", - "regionScopeSet", - "regionScopeCleared" - ] -} +{} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 16947b3..f4d96ca 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -393,7 +393,7 @@ class _MeshCoreSarAppState extends State { key: ValueKey( '${_locale?.languageCode ?? 'system'}_${_themeMode.name}', ), - title: 'MeshCore SAR', + onGenerateTitle: (context) => AppLocalizations.of(context)?.appTitle ?? 'MeshCore SAR', debugShowCheckedModeBanner: false, theme: AppTheme.getTheme(_themeMode, systemBrightness), locale: _locale, diff --git a/lib/providers/app_provider.dart b/lib/providers/app_provider.dart index f0acd85..e7f3ebf 100644 --- a/lib/providers/app_provider.dart +++ b/lib/providers/app_provider.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:math' as math; import 'package:flutter/foundation.dart'; +import '../l10n/app_localizations.dart'; import 'package:meshcore_client/meshcore_client.dart' show BufferReader, MeshCoreConstants; import 'package:shared_preferences/shared_preferences.dart'; @@ -2819,6 +2820,12 @@ class AppProvider with ChangeNotifier { notifyListeners(); } + Future _clearAppFallbackChannelLocationSharingState() async { + await locationTrackingService.updateFastLocationChannelIdx(null); + await locationTrackingService.setFastLocationUpdatesEnabled(false); + notifyListeners(); + } + bool _isAppFallbackLocationSharingActiveForChannel(int channelIdx) { return locationTrackingService.fastLocationUpdatesEnabled && locationTrackingService.fastLocationChannelIdx == channelIdx; @@ -2874,8 +2881,9 @@ class AppProvider with ChangeNotifier { Future setChannelLocationSharingEnabled( int channelIdx, - bool enabled, - ) async { + bool enabled, { + AppLocalizations? l10n, + }) async { if (channelIdx <= 0) { throw ArgumentError.value( channelIdx, @@ -2906,14 +2914,14 @@ class AppProvider with ChangeNotifier { throw StateError('Radio location sharing did not enable for this channel'); } notifyListeners(); - return const ChannelLocationSharingResult( - state: ChannelLocationSharingState( + return ChannelLocationSharingResult( + state: const ChannelLocationSharingState( mode: ChannelLocationSharingMode.hardware, isSharing: true, hardwareSupported: true, isConnected: true, ), - message: 'Sharing location on this channel from the radio.', + message: l10n?.sharingLocationFromRadio ?? 'Sharing location on this channel from the radio.', ); } @@ -2940,14 +2948,14 @@ class AppProvider with ChangeNotifier { rethrow; } notifyListeners(); - return const ChannelLocationSharingResult( - state: ChannelLocationSharingState( + return ChannelLocationSharingResult( + state: const ChannelLocationSharingState( mode: ChannelLocationSharingMode.appFallback, isSharing: true, hardwareSupported: false, isConnected: true, ), - message: 'Sharing location on this channel from the phone.', + message: l10n?.sharingLocationFromPhone ?? 'Sharing location on this channel from the phone.', ); } @@ -2974,28 +2982,28 @@ class AppProvider with ChangeNotifier { throw StateError('Radio location sharing is still enabled for this channel'); } notifyListeners(); - return const ChannelLocationSharingResult( - state: ChannelLocationSharingState( + return ChannelLocationSharingResult( + state: const ChannelLocationSharingState( mode: ChannelLocationSharingMode.hardware, isSharing: false, hardwareSupported: true, isConnected: true, ), - message: 'Stopped sharing location on this channel.', + message: l10n?.stoppedSharingLocation ?? 'Stopped sharing location on this channel.', ); } _hardwareChannelLocationSharingSupported = false; _hardwareChannelLocationSharingChannelIdx = null; notifyListeners(); - return const ChannelLocationSharingResult( - state: ChannelLocationSharingState( + return ChannelLocationSharingResult( + state: const ChannelLocationSharingState( mode: ChannelLocationSharingMode.appFallback, isSharing: false, hardwareSupported: false, isConnected: true, ), - message: 'Stopped sharing location on this channel.', + message: l10n?.stoppedSharingLocation ?? 'Stopped sharing location on this channel.', ); } @@ -4103,6 +4111,10 @@ class AppProvider with ChangeNotifier { _wasDeviceConnected = isConnected; final wasTracking = locationTrackingService.isTracking; + if (isConnected != wasConnected) { + unawaited(_clearAppFallbackChannelLocationSharingState()); + } + // Only stop tracking on disconnect - DON'T start on connect // Location tracking will be started AFTER initialization completes if (!isConnected && wasTracking) { diff --git a/lib/screens/add_contact_screen.dart b/lib/screens/add_contact_screen.dart index 2691bd3..67ab716 100644 --- a/lib/screens/add_contact_screen.dart +++ b/lib/screens/add_contact_screen.dart @@ -272,7 +272,7 @@ class _AddContactScreenState extends State { }, decoration: InputDecoration( labelText: 'Contact advert', - hintText: 'Paste a share link or hex advert', + hintText: AppLocalizations.of(context)!.pasteShareLinkOrHexAdvert, alignLabelWithHint: true, border: const OutlineInputBorder(), errorText: _validationError, diff --git a/lib/screens/contacts_tab.dart b/lib/screens/contacts_tab.dart index a2785b3..caee101 100644 --- a/lib/screens/contacts_tab.dart +++ b/lib/screens/contacts_tab.dart @@ -534,6 +534,7 @@ class _ContactsTabState extends State { final result = await context.read().setChannelLocationSharingEnabled( channelIdx, enabled, + l10n: AppLocalizations.of(context), ); if (!context.mounted) return; ToastLogger.success(context, result.message); @@ -1442,7 +1443,7 @@ class _ContactsTabState extends State { height: 1.1, ), decoration: InputDecoration( - hintText: 'Search this section', + hintText: AppLocalizations.of(context)!.searchThisSection, hintStyle: theme.textTheme.bodyMedium?.copyWith( color: colorScheme.onSurfaceVariant.withValues( alpha: 0.85, @@ -1601,7 +1602,7 @@ class _ContactsTabState extends State { final availableModes = _availableSortModes(section); return PopupMenuButton( - tooltip: 'Sort', + tooltip: AppLocalizations.of(context)!.sort, initialValue: selectedMode, onSelected: (sortMode) { setState(() { @@ -1862,7 +1863,7 @@ class _InferredContactGroupCard extends StatelessWidget { if (onDelete != null) ...[ const SizedBox(width: 2), IconButton( - tooltip: 'Delete group', + tooltip: AppLocalizations.of(context)!.deleteGroup, onPressed: onDelete, visualDensity: VisualDensity.compact, constraints: const BoxConstraints.tightFor( diff --git a/lib/screens/device_config_screen.dart b/lib/screens/device_config_screen.dart index bdad349..2a53652 100644 --- a/lib/screens/device_config_screen.dart +++ b/lib/screens/device_config_screen.dart @@ -854,7 +854,7 @@ class _DeviceConfigScreenState extends State { if (!mounted) return; setState(() => _buzzerLoading = false); ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('Failed to set buzzer mode: $e')), + SnackBar(content: Text(AppLocalizations.of(context)!.failedToSetBuzzerMode(e.toString()))), ); } } @@ -874,7 +874,7 @@ class _DeviceConfigScreenState extends State { setState(() => _gpsLoading = false); ScaffoldMessenger.of( context, - ).showSnackBar(SnackBar(content: Text('Failed to set GPS mode: $e'))); + ).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.failedToSetGpsMode(e.toString())))); } } @@ -980,8 +980,8 @@ class _DeviceConfigScreenState extends State { } if (!mounted) return; ScaffoldMessenger.of(context).showSnackBar( - const SnackBar( - content: Text('Device time synced to this phone.'), + SnackBar( + content: Text(AppLocalizations.of(context)!.deviceTimeSynced), backgroundColor: Colors.green, ), ); @@ -989,7 +989,7 @@ class _DeviceConfigScreenState extends State { if (!mounted) return; ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('Failed to sync device time: $e'), + content: Text(AppLocalizations.of(context)!.failedToSyncDeviceTime(e.toString())), backgroundColor: Theme.of(context).colorScheme.error, ), ); @@ -1055,7 +1055,7 @@ class _DeviceConfigScreenState extends State { if (!mounted) return; messenger.showSnackBar( SnackBar( - content: Text('Failed to wipe device data: $e'), + content: Text(AppLocalizations.of(context)!.failedToWipeDeviceData(e.toString())), backgroundColor: Theme.of(context).colorScheme.error, ), ); @@ -1146,7 +1146,7 @@ class _DeviceConfigScreenState extends State { if (!mounted) return; messenger.showSnackBar( SnackBar( - content: Text('Failed to clear contacts: $e'), + content: Text(AppLocalizations.of(context)!.failedToClearContacts(e.toString())), backgroundColor: Theme.of(context).colorScheme.error, ), ); @@ -1252,7 +1252,7 @@ class _DeviceConfigScreenState extends State { if (!mounted) return; messenger.showSnackBar( SnackBar( - content: Text('Failed to clear channels: $e'), + content: Text(AppLocalizations.of(context)!.failedToClearChannels(e.toString())), backgroundColor: Theme.of(context).colorScheme.error, ), ); @@ -1273,7 +1273,7 @@ class _DeviceConfigScreenState extends State { final locationSet = _advertLocationPolicy != 0; return Scaffold( - appBar: AppBar(title: const Text('Device Settings')), + appBar: AppBar(title: Text(AppLocalizations.of(context)!.deviceSettings)), body: ColoredBox( color: colorScheme.surface, child: SafeArea( @@ -1303,7 +1303,7 @@ class _DeviceConfigScreenState extends State { ), SizedBox(height: 12), _ConfigSectionCard( - title: 'Device info', + title: AppLocalizations.of(context)!.deviceInfo, subtitle: 'Capabilities, storage, and maintenance tools.', icon: Icons.info_outline_rounded, @@ -1323,7 +1323,7 @@ class _DeviceConfigScreenState extends State { SizedBox( width: cardWidth, child: _StorageStat( - label: 'BLE PIN', + label: AppLocalizations.of(context)!.blePin, value: _formatBlePin(deviceInfo.blePin), compact: true, ), @@ -1356,7 +1356,7 @@ class _DeviceConfigScreenState extends State { SizedBox( width: cardWidth, child: _StorageStat( - label: 'Path hash', + label: AppLocalizations.of(context)!.pathHash, value: _pathHashModeLabel( deviceInfo.pathHashMode!, ), @@ -1416,7 +1416,7 @@ class _DeviceConfigScreenState extends State { icon: _buzzerEnabled! ? Icons.volume_up_rounded : Icons.volume_off_rounded, - title: 'Buzzer alerts', + title: AppLocalizations.of(context)!.buzzerAlerts, description: 'Onboard buzzer for radio alerts', accentColor: _buzzerEnabled! ? colorScheme.primary @@ -1440,7 +1440,7 @@ class _DeviceConfigScreenState extends State { icon: _multiAcksEnabled ? Icons.mark_email_read_outlined : Icons.mark_email_unread_outlined, - title: 'Multi-ACK mode', + title: AppLocalizations.of(context)!.multiAckMode, description: 'Request extra acknowledgements', accentColor: _multiAcksEnabled ? colorScheme.primary @@ -1463,7 +1463,7 @@ class _DeviceConfigScreenState extends State { SizedBox(height: 12), _ConfigSectionCard( title: AppLocalizations.of(context)!.publicInfo, - subtitle: 'Name and telemetry shared with other devices.', + subtitle: AppLocalizations.of(context)!.nameAndTelemetryShared, icon: Icons.public_rounded, child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -1484,15 +1484,15 @@ class _DeviceConfigScreenState extends State { ), const SizedBox(height: 10), _ConfigDropdownField( - label: 'Base telemetry', + label: AppLocalizations.of(context)!.baseTelemetry, value: _baseTelemetryMode, - items: const [ - DropdownMenuItem(value: 0, child: Text('Deny')), + items: [ + DropdownMenuItem(value: 0, child: Text(AppLocalizations.of(context)!.deny)), DropdownMenuItem( value: 1, - child: Text('Use contact flags'), + child: Text(AppLocalizations.of(context)!.useContactFlags), ), - DropdownMenuItem(value: 2, child: Text('Allow all')), + DropdownMenuItem(value: 2, child: Text(AppLocalizations.of(context)!.allowAll)), ], onChanged: (value) { if (value == null) return; @@ -1504,15 +1504,15 @@ class _DeviceConfigScreenState extends State { ), const SizedBox(height: 10), _ConfigDropdownField( - label: 'Location telemetry', + label: AppLocalizations.of(context)!.locationTelemetry, value: _locationTelemetryMode, - items: const [ - DropdownMenuItem(value: 0, child: Text('Deny')), + items: [ + DropdownMenuItem(value: 0, child: Text(AppLocalizations.of(context)!.deny)), DropdownMenuItem( value: 1, - child: Text('Use contact flags'), + child: Text(AppLocalizations.of(context)!.useContactFlags), ), - DropdownMenuItem(value: 2, child: Text('Allow all')), + DropdownMenuItem(value: 2, child: Text(AppLocalizations.of(context)!.allowAll)), ], onChanged: (value) { if (value == null) return; @@ -1524,15 +1524,15 @@ class _DeviceConfigScreenState extends State { ), const SizedBox(height: 10), _ConfigDropdownField( - label: 'Environmental telemetry', + label: AppLocalizations.of(context)!.environmentalTelemetry, value: _environmentTelemetryMode, - items: const [ - DropdownMenuItem(value: 0, child: Text('Deny')), + items: [ + DropdownMenuItem(value: 0, child: Text(AppLocalizations.of(context)!.deny)), DropdownMenuItem( value: 1, - child: Text('Use contact flags'), + child: Text(AppLocalizations.of(context)!.useContactFlags), ), - DropdownMenuItem(value: 2, child: Text('Allow all')), + DropdownMenuItem(value: 2, child: Text(AppLocalizations.of(context)!.allowAll)), ], onChanged: (value) { if (value == null) return; @@ -1566,24 +1566,24 @@ class _DeviceConfigScreenState extends State { ), SizedBox(height: 12), _ConfigSectionCard( - title: 'GPS', - subtitle: 'Location sharing, hardware, and update interval.', + title: AppLocalizations.of(context)!.gpsSection, + subtitle: AppLocalizations.of(context)!.locationSharingHardwareAndUpdateInterval, icon: Icons.gps_fixed, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ _ConfigDropdownField( - label: 'GPS advert policy', + label: AppLocalizations.of(context)!.gpsAdvertPolicy, value: _advertLocationPolicy, - items: const [ - DropdownMenuItem(value: 0, child: Text('Hidden')), + items: [ + DropdownMenuItem(value: 0, child: Text(AppLocalizations.of(context)!.hidden)), DropdownMenuItem( value: 1, - child: Text('Share live GPS'), + child: Text(AppLocalizations.of(context)!.shareLiveGps), ), DropdownMenuItem( value: 2, - child: Text('Use saved coordinates'), + child: Text(AppLocalizations.of(context)!.useSavedCoordinates), ), ], onChanged: (value) { @@ -1641,20 +1641,20 @@ class _DeviceConfigScreenState extends State { fillColor: colorScheme.surfaceContainerLowest, ), isExpanded: true, - items: const [ - DropdownMenuItem(value: null, child: Text('Not set')), - DropdownMenuItem(value: 0, child: Text('Off (0 s)')), - DropdownMenuItem(value: 5, child: Text('5 seconds')), - DropdownMenuItem(value: 10, child: Text('10 seconds')), - DropdownMenuItem(value: 15, child: Text('15 seconds')), - DropdownMenuItem(value: 30, child: Text('30 seconds')), - DropdownMenuItem(value: 60, child: Text('1 minute')), - DropdownMenuItem(value: 120, child: Text('2 minutes')), - DropdownMenuItem(value: 300, child: Text('5 minutes')), - DropdownMenuItem(value: 600, child: Text('10 minutes')), - DropdownMenuItem(value: 900, child: Text('15 minutes')), - DropdownMenuItem(value: 1800, child: Text('30 minutes')), - DropdownMenuItem(value: 3600, child: Text('1 hour')), + items: [ + DropdownMenuItem(value: null, child: Text(AppLocalizations.of(context)!.notSet)), + DropdownMenuItem(value: 0, child: Text(AppLocalizations.of(context)!.offZeroSeconds)), + DropdownMenuItem(value: 5, child: Text(AppLocalizations.of(context)!.fiveSeconds)), + DropdownMenuItem(value: 10, child: Text(AppLocalizations.of(context)!.tenSeconds)), + DropdownMenuItem(value: 15, child: Text(AppLocalizations.of(context)!.fifteenSeconds)), + DropdownMenuItem(value: 30, child: Text(AppLocalizations.of(context)!.thirtySeconds)), + DropdownMenuItem(value: 60, child: Text(AppLocalizations.of(context)!.oneMinute)), + DropdownMenuItem(value: 120, child: Text(AppLocalizations.of(context)!.twoMinutes)), + DropdownMenuItem(value: 300, child: Text(AppLocalizations.of(context)!.fiveMinutes)), + DropdownMenuItem(value: 600, child: Text(AppLocalizations.of(context)!.tenMinutes)), + DropdownMenuItem(value: 900, child: Text(AppLocalizations.of(context)!.fifteenMinutes)), + DropdownMenuItem(value: 1800, child: Text(AppLocalizations.of(context)!.thirtyMinutes)), + DropdownMenuItem(value: 3600, child: Text(AppLocalizations.of(context)!.oneHour)), ], onChanged: (value) { setState(() { @@ -1687,7 +1687,7 @@ class _DeviceConfigScreenState extends State { Expanded( child: _CompactCoordinateField( controller: _latController, - label: 'Latitude', + label: AppLocalizations.of(context)!.latitude, onChanged: (_) => _markPublicInfoDirty(), ), ), @@ -1695,7 +1695,7 @@ class _DeviceConfigScreenState extends State { Expanded( child: _CompactCoordinateField( controller: _lonController, - label: 'Longitude', + label: AppLocalizations.of(context)!.longitude, onChanged: (_) => _markPublicInfoDirty(), ), ), @@ -1994,18 +1994,18 @@ class _DeviceConfigScreenState extends State { helperText: 'Hash size used in adverts and flood paths', ), - items: const [ + items: [ DropdownMenuItem( value: 0, - child: Text('1 byte (mode 0)'), + child: Text(AppLocalizations.of(context)!.oneByteMode0), ), DropdownMenuItem( value: 1, - child: Text('2 bytes (mode 1)'), + child: Text(AppLocalizations.of(context)!.twoBytesMode1), ), DropdownMenuItem( value: 2, - child: Text('3 bytes (mode 2)'), + child: Text(AppLocalizations.of(context)!.threeBytesMode2), ), ], onChanged: (int? newValue) { @@ -2070,7 +2070,7 @@ class _DeviceConfigScreenState extends State { SizedBox(height: 12), _ConfigSectionCard( title: AppLocalizations.of(context)!.autoDiscovery, - subtitle: 'How the radio auto-adds discovered nodes.', + subtitle: AppLocalizations.of(context)!.howTheRadioAutoAddsDiscoveredNodes, icon: Icons.person_search_rounded, child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -2754,14 +2754,14 @@ class _SaveActionButton extends StatelessWidget { ? Row( key: const ValueKey('saving'), mainAxisSize: MainAxisSize.min, - children: const [ - SizedBox( + children: [ + const SizedBox( width: 16, height: 16, child: CircularProgressIndicator(strokeWidth: 2.2), ), - SizedBox(width: 10), - Text('Saving...'), + const SizedBox(width: 10), + Text(AppLocalizations.of(context)!.saving), ], ) : Row( @@ -2881,14 +2881,14 @@ class _GpsDiagnosticsCard extends StatelessWidget { ], ), const SizedBox(height: 6), - _GpsDiagnosticsRow(label: 'Fix', value: fixValue), + _GpsDiagnosticsRow(label: AppLocalizations.of(context)!.fix, value: fixValue), const SizedBox(height: 4), - _GpsDiagnosticsRow(label: 'Satellites', value: satellitesValue), + _GpsDiagnosticsRow(label: AppLocalizations.of(context)!.satellites, value: satellitesValue), const SizedBox(height: 4), - _GpsDiagnosticsRow(label: 'Last fix', value: lastFixValue), + _GpsDiagnosticsRow(label: AppLocalizations.of(context)!.lastFix, value: lastFixValue), const SizedBox(height: 4), _GpsDiagnosticsRow( - label: 'Location', + label: AppLocalizations.of(context)!.location, value: locationValue, maxLines: 2, ), diff --git a/lib/screens/discovery_screen.dart b/lib/screens/discovery_screen.dart index 20707f9..74c0d6c 100644 --- a/lib/screens/discovery_screen.dart +++ b/lib/screens/discovery_screen.dart @@ -69,7 +69,7 @@ class _DiscoveryScreenState extends State { actions: [ TextButton( onPressed: () => Navigator.of(dialogContext).pop(false), - child: const Text('Cancel'), + child: Text(AppLocalizations.of(context)!.cancel), ), FilledButton( onPressed: () => Navigator.of(dialogContext).pop(true), @@ -256,7 +256,7 @@ class _DiscoveryScreenState extends State { if (addError != null) { if (mounted) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('Failed to add contact: $addError')), + SnackBar(content: Text(AppLocalizations.of(context)!.failedToAddContact(addError.toString()))), ); } return false; @@ -775,7 +775,7 @@ class _DiscoveryScreenState extends State { IconButton( visualDensity: VisualDensity.compact, icon: const Icon(Icons.person_add_alt_1), - tooltip: 'Resolve contact', + tooltip: AppLocalizations.of(context)!.resolveContact, onPressed: isConnected ? () => _resolveAdvert(advert) : null, @@ -848,7 +848,7 @@ class _DiscoveryScreenState extends State { height: 1.1, ), decoration: InputDecoration( - hintText: 'Search discovered nodes', + hintText: AppLocalizations.of(context)!.searchDiscoveredNodes, hintStyle: theme.textTheme.bodyMedium?.copyWith( color: colorScheme.onSurfaceVariant.withValues( alpha: 0.85, diff --git a/lib/screens/live_traffic_screen.dart b/lib/screens/live_traffic_screen.dart index ad8cbc1..be0ca89 100644 --- a/lib/screens/live_traffic_screen.dart +++ b/lib/screens/live_traffic_screen.dart @@ -155,17 +155,17 @@ class _LiveTrafficScreenState extends State { if (widget.openPacketLogs != null) IconButton( onPressed: widget.openPacketLogs, - tooltip: 'Open packet logs', + tooltip: AppLocalizations.of(context)!.openPacketLogs, icon: const Icon(Icons.list_alt_rounded), ), IconButton( onPressed: _openStatsDashboard, - tooltip: 'View public stats', + tooltip: AppLocalizations.of(context)!.viewPublicStats, icon: const Icon(Icons.open_in_new), ), IconButton( onPressed: () => _showPacketTypeHelpSheet(context), - tooltip: 'Packet type help', + tooltip: AppLocalizations.of(context)!.packetTypeHelp, icon: const Icon(Icons.help_outline), ), IconButton( @@ -174,7 +174,7 @@ class _LiveTrafficScreenState extends State { _clearedAt = widget.now(); }); }, - tooltip: 'Clear live view', + tooltip: AppLocalizations.of(context)!.clearLiveView, icon: const Icon(Icons.cleaning_services_outlined), ), ], @@ -986,7 +986,7 @@ class _LiveTrafficCard extends StatelessWidget { style: TextStyle(color: scheme.onSurfaceVariant), ), const SizedBox(height: 16), - Text('Hex', style: Theme.of(context).textTheme.titleSmall), + Text(AppLocalizations.of(context)!.hex, style: Theme.of(context).textTheme.titleSmall), const SizedBox(height: 8), Container( width: double.infinity, @@ -1006,7 +1006,7 @@ class _LiveTrafficCard extends StatelessWidget { ), ), const SizedBox(height: 16), - Text('ASCII', style: Theme.of(context).textTheme.titleSmall), + Text(AppLocalizations.of(context)!.ascii, style: Theme.of(context).textTheme.titleSmall), const SizedBox(height: 8), Container( width: double.infinity, diff --git a/lib/screens/map_tab.dart b/lib/screens/map_tab.dart index e984e53..224ee46 100644 --- a/lib/screens/map_tab.dart +++ b/lib/screens/map_tab.dart @@ -1881,7 +1881,7 @@ class _MapTabState extends State with AutomaticKeepAliveClientMixin { if (!mounted) return; ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('Failed to send SAR marker: $e'), + content: Text(AppLocalizations.of(context)!.failedToSendSarMarker(e.toString())), backgroundColor: Colors.red, ), ); diff --git a/lib/screens/messages_tab.dart b/lib/screens/messages_tab.dart index 22db489..9a76535 100644 --- a/lib/screens/messages_tab.dart +++ b/lib/screens/messages_tab.dart @@ -1691,7 +1691,7 @@ class _MessagesTabState extends State { actions: [ TextButton( onPressed: () => Navigator.of(dialogContext).pop(false), - child: const Text('Cancel'), + child: Text(AppLocalizations.of(dialogContext)!.cancel), ), FilledButton( onPressed: () => Navigator.of(dialogContext).pop(true), @@ -1776,6 +1776,7 @@ class _MessagesTabState extends State { final result = await context.read().setChannelLocationSharingEnabled( channelIdx, enabled, + l10n: AppLocalizations.of(context), ); if (!mounted) return; ToastLogger.success(context, result.message); @@ -2059,7 +2060,7 @@ class _MessagesTabState extends State { controller: searchController, autofocus: true, decoration: InputDecoration( - hintText: 'Search in current filter', + hintText: AppLocalizations.of(context)!.searchInCurrentFilter, prefixIcon: const Icon(Icons.search), suffixIcon: searchController.text.isEmpty ? null diff --git a/lib/screens/offline_map_screen.dart b/lib/screens/offline_map_screen.dart index 2ded07c..21209e7 100644 --- a/lib/screens/offline_map_screen.dart +++ b/lib/screens/offline_map_screen.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import '../l10n/app_localizations.dart'; import 'package:flutter_map/flutter_map.dart'; import 'package:latlong2/latlong.dart'; import 'package:provider/provider.dart'; @@ -42,7 +43,7 @@ class _OfflineMapScreenState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: const Text('Offline Maps'), + title: Text(AppLocalizations.of(context)!.offlineMaps), actions: [ Consumer( builder: (context, provider, _) { @@ -67,7 +68,7 @@ class _OfflineMapScreenState extends State { builder: (context, provider, _) { return PopupMenuButton( icon: const Icon(Icons.layers), - tooltip: 'Map Style', + tooltip: AppLocalizations.of(context)!.mapStyle, onSelected: (layer) => provider.setSelectedLayer(layer), itemBuilder: (_) => [ for (final layer in MapLayer.allLayers) @@ -195,7 +196,7 @@ class _OfflineMapScreenState extends State { border: OutlineInputBorder(), ), isExpanded: true, - hint: const Text('Load a saved region'), + hint: Text(AppLocalizations.of(context)!.loadASavedRegion), items: provider.localStyles .where((s) => s.region != null) .map((style) => DropdownMenuItem( @@ -224,7 +225,7 @@ class _OfflineMapScreenState extends State { children: [ Expanded( child: _ZoomSelector( - label: 'Min Zoom', + label: AppLocalizations.of(context)!.minZoom, value: provider.minZoom, onChanged: provider.setMinZoom, ), @@ -232,7 +233,7 @@ class _OfflineMapScreenState extends State { const SizedBox(width: 16), Expanded( child: _ZoomSelector( - label: 'Max Zoom', + label: AppLocalizations.of(context)!.maxZoom, value: provider.maxZoom, onChanged: provider.setMaxZoom, ), @@ -305,7 +306,7 @@ class _OfflineMapScreenState extends State { ? () => provider.startDownload() : null, icon: const Icon(Icons.download), - label: const Text('Download'), + label: Text(AppLocalizations.of(context)!.download), ), ), if (provider.tileOverlays.isNotEmpty) ...[ @@ -313,7 +314,7 @@ class _OfflineMapScreenState extends State { IconButton( onPressed: provider.clearOverlays, icon: const Icon(Icons.layers_clear), - tooltip: 'Clear overlay', + tooltip: AppLocalizations.of(context)!.clearOverlay, ), ], if (provider.cacheSizeBytes > 0) ...[ @@ -321,7 +322,7 @@ class _OfflineMapScreenState extends State { IconButton( onPressed: () => _confirmClearCache(provider), icon: const Icon(Icons.delete_forever), - tooltip: 'Clear cache', + tooltip: AppLocalizations.of(context)!.clearCache, ), ], ], @@ -330,7 +331,7 @@ class _OfflineMapScreenState extends State { child: OutlinedButton.icon( onPressed: () => provider.cancelDownload(), icon: const Icon(Icons.cancel), - label: const Text('Cancel'), + label: Text(AppLocalizations.of(context)!.cancel), style: OutlinedButton.styleFrom( foregroundColor: Colors.red, ), @@ -390,7 +391,7 @@ class _OfflineMapScreenState extends State { // Server toggle SwitchListTile( - title: const Text('Share my tiles'), + title: Text(AppLocalizations.of(context)!.shareMyTiles), subtitle: Text( provider.isServerRunning ? 'Other devices can fetch tiles from this device' @@ -449,7 +450,7 @@ class _OfflineMapScreenState extends State { IconButton( icon: const Icon(Icons.delete_outline, size: 20), - tooltip: 'Delete', + tooltip: AppLocalizations.of(context)!.delete, onPressed: () => _confirmDeleteStyle( context, provider, style), ), @@ -481,13 +482,13 @@ class _OfflineMapScreenState extends State { else IconButton( icon: const Icon(Icons.refresh, size: 20), - tooltip: 'Refresh', + tooltip: AppLocalizations.of(context)!.refresh, onPressed: () => provider.refreshPeerCatalogs(), ), IconButton( icon: const Icon(Icons.add, size: 20), - tooltip: 'Add peer manually', + tooltip: AppLocalizations.of(context)!.addPeerManually, onPressed: () => _showAddPeerDialog(context, provider), ), @@ -524,7 +525,7 @@ class _OfflineMapScreenState extends State { .map((peer) => ListTile( leading: const Icon(Icons.devices), title: Text(peer.ipAddress), - subtitle: const Text('Fetching catalog...'), + subtitle: Text(AppLocalizations.of(context)!.fetchingCatalog), trailing: IconButton( icon: const Icon( Icons.remove_circle_outline, @@ -556,7 +557,7 @@ class _OfflineMapScreenState extends State { if (provider.isSyncing) TextButton( onPressed: () => provider.cancelSync(), - child: const Text('Cancel'), + child: Text(AppLocalizations.of(context)!.cancel), ), ], ), @@ -691,7 +692,7 @@ class _OfflineMapScreenState extends State { showDialog( context: context, builder: (context) => AlertDialog( - title: const Text('Add Peer'), + title: Text(AppLocalizations.of(context)!.addPeer), content: TextField( controller: controller, decoration: const InputDecoration( @@ -710,7 +711,7 @@ class _OfflineMapScreenState extends State { actions: [ TextButton( onPressed: () => Navigator.pop(context), - child: const Text('Cancel'), + child: Text(AppLocalizations.of(context)!.cancel), ), TextButton( onPressed: () { @@ -720,7 +721,7 @@ class _OfflineMapScreenState extends State { Navigator.pop(context); } }, - child: const Text('Add'), + child: Text(AppLocalizations.of(context)!.add), ), ], ), @@ -735,7 +736,7 @@ class _OfflineMapScreenState extends State { showDialog( context: context, builder: (dialogContext) => AlertDialog( - title: Text('Delete ${style.displayName}?'), + title: Text(AppLocalizations.of(context)!.deleteStyleConfirm(style.displayName)), content: Text( '${_formatNumber(style.tileCount)} tiles, ' '${_formatBytes(style.sizeBytes)} will be deleted.', @@ -743,7 +744,7 @@ class _OfflineMapScreenState extends State { actions: [ TextButton( onPressed: () => Navigator.pop(dialogContext), - child: const Text('Cancel'), + child: Text(AppLocalizations.of(context)!.cancel), ), TextButton( onPressed: () { @@ -751,7 +752,7 @@ class _OfflineMapScreenState extends State { Navigator.pop(dialogContext); }, child: - const Text('Delete', style: TextStyle(color: Colors.red)), + Text(AppLocalizations.of(context)!.delete, style: const TextStyle(color: Colors.red)), ), ], ), @@ -762,13 +763,13 @@ class _OfflineMapScreenState extends State { showDialog( context: context, builder: (context) => AlertDialog( - title: const Text('Clear offline cache?'), + title: Text(AppLocalizations.of(context)!.clearOfflineCache), content: Text( 'This will delete ${_formatBytes(provider.cacheSizeBytes)} of cached tiles.'), actions: [ TextButton( onPressed: () => Navigator.pop(context), - child: const Text('Cancel'), + child: Text(AppLocalizations.of(context)!.cancel), ), TextButton( onPressed: () { @@ -776,7 +777,7 @@ class _OfflineMapScreenState extends State { Navigator.pop(context); }, child: - const Text('Delete', style: TextStyle(color: Colors.red)), + Text(AppLocalizations.of(context)!.delete, style: const TextStyle(color: Colors.red)), ), ], ), diff --git a/lib/screens/packet_log_screen.dart b/lib/screens/packet_log_screen.dart index e67449c..65b737f 100644 --- a/lib/screens/packet_log_screen.dart +++ b/lib/screens/packet_log_screen.dart @@ -96,7 +96,7 @@ class _PacketLogScreenState extends State { if (context.mounted) { ScaffoldMessenger.of( context, - ).showSnackBar(SnackBar(content: Text('Export failed: $e'))); + ).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.exportFailed(e.toString())))); } } } @@ -147,7 +147,7 @@ class _PacketLogScreenState extends State { if (context.mounted) { ScaffoldMessenger.of( context, - ).showSnackBar(SnackBar(content: Text('Export failed: $e'))); + ).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.exportFailed(e.toString())))); } } } @@ -222,7 +222,7 @@ class _PacketLogScreenState extends State { ? Icons.arrow_downward : Icons.arrow_upward, ), - tooltip: 'Filter by direction', + tooltip: AppLocalizations.of(context)!.filterByDirection, onSelected: (direction) { setState(() { _filterDirection = direction; @@ -314,7 +314,7 @@ class _PacketLogScreenState extends State { // Export menu PopupMenuButton( icon: const Icon(Icons.share), - tooltip: 'Export logs', + tooltip: AppLocalizations.of(context)!.exportLogs, itemBuilder: (context) => [ PopupMenuItem( value: 'csv', @@ -348,7 +348,7 @@ class _PacketLogScreenState extends State { // Clear logs IconButton( icon: const Icon(Icons.delete_outline), - tooltip: 'Clear logs', + tooltip: AppLocalizations.of(context)!.clearLogs, onPressed: () => _clearLogs(context), ), ], @@ -360,7 +360,7 @@ class _PacketLogScreenState extends State { padding: const EdgeInsets.all(8.0), child: TextField( decoration: InputDecoration( - hintText: 'Search logs...', + hintText: AppLocalizations.of(context)!.searchLogs, prefixIcon: const Icon(Icons.search), suffixIcon: _searchQuery.isNotEmpty ? IconButton( @@ -615,7 +615,7 @@ class _PacketLogCard extends StatelessWidget { const Spacer(), IconButton( onPressed: onCopy, - tooltip: 'Copy full hex', + tooltip: AppLocalizations.of(context)!.copyFullHex, icon: const Icon(Icons.copy_all_rounded, size: 18), visualDensity: VisualDensity.compact, ), diff --git a/lib/screens/profiles_screen.dart b/lib/screens/profiles_screen.dart index 5b04cc5..7232ab6 100644 --- a/lib/screens/profiles_screen.dart +++ b/lib/screens/profiles_screen.dart @@ -25,7 +25,7 @@ class ProfilesScreen extends StatelessWidget { .importProfileFromFile(); }, icon: const Icon(Icons.file_open), - tooltip: 'Import profile', + tooltip: AppLocalizations.of(context)!.importProfile, ), ], ), @@ -143,9 +143,9 @@ class ProfilesScreen extends StatelessWidget { child: Text(AppLocalizations.of(context)!.rename), ), if (!profile.isDefault) - const PopupMenuItem( + PopupMenuItem( value: 'delete', - child: Text('Delete'), + child: Text(AppLocalizations.of(context)!.delete), ), ], ), @@ -197,7 +197,7 @@ class ProfilesScreen extends StatelessWidget { actions: [ TextButton( onPressed: () => Navigator.of(context).pop(), - child: const Text('Cancel'), + child: Text(AppLocalizations.of(context)!.cancel), ), FilledButton( onPressed: () => Navigator.of(context).pop(controller.text.trim()), @@ -231,11 +231,11 @@ class ProfilesScreen extends StatelessWidget { actions: [ TextButton( onPressed: () => Navigator.of(context).pop(), - child: const Text('Cancel'), + child: Text(AppLocalizations.of(context)!.cancel), ), FilledButton( onPressed: () => Navigator.of(context).pop(controller.text.trim()), - child: const Text('Save'), + child: Text(AppLocalizations.of(context)!.save), ), ], ), diff --git a/lib/screens/repeaters_map_screen.dart b/lib/screens/repeaters_map_screen.dart index 7e60074..38fbf8d 100644 --- a/lib/screens/repeaters_map_screen.dart +++ b/lib/screens/repeaters_map_screen.dart @@ -269,12 +269,12 @@ class _RepeatersMapScreenState extends State { await connectionProvider.getContact(_hexToBytes(repeater.publicKey)); if (!mounted) return; ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('${repeater.name} added to contacts')), + SnackBar(content: Text(AppLocalizations.of(context)!.addedToContacts(repeater.name))), ); } catch (error) { if (!mounted) return; ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('Failed to add ${repeater.name}: $error')), + SnackBar(content: Text(AppLocalizations.of(context)!.failedToAddName(repeater.name, error.toString()))), ); } finally { if (mounted) { @@ -374,7 +374,7 @@ class _RepeatersMapScreenState extends State { ? null : () => _loadRepeaters(forceRefresh: true), icon: const Icon(Icons.refresh), - tooltip: 'Refresh', + tooltip: AppLocalizations.of(context)!.refresh, ), ], ), @@ -491,7 +491,7 @@ class _RepeatersMapScreenState extends State { ), floatingActionButton: FloatingActionButton( onPressed: _jumpToMyLocation, - tooltip: 'My location', + tooltip: AppLocalizations.of(context)!.myLocation, child: const Icon(Icons.my_location), ), ); diff --git a/lib/screens/sensors_tab.dart b/lib/screens/sensors_tab.dart index a31988c..e2db813 100644 --- a/lib/screens/sensors_tab.dart +++ b/lib/screens/sensors_tab.dart @@ -108,7 +108,7 @@ class _SensorsTabState extends State { if (!sheetContext.mounted) return; Navigator.of(sheetContext).pop(); ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('${contact.displayName} added to Sensors')), + SnackBar(content: Text(AppLocalizations.of(context)!.addedToSensors(contact.displayName))), ); }, ), @@ -183,14 +183,14 @@ class _SensorsTabState extends State { actions: [ if (sensorsProvider.labelOverrideFor(publicKeyHex, option.key) != null) - TextButton(onPressed: controller.clear, child: const Text('Reset')), + TextButton(onPressed: controller.clear, child: Text(AppLocalizations.of(dialogContext)!.reset)), TextButton( onPressed: () => Navigator.of(dialogContext).pop(false), - child: const Text('Cancel'), + child: Text(AppLocalizations.of(dialogContext)!.cancel), ), FilledButton( onPressed: () => Navigator.of(dialogContext).pop(true), - child: const Text('Save'), + child: Text(AppLocalizations.of(dialogContext)!.save), ), ], ), @@ -543,10 +543,10 @@ class _AddSensorSheetState extends State { child: TextField( controller: _searchController, onChanged: (_) => setState(() {}), - decoration: const InputDecoration( - prefixIcon: Icon(Icons.search), - hintText: 'Search sensors', - border: OutlineInputBorder(), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.search), + hintText: AppLocalizations.of(context)!.searchSensors, + border: const OutlineInputBorder(), ), ), ), @@ -655,7 +655,7 @@ class SensorCustomizeView extends StatelessWidget { return Scaffold( appBar: AppBar( - title: Text('Customize ${contact?.displayName ?? 'Sensor'}'), + title: Text(AppLocalizations.of(context)!.customizeSensor(contact?.displayName ?? AppLocalizations.of(context)!.sensor)), ), body: ListView( padding: EdgeInsets.fromLTRB(16, 16, 16, 24), @@ -1094,12 +1094,12 @@ class SensorMetricSelectorItem extends StatelessWidget { ), const Spacer(), IconButton( - tooltip: 'Move up', + tooltip: AppLocalizations.of(context)!.moveUp, onPressed: canMoveUp ? onMoveUp : null, icon: const Icon(Icons.arrow_upward), ), IconButton( - tooltip: 'Move down', + tooltip: AppLocalizations.of(context)!.moveDown, onPressed: canMoveDown ? onMoveDown : null, icon: const Icon(Icons.arrow_downward), ), @@ -1259,7 +1259,7 @@ class _SelfOnlySensorsCta extends StatelessWidget { child: FilledButton.icon( onPressed: onAddSensor, icon: const Icon(Icons.add, size: 18), - label: const Text('Choose'), + label: Text(AppLocalizations.of(context)!.choose), ), ), ], diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart index ffb30bc..042765c 100644 --- a/lib/screens/settings_screen.dart +++ b/lib/screens/settings_screen.dart @@ -453,7 +453,7 @@ class _SettingsScreenState extends State { if (parsed == null) return; Navigator.pop(context, parsed.clamp(10.0, 1000.0)); }, - child: const Text('Save'), + child: Text(AppLocalizations.of(context)!.save), ), ], ), @@ -494,7 +494,7 @@ class _SettingsScreenState extends State { if (parsed == null) return; Navigator.pop(context, parsed.clamp(60, 60)); }, - child: const Text('Save'), + child: Text(AppLocalizations.of(context)!.save), ), ], ), @@ -559,7 +559,7 @@ class _SettingsScreenState extends State { children: [ ListTile( leading: const Icon(Icons.block), - title: const Text('Disable fast GPS publishing'), + title: Text(AppLocalizations.of(context)!.disableFastGpsPublishing), trailing: _fastLocationChannelIdx == null ? const Icon(Icons.check) : null, @@ -663,7 +663,7 @@ class _SettingsScreenState extends State { if (!mounted) return; ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('Failed to load preview image: $e'), + content: Text(AppLocalizations.of(context)!.failedToLoadPreviewImage(e.toString())), backgroundColor: Colors.red, ), ); @@ -816,7 +816,7 @@ class _SettingsScreenState extends State { }); ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('Error checking for updates: $e'), + content: Text(AppLocalizations.of(context)!.errorCheckingForUpdates(e.toString())), backgroundColor: Colors.red, ), ); @@ -1009,7 +1009,7 @@ class _SettingsScreenState extends State { debugPrint('Error handling location permission: $e'); if (!mounted) return; ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('Error: $e'), backgroundColor: Colors.red), + SnackBar(content: Text(AppLocalizations.of(context)!.errorGeneric(e.toString())), backgroundColor: Colors.red), ); } } @@ -1233,8 +1233,8 @@ class _SettingsScreenState extends State { // ── Appearance ── _buildSection( icon: Icons.palette_rounded, - title: 'Appearance', - subtitle: 'Theme, language, and display preferences', + title: AppLocalizations.of(context)!.appearance, + subtitle: AppLocalizations.of(context)!.themeLanguageAndDisplayPreferences, children: [ ListTile( dense: true, @@ -1304,8 +1304,8 @@ class _SettingsScreenState extends State { // ── Notifications ── _buildSection( icon: Icons.notifications_outlined, - title: 'Notifications', - subtitle: 'Control which alerts you receive', + title: AppLocalizations.of(context)!.notifications, + subtitle: AppLocalizations.of(context)!.controlWhichAlertsYouReceive, children: [ SwitchListTile( dense: true, @@ -1357,7 +1357,7 @@ class _SettingsScreenState extends State { dense: true, secondary: const Icon(Icons.visibility_off_outlined, size: 20), title: Text(l10n.muteWhileAppIsOpen), - subtitle: const Text('Suppress notifications while in foreground'), + subtitle: Text(AppLocalizations.of(context)!.suppressNotificationsWhileInForeground), value: _muteForegroundNotifications, onChanged: (value) async { setState(() => _muteForegroundNotifications = value); @@ -1373,8 +1373,8 @@ class _SettingsScreenState extends State { Consumer( builder: (context, appProvider, child) => _buildSection( icon: Icons.dashboard_customize_rounded, - title: 'Tabs & Navigation', - subtitle: 'Choose which tabs and contact sections to show', + title: AppLocalizations.of(context)!.tabsAndNavigation, + subtitle: AppLocalizations.of(context)!.chooseWhichTabsAndContactSectionsToShow, children: [ SwitchListTile( dense: true, @@ -1485,8 +1485,8 @@ class _SettingsScreenState extends State { // ── Messaging ── _buildSection( icon: Icons.chat_rounded, - title: 'Messaging', - subtitle: 'Routing, retries, and destination lock', + title: AppLocalizations.of(context)!.messaging, + subtitle: AppLocalizations.of(context)!.routingRetriesAndDestinationLock, children: [ ListTile( dense: true, @@ -1509,7 +1509,7 @@ class _SettingsScreenState extends State { dense: true, secondary: const Icon(Icons.route, size: 20), title: Text(l10n.nearestRepeaterFallback), - subtitle: const Text('Resend through nearest repeater on failure'), + subtitle: Text(AppLocalizations.of(context)!.resendThroughNearestRepeaterOnFailure), value: appProvider.nearestRelayFallbackEnabled, onChanged: (value) async { await appProvider.toggleNearestRelayFallbackEnabled(value); @@ -1521,7 +1521,7 @@ class _SettingsScreenState extends State { dense: true, secondary: const Icon(Icons.cleaning_services, size: 20), title: Text(l10n.clearPathOnMaxRetry), - subtitle: const Text('Clear route only after all retries fail'), + subtitle: Text(AppLocalizations.of(context)!.clearRouteOnlyAfterAllRetriesFail), value: appProvider.clearPathOnMaxRetry, onChanged: (value) async { await appProvider.toggleClearPathOnMaxRetry(value); @@ -1532,7 +1532,7 @@ class _SettingsScreenState extends State { SwitchListTile( dense: true, secondary: const Icon(Icons.lock_outline, size: 20), - title: const Text('Lock destination'), + title: Text(AppLocalizations.of(context)!.lockDestination), subtitle: const Text( 'Fix Messages tab to one channel or room', ), @@ -1617,8 +1617,8 @@ class _SettingsScreenState extends State { // ── Map & Tracing ── _buildSection( icon: Icons.map_rounded, - title: 'Map', - subtitle: 'Display, markers, and trace database', + title: AppLocalizations.of(context)!.map, + subtitle: AppLocalizations.of(context)!.displayMarkersAndTraceDatabase, children: [ SwitchListTile( dense: true, @@ -1701,8 +1701,8 @@ class _SettingsScreenState extends State { // ── GPS & Location ── _buildSection( icon: Icons.gps_fixed, - title: 'GPS & Location', - subtitle: 'Fast updates, thresholds, and permissions', + title: AppLocalizations.of(context)!.gpsAndLocation, + subtitle: AppLocalizations.of(context)!.fastUpdatesThresholdsAndPermissions, children: [ SwitchListTile( dense: true, @@ -1749,7 +1749,7 @@ class _SettingsScreenState extends State { ListTile( dense: true, leading: const Icon(Icons.forum, size: 20), - title: const Text('Fast GPS target channel'), + title: Text(AppLocalizations.of(context)!.fastGpsTargetChannel), subtitle: Text( _describeFastLocationChannel( context.watch().channels, @@ -1761,7 +1761,7 @@ class _SettingsScreenState extends State { ListTile( dense: true, leading: const Icon(Icons.send, size: 20), - title: const Text('Test send update'), + title: Text(AppLocalizations.of(context)!.testSendUpdate), trailing: const Icon(Icons.chevron_right), onTap: _sendTestFastLocationUpdate, ), @@ -1831,8 +1831,8 @@ class _SettingsScreenState extends State { ), _buildSection( icon: Icons.mic_rounded, - title: 'Voice', - subtitle: 'Codec, bitrate, and audio processing', + title: AppLocalizations.of(context)!.voice, + subtitle: AppLocalizations.of(context)!.codecBitrateAndAudioProcessing, children: [ ListTile( dense: true, @@ -1933,8 +1933,8 @@ class _SettingsScreenState extends State { // ── Images ── _buildSection( icon: Icons.image_rounded, - title: 'Images', - subtitle: 'Size, compression, and preview', + title: AppLocalizations.of(context)!.images, + subtitle: AppLocalizations.of(context)!.sizeCompressionAndPreview, children: [ ListTile( dense: true, @@ -1970,7 +1970,7 @@ class _SettingsScreenState extends State { dense: true, secondary: const Icon(Icons.invert_colors, size: 20), title: Text(l10n.grayscale), - subtitle: const Text('Smaller file size'), + subtitle: Text(AppLocalizations.of(context)!.smallerFileSize), value: _imageGrayscale, onChanged: (value) async { await ImagePreferences.setGrayscale(value); @@ -1982,7 +1982,7 @@ class _SettingsScreenState extends State { dense: true, secondary: const Icon(Icons.compress, size: 20), title: Text(l10n.ultraMode), - subtitle: const Text('Extra-aggressive AVIF compression'), + subtitle: Text(AppLocalizations.of(context)!.extraAggressiveAvifCompression), value: _imageUltraMode, onChanged: (value) async { await ImagePreferences.setUltraMode(value); @@ -2000,8 +2000,8 @@ class _SettingsScreenState extends State { // ── Profiles ── _buildSection( icon: Icons.layers_outlined, - title: 'Profiles', - subtitle: 'Multi-device workspace management', + title: AppLocalizations.of(context)!.profiles, + subtitle: AppLocalizations.of(context)!.multiDeviceWorkspaceManagement, children: [ SwitchListTile( dense: true, @@ -2043,8 +2043,8 @@ class _SettingsScreenState extends State { // ── Help ── _buildSection( icon: Icons.help_outline_rounded, - title: 'Help', - subtitle: 'Templates and tutorials', + title: AppLocalizations.of(context)!.help, + subtitle: AppLocalizations.of(context)!.templatesAndTutorials, children: [ ListTile( dense: true, @@ -2125,8 +2125,8 @@ class _SettingsScreenState extends State { // ── Data & Developer ── _buildSection( icon: Icons.storage_rounded, - title: 'Data', - subtitle: 'Traffic stats, message history, and developer tools', + title: AppLocalizations.of(context)!.data, + subtitle: AppLocalizations.of(context)!.trafficStatsMessageHistoryAndDeveloperTools, children: [ Consumer( builder: (context, appProvider, child) => ListenableBuilder( diff --git a/lib/services/notification_service.dart b/lib/services/notification_service.dart index 7819c2c..178ca9d 100644 --- a/lib/services/notification_service.dart +++ b/lib/services/notification_service.dart @@ -737,7 +737,7 @@ class NotificationService { presentSound: false, threadIdentifier: 'app_updates', categoryIdentifier: 'APP_UPDATE', - subtitle: 'New version: $latestVersion', + subtitle: localizations?.newVersionAvailable(latestVersion) ?? 'New version: $latestVersion', ); // Combined notification details diff --git a/lib/widgets/connection_dialog.dart b/lib/widgets/connection_dialog.dart index 25da022..6993a05 100644 --- a/lib/widgets/connection_dialog.dart +++ b/lib/widgets/connection_dialog.dart @@ -654,7 +654,7 @@ class _ConnectionDialogState extends State title: device.platformName.isNotEmpty ? device.platformName : 'Unknown Device', - subtitle: 'Signal $rssi dBm', + subtitle: AppLocalizations.of(context)!.signalDbm(rssi.toString()), trailing: isConnecting ? const SizedBox( width: 24, @@ -665,7 +665,7 @@ class _ConnectionDialogState extends State ) : FilledButton.tonal( onPressed: connectBle, - child: const Text('Connect'), + child: Text(AppLocalizations.of(context)!.connect), ), onTap: isConnecting ? null : connectBle, enabled: !isConnecting, @@ -721,7 +721,7 @@ class _ConnectionDialogState extends State : _discoveredServers.isEmpty ? _buildEmptyState( icon: Icons.wifi_off_rounded, - title: 'No servers found', + title: AppLocalizations.of(context)!.noServersFound, actionLabel: 'Scan Again', onAction: _startNetworkScan, ) @@ -792,7 +792,7 @@ class _ConnectionDialogState extends State onPressed: isAnyConnectionInProgress ? null : connectServer, - child: const Text('Connect'), + child: Text(AppLocalizations.of(context)!.connect), ), enabled: !isAnyConnectionInProgress, onTap: isAnyConnectionInProgress ? null : connectServer, @@ -885,7 +885,7 @@ class _ManualTcpHostDialogState extends State<_ManualTcpHostDialog> { @override Widget build(BuildContext context) { return AlertDialog( - title: const Text('Connect by IP address'), + title: Text(AppLocalizations.of(context)!.connectByIpAddress), content: TextField( controller: _controller, autofocus: true, @@ -910,11 +910,11 @@ class _ManualTcpHostDialogState extends State<_ManualTcpHostDialog> { actions: [ TextButton( onPressed: () => Navigator.of(context).pop(), - child: const Text('Cancel'), + child: Text(AppLocalizations.of(context)!.cancel), ), FilledButton( onPressed: _submit, - child: const Text('Connect'), + child: Text(AppLocalizations.of(context)!.connect), ), ], ); @@ -1053,7 +1053,7 @@ class _SerialDeviceListState extends State<_SerialDeviceList> { if (!mounted) return; setState(() => _isConnecting = false); ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('Failed to connect via serial')), + SnackBar(content: Text(AppLocalizations.of(context)!.failedToConnectViaSerial)), ); } } catch (e) { @@ -1061,7 +1061,7 @@ class _SerialDeviceListState extends State<_SerialDeviceList> { setState(() => _isConnecting = false); ScaffoldMessenger.of( context, - ).showSnackBar(SnackBar(content: Text('Serial error: $e'))); + ).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.serialError(e.toString())))); } } @@ -1127,7 +1127,7 @@ class _SerialDeviceListState extends State<_SerialDeviceList> { onPressed: _isConnecting ? null : () => _connectToDevice(device), - child: const Text('Connect'), + child: Text(AppLocalizations.of(context)!.connect), ), enabled: !_isConnecting, onTap: _isConnecting ? null : () => _connectToDevice(device), diff --git a/lib/widgets/contacts/contact_route_dialog.dart b/lib/widgets/contacts/contact_route_dialog.dart index 95ef4a0..ae7ed5e 100644 --- a/lib/widgets/contacts/contact_route_dialog.dart +++ b/lib/widgets/contacts/contact_route_dialog.dart @@ -320,7 +320,7 @@ class _ContactRouteDialogState extends State { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text('Selected relays', style: Theme.of(context).textTheme.titleSmall), + Text(AppLocalizations.of(context)!.selectedRelays, style: Theme.of(context).textTheme.titleSmall), const SizedBox(height: 8), Wrap( spacing: 8, @@ -355,11 +355,11 @@ class _ContactRouteDialogState extends State { TextField( controller: _relaySearchController, onChanged: (_) => setState(() {}), - decoration: const InputDecoration( - prefixIcon: Icon(Icons.search), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.search), labelText: 'Find relay', - hintText: 'Search by name or token', - border: OutlineInputBorder(), + hintText: AppLocalizations.of(context)!.searchByNameOrToken, + border: const OutlineInputBorder(), ), ), const SizedBox(height: 12), @@ -509,7 +509,7 @@ class _ContactRouteDialogState extends State { Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text('Path size', style: Theme.of(context).textTheme.labelLarge), + Text(AppLocalizations.of(context)!.pathSize, style: Theme.of(context).textTheme.labelLarge), const Spacer(), SegmentedButton( segments: [ @@ -621,7 +621,7 @@ class _ContactRouteDialogState extends State { length: 2, child: Scaffold( appBar: AppBar( - title: Text('Set Path for ${widget.contact.displayName}'), + title: Text(AppLocalizations.of(context)!.setPathForContact(widget.contact.displayName)), bottom: const TabBar( tabs: [ Tab(text: 'Build'), diff --git a/lib/widgets/contacts/contact_tile.dart b/lib/widgets/contacts/contact_tile.dart index e8e3248..0954648 100644 --- a/lib/widgets/contacts/contact_tile.dart +++ b/lib/widgets/contacts/contact_tile.dart @@ -437,6 +437,7 @@ class ContactTile extends StatelessWidget { final result = await context.read().setChannelLocationSharingEnabled( channelIdx, enabled, + l10n: AppLocalizations.of(context), ); if (!context.mounted) return; ToastLogger.success(context, result.message); @@ -655,7 +656,7 @@ class ContactTile extends StatelessWidget { if (contact.type == ContactType.repeater) _ContactSheetAction( icon: Icons.hub_outlined, - label: 'View Neighbours', + label: AppLocalizations.of(context)!.viewNeighbours, onTap: () async { Navigator.pop(context); _showNeighbours(context, contact); @@ -665,7 +666,7 @@ class ContactTile extends StatelessWidget { contact.type == ContactType.room) _ContactSheetAction( icon: Icons.network_ping, - label: 'Ping', + label: AppLocalizations.of(context)!.ping, onTap: () async { Navigator.pop(context); _pingRelay(context, contact); @@ -2395,7 +2396,7 @@ class _NeighboursSheetState extends State<_NeighboursSheet> { ), ) : _neighbours.isEmpty - ? const Center(child: Text('No neighbours found')) + ? Center(child: Text(AppLocalizations.of(context)!.noNeighboursFound)) : Padding( padding: const EdgeInsets.fromLTRB(16, 4, 16, 16), child: Column( @@ -2768,7 +2769,7 @@ class _PingRelaySheetState extends State<_PingRelaySheet> { IconButton( onPressed: () => setState(() => _history.clear()), icon: const Icon(Icons.delete_outline, size: 20), - tooltip: 'Clear history', + tooltip: AppLocalizations.of(context)!.clearHistory, style: IconButton.styleFrom( foregroundColor: colorScheme.onSurfaceVariant, ), diff --git a/lib/widgets/contacts/contact_trace_sheet.dart b/lib/widgets/contacts/contact_trace_sheet.dart index 4874b16..71e5cd0 100644 --- a/lib/widgets/contacts/contact_trace_sheet.dart +++ b/lib/widgets/contacts/contact_trace_sheet.dart @@ -6,6 +6,7 @@ import 'package:flutter_map/flutter_map.dart' as flutter_map; import 'package:latlong2/latlong.dart'; import 'package:provider/provider.dart'; +import '../../l10n/app_localizations.dart'; import '../../models/contact.dart'; import '../../providers/connection_provider.dart'; import '../../providers/contacts_provider.dart'; @@ -84,7 +85,7 @@ class _ContactTraceSheetState extends State { child: Center( child: Padding( padding: const EdgeInsets.all(16), - child: Text('Failed to load trace: ${snapshot.error}'), + child: Text(AppLocalizations.of(context)!.failedToLoadTrace(snapshot.error.toString())), ), ), ); diff --git a/lib/widgets/map/drawing_layer.dart b/lib/widgets/map/drawing_layer.dart index 8a92f08..c5058fd 100644 --- a/lib/widgets/map/drawing_layer.dart +++ b/lib/widgets/map/drawing_layer.dart @@ -179,7 +179,7 @@ class DrawingMarkersLayer extends StatelessWidget { context: context, builder: (context) => AlertDialog( title: Text(AppLocalizations.of(context)!.deleteDrawing), - content: Text('Delete this ${drawing.type.name}?'), + content: Text(AppLocalizations.of(context)!.deleteThisDrawing(drawing.type.name)), actions: [ TextButton( onPressed: () => Navigator.pop(context), diff --git a/lib/widgets/map/drawing_toolbar.dart b/lib/widgets/map/drawing_toolbar.dart index ad213fc..953bcc1 100644 --- a/lib/widgets/map/drawing_toolbar.dart +++ b/lib/widgets/map/drawing_toolbar.dart @@ -398,7 +398,7 @@ class DrawingToolbar extends StatelessWidget { ); } }, - tooltip: 'Share', + tooltip: AppLocalizations.of(context)!.share, color: Colors.blue, padding: const EdgeInsets.all(4), constraints: const BoxConstraints(), @@ -415,7 +415,7 @@ class DrawingToolbar extends StatelessWidget { drawing, ); }, - tooltip: 'Delete', + tooltip: AppLocalizations.of(context)!.delete, color: Colors.red, padding: const EdgeInsets.all(4), constraints: const BoxConstraints(), diff --git a/lib/widgets/map/polygon_draw_handler.dart b/lib/widgets/map/polygon_draw_handler.dart index 8cd8916..73ecd6a 100644 --- a/lib/widgets/map/polygon_draw_handler.dart +++ b/lib/widgets/map/polygon_draw_handler.dart @@ -5,6 +5,7 @@ import 'package:flutter_map/flutter_map.dart'; import 'package:latlong2/latlong.dart'; import 'package:provider/provider.dart'; +import '../../l10n/app_localizations.dart'; import '../../providers/offline_tiles_provider.dart'; /// Renders polygon/rectangle drawing interaction on the map. @@ -199,7 +200,7 @@ class DrawingToolbar extends StatelessWidget { children: [ _ToolButton( icon: Icons.crop_square, - label: 'Rectangle', + label: AppLocalizations.of(context)!.rectangle, isActive: provider.drawingMode == DrawingMode.rectangle, onTap: () => provider.setDrawingMode( provider.drawingMode == DrawingMode.rectangle @@ -210,7 +211,7 @@ class DrawingToolbar extends StatelessWidget { const SizedBox(height: 8), _ToolButton( icon: Icons.pentagon_outlined, - label: 'Polygon', + label: AppLocalizations.of(context)!.polygon, isActive: provider.drawingMode == DrawingMode.polygon, onTap: () => provider.setDrawingMode( provider.drawingMode == DrawingMode.polygon @@ -223,7 +224,7 @@ class DrawingToolbar extends StatelessWidget { const SizedBox(height: 8), _ToolButton( icon: Icons.check, - label: 'Finish', + label: AppLocalizations.of(context)!.finish, isActive: false, color: Colors.green, onTap: () => provider.finishPolygon(), @@ -234,7 +235,7 @@ class DrawingToolbar extends StatelessWidget { const SizedBox(height: 8), _ToolButton( icon: Icons.undo, - label: 'Undo', + label: AppLocalizations.of(context)!.undo, isActive: false, onTap: () => provider.undoLastVertex(), ), @@ -243,7 +244,7 @@ class DrawingToolbar extends StatelessWidget { const SizedBox(height: 8), _ToolButton( icon: Icons.delete_outline, - label: 'Clear', + label: AppLocalizations.of(context)!.clear, isActive: false, color: Colors.red, onTap: () => provider.clearPolygons(), diff --git a/lib/widgets/messages/custom_map_sar_update_sheet.dart b/lib/widgets/messages/custom_map_sar_update_sheet.dart index affb90f..664edb2 100644 --- a/lib/widgets/messages/custom_map_sar_update_sheet.dart +++ b/lib/widgets/messages/custom_map_sar_update_sheet.dart @@ -394,7 +394,7 @@ class _CustomMapSarUpdateSheetState extends State { controller: _notesController, maxLines: 3, decoration: InputDecoration( - hintText: 'Add additional details', + hintText: AppLocalizations.of(context)!.addAdditionalDetails, filled: true, fillColor: colorScheme.surfaceContainerHighest, border: OutlineInputBorder( diff --git a/lib/widgets/messages/image_message_bubble.dart b/lib/widgets/messages/image_message_bubble.dart index 6d0daef..5154572 100644 --- a/lib/widgets/messages/image_message_bubble.dart +++ b/lib/widgets/messages/image_message_bubble.dart @@ -11,6 +11,7 @@ import '../../providers/contacts_provider.dart'; import '../../providers/image_provider.dart' as ip; import '../../providers/messages_provider.dart'; import '../../utils/image_message_parser.dart'; +import '../../l10n/app_localizations.dart'; import '../../utils/transmission_target_resolver.dart'; import 'transfer_timeout.dart'; @@ -237,7 +238,7 @@ class _ImageMessageBubbleState extends State { onPressed: () => _cancelReceive(envelope.sessionId), icon: const Icon(Icons.close, size: 20), color: Colors.white70, - tooltip: 'Cancel image receive', + tooltip: AppLocalizations.of(context)!.cancelImageReceive, ), ), ] else if (_errorText != null) ...[ @@ -255,7 +256,7 @@ class _ImageMessageBubbleState extends State { pathLen: pathLen, ), icon: const Icon(Icons.refresh, size: 18), - label: const Text('Retry'), + label: Text(AppLocalizations.of(context)!.retry), style: TextButton.styleFrom( foregroundColor: Colors.white70, ), @@ -657,7 +658,7 @@ class _ImageMessageBubbleState extends State { onPressed: () => Navigator.of(dialogContext).pop(), icon: const Icon(Icons.close), color: Colors.white, - tooltip: 'Close', + tooltip: AppLocalizations.of(context)!.close, ), ), ), diff --git a/lib/widgets/messages/message_trace_sheet.dart b/lib/widgets/messages/message_trace_sheet.dart index 5cc6b5a..8ec970c 100644 --- a/lib/widgets/messages/message_trace_sheet.dart +++ b/lib/widgets/messages/message_trace_sheet.dart @@ -6,6 +6,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_map/flutter_map.dart' as flutter_map; import 'package:latlong2/latlong.dart'; import 'package:provider/provider.dart'; +import '../../l10n/app_localizations.dart'; import '../../models/ble_packet_log.dart'; import '../../models/message.dart'; import '../../providers/connection_provider.dart'; @@ -133,7 +134,7 @@ class _MessageTraceSheetState extends State { child: Center( child: Padding( padding: const EdgeInsets.all(16), - child: Text('Failed to load trace: ${snapshot.error}'), + child: Text(AppLocalizations.of(context)!.failedToLoadTrace(snapshot.error.toString())), ), ), ); diff --git a/lib/widgets/messages/recipient_selector_sheet.dart b/lib/widgets/messages/recipient_selector_sheet.dart index 1cf3989..09e7657 100644 --- a/lib/widgets/messages/recipient_selector_sheet.dart +++ b/lib/widgets/messages/recipient_selector_sheet.dart @@ -602,7 +602,7 @@ class _RecipientSelectorSheetState extends State { final colorScheme = Theme.of(context).colorScheme; return PopupMenuButton<_RecipientSortMode>( - tooltip: 'Sort', + tooltip: AppLocalizations.of(context)!.sort, initialValue: _sortMode, onSelected: (sortMode) { setState(() { @@ -642,13 +642,13 @@ class _RecipientSelectorSheetState extends State { ], ), ), - const PopupMenuItem<_RecipientSortMode>( + PopupMenuItem<_RecipientSortMode>( value: _RecipientSortMode.alphabetical, child: Row( children: [ - Icon(Icons.sort_by_alpha_rounded, size: 18), - SizedBox(width: 8), - Text('A-Z'), + const Icon(Icons.sort_by_alpha_rounded, size: 18), + const SizedBox(width: 8), + Text(AppLocalizations.of(context)!.aToZ), ], ), ), diff --git a/lib/widgets/permission_request_dialog.dart b/lib/widgets/permission_request_dialog.dart index aaa8bc6..1201762 100644 --- a/lib/widgets/permission_request_dialog.dart +++ b/lib/widgets/permission_request_dialog.dart @@ -176,7 +176,7 @@ class _PermissionRequestDialogState extends State { Navigator.of(context).pop(); widget.onPermissionsDenied?.call(); }, - child: const Text('Skip'), + child: Text(AppLocalizations.of(context)!.skip), ), if (_errorMessage != null && !_isRequesting) ElevatedButton( @@ -184,13 +184,13 @@ class _PermissionRequestDialogState extends State { // Open app settings await Geolocator.openLocationSettings(); }, - child: const Text('Open Settings'), + child: Text(AppLocalizations.of(context)!.openSettings), ), if (_errorMessage != null && !_isRequesting && !_errorMessage!.contains('permanently denied')) ElevatedButton( onPressed: _checkAndRequestPermissions, - child: const Text('Retry'), + child: Text(AppLocalizations.of(context)!.retry), ), ], ), diff --git a/lib/widgets/sensors/bthome_met_history_sheet.dart b/lib/widgets/sensors/bthome_met_history_sheet.dart index 26c7610..1430867 100644 --- a/lib/widgets/sensors/bthome_met_history_sheet.dart +++ b/lib/widgets/sensors/bthome_met_history_sheet.dart @@ -3,6 +3,7 @@ import 'dart:math' as math; import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/material.dart'; +import '../../l10n/app_localizations.dart'; import 'package:meshcore_client/meshcore_client.dart' show Message; import 'package:provider/provider.dart'; @@ -233,7 +234,7 @@ class _BTHomeMetHistorySheetState extends State<_BTHomeMetHistorySheet> { ), ), icon: const Icon(Icons.chevron_left), - label: const Text('Newer'), + label: Text(AppLocalizations.of(context)!.newer), ), const SizedBox(width: 8), OutlinedButton.icon( @@ -249,7 +250,7 @@ class _BTHomeMetHistorySheetState extends State<_BTHomeMetHistorySheet> { ), ), icon: const Icon(Icons.chevron_right), - label: const Text('Older'), + label: Text(AppLocalizations.of(context)!.older), ), const Spacer(), if (_loading) @@ -276,13 +277,13 @@ class _BTHomeMetHistorySheetState extends State<_BTHomeMetHistorySheet> { if (_error != null) _HistoryMessageCard( icon: Icons.error_outline, - title: 'Could not load MET history', + title: AppLocalizations.of(context)!.couldNotLoadMetHistory, body: _error!, ) else if (_loading && history == null) - const _HistoryMessageCard( + _HistoryMessageCard( icon: Icons.hourglass_top, - title: 'Loading', + title: AppLocalizations.of(context)!.loading, body: 'Waiting for the sensor to reply.', ) else if (history != null) ...[ @@ -362,19 +363,19 @@ class _HistoryStatsGrid extends StatelessWidget { final compact = constraints.maxWidth < 520; final tiles = [ _HistoryStatTile( - label: 'Latest', + label: AppLocalizations.of(context)!.latest, value: _formatMeasurementValue(measurement, history.latest), ), _HistoryStatTile( - label: 'Min', + label: AppLocalizations.of(context)!.min, value: _formatMeasurementValue(measurement, history.minimum), ), _HistoryStatTile( - label: 'Max', + label: AppLocalizations.of(context)!.max, value: _formatMeasurementValue(measurement, history.maximum), ), _HistoryStatTile( - label: 'Samples', + label: AppLocalizations.of(context)!.samples, value: history.values.length.toString(), ), ]; diff --git a/lib/widgets/sensors/sensor_telemetry_card.dart b/lib/widgets/sensors/sensor_telemetry_card.dart index e5b96b2..b8a9546 100644 --- a/lib/widgets/sensors/sensor_telemetry_card.dart +++ b/lib/widgets/sensors/sensor_telemetry_card.dart @@ -1140,7 +1140,7 @@ class SensorTelemetryCard extends StatelessWidget { await Clipboard.setData(ClipboardData(text: rawTelemetry)); if (context.mounted) { ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('Raw response copied')), + SnackBar(content: Text(AppLocalizations.of(context)!.rawResponseCopied)), ); } } @@ -1173,13 +1173,13 @@ class SensorTelemetryCard extends StatelessWidget { if (onPing != null) _SensorSheetAction( icon: Icons.network_ping, - label: 'Ping', + label: AppLocalizations.of(context)!.ping, onTap: () => _handleAction(context, 'ping'), ), if (_rawTelemetryHex(contact?.telemetry) != null) _SensorSheetAction( icon: Icons.copy_all_outlined, - label: 'Copy raw response', + label: AppLocalizations.of(context)!.copyRawResponse, onTap: () => _handleAction(context, 'copy_raw'), ), if (onCustomize != null) @@ -1193,7 +1193,7 @@ class SensorTelemetryCard extends StatelessWidget { supportsBTHomeMetHistory(contact)) _SensorSheetAction( icon: Icons.show_chart, - label: 'MET history', + label: AppLocalizations.of(context)!.metHistory, onTap: () => _handleAction(context, 'met_history'), ), if (onRemove != null) @@ -1309,10 +1309,10 @@ class SensorTelemetryCard extends StatelessWidget { tooltip: l10n.refreshing, ), if (state == SensorRefreshState.success) - const _InlineStateMeta( + _InlineStateMeta( color: Color(0xFF218B63), icon: Icons.check_circle, - tooltip: 'Updated', + tooltip: AppLocalizations.of(context)!.updated, ), if (state == SensorRefreshState.unavailable) _InlineStateMeta( diff --git a/lib/widgets/settings/traffic_stats_reporting_section.dart b/lib/widgets/settings/traffic_stats_reporting_section.dart index f5336ea..bc9ddb2 100644 --- a/lib/widgets/settings/traffic_stats_reporting_section.dart +++ b/lib/widgets/settings/traffic_stats_reporting_section.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; +import '../../l10n/app_localizations.dart'; import '../../services/traffic_stats_reporting_service.dart'; class TrafficStatsReportingSection extends StatelessWidget { @@ -18,7 +19,7 @@ class TrafficStatsReportingSection extends StatelessWidget { SwitchListTile( dense: true, secondary: const Icon(Icons.cloud_upload_outlined, size: 20), - title: const Text('Anonymous RX stats'), + title: Text(AppLocalizations.of(context)!.anonymousRxStats), subtitle: const Text( 'Upload packet totals every 5 min', ), @@ -43,7 +44,7 @@ class TrafficStatsReportingSection extends StatelessWidget { TextButton.icon( onPressed: _openStatsDashboard, icon: const Icon(Icons.open_in_new, size: 16), - label: const Text('View'), + label: Text(AppLocalizations.of(context)!.view), style: TextButton.styleFrom( visualDensity: VisualDensity.compact, textStyle: theme.textTheme.labelSmall, diff --git a/lib/widgets/update_dialog.dart b/lib/widgets/update_dialog.dart index 3bf7a8d..8c91b0f 100644 --- a/lib/widgets/update_dialog.dart +++ b/lib/widgets/update_dialog.dart @@ -170,7 +170,7 @@ class UpdateDialog extends StatelessWidget { if (context.mounted) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('Error opening download: $e'), + content: Text(AppLocalizations.of(context)!.errorOpeningDownload(e.toString())), backgroundColor: Colors.red, ), ); diff --git a/pubspec.yaml b/pubspec.yaml index dff211a..409a3f5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 2026.0405.2+48 +version: 2026.0407.1+49 environment: sdk: ^3.9.2 diff --git a/test/providers/app_provider_channel_info_test.dart b/test/providers/app_provider_channel_info_test.dart index f9377c6..7c33315 100644 --- a/test/providers/app_provider_channel_info_test.dart +++ b/test/providers/app_provider_channel_info_test.dart @@ -1,13 +1,36 @@ +import 'dart:async'; import 'dart:typed_data'; import 'package:flutter_test/flutter_test.dart'; import 'package:meshcore_sar_app/models/message.dart'; +import 'package:meshcore_sar_app/models/device_info.dart'; import 'package:meshcore_sar_app/providers/app_provider.dart'; +import 'package:meshcore_sar_app/providers/channels_provider.dart'; +import 'package:meshcore_sar_app/providers/connection_provider.dart'; +import 'package:meshcore_sar_app/providers/contacts_provider.dart'; +import 'package:meshcore_sar_app/providers/drawing_provider.dart'; +import 'package:meshcore_sar_app/providers/image_provider.dart' as ip; +import 'package:meshcore_sar_app/providers/messages_provider.dart'; +import 'package:meshcore_sar_app/providers/voice_provider.dart'; +import 'package:meshcore_sar_app/services/location_tracking_service.dart'; +import 'package:meshcore_sar_app/services/voice_codec_service.dart'; +import 'package:meshcore_sar_app/services/voice_player_service.dart'; +import 'package:shared_preferences/shared_preferences.dart'; Uint8List _ownPublicKey() => Uint8List.fromList([1, 2, 3, 4, 5, 6, ...List.filled(26, 0)]); void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + + setUp(() { + SharedPreferences.setMockInitialValues({}); + final locationTrackingService = LocationTrackingService(); + locationTrackingService.fastLocationUpdatesEnabled = false; + locationTrackingService.fastLocationChannelIdx = null; + locationTrackingService.isTracking = false; + }); + group('AppProvider channel info handling', () { test('treats zeroed unnamed non-public channel as deleted', () { expect(AppProvider.isDeletedChannelInfo(2, '', Uint8List(16)), isTrue); @@ -145,4 +168,188 @@ void main() { ); }); }); + + group('AppProvider channel location sharing state', () { + test('clears app fallback sharing state when device disconnects', () async { + final harness = _AppProviderHarness( + connectionProvider: _FakeConnectionProvider(isConnected: true), + ); + final locationTrackingService = harness.appProvider.locationTrackingService; + + await locationTrackingService.updateFastLocationChannelIdx(3); + await locationTrackingService.setFastLocationUpdatesEnabled(true); + + harness.connectionProvider.setConnected(false); + await Future.delayed(Duration.zero); + + expect(locationTrackingService.fastLocationUpdatesEnabled, isFalse); + expect(locationTrackingService.fastLocationChannelIdx, isNull); + expect(harness.appProvider.channelLocationSharingModeForChannel(3), isNull); + + await harness.dispose(); + }); + + test('preserves hardware sharing state when device disconnects', () async { + final harness = _AppProviderHarness( + connectionProvider: _FakeConnectionProvider( + isConnected: true, + customVars: const {'gps': '1', 'fast_gps_channel': '7'}, + ), + ); + + await harness.appProvider.refreshChannelLocationSharingState(); + + expect( + harness.appProvider.channelLocationSharingModeForChannel(7), + ChannelLocationSharingMode.hardware, + ); + + harness.connectionProvider.setConnected(false); + await Future.delayed(Duration.zero); + + expect( + harness.appProvider.channelLocationSharingModeForChannel(7), + ChannelLocationSharingMode.hardware, + ); + + await harness.dispose(); + }); + + test('clears app fallback sharing state when device connects', () async { + final harness = _AppProviderHarness( + connectionProvider: _FakeConnectionProvider(isConnected: false), + ); + final locationTrackingService = harness.appProvider.locationTrackingService; + + await locationTrackingService.updateFastLocationChannelIdx(5); + await locationTrackingService.setFastLocationUpdatesEnabled(true); + + harness.connectionProvider.setConnected(true); + await Future.delayed(Duration.zero); + + expect(locationTrackingService.fastLocationUpdatesEnabled, isFalse); + expect(locationTrackingService.fastLocationChannelIdx, isNull); + expect(harness.appProvider.channelLocationSharingModeForChannel(5), isNull); + + await harness.dispose(); + }); + }); +} + +class _AppProviderHarness { + final _FakeConnectionProvider connectionProvider; + final ContactsProvider contactsProvider; + final MessagesProvider messagesProvider; + final DrawingProvider drawingProvider; + final ChannelsProvider channelsProvider; + final VoiceProvider voiceProvider; + final ip.ImageProvider imageProvider; + late final AppProvider appProvider; + + _AppProviderHarness({required this.connectionProvider}) + : contactsProvider = ContactsProvider(), + messagesProvider = MessagesProvider(), + drawingProvider = DrawingProvider(), + channelsProvider = ChannelsProvider(), + voiceProvider = VoiceProvider( + codec: VoiceCodecService(), + player: _FakeVoicePlayerService(), + ), + imageProvider = ip.ImageProvider() { + appProvider = AppProvider( + connectionProvider: connectionProvider, + contactsProvider: contactsProvider, + messagesProvider: messagesProvider, + drawingProvider: drawingProvider, + channelsProvider: channelsProvider, + voiceProvider: voiceProvider, + imageProvider: imageProvider, + ); + } + + Future dispose() async { + for (var i = 0; i < 10; i++) { + if (appProvider.trafficStatsReportingService.isInitialized) { + break; + } + await Future.delayed(const Duration(milliseconds: 10)); + } + appProvider.dispose(); + voiceProvider.dispose(); + imageProvider.dispose(); + drawingProvider.dispose(); + messagesProvider.dispose(); + contactsProvider.dispose(); + connectionProvider.dispose(); + channelsProvider.dispose(); + } +} + +class _FakeConnectionProvider extends ConnectionProvider { + DeviceInfo _deviceInfo; + + _FakeConnectionProvider({ + required bool isConnected, + Map? customVars, + }) : _deviceInfo = DeviceInfo( + connectionState: isConnected + ? ConnectionState.connected + : ConnectionState.disconnected, + ), + _customVars = customVars ?? {}; + + Map _customVars; + + @override + DeviceInfo get deviceInfo => _deviceInfo; + + void setConnected(bool isConnected) { + _deviceInfo = _deviceInfo.copyWith( + connectionState: isConnected + ? ConnectionState.connected + : ConnectionState.disconnected, + ); + notifyListeners(); + } + + @override + Future> getCustomVars() async => + Map.from(_customVars); +} + +class _FakeVoicePlayerService implements VoicePlayerService { + final StreamController _events = StreamController.broadcast(); + bool _isPlaying = false; + + @override + bool get isPlaying => _isPlaying; + + @override + Duration get position => Duration.zero; + + @override + Duration get duration => Duration.zero; + + @override + Stream get events => _events.stream; + + @override + Future play(Int16List pcmSamples, {required int sampleRateHz}) async { + _isPlaying = true; + _events.add(null); + } + + @override + Future stop() async { + _isPlaying = false; + _events.add(null); + } + + @override + void dispose() { + _events.close(); + } + + @override + dynamic noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); }