mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 16:30:28 +00:00
i18n: Add 247 missing translation keys across all 13 languages
Replace hardcoded English strings in 32 Dart source files with l10n references. Covers settings labels, UI actions, map/SAR features, device config, notifications, profiles, spectrum scan, and status messages for sl, de, hr, pl, es, fr, it, el, ru, tr, uk, zh, pt.
This commit is contained in:
@@ -1638,5 +1638,252 @@
|
||||
"contactFailedToClearRoute": "Pfad konnte nicht gelöscht werden: {error}",
|
||||
"contactRouteCleared": "Pfad gelöscht",
|
||||
"contactRouteSet": "Pfad gesetzt: {route}",
|
||||
"contactFailedToSetRoute": "Pfad konnte nicht gesetzt werden: {error}"
|
||||
"contactFailedToSetRoute": "Pfad konnte nicht gesetzt werden: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "ACK-Zeitüberschreitung",
|
||||
"opcode": "Opcode",
|
||||
"payload": "Nutzlast",
|
||||
"hops": "Hops",
|
||||
"hashSize": "Hash-Größe",
|
||||
"pathBytes": "Pfad-Bytes",
|
||||
"selectedPath": "Ausgewählter Pfad",
|
||||
"estimatedTx": "Geschätzte Sendung",
|
||||
"senderToReceipt": "Sender bis Empfang",
|
||||
"receivedCopies": "Empfangene Kopien",
|
||||
"retryCause": "Wiederholungsursache",
|
||||
"retryMode": "Wiederholungsmodus",
|
||||
"retryResult": "Wiederholungsergebnis",
|
||||
"lastRetry": "Letzter Versuch",
|
||||
"rxPackets": "RX-Pakete",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Rate",
|
||||
"window": "Fenster",
|
||||
"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",
|
||||
"clearScale": "Maßstab löschen",
|
||||
"clearDiscoveries": "Entdeckungen löschen",
|
||||
"clearOnlineTraceDatabase": "Online-Trace-Datenbank löschen",
|
||||
"clearAllChannels": "Alle Kanäle löschen",
|
||||
"clearAllContacts": "Alle Kontakte löschen",
|
||||
"clearChannels": "Kanäle löschen",
|
||||
"clearContacts": "Kontakte löschen",
|
||||
"clearPathOnMaxRetry": "Pfad bei max. Wiederholung löschen",
|
||||
"create": "Erstellen",
|
||||
"custom": "Benutzerdefiniert",
|
||||
"defaultValue": "Standard",
|
||||
"duplicate": "Duplizieren",
|
||||
"editName": "Name bearbeiten",
|
||||
"open": "Öffnen",
|
||||
"paste": "Einfügen",
|
||||
"preview": "Vorschau",
|
||||
"remove": "Entfernen",
|
||||
"rename": "Umbenennen",
|
||||
"resolveAll": "Alle auflösen",
|
||||
"send": "Senden",
|
||||
"sendAnyway": "Trotzdem 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.",
|
||||
"autoDiscovery": "Automatische Erkennung",
|
||||
"enableAutomaticAdding": "Automatisches Hinzufügen aktivieren",
|
||||
"autoaddRepeaters": "Repeater automatisch hinzufügen",
|
||||
"autoaddRoomServers": "Raumserver automatisch hinzufügen",
|
||||
"autoaddSensors": "Sensoren automatisch hinzufügen",
|
||||
"autoaddUsers": "Benutzer automatisch hinzufügen",
|
||||
"overwriteOldestWhenFull": "Älteste bei vollem Speicher überschreiben",
|
||||
"storage": "Speicher",
|
||||
"dangerZone": "Gefahrenbereich",
|
||||
"profiles": "Profile",
|
||||
"favourites": "Favoriten",
|
||||
"sensors": "Sensoren",
|
||||
"others": "Andere",
|
||||
"gpsModule": "GPS-Modul",
|
||||
"liveTraffic": "Live-Verkehr",
|
||||
"repeatersMap": "Repeater-Karte",
|
||||
"spectrumScan": "Spektrum-Scan",
|
||||
"blePacketLogs": "BLE-Paketprotokolle",
|
||||
"onlineTraceDatabase": "Online-Trace-Datenbank",
|
||||
"routePathByteSize": "Pfad-Bytegröße",
|
||||
"messageNotifications": "Nachrichtenbenachrichtigungen",
|
||||
"sarAlerts": "SAR-Alarme",
|
||||
"discoveryNotifications": "Erkennungsbenachrichtigungen",
|
||||
"updateNotifications": "Updatebenachrichtigungen",
|
||||
"muteWhileAppIsOpen": "Stumm bei geöffneter App",
|
||||
"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",
|
||||
"rotateMapWithHeading": "Karte mit Richtung drehen",
|
||||
"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",
|
||||
"compressor": "Kompressor",
|
||||
"limiter": "Limiter",
|
||||
"autoGain": "Automatische Verstärkung",
|
||||
"echoCancel": "Echo",
|
||||
"noiseSuppress": "Rauschen",
|
||||
"silenceTrim": "Stille",
|
||||
"maxImageSize": "Maximale Bildgröße",
|
||||
"imageCompression": "Bildkomprimierung",
|
||||
"grayscale": "Graustufen",
|
||||
"ultraMode": "Ultra-Modus",
|
||||
"fastPrivateGpsUpdates": "Schnelle private GPS-Updates",
|
||||
"movementThreshold": "Bewegungsschwelle",
|
||||
"fastGpsMovementThreshold": "Schneller GPS-Bewegungsschwellenwert",
|
||||
"fastGpsActiveuseInterval": "Schnelles GPS aktive Nutzung Intervall",
|
||||
"activeuseUpdateInterval": "Aktive Nutzung Updateintervall",
|
||||
"repeatNearbyTraffic": "Nahverkehr wiederholen",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Über Repeater im Mesh weiterleiten",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Nur in der Nähe, ohne Repeater-Flooding",
|
||||
"multihop": "Multi-Hop",
|
||||
"createProfile": "Profil erstellen",
|
||||
"renameProfile": "Profil umbenennen",
|
||||
"newProfile": "Neues Profil",
|
||||
"manageProfiles": "Profile verwalten",
|
||||
"enableProfilesToStartManagingThem": "Aktivieren Sie Profile, um sie zu verwalten.",
|
||||
"openMessage": "Nachricht öffnen",
|
||||
"jumpToTheRelatedSarMessage": "Zur zugehörigen SAR-Nachricht springen",
|
||||
"removeSarMarker": "SAR-Markierung entfernen",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Bitte wählen Sie ein Ziel zum Senden der SAR-Markierung",
|
||||
"sarMarkerBroadcastToPublicChannel": "SAR-Markierung an öffentlichen Kanal gesendet",
|
||||
"sarMarkerSentToRoom": "SAR-Markierung an Raum gesendet",
|
||||
"loadFromGallery": "Aus Galerie laden",
|
||||
"replaceImage": "Bild ersetzen",
|
||||
"selectFromGallery": "Aus Galerie auswählen",
|
||||
"team": "Team",
|
||||
"found": "Gefunden",
|
||||
"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",
|
||||
"noDestinationsAvailableLabel": "Keine Ziele verfügbar",
|
||||
"image": "Bild",
|
||||
"format": "Format",
|
||||
"dimensions": "Abmessungen",
|
||||
"segments": "Segmente",
|
||||
"transfers": "Übertragungen",
|
||||
"downloadedBy": "Heruntergeladen von",
|
||||
"saveDiscoverySettings": "Erkennungseinstellungen speichern",
|
||||
"savePublicInfo": "Öffentliche Info speichern",
|
||||
"saveRadioSettings": "Funkeinstellungen speichern",
|
||||
"savePath": "Pfad speichern",
|
||||
"wipeDeviceData": "Gerätedaten löschen",
|
||||
"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",
|
||||
"customizeFields": "Felder anpassen",
|
||||
"livePreview": "Live-Vorschau",
|
||||
"refreshSchedule": "Aktualisierungsplan",
|
||||
"noResponse": "Keine Antwort",
|
||||
"refreshing": "Wird aktualisiert",
|
||||
"unavailable": "Nicht verfügbar",
|
||||
"pickARelayOrNodeToWatchInSensors": "Wählen Sie einen Relay oder Knoten zur Beobachtung.",
|
||||
"publicKeyLabel": "Öffentlicher Schlüssel",
|
||||
"alreadyInContacts": "Bereits in Kontakten",
|
||||
"connectToADeviceBeforeAddingContacts": "Verbinden Sie sich mit einem Gerät, bevor Sie Kontakte hinzufügen",
|
||||
"fromContacts": "Aus Kontakten",
|
||||
"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",
|
||||
"hexDataCopiedToClipboard": "Hex-Daten in die Zwischenablage kopiert",
|
||||
"developerModeEnabled": "Entwicklermodus aktiviert",
|
||||
"developerModeDisabled": "Entwicklermodus deaktiviert",
|
||||
"clipboardIsEmpty": "Zwischenablage ist leer",
|
||||
"contactImported": "Kontakt importiert",
|
||||
"contactLinkCopiedToClipboard": "Kontaktlink in Zwischenablage kopiert",
|
||||
"failedToExportContact": "Kontaktexport fehlgeschlagen",
|
||||
"noLogsToExport": "Keine Protokolle zum Exportieren",
|
||||
"exportAsCsv": "Als CSV exportieren",
|
||||
"exportAsText": "Als Text exportieren",
|
||||
"receivedRfc3339": "Empfangen (RFC3339)",
|
||||
"buildTime": "Build-Zeit",
|
||||
"downloadUrlNotAvailable": "Download-URL nicht verfügbar",
|
||||
"cannotOpenDownloadUrl": "Download-URL kann nicht geöffnet werden",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "Update-Prüfung nur auf Android verfügbar",
|
||||
"youAreRunningTheLatestVersion": "Sie verwenden die neueste Version",
|
||||
"updateAvailableButDownloadUrlNotFound": "Update verfügbar, aber Download-URL nicht gefunden",
|
||||
"startTictactoe": "Tic-Tac-Toe starten",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe nicht verfügbar",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: Gegner unbekannt",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: Warten auf Start",
|
||||
"acceptsShareLinks": "Akzeptiert freigegebene Links",
|
||||
"supportsRawHex": "Unterstützt rohes Hex",
|
||||
"clipboardfriendly": "Zwischenablage-freundlich",
|
||||
"captured": "Erfasst",
|
||||
"size": "Größe",
|
||||
"noCustomChannelsToClear": "Keine benutzerdefinierten Kanäle zum Löschen.",
|
||||
"noDeviceContactsToClear": "Keine Gerätekontakte zum Löschen."
|
||||
}
|
||||
|
||||
@@ -2303,5 +2303,252 @@
|
||||
"contactFailedToClearRoute": "Αποτυχία εκκαθάρισης διαδρομής: {error}",
|
||||
"contactRouteCleared": "Η διαδρομή εκκαθαρίστηκε",
|
||||
"contactRouteSet": "Ορίστηκε διαδρομή: {route}",
|
||||
"contactFailedToSetRoute": "Αποτυχία ορισμού διαδρομής: {error}"
|
||||
"contactFailedToSetRoute": "Αποτυχία ορισμού διαδρομής: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "Λήξη χρόνου ACK",
|
||||
"opcode": "Opcode",
|
||||
"payload": "Ωφέλιμο φορτίο",
|
||||
"hops": "Αναπηδήσεις",
|
||||
"hashSize": "Μέγεθος hash",
|
||||
"pathBytes": "Bytes διαδρομής",
|
||||
"selectedPath": "Επιλεγμένη διαδρομή",
|
||||
"estimatedTx": "Εκτιμώμενη εκπομπή",
|
||||
"senderToReceipt": "Αποστολέας σε απόδειξη",
|
||||
"receivedCopies": "Ληφθέντα αντίγραφα",
|
||||
"retryCause": "Αιτία επανάληψης",
|
||||
"retryMode": "Λειτουργία επανάληψης",
|
||||
"retryResult": "Αποτέλεσμα επανάληψης",
|
||||
"lastRetry": "Τελευταία επανάληψη",
|
||||
"rxPackets": "Πακέτα RX",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Ρυθμός",
|
||||
"window": "Παράθυρο",
|
||||
"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": "Εκκαθάριση μηνυμάτων",
|
||||
"clearScale": "Εκκαθάριση κλίμακας",
|
||||
"clearDiscoveries": "Εκκαθάριση ανακαλύψεων",
|
||||
"clearOnlineTraceDatabase": "Εκκαθάριση βάσης ιχνών",
|
||||
"clearAllChannels": "Εκκαθάριση όλων των καναλιών",
|
||||
"clearAllContacts": "Εκκαθάριση όλων των επαφών",
|
||||
"clearChannels": "Εκκαθάριση καναλιών",
|
||||
"clearContacts": "Εκκαθάριση επαφών",
|
||||
"clearPathOnMaxRetry": "Εκκαθάριση μονοπατιού στο μέγιστο",
|
||||
"create": "Δημιουργία",
|
||||
"custom": "Προσαρμοσμένο",
|
||||
"defaultValue": "Προεπιλογή",
|
||||
"duplicate": "Αντιγραφή",
|
||||
"editName": "Επεξεργασία ονόματος",
|
||||
"open": "Άνοιγμα",
|
||||
"paste": "Επικόλληση",
|
||||
"preview": "Προεπισκόπηση",
|
||||
"remove": "Αφαίρεση",
|
||||
"rename": "Μετονομασία",
|
||||
"resolveAll": "Επίλυση όλων",
|
||||
"send": "Αποστολή",
|
||||
"sendAnyway": "Αποστολή ούτως ή άλλως",
|
||||
"share": "Κοινοποίηση",
|
||||
"shareContact": "Κοινοποίηση επαφής",
|
||||
"trace": "Ίχνος",
|
||||
"use": "Χρήση",
|
||||
"useSelectedFrequency": "Χρήση επιλεγμένης συχνότητας",
|
||||
"discovery": "Ανακάλυψη",
|
||||
"discoverRepeaters": "Ανακάλυψη αναμεταδοτών",
|
||||
"discoverSensors": "Ανακάλυψη αισθητήρων",
|
||||
"repeaterDiscoverySent": "Αποστολή ανακάλυψης αναμεταδοτών",
|
||||
"sensorDiscoverySent": "Αποστολή ανακάλυψης αισθητήρων",
|
||||
"clearedPendingDiscoveries": "Εκκαθάριση εκκρεμών ανακαλύψεων.",
|
||||
"autoDiscovery": "Αυτόματη ανακάλυψη",
|
||||
"enableAutomaticAdding": "Ενεργοποίηση αυτόματης προσθήκης",
|
||||
"autoaddRepeaters": "Αυτόματη προσθήκη αναμεταδοτών",
|
||||
"autoaddRoomServers": "Αυτόματη προσθήκη διακομιστών δωματίου",
|
||||
"autoaddSensors": "Αυτόματη προσθήκη αισθητήρων",
|
||||
"autoaddUsers": "Αυτόματη προσθήκη χρηστών",
|
||||
"overwriteOldestWhenFull": "Αντικατάσταση παλαιότερων όταν γεμίσει",
|
||||
"storage": "Αποθήκευση",
|
||||
"dangerZone": "Ζώνη κινδύνου",
|
||||
"profiles": "Προφίλ",
|
||||
"favourites": "Αγαπημένα",
|
||||
"sensors": "Αισθητήρες",
|
||||
"others": "Άλλοι",
|
||||
"gpsModule": "Μονάδα GPS",
|
||||
"liveTraffic": "Ζωντανή κίνηση",
|
||||
"repeatersMap": "Χάρτης αναμεταδοτών",
|
||||
"spectrumScan": "Σάρωση φάσματος",
|
||||
"blePacketLogs": "Αρχεία πακέτων BLE",
|
||||
"onlineTraceDatabase": "Βάση δεδομένων ιχνών",
|
||||
"routePathByteSize": "Μέγεθος διαδρομής σε bytes",
|
||||
"messageNotifications": "Ειδοποιήσεις μηνυμάτων",
|
||||
"sarAlerts": "Ειδοποιήσεις SAR",
|
||||
"discoveryNotifications": "Ειδοποιήσεις ανακάλυψης",
|
||||
"updateNotifications": "Ειδοποιήσεις ενημερώσεων",
|
||||
"muteWhileAppIsOpen": "Σίγαση με ανοιχτή εφαρμογή",
|
||||
"disableContacts": "Απενεργοποίηση επαφών",
|
||||
"enableSensorsTab": "Ενεργοποίηση καρτέλας Αισθητήρων",
|
||||
"enableProfiles": "Ενεργοποίηση προφίλ",
|
||||
"autoRouteRotation": "Αυτόματη εναλλαγή διαδρομής",
|
||||
"nearestRepeaterFallback": "Πλησιέστερος αναμεταδότης ως εφεδρεία",
|
||||
"deleteAllStoredMessageHistory": "Διαγραφή όλου του ιστορικού",
|
||||
"messageFontSize": "Μέγεθος γραμματοσειράς μηνυμάτων",
|
||||
"rotateMapWithHeading": "Περιστροφή χάρτη με κατεύθυνση",
|
||||
"showMapDebugInfo": "Εμφάνιση πληροφοριών αποσφαλμάτωσης",
|
||||
"openMapInFullscreen": "Άνοιγμα χάρτη σε πλήρη οθόνη",
|
||||
"showSarMarkersLabel": "Εμφάνιση δεικτών SAR",
|
||||
"displaySarMarkersOnTheMainMap": "Εμφάνιση δεικτών SAR στον κύριο χάρτη",
|
||||
"showAllContactTrailsLabel": "Εμφάνιση όλων των ιχνών επαφών",
|
||||
"hideRepeatersOnMap": "Απόκρυψη αναμεταδοτών στον χάρτη",
|
||||
"setMapScale": "Ρύθμιση κλίμακας χάρτη",
|
||||
"customMapScaleSaved": "Προσαρμοσμένη κλίμακα χάρτη αποθηκεύτηκε",
|
||||
"voiceBitrate": "Ρυθμός bit φωνής",
|
||||
"voiceCompressor": "Συμπιεστής φωνής",
|
||||
"balancesQuietAndLoudSpeechLevels": "Εξισορρόπηση χαμηλών και δυνατών επιπέδων",
|
||||
"voiceLimiter": "Περιοριστής φωνής",
|
||||
"preventsClippingPeaksBeforeEncoding": "Αποτρέπει κοπή κορυφών πριν την κωδικοποίηση",
|
||||
"micAutoGain": "Αυτόματη ενίσχυση μικροφώνου",
|
||||
"letsTheRecorderAdjustInputLevel": "Αφήνει τη συσκευή να ρυθμίσει την ένταση",
|
||||
"echoCancellation": "Ακύρωση ηχούς",
|
||||
"noiseSuppression": "Καταστολή θορύβου",
|
||||
"trimSilenceInVoiceMessages": "Περικοπή σιωπής σε φωνητικά μηνύματα",
|
||||
"compressor": "Συμπιεστής",
|
||||
"limiter": "Περιοριστής",
|
||||
"autoGain": "Αυτόματη ενίσχυση",
|
||||
"echoCancel": "Ηχώ",
|
||||
"noiseSuppress": "Θόρυβος",
|
||||
"silenceTrim": "Σιωπή",
|
||||
"maxImageSize": "Μέγιστο μέγεθος εικόνας",
|
||||
"imageCompression": "Συμπίεση εικόνας",
|
||||
"grayscale": "Κλίμακα του γκρι",
|
||||
"ultraMode": "Λειτουργία ultra",
|
||||
"fastPrivateGpsUpdates": "Γρήγορες ιδιωτικές ενημερώσεις GPS",
|
||||
"movementThreshold": "Κατώφλι κίνησης",
|
||||
"fastGpsMovementThreshold": "Κατώφλι κίνησης γρήγορου GPS",
|
||||
"fastGpsActiveuseInterval": "Διάστημα ενεργής χρήσης γρήγορου GPS",
|
||||
"activeuseUpdateInterval": "Διάστημα ενημέρωσης ενεργής χρήσης",
|
||||
"repeatNearbyTraffic": "Επανάληψη κοντινής κίνησης",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Αναμετάδοση μέσω αναμεταδοτών στο δίκτυο",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Μόνο κοντά, χωρίς πλημμυρισμό",
|
||||
"multihop": "Πολλαπλών αναπηδήσεων",
|
||||
"createProfile": "Δημιουργία προφίλ",
|
||||
"renameProfile": "Μετονομασία προφίλ",
|
||||
"newProfile": "Νέο προφίλ",
|
||||
"manageProfiles": "Διαχείριση προφίλ",
|
||||
"enableProfilesToStartManagingThem": "Ενεργοποιήστε τα προφίλ για να τα διαχειριστείτε.",
|
||||
"openMessage": "Άνοιγμα μηνύματος",
|
||||
"jumpToTheRelatedSarMessage": "Μετάβαση στο σχετικό μήνυμα SAR",
|
||||
"removeSarMarker": "Αφαίρεση δείκτη SAR",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Επιλέξτε προορισμό για αποστολή δείκτη SAR",
|
||||
"sarMarkerBroadcastToPublicChannel": "Δείκτης SAR εκπεμπόμενος στο δημόσιο κανάλι",
|
||||
"sarMarkerSentToRoom": "Δείκτης SAR εστάλη στο δωμάτιο",
|
||||
"loadFromGallery": "Φόρτωση από τη γκαλερί",
|
||||
"replaceImage": "Αντικατάσταση εικόνας",
|
||||
"selectFromGallery": "Επιλογή από τη γκαλερί",
|
||||
"team": "Ομάδα",
|
||||
"found": "Βρέθηκε",
|
||||
"staging": "Χώρος συγκέντρωσης",
|
||||
"object": "Αντικείμενο",
|
||||
"quiet": "Ήσυχο",
|
||||
"moderate": "Μέτριο",
|
||||
"busy": "Απασχολημένο",
|
||||
"spectrumScanReturnedNoCandidateFrequencies": "Η σάρωση φάσματος δεν βρήκε υποψήφιες συχνότητες",
|
||||
"searchMessages": "Αναζήτηση μηνυμάτων",
|
||||
"sendImageFromGallery": "Αποστολή εικόνας από τη γκαλερί",
|
||||
"takePhoto": "Λήψη φωτογραφίας",
|
||||
"dmOnly": "Μόνο απευθείας",
|
||||
"allMessages": "Όλα τα μηνύματα",
|
||||
"sendToPublicChannel": "Αποστολή στο δημόσιο κανάλι;",
|
||||
"selectMarkerTypeAndDestination": "Επιλέξτε τύπο δείκτη και προορισμό",
|
||||
"noDestinationsAvailableLabel": "Δεν υπάρχουν διαθέσιμοι προορισμοί",
|
||||
"image": "Εικόνα",
|
||||
"format": "Μορφή",
|
||||
"dimensions": "Διαστάσεις",
|
||||
"segments": "Τμήματα",
|
||||
"transfers": "Μεταφορές",
|
||||
"downloadedBy": "Λήφθηκε από",
|
||||
"saveDiscoverySettings": "Αποθήκευση ρυθμίσεων ανακάλυψης",
|
||||
"savePublicInfo": "Αποθήκευση δημόσιων πληροφοριών",
|
||||
"saveRadioSettings": "Αποθήκευση ρυθμίσεων ραδιοφώνου",
|
||||
"savePath": "Αποθήκευση διαδρομής",
|
||||
"wipeDeviceData": "Διαγραφή δεδομένων συσκευής",
|
||||
"wipeDevice": "Διαγραφή συσκευής",
|
||||
"destructiveDeviceActions": "Καταστροφικές ενέργειες συσκευής.",
|
||||
"chooseAPresetOrFinetuneCustomRadioSettings": "Επιλέξτε μια προεπιλογή ή ρυθμίστε τις ρυθμίσεις ραδιοφώνου.",
|
||||
"chooseTheNameAndLocationThisDeviceShares": "Επιλέξτε το όνομα και την τοποθεσία που μοιράζεται αυτή η συσκευή.",
|
||||
"availableSpaceOnThisDevice": "Διαθέσιμος χώρος σε αυτή τη συσκευή.",
|
||||
"used": "Χρησιμοποιήθηκε",
|
||||
"total": "Σύνολο",
|
||||
"renameValue": "Μετονομασία τιμής",
|
||||
"customizeFields": "Προσαρμογή πεδίων",
|
||||
"livePreview": "Ζωντανή προεπισκόπηση",
|
||||
"refreshSchedule": "Χρονοδιάγραμμα ανανέωσης",
|
||||
"noResponse": "Χωρίς απάντηση",
|
||||
"refreshing": "Ανανέωση",
|
||||
"unavailable": "Μη διαθέσιμο",
|
||||
"pickARelayOrNodeToWatchInSensors": "Επιλέξτε ένα relay ή κόμβο για παρακολούθηση.",
|
||||
"publicKeyLabel": "Δημόσιο κλειδί",
|
||||
"alreadyInContacts": "Ήδη στις επαφές",
|
||||
"connectToADeviceBeforeAddingContacts": "Συνδεθείτε σε μια συσκευή πριν προσθέσετε επαφές",
|
||||
"fromContacts": "Από τις επαφές",
|
||||
"onlineOnly": "Μόνο συνδεδεμένοι",
|
||||
"inBoth": "Σε αμφότερα",
|
||||
"source": "Πηγή",
|
||||
"manualRouteEdit": "Χειροκίνητη επεξεργασία διαδρομής",
|
||||
"observedMeshRoute": "Παρατηρούμενη διαδρομή δικτύου",
|
||||
"allMessagesCleared": "Όλα τα μηνύματα διαγράφηκαν",
|
||||
"onlineTraceDatabaseCleared": "Βάση δεδομένων ιχνών εκκαθαρίστηκε",
|
||||
"packetLogsCleared": "Τα αρχεία πακέτων εκκαθαρίστηκαν",
|
||||
"hexDataCopiedToClipboard": "Τα δεδομένα hex αντιγράφηκαν",
|
||||
"developerModeEnabled": "Λειτουργία προγραμματιστή ενεργοποιήθηκε",
|
||||
"developerModeDisabled": "Λειτουργία προγραμματιστή απενεργοποιήθηκε",
|
||||
"clipboardIsEmpty": "Το πρόχειρο είναι κενό",
|
||||
"contactImported": "Επαφή εισήχθη",
|
||||
"contactLinkCopiedToClipboard": "Ο σύνδεσμος επαφής αντιγράφηκε",
|
||||
"failedToExportContact": "Αποτυχία εξαγωγής επαφής",
|
||||
"noLogsToExport": "Δεν υπάρχουν αρχεία για εξαγωγή",
|
||||
"exportAsCsv": "Εξαγωγή ως CSV",
|
||||
"exportAsText": "Εξαγωγή ως κείμενο",
|
||||
"receivedRfc3339": "Ελήφθη (RFC3339)",
|
||||
"buildTime": "Ώρα κατασκευής",
|
||||
"downloadUrlNotAvailable": "Η URL λήψης δεν είναι διαθέσιμη",
|
||||
"cannotOpenDownloadUrl": "Αδυναμία ανοίγματος URL λήψης",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "Ο έλεγχος ενημερώσεων είναι διαθέσιμος μόνο σε Android",
|
||||
"youAreRunningTheLatestVersion": "Χρησιμοποιείτε την πιο πρόσφατη έκδοση",
|
||||
"updateAvailableButDownloadUrlNotFound": "Διαθέσιμη ενημέρωση αλλά η URL λήψης δεν βρέθηκε",
|
||||
"startTictactoe": "Εκκίνηση Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe μη διαθέσιμο",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: άγνωστος αντίπαλος",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: αναμονή για εκκίνηση",
|
||||
"acceptsShareLinks": "Αποδέχεται κοινόχρηστους συνδέσμους",
|
||||
"supportsRawHex": "Υποστηρίζει ακατέργαστο hex",
|
||||
"clipboardfriendly": "Φιλικό προς πρόχειρο",
|
||||
"captured": "Καταγράφηκε",
|
||||
"size": "Μέγεθος",
|
||||
"noCustomChannelsToClear": "Δεν υπάρχουν προσαρμοσμένα κανάλια.",
|
||||
"noDeviceContactsToClear": "Δεν υπάρχουν επαφές συσκευής."
|
||||
}
|
||||
|
||||
@@ -2228,80 +2228,55 @@
|
||||
"description": "Message when there are no chat contacts to send to"
|
||||
},
|
||||
"reply": "Reply",
|
||||
"@reply": {
|
||||
},
|
||||
"@reply": {},
|
||||
"technicalDetails": "Technical details",
|
||||
"@technicalDetails": {
|
||||
},
|
||||
"@technicalDetails": {},
|
||||
"messageTechnicalDetails": "Message technical details",
|
||||
"@messageTechnicalDetails": {
|
||||
},
|
||||
"@messageTechnicalDetails": {},
|
||||
"linkQuality": "Link quality",
|
||||
"@linkQuality": {
|
||||
},
|
||||
"@linkQuality": {},
|
||||
"delivery": "Delivery",
|
||||
"@delivery": {
|
||||
},
|
||||
"@delivery": {},
|
||||
"status": "Status",
|
||||
"@status": {
|
||||
},
|
||||
"@status": {},
|
||||
"expectedAckTag": "Expected ACK tag",
|
||||
"@expectedAckTag": {
|
||||
},
|
||||
"@expectedAckTag": {},
|
||||
"roundTrip": "Round-trip",
|
||||
"@roundTrip": {
|
||||
},
|
||||
"@roundTrip": {},
|
||||
"retryAttempt": "Retry attempt",
|
||||
"@retryAttempt": {
|
||||
},
|
||||
"@retryAttempt": {},
|
||||
"floodFallback": "Flood fallback",
|
||||
"@floodFallback": {
|
||||
},
|
||||
"@floodFallback": {},
|
||||
"identity": "Identity",
|
||||
"@identity": {
|
||||
},
|
||||
"@identity": {},
|
||||
"messageId": "Message ID",
|
||||
"@messageId": {
|
||||
},
|
||||
"@messageId": {},
|
||||
"sender": "Sender",
|
||||
"@sender": {
|
||||
},
|
||||
"@sender": {},
|
||||
"senderKey": "Sender key",
|
||||
"@senderKey": {
|
||||
},
|
||||
"@senderKey": {},
|
||||
"recipient": "Recipient",
|
||||
"@recipient": {
|
||||
},
|
||||
"@recipient": {},
|
||||
"recipientKey": "Recipient key",
|
||||
"@recipientKey": {
|
||||
},
|
||||
"@recipientKey": {},
|
||||
"voice": "Voice",
|
||||
"@voice": {
|
||||
},
|
||||
"@voice": {},
|
||||
"voiceId": "Voice ID",
|
||||
"@voiceId": {
|
||||
},
|
||||
"@voiceId": {},
|
||||
"envelope": "Envelope",
|
||||
"@envelope": {
|
||||
},
|
||||
"@envelope": {},
|
||||
"sessionProgress": "Session progress",
|
||||
"@sessionProgress": {
|
||||
},
|
||||
"@sessionProgress": {},
|
||||
"complete": "Complete",
|
||||
"@complete": {
|
||||
},
|
||||
"@complete": {},
|
||||
"rawDump": "Raw dump",
|
||||
"@rawDump": {
|
||||
},
|
||||
"@rawDump": {},
|
||||
"cannotRetryMissingRecipient": "Cannot retry: recipient information missing",
|
||||
"@cannotRetryMissingRecipient": {
|
||||
},
|
||||
"@cannotRetryMissingRecipient": {},
|
||||
"voiceUnavailable": "Voice unavailable right now",
|
||||
"@voiceUnavailable": {
|
||||
},
|
||||
"@voiceUnavailable": {},
|
||||
"requestingVoice": "Requesting voice",
|
||||
"@requestingVoice": {
|
||||
},
|
||||
"@requestingVoice": {},
|
||||
"device": "device",
|
||||
"@device": {
|
||||
"description": "Generic device label"
|
||||
@@ -2542,5 +2517,258 @@
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"rssi": "RSSI",
|
||||
"@rssi": {
|
||||
"description": "Received signal strength indicator"
|
||||
},
|
||||
"snr": "SNR",
|
||||
"@snr": {
|
||||
"description": "Signal-to-noise ratio"
|
||||
},
|
||||
"ackTimeout": "ACK timeout",
|
||||
"opcode": "Opcode",
|
||||
"payload": "Payload",
|
||||
"hops": "Hops",
|
||||
"hashSize": "Hash size",
|
||||
"pathBytes": "Path bytes",
|
||||
"selectedPath": "Selected path",
|
||||
"estimatedTx": "Estimated tx",
|
||||
"senderToReceipt": "Sender to receipt",
|
||||
"receivedCopies": "Received copies",
|
||||
"retryCause": "Retry cause",
|
||||
"retryMode": "Retry mode",
|
||||
"retryResult": "Retry result",
|
||||
"lastRetry": "Last retry",
|
||||
"rxPackets": "RX packets",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Rate",
|
||||
"window": "Window",
|
||||
"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",
|
||||
"clearScale": "Clear scale",
|
||||
"clearDiscoveries": "Clear discoveries",
|
||||
"clearOnlineTraceDatabase": "Clear online trace database",
|
||||
"clearAllChannels": "Clear all channels",
|
||||
"clearAllContacts": "Clear all contacts",
|
||||
"clearChannels": "Clear channels",
|
||||
"clearContacts": "Clear contacts",
|
||||
"clearPathOnMaxRetry": "Clear path on max retry",
|
||||
"create": "Create",
|
||||
"custom": "Custom",
|
||||
"defaultValue": "Default",
|
||||
"duplicate": "Duplicate",
|
||||
"editName": "Edit name",
|
||||
"open": "Open",
|
||||
"paste": "Paste",
|
||||
"preview": "Preview",
|
||||
"remove": "Remove",
|
||||
"rename": "Rename",
|
||||
"resolveAll": "Resolve all",
|
||||
"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",
|
||||
"repeaterDiscoverySent": "Repeater discovery sent",
|
||||
"sensorDiscoverySent": "Sensor discovery sent",
|
||||
"clearedPendingDiscoveries": "Cleared pending discoveries.",
|
||||
"autoDiscovery": "Auto discovery",
|
||||
"enableAutomaticAdding": "Enable automatic adding",
|
||||
"autoaddRepeaters": "Auto-add repeaters",
|
||||
"autoaddRoomServers": "Auto-add room servers",
|
||||
"autoaddSensors": "Auto-add sensors",
|
||||
"autoaddUsers": "Auto-add users",
|
||||
"overwriteOldestWhenFull": "Overwrite oldest when full",
|
||||
"storage": "Storage",
|
||||
"dangerZone": "Danger zone",
|
||||
"profiles": "Profiles",
|
||||
"favourites": "Favourites",
|
||||
"sensors": "Sensors",
|
||||
"others": "Others",
|
||||
"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",
|
||||
"messageNotifications": "Message notifications",
|
||||
"sarAlerts": "SAR alerts",
|
||||
"discoveryNotifications": "Discovery notifications",
|
||||
"updateNotifications": "Update notifications",
|
||||
"muteWhileAppIsOpen": "Mute while app is open",
|
||||
"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",
|
||||
"rotateMapWithHeading": "Rotate map with heading",
|
||||
"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",
|
||||
"compressor": "Compressor",
|
||||
"limiter": "Limiter",
|
||||
"autoGain": "Auto gain",
|
||||
"echoCancel": "Echo cancel",
|
||||
"noiseSuppress": "Noise suppress",
|
||||
"silenceTrim": "Silence trim",
|
||||
"maxImageSize": "Max image size",
|
||||
"imageCompression": "Image compression",
|
||||
"grayscale": "Grayscale",
|
||||
"ultraMode": "Ultra mode",
|
||||
"fastPrivateGpsUpdates": "Fast private GPS updates",
|
||||
"movementThreshold": "Movement threshold",
|
||||
"fastGpsMovementThreshold": "Fast GPS movement threshold",
|
||||
"fastGpsActiveuseInterval": "Fast GPS active-use interval",
|
||||
"activeuseUpdateInterval": "Active-use update interval",
|
||||
"repeatNearbyTraffic": "Repeat nearby traffic",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Relay through repeaters across the mesh",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Nearby only, without repeater flooding",
|
||||
"multihop": "Multi-hop",
|
||||
"createProfile": "Create Profile",
|
||||
"renameProfile": "Rename Profile",
|
||||
"newProfile": "New Profile",
|
||||
"manageProfiles": "Manage profiles",
|
||||
"enableProfilesToStartManagingThem": "Enable profiles to start managing them.",
|
||||
"openMessage": "Open message",
|
||||
"jumpToTheRelatedSarMessage": "Jump to the related SAR message",
|
||||
"removeSarMarker": "Remove SAR marker",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Please select a destination to send SAR marker",
|
||||
"sarMarkerBroadcastToPublicChannel": "SAR marker broadcast to public channel",
|
||||
"sarMarkerSentToRoom": "SAR marker sent to room",
|
||||
"loadFromGallery": "Load from gallery",
|
||||
"replaceImage": "Replace image",
|
||||
"selectFromGallery": "Select from gallery",
|
||||
"team": "Team",
|
||||
"found": "Found",
|
||||
"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",
|
||||
"noDestinationsAvailableLabel": "No destinations available",
|
||||
"image": "Image",
|
||||
"format": "Format",
|
||||
"dimensions": "Dimensions",
|
||||
"segments": "Segments",
|
||||
"transfers": "Transfers",
|
||||
"downloadedBy": "Downloaded by",
|
||||
"saveDiscoverySettings": "Save discovery settings",
|
||||
"savePublicInfo": "Save public info",
|
||||
"saveRadioSettings": "Save radio settings",
|
||||
"savePath": "Save Path",
|
||||
"wipeDeviceData": "Wipe device data",
|
||||
"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",
|
||||
"customizeFields": "Customize fields",
|
||||
"livePreview": "Live preview",
|
||||
"refreshSchedule": "Refresh schedule",
|
||||
"noResponse": "No response",
|
||||
"refreshing": "Refreshing",
|
||||
"unavailable": "Unavailable",
|
||||
"pickARelayOrNodeToWatchInSensors": "Pick a relay or node to watch in Sensors.",
|
||||
"publicKeyLabel": "Public key",
|
||||
"alreadyInContacts": "Already in contacts",
|
||||
"connectToADeviceBeforeAddingContacts": "Connect to a device before adding contacts",
|
||||
"fromContacts": "From contacts",
|
||||
"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",
|
||||
"hexDataCopiedToClipboard": "Hex data copied to clipboard",
|
||||
"developerModeEnabled": "Developer mode enabled",
|
||||
"developerModeDisabled": "Developer mode disabled",
|
||||
"clipboardIsEmpty": "Clipboard is empty",
|
||||
"contactImported": "Contact imported",
|
||||
"contactLinkCopiedToClipboard": "Contact link copied to clipboard",
|
||||
"failedToExportContact": "Failed to export contact",
|
||||
"noLogsToExport": "No logs to export",
|
||||
"exportAsCsv": "Export as CSV",
|
||||
"exportAsText": "Export as Text",
|
||||
"receivedRfc3339": "Received (RFC3339)",
|
||||
"buildTime": "Build Time",
|
||||
"downloadUrlNotAvailable": "Download URL not available",
|
||||
"cannotOpenDownloadUrl": "Cannot open download URL",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "Update check is only available on Android",
|
||||
"youAreRunningTheLatestVersion": "You are running the latest version",
|
||||
"updateAvailableButDownloadUrlNotFound": "Update available but download URL not found",
|
||||
"startTictactoe": "Start Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe unavailable",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: opponent unknown",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: waiting for start",
|
||||
"acceptsShareLinks": "Accepts share links",
|
||||
"supportsRawHex": "Supports raw hex",
|
||||
"clipboardfriendly": "Clipboard-friendly",
|
||||
"captured": "Captured",
|
||||
"size": "Size",
|
||||
"noCustomChannelsToClear": "No custom channels to clear.",
|
||||
"noDeviceContactsToClear": "No device contacts to clear."
|
||||
}
|
||||
|
||||
@@ -1638,5 +1638,252 @@
|
||||
"contactFailedToClearRoute": "No se pudo borrar la ruta: {error}",
|
||||
"contactRouteCleared": "Ruta borrada",
|
||||
"contactRouteSet": "Ruta establecida: {route}",
|
||||
"contactFailedToSetRoute": "No se pudo establecer la ruta: {error}"
|
||||
"contactFailedToSetRoute": "No se pudo establecer la ruta: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "Tiempo de espera ACK",
|
||||
"opcode": "Código de operación",
|
||||
"payload": "Carga útil",
|
||||
"hops": "Saltos",
|
||||
"hashSize": "Tamaño del hash",
|
||||
"pathBytes": "Bytes de ruta",
|
||||
"selectedPath": "Ruta seleccionada",
|
||||
"estimatedTx": "Transmisión estimada",
|
||||
"senderToReceipt": "Del remitente al recibo",
|
||||
"receivedCopies": "Copias recibidas",
|
||||
"retryCause": "Causa del reintento",
|
||||
"retryMode": "Modo de reintento",
|
||||
"retryResult": "Resultado del reintento",
|
||||
"lastRetry": "Último reintento",
|
||||
"rxPackets": "Paquetes RX",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Velocidad",
|
||||
"window": "Ventana",
|
||||
"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",
|
||||
"clearScale": "Borrar escala",
|
||||
"clearDiscoveries": "Borrar descubrimientos",
|
||||
"clearOnlineTraceDatabase": "Borrar base de datos de trazas",
|
||||
"clearAllChannels": "Borrar todos los canales",
|
||||
"clearAllContacts": "Borrar todos los contactos",
|
||||
"clearChannels": "Borrar canales",
|
||||
"clearContacts": "Borrar contactos",
|
||||
"clearPathOnMaxRetry": "Borrar ruta en máximo reintento",
|
||||
"create": "Crear",
|
||||
"custom": "Personalizado",
|
||||
"defaultValue": "Predeterminado",
|
||||
"duplicate": "Duplicar",
|
||||
"editName": "Editar nombre",
|
||||
"open": "Abrir",
|
||||
"paste": "Pegar",
|
||||
"preview": "Vista previa",
|
||||
"remove": "Eliminar",
|
||||
"rename": "Renombrar",
|
||||
"resolveAll": "Resolver todo",
|
||||
"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",
|
||||
"repeaterDiscoverySent": "Descubrimiento de repetidores enviado",
|
||||
"sensorDiscoverySent": "Descubrimiento de sensores enviado",
|
||||
"clearedPendingDiscoveries": "Descubrimientos pendientes borrados.",
|
||||
"autoDiscovery": "Descubrimiento automático",
|
||||
"enableAutomaticAdding": "Habilitar adición automática",
|
||||
"autoaddRepeaters": "Añadir repetidores automáticamente",
|
||||
"autoaddRoomServers": "Añadir servidores de sala automáticamente",
|
||||
"autoaddSensors": "Añadir sensores automáticamente",
|
||||
"autoaddUsers": "Añadir usuarios automáticamente",
|
||||
"overwriteOldestWhenFull": "Sobrescribir más antiguos cuando esté lleno",
|
||||
"storage": "Almacenamiento",
|
||||
"dangerZone": "Zona de peligro",
|
||||
"profiles": "Perfiles",
|
||||
"favourites": "Favoritos",
|
||||
"sensors": "Sensores",
|
||||
"others": "Otros",
|
||||
"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",
|
||||
"messageNotifications": "Notificaciones de mensajes",
|
||||
"sarAlerts": "Alertas SAR",
|
||||
"discoveryNotifications": "Notificaciones de descubrimiento",
|
||||
"updateNotifications": "Notificaciones de actualización",
|
||||
"muteWhileAppIsOpen": "Silenciar con la app abierta",
|
||||
"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",
|
||||
"rotateMapWithHeading": "Rotar mapa con rumbo",
|
||||
"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",
|
||||
"compressor": "Compresor",
|
||||
"limiter": "Limitador",
|
||||
"autoGain": "Ganancia automática",
|
||||
"echoCancel": "Eco",
|
||||
"noiseSuppress": "Ruido",
|
||||
"silenceTrim": "Silencio",
|
||||
"maxImageSize": "Tamaño máximo de imagen",
|
||||
"imageCompression": "Compresión de imagen",
|
||||
"grayscale": "Escala de grises",
|
||||
"ultraMode": "Modo ultra",
|
||||
"fastPrivateGpsUpdates": "Actualizaciones GPS privadas rápidas",
|
||||
"movementThreshold": "Umbral de movimiento",
|
||||
"fastGpsMovementThreshold": "Umbral de movimiento GPS rápido",
|
||||
"fastGpsActiveuseInterval": "Intervalo de uso activo GPS rápido",
|
||||
"activeuseUpdateInterval": "Intervalo de actualización de uso activo",
|
||||
"repeatNearbyTraffic": "Repetir tráfico cercano",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Retransmitir a través de repetidores en la red",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Solo cercanos, sin inundación de repetidores",
|
||||
"multihop": "Multi-salto",
|
||||
"createProfile": "Crear perfil",
|
||||
"renameProfile": "Renombrar perfil",
|
||||
"newProfile": "Nuevo perfil",
|
||||
"manageProfiles": "Gestionar perfiles",
|
||||
"enableProfilesToStartManagingThem": "Habilite los perfiles para comenzar a gestionarlos.",
|
||||
"openMessage": "Abrir mensaje",
|
||||
"jumpToTheRelatedSarMessage": "Ir al mensaje SAR relacionado",
|
||||
"removeSarMarker": "Eliminar marcador SAR",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Seleccione un destino para enviar el marcador SAR",
|
||||
"sarMarkerBroadcastToPublicChannel": "Marcador SAR transmitido al canal público",
|
||||
"sarMarkerSentToRoom": "Marcador SAR enviado a la sala",
|
||||
"loadFromGallery": "Cargar desde galería",
|
||||
"replaceImage": "Reemplazar imagen",
|
||||
"selectFromGallery": "Seleccionar de galería",
|
||||
"team": "Equipo",
|
||||
"found": "Encontrado",
|
||||
"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",
|
||||
"noDestinationsAvailableLabel": "No hay destinos disponibles",
|
||||
"image": "Imagen",
|
||||
"format": "Formato",
|
||||
"dimensions": "Dimensiones",
|
||||
"segments": "Segmentos",
|
||||
"transfers": "Transferencias",
|
||||
"downloadedBy": "Descargado por",
|
||||
"saveDiscoverySettings": "Guardar ajustes de descubrimiento",
|
||||
"savePublicInfo": "Guardar información pública",
|
||||
"saveRadioSettings": "Guardar ajustes de radio",
|
||||
"savePath": "Guardar ruta",
|
||||
"wipeDeviceData": "Borrar datos del dispositivo",
|
||||
"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",
|
||||
"customizeFields": "Personalizar campos",
|
||||
"livePreview": "Vista previa en vivo",
|
||||
"refreshSchedule": "Programación de actualización",
|
||||
"noResponse": "Sin respuesta",
|
||||
"refreshing": "Actualizando",
|
||||
"unavailable": "No disponible",
|
||||
"pickARelayOrNodeToWatchInSensors": "Elija un relay o nodo para observar.",
|
||||
"publicKeyLabel": "Clave pública",
|
||||
"alreadyInContacts": "Ya en contactos",
|
||||
"connectToADeviceBeforeAddingContacts": "Conéctese a un dispositivo antes de añadir contactos",
|
||||
"fromContacts": "De contactos",
|
||||
"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",
|
||||
"hexDataCopiedToClipboard": "Datos hex copiados al portapapeles",
|
||||
"developerModeEnabled": "Modo desarrollador activado",
|
||||
"developerModeDisabled": "Modo desarrollador desactivado",
|
||||
"clipboardIsEmpty": "El portapapeles está vacío",
|
||||
"contactImported": "Contacto importado",
|
||||
"contactLinkCopiedToClipboard": "Enlace de contacto copiado al portapapeles",
|
||||
"failedToExportContact": "Error al exportar el contacto",
|
||||
"noLogsToExport": "No hay registros para exportar",
|
||||
"exportAsCsv": "Exportar como CSV",
|
||||
"exportAsText": "Exportar como texto",
|
||||
"receivedRfc3339": "Recibido (RFC3339)",
|
||||
"buildTime": "Hora de compilación",
|
||||
"downloadUrlNotAvailable": "URL de descarga no disponible",
|
||||
"cannotOpenDownloadUrl": "No se puede abrir la URL de descarga",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "La comprobación de actualizaciones solo está disponible en Android",
|
||||
"youAreRunningTheLatestVersion": "Está ejecutando la última versión",
|
||||
"updateAvailableButDownloadUrlNotFound": "Actualización disponible pero URL de descarga no encontrada",
|
||||
"startTictactoe": "Iniciar Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe no disponible",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: oponente desconocido",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: esperando inicio",
|
||||
"acceptsShareLinks": "Acepta enlaces compartidos",
|
||||
"supportsRawHex": "Soporta hex sin procesar",
|
||||
"clipboardfriendly": "Compatible con portapapeles",
|
||||
"captured": "Capturado",
|
||||
"size": "Tamaño",
|
||||
"noCustomChannelsToClear": "No hay canales personalizados que borrar.",
|
||||
"noDeviceContactsToClear": "No hay contactos del dispositivo que borrar."
|
||||
}
|
||||
|
||||
@@ -1641,5 +1641,252 @@
|
||||
"contactFailedToClearRoute": "Échec de l'effacement de la route : {error}",
|
||||
"contactRouteCleared": "Route effacée",
|
||||
"contactRouteSet": "Route définie : {route}",
|
||||
"contactFailedToSetRoute": "Échec du réglage de la route : {error}"
|
||||
"contactFailedToSetRoute": "Échec du réglage de la route : {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "Délai ACK expiré",
|
||||
"opcode": "Opcode",
|
||||
"payload": "Charge utile",
|
||||
"hops": "Sauts",
|
||||
"hashSize": "Taille du hash",
|
||||
"pathBytes": "Octets du chemin",
|
||||
"selectedPath": "Chemin sélectionné",
|
||||
"estimatedTx": "Émission estimée",
|
||||
"senderToReceipt": "Émetteur au reçu",
|
||||
"receivedCopies": "Copies reçues",
|
||||
"retryCause": "Cause de la relance",
|
||||
"retryMode": "Mode de relance",
|
||||
"retryResult": "Résultat de la relance",
|
||||
"lastRetry": "Dernière relance",
|
||||
"rxPackets": "Paquets RX",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Débit",
|
||||
"window": "Fenêtre",
|
||||
"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",
|
||||
"clearScale": "Effacer l'échelle",
|
||||
"clearDiscoveries": "Effacer les découvertes",
|
||||
"clearOnlineTraceDatabase": "Effacer la base de traces",
|
||||
"clearAllChannels": "Effacer tous les canaux",
|
||||
"clearAllContacts": "Effacer tous les contacts",
|
||||
"clearChannels": "Effacer les canaux",
|
||||
"clearContacts": "Effacer les contacts",
|
||||
"clearPathOnMaxRetry": "Effacer le chemin au max de relances",
|
||||
"create": "Créer",
|
||||
"custom": "Personnalisé",
|
||||
"defaultValue": "Par défaut",
|
||||
"duplicate": "Dupliquer",
|
||||
"editName": "Modifier le nom",
|
||||
"open": "Ouvrir",
|
||||
"paste": "Coller",
|
||||
"preview": "Aperçu",
|
||||
"remove": "Supprimer",
|
||||
"rename": "Renommer",
|
||||
"resolveAll": "Résoudre tout",
|
||||
"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",
|
||||
"repeaterDiscoverySent": "Découverte de répéteurs envoyée",
|
||||
"sensorDiscoverySent": "Découverte de capteurs envoyée",
|
||||
"clearedPendingDiscoveries": "Découvertes en attente effacées.",
|
||||
"autoDiscovery": "Découverte automatique",
|
||||
"enableAutomaticAdding": "Activer l'ajout automatique",
|
||||
"autoaddRepeaters": "Ajout auto des répéteurs",
|
||||
"autoaddRoomServers": "Ajout auto des serveurs de salle",
|
||||
"autoaddSensors": "Ajout auto des capteurs",
|
||||
"autoaddUsers": "Ajout auto des utilisateurs",
|
||||
"overwriteOldestWhenFull": "Écraser les plus anciens si plein",
|
||||
"storage": "Stockage",
|
||||
"dangerZone": "Zone de danger",
|
||||
"profiles": "Profils",
|
||||
"favourites": "Favoris",
|
||||
"sensors": "Capteurs",
|
||||
"others": "Autres",
|
||||
"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",
|
||||
"messageNotifications": "Notifications de messages",
|
||||
"sarAlerts": "Alertes SAR",
|
||||
"discoveryNotifications": "Notifications de découverte",
|
||||
"updateNotifications": "Notifications de mise à jour",
|
||||
"muteWhileAppIsOpen": "Muet quand l'appli est ouverte",
|
||||
"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",
|
||||
"rotateMapWithHeading": "Tourner la carte avec le cap",
|
||||
"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",
|
||||
"compressor": "Compresseur",
|
||||
"limiter": "Limiteur",
|
||||
"autoGain": "Gain automatique",
|
||||
"echoCancel": "Écho",
|
||||
"noiseSuppress": "Bruit",
|
||||
"silenceTrim": "Silence",
|
||||
"maxImageSize": "Taille d'image maximale",
|
||||
"imageCompression": "Compression d'image",
|
||||
"grayscale": "Niveaux de gris",
|
||||
"ultraMode": "Mode ultra",
|
||||
"fastPrivateGpsUpdates": "Mises à jour GPS privées rapides",
|
||||
"movementThreshold": "Seuil de mouvement",
|
||||
"fastGpsMovementThreshold": "Seuil de mouvement GPS rapide",
|
||||
"fastGpsActiveuseInterval": "Intervalle d'utilisation active GPS rapide",
|
||||
"activeuseUpdateInterval": "Intervalle de mise à jour en utilisation active",
|
||||
"repeatNearbyTraffic": "Répéter le trafic proche",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Relayer via les répéteurs du réseau",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Proximité seulement, sans inondation",
|
||||
"multihop": "Multi-saut",
|
||||
"createProfile": "Créer un profil",
|
||||
"renameProfile": "Renommer le profil",
|
||||
"newProfile": "Nouveau profil",
|
||||
"manageProfiles": "Gérer les profils",
|
||||
"enableProfilesToStartManagingThem": "Activez les profils pour commencer à les gérer.",
|
||||
"openMessage": "Ouvrir le message",
|
||||
"jumpToTheRelatedSarMessage": "Aller au message SAR associé",
|
||||
"removeSarMarker": "Supprimer le marqueur SAR",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Sélectionnez une destination pour envoyer le marqueur",
|
||||
"sarMarkerBroadcastToPublicChannel": "Marqueur SAR diffusé sur le canal public",
|
||||
"sarMarkerSentToRoom": "Marqueur SAR envoyé à la salle",
|
||||
"loadFromGallery": "Charger depuis la galerie",
|
||||
"replaceImage": "Remplacer l'image",
|
||||
"selectFromGallery": "Sélectionner depuis la galerie",
|
||||
"team": "Équipe",
|
||||
"found": "Trouvé",
|
||||
"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",
|
||||
"noDestinationsAvailableLabel": "Aucune destination disponible",
|
||||
"image": "Image",
|
||||
"format": "Format",
|
||||
"dimensions": "Dimensions",
|
||||
"segments": "Segments",
|
||||
"transfers": "Transferts",
|
||||
"downloadedBy": "Téléchargé par",
|
||||
"saveDiscoverySettings": "Enregistrer les paramètres de découverte",
|
||||
"savePublicInfo": "Enregistrer les infos publiques",
|
||||
"saveRadioSettings": "Enregistrer les paramètres radio",
|
||||
"savePath": "Enregistrer le chemin",
|
||||
"wipeDeviceData": "Effacer les données de l'appareil",
|
||||
"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",
|
||||
"customizeFields": "Personnaliser les champs",
|
||||
"livePreview": "Aperçu en direct",
|
||||
"refreshSchedule": "Planification d'actualisation",
|
||||
"noResponse": "Pas de réponse",
|
||||
"refreshing": "Actualisation",
|
||||
"unavailable": "Indisponible",
|
||||
"pickARelayOrNodeToWatchInSensors": "Choisissez un relais ou nœud à surveiller.",
|
||||
"publicKeyLabel": "Clé publique",
|
||||
"alreadyInContacts": "Déjà dans les contacts",
|
||||
"connectToADeviceBeforeAddingContacts": "Connectez-vous à un appareil avant d'ajouter des contacts",
|
||||
"fromContacts": "Des contacts",
|
||||
"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",
|
||||
"hexDataCopiedToClipboard": "Données hex copiées dans le presse-papiers",
|
||||
"developerModeEnabled": "Mode développeur activé",
|
||||
"developerModeDisabled": "Mode développeur désactivé",
|
||||
"clipboardIsEmpty": "Le presse-papiers est vide",
|
||||
"contactImported": "Contact importé",
|
||||
"contactLinkCopiedToClipboard": "Lien du contact copié dans le presse-papiers",
|
||||
"failedToExportContact": "Échec de l'exportation du contact",
|
||||
"noLogsToExport": "Aucun journal à exporter",
|
||||
"exportAsCsv": "Exporter en CSV",
|
||||
"exportAsText": "Exporter en texte",
|
||||
"receivedRfc3339": "Reçu (RFC3339)",
|
||||
"buildTime": "Heure de build",
|
||||
"downloadUrlNotAvailable": "URL de téléchargement non disponible",
|
||||
"cannotOpenDownloadUrl": "Impossible d'ouvrir l'URL de téléchargement",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "La vérification des mises à jour n'est disponible que sur Android",
|
||||
"youAreRunningTheLatestVersion": "Vous utilisez la dernière version",
|
||||
"updateAvailableButDownloadUrlNotFound": "Mise à jour disponible mais URL de téléchargement introuvable",
|
||||
"startTictactoe": "Démarrer Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe indisponible",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: adversaire inconnu",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: en attente du début",
|
||||
"acceptsShareLinks": "Accepte les liens partagés",
|
||||
"supportsRawHex": "Supporte le hex brut",
|
||||
"clipboardfriendly": "Compatible avec le presse-papiers",
|
||||
"captured": "Capturé",
|
||||
"size": "Taille",
|
||||
"noCustomChannelsToClear": "Aucun canal personnalisé à effacer.",
|
||||
"noDeviceContactsToClear": "Aucun contact de l'appareil à effacer."
|
||||
}
|
||||
|
||||
@@ -563,5 +563,252 @@
|
||||
"contactFailedToClearRoute": "Brisanje rute nije uspjelo: {error}",
|
||||
"contactRouteCleared": "Ruta obrisana",
|
||||
"contactRouteSet": "Ruta postavljena: {route}",
|
||||
"contactFailedToSetRoute": "Postavljanje rute nije uspjelo: {error}"
|
||||
"contactFailedToSetRoute": "Postavljanje rute nije uspjelo: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "ACK istek vremena",
|
||||
"opcode": "Opkod",
|
||||
"payload": "Sadržaj",
|
||||
"hops": "Skokovi",
|
||||
"hashSize": "Veličina hash-a",
|
||||
"pathBytes": "Bajtovi putanje",
|
||||
"selectedPath": "Odabrana putanja",
|
||||
"estimatedTx": "Procijenjeno slanje",
|
||||
"senderToReceipt": "Od pošiljatelja do primitka",
|
||||
"receivedCopies": "Primljene kopije",
|
||||
"retryCause": "Razlog ponovnog pokušaja",
|
||||
"retryMode": "Način ponovnog pokušaja",
|
||||
"retryResult": "Rezultat ponovnog pokušaja",
|
||||
"lastRetry": "Zadnji pokušaj",
|
||||
"rxPackets": "RX paketi",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Brzina",
|
||||
"window": "Prozor",
|
||||
"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",
|
||||
"clearScale": "Očisti mjerilo",
|
||||
"clearDiscoveries": "Očisti otkrića",
|
||||
"clearOnlineTraceDatabase": "Očisti bazu mrežnih tragova",
|
||||
"clearAllChannels": "Očisti sve kanale",
|
||||
"clearAllContacts": "Očisti sve kontakte",
|
||||
"clearChannels": "Očisti kanale",
|
||||
"clearContacts": "Očisti kontakte",
|
||||
"clearPathOnMaxRetry": "Očisti putanju kod maks. pokušaja",
|
||||
"create": "Stvori",
|
||||
"custom": "Prilagođeno",
|
||||
"defaultValue": "Zadano",
|
||||
"duplicate": "Dupliciraj",
|
||||
"editName": "Uredi ime",
|
||||
"open": "Otvori",
|
||||
"paste": "Zalijepi",
|
||||
"preview": "Pregled",
|
||||
"remove": "Ukloni",
|
||||
"rename": "Preimenuj",
|
||||
"resolveAll": "Razriješi sve",
|
||||
"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",
|
||||
"repeaterDiscoverySent": "Otkrivanje posrednika poslano",
|
||||
"sensorDiscoverySent": "Otkrivanje senzora poslano",
|
||||
"clearedPendingDiscoveries": "Očišćena čekajuća otkrića.",
|
||||
"autoDiscovery": "Automatsko otkrivanje",
|
||||
"enableAutomaticAdding": "Omogući automatsko dodavanje",
|
||||
"autoaddRepeaters": "Automatski dodaj posrednike",
|
||||
"autoaddRoomServers": "Automatski dodaj poslužitelje soba",
|
||||
"autoaddSensors": "Automatski dodaj senzore",
|
||||
"autoaddUsers": "Automatski dodaj korisnike",
|
||||
"overwriteOldestWhenFull": "Prepiši najstarije kad je puno",
|
||||
"storage": "Pohrana",
|
||||
"dangerZone": "Opasna zona",
|
||||
"profiles": "Profili",
|
||||
"favourites": "Favoriti",
|
||||
"sensors": "Senzori",
|
||||
"others": "Ostali",
|
||||
"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",
|
||||
"messageNotifications": "Obavijesti o porukama",
|
||||
"sarAlerts": "SAR upozorenja",
|
||||
"discoveryNotifications": "Obavijesti o otkrivanju",
|
||||
"updateNotifications": "Obavijesti o ažuriranju",
|
||||
"muteWhileAppIsOpen": "Utišaj dok je aplikacija otvorena",
|
||||
"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",
|
||||
"rotateMapWithHeading": "Rotiraj kartu prema smjeru",
|
||||
"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",
|
||||
"compressor": "Kompresor",
|
||||
"limiter": "Ograničivač",
|
||||
"autoGain": "Automatsko pojačanje",
|
||||
"echoCancel": "Odjek",
|
||||
"noiseSuppress": "Šum",
|
||||
"silenceTrim": "Tišina",
|
||||
"maxImageSize": "Maksimalna veličina slike",
|
||||
"imageCompression": "Kompresija slike",
|
||||
"grayscale": "Sivine",
|
||||
"ultraMode": "Ultra način",
|
||||
"fastPrivateGpsUpdates": "Brza privatna GPS ažuriranja",
|
||||
"movementThreshold": "Prag kretanja",
|
||||
"fastGpsMovementThreshold": "Prag kretanja za brzi GPS",
|
||||
"fastGpsActiveuseInterval": "Interval aktivnog korištenja brzog GPS-a",
|
||||
"activeuseUpdateInterval": "Interval ažuriranja pri aktivnom korištenju",
|
||||
"repeatNearbyTraffic": "Ponovi obližnji promet",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Proslijedi kroz posrednike kroz mrežu",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Samo obližnji, bez preplavljivanja posrednika",
|
||||
"multihop": "Višeskočno",
|
||||
"createProfile": "Stvori profil",
|
||||
"renameProfile": "Preimenuj profil",
|
||||
"newProfile": "Novi profil",
|
||||
"manageProfiles": "Upravljaj profilima",
|
||||
"enableProfilesToStartManagingThem": "Omogućite profile da biste ih počeli upravljati.",
|
||||
"openMessage": "Otvori poruku",
|
||||
"jumpToTheRelatedSarMessage": "Skoči na povezanu SAR poruku",
|
||||
"removeSarMarker": "Ukloni SAR oznaku",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Odaberite odredište za slanje SAR oznake",
|
||||
"sarMarkerBroadcastToPublicChannel": "SAR oznaka emitirana na javni kanal",
|
||||
"sarMarkerSentToRoom": "SAR oznaka poslana u sobu",
|
||||
"loadFromGallery": "Učitaj iz galerije",
|
||||
"replaceImage": "Zamijeni sliku",
|
||||
"selectFromGallery": "Odaberi iz galerije",
|
||||
"team": "Tim",
|
||||
"found": "Pronađeno",
|
||||
"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",
|
||||
"noDestinationsAvailableLabel": "Nema dostupnih odredišta",
|
||||
"image": "Slika",
|
||||
"format": "Format",
|
||||
"dimensions": "Dimenzije",
|
||||
"segments": "Segmenti",
|
||||
"transfers": "Prijenosi",
|
||||
"downloadedBy": "Preuzeo",
|
||||
"saveDiscoverySettings": "Spremi postavke otkrivanja",
|
||||
"savePublicInfo": "Spremi javne podatke",
|
||||
"saveRadioSettings": "Spremi radijske postavke",
|
||||
"savePath": "Spremi putanju",
|
||||
"wipeDeviceData": "Obriši podatke uređaja",
|
||||
"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",
|
||||
"customizeFields": "Prilagodi polja",
|
||||
"livePreview": "Pregled uživo",
|
||||
"refreshSchedule": "Raspored osvježavanja",
|
||||
"noResponse": "Nema odgovora",
|
||||
"refreshing": "Osvježavam",
|
||||
"unavailable": "Nedostupno",
|
||||
"pickARelayOrNodeToWatchInSensors": "Odaberite posrednika ili čvor za praćenje.",
|
||||
"publicKeyLabel": "Javni ključ",
|
||||
"alreadyInContacts": "Već u kontaktima",
|
||||
"connectToADeviceBeforeAddingContacts": "Povežite se s uređajem prije dodavanja kontakata",
|
||||
"fromContacts": "Iz kontakata",
|
||||
"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",
|
||||
"hexDataCopiedToClipboard": "Hex podaci kopirani u međuspremnik",
|
||||
"developerModeEnabled": "Razvojni način omogućen",
|
||||
"developerModeDisabled": "Razvojni način onemogućen",
|
||||
"clipboardIsEmpty": "Međuspremnik je prazan",
|
||||
"contactImported": "Kontakt uvezen",
|
||||
"contactLinkCopiedToClipboard": "Poveznica na kontakt kopirana u međuspremnik",
|
||||
"failedToExportContact": "Izvoz kontakta nije uspio",
|
||||
"noLogsToExport": "Nema zapisa za izvoz",
|
||||
"exportAsCsv": "Izvezi kao CSV",
|
||||
"exportAsText": "Izvezi kao tekst",
|
||||
"receivedRfc3339": "Primljeno (RFC3339)",
|
||||
"buildTime": "Vrijeme gradnje",
|
||||
"downloadUrlNotAvailable": "URL za preuzimanje nije dostupan",
|
||||
"cannotOpenDownloadUrl": "Ne mogu otvoriti URL za preuzimanje",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "Provjera ažuriranja dostupna je samo na Androidu",
|
||||
"youAreRunningTheLatestVersion": "Koristite najnoviju verziju",
|
||||
"updateAvailableButDownloadUrlNotFound": "Ažuriranje dostupno, ali URL za preuzimanje nije pronađen",
|
||||
"startTictactoe": "Pokreni Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe nije dostupan",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: protivnik nepoznat",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: čekanje na početak",
|
||||
"acceptsShareLinks": "Prihvaća dijeljene veze",
|
||||
"supportsRawHex": "Podržava sirovi hex",
|
||||
"clipboardfriendly": "Pogodno za međuspremnik",
|
||||
"captured": "Zabilježeno",
|
||||
"size": "Veličina",
|
||||
"noCustomChannelsToClear": "Nema prilagođenih kanala za brisanje.",
|
||||
"noDeviceContactsToClear": "Nema kontakata uređaja za brisanje."
|
||||
}
|
||||
|
||||
@@ -1641,5 +1641,252 @@
|
||||
"contactFailedToClearRoute": "Impossibile cancellare il percorso: {error}",
|
||||
"contactRouteCleared": "Percorso cancellato",
|
||||
"contactRouteSet": "Percorso impostato: {route}",
|
||||
"contactFailedToSetRoute": "Impossibile impostare il percorso: {error}"
|
||||
"contactFailedToSetRoute": "Impossibile impostare il percorso: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "Timeout ACK",
|
||||
"opcode": "Opcode",
|
||||
"payload": "Payload",
|
||||
"hops": "Hop",
|
||||
"hashSize": "Dimensione hash",
|
||||
"pathBytes": "Byte percorso",
|
||||
"selectedPath": "Percorso selezionato",
|
||||
"estimatedTx": "Trasmissione stimata",
|
||||
"senderToReceipt": "Mittente a ricevuta",
|
||||
"receivedCopies": "Copie ricevute",
|
||||
"retryCause": "Causa del ritentativo",
|
||||
"retryMode": "Modalità ritentativo",
|
||||
"retryResult": "Risultato ritentativo",
|
||||
"lastRetry": "Ultimo ritentativo",
|
||||
"rxPackets": "Pacchetti RX",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Velocità",
|
||||
"window": "Finestra",
|
||||
"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",
|
||||
"clearScale": "Cancella scala",
|
||||
"clearDiscoveries": "Cancella scoperte",
|
||||
"clearOnlineTraceDatabase": "Cancella database tracce",
|
||||
"clearAllChannels": "Cancella tutti i canali",
|
||||
"clearAllContacts": "Cancella tutti i contatti",
|
||||
"clearChannels": "Cancella canali",
|
||||
"clearContacts": "Cancella contatti",
|
||||
"clearPathOnMaxRetry": "Cancella percorso al max ritentativo",
|
||||
"create": "Crea",
|
||||
"custom": "Personalizzato",
|
||||
"defaultValue": "Predefinito",
|
||||
"duplicate": "Duplica",
|
||||
"editName": "Modifica nome",
|
||||
"open": "Apri",
|
||||
"paste": "Incolla",
|
||||
"preview": "Anteprima",
|
||||
"remove": "Rimuovi",
|
||||
"rename": "Rinomina",
|
||||
"resolveAll": "Risolvi tutto",
|
||||
"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",
|
||||
"repeaterDiscoverySent": "Scoperta ripetitori inviata",
|
||||
"sensorDiscoverySent": "Scoperta sensori inviata",
|
||||
"clearedPendingDiscoveries": "Scoperte in attesa cancellate.",
|
||||
"autoDiscovery": "Scoperta automatica",
|
||||
"enableAutomaticAdding": "Abilita aggiunta automatica",
|
||||
"autoaddRepeaters": "Aggiungi ripetitori automaticamente",
|
||||
"autoaddRoomServers": "Aggiungi server stanze automaticamente",
|
||||
"autoaddSensors": "Aggiungi sensori automaticamente",
|
||||
"autoaddUsers": "Aggiungi utenti automaticamente",
|
||||
"overwriteOldestWhenFull": "Sovrascrivi i più vecchi quando pieno",
|
||||
"storage": "Archiviazione",
|
||||
"dangerZone": "Zona pericolosa",
|
||||
"profiles": "Profili",
|
||||
"favourites": "Preferiti",
|
||||
"sensors": "Sensori",
|
||||
"others": "Altri",
|
||||
"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",
|
||||
"messageNotifications": "Notifiche messaggi",
|
||||
"sarAlerts": "Avvisi SAR",
|
||||
"discoveryNotifications": "Notifiche scoperte",
|
||||
"updateNotifications": "Notifiche aggiornamenti",
|
||||
"muteWhileAppIsOpen": "Silenzia con l'app aperta",
|
||||
"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",
|
||||
"rotateMapWithHeading": "Ruota mappa con direzione",
|
||||
"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",
|
||||
"compressor": "Compressore",
|
||||
"limiter": "Limitatore",
|
||||
"autoGain": "Guadagno automatico",
|
||||
"echoCancel": "Eco",
|
||||
"noiseSuppress": "Rumore",
|
||||
"silenceTrim": "Silenzio",
|
||||
"maxImageSize": "Dimensione massima immagine",
|
||||
"imageCompression": "Compressione immagine",
|
||||
"grayscale": "Scala di grigi",
|
||||
"ultraMode": "Modalità ultra",
|
||||
"fastPrivateGpsUpdates": "Aggiornamenti GPS privati veloci",
|
||||
"movementThreshold": "Soglia di movimento",
|
||||
"fastGpsMovementThreshold": "Soglia movimento GPS veloce",
|
||||
"fastGpsActiveuseInterval": "Intervallo uso attivo GPS veloce",
|
||||
"activeuseUpdateInterval": "Intervallo aggiornamento uso attivo",
|
||||
"repeatNearbyTraffic": "Ripeti traffico vicino",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Inoltra tramite ripetitori nella rete",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Solo vicini, senza flood dei ripetitori",
|
||||
"multihop": "Multi-hop",
|
||||
"createProfile": "Crea profilo",
|
||||
"renameProfile": "Rinomina profilo",
|
||||
"newProfile": "Nuovo profilo",
|
||||
"manageProfiles": "Gestisci profili",
|
||||
"enableProfilesToStartManagingThem": "Abilita i profili per iniziare a gestirli.",
|
||||
"openMessage": "Apri messaggio",
|
||||
"jumpToTheRelatedSarMessage": "Vai al messaggio SAR correlato",
|
||||
"removeSarMarker": "Rimuovi marcatore SAR",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Seleziona una destinazione per inviare il marcatore SAR",
|
||||
"sarMarkerBroadcastToPublicChannel": "Marcatore SAR trasmesso al canale pubblico",
|
||||
"sarMarkerSentToRoom": "Marcatore SAR inviato alla stanza",
|
||||
"loadFromGallery": "Carica dalla galleria",
|
||||
"replaceImage": "Sostituisci immagine",
|
||||
"selectFromGallery": "Seleziona dalla galleria",
|
||||
"team": "Squadra",
|
||||
"found": "Trovato",
|
||||
"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",
|
||||
"noDestinationsAvailableLabel": "Nessuna destinazione disponibile",
|
||||
"image": "Immagine",
|
||||
"format": "Formato",
|
||||
"dimensions": "Dimensioni",
|
||||
"segments": "Segmenti",
|
||||
"transfers": "Trasferimenti",
|
||||
"downloadedBy": "Scaricato da",
|
||||
"saveDiscoverySettings": "Salva impostazioni scoperta",
|
||||
"savePublicInfo": "Salva info pubbliche",
|
||||
"saveRadioSettings": "Salva impostazioni radio",
|
||||
"savePath": "Salva percorso",
|
||||
"wipeDeviceData": "Cancella dati dispositivo",
|
||||
"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",
|
||||
"customizeFields": "Personalizza campi",
|
||||
"livePreview": "Anteprima dal vivo",
|
||||
"refreshSchedule": "Programma aggiornamento",
|
||||
"noResponse": "Nessuna risposta",
|
||||
"refreshing": "Aggiornamento",
|
||||
"unavailable": "Non disponibile",
|
||||
"pickARelayOrNodeToWatchInSensors": "Scegli un relay o nodo da monitorare.",
|
||||
"publicKeyLabel": "Chiave pubblica",
|
||||
"alreadyInContacts": "Già nei contatti",
|
||||
"connectToADeviceBeforeAddingContacts": "Connettiti a un dispositivo prima di aggiungere contatti",
|
||||
"fromContacts": "Dai contatti",
|
||||
"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",
|
||||
"hexDataCopiedToClipboard": "Dati hex copiati negli appunti",
|
||||
"developerModeEnabled": "Modalità sviluppatore attivata",
|
||||
"developerModeDisabled": "Modalità sviluppatore disattivata",
|
||||
"clipboardIsEmpty": "Gli appunti sono vuoti",
|
||||
"contactImported": "Contatto importato",
|
||||
"contactLinkCopiedToClipboard": "Link contatto copiato negli appunti",
|
||||
"failedToExportContact": "Esportazione contatto fallita",
|
||||
"noLogsToExport": "Nessun log da esportare",
|
||||
"exportAsCsv": "Esporta come CSV",
|
||||
"exportAsText": "Esporta come testo",
|
||||
"receivedRfc3339": "Ricevuto (RFC3339)",
|
||||
"buildTime": "Ora build",
|
||||
"downloadUrlNotAvailable": "URL di download non disponibile",
|
||||
"cannotOpenDownloadUrl": "Impossibile aprire URL di download",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "Il controllo aggiornamenti è disponibile solo su Android",
|
||||
"youAreRunningTheLatestVersion": "Stai utilizzando l'ultima versione",
|
||||
"updateAvailableButDownloadUrlNotFound": "Aggiornamento disponibile ma URL di download non trovato",
|
||||
"startTictactoe": "Avvia Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe non disponibile",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: avversario sconosciuto",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: in attesa dell'inizio",
|
||||
"acceptsShareLinks": "Accetta link condivisi",
|
||||
"supportsRawHex": "Supporta hex grezzo",
|
||||
"clipboardfriendly": "Compatibile con appunti",
|
||||
"captured": "Catturato",
|
||||
"size": "Dimensione",
|
||||
"noCustomChannelsToClear": "Nessun canale personalizzato da cancellare.",
|
||||
"noDeviceContactsToClear": "Nessun contatto dispositivo da cancellare."
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1929,4 +1929,773 @@ class AppLocalizationsDe extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Pfad konnte nicht gesetzt werden: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'ACK-Zeitüberschreitung';
|
||||
|
||||
@override
|
||||
String get opcode => 'Opcode';
|
||||
|
||||
@override
|
||||
String get payload => 'Nutzlast';
|
||||
|
||||
@override
|
||||
String get hops => 'Hops';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Hash-Größe';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Pfad-Bytes';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Ausgewählter Pfad';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Geschätzte Sendung';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Sender bis Empfang';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Empfangene Kopien';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Wiederholungsursache';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Wiederholungsmodus';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Wiederholungsergebnis';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Letzter Versuch';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'RX-Pakete';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Rate';
|
||||
|
||||
@override
|
||||
String get window => 'Fenster';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Sendeverzögerung';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Bandpass';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get addContact => 'Kontakt hinzufügen';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Route löschen';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Nachrichten löschen';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Maßstab löschen';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Entdeckungen löschen';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Online-Trace-Datenbank löschen';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Alle Kanäle löschen';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Alle Kontakte löschen';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Kanäle löschen';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Kontakte löschen';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Pfad bei max. Wiederholung löschen';
|
||||
|
||||
@override
|
||||
String get create => 'Erstellen';
|
||||
|
||||
@override
|
||||
String get custom => 'Benutzerdefiniert';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Standard';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Duplizieren';
|
||||
|
||||
@override
|
||||
String get editName => 'Name bearbeiten';
|
||||
|
||||
@override
|
||||
String get open => 'Öffnen';
|
||||
|
||||
@override
|
||||
String get paste => 'Einfügen';
|
||||
|
||||
@override
|
||||
String get preview => 'Vorschau';
|
||||
|
||||
@override
|
||||
String get remove => 'Entfernen';
|
||||
|
||||
@override
|
||||
String get rename => 'Umbenennen';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Alle auflösen';
|
||||
|
||||
@override
|
||||
String get send => 'Senden';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Trotzdem senden';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Repeater entdecken';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Sensoren entdecken';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Repeater-Erkennung gesendet';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Sensor-Erkennung gesendet';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Ausstehende Entdeckungen gelöscht.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Automatische Erkennung';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Automatisches Hinzufügen aktivieren';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Repeater automatisch hinzufügen';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Raumserver automatisch hinzufügen';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Sensoren automatisch hinzufügen';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Benutzer automatisch hinzufügen';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull =>
|
||||
'Älteste bei vollem Speicher überschreiben';
|
||||
|
||||
@override
|
||||
String get storage => 'Speicher';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Gefahrenbereich';
|
||||
|
||||
@override
|
||||
String get profiles => 'Profile';
|
||||
|
||||
@override
|
||||
String get favourites => 'Favoriten';
|
||||
|
||||
@override
|
||||
String get sensors => 'Sensoren';
|
||||
|
||||
@override
|
||||
String get others => 'Andere';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'GPS-Modul';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Live-Verkehr';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Repeater-Karte';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Spektrum-Scan';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'BLE-Paketprotokolle';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Online-Trace-Datenbank';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Pfad-Bytegröße';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Nachrichtenbenachrichtigungen';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'SAR-Alarme';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Erkennungsbenachrichtigungen';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Updatebenachrichtigungen';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Stumm bei geöffneter App';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Kontakte deaktivieren';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Sensoren-Tab aktivieren';
|
||||
|
||||
@override
|
||||
String get enableProfiles => 'Profile aktivieren';
|
||||
|
||||
@override
|
||||
String get autoRouteRotation => 'Automatische Routenrotation';
|
||||
|
||||
@override
|
||||
String get nearestRepeaterFallback => 'Nächster Repeater als Fallback';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory =>
|
||||
'Gesamten Nachrichtenverlauf löschen';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Nachrichtenschriftgröße';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Karte mit Richtung drehen';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Karten-Debug-Info anzeigen';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Karte im Vollbild öffnen';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Kartenmaßstab einstellen';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved =>
|
||||
'Benutzerdefinierter Kartenmaßstab gespeichert';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Sprach-Bitrate';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Rauschunterdrückung';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages =>
|
||||
'Stille in Sprachnachrichten trimmen';
|
||||
|
||||
@override
|
||||
String get compressor => 'Kompressor';
|
||||
|
||||
@override
|
||||
String get limiter => 'Limiter';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Automatische Verstärkung';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Echo';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Rauschen';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Stille';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Maximale Bildgröße';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Bildkomprimierung';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Graustufen';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Ultra-Modus';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Schnelle private GPS-Updates';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Bewegungsschwelle';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Schneller GPS-Bewegungsschwellenwert';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval =>
|
||||
'Schnelles GPS aktive Nutzung Intervall';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval => 'Aktive Nutzung Updateintervall';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Nahverkehr wiederholen';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Über Repeater im Mesh weiterleiten';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Nur in der Nähe, ohne Repeater-Flooding';
|
||||
|
||||
@override
|
||||
String get multihop => 'Multi-Hop';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Profil erstellen';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Profil umbenennen';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Neues Profil';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Profile verwalten';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Aktivieren Sie Profile, um sie zu verwalten.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Nachricht öffnen';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage =>
|
||||
'Zur zugehörigen SAR-Nachricht springen';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'SAR-Markierung entfernen';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Bitte wählen Sie ein Ziel zum Senden der SAR-Markierung';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'SAR-Markierung an öffentlichen Kanal gesendet';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'SAR-Markierung an Raum gesendet';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Aus Galerie laden';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Bild ersetzen';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Aus Galerie auswählen';
|
||||
|
||||
@override
|
||||
String get team => 'Team';
|
||||
|
||||
@override
|
||||
String get found => 'Gefunden';
|
||||
|
||||
@override
|
||||
String get staging => 'Sammelpunkt';
|
||||
|
||||
@override
|
||||
String get object => 'Objekt';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Bild aus Galerie senden';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Foto aufnehmen';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Nur Direktnachricht';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Alle Nachrichten';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'An öffentlichen Kanal senden?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'Markierungstyp und Ziel auswählen';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'Keine Ziele verfügbar';
|
||||
|
||||
@override
|
||||
String get image => 'Bild';
|
||||
|
||||
@override
|
||||
String get format => 'Format';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Abmessungen';
|
||||
|
||||
@override
|
||||
String get segments => 'Segmente';
|
||||
|
||||
@override
|
||||
String get transfers => 'Übertragungen';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Heruntergeladen von';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Erkennungseinstellungen speichern';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Öffentliche Info speichern';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Funkeinstellungen speichern';
|
||||
|
||||
@override
|
||||
String get savePath => 'Pfad speichern';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Gerätedaten löschen';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Gerät löschen';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Destruktive Geräteaktionen.';
|
||||
|
||||
@override
|
||||
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';
|
||||
|
||||
@override
|
||||
String get total => 'Gesamt';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Wert umbenennen';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Felder anpassen';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Live-Vorschau';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Aktualisierungsplan';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Keine Antwort';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Wird aktualisiert';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Nicht verfügbar';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Wählen Sie einen Relay oder Knoten zur Beobachtung.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Öffentlicher Schlüssel';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Bereits in Kontakten';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Verbinden Sie sich mit einem Gerät, bevor Sie Kontakte hinzufügen';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'Aus Kontakten';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Nur online';
|
||||
|
||||
@override
|
||||
String get inBoth => 'In beiden';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Online-Trace-Datenbank gelöscht';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Paketprotokolle gelöscht';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard =>
|
||||
'Hex-Daten in die Zwischenablage kopiert';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Entwicklermodus aktiviert';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Entwicklermodus deaktiviert';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Zwischenablage ist leer';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Kontakt importiert';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Kontaktlink in Zwischenablage kopiert';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Kontaktexport fehlgeschlagen';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Keine Protokolle zum Exportieren';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Als CSV exportieren';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Als Text exportieren';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Empfangen (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Build-Zeit';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'Download-URL nicht verfügbar';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'Download-URL kann nicht geöffnet werden';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'Update-Prüfung nur auf Android verfügbar';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion =>
|
||||
'Sie verwenden die neueste Version';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Update verfügbar, aber Download-URL nicht gefunden';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Tic-Tac-Toe starten';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe nicht verfügbar';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: Gegner unbekannt';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: Warten auf Start';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Akzeptiert freigegebene Links';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Unterstützt rohes Hex';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Zwischenablage-freundlich';
|
||||
|
||||
@override
|
||||
String get captured => 'Erfasst';
|
||||
|
||||
@override
|
||||
String get size => 'Größe';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear =>
|
||||
'Keine benutzerdefinierten Kanäle zum Löschen.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear => 'Keine Gerätekontakte zum Löschen.';
|
||||
}
|
||||
|
||||
@@ -1936,4 +1936,768 @@ class AppLocalizationsEl extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Αποτυχία ορισμού διαδρομής: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'Λήξη χρόνου ACK';
|
||||
|
||||
@override
|
||||
String get opcode => 'Opcode';
|
||||
|
||||
@override
|
||||
String get payload => 'Ωφέλιμο φορτίο';
|
||||
|
||||
@override
|
||||
String get hops => 'Αναπηδήσεις';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Μέγεθος hash';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Bytes διαδρομής';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Επιλεγμένη διαδρομή';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Εκτιμώμενη εκπομπή';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Αποστολέας σε απόδειξη';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Ληφθέντα αντίγραφα';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Αιτία επανάληψης';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Λειτουργία επανάληψης';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Αποτέλεσμα επανάληψης';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Τελευταία επανάληψη';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'Πακέτα RX';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Ρυθμός';
|
||||
|
||||
@override
|
||||
String get window => 'Παράθυρο';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Καθυστέρηση μετά-tx';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Ζωνοπερατό';
|
||||
|
||||
@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 => 'Ενεργό';
|
||||
|
||||
@override
|
||||
String get addContact => 'Προσθήκη επαφής';
|
||||
|
||||
@override
|
||||
String get all => 'Όλα';
|
||||
|
||||
@override
|
||||
String get autoResolve => 'Αυτόματη επίλυση';
|
||||
|
||||
@override
|
||||
String get clearAllLabel => 'Εκκαθάριση όλων';
|
||||
|
||||
@override
|
||||
String get clearRelays => 'Εκκαθάριση αναμεταδοτών';
|
||||
|
||||
@override
|
||||
String get clearFilters => 'Εκκαθάριση φίλτρων';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Εκκαθάριση διαδρομής';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Εκκαθάριση μηνυμάτων';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Εκκαθάριση κλίμακας';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Εκκαθάριση ανακαλύψεων';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Εκκαθάριση βάσης ιχνών';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Εκκαθάριση όλων των καναλιών';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Εκκαθάριση όλων των επαφών';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Εκκαθάριση καναλιών';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Εκκαθάριση επαφών';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Εκκαθάριση μονοπατιού στο μέγιστο';
|
||||
|
||||
@override
|
||||
String get create => 'Δημιουργία';
|
||||
|
||||
@override
|
||||
String get custom => 'Προσαρμοσμένο';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Προεπιλογή';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Αντιγραφή';
|
||||
|
||||
@override
|
||||
String get editName => 'Επεξεργασία ονόματος';
|
||||
|
||||
@override
|
||||
String get open => 'Άνοιγμα';
|
||||
|
||||
@override
|
||||
String get paste => 'Επικόλληση';
|
||||
|
||||
@override
|
||||
String get preview => 'Προεπισκόπηση';
|
||||
|
||||
@override
|
||||
String get remove => 'Αφαίρεση';
|
||||
|
||||
@override
|
||||
String get rename => 'Μετονομασία';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Επίλυση όλων';
|
||||
|
||||
@override
|
||||
String get send => 'Αποστολή';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Αποστολή ούτως ή άλλως';
|
||||
|
||||
@override
|
||||
String get share => 'Κοινοποίηση';
|
||||
|
||||
@override
|
||||
String get shareContact => 'Κοινοποίηση επαφής';
|
||||
|
||||
@override
|
||||
String get trace => 'Ίχνος';
|
||||
|
||||
@override
|
||||
String get use => 'Χρήση';
|
||||
|
||||
@override
|
||||
String get useSelectedFrequency => 'Χρήση επιλεγμένης συχνότητας';
|
||||
|
||||
@override
|
||||
String get discovery => 'Ανακάλυψη';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Ανακάλυψη αναμεταδοτών';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Ανακάλυψη αισθητήρων';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Αποστολή ανακάλυψης αναμεταδοτών';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Αποστολή ανακάλυψης αισθητήρων';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Εκκαθάριση εκκρεμών ανακαλύψεων.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Αυτόματη ανακάλυψη';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Ενεργοποίηση αυτόματης προσθήκης';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Αυτόματη προσθήκη αναμεταδοτών';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Αυτόματη προσθήκη διακομιστών δωματίου';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Αυτόματη προσθήκη αισθητήρων';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Αυτόματη προσθήκη χρηστών';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull =>
|
||||
'Αντικατάσταση παλαιότερων όταν γεμίσει';
|
||||
|
||||
@override
|
||||
String get storage => 'Αποθήκευση';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Ζώνη κινδύνου';
|
||||
|
||||
@override
|
||||
String get profiles => 'Προφίλ';
|
||||
|
||||
@override
|
||||
String get favourites => 'Αγαπημένα';
|
||||
|
||||
@override
|
||||
String get sensors => 'Αισθητήρες';
|
||||
|
||||
@override
|
||||
String get others => 'Άλλοι';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'Μονάδα GPS';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Ζωντανή κίνηση';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Χάρτης αναμεταδοτών';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Σάρωση φάσματος';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'Αρχεία πακέτων BLE';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Βάση δεδομένων ιχνών';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Μέγεθος διαδρομής σε bytes';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Ειδοποιήσεις μηνυμάτων';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'Ειδοποιήσεις SAR';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Ειδοποιήσεις ανακάλυψης';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Ειδοποιήσεις ενημερώσεων';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Σίγαση με ανοιχτή εφαρμογή';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Απενεργοποίηση επαφών';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Ενεργοποίηση καρτέλας Αισθητήρων';
|
||||
|
||||
@override
|
||||
String get enableProfiles => 'Ενεργοποίηση προφίλ';
|
||||
|
||||
@override
|
||||
String get autoRouteRotation => 'Αυτόματη εναλλαγή διαδρομής';
|
||||
|
||||
@override
|
||||
String get nearestRepeaterFallback => 'Πλησιέστερος αναμεταδότης ως εφεδρεία';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory => 'Διαγραφή όλου του ιστορικού';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Μέγεθος γραμματοσειράς μηνυμάτων';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Περιστροφή χάρτη με κατεύθυνση';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Εμφάνιση πληροφοριών αποσφαλμάτωσης';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Άνοιγμα χάρτη σε πλήρη οθόνη';
|
||||
|
||||
@override
|
||||
String get showSarMarkersLabel => 'Εμφάνιση δεικτών SAR';
|
||||
|
||||
@override
|
||||
String get displaySarMarkersOnTheMainMap =>
|
||||
'Εμφάνιση δεικτών SAR στον κύριο χάρτη';
|
||||
|
||||
@override
|
||||
String get showAllContactTrailsLabel => 'Εμφάνιση όλων των ιχνών επαφών';
|
||||
|
||||
@override
|
||||
String get hideRepeatersOnMap => 'Απόκρυψη αναμεταδοτών στον χάρτη';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Ρύθμιση κλίμακας χάρτη';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Προσαρμοσμένη κλίμακα χάρτη αποθηκεύτηκε';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Ρυθμός bit φωνής';
|
||||
|
||||
@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 => 'Ακύρωση ηχούς';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Καταστολή θορύβου';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages =>
|
||||
'Περικοπή σιωπής σε φωνητικά μηνύματα';
|
||||
|
||||
@override
|
||||
String get compressor => 'Συμπιεστής';
|
||||
|
||||
@override
|
||||
String get limiter => 'Περιοριστής';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Αυτόματη ενίσχυση';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Ηχώ';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Θόρυβος';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Σιωπή';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Μέγιστο μέγεθος εικόνας';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Συμπίεση εικόνας';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Κλίμακα του γκρι';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Λειτουργία ultra';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Γρήγορες ιδιωτικές ενημερώσεις GPS';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Κατώφλι κίνησης';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Κατώφλι κίνησης γρήγορου GPS';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval => 'Διάστημα ενεργής χρήσης γρήγορου GPS';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval => 'Διάστημα ενημέρωσης ενεργής χρήσης';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Επανάληψη κοντινής κίνησης';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Αναμετάδοση μέσω αναμεταδοτών στο δίκτυο';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Μόνο κοντά, χωρίς πλημμυρισμό';
|
||||
|
||||
@override
|
||||
String get multihop => 'Πολλαπλών αναπηδήσεων';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Δημιουργία προφίλ';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Μετονομασία προφίλ';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Νέο προφίλ';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Διαχείριση προφίλ';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Ενεργοποιήστε τα προφίλ για να τα διαχειριστείτε.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Άνοιγμα μηνύματος';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => 'Μετάβαση στο σχετικό μήνυμα SAR';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Αφαίρεση δείκτη SAR';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Επιλέξτε προορισμό για αποστολή δείκτη SAR';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'Δείκτης SAR εκπεμπόμενος στο δημόσιο κανάλι';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'Δείκτης SAR εστάλη στο δωμάτιο';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Φόρτωση από τη γκαλερί';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Αντικατάσταση εικόνας';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Επιλογή από τη γκαλερί';
|
||||
|
||||
@override
|
||||
String get team => 'Ομάδα';
|
||||
|
||||
@override
|
||||
String get found => 'Βρέθηκε';
|
||||
|
||||
@override
|
||||
String get staging => 'Χώρος συγκέντρωσης';
|
||||
|
||||
@override
|
||||
String get object => 'Αντικείμενο';
|
||||
|
||||
@override
|
||||
String get quiet => 'Ήσυχο';
|
||||
|
||||
@override
|
||||
String get moderate => 'Μέτριο';
|
||||
|
||||
@override
|
||||
String get busy => 'Απασχολημένο';
|
||||
|
||||
@override
|
||||
String get spectrumScanReturnedNoCandidateFrequencies =>
|
||||
'Η σάρωση φάσματος δεν βρήκε υποψήφιες συχνότητες';
|
||||
|
||||
@override
|
||||
String get searchMessages => 'Αναζήτηση μηνυμάτων';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Αποστολή εικόνας από τη γκαλερί';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Λήψη φωτογραφίας';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Μόνο απευθείας';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Όλα τα μηνύματα';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Αποστολή στο δημόσιο κανάλι;';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'Επιλέξτε τύπο δείκτη και προορισμό';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel =>
|
||||
'Δεν υπάρχουν διαθέσιμοι προορισμοί';
|
||||
|
||||
@override
|
||||
String get image => 'Εικόνα';
|
||||
|
||||
@override
|
||||
String get format => 'Μορφή';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Διαστάσεις';
|
||||
|
||||
@override
|
||||
String get segments => 'Τμήματα';
|
||||
|
||||
@override
|
||||
String get transfers => 'Μεταφορές';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Λήφθηκε από';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Αποθήκευση ρυθμίσεων ανακάλυψης';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Αποθήκευση δημόσιων πληροφοριών';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Αποθήκευση ρυθμίσεων ραδιοφώνου';
|
||||
|
||||
@override
|
||||
String get savePath => 'Αποθήκευση διαδρομής';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Διαγραφή δεδομένων συσκευής';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Διαγραφή συσκευής';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Καταστροφικές ενέργειες συσκευής.';
|
||||
|
||||
@override
|
||||
String get chooseAPresetOrFinetuneCustomRadioSettings =>
|
||||
'Επιλέξτε μια προεπιλογή ή ρυθμίστε τις ρυθμίσεις ραδιοφώνου.';
|
||||
|
||||
@override
|
||||
String get chooseTheNameAndLocationThisDeviceShares =>
|
||||
'Επιλέξτε το όνομα και την τοποθεσία που μοιράζεται αυτή η συσκευή.';
|
||||
|
||||
@override
|
||||
String get availableSpaceOnThisDevice =>
|
||||
'Διαθέσιμος χώρος σε αυτή τη συσκευή.';
|
||||
|
||||
@override
|
||||
String get used => 'Χρησιμοποιήθηκε';
|
||||
|
||||
@override
|
||||
String get total => 'Σύνολο';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Μετονομασία τιμής';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Προσαρμογή πεδίων';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Ζωντανή προεπισκόπηση';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Χρονοδιάγραμμα ανανέωσης';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Χωρίς απάντηση';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Ανανέωση';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Μη διαθέσιμο';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Επιλέξτε ένα relay ή κόμβο για παρακολούθηση.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Δημόσιο κλειδί';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Ήδη στις επαφές';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Συνδεθείτε σε μια συσκευή πριν προσθέσετε επαφές';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'Από τις επαφές';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Μόνο συνδεδεμένοι';
|
||||
|
||||
@override
|
||||
String get inBoth => 'Σε αμφότερα';
|
||||
|
||||
@override
|
||||
String get source => 'Πηγή';
|
||||
|
||||
@override
|
||||
String get manualRouteEdit => 'Χειροκίνητη επεξεργασία διαδρομής';
|
||||
|
||||
@override
|
||||
String get observedMeshRoute => 'Παρατηρούμενη διαδρομή δικτύου';
|
||||
|
||||
@override
|
||||
String get allMessagesCleared => 'Όλα τα μηνύματα διαγράφηκαν';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Βάση δεδομένων ιχνών εκκαθαρίστηκε';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Τα αρχεία πακέτων εκκαθαρίστηκαν';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => 'Τα δεδομένα hex αντιγράφηκαν';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Λειτουργία προγραμματιστή ενεργοποιήθηκε';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled =>
|
||||
'Λειτουργία προγραμματιστή απενεργοποιήθηκε';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Το πρόχειρο είναι κενό';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Επαφή εισήχθη';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard => 'Ο σύνδεσμος επαφής αντιγράφηκε';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Αποτυχία εξαγωγής επαφής';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Δεν υπάρχουν αρχεία για εξαγωγή';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Εξαγωγή ως CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Εξαγωγή ως κείμενο';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Ελήφθη (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Ώρα κατασκευής';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'Η URL λήψης δεν είναι διαθέσιμη';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'Αδυναμία ανοίγματος URL λήψης';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'Ο έλεγχος ενημερώσεων είναι διαθέσιμος μόνο σε Android';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion =>
|
||||
'Χρησιμοποιείτε την πιο πρόσφατη έκδοση';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Διαθέσιμη ενημέρωση αλλά η URL λήψης δεν βρέθηκε';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Εκκίνηση Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe μη διαθέσιμο';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: άγνωστος αντίπαλος';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: αναμονή για εκκίνηση';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Αποδέχεται κοινόχρηστους συνδέσμους';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Υποστηρίζει ακατέργαστο hex';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Φιλικό προς πρόχειρο';
|
||||
|
||||
@override
|
||||
String get captured => 'Καταγράφηκε';
|
||||
|
||||
@override
|
||||
String get size => 'Μέγεθος';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear => 'Δεν υπάρχουν προσαρμοσμένα κανάλια.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear => 'Δεν υπάρχουν επαφές συσκευής.';
|
||||
}
|
||||
|
||||
@@ -1902,4 +1902,764 @@ class AppLocalizationsEn extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Failed to set route: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'ACK timeout';
|
||||
|
||||
@override
|
||||
String get opcode => 'Opcode';
|
||||
|
||||
@override
|
||||
String get payload => 'Payload';
|
||||
|
||||
@override
|
||||
String get hops => 'Hops';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Hash size';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Path bytes';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Selected path';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Estimated tx';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Sender to receipt';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Received copies';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Retry cause';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Retry mode';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Retry result';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Last retry';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'RX packets';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Rate';
|
||||
|
||||
@override
|
||||
String get window => 'Window';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Post-tx delay';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Band-pass';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get addContact => 'Add Contact';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Clear Route';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Clear Messages';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Clear scale';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Clear discoveries';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Clear online trace database';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Clear all channels';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Clear all contacts';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Clear channels';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Clear contacts';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Clear path on max retry';
|
||||
|
||||
@override
|
||||
String get create => 'Create';
|
||||
|
||||
@override
|
||||
String get custom => 'Custom';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Default';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Duplicate';
|
||||
|
||||
@override
|
||||
String get editName => 'Edit name';
|
||||
|
||||
@override
|
||||
String get open => 'Open';
|
||||
|
||||
@override
|
||||
String get paste => 'Paste';
|
||||
|
||||
@override
|
||||
String get preview => 'Preview';
|
||||
|
||||
@override
|
||||
String get remove => 'Remove';
|
||||
|
||||
@override
|
||||
String get rename => 'Rename';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Resolve all';
|
||||
|
||||
@override
|
||||
String get send => 'Send';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Send anyway';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Discover repeaters';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Discover sensors';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Repeater discovery sent';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Sensor discovery sent';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Cleared pending discoveries.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Auto discovery';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Enable automatic adding';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Auto-add repeaters';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Auto-add room servers';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Auto-add sensors';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Auto-add users';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull => 'Overwrite oldest when full';
|
||||
|
||||
@override
|
||||
String get storage => 'Storage';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Danger zone';
|
||||
|
||||
@override
|
||||
String get profiles => 'Profiles';
|
||||
|
||||
@override
|
||||
String get favourites => 'Favourites';
|
||||
|
||||
@override
|
||||
String get sensors => 'Sensors';
|
||||
|
||||
@override
|
||||
String get others => 'Others';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'GPS Module';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Live Traffic';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Repeaters Map';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Spectrum Scan';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'BLE Packet Logs';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Online trace database';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Route path byte size';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Message notifications';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'SAR alerts';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Discovery notifications';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Update notifications';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Mute while app is open';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Disable Contacts';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Enable Sensors tab';
|
||||
|
||||
@override
|
||||
String get enableProfiles => 'Enable Profiles';
|
||||
|
||||
@override
|
||||
String get autoRouteRotation => 'Auto route rotation';
|
||||
|
||||
@override
|
||||
String get nearestRepeaterFallback => 'Nearest repeater fallback';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory =>
|
||||
'Delete all stored message history';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Message font size';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Rotate map with heading';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Show map debug info';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Open map in fullscreen';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Set map scale';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Custom map scale saved';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Voice bitrate';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Noise suppression';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages => 'Trim silence in voice messages';
|
||||
|
||||
@override
|
||||
String get compressor => 'Compressor';
|
||||
|
||||
@override
|
||||
String get limiter => 'Limiter';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Auto gain';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Echo cancel';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Noise suppress';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Silence trim';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Max image size';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Image compression';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Grayscale';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Ultra mode';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Fast private GPS updates';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Movement threshold';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Fast GPS movement threshold';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval => 'Fast GPS active-use interval';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval => 'Active-use update interval';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Repeat nearby traffic';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Relay through repeaters across the mesh';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Nearby only, without repeater flooding';
|
||||
|
||||
@override
|
||||
String get multihop => 'Multi-hop';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Create Profile';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Rename Profile';
|
||||
|
||||
@override
|
||||
String get newProfile => 'New Profile';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Manage profiles';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Enable profiles to start managing them.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Open message';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => 'Jump to the related SAR message';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Remove SAR marker';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Please select a destination to send SAR marker';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'SAR marker broadcast to public channel';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'SAR marker sent to room';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Load from gallery';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Replace image';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Select from gallery';
|
||||
|
||||
@override
|
||||
String get team => 'Team';
|
||||
|
||||
@override
|
||||
String get found => 'Found';
|
||||
|
||||
@override
|
||||
String get staging => 'Staging';
|
||||
|
||||
@override
|
||||
String get object => 'Object';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Send image from gallery';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Take photo';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'DM only';
|
||||
|
||||
@override
|
||||
String get allMessages => 'All messages';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Send to Public Channel?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'Select marker type and destination';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'No destinations available';
|
||||
|
||||
@override
|
||||
String get image => 'Image';
|
||||
|
||||
@override
|
||||
String get format => 'Format';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Dimensions';
|
||||
|
||||
@override
|
||||
String get segments => 'Segments';
|
||||
|
||||
@override
|
||||
String get transfers => 'Transfers';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Downloaded by';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Save discovery settings';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Save public info';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Save radio settings';
|
||||
|
||||
@override
|
||||
String get savePath => 'Save Path';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Wipe device data';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Wipe device';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Destructive device actions.';
|
||||
|
||||
@override
|
||||
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';
|
||||
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Rename value';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Customize fields';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Live preview';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Refresh schedule';
|
||||
|
||||
@override
|
||||
String get noResponse => 'No response';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Refreshing';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Unavailable';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Pick a relay or node to watch in Sensors.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Public key';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Already in contacts';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Connect to a device before adding contacts';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'From contacts';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Online only';
|
||||
|
||||
@override
|
||||
String get inBoth => 'In both';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Online trace database cleared';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Packet logs cleared';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => 'Hex data copied to clipboard';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Developer mode enabled';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Developer mode disabled';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Clipboard is empty';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Contact imported';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard => 'Contact link copied to clipboard';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Failed to export contact';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'No logs to export';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Export as CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Export as Text';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Received (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Build Time';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'Download URL not available';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'Cannot open download URL';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'Update check is only available on Android';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion =>
|
||||
'You are running the latest version';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Update available but download URL not found';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Start Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe unavailable';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: opponent unknown';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: waiting for start';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Accepts share links';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Supports raw hex';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Clipboard-friendly';
|
||||
|
||||
@override
|
||||
String get captured => 'Captured';
|
||||
|
||||
@override
|
||||
String get size => 'Size';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear => 'No custom channels to clear.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear => 'No device contacts to clear.';
|
||||
}
|
||||
|
||||
@@ -1932,4 +1932,774 @@ class AppLocalizationsEs extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'No se pudo establecer la ruta: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'Tiempo de espera ACK';
|
||||
|
||||
@override
|
||||
String get opcode => 'Código de operación';
|
||||
|
||||
@override
|
||||
String get payload => 'Carga útil';
|
||||
|
||||
@override
|
||||
String get hops => 'Saltos';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Tamaño del hash';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Bytes de ruta';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Ruta seleccionada';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Transmisión estimada';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Del remitente al recibo';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Copias recibidas';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Causa del reintento';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Modo de reintento';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Resultado del reintento';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Último reintento';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'Paquetes RX';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Velocidad';
|
||||
|
||||
@override
|
||||
String get window => 'Ventana';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Retardo post-tx';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Paso de banda';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get addContact => 'Añadir contacto';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Borrar ruta';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Borrar mensajes';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Borrar escala';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Borrar descubrimientos';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Borrar base de datos de trazas';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Borrar todos los canales';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Borrar todos los contactos';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Borrar canales';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Borrar contactos';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Borrar ruta en máximo reintento';
|
||||
|
||||
@override
|
||||
String get create => 'Crear';
|
||||
|
||||
@override
|
||||
String get custom => 'Personalizado';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Predeterminado';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Duplicar';
|
||||
|
||||
@override
|
||||
String get editName => 'Editar nombre';
|
||||
|
||||
@override
|
||||
String get open => 'Abrir';
|
||||
|
||||
@override
|
||||
String get paste => 'Pegar';
|
||||
|
||||
@override
|
||||
String get preview => 'Vista previa';
|
||||
|
||||
@override
|
||||
String get remove => 'Eliminar';
|
||||
|
||||
@override
|
||||
String get rename => 'Renombrar';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Resolver todo';
|
||||
|
||||
@override
|
||||
String get send => 'Enviar';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Enviar de todos modos';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Descubrir repetidores';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Descubrir sensores';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Descubrimiento de repetidores enviado';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Descubrimiento de sensores enviado';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries =>
|
||||
'Descubrimientos pendientes borrados.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Descubrimiento automático';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Habilitar adición automática';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Añadir repetidores automáticamente';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Añadir servidores de sala automáticamente';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Añadir sensores automáticamente';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Añadir usuarios automáticamente';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull =>
|
||||
'Sobrescribir más antiguos cuando esté lleno';
|
||||
|
||||
@override
|
||||
String get storage => 'Almacenamiento';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Zona de peligro';
|
||||
|
||||
@override
|
||||
String get profiles => 'Perfiles';
|
||||
|
||||
@override
|
||||
String get favourites => 'Favoritos';
|
||||
|
||||
@override
|
||||
String get sensors => 'Sensores';
|
||||
|
||||
@override
|
||||
String get others => 'Otros';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'Módulo GPS';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Tráfico en vivo';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Mapa de repetidores';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Escaneo de espectro';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'Registros de paquetes BLE';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Base de datos de trazas';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Tamaño en bytes de la ruta';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Notificaciones de mensajes';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'Alertas SAR';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Notificaciones de descubrimiento';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Notificaciones de actualización';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Silenciar con la app abierta';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Desactivar contactos';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Habilitar pestaña Sensores';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory =>
|
||||
'Eliminar todo el historial de mensajes';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Tamaño de fuente de mensajes';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Rotar mapa con rumbo';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Mostrar info de depuración del mapa';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Abrir mapa en pantalla completa';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Establecer escala del mapa';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Escala de mapa personalizada guardada';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Tasa de bits de voz';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Supresión de ruido';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages =>
|
||||
'Recortar silencio en mensajes de voz';
|
||||
|
||||
@override
|
||||
String get compressor => 'Compresor';
|
||||
|
||||
@override
|
||||
String get limiter => 'Limitador';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Ganancia automática';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Eco';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Ruido';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Silencio';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Tamaño máximo de imagen';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Compresión de imagen';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Escala de grises';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Modo ultra';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Actualizaciones GPS privadas rápidas';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Umbral de movimiento';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Umbral de movimiento GPS rápido';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval => 'Intervalo de uso activo GPS rápido';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval =>
|
||||
'Intervalo de actualización de uso activo';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Repetir tráfico cercano';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Retransmitir a través de repetidores en la red';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Solo cercanos, sin inundación de repetidores';
|
||||
|
||||
@override
|
||||
String get multihop => 'Multi-salto';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Crear perfil';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Renombrar perfil';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Nuevo perfil';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Gestionar perfiles';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Habilite los perfiles para comenzar a gestionarlos.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Abrir mensaje';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => 'Ir al mensaje SAR relacionado';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Eliminar marcador SAR';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Seleccione un destino para enviar el marcador SAR';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'Marcador SAR transmitido al canal público';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'Marcador SAR enviado a la sala';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Cargar desde galería';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Reemplazar imagen';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Seleccionar de galería';
|
||||
|
||||
@override
|
||||
String get team => 'Equipo';
|
||||
|
||||
@override
|
||||
String get found => 'Encontrado';
|
||||
|
||||
@override
|
||||
String get staging => 'Área de reunión';
|
||||
|
||||
@override
|
||||
String get object => 'Objeto';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Enviar imagen desde galería';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Tomar foto';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Solo mensaje directo';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Todos los mensajes';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => '¿Enviar al canal público?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'Seleccione tipo de marcador y destino';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'No hay destinos disponibles';
|
||||
|
||||
@override
|
||||
String get image => 'Imagen';
|
||||
|
||||
@override
|
||||
String get format => 'Formato';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Dimensiones';
|
||||
|
||||
@override
|
||||
String get segments => 'Segmentos';
|
||||
|
||||
@override
|
||||
String get transfers => 'Transferencias';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Descargado por';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Guardar ajustes de descubrimiento';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Guardar información pública';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Guardar ajustes de radio';
|
||||
|
||||
@override
|
||||
String get savePath => 'Guardar ruta';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Borrar datos del dispositivo';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Borrar dispositivo';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions =>
|
||||
'Acciones destructivas del dispositivo.';
|
||||
|
||||
@override
|
||||
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';
|
||||
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Renombrar valor';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Personalizar campos';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Vista previa en vivo';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Programación de actualización';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Sin respuesta';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Actualizando';
|
||||
|
||||
@override
|
||||
String get unavailable => 'No disponible';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Elija un relay o nodo para observar.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Clave pública';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Ya en contactos';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Conéctese a un dispositivo antes de añadir contactos';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'De contactos';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Solo en línea';
|
||||
|
||||
@override
|
||||
String get inBoth => 'En ambos';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Base de datos de trazas borrada';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Registros de paquetes borrados';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => 'Datos hex copiados al portapapeles';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Modo desarrollador activado';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Modo desarrollador desactivado';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'El portapapeles está vacío';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Contacto importado';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Enlace de contacto copiado al portapapeles';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Error al exportar el contacto';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'No hay registros para exportar';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Exportar como CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Exportar como texto';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Recibido (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Hora de compilación';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'URL de descarga no disponible';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'No se puede abrir la URL de descarga';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'La comprobación de actualizaciones solo está disponible en Android';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion =>
|
||||
'Está ejecutando la última versión';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Actualización disponible pero URL de descarga no encontrada';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Iniciar Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe no disponible';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: oponente desconocido';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: esperando inicio';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Acepta enlaces compartidos';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Soporta hex sin procesar';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Compatible con portapapeles';
|
||||
|
||||
@override
|
||||
String get captured => 'Capturado';
|
||||
|
||||
@override
|
||||
String get size => 'Tamaño';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear =>
|
||||
'No hay canales personalizados que borrar.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear =>
|
||||
'No hay contactos del dispositivo que borrar.';
|
||||
}
|
||||
|
||||
@@ -1936,4 +1936,774 @@ class AppLocalizationsFr extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Échec du réglage de la route : $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'Délai ACK expiré';
|
||||
|
||||
@override
|
||||
String get opcode => 'Opcode';
|
||||
|
||||
@override
|
||||
String get payload => 'Charge utile';
|
||||
|
||||
@override
|
||||
String get hops => 'Sauts';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Taille du hash';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Octets du chemin';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Chemin sélectionné';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Émission estimée';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Émetteur au reçu';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Copies reçues';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Cause de la relance';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Mode de relance';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Résultat de la relance';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Dernière relance';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'Paquets RX';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Débit';
|
||||
|
||||
@override
|
||||
String get window => 'Fenêtre';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Délai post-émission';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Passe-bande';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get addContact => 'Ajouter un contact';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Effacer la route';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Effacer les messages';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Effacer l\'échelle';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Effacer les découvertes';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Effacer la base de traces';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Effacer tous les canaux';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Effacer tous les contacts';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Effacer les canaux';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Effacer les contacts';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Effacer le chemin au max de relances';
|
||||
|
||||
@override
|
||||
String get create => 'Créer';
|
||||
|
||||
@override
|
||||
String get custom => 'Personnalisé';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Par défaut';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Dupliquer';
|
||||
|
||||
@override
|
||||
String get editName => 'Modifier le nom';
|
||||
|
||||
@override
|
||||
String get open => 'Ouvrir';
|
||||
|
||||
@override
|
||||
String get paste => 'Coller';
|
||||
|
||||
@override
|
||||
String get preview => 'Aperçu';
|
||||
|
||||
@override
|
||||
String get remove => 'Supprimer';
|
||||
|
||||
@override
|
||||
String get rename => 'Renommer';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Résoudre tout';
|
||||
|
||||
@override
|
||||
String get send => 'Envoyer';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Envoyer quand même';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Découvrir les répéteurs';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Découvrir les capteurs';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Découverte de répéteurs envoyée';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Découverte de capteurs envoyée';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Découvertes en attente effacées.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Découverte automatique';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Activer l\'ajout automatique';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Ajout auto des répéteurs';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Ajout auto des serveurs de salle';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Ajout auto des capteurs';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Ajout auto des utilisateurs';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull => 'Écraser les plus anciens si plein';
|
||||
|
||||
@override
|
||||
String get storage => 'Stockage';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Zone de danger';
|
||||
|
||||
@override
|
||||
String get profiles => 'Profils';
|
||||
|
||||
@override
|
||||
String get favourites => 'Favoris';
|
||||
|
||||
@override
|
||||
String get sensors => 'Capteurs';
|
||||
|
||||
@override
|
||||
String get others => 'Autres';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'Module GPS';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Trafic en direct';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Carte des répéteurs';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Scan spectral';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'Journaux de paquets BLE';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Base de données de traces';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Taille en octets du chemin';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Notifications de messages';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'Alertes SAR';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Notifications de découverte';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Notifications de mise à jour';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Muet quand l\'appli est ouverte';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Désactiver les contacts';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Activer l\'onglet Capteurs';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory => 'Supprimer tout l\'historique';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Taille de police des messages';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Tourner la carte avec le cap';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Afficher les infos de débogage';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Ouvrir la carte en plein écran';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Définir l\'échelle de la carte';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved =>
|
||||
'Échelle de carte personnalisée enregistrée';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Débit vocal';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Suppression du bruit';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages =>
|
||||
'Couper le silence dans les messages vocaux';
|
||||
|
||||
@override
|
||||
String get compressor => 'Compresseur';
|
||||
|
||||
@override
|
||||
String get limiter => 'Limiteur';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Gain automatique';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Écho';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Bruit';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Silence';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Taille d\'image maximale';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Compression d\'image';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Niveaux de gris';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Mode ultra';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Mises à jour GPS privées rapides';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Seuil de mouvement';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Seuil de mouvement GPS rapide';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval =>
|
||||
'Intervalle d\'utilisation active GPS rapide';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval =>
|
||||
'Intervalle de mise à jour en utilisation active';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Répéter le trafic proche';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Relayer via les répéteurs du réseau';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Proximité seulement, sans inondation';
|
||||
|
||||
@override
|
||||
String get multihop => 'Multi-saut';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Créer un profil';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Renommer le profil';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Nouveau profil';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Gérer les profils';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Activez les profils pour commencer à les gérer.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Ouvrir le message';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => 'Aller au message SAR associé';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Supprimer le marqueur SAR';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Sélectionnez une destination pour envoyer le marqueur';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'Marqueur SAR diffusé sur le canal public';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'Marqueur SAR envoyé à la salle';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Charger depuis la galerie';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Remplacer l\'image';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Sélectionner depuis la galerie';
|
||||
|
||||
@override
|
||||
String get team => 'Équipe';
|
||||
|
||||
@override
|
||||
String get found => 'Trouvé';
|
||||
|
||||
@override
|
||||
String get staging => 'Zone de regroupement';
|
||||
|
||||
@override
|
||||
String get object => 'Objet';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Envoyer une image de la galerie';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Prendre une photo';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Message direct uniquement';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Tous les messages';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Envoyer au canal public ?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'Sélectionnez le type de marqueur et la destination';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'Aucune destination disponible';
|
||||
|
||||
@override
|
||||
String get image => 'Image';
|
||||
|
||||
@override
|
||||
String get format => 'Format';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Dimensions';
|
||||
|
||||
@override
|
||||
String get segments => 'Segments';
|
||||
|
||||
@override
|
||||
String get transfers => 'Transferts';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Téléchargé par';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings =>
|
||||
'Enregistrer les paramètres de découverte';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Enregistrer les infos publiques';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Enregistrer les paramètres radio';
|
||||
|
||||
@override
|
||||
String get savePath => 'Enregistrer le chemin';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Effacer les données de l\'appareil';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Effacer l\'appareil';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Actions destructives de l\'appareil.';
|
||||
|
||||
@override
|
||||
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é';
|
||||
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Renommer la valeur';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Personnaliser les champs';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Aperçu en direct';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Planification d\'actualisation';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Pas de réponse';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Actualisation';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Indisponible';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Choisissez un relais ou nœud à surveiller.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Clé publique';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Déjà dans les contacts';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Connectez-vous à un appareil avant d\'ajouter des contacts';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'Des contacts';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'En ligne uniquement';
|
||||
|
||||
@override
|
||||
String get inBoth => 'Dans les deux';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Base de données de traces effacée';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Journaux de paquets effacés';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard =>
|
||||
'Données hex copiées dans le presse-papiers';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Mode développeur activé';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Mode développeur désactivé';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Le presse-papiers est vide';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Contact importé';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Lien du contact copié dans le presse-papiers';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Échec de l\'exportation du contact';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Aucun journal à exporter';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Exporter en CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Exporter en texte';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Reçu (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Heure de build';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'URL de téléchargement non disponible';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl =>
|
||||
'Impossible d\'ouvrir l\'URL de téléchargement';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'La vérification des mises à jour n\'est disponible que sur Android';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion =>
|
||||
'Vous utilisez la dernière version';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Mise à jour disponible mais URL de téléchargement introuvable';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Démarrer Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe indisponible';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: adversaire inconnu';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: en attente du début';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Accepte les liens partagés';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Supporte le hex brut';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Compatible avec le presse-papiers';
|
||||
|
||||
@override
|
||||
String get captured => 'Capturé';
|
||||
|
||||
@override
|
||||
String get size => 'Taille';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear => 'Aucun canal personnalisé à effacer.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear =>
|
||||
'Aucun contact de l\'appareil à effacer.';
|
||||
}
|
||||
|
||||
@@ -1912,4 +1912,767 @@ class AppLocalizationsHr extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Postavljanje rute nije uspjelo: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'ACK istek vremena';
|
||||
|
||||
@override
|
||||
String get opcode => 'Opkod';
|
||||
|
||||
@override
|
||||
String get payload => 'Sadržaj';
|
||||
|
||||
@override
|
||||
String get hops => 'Skokovi';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Veličina hash-a';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Bajtovi putanje';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Odabrana putanja';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Procijenjeno slanje';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Od pošiljatelja do primitka';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Primljene kopije';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Razlog ponovnog pokušaja';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Način ponovnog pokušaja';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Rezultat ponovnog pokušaja';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Zadnji pokušaj';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'RX paketi';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Brzina';
|
||||
|
||||
@override
|
||||
String get window => 'Prozor';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Kašnjenje nakon slanja';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Pojasni filtar';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get addContact => 'Dodaj kontakt';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Očisti putanju';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Očisti poruke';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Očisti mjerilo';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Očisti otkrića';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Očisti bazu mrežnih tragova';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Očisti sve kanale';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Očisti sve kontakte';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Očisti kanale';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Očisti kontakte';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Očisti putanju kod maks. pokušaja';
|
||||
|
||||
@override
|
||||
String get create => 'Stvori';
|
||||
|
||||
@override
|
||||
String get custom => 'Prilagođeno';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Zadano';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Dupliciraj';
|
||||
|
||||
@override
|
||||
String get editName => 'Uredi ime';
|
||||
|
||||
@override
|
||||
String get open => 'Otvori';
|
||||
|
||||
@override
|
||||
String get paste => 'Zalijepi';
|
||||
|
||||
@override
|
||||
String get preview => 'Pregled';
|
||||
|
||||
@override
|
||||
String get remove => 'Ukloni';
|
||||
|
||||
@override
|
||||
String get rename => 'Preimenuj';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Razriješi sve';
|
||||
|
||||
@override
|
||||
String get send => 'Pošalji';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Svejedno pošalji';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Otkrij posrednike';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Otkrij senzore';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Otkrivanje posrednika poslano';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Otkrivanje senzora poslano';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Očišćena čekajuća otkrića.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Automatsko otkrivanje';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Omogući automatsko dodavanje';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Automatski dodaj posrednike';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Automatski dodaj poslužitelje soba';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Automatski dodaj senzore';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Automatski dodaj korisnike';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull => 'Prepiši najstarije kad je puno';
|
||||
|
||||
@override
|
||||
String get storage => 'Pohrana';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Opasna zona';
|
||||
|
||||
@override
|
||||
String get profiles => 'Profili';
|
||||
|
||||
@override
|
||||
String get favourites => 'Favoriti';
|
||||
|
||||
@override
|
||||
String get sensors => 'Senzori';
|
||||
|
||||
@override
|
||||
String get others => 'Ostali';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'GPS modul';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Promet uživo';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Karta posrednika';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Spektralno skeniranje';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'BLE zapisi paketa';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Baza mrežnih tragova';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Veličina putanje u bajtima';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Obavijesti o porukama';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'SAR upozorenja';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Obavijesti o otkrivanju';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Obavijesti o ažuriranju';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Utišaj dok je aplikacija otvorena';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Onemogući kontakte';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Omogući karticu Senzori';
|
||||
|
||||
@override
|
||||
String get enableProfiles => 'Omogući profile';
|
||||
|
||||
@override
|
||||
String get autoRouteRotation => 'Automatsko rotiranje putanje';
|
||||
|
||||
@override
|
||||
String get nearestRepeaterFallback => 'Najbliži posrednik kao rezerva';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory =>
|
||||
'Izbriši svu pohranjenu povijest poruka';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Veličina fonta poruka';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Rotiraj kartu prema smjeru';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Prikaži debug info karte';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Otvori kartu na cijelom zaslonu';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Postavi mjerilo karte';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Prilagođeno mjerilo karte spremljeno';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Bitna brzina glasa';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Potiskivanje šuma';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages => 'Izreži tišinu u glasovnim porukama';
|
||||
|
||||
@override
|
||||
String get compressor => 'Kompresor';
|
||||
|
||||
@override
|
||||
String get limiter => 'Ograničivač';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Automatsko pojačanje';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Odjek';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Šum';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Tišina';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Maksimalna veličina slike';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Kompresija slike';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Sivine';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Ultra način';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Brza privatna GPS ažuriranja';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Prag kretanja';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Prag kretanja za brzi GPS';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval =>
|
||||
'Interval aktivnog korištenja brzog GPS-a';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval =>
|
||||
'Interval ažuriranja pri aktivnom korištenju';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Ponovi obližnji promet';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Proslijedi kroz posrednike kroz mrežu';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Samo obližnji, bez preplavljivanja posrednika';
|
||||
|
||||
@override
|
||||
String get multihop => 'Višeskočno';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Stvori profil';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Preimenuj profil';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Novi profil';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Upravljaj profilima';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Omogućite profile da biste ih počeli upravljati.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Otvori poruku';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => 'Skoči na povezanu SAR poruku';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Ukloni SAR oznaku';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Odaberite odredište za slanje SAR oznake';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'SAR oznaka emitirana na javni kanal';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'SAR oznaka poslana u sobu';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Učitaj iz galerije';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Zamijeni sliku';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Odaberi iz galerije';
|
||||
|
||||
@override
|
||||
String get team => 'Tim';
|
||||
|
||||
@override
|
||||
String get found => 'Pronađeno';
|
||||
|
||||
@override
|
||||
String get staging => 'Sabirno mjesto';
|
||||
|
||||
@override
|
||||
String get object => 'Objekt';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Pošalji sliku iz galerije';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Snimi fotografiju';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Samo izravno';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Sve poruke';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Pošalji na javni kanal?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'Odaberite vrstu oznake i odredište';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'Nema dostupnih odredišta';
|
||||
|
||||
@override
|
||||
String get image => 'Slika';
|
||||
|
||||
@override
|
||||
String get format => 'Format';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Dimenzije';
|
||||
|
||||
@override
|
||||
String get segments => 'Segmenti';
|
||||
|
||||
@override
|
||||
String get transfers => 'Prijenosi';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Preuzeo';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Spremi postavke otkrivanja';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Spremi javne podatke';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Spremi radijske postavke';
|
||||
|
||||
@override
|
||||
String get savePath => 'Spremi putanju';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Obriši podatke uređaja';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Obriši uređaj';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Destruktivne radnje na uređaju.';
|
||||
|
||||
@override
|
||||
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';
|
||||
|
||||
@override
|
||||
String get total => 'Ukupno';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Preimenuj vrijednost';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Prilagodi polja';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Pregled uživo';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Raspored osvježavanja';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Nema odgovora';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Osvježavam';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Nedostupno';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Odaberite posrednika ili čvor za praćenje.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Javni ključ';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Već u kontaktima';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Povežite se s uređajem prije dodavanja kontakata';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'Iz kontakata';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Samo povezani';
|
||||
|
||||
@override
|
||||
String get inBoth => 'U oba';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Baza mrežnih tragova očišćena';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Zapisi paketa očišćeni';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => 'Hex podaci kopirani u međuspremnik';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Razvojni način omogućen';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Razvojni način onemogućen';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Međuspremnik je prazan';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Kontakt uvezen';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Poveznica na kontakt kopirana u međuspremnik';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Izvoz kontakta nije uspio';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Nema zapisa za izvoz';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Izvezi kao CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Izvezi kao tekst';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Primljeno (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Vrijeme gradnje';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'URL za preuzimanje nije dostupan';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'Ne mogu otvoriti URL za preuzimanje';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'Provjera ažuriranja dostupna je samo na Androidu';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion => 'Koristite najnoviju verziju';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Ažuriranje dostupno, ali URL za preuzimanje nije pronađen';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Pokreni Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe nije dostupan';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: protivnik nepoznat';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: čekanje na početak';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Prihvaća dijeljene veze';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Podržava sirovi hex';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Pogodno za međuspremnik';
|
||||
|
||||
@override
|
||||
String get captured => 'Zabilježeno';
|
||||
|
||||
@override
|
||||
String get size => 'Veličina';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear => 'Nema prilagođenih kanala za brisanje.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear => 'Nema kontakata uređaja za brisanje.';
|
||||
}
|
||||
|
||||
@@ -1927,4 +1927,769 @@ class AppLocalizationsIt extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Impossibile impostare il percorso: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'Timeout ACK';
|
||||
|
||||
@override
|
||||
String get opcode => 'Opcode';
|
||||
|
||||
@override
|
||||
String get payload => 'Payload';
|
||||
|
||||
@override
|
||||
String get hops => 'Hop';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Dimensione hash';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Byte percorso';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Percorso selezionato';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Trasmissione stimata';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Mittente a ricevuta';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Copie ricevute';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Causa del ritentativo';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Modalità ritentativo';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Risultato ritentativo';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Ultimo ritentativo';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'Pacchetti RX';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Velocità';
|
||||
|
||||
@override
|
||||
String get window => 'Finestra';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Ritardo post-tx';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Passa-banda';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get addContact => 'Aggiungi contatto';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Cancella percorso';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Cancella messaggi';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Cancella scala';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Cancella scoperte';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Cancella database tracce';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Cancella tutti i canali';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Cancella tutti i contatti';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Cancella canali';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Cancella contatti';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Cancella percorso al max ritentativo';
|
||||
|
||||
@override
|
||||
String get create => 'Crea';
|
||||
|
||||
@override
|
||||
String get custom => 'Personalizzato';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Predefinito';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Duplica';
|
||||
|
||||
@override
|
||||
String get editName => 'Modifica nome';
|
||||
|
||||
@override
|
||||
String get open => 'Apri';
|
||||
|
||||
@override
|
||||
String get paste => 'Incolla';
|
||||
|
||||
@override
|
||||
String get preview => 'Anteprima';
|
||||
|
||||
@override
|
||||
String get remove => 'Rimuovi';
|
||||
|
||||
@override
|
||||
String get rename => 'Rinomina';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Risolvi tutto';
|
||||
|
||||
@override
|
||||
String get send => 'Invia';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Invia comunque';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Scopri ripetitori';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Scopri sensori';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Scoperta ripetitori inviata';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Scoperta sensori inviata';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Scoperte in attesa cancellate.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Scoperta automatica';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Abilita aggiunta automatica';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Aggiungi ripetitori automaticamente';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Aggiungi server stanze automaticamente';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Aggiungi sensori automaticamente';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Aggiungi utenti automaticamente';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull => 'Sovrascrivi i più vecchi quando pieno';
|
||||
|
||||
@override
|
||||
String get storage => 'Archiviazione';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Zona pericolosa';
|
||||
|
||||
@override
|
||||
String get profiles => 'Profili';
|
||||
|
||||
@override
|
||||
String get favourites => 'Preferiti';
|
||||
|
||||
@override
|
||||
String get sensors => 'Sensori';
|
||||
|
||||
@override
|
||||
String get others => 'Altri';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'Modulo GPS';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Traffico in tempo reale';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Mappa ripetitori';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Scansione spettro';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'Log pacchetti BLE';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Database tracce';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Dimensione percorso in byte';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Notifiche messaggi';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'Avvisi SAR';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Notifiche scoperte';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Notifiche aggiornamenti';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Silenzia con l\'app aperta';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Disabilita contatti';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Abilita scheda Sensori';
|
||||
|
||||
@override
|
||||
String get enableProfiles => 'Abilita profili';
|
||||
|
||||
@override
|
||||
String get autoRouteRotation => 'Rotazione automatica percorso';
|
||||
|
||||
@override
|
||||
String get nearestRepeaterFallback => 'Ripetitore più vicino come fallback';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory =>
|
||||
'Elimina tutta la cronologia messaggi';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Dimensione carattere messaggi';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Ruota mappa con direzione';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Mostra info debug mappa';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Apri mappa a schermo intero';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Imposta scala mappa';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Scala mappa personalizzata salvata';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Bitrate voce';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Soppressione rumore';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages =>
|
||||
'Taglia silenzio nei messaggi vocali';
|
||||
|
||||
@override
|
||||
String get compressor => 'Compressore';
|
||||
|
||||
@override
|
||||
String get limiter => 'Limitatore';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Guadagno automatico';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Eco';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Rumore';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Silenzio';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Dimensione massima immagine';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Compressione immagine';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Scala di grigi';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Modalità ultra';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Aggiornamenti GPS privati veloci';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Soglia di movimento';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Soglia movimento GPS veloce';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval => 'Intervallo uso attivo GPS veloce';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval => 'Intervallo aggiornamento uso attivo';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Ripeti traffico vicino';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Inoltra tramite ripetitori nella rete';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Solo vicini, senza flood dei ripetitori';
|
||||
|
||||
@override
|
||||
String get multihop => 'Multi-hop';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Crea profilo';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Rinomina profilo';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Nuovo profilo';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Gestisci profili';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Abilita i profili per iniziare a gestirli.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Apri messaggio';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => 'Vai al messaggio SAR correlato';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Rimuovi marcatore SAR';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Seleziona una destinazione per inviare il marcatore SAR';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'Marcatore SAR trasmesso al canale pubblico';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'Marcatore SAR inviato alla stanza';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Carica dalla galleria';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Sostituisci immagine';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Seleziona dalla galleria';
|
||||
|
||||
@override
|
||||
String get team => 'Squadra';
|
||||
|
||||
@override
|
||||
String get found => 'Trovato';
|
||||
|
||||
@override
|
||||
String get staging => 'Area di raccolta';
|
||||
|
||||
@override
|
||||
String get object => 'Oggetto';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Invia immagine dalla galleria';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Scatta foto';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Solo messaggio diretto';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Tutti i messaggi';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Inviare al canale pubblico?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'Seleziona tipo marcatore e destinazione';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'Nessuna destinazione disponibile';
|
||||
|
||||
@override
|
||||
String get image => 'Immagine';
|
||||
|
||||
@override
|
||||
String get format => 'Formato';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Dimensioni';
|
||||
|
||||
@override
|
||||
String get segments => 'Segmenti';
|
||||
|
||||
@override
|
||||
String get transfers => 'Trasferimenti';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Scaricato da';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Salva impostazioni scoperta';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Salva info pubbliche';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Salva impostazioni radio';
|
||||
|
||||
@override
|
||||
String get savePath => 'Salva percorso';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Cancella dati dispositivo';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Cancella dispositivo';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Azioni distruttive del dispositivo.';
|
||||
|
||||
@override
|
||||
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';
|
||||
|
||||
@override
|
||||
String get total => 'Totale';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Rinomina valore';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Personalizza campi';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Anteprima dal vivo';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Programma aggiornamento';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Nessuna risposta';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Aggiornamento';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Non disponibile';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Scegli un relay o nodo da monitorare.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Chiave pubblica';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Già nei contatti';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Connettiti a un dispositivo prima di aggiungere contatti';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'Dai contatti';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Solo online';
|
||||
|
||||
@override
|
||||
String get inBoth => 'In entrambi';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Database tracce cancellata';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Log pacchetti cancellati';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => 'Dati hex copiati negli appunti';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Modalità sviluppatore attivata';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Modalità sviluppatore disattivata';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Gli appunti sono vuoti';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Contatto importato';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Link contatto copiato negli appunti';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Esportazione contatto fallita';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Nessun log da esportare';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Esporta come CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Esporta come testo';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Ricevuto (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Ora build';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'URL di download non disponibile';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'Impossibile aprire URL di download';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'Il controllo aggiornamenti è disponibile solo su Android';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion =>
|
||||
'Stai utilizzando l\'ultima versione';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Aggiornamento disponibile ma URL di download non trovato';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Avvia Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe non disponibile';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: avversario sconosciuto';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: in attesa dell\'inizio';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Accetta link condivisi';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Supporta hex grezzo';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Compatibile con appunti';
|
||||
|
||||
@override
|
||||
String get captured => 'Catturato';
|
||||
|
||||
@override
|
||||
String get size => 'Dimensione';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear =>
|
||||
'Nessun canale personalizzato da cancellare.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear =>
|
||||
'Nessun contatto dispositivo da cancellare.';
|
||||
}
|
||||
|
||||
@@ -1924,4 +1924,769 @@ class AppLocalizationsPl extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Nie udało się ustawić trasy: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'Limit czasu ACK';
|
||||
|
||||
@override
|
||||
String get opcode => 'Opcode';
|
||||
|
||||
@override
|
||||
String get payload => 'Ładunek';
|
||||
|
||||
@override
|
||||
String get hops => 'Skoki';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Rozmiar hash';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Bajty ścieżki';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Wybrana ścieżka';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Szacowane nadawanie';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Od nadawcy do odbioru';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Otrzymane kopie';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Przyczyna ponowienia';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Tryb ponowienia';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Wynik ponowienia';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Ostatnia próba';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'Pakiety RX';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Szybkość';
|
||||
|
||||
@override
|
||||
String get window => 'Okno';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Opóźnienie po nadawaniu';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Pasmowy';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get addContact => 'Dodaj kontakt';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Wyczyść trasę';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Wyczyść wiadomości';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Wyczyść skalę';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Wyczyść odkrycia';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Wyczyść bazę śladów';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Wyczyść wszystkie kanały';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Wyczyść wszystkie kontakty';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Wyczyść kanały';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Wyczyść kontakty';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Wyczyść ścieżkę przy maks. próbie';
|
||||
|
||||
@override
|
||||
String get create => 'Utwórz';
|
||||
|
||||
@override
|
||||
String get custom => 'Niestandardowy';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Domyślny';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Duplikuj';
|
||||
|
||||
@override
|
||||
String get editName => 'Edytuj nazwę';
|
||||
|
||||
@override
|
||||
String get open => 'Otwórz';
|
||||
|
||||
@override
|
||||
String get paste => 'Wklej';
|
||||
|
||||
@override
|
||||
String get preview => 'Podgląd';
|
||||
|
||||
@override
|
||||
String get remove => 'Usuń';
|
||||
|
||||
@override
|
||||
String get rename => 'Zmień nazwę';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Rozwiąż wszystko';
|
||||
|
||||
@override
|
||||
String get send => 'Wyślij';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Wyślij mimo to';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Wykryj przekaźniki';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Wykryj czujniki';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Wykrywanie przekaźników wysłane';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Wykrywanie czujników wysłane';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Wyczyszczono oczekujące odkrycia.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Automatyczne wykrywanie';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Włącz automatyczne dodawanie';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Automatycznie dodaj przekaźniki';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Automatycznie dodaj serwery pokoi';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Automatycznie dodaj czujniki';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Automatycznie dodaj użytkowników';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull => 'Nadpisz najstarsze gdy pełne';
|
||||
|
||||
@override
|
||||
String get storage => 'Pamięć';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Strefa zagrożenia';
|
||||
|
||||
@override
|
||||
String get profiles => 'Profile';
|
||||
|
||||
@override
|
||||
String get favourites => 'Ulubione';
|
||||
|
||||
@override
|
||||
String get sensors => 'Czujniki';
|
||||
|
||||
@override
|
||||
String get others => 'Inne';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'Moduł GPS';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Ruch na żywo';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Mapa przekaźników';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Skanowanie spektrum';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'Logi pakietów BLE';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Baza śladów';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Rozmiar ścieżki w bajtach';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Powiadomienia o wiadomościach';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'Alerty SAR';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Powiadomienia o wykrywaniu';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Powiadomienia o aktualizacjach';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Wycisz gdy aplikacja jest otwarta';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Wyłącz kontakty';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Włącz kartę Czujniki';
|
||||
|
||||
@override
|
||||
String get enableProfiles => 'Włącz profile';
|
||||
|
||||
@override
|
||||
String get autoRouteRotation => 'Automatyczna rotacja trasy';
|
||||
|
||||
@override
|
||||
String get nearestRepeaterFallback => 'Najbliższy przekaźnik awaryjny';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory => 'Usuń całą historię wiadomości';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Rozmiar czcionki wiadomości';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Obracaj mapę z kierunkiem';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Pokaż info debugowania mapy';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Otwórz mapę na pełnym ekranie';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Ustaw skalę mapy';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Niestandardowa skala mapy zapisana';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Bitrate głosu';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Tłumienie szumu';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages =>
|
||||
'Przytnij ciszę w wiadomościach głosowych';
|
||||
|
||||
@override
|
||||
String get compressor => 'Kompresor';
|
||||
|
||||
@override
|
||||
String get limiter => 'Limiter';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Automatyczne wzmocnienie';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Echo';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Szum';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Cisza';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Maksymalny rozmiar obrazu';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Kompresja obrazu';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Skala szarości';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Tryb ultra';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Szybkie prywatne aktualizacje GPS';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Próg ruchu';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Próg ruchu szybkiego GPS';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval =>
|
||||
'Interwał aktywnego użycia szybkiego GPS';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval =>
|
||||
'Interwał aktualizacji przy aktywnym użyciu';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Powtarzaj pobliski ruch';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Przekazuj przez przekaźniki w sieci';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Tylko w pobliżu, bez zalewania przekaźników';
|
||||
|
||||
@override
|
||||
String get multihop => 'Wieloskokowy';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Utwórz profil';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Zmień nazwę profilu';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Nowy profil';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Zarządzaj profilami';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Włącz profile, aby zacząć nimi zarządzać.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Otwórz wiadomość';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage =>
|
||||
'Przejdź do powiązanej wiadomości SAR';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Usuń znacznik SAR';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Wybierz cel wysłania znacznika SAR';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'Znacznik SAR wysłany na kanał publiczny';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'Znacznik SAR wysłany do pokoju';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Załaduj z galerii';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Zamień obraz';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Wybierz z galerii';
|
||||
|
||||
@override
|
||||
String get team => 'Zespół';
|
||||
|
||||
@override
|
||||
String get found => 'Znaleziono';
|
||||
|
||||
@override
|
||||
String get staging => 'Punkt zbiórki';
|
||||
|
||||
@override
|
||||
String get object => 'Obiekt';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Wyślij obraz z galerii';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Zrób zdjęcie';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Tylko wiadomość bezpośrednia';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Wszystkie wiadomości';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Wysłać na kanał publiczny?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination => 'Wybierz typ znacznika i cel';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'Brak dostępnych celów';
|
||||
|
||||
@override
|
||||
String get image => 'Obraz';
|
||||
|
||||
@override
|
||||
String get format => 'Format';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Wymiary';
|
||||
|
||||
@override
|
||||
String get segments => 'Segmenty';
|
||||
|
||||
@override
|
||||
String get transfers => 'Transfery';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Pobrane przez';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Zapisz ustawienia wykrywania';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Zapisz informacje publiczne';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Zapisz ustawienia radia';
|
||||
|
||||
@override
|
||||
String get savePath => 'Zapisz ścieżkę';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Wyczyść dane urządzenia';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Wyczyść urządzenie';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Destrukcyjne akcje na urządzeniu.';
|
||||
|
||||
@override
|
||||
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';
|
||||
|
||||
@override
|
||||
String get total => 'Razem';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Zmień nazwę wartości';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Dostosuj pola';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Podgląd na żywo';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Harmonogram odświeżania';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Brak odpowiedzi';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Odświeżanie';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Niedostępny';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Wybierz przekaźnik lub węzeł do obserwacji.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Klucz publiczny';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Już w kontaktach';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Połącz się z urządzeniem przed dodaniem kontaktów';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'Z kontaktów';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Tylko online';
|
||||
|
||||
@override
|
||||
String get inBoth => 'W obu';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Baza śladów wyczyszczona';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Logi pakietów wyczyszczone';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => 'Dane hex skopiowane do schowka';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Tryb programisty włączony';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Tryb programisty wyłączony';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Schowek jest pusty';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Kontakt zaimportowany';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Link kontaktu skopiowany do schowka';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Nie udało się wyeksportować kontaktu';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Brak logów do eksportu';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Eksportuj jako CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Eksportuj jako tekst';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Odebrano (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Czas budowania';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'URL pobierania niedostępny';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'Nie można otworzyć URL pobierania';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'Sprawdzanie aktualizacji dostępne tylko na Androidzie';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion => 'Używasz najnowszej wersji';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Aktualizacja dostępna, ale URL pobierania nie znaleziony';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Rozpocznij Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe niedostępny';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: przeciwnik nieznany';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: oczekiwanie na start';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Akceptuje udostępnione linki';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Obsługuje surowy hex';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Przyjazne dla schowka';
|
||||
|
||||
@override
|
||||
String get captured => 'Przechwycone';
|
||||
|
||||
@override
|
||||
String get size => 'Rozmiar';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear =>
|
||||
'Brak niestandardowych kanałów do wyczyszczenia.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear =>
|
||||
'Brak kontaktów urządzenia do wyczyszczenia.';
|
||||
}
|
||||
|
||||
@@ -1931,4 +1931,773 @@ class AppLocalizationsPt extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Falha ao definir a rota: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'Tempo limite ACK';
|
||||
|
||||
@override
|
||||
String get opcode => 'Opcode';
|
||||
|
||||
@override
|
||||
String get payload => 'Carga útil';
|
||||
|
||||
@override
|
||||
String get hops => 'Saltos';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Tamanho do hash';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Bytes do caminho';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Caminho selecionado';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Transmissão estimada';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Do remetente ao recibo';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Cópias recebidas';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Causa da nova tentativa';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Modo de nova tentativa';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Resultado da nova tentativa';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Última tentativa';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'Pacotes RX';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Taxa';
|
||||
|
||||
@override
|
||||
String get window => 'Janela';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Atraso pós-tx';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Passa-banda';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get addContact => 'Adicionar contacto';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Limpar rota';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Limpar mensagens';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Limpar escala';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Limpar descobertas';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Limpar base de dados de rastreio';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Limpar todos os canais';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Limpar todos os contactos';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Limpar canais';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Limpar contactos';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Limpar caminho no máx. de tentativas';
|
||||
|
||||
@override
|
||||
String get create => 'Criar';
|
||||
|
||||
@override
|
||||
String get custom => 'Personalizado';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Padrão';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Duplicar';
|
||||
|
||||
@override
|
||||
String get editName => 'Editar nome';
|
||||
|
||||
@override
|
||||
String get open => 'Abrir';
|
||||
|
||||
@override
|
||||
String get paste => 'Colar';
|
||||
|
||||
@override
|
||||
String get preview => 'Pré-visualização';
|
||||
|
||||
@override
|
||||
String get remove => 'Remover';
|
||||
|
||||
@override
|
||||
String get rename => 'Renomear';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Resolver tudo';
|
||||
|
||||
@override
|
||||
String get send => 'Enviar';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Enviar mesmo assim';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Descobrir repetidores';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Descobrir sensores';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Descoberta de repetidores enviada';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Descoberta de sensores enviada';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Descobertas pendentes limpas.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Descoberta automática';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Ativar adição automática';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Adicionar repetidores automaticamente';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers =>
|
||||
'Adicionar servidores de sala automaticamente';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Adicionar sensores automaticamente';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Adicionar utilizadores automaticamente';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull =>
|
||||
'Sobrescrever mais antigos quando cheio';
|
||||
|
||||
@override
|
||||
String get storage => 'Armazenamento';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Zona de perigo';
|
||||
|
||||
@override
|
||||
String get profiles => 'Perfis';
|
||||
|
||||
@override
|
||||
String get favourites => 'Favoritos';
|
||||
|
||||
@override
|
||||
String get sensors => 'Sensores';
|
||||
|
||||
@override
|
||||
String get others => 'Outros';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'Módulo GPS';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Tráfego ao vivo';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Mapa de repetidores';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Varredura de espectro';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'Registos de pacotes BLE';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Base de dados de rastreio';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Tamanho do caminho em bytes';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Notificações de mensagens';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'Alertas SAR';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Notificações de descoberta';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Notificações de atualização';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Silenciar com a app aberta';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Desativar contactos';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Ativar separador Sensores';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory =>
|
||||
'Apagar todo o histórico de mensagens';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Tamanho da fonte de mensagens';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Rodar mapa com direção';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Mostrar info de depuração do mapa';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Abrir mapa em ecrã inteiro';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Definir escala do mapa';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Escala de mapa personalizada guardada';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Taxa de bits de voz';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Supressão de ruído';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages =>
|
||||
'Cortar silêncio em mensagens de voz';
|
||||
|
||||
@override
|
||||
String get compressor => 'Compressor';
|
||||
|
||||
@override
|
||||
String get limiter => 'Limitador';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Ganho automático';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Eco';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Ruído';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Silêncio';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Tamanho máximo de imagem';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Compressão de imagem';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Escala de cinzentos';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Modo ultra';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Atualizações GPS privadas rápidas';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Limiar de movimento';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Limiar de movimento GPS rápido';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval => 'Intervalo de uso ativo GPS rápido';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval => 'Intervalo de atualização de uso ativo';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Repetir tráfego próximo';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Retransmitir através de repetidores na rede';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Apenas próximos, sem flood de repetidores';
|
||||
|
||||
@override
|
||||
String get multihop => 'Multi-salto';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Criar perfil';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Renomear perfil';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Novo perfil';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Gerir perfis';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Ative os perfis para começar a geri-los.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Abrir mensagem';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => 'Ir para a mensagem SAR relacionada';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Remover marcador SAR';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Selecione um destino para enviar o marcador SAR';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'Marcador SAR transmitido no canal público';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'Marcador SAR enviado para a sala';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Carregar da galeria';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Substituir imagem';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Selecionar da galeria';
|
||||
|
||||
@override
|
||||
String get team => 'Equipa';
|
||||
|
||||
@override
|
||||
String get found => 'Encontrado';
|
||||
|
||||
@override
|
||||
String get staging => 'Área de reunião';
|
||||
|
||||
@override
|
||||
String get object => 'Objeto';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Enviar imagem da galeria';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Tirar foto';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Apenas mensagem direta';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Todas as mensagens';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Enviar para o canal público?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'Selecione tipo de marcador e destino';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'Nenhum destino disponível';
|
||||
|
||||
@override
|
||||
String get image => 'Imagem';
|
||||
|
||||
@override
|
||||
String get format => 'Formato';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Dimensões';
|
||||
|
||||
@override
|
||||
String get segments => 'Segmentos';
|
||||
|
||||
@override
|
||||
String get transfers => 'Transferências';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Transferido por';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Guardar definições de descoberta';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Guardar informação pública';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Guardar definições de rádio';
|
||||
|
||||
@override
|
||||
String get savePath => 'Guardar caminho';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Apagar dados do dispositivo';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Apagar dispositivo';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Ações destrutivas do dispositivo.';
|
||||
|
||||
@override
|
||||
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';
|
||||
|
||||
@override
|
||||
String get total => 'Total';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Renomear valor';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Personalizar campos';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Pré-visualização ao vivo';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Agenda de atualização';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Sem resposta';
|
||||
|
||||
@override
|
||||
String get refreshing => 'A atualizar';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Indisponível';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Escolha um relay ou nó para observar.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Chave pública';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Já nos contactos';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Conecte-se a um dispositivo antes de adicionar contactos';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'Dos contactos';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Apenas online';
|
||||
|
||||
@override
|
||||
String get inBoth => 'Em ambos';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Base de dados de rastreio limpa';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Registos de pacotes limpos';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard =>
|
||||
'Dados hex copiados para a área de transferência';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Modo de programador ativado';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Modo de programador desativado';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'A área de transferência está vazia';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Contacto importado';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Link do contacto copiado para a área de transferência';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Falha ao exportar contacto';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Sem registos para exportar';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Exportar como CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Exportar como texto';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Recebido (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Hora de compilação';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'URL de download não disponível';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'Não é possível abrir o URL de download';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'A verificação de atualizações só está disponível no Android';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion =>
|
||||
'Está a usar a versão mais recente';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Atualização disponível mas URL de download não encontrado';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Iniciar Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe indisponível';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: oponente desconhecido';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: a aguardar início';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Aceita links partilhados';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Suporta hex bruto';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Compatível com a área de transferência';
|
||||
|
||||
@override
|
||||
String get captured => 'Capturado';
|
||||
|
||||
@override
|
||||
String get size => 'Tamanho';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear =>
|
||||
'Sem canais personalizados para limpar.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear =>
|
||||
'Sem contactos do dispositivo para limpar.';
|
||||
}
|
||||
|
||||
@@ -1921,4 +1921,768 @@ class AppLocalizationsRu extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Не удалось задать маршрут: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'Таймаут ACK';
|
||||
|
||||
@override
|
||||
String get opcode => 'Опкод';
|
||||
|
||||
@override
|
||||
String get payload => 'Полезная нагрузка';
|
||||
|
||||
@override
|
||||
String get hops => 'Хопы';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Размер хеша';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Байты пути';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Выбранный путь';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Ожидаемая передача';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'От отправителя до получения';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Полученные копии';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Причина повтора';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Режим повтора';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Результат повтора';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Последний повтор';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'RX-пакеты';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Скорость';
|
||||
|
||||
@override
|
||||
String get window => 'Окно';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Задержка после передачи';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Полосовой';
|
||||
|
||||
@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 => 'Активно';
|
||||
|
||||
@override
|
||||
String get addContact => 'Добавить контакт';
|
||||
|
||||
@override
|
||||
String get all => 'Все';
|
||||
|
||||
@override
|
||||
String get autoResolve => 'Автоматическое разрешение';
|
||||
|
||||
@override
|
||||
String get clearAllLabel => 'Очистить все';
|
||||
|
||||
@override
|
||||
String get clearRelays => 'Очистить реле';
|
||||
|
||||
@override
|
||||
String get clearFilters => 'Очистить фильтры';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Очистить маршрут';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Очистить сообщения';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Очистить масштаб';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Очистить обнаружения';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Очистить базу трассировок';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Очистить все каналы';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Очистить все контакты';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Очистить каналы';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Очистить контакты';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Очистить путь при макс. повторе';
|
||||
|
||||
@override
|
||||
String get create => 'Создать';
|
||||
|
||||
@override
|
||||
String get custom => 'Пользовательский';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'По умолчанию';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Дублировать';
|
||||
|
||||
@override
|
||||
String get editName => 'Редактировать имя';
|
||||
|
||||
@override
|
||||
String get open => 'Открыть';
|
||||
|
||||
@override
|
||||
String get paste => 'Вставить';
|
||||
|
||||
@override
|
||||
String get preview => 'Предпросмотр';
|
||||
|
||||
@override
|
||||
String get remove => 'Удалить';
|
||||
|
||||
@override
|
||||
String get rename => 'Переименовать';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Разрешить все';
|
||||
|
||||
@override
|
||||
String get send => 'Отправить';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Отправить все равно';
|
||||
|
||||
@override
|
||||
String get share => 'Поделиться';
|
||||
|
||||
@override
|
||||
String get shareContact => 'Поделиться контактом';
|
||||
|
||||
@override
|
||||
String get trace => 'Трассировка';
|
||||
|
||||
@override
|
||||
String get use => 'Использовать';
|
||||
|
||||
@override
|
||||
String get useSelectedFrequency => 'Использовать выбранную частоту';
|
||||
|
||||
@override
|
||||
String get discovery => 'Обнаружение';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Обнаружить повторители';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Обнаружить датчики';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Обнаружение повторителей отправлено';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Обнаружение датчиков отправлено';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Ожидающие обнаружения очищены.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Автоматическое обнаружение';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Включить автоматическое добавление';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Автодобавление повторителей';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Автодобавление серверов комнат';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Автодобавление датчиков';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Автодобавление пользователей';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull => 'Перезаписать старейшие при заполнении';
|
||||
|
||||
@override
|
||||
String get storage => 'Хранилище';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Опасная зона';
|
||||
|
||||
@override
|
||||
String get profiles => 'Профили';
|
||||
|
||||
@override
|
||||
String get favourites => 'Избранное';
|
||||
|
||||
@override
|
||||
String get sensors => 'Датчики';
|
||||
|
||||
@override
|
||||
String get others => 'Другие';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'Модуль GPS';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Живой трафик';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Карта повторителей';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Сканирование спектра';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'Журналы BLE-пакетов';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'База трассировок';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Размер пути в байтах';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Уведомления о сообщениях';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'SAR-оповещения';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Уведомления об обнаружении';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Уведомления об обновлениях';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Без звука при открытом приложении';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Отключить контакты';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Включить вкладку Датчики';
|
||||
|
||||
@override
|
||||
String get enableProfiles => 'Включить профили';
|
||||
|
||||
@override
|
||||
String get autoRouteRotation => 'Автоматическая ротация маршрута';
|
||||
|
||||
@override
|
||||
String get nearestRepeaterFallback => 'Ближайший повторитель как резерв';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory => 'Удалить всю историю сообщений';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Размер шрифта сообщений';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Вращать карту по направлению';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Показать отладочную информацию карты';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Открыть карту на весь экран';
|
||||
|
||||
@override
|
||||
String get showSarMarkersLabel => 'Показать SAR-маркеры';
|
||||
|
||||
@override
|
||||
String get displaySarMarkersOnTheMainMap =>
|
||||
'Отображать SAR-маркеры на основной карте';
|
||||
|
||||
@override
|
||||
String get showAllContactTrailsLabel => 'Показать все следы контактов';
|
||||
|
||||
@override
|
||||
String get hideRepeatersOnMap => 'Скрыть повторители на карте';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Установить масштаб карты';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Пользовательский масштаб карты сохранён';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Битрейт голоса';
|
||||
|
||||
@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 => 'Подавление эха';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Подавление шума';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages =>
|
||||
'Обрезать тишину в голосовых сообщениях';
|
||||
|
||||
@override
|
||||
String get compressor => 'Компрессор';
|
||||
|
||||
@override
|
||||
String get limiter => 'Лимитер';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Автоусиление';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Эхо';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Шум';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Тишина';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Максимальный размер изображения';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Сжатие изображения';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Оттенки серого';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Режим ультра';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Быстрые приватные GPS-обновления';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Порог движения';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Порог движения быстрого GPS';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval =>
|
||||
'Интервал активного использования быстрого GPS';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval =>
|
||||
'Интервал обновления при активном использовании';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Повторять ближний трафик';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Ретранслировать через повторители по сети';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Только рядом, без flood повторителей';
|
||||
|
||||
@override
|
||||
String get multihop => 'Многохоповый';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Создать профиль';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Переименовать профиль';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Новый профиль';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Управление профилями';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Включите профили, чтобы начать управлять ими.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Открыть сообщение';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => 'Перейти к связанному SAR-сообщению';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Удалить SAR-маркер';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Выберите назначение для отправки SAR-маркера';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'SAR-маркер отправлен в публичный канал';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'SAR-маркер отправлен в комнату';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Загрузить из галереи';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Заменить изображение';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Выбрать из галереи';
|
||||
|
||||
@override
|
||||
String get team => 'Команда';
|
||||
|
||||
@override
|
||||
String get found => 'Найдено';
|
||||
|
||||
@override
|
||||
String get staging => 'Место сбора';
|
||||
|
||||
@override
|
||||
String get object => 'Объект';
|
||||
|
||||
@override
|
||||
String get quiet => 'Тихо';
|
||||
|
||||
@override
|
||||
String get moderate => 'Умеренно';
|
||||
|
||||
@override
|
||||
String get busy => 'Занято';
|
||||
|
||||
@override
|
||||
String get spectrumScanReturnedNoCandidateFrequencies =>
|
||||
'Сканирование спектра не нашло частот-кандидатов';
|
||||
|
||||
@override
|
||||
String get searchMessages => 'Поиск сообщений';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Отправить изображение из галереи';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Сделать фото';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Только личные сообщения';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Все сообщения';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Отправить в публичный канал?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'Выберите тип маркера и назначение';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'Нет доступных назначений';
|
||||
|
||||
@override
|
||||
String get image => 'Изображение';
|
||||
|
||||
@override
|
||||
String get format => 'Формат';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Размеры';
|
||||
|
||||
@override
|
||||
String get segments => 'Сегменты';
|
||||
|
||||
@override
|
||||
String get transfers => 'Передачи';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Загружено';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Сохранить настройки обнаружения';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Сохранить публичную информацию';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Сохранить настройки радио';
|
||||
|
||||
@override
|
||||
String get savePath => 'Сохранить путь';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Стереть данные устройства';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Стереть устройство';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Деструктивные действия устройства.';
|
||||
|
||||
@override
|
||||
String get chooseAPresetOrFinetuneCustomRadioSettings =>
|
||||
'Выберите пресет или настройте радио вручную.';
|
||||
|
||||
@override
|
||||
String get chooseTheNameAndLocationThisDeviceShares =>
|
||||
'Выберите имя и местоположение, которыми делится устройство.';
|
||||
|
||||
@override
|
||||
String get availableSpaceOnThisDevice =>
|
||||
'Доступное место на этом устройстве.';
|
||||
|
||||
@override
|
||||
String get used => 'Использовано';
|
||||
|
||||
@override
|
||||
String get total => 'Всего';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Переименовать значение';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Настроить поля';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Предпросмотр в реальном времени';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Расписание обновления';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Нет ответа';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Обновление';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Недоступно';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Выберите реле или узел для наблюдения.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Публичный ключ';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Уже в контактах';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Подключитесь к устройству перед добавлением контактов';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'Из контактов';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Только онлайн';
|
||||
|
||||
@override
|
||||
String get inBoth => 'В обоих';
|
||||
|
||||
@override
|
||||
String get source => 'Источник';
|
||||
|
||||
@override
|
||||
String get manualRouteEdit => 'Ручное редактирование маршрута';
|
||||
|
||||
@override
|
||||
String get observedMeshRoute => 'Наблюдаемый mesh-маршрут';
|
||||
|
||||
@override
|
||||
String get allMessagesCleared => 'Все сообщения очищены';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'База трассировок очищена';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Журналы пакетов очищены';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => 'Hex-данные скопированы в буфер';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Режим разработчика включён';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Режим разработчика отключён';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Буфер обмена пуст';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Контакт импортирован';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Ссылка на контакт скопирована в буфер';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Не удалось экспортировать контакт';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Нет журналов для экспорта';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Экспортировать как CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Экспортировать как текст';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Получено (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Время сборки';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'URL загрузки недоступен';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'Не удаётся открыть URL загрузки';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'Проверка обновлений доступна только на Android';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion => 'Вы используете последнюю версию';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Обновление доступно, но URL загрузки не найден';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Начать Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe недоступно';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: противник неизвестен';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: ожидание начала';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Принимает общие ссылки';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Поддерживает raw hex';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Удобно для буфера';
|
||||
|
||||
@override
|
||||
String get captured => 'Захвачено';
|
||||
|
||||
@override
|
||||
String get size => 'Размер';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear =>
|
||||
'Нет пользовательских каналов для очистки.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear => 'Нет контактов устройства для очистки.';
|
||||
}
|
||||
|
||||
@@ -1912,4 +1912,767 @@ class AppLocalizationsSl extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Nastavitev poti ni uspela: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'Časovna omejitev ACK';
|
||||
|
||||
@override
|
||||
String get opcode => 'Opkoda';
|
||||
|
||||
@override
|
||||
String get payload => 'Vsebina';
|
||||
|
||||
@override
|
||||
String get hops => 'Skoki';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Velikost zgoščevalne vrednosti';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Bajti poti';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Izbrana pot';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Ocenjeni čas oddaje';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Od pošiljatelja do prejema';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Prejete kopije';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Razlog ponovitve';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Način ponovitve';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Rezultat ponovitve';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Zadnja ponovitev';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'RX paketi';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Hitrost';
|
||||
|
||||
@override
|
||||
String get window => 'Okno';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Zakasnitev po oddaji';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Pasovno sito';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get addContact => 'Dodaj stik';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Počisti pot';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Počisti sporočila';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Počisti merilo';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Počisti odkritja';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Počisti bazo sledi';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Počisti vse kanale';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Počisti vse stike';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Počisti kanale';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Počisti stike';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Počisti pot ob maks. ponovitvi';
|
||||
|
||||
@override
|
||||
String get create => 'Ustvari';
|
||||
|
||||
@override
|
||||
String get custom => 'Po meri';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Privzeto';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Podvoji';
|
||||
|
||||
@override
|
||||
String get editName => 'Uredi ime';
|
||||
|
||||
@override
|
||||
String get open => 'Odpri';
|
||||
|
||||
@override
|
||||
String get paste => 'Prilepi';
|
||||
|
||||
@override
|
||||
String get preview => 'Predogled';
|
||||
|
||||
@override
|
||||
String get remove => 'Odstrani';
|
||||
|
||||
@override
|
||||
String get rename => 'Preimenuj';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Razreši vse';
|
||||
|
||||
@override
|
||||
String get send => 'Pošlji';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Vseeno pošlji';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Odkrij posrednike';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Odkrij senzorje';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Odkrivanje posrednikov poslano';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Odkrivanje senzorjev poslano';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Čakalna odkritja počiščena.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Samodejno odkrivanje';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Omogoči samodejno dodajanje';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Samodejno dodaj posrednike';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Samodejno dodaj strežnike sob';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Samodejno dodaj senzorje';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Samodejno dodaj uporabnike';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull => 'Prepiši najstarejše ob polnem';
|
||||
|
||||
@override
|
||||
String get storage => 'Shramba';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Nevarno območje';
|
||||
|
||||
@override
|
||||
String get profiles => 'Profili';
|
||||
|
||||
@override
|
||||
String get favourites => 'Priljubljeni';
|
||||
|
||||
@override
|
||||
String get sensors => 'Senzorji';
|
||||
|
||||
@override
|
||||
String get others => 'Ostali';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'GPS modul';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Promet v živo';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Zemljevid posrednikov';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Spektralno skeniranje';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'Dnevniki BLE paketov';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Baza sledi';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Velikost poti v bajtih';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Obvestila o sporočilih';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'SAR opozorila';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Obvestila o odkritjih';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Obvestila o posodobitvah';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Utišaj ko je aplikacija odprta';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Onemogoči stike';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Omogoči zavihek Senzorji';
|
||||
|
||||
@override
|
||||
String get enableProfiles => 'Omogoči profile';
|
||||
|
||||
@override
|
||||
String get autoRouteRotation => 'Samodejno kroženje poti';
|
||||
|
||||
@override
|
||||
String get nearestRepeaterFallback => 'Najbližji posrednik kot rezerva';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory =>
|
||||
'Izbriši vso shranjeno zgodovino sporočil';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Velikost pisave sporočil';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Vrti zemljevid s smerjo';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Prikaži razhroščevalne info zemljevida';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Odpri zemljevid na cel zaslon';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Nastavi merilo zemljevida';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Merilo zemljevida shranjeno';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Bitna hitrost glasu';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Dušenje šuma';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages =>
|
||||
'Obreži tišino v glasovnih sporočilih';
|
||||
|
||||
@override
|
||||
String get compressor => 'Kompresor';
|
||||
|
||||
@override
|
||||
String get limiter => 'Omejevalnik';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Samodejna ojačitev';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Odmev';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Šum';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Tišina';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Največja velikost slike';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Stiskanje slik';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Sivine';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Ultra način';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Hitri zasebni GPS podatki';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Prag gibanja';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Prag gibanja za hitri GPS';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval => 'Interval uporabe hitrega GPS-a';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval =>
|
||||
'Interval posodobitve pri aktivni uporabi';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Ponavljaj bližnji promet';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Posreduj skozi posrednike po mreži';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Samo bližnji, brez poplavljanja posrednikov';
|
||||
|
||||
@override
|
||||
String get multihop => 'Večskočno';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Ustvari profil';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Preimenuj profil';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Nov profil';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Upravljaj profile';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Omogočite profile, da jih začnete upravljati.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Odpri sporočilo';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => 'Skoči na povezano SAR sporočilo';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Odstrani SAR oznako';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Izberite cilj za pošiljanje SAR oznake';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'SAR oznaka poslana na javni kanal';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'SAR oznaka poslana v sobo';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Naloži iz galerije';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Zamenjaj sliko';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Izberi iz galerije';
|
||||
|
||||
@override
|
||||
String get team => 'Ekipa';
|
||||
|
||||
@override
|
||||
String get found => 'Najdeno';
|
||||
|
||||
@override
|
||||
String get staging => 'Zbirno mesto';
|
||||
|
||||
@override
|
||||
String get object => 'Predmet';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Pošlji sliko iz galerije';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Posnemi fotografijo';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Samo neposredno';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Vsa sporočila';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Pošlji na javni kanal?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination => 'Izberite vrsto oznake in cilj';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'Ni razpoložljivih ciljev';
|
||||
|
||||
@override
|
||||
String get image => 'Slika';
|
||||
|
||||
@override
|
||||
String get format => 'Format';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Dimenzije';
|
||||
|
||||
@override
|
||||
String get segments => 'Segmenti';
|
||||
|
||||
@override
|
||||
String get transfers => 'Prenosi';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Preneseno od';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Shrani nastavitve odkrivanja';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Shrani javne podatke';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Shrani radijske nastavitve';
|
||||
|
||||
@override
|
||||
String get savePath => 'Shrani pot';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Izbriši podatke naprave';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Izbriši napravo';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Destruktivna dejanja na napravi.';
|
||||
|
||||
@override
|
||||
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';
|
||||
|
||||
@override
|
||||
String get total => 'Skupaj';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Preimenuj vrednost';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Prilagodi polja';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Predogled v živo';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Interval osvežitve';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Ni odgovora';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Osvežujem';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Nedostopno';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Izberite posrednika ali vozlišče za opazovanje.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Javni ključ';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Že med stiki';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Povežite se z napravo pred dodajanjem stikov';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'Iz stikov';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Samo povezani';
|
||||
|
||||
@override
|
||||
String get inBoth => 'V obeh';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Baza sledi počiščena';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Dnevniki paketov počiščeni';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => 'Hex podatki kopirani v odložišče';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Razvojni način omogočen';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Razvojni način onemogočen';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Odložišče je prazno';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Stik uvožen';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Povezava na stik kopirana v odložišče';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Izvoz stika ni uspel';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Ni dnevnikov za izvoz';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Izvozi kot CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Izvozi kot besedilo';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Prejeto (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Čas gradnje';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'URL za prenos ni na voljo';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'URL za prenos ni mogoče odpreti';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'Preverjanje posodobitev je na voljo le na Androidu';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion =>
|
||||
'Uporabljate najnovejšo različico';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Posodobitev na voljo, a URL za prenos ni najden';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Začni Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe ni na voljo';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: nasprotnik neznan';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: čakanje na začetek';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Sprejema deljene povezave';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Podpira surove hex';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Primerno za odložišče';
|
||||
|
||||
@override
|
||||
String get captured => 'Zajeto';
|
||||
|
||||
@override
|
||||
String get size => 'Velikost';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear => 'Ni prilagojenih kanalov za brisanje.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear => 'Ni stikov naprave za brisanje.';
|
||||
}
|
||||
|
||||
@@ -1914,4 +1914,763 @@ class AppLocalizationsTr extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Rota ayarlanamadı: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'ACK zaman aşımı';
|
||||
|
||||
@override
|
||||
String get opcode => 'Opcode';
|
||||
|
||||
@override
|
||||
String get payload => 'Yük';
|
||||
|
||||
@override
|
||||
String get hops => 'Atlama';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Hash boyutu';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Yol baytları';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Seçilen yol';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Tahmini gönderim';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Gönderenden alındıya';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Alınan kopyalar';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Yeniden deneme nedeni';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Yeniden deneme modu';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Yeniden deneme sonucu';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Son deneme';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'RX paketleri';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Hız';
|
||||
|
||||
@override
|
||||
String get window => 'Pencere';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Gönderim sonrası gecikme';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Bant geçiren';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get addContact => 'Kişi ekle';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Rotayı temizle';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Mesajları temizle';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Ölçeği temizle';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Keşifleri temizle';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Çevrimiçi iz veritabanını temizle';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Tüm kanalları temizle';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Tüm kişileri temizle';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Kanalları temizle';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Kişileri temizle';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Maks denemede yolu temizle';
|
||||
|
||||
@override
|
||||
String get create => 'Oluştur';
|
||||
|
||||
@override
|
||||
String get custom => 'Özel';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'Varsayılan';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Çoğalt';
|
||||
|
||||
@override
|
||||
String get editName => 'Adı düzenle';
|
||||
|
||||
@override
|
||||
String get open => 'Aç';
|
||||
|
||||
@override
|
||||
String get paste => 'Yapıştır';
|
||||
|
||||
@override
|
||||
String get preview => 'Önizleme';
|
||||
|
||||
@override
|
||||
String get remove => 'Kaldır';
|
||||
|
||||
@override
|
||||
String get rename => 'Yeniden adlandır';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Tümünü çöz';
|
||||
|
||||
@override
|
||||
String get send => 'Gönder';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Yine de gönder';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Tekrarlayıcıları keşfet';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Sensörleri keşfet';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Tekrarlayıcı keşfi gönderildi';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Sensör keşfi gönderildi';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Bekleyen keşifler temizlendi.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Otomatik keşif';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Otomatik eklemeyi etkinleştir';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Tekrarlayıcıları otomatik ekle';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Oda sunucularını otomatik ekle';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Sensörleri otomatik ekle';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Kullanıcıları otomatik ekle';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull => 'Dolduğunda en eskiyi üzerine yaz';
|
||||
|
||||
@override
|
||||
String get storage => 'Depolama';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Tehlikeli bölge';
|
||||
|
||||
@override
|
||||
String get profiles => 'Profiller';
|
||||
|
||||
@override
|
||||
String get favourites => 'Favoriler';
|
||||
|
||||
@override
|
||||
String get sensors => 'Sensörler';
|
||||
|
||||
@override
|
||||
String get others => 'Diğerleri';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'GPS Modülü';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Canlı trafik';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Tekrarlayıcılar haritası';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Spektrum taraması';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'BLE paket günlükleri';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'Çevrimiçi iz veritabanı';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Yol bayt boyutu';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Mesaj bildirimleri';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'SAR uyarıları';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Keşif bildirimleri';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Güncelleme bildirimleri';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Uygulama açıkken sessize al';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Kişileri devre dışı bırak';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Sensörler sekmesini etkinleştir';
|
||||
|
||||
@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üş';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory => 'Tüm mesaj geçmişini sil';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Mesaj yazı tipi boyutu';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Haritayı yön ile döndür';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Harita hata ayıklama bilgisini göster';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Haritayı tam ekranda aç';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Harita ölçeğini ayarla';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Özel harita ölçeği kaydedildi';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Ses bit hızı';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Gürültü bastırma';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages => 'Sesli mesajlarda sessizliği kırp';
|
||||
|
||||
@override
|
||||
String get compressor => 'Sıkıştırıcı';
|
||||
|
||||
@override
|
||||
String get limiter => 'Sınırlayıcı';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Otomatik kazanç';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Yankı';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Gürültü';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Sessizlik';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Maksimum resim boyutu';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Resim sıkıştırma';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Gri tonlama';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Ultra mod';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Hızlı özel GPS güncellemeleri';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Hareket eşiği';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Hızlı GPS hareket eşiği';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval => 'Hızlı GPS aktif kullanım aralığı';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval => 'Aktif kullanım güncelleme aralığı';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Yakın trafiği tekrarla';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Ağ üzerindeki tekrarlayıcılar aracılığıyla ilet';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Yalnızca yakın, tekrarlayıcı taşkını olmadan';
|
||||
|
||||
@override
|
||||
String get multihop => 'Çok atlamalı';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Profil oluştur';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Profili yeniden adlandır';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Yeni profil';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Profilleri yönet';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Profilleri yönetmeye başlamak için etkinleştirin.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Mesajı aç';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => 'İlgili SAR mesajına git';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'SAR işaretçisini kaldır';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'SAR işaretçisi göndermek için bir hedef seçin';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'SAR işaretçisi genel kanala yayınlandı';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'SAR işaretçisi odaya gönderildi';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Galeriden yükle';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Resmi değiştir';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Galeriden seç';
|
||||
|
||||
@override
|
||||
String get team => 'Takım';
|
||||
|
||||
@override
|
||||
String get found => 'Bulundu';
|
||||
|
||||
@override
|
||||
String get staging => 'Toplanma alanı';
|
||||
|
||||
@override
|
||||
String get object => 'Nesne';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Galeriden resim gönder';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Fotoğraf çek';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Yalnızca DM';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Tüm mesajlar';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Genel kanala gönderilsin mi?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'İşaretçi türünü ve hedefi seçin';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'Kullanılabilir hedef yok';
|
||||
|
||||
@override
|
||||
String get image => 'Resim';
|
||||
|
||||
@override
|
||||
String get format => 'Biçim';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Boyutlar';
|
||||
|
||||
@override
|
||||
String get segments => 'Segmentler';
|
||||
|
||||
@override
|
||||
String get transfers => 'Transferler';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'İndiren';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Keşif ayarlarını kaydet';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Genel bilgileri kaydet';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Radyo ayarlarını kaydet';
|
||||
|
||||
@override
|
||||
String get savePath => 'Yolu kaydet';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Cihaz verilerini sil';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Cihazı sil';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Yıkıcı cihaz işlemleri.';
|
||||
|
||||
@override
|
||||
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';
|
||||
|
||||
@override
|
||||
String get total => 'Toplam';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Değeri yeniden adlandır';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Alanları özelleştir';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Canlı önizleme';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Yenileme programı';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Yanıt yok';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Yenileniyor';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Kullanılamaz';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'İzlemek için bir röle veya düğüm seçin.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Genel anahtar';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Zaten kişilerde';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Kişi eklemeden önce bir cihaza bağlanın';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'Kişilerden';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Yalnızca çevrimiçi';
|
||||
|
||||
@override
|
||||
String get inBoth => 'Her ikisinde';
|
||||
|
||||
@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';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Çevrimiçi iz veritabanı temizlendi';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Paket günlükleri temizlendi';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => 'Hex verisi panoya kopyalandı';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Geliştirici modu etkinleştirildi';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Geliştirici modu devre dışı bırakıldı';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Pano boş';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Kişi içe aktarıldı';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Kişi bağlantısı panoya kopyalandı';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Kişi dışa aktarılamadı';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Dışa aktarılacak günlük yok';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'CSV olarak dışa aktar';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Metin olarak dışa aktar';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Alındı (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Derleme zamanı';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'İndirme URL\'si mevcut değil';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'İndirme URL\'si açılamıyor';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'Güncelleme kontrolü yalnızca Android\'de kullanılabilir';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion => 'En son sürümü kullanıyorsunuz';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Güncelleme mevcut ancak indirme URL\'si bulunamadı';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Tic-Tac-Toe başlat';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe kullanılamıyor';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: rakip bilinmiyor';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: başlangıç bekleniyor';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Paylaşım bağlantılarını kabul eder';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Ham hex destekler';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Pano dostu';
|
||||
|
||||
@override
|
||||
String get captured => 'Yakalandı';
|
||||
|
||||
@override
|
||||
String get size => 'Boyut';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear => 'Temizlenecek özel kanal yok.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear => 'Temizlenecek cihaz kişisi yok.';
|
||||
}
|
||||
|
||||
@@ -1927,4 +1927,773 @@ class AppLocalizationsUk extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return 'Не вдалося задати маршрут: $error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'Тайм-аут ACK';
|
||||
|
||||
@override
|
||||
String get opcode => 'Опкод';
|
||||
|
||||
@override
|
||||
String get payload => 'Корисне навантаження';
|
||||
|
||||
@override
|
||||
String get hops => 'Хопи';
|
||||
|
||||
@override
|
||||
String get hashSize => 'Розмір хешу';
|
||||
|
||||
@override
|
||||
String get pathBytes => 'Байти шляху';
|
||||
|
||||
@override
|
||||
String get selectedPath => 'Обраний шлях';
|
||||
|
||||
@override
|
||||
String get estimatedTx => 'Очікувана передача';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => 'Від відправника до отримання';
|
||||
|
||||
@override
|
||||
String get receivedCopies => 'Отримані копії';
|
||||
|
||||
@override
|
||||
String get retryCause => 'Причина повтору';
|
||||
|
||||
@override
|
||||
String get retryMode => 'Режим повтору';
|
||||
|
||||
@override
|
||||
String get retryResult => 'Результат повтору';
|
||||
|
||||
@override
|
||||
String get lastRetry => 'Остання спроба';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'RX-пакети';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => 'Швидкість';
|
||||
|
||||
@override
|
||||
String get window => 'Вікно';
|
||||
|
||||
@override
|
||||
String get posttxDelay => 'Затримка після передачі';
|
||||
|
||||
@override
|
||||
String get bandpass => 'Смуговий';
|
||||
|
||||
@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 => 'Активно';
|
||||
|
||||
@override
|
||||
String get addContact => 'Додати контакт';
|
||||
|
||||
@override
|
||||
String get all => 'Усі';
|
||||
|
||||
@override
|
||||
String get autoResolve => 'Автоматичне вирішення';
|
||||
|
||||
@override
|
||||
String get clearAllLabel => 'Очистити все';
|
||||
|
||||
@override
|
||||
String get clearRelays => 'Очистити реле';
|
||||
|
||||
@override
|
||||
String get clearFilters => 'Очистити фільтри';
|
||||
|
||||
@override
|
||||
String get clearRoute => 'Очистити маршрут';
|
||||
|
||||
@override
|
||||
String get clearMessages => 'Очистити повідомлення';
|
||||
|
||||
@override
|
||||
String get clearScale => 'Очистити масштаб';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => 'Очистити виявлення';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => 'Очистити базу трасувань';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => 'Очистити всі канали';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => 'Очистити всі контакти';
|
||||
|
||||
@override
|
||||
String get clearChannels => 'Очистити канали';
|
||||
|
||||
@override
|
||||
String get clearContacts => 'Очистити контакти';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => 'Очистити шлях при макс. спробі';
|
||||
|
||||
@override
|
||||
String get create => 'Створити';
|
||||
|
||||
@override
|
||||
String get custom => 'Користувацький';
|
||||
|
||||
@override
|
||||
String get defaultValue => 'За замовчуванням';
|
||||
|
||||
@override
|
||||
String get duplicate => 'Дублювати';
|
||||
|
||||
@override
|
||||
String get editName => 'Редагувати ім\'я';
|
||||
|
||||
@override
|
||||
String get open => 'Відкрити';
|
||||
|
||||
@override
|
||||
String get paste => 'Вставити';
|
||||
|
||||
@override
|
||||
String get preview => 'Попередній перегляд';
|
||||
|
||||
@override
|
||||
String get remove => 'Видалити';
|
||||
|
||||
@override
|
||||
String get rename => 'Перейменувати';
|
||||
|
||||
@override
|
||||
String get resolveAll => 'Вирішити все';
|
||||
|
||||
@override
|
||||
String get send => 'Надіслати';
|
||||
|
||||
@override
|
||||
String get sendAnyway => 'Надіслати все одно';
|
||||
|
||||
@override
|
||||
String get share => 'Поділитися';
|
||||
|
||||
@override
|
||||
String get shareContact => 'Поділитися контактом';
|
||||
|
||||
@override
|
||||
String get trace => 'Трасування';
|
||||
|
||||
@override
|
||||
String get use => 'Використати';
|
||||
|
||||
@override
|
||||
String get useSelectedFrequency => 'Використати обрану частоту';
|
||||
|
||||
@override
|
||||
String get discovery => 'Виявлення';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => 'Виявити повторювачі';
|
||||
|
||||
@override
|
||||
String get discoverSensors => 'Виявити датчики';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => 'Виявлення повторювачів надіслано';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => 'Виявлення датчиків надіслано';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => 'Очікувані виявлення очищено.';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => 'Автоматичне виявлення';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => 'Увімкнути автоматичне додавання';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => 'Автододавання повторювачів';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => 'Автододавання серверів кімнат';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => 'Автододавання датчиків';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => 'Автододавання користувачів';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull =>
|
||||
'Перезаписати найстаріші при заповненні';
|
||||
|
||||
@override
|
||||
String get storage => 'Сховище';
|
||||
|
||||
@override
|
||||
String get dangerZone => 'Небезпечна зона';
|
||||
|
||||
@override
|
||||
String get profiles => 'Профілі';
|
||||
|
||||
@override
|
||||
String get favourites => 'Обране';
|
||||
|
||||
@override
|
||||
String get sensors => 'Датчики';
|
||||
|
||||
@override
|
||||
String get others => 'Інші';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'Модуль GPS';
|
||||
|
||||
@override
|
||||
String get liveTraffic => 'Живий трафік';
|
||||
|
||||
@override
|
||||
String get repeatersMap => 'Карта повторювачів';
|
||||
|
||||
@override
|
||||
String get spectrumScan => 'Сканування спектру';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'Журнали BLE-пакетів';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => 'База трасувань';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => 'Розмір шляху в байтах';
|
||||
|
||||
@override
|
||||
String get messageNotifications => 'Сповіщення про повідомлення';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'SAR-сповіщення';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => 'Сповіщення про виявлення';
|
||||
|
||||
@override
|
||||
String get updateNotifications => 'Сповіщення про оновлення';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => 'Без звуку при відкритому додатку';
|
||||
|
||||
@override
|
||||
String get disableContacts => 'Вимкнути контакти';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => 'Увімкнути вкладку Датчики';
|
||||
|
||||
@override
|
||||
String get enableProfiles => 'Увімкнути профілі';
|
||||
|
||||
@override
|
||||
String get autoRouteRotation => 'Автоматична ротація маршруту';
|
||||
|
||||
@override
|
||||
String get nearestRepeaterFallback => 'Найближчий повторювач як резерв';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory =>
|
||||
'Видалити всю історію повідомлень';
|
||||
|
||||
@override
|
||||
String get messageFontSize => 'Розмір шрифту повідомлень';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => 'Обертати карту за напрямком';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => 'Показати налагоджувальну інфо карти';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => 'Відкрити карту на повний екран';
|
||||
|
||||
@override
|
||||
String get showSarMarkersLabel => 'Показати SAR-маркери';
|
||||
|
||||
@override
|
||||
String get displaySarMarkersOnTheMainMap =>
|
||||
'Показувати SAR-маркери на головній карті';
|
||||
|
||||
@override
|
||||
String get showAllContactTrailsLabel => 'Показати всі сліди контактів';
|
||||
|
||||
@override
|
||||
String get hideRepeatersOnMap => 'Сховати повторювачі на карті';
|
||||
|
||||
@override
|
||||
String get setMapScale => 'Встановити масштаб карти';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => 'Користувацький масштаб карти збережено';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => 'Бітрейт голосу';
|
||||
|
||||
@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 => 'Придушення ехо';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => 'Придушення шуму';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages =>
|
||||
'Обрізати тишу в голосових повідомленнях';
|
||||
|
||||
@override
|
||||
String get compressor => 'Компресор';
|
||||
|
||||
@override
|
||||
String get limiter => 'Лімітер';
|
||||
|
||||
@override
|
||||
String get autoGain => 'Автопідсилення';
|
||||
|
||||
@override
|
||||
String get echoCancel => 'Ехо';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => 'Шум';
|
||||
|
||||
@override
|
||||
String get silenceTrim => 'Тиша';
|
||||
|
||||
@override
|
||||
String get maxImageSize => 'Максимальний розмір зображення';
|
||||
|
||||
@override
|
||||
String get imageCompression => 'Стиснення зображення';
|
||||
|
||||
@override
|
||||
String get grayscale => 'Відтінки сірого';
|
||||
|
||||
@override
|
||||
String get ultraMode => 'Ультра режим';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => 'Швидкі приватні GPS-оновлення';
|
||||
|
||||
@override
|
||||
String get movementThreshold => 'Поріг руху';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => 'Поріг руху швидкого GPS';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval =>
|
||||
'Інтервал активного використання швидкого GPS';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval =>
|
||||
'Інтервал оновлення при активному використанні';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => 'Повторювати близький трафік';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh =>
|
||||
'Ретранслювати через повторювачі по мережі';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding =>
|
||||
'Лише поблизу, без flood повторювачів';
|
||||
|
||||
@override
|
||||
String get multihop => 'Багатохоповий';
|
||||
|
||||
@override
|
||||
String get createProfile => 'Створити профіль';
|
||||
|
||||
@override
|
||||
String get renameProfile => 'Перейменувати профіль';
|
||||
|
||||
@override
|
||||
String get newProfile => 'Новий профіль';
|
||||
|
||||
@override
|
||||
String get manageProfiles => 'Керувати профілями';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem =>
|
||||
'Увімкніть профілі, щоб почати керувати ними.';
|
||||
|
||||
@override
|
||||
String get openMessage => 'Відкрити повідомлення';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage =>
|
||||
'Перейти до пов\'язаного SAR-повідомлення';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => 'Видалити SAR-маркер';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker =>
|
||||
'Виберіть призначення для надсилання SAR-маркера';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel =>
|
||||
'SAR-маркер надіслано на публічний канал';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'SAR-маркер надіслано в кімнату';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => 'Завантажити з галереї';
|
||||
|
||||
@override
|
||||
String get replaceImage => 'Замінити зображення';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => 'Вибрати з галереї';
|
||||
|
||||
@override
|
||||
String get team => 'Команда';
|
||||
|
||||
@override
|
||||
String get found => 'Знайдено';
|
||||
|
||||
@override
|
||||
String get staging => 'Місце збору';
|
||||
|
||||
@override
|
||||
String get object => 'Об\'єкт';
|
||||
|
||||
@override
|
||||
String get quiet => 'Тихо';
|
||||
|
||||
@override
|
||||
String get moderate => 'Помірно';
|
||||
|
||||
@override
|
||||
String get busy => 'Зайнято';
|
||||
|
||||
@override
|
||||
String get spectrumScanReturnedNoCandidateFrequencies =>
|
||||
'Сканування спектру не знайшло частот-кандидатів';
|
||||
|
||||
@override
|
||||
String get searchMessages => 'Пошук повідомлень';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => 'Надіслати зображення з галереї';
|
||||
|
||||
@override
|
||||
String get takePhoto => 'Зробити фото';
|
||||
|
||||
@override
|
||||
String get dmOnly => 'Лише особисті повідомлення';
|
||||
|
||||
@override
|
||||
String get allMessages => 'Усі повідомлення';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => 'Надіслати в публічний канал?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination =>
|
||||
'Виберіть тип маркера та призначення';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => 'Немає доступних призначень';
|
||||
|
||||
@override
|
||||
String get image => 'Зображення';
|
||||
|
||||
@override
|
||||
String get format => 'Формат';
|
||||
|
||||
@override
|
||||
String get dimensions => 'Розміри';
|
||||
|
||||
@override
|
||||
String get segments => 'Сегменти';
|
||||
|
||||
@override
|
||||
String get transfers => 'Передачі';
|
||||
|
||||
@override
|
||||
String get downloadedBy => 'Завантажено';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => 'Зберегти налаштування виявлення';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => 'Зберегти публічну інформацію';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => 'Зберегти налаштування радіо';
|
||||
|
||||
@override
|
||||
String get savePath => 'Зберегти шлях';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => 'Стерти дані пристрою';
|
||||
|
||||
@override
|
||||
String get wipeDevice => 'Стерти пристрій';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => 'Деструктивні дії пристрою.';
|
||||
|
||||
@override
|
||||
String get chooseAPresetOrFinetuneCustomRadioSettings =>
|
||||
'Оберіть пресет або налаштуйте радіо вручну.';
|
||||
|
||||
@override
|
||||
String get chooseTheNameAndLocationThisDeviceShares =>
|
||||
'Оберіть ім\'я та місцеположення, якими ділиться пристрій.';
|
||||
|
||||
@override
|
||||
String get availableSpaceOnThisDevice =>
|
||||
'Доступний простір на цьому пристрої.';
|
||||
|
||||
@override
|
||||
String get used => 'Використано';
|
||||
|
||||
@override
|
||||
String get total => 'Загалом';
|
||||
|
||||
@override
|
||||
String get renameValue => 'Перейменувати значення';
|
||||
|
||||
@override
|
||||
String get customizeFields => 'Налаштувати поля';
|
||||
|
||||
@override
|
||||
String get livePreview => 'Попередній перегляд наживо';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => 'Розклад оновлення';
|
||||
|
||||
@override
|
||||
String get noResponse => 'Немає відповіді';
|
||||
|
||||
@override
|
||||
String get refreshing => 'Оновлення';
|
||||
|
||||
@override
|
||||
String get unavailable => 'Недоступно';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors =>
|
||||
'Оберіть реле або вузол для спостереження.';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => 'Публічний ключ';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => 'Вже в контактах';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts =>
|
||||
'Підключіться до пристрою перед додаванням контактів';
|
||||
|
||||
@override
|
||||
String get fromContacts => 'З контактів';
|
||||
|
||||
@override
|
||||
String get onlineOnly => 'Лише онлайн';
|
||||
|
||||
@override
|
||||
String get inBoth => 'В обох';
|
||||
|
||||
@override
|
||||
String get source => 'Джерело';
|
||||
|
||||
@override
|
||||
String get manualRouteEdit => 'Ручне редагування маршруту';
|
||||
|
||||
@override
|
||||
String get observedMeshRoute => 'Спостережуваний mesh-маршрут';
|
||||
|
||||
@override
|
||||
String get allMessagesCleared => 'Усі повідомлення очищено';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => 'Базу трасувань очищено';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => 'Журнали пакетів очищено';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => 'Hex-дані скопійовано в буфер';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => 'Режим розробника увімкнено';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => 'Режим розробника вимкнено';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => 'Буфер обміну порожній';
|
||||
|
||||
@override
|
||||
String get contactImported => 'Контакт імпортовано';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard =>
|
||||
'Посилання на контакт скопійовано в буфер';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => 'Не вдалося експортувати контакт';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => 'Немає журналів для експорту';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => 'Експортувати як CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => 'Експортувати як текст';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => 'Отримано (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => 'Час збірки';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => 'URL завантаження недоступний';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => 'Не вдається відкрити URL завантаження';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid =>
|
||||
'Перевірка оновлень доступна лише на Android';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion =>
|
||||
'Ви використовуєте останню версію';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound =>
|
||||
'Оновлення доступне, але URL завантаження не знайдено';
|
||||
|
||||
@override
|
||||
String get startTictactoe => 'Почати Tic-Tac-Toe';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => 'Tic-Tac-Toe недоступно';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: суперник невідомий';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: очікування початку';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => 'Приймає посилання для обміну';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => 'Підтримує raw hex';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => 'Зручно для буфера';
|
||||
|
||||
@override
|
||||
String get captured => 'Захоплено';
|
||||
|
||||
@override
|
||||
String get size => 'Розмір';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear =>
|
||||
'Немає користувацьких каналів для очищення.';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear =>
|
||||
'Немає контактів пристрою для очищення.';
|
||||
}
|
||||
|
||||
@@ -1827,4 +1827,745 @@ class AppLocalizationsZh extends AppLocalizations {
|
||||
String contactFailedToSetRoute(String error) {
|
||||
return '设置路由失败:$error';
|
||||
}
|
||||
|
||||
@override
|
||||
String get rssi => 'RSSI';
|
||||
|
||||
@override
|
||||
String get snr => 'SNR';
|
||||
|
||||
@override
|
||||
String get ackTimeout => 'ACK 超时';
|
||||
|
||||
@override
|
||||
String get opcode => '操作码';
|
||||
|
||||
@override
|
||||
String get payload => '有效载荷';
|
||||
|
||||
@override
|
||||
String get hops => '跳数';
|
||||
|
||||
@override
|
||||
String get hashSize => '哈希大小';
|
||||
|
||||
@override
|
||||
String get pathBytes => '路径字节';
|
||||
|
||||
@override
|
||||
String get selectedPath => '选定路径';
|
||||
|
||||
@override
|
||||
String get estimatedTx => '预计传输';
|
||||
|
||||
@override
|
||||
String get senderToReceipt => '发送到接收';
|
||||
|
||||
@override
|
||||
String get receivedCopies => '收到的副本';
|
||||
|
||||
@override
|
||||
String get retryCause => '重试原因';
|
||||
|
||||
@override
|
||||
String get retryMode => '重试模式';
|
||||
|
||||
@override
|
||||
String get retryResult => '重试结果';
|
||||
|
||||
@override
|
||||
String get lastRetry => '最后重试';
|
||||
|
||||
@override
|
||||
String get rxPackets => 'RX 数据包';
|
||||
|
||||
@override
|
||||
String get mesh => 'Mesh';
|
||||
|
||||
@override
|
||||
String get rate => '速率';
|
||||
|
||||
@override
|
||||
String get window => '窗口';
|
||||
|
||||
@override
|
||||
String get posttxDelay => '发送后延迟';
|
||||
|
||||
@override
|
||||
String get bandpass => '带通';
|
||||
|
||||
@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 => '活动';
|
||||
|
||||
@override
|
||||
String get addContact => '添加联系人';
|
||||
|
||||
@override
|
||||
String get all => '全部';
|
||||
|
||||
@override
|
||||
String get autoResolve => '自动解析';
|
||||
|
||||
@override
|
||||
String get clearAllLabel => '清除全部';
|
||||
|
||||
@override
|
||||
String get clearRelays => '清除中继';
|
||||
|
||||
@override
|
||||
String get clearFilters => '清除过滤器';
|
||||
|
||||
@override
|
||||
String get clearRoute => '清除路由';
|
||||
|
||||
@override
|
||||
String get clearMessages => '清除消息';
|
||||
|
||||
@override
|
||||
String get clearScale => '清除比例';
|
||||
|
||||
@override
|
||||
String get clearDiscoveries => '清除发现';
|
||||
|
||||
@override
|
||||
String get clearOnlineTraceDatabase => '清除在线追踪数据库';
|
||||
|
||||
@override
|
||||
String get clearAllChannels => '清除所有频道';
|
||||
|
||||
@override
|
||||
String get clearAllContacts => '清除所有联系人';
|
||||
|
||||
@override
|
||||
String get clearChannels => '清除频道';
|
||||
|
||||
@override
|
||||
String get clearContacts => '清除联系人';
|
||||
|
||||
@override
|
||||
String get clearPathOnMaxRetry => '最大重试时清除路径';
|
||||
|
||||
@override
|
||||
String get create => '创建';
|
||||
|
||||
@override
|
||||
String get custom => '自定义';
|
||||
|
||||
@override
|
||||
String get defaultValue => '默认';
|
||||
|
||||
@override
|
||||
String get duplicate => '复制';
|
||||
|
||||
@override
|
||||
String get editName => '编辑名称';
|
||||
|
||||
@override
|
||||
String get open => '打开';
|
||||
|
||||
@override
|
||||
String get paste => '粘贴';
|
||||
|
||||
@override
|
||||
String get preview => '预览';
|
||||
|
||||
@override
|
||||
String get remove => '移除';
|
||||
|
||||
@override
|
||||
String get rename => '重命名';
|
||||
|
||||
@override
|
||||
String get resolveAll => '解析全部';
|
||||
|
||||
@override
|
||||
String get send => '发送';
|
||||
|
||||
@override
|
||||
String get sendAnyway => '仍然发送';
|
||||
|
||||
@override
|
||||
String get share => '分享';
|
||||
|
||||
@override
|
||||
String get shareContact => '分享联系人';
|
||||
|
||||
@override
|
||||
String get trace => '追踪';
|
||||
|
||||
@override
|
||||
String get use => '使用';
|
||||
|
||||
@override
|
||||
String get useSelectedFrequency => '使用选定频率';
|
||||
|
||||
@override
|
||||
String get discovery => '发现';
|
||||
|
||||
@override
|
||||
String get discoverRepeaters => '发现中继器';
|
||||
|
||||
@override
|
||||
String get discoverSensors => '发现传感器';
|
||||
|
||||
@override
|
||||
String get repeaterDiscoverySent => '中继器发现已发送';
|
||||
|
||||
@override
|
||||
String get sensorDiscoverySent => '传感器发现已发送';
|
||||
|
||||
@override
|
||||
String get clearedPendingDiscoveries => '已清除待处理的发现。';
|
||||
|
||||
@override
|
||||
String get autoDiscovery => '自动发现';
|
||||
|
||||
@override
|
||||
String get enableAutomaticAdding => '启用自动添加';
|
||||
|
||||
@override
|
||||
String get autoaddRepeaters => '自动添加中继器';
|
||||
|
||||
@override
|
||||
String get autoaddRoomServers => '自动添加房间服务器';
|
||||
|
||||
@override
|
||||
String get autoaddSensors => '自动添加传感器';
|
||||
|
||||
@override
|
||||
String get autoaddUsers => '自动添加用户';
|
||||
|
||||
@override
|
||||
String get overwriteOldestWhenFull => '满时覆盖最旧的';
|
||||
|
||||
@override
|
||||
String get storage => '存储';
|
||||
|
||||
@override
|
||||
String get dangerZone => '危险区域';
|
||||
|
||||
@override
|
||||
String get profiles => '配置文件';
|
||||
|
||||
@override
|
||||
String get favourites => '收藏夹';
|
||||
|
||||
@override
|
||||
String get sensors => '传感器';
|
||||
|
||||
@override
|
||||
String get others => '其他';
|
||||
|
||||
@override
|
||||
String get gpsModule => 'GPS 模块';
|
||||
|
||||
@override
|
||||
String get liveTraffic => '实时流量';
|
||||
|
||||
@override
|
||||
String get repeatersMap => '中继器地图';
|
||||
|
||||
@override
|
||||
String get spectrumScan => '频谱扫描';
|
||||
|
||||
@override
|
||||
String get blePacketLogs => 'BLE 数据包日志';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabase => '在线追踪数据库';
|
||||
|
||||
@override
|
||||
String get routePathByteSize => '路由路径字节大小';
|
||||
|
||||
@override
|
||||
String get messageNotifications => '消息通知';
|
||||
|
||||
@override
|
||||
String get sarAlerts => 'SAR 警报';
|
||||
|
||||
@override
|
||||
String get discoveryNotifications => '发现通知';
|
||||
|
||||
@override
|
||||
String get updateNotifications => '更新通知';
|
||||
|
||||
@override
|
||||
String get muteWhileAppIsOpen => '应用打开时静音';
|
||||
|
||||
@override
|
||||
String get disableContacts => '禁用联系人';
|
||||
|
||||
@override
|
||||
String get enableSensorsTab => '启用传感器标签';
|
||||
|
||||
@override
|
||||
String get enableProfiles => '启用配置文件';
|
||||
|
||||
@override
|
||||
String get autoRouteRotation => '自动路由轮换';
|
||||
|
||||
@override
|
||||
String get nearestRepeaterFallback => '最近中继器回退';
|
||||
|
||||
@override
|
||||
String get deleteAllStoredMessageHistory => '删除所有存储的消息历史';
|
||||
|
||||
@override
|
||||
String get messageFontSize => '消息字体大小';
|
||||
|
||||
@override
|
||||
String get rotateMapWithHeading => '随航向旋转地图';
|
||||
|
||||
@override
|
||||
String get showMapDebugInfo => '显示地图调试信息';
|
||||
|
||||
@override
|
||||
String get openMapInFullscreen => '全屏打开地图';
|
||||
|
||||
@override
|
||||
String get showSarMarkersLabel => '显示 SAR 标记';
|
||||
|
||||
@override
|
||||
String get displaySarMarkersOnTheMainMap => '在主地图上显示 SAR 标记';
|
||||
|
||||
@override
|
||||
String get showAllContactTrailsLabel => '显示所有联系人轨迹';
|
||||
|
||||
@override
|
||||
String get hideRepeatersOnMap => '在地图上隐藏中继器';
|
||||
|
||||
@override
|
||||
String get setMapScale => '设置地图比例';
|
||||
|
||||
@override
|
||||
String get customMapScaleSaved => '自定义地图比例已保存';
|
||||
|
||||
@override
|
||||
String get voiceBitrate => '语音比特率';
|
||||
|
||||
@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 => '回声消除';
|
||||
|
||||
@override
|
||||
String get noiseSuppression => '噪音抑制';
|
||||
|
||||
@override
|
||||
String get trimSilenceInVoiceMessages => '修剪语音消息中的静音';
|
||||
|
||||
@override
|
||||
String get compressor => '压缩器';
|
||||
|
||||
@override
|
||||
String get limiter => '限制器';
|
||||
|
||||
@override
|
||||
String get autoGain => '自动增益';
|
||||
|
||||
@override
|
||||
String get echoCancel => '回声';
|
||||
|
||||
@override
|
||||
String get noiseSuppress => '噪声';
|
||||
|
||||
@override
|
||||
String get silenceTrim => '静音';
|
||||
|
||||
@override
|
||||
String get maxImageSize => '最大图片大小';
|
||||
|
||||
@override
|
||||
String get imageCompression => '图片压缩';
|
||||
|
||||
@override
|
||||
String get grayscale => '灰度';
|
||||
|
||||
@override
|
||||
String get ultraMode => '超级模式';
|
||||
|
||||
@override
|
||||
String get fastPrivateGpsUpdates => '快速私有 GPS 更新';
|
||||
|
||||
@override
|
||||
String get movementThreshold => '移动阈值';
|
||||
|
||||
@override
|
||||
String get fastGpsMovementThreshold => '快速 GPS 移动阈值';
|
||||
|
||||
@override
|
||||
String get fastGpsActiveuseInterval => '快速 GPS 活动使用间隔';
|
||||
|
||||
@override
|
||||
String get activeuseUpdateInterval => '活动使用更新间隔';
|
||||
|
||||
@override
|
||||
String get repeatNearbyTraffic => '转发附近流量';
|
||||
|
||||
@override
|
||||
String get relayThroughRepeatersAcrossTheMesh => '通过网格中的中继器转发';
|
||||
|
||||
@override
|
||||
String get nearbyOnlyWithoutRepeaterFlooding => '仅附近,无中继器泛洪';
|
||||
|
||||
@override
|
||||
String get multihop => '多跳';
|
||||
|
||||
@override
|
||||
String get createProfile => '创建配置文件';
|
||||
|
||||
@override
|
||||
String get renameProfile => '重命名配置文件';
|
||||
|
||||
@override
|
||||
String get newProfile => '新配置文件';
|
||||
|
||||
@override
|
||||
String get manageProfiles => '管理配置文件';
|
||||
|
||||
@override
|
||||
String get enableProfilesToStartManagingThem => '启用配置文件以开始管理它们。';
|
||||
|
||||
@override
|
||||
String get openMessage => '打开消息';
|
||||
|
||||
@override
|
||||
String get jumpToTheRelatedSarMessage => '跳转到相关的 SAR 消息';
|
||||
|
||||
@override
|
||||
String get removeSarMarker => '移除 SAR 标记';
|
||||
|
||||
@override
|
||||
String get pleaseSelectADestinationToSendSarMarker => '请选择目标以发送 SAR 标记';
|
||||
|
||||
@override
|
||||
String get sarMarkerBroadcastToPublicChannel => 'SAR 标记已广播到公共频道';
|
||||
|
||||
@override
|
||||
String get sarMarkerSentToRoom => 'SAR 标记已发送到房间';
|
||||
|
||||
@override
|
||||
String get loadFromGallery => '从图库加载';
|
||||
|
||||
@override
|
||||
String get replaceImage => '替换图片';
|
||||
|
||||
@override
|
||||
String get selectFromGallery => '从图库选择';
|
||||
|
||||
@override
|
||||
String get team => '团队';
|
||||
|
||||
@override
|
||||
String get found => '已找到';
|
||||
|
||||
@override
|
||||
String get staging => '集结区';
|
||||
|
||||
@override
|
||||
String get object => '物体';
|
||||
|
||||
@override
|
||||
String get quiet => '安静';
|
||||
|
||||
@override
|
||||
String get moderate => '中等';
|
||||
|
||||
@override
|
||||
String get busy => '繁忙';
|
||||
|
||||
@override
|
||||
String get spectrumScanReturnedNoCandidateFrequencies => '频谱扫描未找到候选频率';
|
||||
|
||||
@override
|
||||
String get searchMessages => '搜索消息';
|
||||
|
||||
@override
|
||||
String get sendImageFromGallery => '从图库发送图片';
|
||||
|
||||
@override
|
||||
String get takePhoto => '拍照';
|
||||
|
||||
@override
|
||||
String get dmOnly => '仅私信';
|
||||
|
||||
@override
|
||||
String get allMessages => '所有消息';
|
||||
|
||||
@override
|
||||
String get sendToPublicChannel => '发送到公共频道?';
|
||||
|
||||
@override
|
||||
String get selectMarkerTypeAndDestination => '选择标记类型和目标';
|
||||
|
||||
@override
|
||||
String get noDestinationsAvailableLabel => '没有可用的目标';
|
||||
|
||||
@override
|
||||
String get image => '图片';
|
||||
|
||||
@override
|
||||
String get format => '格式';
|
||||
|
||||
@override
|
||||
String get dimensions => '尺寸';
|
||||
|
||||
@override
|
||||
String get segments => '分段';
|
||||
|
||||
@override
|
||||
String get transfers => '传输';
|
||||
|
||||
@override
|
||||
String get downloadedBy => '已下载';
|
||||
|
||||
@override
|
||||
String get saveDiscoverySettings => '保存发现设置';
|
||||
|
||||
@override
|
||||
String get savePublicInfo => '保存公共信息';
|
||||
|
||||
@override
|
||||
String get saveRadioSettings => '保存无线电设置';
|
||||
|
||||
@override
|
||||
String get savePath => '保存路径';
|
||||
|
||||
@override
|
||||
String get wipeDeviceData => '擦除设备数据';
|
||||
|
||||
@override
|
||||
String get wipeDevice => '擦除设备';
|
||||
|
||||
@override
|
||||
String get destructiveDeviceActions => '破坏性设备操作。';
|
||||
|
||||
@override
|
||||
String get chooseAPresetOrFinetuneCustomRadioSettings => '选择预设或微调自定义无线电设置。';
|
||||
|
||||
@override
|
||||
String get chooseTheNameAndLocationThisDeviceShares => '选择此设备共享的名称和位置。';
|
||||
|
||||
@override
|
||||
String get availableSpaceOnThisDevice => '此设备上的可用空间。';
|
||||
|
||||
@override
|
||||
String get used => '已使用';
|
||||
|
||||
@override
|
||||
String get total => '总计';
|
||||
|
||||
@override
|
||||
String get renameValue => '重命名值';
|
||||
|
||||
@override
|
||||
String get customizeFields => '自定义字段';
|
||||
|
||||
@override
|
||||
String get livePreview => '实时预览';
|
||||
|
||||
@override
|
||||
String get refreshSchedule => '刷新计划';
|
||||
|
||||
@override
|
||||
String get noResponse => '无响应';
|
||||
|
||||
@override
|
||||
String get refreshing => '刷新中';
|
||||
|
||||
@override
|
||||
String get unavailable => '不可用';
|
||||
|
||||
@override
|
||||
String get pickARelayOrNodeToWatchInSensors => '选择要在传感器中监视的中继或节点。';
|
||||
|
||||
@override
|
||||
String get publicKeyLabel => '公钥';
|
||||
|
||||
@override
|
||||
String get alreadyInContacts => '已在联系人中';
|
||||
|
||||
@override
|
||||
String get connectToADeviceBeforeAddingContacts => '添加联系人前请连接到设备';
|
||||
|
||||
@override
|
||||
String get fromContacts => '来自联系人';
|
||||
|
||||
@override
|
||||
String get onlineOnly => '仅在线';
|
||||
|
||||
@override
|
||||
String get inBoth => '两者中';
|
||||
|
||||
@override
|
||||
String get source => '来源';
|
||||
|
||||
@override
|
||||
String get manualRouteEdit => '手动路由编辑';
|
||||
|
||||
@override
|
||||
String get observedMeshRoute => '观察到的网格路由';
|
||||
|
||||
@override
|
||||
String get allMessagesCleared => '所有消息已清除';
|
||||
|
||||
@override
|
||||
String get onlineTraceDatabaseCleared => '在线追踪数据库已清除';
|
||||
|
||||
@override
|
||||
String get packetLogsCleared => '数据包日志已清除';
|
||||
|
||||
@override
|
||||
String get hexDataCopiedToClipboard => '十六进制数据已复制到剪贴板';
|
||||
|
||||
@override
|
||||
String get developerModeEnabled => '开发者模式已启用';
|
||||
|
||||
@override
|
||||
String get developerModeDisabled => '开发者模式已禁用';
|
||||
|
||||
@override
|
||||
String get clipboardIsEmpty => '剪贴板为空';
|
||||
|
||||
@override
|
||||
String get contactImported => '联系人已导入';
|
||||
|
||||
@override
|
||||
String get contactLinkCopiedToClipboard => '联系人链接已复制到剪贴板';
|
||||
|
||||
@override
|
||||
String get failedToExportContact => '导出联系人失败';
|
||||
|
||||
@override
|
||||
String get noLogsToExport => '没有日志可导出';
|
||||
|
||||
@override
|
||||
String get exportAsCsv => '导出为 CSV';
|
||||
|
||||
@override
|
||||
String get exportAsText => '导出为文本';
|
||||
|
||||
@override
|
||||
String get receivedRfc3339 => '收到 (RFC3339)';
|
||||
|
||||
@override
|
||||
String get buildTime => '构建时间';
|
||||
|
||||
@override
|
||||
String get downloadUrlNotAvailable => '下载链接不可用';
|
||||
|
||||
@override
|
||||
String get cannotOpenDownloadUrl => '无法打开下载链接';
|
||||
|
||||
@override
|
||||
String get updateCheckIsOnlyAvailableOnAndroid => '更新检查仅在 Android 上可用';
|
||||
|
||||
@override
|
||||
String get youAreRunningTheLatestVersion => '您正在使用最新版本';
|
||||
|
||||
@override
|
||||
String get updateAvailableButDownloadUrlNotFound => '有更新可用但未找到下载链接';
|
||||
|
||||
@override
|
||||
String get startTictactoe => '开始井字棋';
|
||||
|
||||
@override
|
||||
String get tictactoeUnavailable => '井字棋不可用';
|
||||
|
||||
@override
|
||||
String get tictactoeOpponentUnknown => '井字棋:对手未知';
|
||||
|
||||
@override
|
||||
String get tictactoeWaitingForStart => '井字棋:等待开始';
|
||||
|
||||
@override
|
||||
String get acceptsShareLinks => '接受分享链接';
|
||||
|
||||
@override
|
||||
String get supportsRawHex => '支持原始十六进制';
|
||||
|
||||
@override
|
||||
String get clipboardfriendly => '剪贴板友好';
|
||||
|
||||
@override
|
||||
String get captured => '已捕获';
|
||||
|
||||
@override
|
||||
String get size => '大小';
|
||||
|
||||
@override
|
||||
String get noCustomChannelsToClear => '没有自定义频道可清除。';
|
||||
|
||||
@override
|
||||
String get noDeviceContactsToClear => '没有设备联系人可清除。';
|
||||
}
|
||||
|
||||
@@ -2328,5 +2328,252 @@
|
||||
"contactFailedToClearRoute": "Nie udało się wyczyścić trasy: {error}",
|
||||
"contactRouteCleared": "Trasa wyczyszczona",
|
||||
"contactRouteSet": "Ustawiono trasę: {route}",
|
||||
"contactFailedToSetRoute": "Nie udało się ustawić trasy: {error}"
|
||||
"contactFailedToSetRoute": "Nie udało się ustawić trasy: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "Limit czasu ACK",
|
||||
"opcode": "Opcode",
|
||||
"payload": "Ładunek",
|
||||
"hops": "Skoki",
|
||||
"hashSize": "Rozmiar hash",
|
||||
"pathBytes": "Bajty ścieżki",
|
||||
"selectedPath": "Wybrana ścieżka",
|
||||
"estimatedTx": "Szacowane nadawanie",
|
||||
"senderToReceipt": "Od nadawcy do odbioru",
|
||||
"receivedCopies": "Otrzymane kopie",
|
||||
"retryCause": "Przyczyna ponowienia",
|
||||
"retryMode": "Tryb ponowienia",
|
||||
"retryResult": "Wynik ponowienia",
|
||||
"lastRetry": "Ostatnia próba",
|
||||
"rxPackets": "Pakiety RX",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Szybkość",
|
||||
"window": "Okno",
|
||||
"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",
|
||||
"clearScale": "Wyczyść skalę",
|
||||
"clearDiscoveries": "Wyczyść odkrycia",
|
||||
"clearOnlineTraceDatabase": "Wyczyść bazę śladów",
|
||||
"clearAllChannels": "Wyczyść wszystkie kanały",
|
||||
"clearAllContacts": "Wyczyść wszystkie kontakty",
|
||||
"clearChannels": "Wyczyść kanały",
|
||||
"clearContacts": "Wyczyść kontakty",
|
||||
"clearPathOnMaxRetry": "Wyczyść ścieżkę przy maks. próbie",
|
||||
"create": "Utwórz",
|
||||
"custom": "Niestandardowy",
|
||||
"defaultValue": "Domyślny",
|
||||
"duplicate": "Duplikuj",
|
||||
"editName": "Edytuj nazwę",
|
||||
"open": "Otwórz",
|
||||
"paste": "Wklej",
|
||||
"preview": "Podgląd",
|
||||
"remove": "Usuń",
|
||||
"rename": "Zmień nazwę",
|
||||
"resolveAll": "Rozwiąż wszystko",
|
||||
"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",
|
||||
"repeaterDiscoverySent": "Wykrywanie przekaźników wysłane",
|
||||
"sensorDiscoverySent": "Wykrywanie czujników wysłane",
|
||||
"clearedPendingDiscoveries": "Wyczyszczono oczekujące odkrycia.",
|
||||
"autoDiscovery": "Automatyczne wykrywanie",
|
||||
"enableAutomaticAdding": "Włącz automatyczne dodawanie",
|
||||
"autoaddRepeaters": "Automatycznie dodaj przekaźniki",
|
||||
"autoaddRoomServers": "Automatycznie dodaj serwery pokoi",
|
||||
"autoaddSensors": "Automatycznie dodaj czujniki",
|
||||
"autoaddUsers": "Automatycznie dodaj użytkowników",
|
||||
"overwriteOldestWhenFull": "Nadpisz najstarsze gdy pełne",
|
||||
"storage": "Pamięć",
|
||||
"dangerZone": "Strefa zagrożenia",
|
||||
"profiles": "Profile",
|
||||
"favourites": "Ulubione",
|
||||
"sensors": "Czujniki",
|
||||
"others": "Inne",
|
||||
"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",
|
||||
"messageNotifications": "Powiadomienia o wiadomościach",
|
||||
"sarAlerts": "Alerty SAR",
|
||||
"discoveryNotifications": "Powiadomienia o wykrywaniu",
|
||||
"updateNotifications": "Powiadomienia o aktualizacjach",
|
||||
"muteWhileAppIsOpen": "Wycisz gdy aplikacja jest otwarta",
|
||||
"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",
|
||||
"rotateMapWithHeading": "Obracaj mapę z kierunkiem",
|
||||
"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",
|
||||
"compressor": "Kompresor",
|
||||
"limiter": "Limiter",
|
||||
"autoGain": "Automatyczne wzmocnienie",
|
||||
"echoCancel": "Echo",
|
||||
"noiseSuppress": "Szum",
|
||||
"silenceTrim": "Cisza",
|
||||
"maxImageSize": "Maksymalny rozmiar obrazu",
|
||||
"imageCompression": "Kompresja obrazu",
|
||||
"grayscale": "Skala szarości",
|
||||
"ultraMode": "Tryb ultra",
|
||||
"fastPrivateGpsUpdates": "Szybkie prywatne aktualizacje GPS",
|
||||
"movementThreshold": "Próg ruchu",
|
||||
"fastGpsMovementThreshold": "Próg ruchu szybkiego GPS",
|
||||
"fastGpsActiveuseInterval": "Interwał aktywnego użycia szybkiego GPS",
|
||||
"activeuseUpdateInterval": "Interwał aktualizacji przy aktywnym użyciu",
|
||||
"repeatNearbyTraffic": "Powtarzaj pobliski ruch",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Przekazuj przez przekaźniki w sieci",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Tylko w pobliżu, bez zalewania przekaźników",
|
||||
"multihop": "Wieloskokowy",
|
||||
"createProfile": "Utwórz profil",
|
||||
"renameProfile": "Zmień nazwę profilu",
|
||||
"newProfile": "Nowy profil",
|
||||
"manageProfiles": "Zarządzaj profilami",
|
||||
"enableProfilesToStartManagingThem": "Włącz profile, aby zacząć nimi zarządzać.",
|
||||
"openMessage": "Otwórz wiadomość",
|
||||
"jumpToTheRelatedSarMessage": "Przejdź do powiązanej wiadomości SAR",
|
||||
"removeSarMarker": "Usuń znacznik SAR",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Wybierz cel wysłania znacznika SAR",
|
||||
"sarMarkerBroadcastToPublicChannel": "Znacznik SAR wysłany na kanał publiczny",
|
||||
"sarMarkerSentToRoom": "Znacznik SAR wysłany do pokoju",
|
||||
"loadFromGallery": "Załaduj z galerii",
|
||||
"replaceImage": "Zamień obraz",
|
||||
"selectFromGallery": "Wybierz z galerii",
|
||||
"team": "Zespół",
|
||||
"found": "Znaleziono",
|
||||
"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",
|
||||
"noDestinationsAvailableLabel": "Brak dostępnych celów",
|
||||
"image": "Obraz",
|
||||
"format": "Format",
|
||||
"dimensions": "Wymiary",
|
||||
"segments": "Segmenty",
|
||||
"transfers": "Transfery",
|
||||
"downloadedBy": "Pobrane przez",
|
||||
"saveDiscoverySettings": "Zapisz ustawienia wykrywania",
|
||||
"savePublicInfo": "Zapisz informacje publiczne",
|
||||
"saveRadioSettings": "Zapisz ustawienia radia",
|
||||
"savePath": "Zapisz ścieżkę",
|
||||
"wipeDeviceData": "Wyczyść dane urządzenia",
|
||||
"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",
|
||||
"customizeFields": "Dostosuj pola",
|
||||
"livePreview": "Podgląd na żywo",
|
||||
"refreshSchedule": "Harmonogram odświeżania",
|
||||
"noResponse": "Brak odpowiedzi",
|
||||
"refreshing": "Odświeżanie",
|
||||
"unavailable": "Niedostępny",
|
||||
"pickARelayOrNodeToWatchInSensors": "Wybierz przekaźnik lub węzeł do obserwacji.",
|
||||
"publicKeyLabel": "Klucz publiczny",
|
||||
"alreadyInContacts": "Już w kontaktach",
|
||||
"connectToADeviceBeforeAddingContacts": "Połącz się z urządzeniem przed dodaniem kontaktów",
|
||||
"fromContacts": "Z kontaktów",
|
||||
"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",
|
||||
"hexDataCopiedToClipboard": "Dane hex skopiowane do schowka",
|
||||
"developerModeEnabled": "Tryb programisty włączony",
|
||||
"developerModeDisabled": "Tryb programisty wyłączony",
|
||||
"clipboardIsEmpty": "Schowek jest pusty",
|
||||
"contactImported": "Kontakt zaimportowany",
|
||||
"contactLinkCopiedToClipboard": "Link kontaktu skopiowany do schowka",
|
||||
"failedToExportContact": "Nie udało się wyeksportować kontaktu",
|
||||
"noLogsToExport": "Brak logów do eksportu",
|
||||
"exportAsCsv": "Eksportuj jako CSV",
|
||||
"exportAsText": "Eksportuj jako tekst",
|
||||
"receivedRfc3339": "Odebrano (RFC3339)",
|
||||
"buildTime": "Czas budowania",
|
||||
"downloadUrlNotAvailable": "URL pobierania niedostępny",
|
||||
"cannotOpenDownloadUrl": "Nie można otworzyć URL pobierania",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "Sprawdzanie aktualizacji dostępne tylko na Androidzie",
|
||||
"youAreRunningTheLatestVersion": "Używasz najnowszej wersji",
|
||||
"updateAvailableButDownloadUrlNotFound": "Aktualizacja dostępna, ale URL pobierania nie znaleziony",
|
||||
"startTictactoe": "Rozpocznij Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe niedostępny",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: przeciwnik nieznany",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: oczekiwanie na start",
|
||||
"acceptsShareLinks": "Akceptuje udostępnione linki",
|
||||
"supportsRawHex": "Obsługuje surowy hex",
|
||||
"clipboardfriendly": "Przyjazne dla schowka",
|
||||
"captured": "Przechwycone",
|
||||
"size": "Rozmiar",
|
||||
"noCustomChannelsToClear": "Brak niestandardowych kanałów do wyczyszczenia.",
|
||||
"noDeviceContactsToClear": "Brak kontaktów urządzenia do wyczyszczenia."
|
||||
}
|
||||
|
||||
@@ -2328,5 +2328,252 @@
|
||||
"contactFailedToClearRoute": "Falha ao limpar a rota: {error}",
|
||||
"contactRouteCleared": "Rota limpa",
|
||||
"contactRouteSet": "Rota definida: {route}",
|
||||
"contactFailedToSetRoute": "Falha ao definir a rota: {error}"
|
||||
"contactFailedToSetRoute": "Falha ao definir a rota: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "Tempo limite ACK",
|
||||
"opcode": "Opcode",
|
||||
"payload": "Carga útil",
|
||||
"hops": "Saltos",
|
||||
"hashSize": "Tamanho do hash",
|
||||
"pathBytes": "Bytes do caminho",
|
||||
"selectedPath": "Caminho selecionado",
|
||||
"estimatedTx": "Transmissão estimada",
|
||||
"senderToReceipt": "Do remetente ao recibo",
|
||||
"receivedCopies": "Cópias recebidas",
|
||||
"retryCause": "Causa da nova tentativa",
|
||||
"retryMode": "Modo de nova tentativa",
|
||||
"retryResult": "Resultado da nova tentativa",
|
||||
"lastRetry": "Última tentativa",
|
||||
"rxPackets": "Pacotes RX",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Taxa",
|
||||
"window": "Janela",
|
||||
"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",
|
||||
"clearScale": "Limpar escala",
|
||||
"clearDiscoveries": "Limpar descobertas",
|
||||
"clearOnlineTraceDatabase": "Limpar base de dados de rastreio",
|
||||
"clearAllChannels": "Limpar todos os canais",
|
||||
"clearAllContacts": "Limpar todos os contactos",
|
||||
"clearChannels": "Limpar canais",
|
||||
"clearContacts": "Limpar contactos",
|
||||
"clearPathOnMaxRetry": "Limpar caminho no máx. de tentativas",
|
||||
"create": "Criar",
|
||||
"custom": "Personalizado",
|
||||
"defaultValue": "Padrão",
|
||||
"duplicate": "Duplicar",
|
||||
"editName": "Editar nome",
|
||||
"open": "Abrir",
|
||||
"paste": "Colar",
|
||||
"preview": "Pré-visualização",
|
||||
"remove": "Remover",
|
||||
"rename": "Renomear",
|
||||
"resolveAll": "Resolver tudo",
|
||||
"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",
|
||||
"repeaterDiscoverySent": "Descoberta de repetidores enviada",
|
||||
"sensorDiscoverySent": "Descoberta de sensores enviada",
|
||||
"clearedPendingDiscoveries": "Descobertas pendentes limpas.",
|
||||
"autoDiscovery": "Descoberta automática",
|
||||
"enableAutomaticAdding": "Ativar adição automática",
|
||||
"autoaddRepeaters": "Adicionar repetidores automaticamente",
|
||||
"autoaddRoomServers": "Adicionar servidores de sala automaticamente",
|
||||
"autoaddSensors": "Adicionar sensores automaticamente",
|
||||
"autoaddUsers": "Adicionar utilizadores automaticamente",
|
||||
"overwriteOldestWhenFull": "Sobrescrever mais antigos quando cheio",
|
||||
"storage": "Armazenamento",
|
||||
"dangerZone": "Zona de perigo",
|
||||
"profiles": "Perfis",
|
||||
"favourites": "Favoritos",
|
||||
"sensors": "Sensores",
|
||||
"others": "Outros",
|
||||
"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",
|
||||
"messageNotifications": "Notificações de mensagens",
|
||||
"sarAlerts": "Alertas SAR",
|
||||
"discoveryNotifications": "Notificações de descoberta",
|
||||
"updateNotifications": "Notificações de atualização",
|
||||
"muteWhileAppIsOpen": "Silenciar com a app aberta",
|
||||
"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",
|
||||
"rotateMapWithHeading": "Rodar mapa com direção",
|
||||
"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",
|
||||
"compressor": "Compressor",
|
||||
"limiter": "Limitador",
|
||||
"autoGain": "Ganho automático",
|
||||
"echoCancel": "Eco",
|
||||
"noiseSuppress": "Ruído",
|
||||
"silenceTrim": "Silêncio",
|
||||
"maxImageSize": "Tamanho máximo de imagem",
|
||||
"imageCompression": "Compressão de imagem",
|
||||
"grayscale": "Escala de cinzentos",
|
||||
"ultraMode": "Modo ultra",
|
||||
"fastPrivateGpsUpdates": "Atualizações GPS privadas rápidas",
|
||||
"movementThreshold": "Limiar de movimento",
|
||||
"fastGpsMovementThreshold": "Limiar de movimento GPS rápido",
|
||||
"fastGpsActiveuseInterval": "Intervalo de uso ativo GPS rápido",
|
||||
"activeuseUpdateInterval": "Intervalo de atualização de uso ativo",
|
||||
"repeatNearbyTraffic": "Repetir tráfego próximo",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Retransmitir através de repetidores na rede",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Apenas próximos, sem flood de repetidores",
|
||||
"multihop": "Multi-salto",
|
||||
"createProfile": "Criar perfil",
|
||||
"renameProfile": "Renomear perfil",
|
||||
"newProfile": "Novo perfil",
|
||||
"manageProfiles": "Gerir perfis",
|
||||
"enableProfilesToStartManagingThem": "Ative os perfis para começar a geri-los.",
|
||||
"openMessage": "Abrir mensagem",
|
||||
"jumpToTheRelatedSarMessage": "Ir para a mensagem SAR relacionada",
|
||||
"removeSarMarker": "Remover marcador SAR",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Selecione um destino para enviar o marcador SAR",
|
||||
"sarMarkerBroadcastToPublicChannel": "Marcador SAR transmitido no canal público",
|
||||
"sarMarkerSentToRoom": "Marcador SAR enviado para a sala",
|
||||
"loadFromGallery": "Carregar da galeria",
|
||||
"replaceImage": "Substituir imagem",
|
||||
"selectFromGallery": "Selecionar da galeria",
|
||||
"team": "Equipa",
|
||||
"found": "Encontrado",
|
||||
"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",
|
||||
"noDestinationsAvailableLabel": "Nenhum destino disponível",
|
||||
"image": "Imagem",
|
||||
"format": "Formato",
|
||||
"dimensions": "Dimensões",
|
||||
"segments": "Segmentos",
|
||||
"transfers": "Transferências",
|
||||
"downloadedBy": "Transferido por",
|
||||
"saveDiscoverySettings": "Guardar definições de descoberta",
|
||||
"savePublicInfo": "Guardar informação pública",
|
||||
"saveRadioSettings": "Guardar definições de rádio",
|
||||
"savePath": "Guardar caminho",
|
||||
"wipeDeviceData": "Apagar dados do dispositivo",
|
||||
"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",
|
||||
"customizeFields": "Personalizar campos",
|
||||
"livePreview": "Pré-visualização ao vivo",
|
||||
"refreshSchedule": "Agenda de atualização",
|
||||
"noResponse": "Sem resposta",
|
||||
"refreshing": "A atualizar",
|
||||
"unavailable": "Indisponível",
|
||||
"pickARelayOrNodeToWatchInSensors": "Escolha um relay ou nó para observar.",
|
||||
"publicKeyLabel": "Chave pública",
|
||||
"alreadyInContacts": "Já nos contactos",
|
||||
"connectToADeviceBeforeAddingContacts": "Conecte-se a um dispositivo antes de adicionar contactos",
|
||||
"fromContacts": "Dos contactos",
|
||||
"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",
|
||||
"hexDataCopiedToClipboard": "Dados hex copiados para a área de transferência",
|
||||
"developerModeEnabled": "Modo de programador ativado",
|
||||
"developerModeDisabled": "Modo de programador desativado",
|
||||
"clipboardIsEmpty": "A área de transferência está vazia",
|
||||
"contactImported": "Contacto importado",
|
||||
"contactLinkCopiedToClipboard": "Link do contacto copiado para a área de transferência",
|
||||
"failedToExportContact": "Falha ao exportar contacto",
|
||||
"noLogsToExport": "Sem registos para exportar",
|
||||
"exportAsCsv": "Exportar como CSV",
|
||||
"exportAsText": "Exportar como texto",
|
||||
"receivedRfc3339": "Recebido (RFC3339)",
|
||||
"buildTime": "Hora de compilação",
|
||||
"downloadUrlNotAvailable": "URL de download não disponível",
|
||||
"cannotOpenDownloadUrl": "Não é possível abrir o URL de download",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "A verificação de atualizações só está disponível no Android",
|
||||
"youAreRunningTheLatestVersion": "Está a usar a versão mais recente",
|
||||
"updateAvailableButDownloadUrlNotFound": "Atualização disponível mas URL de download não encontrado",
|
||||
"startTictactoe": "Iniciar Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe indisponível",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: oponente desconhecido",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: a aguardar início",
|
||||
"acceptsShareLinks": "Aceita links partilhados",
|
||||
"supportsRawHex": "Suporta hex bruto",
|
||||
"clipboardfriendly": "Compatível com a área de transferência",
|
||||
"captured": "Capturado",
|
||||
"size": "Tamanho",
|
||||
"noCustomChannelsToClear": "Sem canais personalizados para limpar.",
|
||||
"noDeviceContactsToClear": "Sem contactos do dispositivo para limpar."
|
||||
}
|
||||
|
||||
@@ -563,5 +563,252 @@
|
||||
"contactFailedToClearRoute": "Не удалось очистить маршрут: {error}",
|
||||
"contactRouteCleared": "Маршрут очищен",
|
||||
"contactRouteSet": "Маршрут задан: {route}",
|
||||
"contactFailedToSetRoute": "Не удалось задать маршрут: {error}"
|
||||
"contactFailedToSetRoute": "Не удалось задать маршрут: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "Таймаут ACK",
|
||||
"opcode": "Опкод",
|
||||
"payload": "Полезная нагрузка",
|
||||
"hops": "Хопы",
|
||||
"hashSize": "Размер хеша",
|
||||
"pathBytes": "Байты пути",
|
||||
"selectedPath": "Выбранный путь",
|
||||
"estimatedTx": "Ожидаемая передача",
|
||||
"senderToReceipt": "От отправителя до получения",
|
||||
"receivedCopies": "Полученные копии",
|
||||
"retryCause": "Причина повтора",
|
||||
"retryMode": "Режим повтора",
|
||||
"retryResult": "Результат повтора",
|
||||
"lastRetry": "Последний повтор",
|
||||
"rxPackets": "RX-пакеты",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Скорость",
|
||||
"window": "Окно",
|
||||
"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": "Очистить сообщения",
|
||||
"clearScale": "Очистить масштаб",
|
||||
"clearDiscoveries": "Очистить обнаружения",
|
||||
"clearOnlineTraceDatabase": "Очистить базу трассировок",
|
||||
"clearAllChannels": "Очистить все каналы",
|
||||
"clearAllContacts": "Очистить все контакты",
|
||||
"clearChannels": "Очистить каналы",
|
||||
"clearContacts": "Очистить контакты",
|
||||
"clearPathOnMaxRetry": "Очистить путь при макс. повторе",
|
||||
"create": "Создать",
|
||||
"custom": "Пользовательский",
|
||||
"defaultValue": "По умолчанию",
|
||||
"duplicate": "Дублировать",
|
||||
"editName": "Редактировать имя",
|
||||
"open": "Открыть",
|
||||
"paste": "Вставить",
|
||||
"preview": "Предпросмотр",
|
||||
"remove": "Удалить",
|
||||
"rename": "Переименовать",
|
||||
"resolveAll": "Разрешить все",
|
||||
"send": "Отправить",
|
||||
"sendAnyway": "Отправить все равно",
|
||||
"share": "Поделиться",
|
||||
"shareContact": "Поделиться контактом",
|
||||
"trace": "Трассировка",
|
||||
"use": "Использовать",
|
||||
"useSelectedFrequency": "Использовать выбранную частоту",
|
||||
"discovery": "Обнаружение",
|
||||
"discoverRepeaters": "Обнаружить повторители",
|
||||
"discoverSensors": "Обнаружить датчики",
|
||||
"repeaterDiscoverySent": "Обнаружение повторителей отправлено",
|
||||
"sensorDiscoverySent": "Обнаружение датчиков отправлено",
|
||||
"clearedPendingDiscoveries": "Ожидающие обнаружения очищены.",
|
||||
"autoDiscovery": "Автоматическое обнаружение",
|
||||
"enableAutomaticAdding": "Включить автоматическое добавление",
|
||||
"autoaddRepeaters": "Автодобавление повторителей",
|
||||
"autoaddRoomServers": "Автодобавление серверов комнат",
|
||||
"autoaddSensors": "Автодобавление датчиков",
|
||||
"autoaddUsers": "Автодобавление пользователей",
|
||||
"overwriteOldestWhenFull": "Перезаписать старейшие при заполнении",
|
||||
"storage": "Хранилище",
|
||||
"dangerZone": "Опасная зона",
|
||||
"profiles": "Профили",
|
||||
"favourites": "Избранное",
|
||||
"sensors": "Датчики",
|
||||
"others": "Другие",
|
||||
"gpsModule": "Модуль GPS",
|
||||
"liveTraffic": "Живой трафик",
|
||||
"repeatersMap": "Карта повторителей",
|
||||
"spectrumScan": "Сканирование спектра",
|
||||
"blePacketLogs": "Журналы BLE-пакетов",
|
||||
"onlineTraceDatabase": "База трассировок",
|
||||
"routePathByteSize": "Размер пути в байтах",
|
||||
"messageNotifications": "Уведомления о сообщениях",
|
||||
"sarAlerts": "SAR-оповещения",
|
||||
"discoveryNotifications": "Уведомления об обнаружении",
|
||||
"updateNotifications": "Уведомления об обновлениях",
|
||||
"muteWhileAppIsOpen": "Без звука при открытом приложении",
|
||||
"disableContacts": "Отключить контакты",
|
||||
"enableSensorsTab": "Включить вкладку Датчики",
|
||||
"enableProfiles": "Включить профили",
|
||||
"autoRouteRotation": "Автоматическая ротация маршрута",
|
||||
"nearestRepeaterFallback": "Ближайший повторитель как резерв",
|
||||
"deleteAllStoredMessageHistory": "Удалить всю историю сообщений",
|
||||
"messageFontSize": "Размер шрифта сообщений",
|
||||
"rotateMapWithHeading": "Вращать карту по направлению",
|
||||
"showMapDebugInfo": "Показать отладочную информацию карты",
|
||||
"openMapInFullscreen": "Открыть карту на весь экран",
|
||||
"showSarMarkersLabel": "Показать SAR-маркеры",
|
||||
"displaySarMarkersOnTheMainMap": "Отображать SAR-маркеры на основной карте",
|
||||
"showAllContactTrailsLabel": "Показать все следы контактов",
|
||||
"hideRepeatersOnMap": "Скрыть повторители на карте",
|
||||
"setMapScale": "Установить масштаб карты",
|
||||
"customMapScaleSaved": "Пользовательский масштаб карты сохранён",
|
||||
"voiceBitrate": "Битрейт голоса",
|
||||
"voiceCompressor": "Компрессор голоса",
|
||||
"balancesQuietAndLoudSpeechLevels": "Выравнивает тихую и громкую речь",
|
||||
"voiceLimiter": "Лимитер голоса",
|
||||
"preventsClippingPeaksBeforeEncoding": "Предотвращает обрезку пиков перед кодированием",
|
||||
"micAutoGain": "Автоусиление микрофона",
|
||||
"letsTheRecorderAdjustInputLevel": "Позволяет рекордеру регулировать уровень входа",
|
||||
"echoCancellation": "Подавление эха",
|
||||
"noiseSuppression": "Подавление шума",
|
||||
"trimSilenceInVoiceMessages": "Обрезать тишину в голосовых сообщениях",
|
||||
"compressor": "Компрессор",
|
||||
"limiter": "Лимитер",
|
||||
"autoGain": "Автоусиление",
|
||||
"echoCancel": "Эхо",
|
||||
"noiseSuppress": "Шум",
|
||||
"silenceTrim": "Тишина",
|
||||
"maxImageSize": "Максимальный размер изображения",
|
||||
"imageCompression": "Сжатие изображения",
|
||||
"grayscale": "Оттенки серого",
|
||||
"ultraMode": "Режим ультра",
|
||||
"fastPrivateGpsUpdates": "Быстрые приватные GPS-обновления",
|
||||
"movementThreshold": "Порог движения",
|
||||
"fastGpsMovementThreshold": "Порог движения быстрого GPS",
|
||||
"fastGpsActiveuseInterval": "Интервал активного использования быстрого GPS",
|
||||
"activeuseUpdateInterval": "Интервал обновления при активном использовании",
|
||||
"repeatNearbyTraffic": "Повторять ближний трафик",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Ретранслировать через повторители по сети",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Только рядом, без flood повторителей",
|
||||
"multihop": "Многохоповый",
|
||||
"createProfile": "Создать профиль",
|
||||
"renameProfile": "Переименовать профиль",
|
||||
"newProfile": "Новый профиль",
|
||||
"manageProfiles": "Управление профилями",
|
||||
"enableProfilesToStartManagingThem": "Включите профили, чтобы начать управлять ими.",
|
||||
"openMessage": "Открыть сообщение",
|
||||
"jumpToTheRelatedSarMessage": "Перейти к связанному SAR-сообщению",
|
||||
"removeSarMarker": "Удалить SAR-маркер",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Выберите назначение для отправки SAR-маркера",
|
||||
"sarMarkerBroadcastToPublicChannel": "SAR-маркер отправлен в публичный канал",
|
||||
"sarMarkerSentToRoom": "SAR-маркер отправлен в комнату",
|
||||
"loadFromGallery": "Загрузить из галереи",
|
||||
"replaceImage": "Заменить изображение",
|
||||
"selectFromGallery": "Выбрать из галереи",
|
||||
"team": "Команда",
|
||||
"found": "Найдено",
|
||||
"staging": "Место сбора",
|
||||
"object": "Объект",
|
||||
"quiet": "Тихо",
|
||||
"moderate": "Умеренно",
|
||||
"busy": "Занято",
|
||||
"spectrumScanReturnedNoCandidateFrequencies": "Сканирование спектра не нашло частот-кандидатов",
|
||||
"searchMessages": "Поиск сообщений",
|
||||
"sendImageFromGallery": "Отправить изображение из галереи",
|
||||
"takePhoto": "Сделать фото",
|
||||
"dmOnly": "Только личные сообщения",
|
||||
"allMessages": "Все сообщения",
|
||||
"sendToPublicChannel": "Отправить в публичный канал?",
|
||||
"selectMarkerTypeAndDestination": "Выберите тип маркера и назначение",
|
||||
"noDestinationsAvailableLabel": "Нет доступных назначений",
|
||||
"image": "Изображение",
|
||||
"format": "Формат",
|
||||
"dimensions": "Размеры",
|
||||
"segments": "Сегменты",
|
||||
"transfers": "Передачи",
|
||||
"downloadedBy": "Загружено",
|
||||
"saveDiscoverySettings": "Сохранить настройки обнаружения",
|
||||
"savePublicInfo": "Сохранить публичную информацию",
|
||||
"saveRadioSettings": "Сохранить настройки радио",
|
||||
"savePath": "Сохранить путь",
|
||||
"wipeDeviceData": "Стереть данные устройства",
|
||||
"wipeDevice": "Стереть устройство",
|
||||
"destructiveDeviceActions": "Деструктивные действия устройства.",
|
||||
"chooseAPresetOrFinetuneCustomRadioSettings": "Выберите пресет или настройте радио вручную.",
|
||||
"chooseTheNameAndLocationThisDeviceShares": "Выберите имя и местоположение, которыми делится устройство.",
|
||||
"availableSpaceOnThisDevice": "Доступное место на этом устройстве.",
|
||||
"used": "Использовано",
|
||||
"total": "Всего",
|
||||
"renameValue": "Переименовать значение",
|
||||
"customizeFields": "Настроить поля",
|
||||
"livePreview": "Предпросмотр в реальном времени",
|
||||
"refreshSchedule": "Расписание обновления",
|
||||
"noResponse": "Нет ответа",
|
||||
"refreshing": "Обновление",
|
||||
"unavailable": "Недоступно",
|
||||
"pickARelayOrNodeToWatchInSensors": "Выберите реле или узел для наблюдения.",
|
||||
"publicKeyLabel": "Публичный ключ",
|
||||
"alreadyInContacts": "Уже в контактах",
|
||||
"connectToADeviceBeforeAddingContacts": "Подключитесь к устройству перед добавлением контактов",
|
||||
"fromContacts": "Из контактов",
|
||||
"onlineOnly": "Только онлайн",
|
||||
"inBoth": "В обоих",
|
||||
"source": "Источник",
|
||||
"manualRouteEdit": "Ручное редактирование маршрута",
|
||||
"observedMeshRoute": "Наблюдаемый mesh-маршрут",
|
||||
"allMessagesCleared": "Все сообщения очищены",
|
||||
"onlineTraceDatabaseCleared": "База трассировок очищена",
|
||||
"packetLogsCleared": "Журналы пакетов очищены",
|
||||
"hexDataCopiedToClipboard": "Hex-данные скопированы в буфер",
|
||||
"developerModeEnabled": "Режим разработчика включён",
|
||||
"developerModeDisabled": "Режим разработчика отключён",
|
||||
"clipboardIsEmpty": "Буфер обмена пуст",
|
||||
"contactImported": "Контакт импортирован",
|
||||
"contactLinkCopiedToClipboard": "Ссылка на контакт скопирована в буфер",
|
||||
"failedToExportContact": "Не удалось экспортировать контакт",
|
||||
"noLogsToExport": "Нет журналов для экспорта",
|
||||
"exportAsCsv": "Экспортировать как CSV",
|
||||
"exportAsText": "Экспортировать как текст",
|
||||
"receivedRfc3339": "Получено (RFC3339)",
|
||||
"buildTime": "Время сборки",
|
||||
"downloadUrlNotAvailable": "URL загрузки недоступен",
|
||||
"cannotOpenDownloadUrl": "Не удаётся открыть URL загрузки",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "Проверка обновлений доступна только на Android",
|
||||
"youAreRunningTheLatestVersion": "Вы используете последнюю версию",
|
||||
"updateAvailableButDownloadUrlNotFound": "Обновление доступно, но URL загрузки не найден",
|
||||
"startTictactoe": "Начать Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe недоступно",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: противник неизвестен",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: ожидание начала",
|
||||
"acceptsShareLinks": "Принимает общие ссылки",
|
||||
"supportsRawHex": "Поддерживает raw hex",
|
||||
"clipboardfriendly": "Удобно для буфера",
|
||||
"captured": "Захвачено",
|
||||
"size": "Размер",
|
||||
"noCustomChannelsToClear": "Нет пользовательских каналов для очистки.",
|
||||
"noDeviceContactsToClear": "Нет контактов устройства для очистки."
|
||||
}
|
||||
|
||||
@@ -511,8 +511,7 @@
|
||||
"rawDump": "Surovi izpis",
|
||||
"cannotRetryMissingRecipient": "Ponovnega pošiljanja ni mogoče: informacije o prejemniku manjkajo",
|
||||
"voiceUnavailable": "Glas trenutno ni na voljo",
|
||||
"requestingVoice": "Zahteva za glasom"
|
||||
,
|
||||
"requestingVoice": "Zahteva za glasom",
|
||||
"device": "naprava",
|
||||
"change": "Spremeni",
|
||||
"wizardOverviewDescription": "Ta aplikacija združuje sporočanje MeshCore, terenske SAR posodobitve, zemljevide in orodja za napravo na enem mestu.",
|
||||
@@ -564,5 +563,252 @@
|
||||
"contactFailedToClearRoute": "Brisanje poti ni uspelo: {error}",
|
||||
"contactRouteCleared": "Pot izbrisana",
|
||||
"contactRouteSet": "Pot nastavljena: {route}",
|
||||
"contactFailedToSetRoute": "Nastavitev poti ni uspela: {error}"
|
||||
"contactFailedToSetRoute": "Nastavitev poti ni uspela: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "Časovna omejitev ACK",
|
||||
"opcode": "Opkoda",
|
||||
"payload": "Vsebina",
|
||||
"hops": "Skoki",
|
||||
"hashSize": "Velikost zgoščevalne vrednosti",
|
||||
"pathBytes": "Bajti poti",
|
||||
"selectedPath": "Izbrana pot",
|
||||
"estimatedTx": "Ocenjeni čas oddaje",
|
||||
"senderToReceipt": "Od pošiljatelja do prejema",
|
||||
"receivedCopies": "Prejete kopije",
|
||||
"retryCause": "Razlog ponovitve",
|
||||
"retryMode": "Način ponovitve",
|
||||
"retryResult": "Rezultat ponovitve",
|
||||
"lastRetry": "Zadnja ponovitev",
|
||||
"rxPackets": "RX paketi",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Hitrost",
|
||||
"window": "Okno",
|
||||
"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",
|
||||
"clearScale": "Počisti merilo",
|
||||
"clearDiscoveries": "Počisti odkritja",
|
||||
"clearOnlineTraceDatabase": "Počisti bazo sledi",
|
||||
"clearAllChannels": "Počisti vse kanale",
|
||||
"clearAllContacts": "Počisti vse stike",
|
||||
"clearChannels": "Počisti kanale",
|
||||
"clearContacts": "Počisti stike",
|
||||
"clearPathOnMaxRetry": "Počisti pot ob maks. ponovitvi",
|
||||
"create": "Ustvari",
|
||||
"custom": "Po meri",
|
||||
"defaultValue": "Privzeto",
|
||||
"duplicate": "Podvoji",
|
||||
"editName": "Uredi ime",
|
||||
"open": "Odpri",
|
||||
"paste": "Prilepi",
|
||||
"preview": "Predogled",
|
||||
"remove": "Odstrani",
|
||||
"rename": "Preimenuj",
|
||||
"resolveAll": "Razreši vse",
|
||||
"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",
|
||||
"repeaterDiscoverySent": "Odkrivanje posrednikov poslano",
|
||||
"sensorDiscoverySent": "Odkrivanje senzorjev poslano",
|
||||
"clearedPendingDiscoveries": "Čakalna odkritja počiščena.",
|
||||
"autoDiscovery": "Samodejno odkrivanje",
|
||||
"enableAutomaticAdding": "Omogoči samodejno dodajanje",
|
||||
"autoaddRepeaters": "Samodejno dodaj posrednike",
|
||||
"autoaddRoomServers": "Samodejno dodaj strežnike sob",
|
||||
"autoaddSensors": "Samodejno dodaj senzorje",
|
||||
"autoaddUsers": "Samodejno dodaj uporabnike",
|
||||
"overwriteOldestWhenFull": "Prepiši najstarejše ob polnem",
|
||||
"storage": "Shramba",
|
||||
"dangerZone": "Nevarno območje",
|
||||
"profiles": "Profili",
|
||||
"favourites": "Priljubljeni",
|
||||
"sensors": "Senzorji",
|
||||
"others": "Ostali",
|
||||
"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",
|
||||
"messageNotifications": "Obvestila o sporočilih",
|
||||
"sarAlerts": "SAR opozorila",
|
||||
"discoveryNotifications": "Obvestila o odkritjih",
|
||||
"updateNotifications": "Obvestila o posodobitvah",
|
||||
"muteWhileAppIsOpen": "Utišaj ko je aplikacija odprta",
|
||||
"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",
|
||||
"rotateMapWithHeading": "Vrti zemljevid s smerjo",
|
||||
"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",
|
||||
"compressor": "Kompresor",
|
||||
"limiter": "Omejevalnik",
|
||||
"autoGain": "Samodejna ojačitev",
|
||||
"echoCancel": "Odmev",
|
||||
"noiseSuppress": "Šum",
|
||||
"silenceTrim": "Tišina",
|
||||
"maxImageSize": "Največja velikost slike",
|
||||
"imageCompression": "Stiskanje slik",
|
||||
"grayscale": "Sivine",
|
||||
"ultraMode": "Ultra način",
|
||||
"fastPrivateGpsUpdates": "Hitri zasebni GPS podatki",
|
||||
"movementThreshold": "Prag gibanja",
|
||||
"fastGpsMovementThreshold": "Prag gibanja za hitri GPS",
|
||||
"fastGpsActiveuseInterval": "Interval uporabe hitrega GPS-a",
|
||||
"activeuseUpdateInterval": "Interval posodobitve pri aktivni uporabi",
|
||||
"repeatNearbyTraffic": "Ponavljaj bližnji promet",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Posreduj skozi posrednike po mreži",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Samo bližnji, brez poplavljanja posrednikov",
|
||||
"multihop": "Večskočno",
|
||||
"createProfile": "Ustvari profil",
|
||||
"renameProfile": "Preimenuj profil",
|
||||
"newProfile": "Nov profil",
|
||||
"manageProfiles": "Upravljaj profile",
|
||||
"enableProfilesToStartManagingThem": "Omogočite profile, da jih začnete upravljati.",
|
||||
"openMessage": "Odpri sporočilo",
|
||||
"jumpToTheRelatedSarMessage": "Skoči na povezano SAR sporočilo",
|
||||
"removeSarMarker": "Odstrani SAR oznako",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Izberite cilj za pošiljanje SAR oznake",
|
||||
"sarMarkerBroadcastToPublicChannel": "SAR oznaka poslana na javni kanal",
|
||||
"sarMarkerSentToRoom": "SAR oznaka poslana v sobo",
|
||||
"loadFromGallery": "Naloži iz galerije",
|
||||
"replaceImage": "Zamenjaj sliko",
|
||||
"selectFromGallery": "Izberi iz galerije",
|
||||
"team": "Ekipa",
|
||||
"found": "Najdeno",
|
||||
"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",
|
||||
"noDestinationsAvailableLabel": "Ni razpoložljivih ciljev",
|
||||
"image": "Slika",
|
||||
"format": "Format",
|
||||
"dimensions": "Dimenzije",
|
||||
"segments": "Segmenti",
|
||||
"transfers": "Prenosi",
|
||||
"downloadedBy": "Preneseno od",
|
||||
"saveDiscoverySettings": "Shrani nastavitve odkrivanja",
|
||||
"savePublicInfo": "Shrani javne podatke",
|
||||
"saveRadioSettings": "Shrani radijske nastavitve",
|
||||
"savePath": "Shrani pot",
|
||||
"wipeDeviceData": "Izbriši podatke naprave",
|
||||
"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",
|
||||
"customizeFields": "Prilagodi polja",
|
||||
"livePreview": "Predogled v živo",
|
||||
"refreshSchedule": "Interval osvežitve",
|
||||
"noResponse": "Ni odgovora",
|
||||
"refreshing": "Osvežujem",
|
||||
"unavailable": "Nedostopno",
|
||||
"pickARelayOrNodeToWatchInSensors": "Izberite posrednika ali vozlišče za opazovanje.",
|
||||
"publicKeyLabel": "Javni ključ",
|
||||
"alreadyInContacts": "Že med stiki",
|
||||
"connectToADeviceBeforeAddingContacts": "Povežite se z napravo pred dodajanjem stikov",
|
||||
"fromContacts": "Iz stikov",
|
||||
"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",
|
||||
"hexDataCopiedToClipboard": "Hex podatki kopirani v odložišče",
|
||||
"developerModeEnabled": "Razvojni način omogočen",
|
||||
"developerModeDisabled": "Razvojni način onemogočen",
|
||||
"clipboardIsEmpty": "Odložišče je prazno",
|
||||
"contactImported": "Stik uvožen",
|
||||
"contactLinkCopiedToClipboard": "Povezava na stik kopirana v odložišče",
|
||||
"failedToExportContact": "Izvoz stika ni uspel",
|
||||
"noLogsToExport": "Ni dnevnikov za izvoz",
|
||||
"exportAsCsv": "Izvozi kot CSV",
|
||||
"exportAsText": "Izvozi kot besedilo",
|
||||
"receivedRfc3339": "Prejeto (RFC3339)",
|
||||
"buildTime": "Čas gradnje",
|
||||
"downloadUrlNotAvailable": "URL za prenos ni na voljo",
|
||||
"cannotOpenDownloadUrl": "URL za prenos ni mogoče odpreti",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "Preverjanje posodobitev je na voljo le na Androidu",
|
||||
"youAreRunningTheLatestVersion": "Uporabljate najnovejšo različico",
|
||||
"updateAvailableButDownloadUrlNotFound": "Posodobitev na voljo, a URL za prenos ni najden",
|
||||
"startTictactoe": "Začni Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe ni na voljo",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: nasprotnik neznan",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: čakanje na začetek",
|
||||
"acceptsShareLinks": "Sprejema deljene povezave",
|
||||
"supportsRawHex": "Podpira surove hex",
|
||||
"clipboardfriendly": "Primerno za odložišče",
|
||||
"captured": "Zajeto",
|
||||
"size": "Velikost",
|
||||
"noCustomChannelsToClear": "Ni prilagojenih kanalov za brisanje.",
|
||||
"noDeviceContactsToClear": "Ni stikov naprave za brisanje."
|
||||
}
|
||||
|
||||
@@ -2328,5 +2328,252 @@
|
||||
"contactFailedToClearRoute": "Rota temizlenemedi: {error}",
|
||||
"contactRouteCleared": "Rota temizlendi",
|
||||
"contactRouteSet": "Rota ayarlandı: {route}",
|
||||
"contactFailedToSetRoute": "Rota ayarlanamadı: {error}"
|
||||
"contactFailedToSetRoute": "Rota ayarlanamadı: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "ACK zaman aşımı",
|
||||
"opcode": "Opcode",
|
||||
"payload": "Yük",
|
||||
"hops": "Atlama",
|
||||
"hashSize": "Hash boyutu",
|
||||
"pathBytes": "Yol baytları",
|
||||
"selectedPath": "Seçilen yol",
|
||||
"estimatedTx": "Tahmini gönderim",
|
||||
"senderToReceipt": "Gönderenden alındıya",
|
||||
"receivedCopies": "Alınan kopyalar",
|
||||
"retryCause": "Yeniden deneme nedeni",
|
||||
"retryMode": "Yeniden deneme modu",
|
||||
"retryResult": "Yeniden deneme sonucu",
|
||||
"lastRetry": "Son deneme",
|
||||
"rxPackets": "RX paketleri",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Hız",
|
||||
"window": "Pencere",
|
||||
"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",
|
||||
"clearScale": "Ölçeği temizle",
|
||||
"clearDiscoveries": "Keşifleri temizle",
|
||||
"clearOnlineTraceDatabase": "Çevrimiçi iz veritabanını temizle",
|
||||
"clearAllChannels": "Tüm kanalları temizle",
|
||||
"clearAllContacts": "Tüm kişileri temizle",
|
||||
"clearChannels": "Kanalları temizle",
|
||||
"clearContacts": "Kişileri temizle",
|
||||
"clearPathOnMaxRetry": "Maks denemede yolu temizle",
|
||||
"create": "Oluştur",
|
||||
"custom": "Özel",
|
||||
"defaultValue": "Varsayılan",
|
||||
"duplicate": "Çoğalt",
|
||||
"editName": "Adı düzenle",
|
||||
"open": "Aç",
|
||||
"paste": "Yapıştır",
|
||||
"preview": "Önizleme",
|
||||
"remove": "Kaldır",
|
||||
"rename": "Yeniden adlandır",
|
||||
"resolveAll": "Tümünü çöz",
|
||||
"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",
|
||||
"repeaterDiscoverySent": "Tekrarlayıcı keşfi gönderildi",
|
||||
"sensorDiscoverySent": "Sensör keşfi gönderildi",
|
||||
"clearedPendingDiscoveries": "Bekleyen keşifler temizlendi.",
|
||||
"autoDiscovery": "Otomatik keşif",
|
||||
"enableAutomaticAdding": "Otomatik eklemeyi etkinleştir",
|
||||
"autoaddRepeaters": "Tekrarlayıcıları otomatik ekle",
|
||||
"autoaddRoomServers": "Oda sunucularını otomatik ekle",
|
||||
"autoaddSensors": "Sensörleri otomatik ekle",
|
||||
"autoaddUsers": "Kullanıcıları otomatik ekle",
|
||||
"overwriteOldestWhenFull": "Dolduğunda en eskiyi üzerine yaz",
|
||||
"storage": "Depolama",
|
||||
"dangerZone": "Tehlikeli bölge",
|
||||
"profiles": "Profiller",
|
||||
"favourites": "Favoriler",
|
||||
"sensors": "Sensörler",
|
||||
"others": "Diğerleri",
|
||||
"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",
|
||||
"messageNotifications": "Mesaj bildirimleri",
|
||||
"sarAlerts": "SAR uyarıları",
|
||||
"discoveryNotifications": "Keşif bildirimleri",
|
||||
"updateNotifications": "Güncelleme bildirimleri",
|
||||
"muteWhileAppIsOpen": "Uygulama açıkken sessize al",
|
||||
"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",
|
||||
"rotateMapWithHeading": "Haritayı yön ile döndür",
|
||||
"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",
|
||||
"compressor": "Sıkıştırıcı",
|
||||
"limiter": "Sınırlayıcı",
|
||||
"autoGain": "Otomatik kazanç",
|
||||
"echoCancel": "Yankı",
|
||||
"noiseSuppress": "Gürültü",
|
||||
"silenceTrim": "Sessizlik",
|
||||
"maxImageSize": "Maksimum resim boyutu",
|
||||
"imageCompression": "Resim sıkıştırma",
|
||||
"grayscale": "Gri tonlama",
|
||||
"ultraMode": "Ultra mod",
|
||||
"fastPrivateGpsUpdates": "Hızlı özel GPS güncellemeleri",
|
||||
"movementThreshold": "Hareket eşiği",
|
||||
"fastGpsMovementThreshold": "Hızlı GPS hareket eşiği",
|
||||
"fastGpsActiveuseInterval": "Hızlı GPS aktif kullanım aralığı",
|
||||
"activeuseUpdateInterval": "Aktif kullanım güncelleme aralığı",
|
||||
"repeatNearbyTraffic": "Yakın trafiği tekrarla",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Ağ üzerindeki tekrarlayıcılar aracılığıyla ilet",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Yalnızca yakın, tekrarlayıcı taşkını olmadan",
|
||||
"multihop": "Çok atlamalı",
|
||||
"createProfile": "Profil oluştur",
|
||||
"renameProfile": "Profili yeniden adlandır",
|
||||
"newProfile": "Yeni profil",
|
||||
"manageProfiles": "Profilleri yönet",
|
||||
"enableProfilesToStartManagingThem": "Profilleri yönetmeye başlamak için etkinleştirin.",
|
||||
"openMessage": "Mesajı aç",
|
||||
"jumpToTheRelatedSarMessage": "İlgili SAR mesajına git",
|
||||
"removeSarMarker": "SAR işaretçisini kaldır",
|
||||
"pleaseSelectADestinationToSendSarMarker": "SAR işaretçisi göndermek için bir hedef seçin",
|
||||
"sarMarkerBroadcastToPublicChannel": "SAR işaretçisi genel kanala yayınlandı",
|
||||
"sarMarkerSentToRoom": "SAR işaretçisi odaya gönderildi",
|
||||
"loadFromGallery": "Galeriden yükle",
|
||||
"replaceImage": "Resmi değiştir",
|
||||
"selectFromGallery": "Galeriden seç",
|
||||
"team": "Takım",
|
||||
"found": "Bulundu",
|
||||
"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",
|
||||
"noDestinationsAvailableLabel": "Kullanılabilir hedef yok",
|
||||
"image": "Resim",
|
||||
"format": "Biçim",
|
||||
"dimensions": "Boyutlar",
|
||||
"segments": "Segmentler",
|
||||
"transfers": "Transferler",
|
||||
"downloadedBy": "İndiren",
|
||||
"saveDiscoverySettings": "Keşif ayarlarını kaydet",
|
||||
"savePublicInfo": "Genel bilgileri kaydet",
|
||||
"saveRadioSettings": "Radyo ayarlarını kaydet",
|
||||
"savePath": "Yolu kaydet",
|
||||
"wipeDeviceData": "Cihaz verilerini sil",
|
||||
"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",
|
||||
"customizeFields": "Alanları özelleştir",
|
||||
"livePreview": "Canlı önizleme",
|
||||
"refreshSchedule": "Yenileme programı",
|
||||
"noResponse": "Yanıt yok",
|
||||
"refreshing": "Yenileniyor",
|
||||
"unavailable": "Kullanılamaz",
|
||||
"pickARelayOrNodeToWatchInSensors": "İzlemek için bir röle veya düğüm seçin.",
|
||||
"publicKeyLabel": "Genel anahtar",
|
||||
"alreadyInContacts": "Zaten kişilerde",
|
||||
"connectToADeviceBeforeAddingContacts": "Kişi eklemeden önce bir cihaza bağlanın",
|
||||
"fromContacts": "Kişilerden",
|
||||
"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",
|
||||
"hexDataCopiedToClipboard": "Hex verisi panoya kopyalandı",
|
||||
"developerModeEnabled": "Geliştirici modu etkinleştirildi",
|
||||
"developerModeDisabled": "Geliştirici modu devre dışı bırakıldı",
|
||||
"clipboardIsEmpty": "Pano boş",
|
||||
"contactImported": "Kişi içe aktarıldı",
|
||||
"contactLinkCopiedToClipboard": "Kişi bağlantısı panoya kopyalandı",
|
||||
"failedToExportContact": "Kişi dışa aktarılamadı",
|
||||
"noLogsToExport": "Dışa aktarılacak günlük yok",
|
||||
"exportAsCsv": "CSV olarak dışa aktar",
|
||||
"exportAsText": "Metin olarak dışa aktar",
|
||||
"receivedRfc3339": "Alındı (RFC3339)",
|
||||
"buildTime": "Derleme zamanı",
|
||||
"downloadUrlNotAvailable": "İndirme URL'si mevcut değil",
|
||||
"cannotOpenDownloadUrl": "İndirme URL'si açılamıyor",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "Güncelleme kontrolü yalnızca Android'de kullanılabilir",
|
||||
"youAreRunningTheLatestVersion": "En son sürümü kullanıyorsunuz",
|
||||
"updateAvailableButDownloadUrlNotFound": "Güncelleme mevcut ancak indirme URL'si bulunamadı",
|
||||
"startTictactoe": "Tic-Tac-Toe başlat",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe kullanılamıyor",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: rakip bilinmiyor",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: başlangıç bekleniyor",
|
||||
"acceptsShareLinks": "Paylaşım bağlantılarını kabul eder",
|
||||
"supportsRawHex": "Ham hex destekler",
|
||||
"clipboardfriendly": "Pano dostu",
|
||||
"captured": "Yakalandı",
|
||||
"size": "Boyut",
|
||||
"noCustomChannelsToClear": "Temizlenecek özel kanal yok.",
|
||||
"noDeviceContactsToClear": "Temizlenecek cihaz kişisi yok."
|
||||
}
|
||||
|
||||
@@ -2328,5 +2328,252 @@
|
||||
"contactFailedToClearRoute": "Не вдалося очистити маршрут: {error}",
|
||||
"contactRouteCleared": "Маршрут очищено",
|
||||
"contactRouteSet": "Маршрут задано: {route}",
|
||||
"contactFailedToSetRoute": "Не вдалося задати маршрут: {error}"
|
||||
"contactFailedToSetRoute": "Не вдалося задати маршрут: {error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "Тайм-аут ACK",
|
||||
"opcode": "Опкод",
|
||||
"payload": "Корисне навантаження",
|
||||
"hops": "Хопи",
|
||||
"hashSize": "Розмір хешу",
|
||||
"pathBytes": "Байти шляху",
|
||||
"selectedPath": "Обраний шлях",
|
||||
"estimatedTx": "Очікувана передача",
|
||||
"senderToReceipt": "Від відправника до отримання",
|
||||
"receivedCopies": "Отримані копії",
|
||||
"retryCause": "Причина повтору",
|
||||
"retryMode": "Режим повтору",
|
||||
"retryResult": "Результат повтору",
|
||||
"lastRetry": "Остання спроба",
|
||||
"rxPackets": "RX-пакети",
|
||||
"mesh": "Mesh",
|
||||
"rate": "Швидкість",
|
||||
"window": "Вікно",
|
||||
"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": "Очистити повідомлення",
|
||||
"clearScale": "Очистити масштаб",
|
||||
"clearDiscoveries": "Очистити виявлення",
|
||||
"clearOnlineTraceDatabase": "Очистити базу трасувань",
|
||||
"clearAllChannels": "Очистити всі канали",
|
||||
"clearAllContacts": "Очистити всі контакти",
|
||||
"clearChannels": "Очистити канали",
|
||||
"clearContacts": "Очистити контакти",
|
||||
"clearPathOnMaxRetry": "Очистити шлях при макс. спробі",
|
||||
"create": "Створити",
|
||||
"custom": "Користувацький",
|
||||
"defaultValue": "За замовчуванням",
|
||||
"duplicate": "Дублювати",
|
||||
"editName": "Редагувати ім'я",
|
||||
"open": "Відкрити",
|
||||
"paste": "Вставити",
|
||||
"preview": "Попередній перегляд",
|
||||
"remove": "Видалити",
|
||||
"rename": "Перейменувати",
|
||||
"resolveAll": "Вирішити все",
|
||||
"send": "Надіслати",
|
||||
"sendAnyway": "Надіслати все одно",
|
||||
"share": "Поділитися",
|
||||
"shareContact": "Поділитися контактом",
|
||||
"trace": "Трасування",
|
||||
"use": "Використати",
|
||||
"useSelectedFrequency": "Використати обрану частоту",
|
||||
"discovery": "Виявлення",
|
||||
"discoverRepeaters": "Виявити повторювачі",
|
||||
"discoverSensors": "Виявити датчики",
|
||||
"repeaterDiscoverySent": "Виявлення повторювачів надіслано",
|
||||
"sensorDiscoverySent": "Виявлення датчиків надіслано",
|
||||
"clearedPendingDiscoveries": "Очікувані виявлення очищено.",
|
||||
"autoDiscovery": "Автоматичне виявлення",
|
||||
"enableAutomaticAdding": "Увімкнути автоматичне додавання",
|
||||
"autoaddRepeaters": "Автододавання повторювачів",
|
||||
"autoaddRoomServers": "Автододавання серверів кімнат",
|
||||
"autoaddSensors": "Автододавання датчиків",
|
||||
"autoaddUsers": "Автододавання користувачів",
|
||||
"overwriteOldestWhenFull": "Перезаписати найстаріші при заповненні",
|
||||
"storage": "Сховище",
|
||||
"dangerZone": "Небезпечна зона",
|
||||
"profiles": "Профілі",
|
||||
"favourites": "Обране",
|
||||
"sensors": "Датчики",
|
||||
"others": "Інші",
|
||||
"gpsModule": "Модуль GPS",
|
||||
"liveTraffic": "Живий трафік",
|
||||
"repeatersMap": "Карта повторювачів",
|
||||
"spectrumScan": "Сканування спектру",
|
||||
"blePacketLogs": "Журнали BLE-пакетів",
|
||||
"onlineTraceDatabase": "База трасувань",
|
||||
"routePathByteSize": "Розмір шляху в байтах",
|
||||
"messageNotifications": "Сповіщення про повідомлення",
|
||||
"sarAlerts": "SAR-сповіщення",
|
||||
"discoveryNotifications": "Сповіщення про виявлення",
|
||||
"updateNotifications": "Сповіщення про оновлення",
|
||||
"muteWhileAppIsOpen": "Без звуку при відкритому додатку",
|
||||
"disableContacts": "Вимкнути контакти",
|
||||
"enableSensorsTab": "Увімкнути вкладку Датчики",
|
||||
"enableProfiles": "Увімкнути профілі",
|
||||
"autoRouteRotation": "Автоматична ротація маршруту",
|
||||
"nearestRepeaterFallback": "Найближчий повторювач як резерв",
|
||||
"deleteAllStoredMessageHistory": "Видалити всю історію повідомлень",
|
||||
"messageFontSize": "Розмір шрифту повідомлень",
|
||||
"rotateMapWithHeading": "Обертати карту за напрямком",
|
||||
"showMapDebugInfo": "Показати налагоджувальну інфо карти",
|
||||
"openMapInFullscreen": "Відкрити карту на повний екран",
|
||||
"showSarMarkersLabel": "Показати SAR-маркери",
|
||||
"displaySarMarkersOnTheMainMap": "Показувати SAR-маркери на головній карті",
|
||||
"showAllContactTrailsLabel": "Показати всі сліди контактів",
|
||||
"hideRepeatersOnMap": "Сховати повторювачі на карті",
|
||||
"setMapScale": "Встановити масштаб карти",
|
||||
"customMapScaleSaved": "Користувацький масштаб карти збережено",
|
||||
"voiceBitrate": "Бітрейт голосу",
|
||||
"voiceCompressor": "Компресор голосу",
|
||||
"balancesQuietAndLoudSpeechLevels": "Вирівнює тихий і гучний рівні мови",
|
||||
"voiceLimiter": "Лімітер голосу",
|
||||
"preventsClippingPeaksBeforeEncoding": "Запобігає обрізанню піків перед кодуванням",
|
||||
"micAutoGain": "Автопідсилення мікрофона",
|
||||
"letsTheRecorderAdjustInputLevel": "Дозволяє рекордеру налаштувати рівень входу",
|
||||
"echoCancellation": "Придушення ехо",
|
||||
"noiseSuppression": "Придушення шуму",
|
||||
"trimSilenceInVoiceMessages": "Обрізати тишу в голосових повідомленнях",
|
||||
"compressor": "Компресор",
|
||||
"limiter": "Лімітер",
|
||||
"autoGain": "Автопідсилення",
|
||||
"echoCancel": "Ехо",
|
||||
"noiseSuppress": "Шум",
|
||||
"silenceTrim": "Тиша",
|
||||
"maxImageSize": "Максимальний розмір зображення",
|
||||
"imageCompression": "Стиснення зображення",
|
||||
"grayscale": "Відтінки сірого",
|
||||
"ultraMode": "Ультра режим",
|
||||
"fastPrivateGpsUpdates": "Швидкі приватні GPS-оновлення",
|
||||
"movementThreshold": "Поріг руху",
|
||||
"fastGpsMovementThreshold": "Поріг руху швидкого GPS",
|
||||
"fastGpsActiveuseInterval": "Інтервал активного використання швидкого GPS",
|
||||
"activeuseUpdateInterval": "Інтервал оновлення при активному використанні",
|
||||
"repeatNearbyTraffic": "Повторювати близький трафік",
|
||||
"relayThroughRepeatersAcrossTheMesh": "Ретранслювати через повторювачі по мережі",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "Лише поблизу, без flood повторювачів",
|
||||
"multihop": "Багатохоповий",
|
||||
"createProfile": "Створити профіль",
|
||||
"renameProfile": "Перейменувати профіль",
|
||||
"newProfile": "Новий профіль",
|
||||
"manageProfiles": "Керувати профілями",
|
||||
"enableProfilesToStartManagingThem": "Увімкніть профілі, щоб почати керувати ними.",
|
||||
"openMessage": "Відкрити повідомлення",
|
||||
"jumpToTheRelatedSarMessage": "Перейти до пов'язаного SAR-повідомлення",
|
||||
"removeSarMarker": "Видалити SAR-маркер",
|
||||
"pleaseSelectADestinationToSendSarMarker": "Виберіть призначення для надсилання SAR-маркера",
|
||||
"sarMarkerBroadcastToPublicChannel": "SAR-маркер надіслано на публічний канал",
|
||||
"sarMarkerSentToRoom": "SAR-маркер надіслано в кімнату",
|
||||
"loadFromGallery": "Завантажити з галереї",
|
||||
"replaceImage": "Замінити зображення",
|
||||
"selectFromGallery": "Вибрати з галереї",
|
||||
"team": "Команда",
|
||||
"found": "Знайдено",
|
||||
"staging": "Місце збору",
|
||||
"object": "Об'єкт",
|
||||
"quiet": "Тихо",
|
||||
"moderate": "Помірно",
|
||||
"busy": "Зайнято",
|
||||
"spectrumScanReturnedNoCandidateFrequencies": "Сканування спектру не знайшло частот-кандидатів",
|
||||
"searchMessages": "Пошук повідомлень",
|
||||
"sendImageFromGallery": "Надіслати зображення з галереї",
|
||||
"takePhoto": "Зробити фото",
|
||||
"dmOnly": "Лише особисті повідомлення",
|
||||
"allMessages": "Усі повідомлення",
|
||||
"sendToPublicChannel": "Надіслати в публічний канал?",
|
||||
"selectMarkerTypeAndDestination": "Виберіть тип маркера та призначення",
|
||||
"noDestinationsAvailableLabel": "Немає доступних призначень",
|
||||
"image": "Зображення",
|
||||
"format": "Формат",
|
||||
"dimensions": "Розміри",
|
||||
"segments": "Сегменти",
|
||||
"transfers": "Передачі",
|
||||
"downloadedBy": "Завантажено",
|
||||
"saveDiscoverySettings": "Зберегти налаштування виявлення",
|
||||
"savePublicInfo": "Зберегти публічну інформацію",
|
||||
"saveRadioSettings": "Зберегти налаштування радіо",
|
||||
"savePath": "Зберегти шлях",
|
||||
"wipeDeviceData": "Стерти дані пристрою",
|
||||
"wipeDevice": "Стерти пристрій",
|
||||
"destructiveDeviceActions": "Деструктивні дії пристрою.",
|
||||
"chooseAPresetOrFinetuneCustomRadioSettings": "Оберіть пресет або налаштуйте радіо вручну.",
|
||||
"chooseTheNameAndLocationThisDeviceShares": "Оберіть ім'я та місцеположення, якими ділиться пристрій.",
|
||||
"availableSpaceOnThisDevice": "Доступний простір на цьому пристрої.",
|
||||
"used": "Використано",
|
||||
"total": "Загалом",
|
||||
"renameValue": "Перейменувати значення",
|
||||
"customizeFields": "Налаштувати поля",
|
||||
"livePreview": "Попередній перегляд наживо",
|
||||
"refreshSchedule": "Розклад оновлення",
|
||||
"noResponse": "Немає відповіді",
|
||||
"refreshing": "Оновлення",
|
||||
"unavailable": "Недоступно",
|
||||
"pickARelayOrNodeToWatchInSensors": "Оберіть реле або вузол для спостереження.",
|
||||
"publicKeyLabel": "Публічний ключ",
|
||||
"alreadyInContacts": "Вже в контактах",
|
||||
"connectToADeviceBeforeAddingContacts": "Підключіться до пристрою перед додаванням контактів",
|
||||
"fromContacts": "З контактів",
|
||||
"onlineOnly": "Лише онлайн",
|
||||
"inBoth": "В обох",
|
||||
"source": "Джерело",
|
||||
"manualRouteEdit": "Ручне редагування маршруту",
|
||||
"observedMeshRoute": "Спостережуваний mesh-маршрут",
|
||||
"allMessagesCleared": "Усі повідомлення очищено",
|
||||
"onlineTraceDatabaseCleared": "Базу трасувань очищено",
|
||||
"packetLogsCleared": "Журнали пакетів очищено",
|
||||
"hexDataCopiedToClipboard": "Hex-дані скопійовано в буфер",
|
||||
"developerModeEnabled": "Режим розробника увімкнено",
|
||||
"developerModeDisabled": "Режим розробника вимкнено",
|
||||
"clipboardIsEmpty": "Буфер обміну порожній",
|
||||
"contactImported": "Контакт імпортовано",
|
||||
"contactLinkCopiedToClipboard": "Посилання на контакт скопійовано в буфер",
|
||||
"failedToExportContact": "Не вдалося експортувати контакт",
|
||||
"noLogsToExport": "Немає журналів для експорту",
|
||||
"exportAsCsv": "Експортувати як CSV",
|
||||
"exportAsText": "Експортувати як текст",
|
||||
"receivedRfc3339": "Отримано (RFC3339)",
|
||||
"buildTime": "Час збірки",
|
||||
"downloadUrlNotAvailable": "URL завантаження недоступний",
|
||||
"cannotOpenDownloadUrl": "Не вдається відкрити URL завантаження",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "Перевірка оновлень доступна лише на Android",
|
||||
"youAreRunningTheLatestVersion": "Ви використовуєте останню версію",
|
||||
"updateAvailableButDownloadUrlNotFound": "Оновлення доступне, але URL завантаження не знайдено",
|
||||
"startTictactoe": "Почати Tic-Tac-Toe",
|
||||
"tictactoeUnavailable": "Tic-Tac-Toe недоступно",
|
||||
"tictactoeOpponentUnknown": "Tic-Tac-Toe: суперник невідомий",
|
||||
"tictactoeWaitingForStart": "Tic-Tac-Toe: очікування початку",
|
||||
"acceptsShareLinks": "Приймає посилання для обміну",
|
||||
"supportsRawHex": "Підтримує raw hex",
|
||||
"clipboardfriendly": "Зручно для буфера",
|
||||
"captured": "Захоплено",
|
||||
"size": "Розмір",
|
||||
"noCustomChannelsToClear": "Немає користувацьких каналів для очищення.",
|
||||
"noDeviceContactsToClear": "Немає контактів пристрою для очищення."
|
||||
}
|
||||
|
||||
@@ -2228,80 +2228,55 @@
|
||||
"description": "没有可发送的聊天联系人时的消息"
|
||||
},
|
||||
"reply": "回复",
|
||||
"@reply": {
|
||||
},
|
||||
"@reply": {},
|
||||
"technicalDetails": "技术细节",
|
||||
"@technicalDetails": {
|
||||
},
|
||||
"@technicalDetails": {},
|
||||
"messageTechnicalDetails": "消息技术细节",
|
||||
"@messageTechnicalDetails": {
|
||||
},
|
||||
"@messageTechnicalDetails": {},
|
||||
"linkQuality": "链路质量",
|
||||
"@linkQuality": {
|
||||
},
|
||||
"@linkQuality": {},
|
||||
"delivery": "投递",
|
||||
"@delivery": {
|
||||
},
|
||||
"@delivery": {},
|
||||
"status": "状态",
|
||||
"@status": {
|
||||
},
|
||||
"@status": {},
|
||||
"expectedAckTag": "预期的 ACK 标签",
|
||||
"@expectedAckTag": {
|
||||
},
|
||||
"@expectedAckTag": {},
|
||||
"roundTrip": "往返时间",
|
||||
"@roundTrip": {
|
||||
},
|
||||
"@roundTrip": {},
|
||||
"retryAttempt": "重试尝试",
|
||||
"@retryAttempt": {
|
||||
},
|
||||
"@retryAttempt": {},
|
||||
"floodFallback": "泛洪回退",
|
||||
"@floodFallback": {
|
||||
},
|
||||
"@floodFallback": {},
|
||||
"identity": "身份",
|
||||
"@identity": {
|
||||
},
|
||||
"@identity": {},
|
||||
"messageId": "消息 ID",
|
||||
"@messageId": {
|
||||
},
|
||||
"@messageId": {},
|
||||
"sender": "发送者",
|
||||
"@sender": {
|
||||
},
|
||||
"@sender": {},
|
||||
"senderKey": "发送者密钥",
|
||||
"@senderKey": {
|
||||
},
|
||||
"@senderKey": {},
|
||||
"recipient": "接收者",
|
||||
"@recipient": {
|
||||
},
|
||||
"@recipient": {},
|
||||
"recipientKey": "接收者密钥",
|
||||
"@recipientKey": {
|
||||
},
|
||||
"@recipientKey": {},
|
||||
"voice": "语音",
|
||||
"@voice": {
|
||||
},
|
||||
"@voice": {},
|
||||
"voiceId": "语音 ID",
|
||||
"@voiceId": {
|
||||
},
|
||||
"@voiceId": {},
|
||||
"envelope": "信封",
|
||||
"@envelope": {
|
||||
},
|
||||
"@envelope": {},
|
||||
"sessionProgress": "会话进度",
|
||||
"@sessionProgress": {
|
||||
},
|
||||
"@sessionProgress": {},
|
||||
"complete": "完成",
|
||||
"@complete": {
|
||||
},
|
||||
"@complete": {},
|
||||
"rawDump": "原始数据",
|
||||
"@rawDump": {
|
||||
},
|
||||
"@rawDump": {},
|
||||
"cannotRetryMissingRecipient": "无法重试:缺少接收者信息",
|
||||
"@cannotRetryMissingRecipient": {
|
||||
},
|
||||
"@cannotRetryMissingRecipient": {},
|
||||
"voiceUnavailable": "当前语音不可用",
|
||||
"@voiceUnavailable": {
|
||||
},
|
||||
"@voiceUnavailable": {},
|
||||
"requestingVoice": "正在请求语音",
|
||||
"@requestingVoice": {
|
||||
},
|
||||
"@requestingVoice": {},
|
||||
"device": "设备",
|
||||
"change": "更改",
|
||||
"wizardOverviewDescription": "此应用将 MeshCore 消息、SAR 现场更新、地图功能和设备工具整合到同一处。",
|
||||
@@ -2353,5 +2328,252 @@
|
||||
"contactFailedToClearRoute": "清除路由失败:{error}",
|
||||
"contactRouteCleared": "路由已清除",
|
||||
"contactRouteSet": "路由已设置:{route}",
|
||||
"contactFailedToSetRoute": "设置路由失败:{error}"
|
||||
"contactFailedToSetRoute": "设置路由失败:{error}",
|
||||
"rssi": "RSSI",
|
||||
"snr": "SNR",
|
||||
"ackTimeout": "ACK 超时",
|
||||
"opcode": "操作码",
|
||||
"payload": "有效载荷",
|
||||
"hops": "跳数",
|
||||
"hashSize": "哈希大小",
|
||||
"pathBytes": "路径字节",
|
||||
"selectedPath": "选定路径",
|
||||
"estimatedTx": "预计传输",
|
||||
"senderToReceipt": "发送到接收",
|
||||
"receivedCopies": "收到的副本",
|
||||
"retryCause": "重试原因",
|
||||
"retryMode": "重试模式",
|
||||
"retryResult": "重试结果",
|
||||
"lastRetry": "最后重试",
|
||||
"rxPackets": "RX 数据包",
|
||||
"mesh": "Mesh",
|
||||
"rate": "速率",
|
||||
"window": "窗口",
|
||||
"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": "清除消息",
|
||||
"clearScale": "清除比例",
|
||||
"clearDiscoveries": "清除发现",
|
||||
"clearOnlineTraceDatabase": "清除在线追踪数据库",
|
||||
"clearAllChannels": "清除所有频道",
|
||||
"clearAllContacts": "清除所有联系人",
|
||||
"clearChannels": "清除频道",
|
||||
"clearContacts": "清除联系人",
|
||||
"clearPathOnMaxRetry": "最大重试时清除路径",
|
||||
"create": "创建",
|
||||
"custom": "自定义",
|
||||
"defaultValue": "默认",
|
||||
"duplicate": "复制",
|
||||
"editName": "编辑名称",
|
||||
"open": "打开",
|
||||
"paste": "粘贴",
|
||||
"preview": "预览",
|
||||
"remove": "移除",
|
||||
"rename": "重命名",
|
||||
"resolveAll": "解析全部",
|
||||
"send": "发送",
|
||||
"sendAnyway": "仍然发送",
|
||||
"share": "分享",
|
||||
"shareContact": "分享联系人",
|
||||
"trace": "追踪",
|
||||
"use": "使用",
|
||||
"useSelectedFrequency": "使用选定频率",
|
||||
"discovery": "发现",
|
||||
"discoverRepeaters": "发现中继器",
|
||||
"discoverSensors": "发现传感器",
|
||||
"repeaterDiscoverySent": "中继器发现已发送",
|
||||
"sensorDiscoverySent": "传感器发现已发送",
|
||||
"clearedPendingDiscoveries": "已清除待处理的发现。",
|
||||
"autoDiscovery": "自动发现",
|
||||
"enableAutomaticAdding": "启用自动添加",
|
||||
"autoaddRepeaters": "自动添加中继器",
|
||||
"autoaddRoomServers": "自动添加房间服务器",
|
||||
"autoaddSensors": "自动添加传感器",
|
||||
"autoaddUsers": "自动添加用户",
|
||||
"overwriteOldestWhenFull": "满时覆盖最旧的",
|
||||
"storage": "存储",
|
||||
"dangerZone": "危险区域",
|
||||
"profiles": "配置文件",
|
||||
"favourites": "收藏夹",
|
||||
"sensors": "传感器",
|
||||
"others": "其他",
|
||||
"gpsModule": "GPS 模块",
|
||||
"liveTraffic": "实时流量",
|
||||
"repeatersMap": "中继器地图",
|
||||
"spectrumScan": "频谱扫描",
|
||||
"blePacketLogs": "BLE 数据包日志",
|
||||
"onlineTraceDatabase": "在线追踪数据库",
|
||||
"routePathByteSize": "路由路径字节大小",
|
||||
"messageNotifications": "消息通知",
|
||||
"sarAlerts": "SAR 警报",
|
||||
"discoveryNotifications": "发现通知",
|
||||
"updateNotifications": "更新通知",
|
||||
"muteWhileAppIsOpen": "应用打开时静音",
|
||||
"disableContacts": "禁用联系人",
|
||||
"enableSensorsTab": "启用传感器标签",
|
||||
"enableProfiles": "启用配置文件",
|
||||
"autoRouteRotation": "自动路由轮换",
|
||||
"nearestRepeaterFallback": "最近中继器回退",
|
||||
"deleteAllStoredMessageHistory": "删除所有存储的消息历史",
|
||||
"messageFontSize": "消息字体大小",
|
||||
"rotateMapWithHeading": "随航向旋转地图",
|
||||
"showMapDebugInfo": "显示地图调试信息",
|
||||
"openMapInFullscreen": "全屏打开地图",
|
||||
"showSarMarkersLabel": "显示 SAR 标记",
|
||||
"displaySarMarkersOnTheMainMap": "在主地图上显示 SAR 标记",
|
||||
"showAllContactTrailsLabel": "显示所有联系人轨迹",
|
||||
"hideRepeatersOnMap": "在地图上隐藏中继器",
|
||||
"setMapScale": "设置地图比例",
|
||||
"customMapScaleSaved": "自定义地图比例已保存",
|
||||
"voiceBitrate": "语音比特率",
|
||||
"voiceCompressor": "语音压缩器",
|
||||
"balancesQuietAndLoudSpeechLevels": "平衡安静和响亮的语音级别",
|
||||
"voiceLimiter": "语音限制器",
|
||||
"preventsClippingPeaksBeforeEncoding": "防止编码前的削波",
|
||||
"micAutoGain": "麦克风自动增益",
|
||||
"letsTheRecorderAdjustInputLevel": "让录音器调整输入级别",
|
||||
"echoCancellation": "回声消除",
|
||||
"noiseSuppression": "噪音抑制",
|
||||
"trimSilenceInVoiceMessages": "修剪语音消息中的静音",
|
||||
"compressor": "压缩器",
|
||||
"limiter": "限制器",
|
||||
"autoGain": "自动增益",
|
||||
"echoCancel": "回声",
|
||||
"noiseSuppress": "噪声",
|
||||
"silenceTrim": "静音",
|
||||
"maxImageSize": "最大图片大小",
|
||||
"imageCompression": "图片压缩",
|
||||
"grayscale": "灰度",
|
||||
"ultraMode": "超级模式",
|
||||
"fastPrivateGpsUpdates": "快速私有 GPS 更新",
|
||||
"movementThreshold": "移动阈值",
|
||||
"fastGpsMovementThreshold": "快速 GPS 移动阈值",
|
||||
"fastGpsActiveuseInterval": "快速 GPS 活动使用间隔",
|
||||
"activeuseUpdateInterval": "活动使用更新间隔",
|
||||
"repeatNearbyTraffic": "转发附近流量",
|
||||
"relayThroughRepeatersAcrossTheMesh": "通过网格中的中继器转发",
|
||||
"nearbyOnlyWithoutRepeaterFlooding": "仅附近,无中继器泛洪",
|
||||
"multihop": "多跳",
|
||||
"createProfile": "创建配置文件",
|
||||
"renameProfile": "重命名配置文件",
|
||||
"newProfile": "新配置文件",
|
||||
"manageProfiles": "管理配置文件",
|
||||
"enableProfilesToStartManagingThem": "启用配置文件以开始管理它们。",
|
||||
"openMessage": "打开消息",
|
||||
"jumpToTheRelatedSarMessage": "跳转到相关的 SAR 消息",
|
||||
"removeSarMarker": "移除 SAR 标记",
|
||||
"pleaseSelectADestinationToSendSarMarker": "请选择目标以发送 SAR 标记",
|
||||
"sarMarkerBroadcastToPublicChannel": "SAR 标记已广播到公共频道",
|
||||
"sarMarkerSentToRoom": "SAR 标记已发送到房间",
|
||||
"loadFromGallery": "从图库加载",
|
||||
"replaceImage": "替换图片",
|
||||
"selectFromGallery": "从图库选择",
|
||||
"team": "团队",
|
||||
"found": "已找到",
|
||||
"staging": "集结区",
|
||||
"object": "物体",
|
||||
"quiet": "安静",
|
||||
"moderate": "中等",
|
||||
"busy": "繁忙",
|
||||
"spectrumScanReturnedNoCandidateFrequencies": "频谱扫描未找到候选频率",
|
||||
"searchMessages": "搜索消息",
|
||||
"sendImageFromGallery": "从图库发送图片",
|
||||
"takePhoto": "拍照",
|
||||
"dmOnly": "仅私信",
|
||||
"allMessages": "所有消息",
|
||||
"sendToPublicChannel": "发送到公共频道?",
|
||||
"selectMarkerTypeAndDestination": "选择标记类型和目标",
|
||||
"noDestinationsAvailableLabel": "没有可用的目标",
|
||||
"image": "图片",
|
||||
"format": "格式",
|
||||
"dimensions": "尺寸",
|
||||
"segments": "分段",
|
||||
"transfers": "传输",
|
||||
"downloadedBy": "已下载",
|
||||
"saveDiscoverySettings": "保存发现设置",
|
||||
"savePublicInfo": "保存公共信息",
|
||||
"saveRadioSettings": "保存无线电设置",
|
||||
"savePath": "保存路径",
|
||||
"wipeDeviceData": "擦除设备数据",
|
||||
"wipeDevice": "擦除设备",
|
||||
"destructiveDeviceActions": "破坏性设备操作。",
|
||||
"chooseAPresetOrFinetuneCustomRadioSettings": "选择预设或微调自定义无线电设置。",
|
||||
"chooseTheNameAndLocationThisDeviceShares": "选择此设备共享的名称和位置。",
|
||||
"availableSpaceOnThisDevice": "此设备上的可用空间。",
|
||||
"used": "已使用",
|
||||
"total": "总计",
|
||||
"renameValue": "重命名值",
|
||||
"customizeFields": "自定义字段",
|
||||
"livePreview": "实时预览",
|
||||
"refreshSchedule": "刷新计划",
|
||||
"noResponse": "无响应",
|
||||
"refreshing": "刷新中",
|
||||
"unavailable": "不可用",
|
||||
"pickARelayOrNodeToWatchInSensors": "选择要在传感器中监视的中继或节点。",
|
||||
"publicKeyLabel": "公钥",
|
||||
"alreadyInContacts": "已在联系人中",
|
||||
"connectToADeviceBeforeAddingContacts": "添加联系人前请连接到设备",
|
||||
"fromContacts": "来自联系人",
|
||||
"onlineOnly": "仅在线",
|
||||
"inBoth": "两者中",
|
||||
"source": "来源",
|
||||
"manualRouteEdit": "手动路由编辑",
|
||||
"observedMeshRoute": "观察到的网格路由",
|
||||
"allMessagesCleared": "所有消息已清除",
|
||||
"onlineTraceDatabaseCleared": "在线追踪数据库已清除",
|
||||
"packetLogsCleared": "数据包日志已清除",
|
||||
"hexDataCopiedToClipboard": "十六进制数据已复制到剪贴板",
|
||||
"developerModeEnabled": "开发者模式已启用",
|
||||
"developerModeDisabled": "开发者模式已禁用",
|
||||
"clipboardIsEmpty": "剪贴板为空",
|
||||
"contactImported": "联系人已导入",
|
||||
"contactLinkCopiedToClipboard": "联系人链接已复制到剪贴板",
|
||||
"failedToExportContact": "导出联系人失败",
|
||||
"noLogsToExport": "没有日志可导出",
|
||||
"exportAsCsv": "导出为 CSV",
|
||||
"exportAsText": "导出为文本",
|
||||
"receivedRfc3339": "收到 (RFC3339)",
|
||||
"buildTime": "构建时间",
|
||||
"downloadUrlNotAvailable": "下载链接不可用",
|
||||
"cannotOpenDownloadUrl": "无法打开下载链接",
|
||||
"updateCheckIsOnlyAvailableOnAndroid": "更新检查仅在 Android 上可用",
|
||||
"youAreRunningTheLatestVersion": "您正在使用最新版本",
|
||||
"updateAvailableButDownloadUrlNotFound": "有更新可用但未找到下载链接",
|
||||
"startTictactoe": "开始井字棋",
|
||||
"tictactoeUnavailable": "井字棋不可用",
|
||||
"tictactoeOpponentUnknown": "井字棋:对手未知",
|
||||
"tictactoeWaitingForStart": "井字棋:等待开始",
|
||||
"acceptsShareLinks": "接受分享链接",
|
||||
"supportsRawHex": "支持原始十六进制",
|
||||
"clipboardfriendly": "剪贴板友好",
|
||||
"captured": "已捕获",
|
||||
"size": "大小",
|
||||
"noCustomChannelsToClear": "没有自定义频道可清除。",
|
||||
"noDeviceContactsToClear": "没有设备联系人可清除。"
|
||||
}
|
||||
|
||||
@@ -141,6 +141,23 @@ class ContactRouteCodec {
|
||||
);
|
||||
}
|
||||
|
||||
static ParsedContactRoute direct({int hashSize = 1}) {
|
||||
if (hashSize < 1 || hashSize > maxHashSize) {
|
||||
throw ArgumentError.value(hashSize, 'hashSize', 'Must be 1, 2, or 3.');
|
||||
}
|
||||
|
||||
final encodedPathLen = (hashSize - 1) << 6;
|
||||
return ParsedContactRoute(
|
||||
canonicalText: '',
|
||||
hashSize: hashSize,
|
||||
hopCount: 0,
|
||||
encodedPathLen: encodedPathLen,
|
||||
signedEncodedPathLen: toSignedDescriptor(encodedPathLen),
|
||||
pathBytes: Uint8List(0),
|
||||
paddedPathBytes: Uint8List(maxPathBytes),
|
||||
);
|
||||
}
|
||||
|
||||
static ParsedContactRoute? fromContact(Contact contact) {
|
||||
if (!contact.routeHasPath || contact.routeHopCount == 0) {
|
||||
return null;
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:flutter/services.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../providers/connection_provider.dart';
|
||||
import '../l10n/app_localizations.dart';
|
||||
|
||||
class AddContactScreen extends StatefulWidget {
|
||||
const AddContactScreen({super.key});
|
||||
@@ -80,7 +81,7 @@ class _AddContactScreenState extends State<AddContactScreen> {
|
||||
if (!mounted) return;
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(const SnackBar(content: Text('Clipboard is empty')));
|
||||
).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.clipboardIsEmpty)));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -141,7 +142,7 @@ class _AddContactScreenState extends State<AddContactScreen> {
|
||||
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(const SnackBar(content: Text('Contact imported')));
|
||||
).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.contactImported)));
|
||||
setState(() {
|
||||
_importSucceeded = true;
|
||||
});
|
||||
@@ -154,7 +155,7 @@ class _AddContactScreenState extends State<AddContactScreen> {
|
||||
final colorScheme = theme.colorScheme;
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: const Text('Add Contact')),
|
||||
appBar: AppBar(title: Text(AppLocalizations.of(context)!.addContact)),
|
||||
body: ListView(
|
||||
padding: const EdgeInsets.all(16),
|
||||
children: [
|
||||
@@ -205,18 +206,18 @@ class _AddContactScreenState extends State<AddContactScreen> {
|
||||
Wrap(
|
||||
spacing: 8,
|
||||
runSpacing: 8,
|
||||
children: const [
|
||||
children: [
|
||||
_ImportHintChip(
|
||||
icon: Icons.link_outlined,
|
||||
label: 'Accepts share links',
|
||||
label: AppLocalizations.of(context)!.acceptsShareLinks,
|
||||
),
|
||||
_ImportHintChip(
|
||||
icon: Icons.code_outlined,
|
||||
label: 'Supports raw hex',
|
||||
label: AppLocalizations.of(context)!.supportsRawHex,
|
||||
),
|
||||
_ImportHintChip(
|
||||
icon: Icons.content_paste_go_outlined,
|
||||
label: 'Clipboard-friendly',
|
||||
label: AppLocalizations.of(context)!.clipboardfriendly,
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -285,8 +286,8 @@ class _AddContactScreenState extends State<AddContactScreen> {
|
||||
),
|
||||
TextButton.icon(
|
||||
onPressed: _isImporting ? null : _pasteFromClipboard,
|
||||
icon: const Icon(Icons.content_paste_go_outlined),
|
||||
label: const Text('Paste'),
|
||||
icon: Icon(Icons.content_paste_go_outlined),
|
||||
label: Text(AppLocalizations.of(context)!.paste),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -493,7 +493,7 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ListTile(
|
||||
leading: const Icon(Icons.message_outlined),
|
||||
leading: Icon(Icons.message_outlined),
|
||||
title: Text(l10n.messages),
|
||||
onTap: () async {
|
||||
Navigator.pop(sheetContext);
|
||||
@@ -502,7 +502,7 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
),
|
||||
if (channel.displayLocation != null)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.map_outlined),
|
||||
leading: Icon(Icons.map_outlined),
|
||||
title: Text(l10n.viewOnMap),
|
||||
onTap: () {
|
||||
Navigator.pop(sheetContext);
|
||||
@@ -511,7 +511,7 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
),
|
||||
if (!channel.isPublicChannel)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.delete, color: Colors.red),
|
||||
leading: Icon(Icons.delete, color: Colors.red),
|
||||
title: Text(
|
||||
l10n.deleteChannel,
|
||||
style: const TextStyle(color: Colors.red),
|
||||
@@ -655,12 +655,12 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
size: 64,
|
||||
color: Theme.of(context).disabledColor,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
Text(
|
||||
l10n.noContactsYet,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
Text(
|
||||
l10n.connectToDeviceToLoadContacts,
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
@@ -674,8 +674,8 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
padding: const EdgeInsets.only(top: 16),
|
||||
child: OutlinedButton.icon(
|
||||
onPressed: () => _openAddContactScreen(context),
|
||||
icon: const Icon(Icons.person_add_alt_1_outlined),
|
||||
label: const Text('Add Contact'),
|
||||
icon: Icon(Icons.person_add_alt_1_outlined),
|
||||
label: Text(l10n.addContact),
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -691,7 +691,7 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
// Favourites (contacts with firmware favourite flag set)
|
||||
if (contactsProvider.favouriteContacts.isNotEmpty) ...[
|
||||
_SectionHeader(
|
||||
title: 'Favourites',
|
||||
title: l10n.favourites,
|
||||
count: contactsProvider.favouriteContacts.length,
|
||||
icon: Icons.star,
|
||||
),
|
||||
@@ -766,8 +766,8 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
.read<ConnectionProvider>()
|
||||
.discoverNodeType(advertType: 2);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Repeater discovery sent'),
|
||||
SnackBar(
|
||||
content: Text(l10n.repeaterDiscoverySent),
|
||||
),
|
||||
);
|
||||
},
|
||||
@@ -802,7 +802,7 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
_buildNoFilterResults(context)
|
||||
else if (showRepeatersOthersGroup)
|
||||
_InferredContactGroupCard(
|
||||
label: 'Others',
|
||||
label: l10n.others,
|
||||
contacts: ungroupedRepeaters,
|
||||
compactContacts: true,
|
||||
currentPosition: _currentPosition,
|
||||
@@ -822,7 +822,7 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
// Sensors
|
||||
if (showSensorsSection) ...[
|
||||
_SectionHeader(
|
||||
title: 'Sensors',
|
||||
title: l10n.sensors,
|
||||
count: sensors.length,
|
||||
icon: Icons.sensors,
|
||||
trailing: Row(
|
||||
@@ -841,8 +841,8 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
.read<ConnectionProvider>()
|
||||
.discoverNodeType(advertType: 4);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Sensor discovery sent'),
|
||||
SnackBar(
|
||||
content: Text(l10n.sensorDiscoverySent),
|
||||
),
|
||||
);
|
||||
},
|
||||
@@ -946,8 +946,8 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
Expanded(
|
||||
child: OutlinedButton.icon(
|
||||
onPressed: () => _openAddContactScreen(context),
|
||||
icon: const Icon(Icons.person_add_alt_1_outlined),
|
||||
label: const Text('Add Contact'),
|
||||
icon: Icon(Icons.person_add_alt_1_outlined),
|
||||
label: Text(l10n.addContact),
|
||||
style: OutlinedButton.styleFrom(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
horizontal: 24,
|
||||
@@ -960,7 +960,7 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
Expanded(
|
||||
child: OutlinedButton.icon(
|
||||
onPressed: () => _showAddChannelDialog(context),
|
||||
icon: const Icon(Icons.add_circle_outline),
|
||||
icon: Icon(Icons.add_circle_outline),
|
||||
label: Text(l10n.addChannel),
|
||||
style: OutlinedButton.styleFrom(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
@@ -1285,7 +1285,7 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
? colorScheme.primary
|
||||
: null,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Text(l10n.lastSeen),
|
||||
],
|
||||
),
|
||||
@@ -1301,7 +1301,7 @@ class _ContactsTabState extends State<ContactsTab> {
|
||||
? colorScheme.primary
|
||||
: null,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Text(l10n.distance),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -827,7 +827,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
final confirmed = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (dialogContext) => AlertDialog(
|
||||
title: const Text('Wipe device data'),
|
||||
title: Text(AppLocalizations.of(context)!.wipeDeviceData),
|
||||
content: const Text(
|
||||
'This will erase all data on the connected device, including contacts, keys, and saved settings. This cannot be undone.',
|
||||
),
|
||||
@@ -842,7 +842,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
foregroundColor: Theme.of(context).colorScheme.onError,
|
||||
),
|
||||
onPressed: () => Navigator.of(dialogContext).pop(true),
|
||||
child: const Text('Wipe device'),
|
||||
child: Text(AppLocalizations.of(context)!.wipeDevice),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -893,7 +893,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
.toList();
|
||||
if (contacts.isEmpty) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(content: Text('No device contacts to clear.')),
|
||||
SnackBar(content: Text(AppLocalizations.of(context)!.noDeviceContactsToClear)),
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -901,7 +901,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
final confirmed = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (dialogContext) => AlertDialog(
|
||||
title: const Text('Clear all contacts'),
|
||||
title: Text(AppLocalizations.of(context)!.clearAllContacts),
|
||||
content: Text(
|
||||
'This will remove ${contacts.length} contact${contacts.length == 1 ? '' : 's'} from the connected device. Channels and radio settings will not be changed.',
|
||||
),
|
||||
@@ -916,7 +916,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
foregroundColor: Theme.of(context).colorScheme.onError,
|
||||
),
|
||||
onPressed: () => Navigator.of(dialogContext).pop(true),
|
||||
child: const Text('Clear contacts'),
|
||||
child: Text(AppLocalizations.of(context)!.clearContacts),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -988,7 +988,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
.toList();
|
||||
if (channels.isEmpty) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(content: Text('No custom channels to clear.')),
|
||||
SnackBar(content: Text(AppLocalizations.of(context)!.noCustomChannelsToClear)),
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -996,7 +996,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
final confirmed = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (dialogContext) => AlertDialog(
|
||||
title: const Text('Clear all channels'),
|
||||
title: Text(AppLocalizations.of(context)!.clearAllChannels),
|
||||
content: Text(
|
||||
'This will remove ${channels.length} custom channel${channels.length == 1 ? '' : 's'} from the connected device. Contacts and radio settings will not be changed.',
|
||||
),
|
||||
@@ -1011,7 +1011,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
foregroundColor: Theme.of(context).colorScheme.onError,
|
||||
),
|
||||
onPressed: () => Navigator.of(dialogContext).pop(true),
|
||||
child: const Text('Clear channels'),
|
||||
child: Text(AppLocalizations.of(context)!.clearChannels),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -1119,23 +1119,23 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
'${_getDeviceTypeString(context, deviceInfo.deviceType)} • ${deviceInfo.semanticVersion ?? deviceInfo.manufacturerModel ?? AppLocalizations.of(context)!.unknown}',
|
||||
stats: [
|
||||
_HeroStatData(
|
||||
label: 'Location',
|
||||
label: AppLocalizations.of(context)!.location,
|
||||
value: locationSet ? 'Shared' : 'Hidden',
|
||||
icon: Icons.my_location_rounded,
|
||||
emphasized: locationSet,
|
||||
),
|
||||
_HeroStatData(
|
||||
label: 'Frequency',
|
||||
label: AppLocalizations.of(context)!.frequency,
|
||||
value: '${_freqController.text} MHz',
|
||||
icon: Icons.settings_input_antenna_rounded,
|
||||
),
|
||||
_HeroStatData(
|
||||
label: 'Bandwidth',
|
||||
label: AppLocalizations.of(context)!.bandwidth,
|
||||
value: _selectedBandwidth,
|
||||
icon: Icons.width_normal_rounded,
|
||||
),
|
||||
_HeroStatData(
|
||||
label: 'Model',
|
||||
label: AppLocalizations.of(context)!.model,
|
||||
value:
|
||||
deviceInfo.manufacturerModel ??
|
||||
AppLocalizations.of(context)!.unknown,
|
||||
@@ -1143,10 +1143,10 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
SizedBox(height: 20),
|
||||
_ConfigSectionCard(
|
||||
title: 'Storage',
|
||||
subtitle: 'Available space on this device.',
|
||||
title: AppLocalizations.of(context)!.storage,
|
||||
subtitle: AppLocalizations.of(context)!.availableSpaceOnThisDevice,
|
||||
icon: Icons.storage_rounded,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -1155,16 +1155,16 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
children: [
|
||||
Expanded(
|
||||
child: _StorageStat(
|
||||
label: 'Used',
|
||||
label: AppLocalizations.of(context)!.used,
|
||||
value: _formatStorage(
|
||||
deviceInfo.storageUsedKb ?? 0,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: _StorageStat(
|
||||
label: 'Total',
|
||||
label: AppLocalizations.of(context)!.total,
|
||||
value: deviceInfo.storageTotalKb != null
|
||||
? _formatStorage(deviceInfo.storageTotalKb!)
|
||||
: AppLocalizations.of(context)!.unknown,
|
||||
@@ -1177,9 +1177,9 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
SizedBox(height: 20),
|
||||
_ConfigSectionCard(
|
||||
title: 'Auto discovery',
|
||||
title: AppLocalizations.of(context)!.autoDiscovery,
|
||||
subtitle:
|
||||
'Control how the radio auto-adds discovered nodes to its contacts table.',
|
||||
icon: Icons.person_search_rounded,
|
||||
@@ -1190,7 +1190,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
icon: _autoAddDiscoveredContactsEnabled
|
||||
? Icons.person_add_alt_1
|
||||
: Icons.person_add_disabled,
|
||||
title: 'Enable automatic adding',
|
||||
title: AppLocalizations.of(context)!.enableAutomaticAdding,
|
||||
description:
|
||||
'Turn this off to keep discoveries manual-only on the radio.',
|
||||
accentColor: _autoAddDiscoveredContactsEnabled
|
||||
@@ -1206,10 +1206,10 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
},
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 18),
|
||||
SizedBox(height: 18),
|
||||
_SettingHighlightCard(
|
||||
icon: Icons.person_outline_rounded,
|
||||
title: 'Auto-add users',
|
||||
title: AppLocalizations.of(context)!.autoaddUsers,
|
||||
description:
|
||||
'Automatically store discovered user/chat nodes.',
|
||||
accentColor: _autoAddUsersEnabled
|
||||
@@ -1227,10 +1227,10 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
: null,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 14),
|
||||
SizedBox(height: 14),
|
||||
_SettingHighlightCard(
|
||||
icon: Icons.router_outlined,
|
||||
title: 'Auto-add repeaters',
|
||||
title: AppLocalizations.of(context)!.autoaddRepeaters,
|
||||
description:
|
||||
'Automatically store discovered repeater nodes.',
|
||||
accentColor: _autoAddRepeatersEnabled
|
||||
@@ -1248,10 +1248,10 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
: null,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 14),
|
||||
SizedBox(height: 14),
|
||||
_SettingHighlightCard(
|
||||
icon: Icons.meeting_room_outlined,
|
||||
title: 'Auto-add room servers',
|
||||
title: AppLocalizations.of(context)!.autoaddRoomServers,
|
||||
description:
|
||||
'Automatically store discovered room/server nodes.',
|
||||
accentColor: _autoAddRoomServersEnabled
|
||||
@@ -1269,10 +1269,10 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
: null,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 14),
|
||||
SizedBox(height: 14),
|
||||
_SettingHighlightCard(
|
||||
icon: Icons.sensors_outlined,
|
||||
title: 'Auto-add sensors',
|
||||
title: AppLocalizations.of(context)!.autoaddSensors,
|
||||
description:
|
||||
'Automatically store discovered sensor nodes.',
|
||||
accentColor: _autoAddSensorsEnabled
|
||||
@@ -1290,10 +1290,10 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
: null,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 14),
|
||||
SizedBox(height: 14),
|
||||
_SettingHighlightCard(
|
||||
icon: Icons.history_toggle_off_rounded,
|
||||
title: 'Overwrite oldest when full',
|
||||
title: AppLocalizations.of(context)!.overwriteOldestWhenFull,
|
||||
description:
|
||||
'Allow the radio to replace the oldest contact when storage is full.',
|
||||
accentColor: _overwriteOldestAutoAddEnabled
|
||||
@@ -1329,16 +1329,16 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
: _saveAutoDiscoverySettings,
|
||||
isSaving: _isSavingAutoDiscoverySettings,
|
||||
isSaved: _autoDiscoverySettingsSaved,
|
||||
label: 'Save discovery settings',
|
||||
label: AppLocalizations.of(context)!.saveDiscoverySettings,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
SizedBox(height: 20),
|
||||
_ConfigSectionCard(
|
||||
title: AppLocalizations.of(context)!.publicInfo,
|
||||
subtitle: 'Choose the name and location this device shares.',
|
||||
subtitle: AppLocalizations.of(context)!.chooseTheNameAndLocationThisDeviceShares,
|
||||
icon: Icons.public_rounded,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -1371,7 +1371,7 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
icon: _gpsEnabled!
|
||||
? Icons.gps_fixed
|
||||
: Icons.gps_off,
|
||||
title: 'GPS Module',
|
||||
title: AppLocalizations.of(context)!.gpsModule,
|
||||
description:
|
||||
'Enable or disable the onboard GPS hardware.',
|
||||
accentColor: _gpsEnabled!
|
||||
@@ -1483,16 +1483,16 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
onPressed: _isSavingPublicInfo ? null : _savePublicInfo,
|
||||
isSaving: _isSavingPublicInfo,
|
||||
isSaved: _publicInfoSaved,
|
||||
label: 'Save public info',
|
||||
label: AppLocalizations.of(context)!.savePublicInfo,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
SizedBox(height: 20),
|
||||
_ConfigSectionCard(
|
||||
title: AppLocalizations.of(context)!.radioSettings,
|
||||
subtitle: 'Choose a preset or fine-tune custom radio settings.',
|
||||
subtitle: AppLocalizations.of(context)!.chooseAPresetOrFinetuneCustomRadioSettings,
|
||||
icon: Icons.settings_input_antenna_rounded,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -1512,9 +1512,9 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
),
|
||||
isExpanded: true,
|
||||
items: [
|
||||
const DropdownMenuItem<_RadioPreset?>(
|
||||
DropdownMenuItem<_RadioPreset?>(
|
||||
value: null,
|
||||
child: Text('Custom'),
|
||||
child: Text(AppLocalizations.of(context)!.custom),
|
||||
),
|
||||
..._radioPresets.map(
|
||||
(preset) => DropdownMenuItem<_RadioPreset?>(
|
||||
@@ -1713,10 +1713,10 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
),
|
||||
),
|
||||
if (deviceInfo.clientRepeat != null) ...[
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
_SettingHighlightCard(
|
||||
icon: Icons.repeat_rounded,
|
||||
title: 'Repeat nearby traffic',
|
||||
title: AppLocalizations.of(context)!.repeatNearbyTraffic,
|
||||
description:
|
||||
deviceInfo.allowedRepeatFreqRanges != null &&
|
||||
deviceInfo.allowedRepeatFreqRanges!.isNotEmpty
|
||||
@@ -1753,16 +1753,16 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
: _saveRadioSettings,
|
||||
isSaving: _isSavingRadioSettings,
|
||||
isSaved: _radioSettingsSaved,
|
||||
label: 'Save radio settings',
|
||||
label: AppLocalizations.of(context)!.saveRadioSettings,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
SizedBox(height: 20),
|
||||
_ConfigSectionCard(
|
||||
title: 'Danger zone',
|
||||
subtitle: 'Destructive device actions.',
|
||||
title: AppLocalizations.of(context)!.dangerZone,
|
||||
subtitle: AppLocalizations.of(context)!.destructiveDeviceActions,
|
||||
icon: Icons.warning_amber_rounded,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -1830,8 +1830,8 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
strokeWidth: 2,
|
||||
),
|
||||
)
|
||||
: const Icon(Icons.people_alt_outlined),
|
||||
label: const Text('Clear all contacts'),
|
||||
: Icon(Icons.people_alt_outlined),
|
||||
label: Text(AppLocalizations.of(context)!.clearAllContacts),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
@@ -1854,8 +1854,8 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
strokeWidth: 2,
|
||||
),
|
||||
)
|
||||
: const Icon(Icons.forum_outlined),
|
||||
label: const Text('Clear all channels'),
|
||||
: Icon(Icons.forum_outlined),
|
||||
label: Text(AppLocalizations.of(context)!.clearAllChannels),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
@@ -1870,8 +1870,8 @@ class _DeviceConfigScreenState extends State<DeviceConfigScreen> {
|
||||
foregroundColor: colorScheme.onError,
|
||||
minimumSize: const Size.fromHeight(52),
|
||||
),
|
||||
icon: const Icon(Icons.delete_forever_rounded),
|
||||
label: const Text('Wipe device data'),
|
||||
icon: Icon(Icons.delete_forever_rounded),
|
||||
label: Text(AppLocalizations.of(context)!.wipeDeviceData),
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -54,7 +54,7 @@ class _DiscoveryScreenState extends State<DiscoveryScreen> {
|
||||
final confirmed = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (dialogContext) => AlertDialog(
|
||||
title: const Text('Clear discoveries'),
|
||||
title: Text(AppLocalizations.of(context)!.clearDiscoveries),
|
||||
content: Text(
|
||||
'Remove all $pendingCount pending discover${pendingCount == 1 ? 'y' : 'ies'} from this device?',
|
||||
),
|
||||
@@ -65,7 +65,7 @@ class _DiscoveryScreenState extends State<DiscoveryScreen> {
|
||||
),
|
||||
FilledButton(
|
||||
onPressed: () => Navigator.of(dialogContext).pop(true),
|
||||
child: const Text('Clear all'),
|
||||
child: Text(AppLocalizations.of(context)!.clearAllLabel),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -80,7 +80,7 @@ class _DiscoveryScreenState extends State<DiscoveryScreen> {
|
||||
return;
|
||||
}
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(content: Text('Cleared pending discoveries.')),
|
||||
SnackBar(content: Text(AppLocalizations.of(context)!.clearedPendingDiscoveries)),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -363,7 +363,7 @@ class _DiscoveryScreenState extends State<DiscoveryScreen> {
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('Discovery'),
|
||||
title: Text(l10n.discovery),
|
||||
actions: [
|
||||
Consumer<ConnectionProvider>(
|
||||
builder: (context, connectionProvider, child) {
|
||||
@@ -393,8 +393,8 @@ class _DiscoveryScreenState extends State<DiscoveryScreen> {
|
||||
),
|
||||
)
|
||||
: const Icon(Icons.router_outlined),
|
||||
const SizedBox(width: 12),
|
||||
const Text('Discover repeaters'),
|
||||
SizedBox(width: 12),
|
||||
Text(l10n.discoverRepeaters),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -412,8 +412,8 @@ class _DiscoveryScreenState extends State<DiscoveryScreen> {
|
||||
),
|
||||
)
|
||||
: const Icon(Icons.sensors_outlined),
|
||||
const SizedBox(width: 12),
|
||||
const Text('Discover sensors'),
|
||||
SizedBox(width: 12),
|
||||
Text(l10n.discoverSensors),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -490,7 +490,7 @@ class _DiscoveryScreenState extends State<DiscoveryScreen> {
|
||||
: const Icon(
|
||||
Icons.download_for_offline_outlined,
|
||||
),
|
||||
label: const Text('Resolve all'),
|
||||
label: Text(l10n.resolveAll),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
@@ -499,8 +499,8 @@ class _DiscoveryScreenState extends State<DiscoveryScreen> {
|
||||
onPressed: pendingAdverts.isNotEmpty
|
||||
? _clearAllDiscoveries
|
||||
: null,
|
||||
icon: const Icon(Icons.clear_all_rounded),
|
||||
label: const Text('Clear all'),
|
||||
icon: Icon(Icons.clear_all_rounded),
|
||||
label: Text(l10n.clearAllLabel),
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -362,7 +362,7 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
),
|
||||
),
|
||||
title: Text(l10n.flood),
|
||||
subtitle: const Text('Relay through repeaters across the mesh'),
|
||||
subtitle: Text(l10n.relayThroughRepeatersAcrossTheMesh),
|
||||
trailing: const Icon(Icons.chevron_right_rounded),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
@@ -388,7 +388,7 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
),
|
||||
),
|
||||
title: Text(l10n.direct),
|
||||
subtitle: const Text('Nearby only, without repeater flooding'),
|
||||
subtitle: Text(l10n.nearbyOnlyWithoutRepeaterFlooding),
|
||||
trailing: const Icon(Icons.chevron_right_rounded),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
@@ -609,7 +609,7 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
onPressed: () async {
|
||||
await provider.disconnect();
|
||||
},
|
||||
icon: const Icon(Icons.power_settings_new),
|
||||
icon: Icon(Icons.power_settings_new),
|
||||
tooltip: AppLocalizations.of(context)!.disconnect,
|
||||
color: Colors.red.shade700,
|
||||
);
|
||||
@@ -631,8 +631,8 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
child: Row(
|
||||
children: [
|
||||
const Icon(Icons.radar),
|
||||
const SizedBox(width: 8),
|
||||
const Text('Spectrum Scan'),
|
||||
SizedBox(width: 8),
|
||||
Text(AppLocalizations.of(context)!.spectrumScan),
|
||||
],
|
||||
),
|
||||
onTap: () {
|
||||
@@ -653,11 +653,11 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
|
||||
items.add(
|
||||
PopupMenuItem(
|
||||
child: const Row(
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(Icons.radar_outlined),
|
||||
SizedBox(width: 8),
|
||||
Text('Live Traffic'),
|
||||
const Icon(Icons.radar_outlined),
|
||||
const SizedBox(width: 8),
|
||||
Text(AppLocalizations.of(context)!.liveTraffic),
|
||||
],
|
||||
),
|
||||
onTap: () {
|
||||
@@ -688,11 +688,11 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
|
||||
items.add(
|
||||
PopupMenuItem(
|
||||
child: const Row(
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(Icons.router_outlined),
|
||||
SizedBox(width: 8),
|
||||
Text('Repeaters Map'),
|
||||
const Icon(Icons.router_outlined),
|
||||
const SizedBox(width: 8),
|
||||
Text(AppLocalizations.of(context)!.repeatersMap),
|
||||
],
|
||||
),
|
||||
onTap: () {
|
||||
@@ -749,7 +749,7 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
child: Row(
|
||||
children: [
|
||||
const Icon(Icons.settings),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Text(AppLocalizations.of(context)!.settings),
|
||||
],
|
||||
),
|
||||
@@ -777,11 +777,11 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
if (profilesEnabled) {
|
||||
items.add(
|
||||
PopupMenuItem(
|
||||
child: const Row(
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(Icons.layers_outlined),
|
||||
SizedBox(width: 8),
|
||||
Text('Profiles'),
|
||||
const Icon(Icons.layers_outlined),
|
||||
const SizedBox(width: 8),
|
||||
Text(AppLocalizations.of(context)!.profiles),
|
||||
],
|
||||
),
|
||||
onTap: () {
|
||||
@@ -889,7 +889,7 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
);
|
||||
case _HomeTab.map:
|
||||
return Tab(
|
||||
icon: const Icon(Icons.map),
|
||||
icon: Icon(Icons.map),
|
||||
text: AppLocalizations.of(context)!.map,
|
||||
);
|
||||
case _HomeTab.sensors:
|
||||
@@ -941,7 +941,7 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
),
|
||||
),
|
||||
)
|
||||
: const Icon(Icons.bluetooth, size: 18),
|
||||
: Icon(Icons.bluetooth, size: 18),
|
||||
label: Text(
|
||||
provider.isReconnecting
|
||||
? '${provider.reconnectionAttempt}/${provider.maxReconnectionAttempts}'
|
||||
@@ -960,7 +960,7 @@ class _HomeScreenState extends State<HomeScreen>
|
||||
const SizedBox(width: 8),
|
||||
IconButton(
|
||||
onPressed: () => provider.cancelReconnection(),
|
||||
icon: const Icon(Icons.close, size: 20),
|
||||
icon: Icon(Icons.close, size: 20),
|
||||
tooltip: AppLocalizations.of(context)!.cancelReconnection,
|
||||
style: IconButton.styleFrom(
|
||||
backgroundColor: Colors.red.shade700,
|
||||
|
||||
@@ -15,6 +15,7 @@ import '../utils/log_rx_route_decoder.dart';
|
||||
import '../widgets/compact_signal_indicator.dart';
|
||||
import '../widgets/messages/message_trace_sheet.dart';
|
||||
import 'packet_log_screen.dart';
|
||||
import '../l10n/app_localizations.dart';
|
||||
|
||||
T? _maybeProvider<T>(BuildContext context) {
|
||||
try {
|
||||
@@ -147,7 +148,7 @@ class _LiveTrafficScreenState extends State<LiveTrafficScreen> {
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('Live Traffic'),
|
||||
title: Text(AppLocalizations.of(context)!.liveTraffic),
|
||||
actions: [
|
||||
if (widget.openPacketLogs != null)
|
||||
IconButton(
|
||||
@@ -327,17 +328,17 @@ class _SummaryPanel extends StatelessWidget {
|
||||
runSpacing: 6,
|
||||
children: [
|
||||
_SummaryBadge(
|
||||
label: 'Mesh',
|
||||
label: AppLocalizations.of(context)!.mesh,
|
||||
value: busynessLabel,
|
||||
color: busynessColor,
|
||||
),
|
||||
_SummaryBadge(
|
||||
label: 'Rate',
|
||||
label: AppLocalizations.of(context)!.rate,
|
||||
value: '${snapshot.packetsPerMinute} pkt/min',
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
_SummaryBadge(
|
||||
label: 'Window',
|
||||
label: AppLocalizations.of(context)!.window,
|
||||
value: _windowLabel(snapshot.windowDuration),
|
||||
color: Theme.of(context).colorScheme.secondary,
|
||||
onTap: onWindowTap,
|
||||
@@ -350,14 +351,14 @@ class _SummaryPanel extends StatelessWidget {
|
||||
runSpacing: 10,
|
||||
children: [
|
||||
_MetricTile(
|
||||
label: 'RX packets',
|
||||
label: AppLocalizations.of(context)!.rxPackets,
|
||||
value: '${snapshot.rxCount}',
|
||||
subtitle: totalRxCount == null
|
||||
? _windowSummaryLabel(snapshot.windowDuration)
|
||||
: 'Device total $totalRxCount',
|
||||
),
|
||||
_MetricTile(
|
||||
label: 'RSSI',
|
||||
label: AppLocalizations.of(context)!.rssi,
|
||||
value: snapshot.latestRssiDbm == null
|
||||
? 'No RX data'
|
||||
: '${snapshot.latestRssiDbm} dBm',
|
||||
@@ -366,7 +367,7 @@ class _SummaryPanel extends StatelessWidget {
|
||||
: 'Avg ${snapshot.avgRssiDbm!.toStringAsFixed(1)} dBm',
|
||||
),
|
||||
_MetricTile(
|
||||
label: 'SNR',
|
||||
label: AppLocalizations.of(context)!.snr,
|
||||
value: snapshot.latestSnrDb == null
|
||||
? 'No RX data'
|
||||
: '${snapshot.latestSnrDb!.toStringAsFixed(1)} dB',
|
||||
@@ -375,7 +376,7 @@ class _SummaryPanel extends StatelessWidget {
|
||||
: 'Avg ${snapshot.avgSnrDb!.toStringAsFixed(1)} dB',
|
||||
),
|
||||
_MetricTile(
|
||||
label: 'Multi-hop',
|
||||
label: AppLocalizations.of(context)!.multihop,
|
||||
value: '${snapshot.multiHopCount}',
|
||||
subtitle: routeHashCounts.summaryLabel,
|
||||
footer: snapshot.avgHopCount == null
|
||||
@@ -455,7 +456,7 @@ class _PacketTypeFilterBar extends StatelessWidget {
|
||||
child: Row(
|
||||
children: [
|
||||
_FilterChip(
|
||||
label: 'All',
|
||||
label: AppLocalizations.of(context)!.all,
|
||||
selected: selectedType == null,
|
||||
onTap: () => onSelected(null),
|
||||
),
|
||||
|
||||
@@ -519,7 +519,7 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
child: Row(
|
||||
children: [
|
||||
const Icon(Icons.layers),
|
||||
const SizedBox(width: 12),
|
||||
SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.selectMapLayer,
|
||||
@@ -644,7 +644,7 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
!rootContext.read<MapProvider>().isUsingCustomMap &&
|
||||
_currentLayer == _dtk25Layer
|
||||
? const Icon(Icons.check_circle, color: Colors.green)
|
||||
: const Icon(Icons.radio_button_unchecked),
|
||||
: Icon(Icons.radio_button_unchecked),
|
||||
title: Text(AppLocalizations.of(context)!.topographicMap),
|
||||
subtitle: Text(_dtk25Layer.attribution),
|
||||
onTap: () async {
|
||||
@@ -872,8 +872,8 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
),
|
||||
if (!hasCustomMap)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.add_photo_alternate),
|
||||
title: const Text('Load from gallery'),
|
||||
leading: Icon(Icons.add_photo_alternate),
|
||||
title: Text(AppLocalizations.of(context)!.loadFromGallery),
|
||||
subtitle: const Text(
|
||||
'Use a cave map image instead of GPS tiles',
|
||||
),
|
||||
@@ -904,8 +904,8 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
),
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.swap_horizontal_circle),
|
||||
title: const Text('Replace image'),
|
||||
leading: Icon(Icons.swap_horizontal_circle),
|
||||
title: Text(AppLocalizations.of(context)!.replaceImage),
|
||||
subtitle: const Text(
|
||||
'Pick a different map from the gallery',
|
||||
),
|
||||
@@ -940,8 +940,8 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
),
|
||||
if (customMapConfig.isCalibrated)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.clear),
|
||||
title: const Text('Clear scale'),
|
||||
leading: Icon(Icons.clear),
|
||||
title: Text(AppLocalizations.of(context)!.clearScale),
|
||||
onTap: () async {
|
||||
await mapProvider.clearCustomMapCalibration();
|
||||
if (!context.mounted) return;
|
||||
@@ -1218,7 +1218,7 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
context: context,
|
||||
builder: (dialogContext) {
|
||||
return AlertDialog(
|
||||
title: const Text('Set map scale'),
|
||||
title: Text(AppLocalizations.of(context)!.setMapScale),
|
||||
content: TextField(
|
||||
controller: controller,
|
||||
keyboardType: const TextInputType.numberWithOptions(
|
||||
@@ -1279,7 +1279,7 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
if (!mounted) return;
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(const SnackBar(content: Text('Custom map scale saved')));
|
||||
).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.customMapScaleSaved)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1417,9 +1417,9 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
if (message != null)
|
||||
ListTile(
|
||||
contentPadding: EdgeInsets.zero,
|
||||
leading: const Icon(Icons.chat_bubble_outline),
|
||||
title: const Text('Open message'),
|
||||
subtitle: const Text('Jump to the related SAR message'),
|
||||
leading: Icon(Icons.chat_bubble_outline),
|
||||
title: Text(AppLocalizations.of(context)!.openMessage),
|
||||
subtitle: Text(AppLocalizations.of(context)!.jumpToTheRelatedSarMessage),
|
||||
onTap: () async {
|
||||
Navigator.pop(sheetContext);
|
||||
await _openSarMarkerMessage(
|
||||
@@ -1468,7 +1468,7 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
return showDialog<bool>(
|
||||
context: context,
|
||||
builder: (dialogContext) => AlertDialog(
|
||||
title: const Text('Remove SAR marker'),
|
||||
title: Text(AppLocalizations.of(context)!.removeSarMarker),
|
||||
content: Text(
|
||||
hasMessage
|
||||
? 'This will remove the marker and its linked chat message.'
|
||||
@@ -1654,8 +1654,8 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
if (!sendToChannel && !sendToAllContacts && roomPublicKey == null) {
|
||||
if (!mounted) return;
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Please select a destination to send SAR marker'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.pleaseSelectADestinationToSendSarMarker),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
@@ -1784,8 +1784,8 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
|
||||
if (!mounted) return;
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('SAR marker broadcast to public channel'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.sarMarkerBroadcastToPublicChannel),
|
||||
backgroundColor: Colors.orange,
|
||||
duration: Duration(seconds: 2),
|
||||
),
|
||||
@@ -1832,8 +1832,8 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
|
||||
if (!mounted) return;
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('SAR marker sent to room'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.sarMarkerSentToRoom),
|
||||
backgroundColor: Colors.green,
|
||||
duration: Duration(seconds: 2),
|
||||
),
|
||||
@@ -3026,7 +3026,7 @@ class _MapTabState extends State<MapTab> with AutomaticKeepAliveClientMixin {
|
||||
color: Colors.white,
|
||||
size: 20,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Text(
|
||||
AppLocalizations.of(context)!.measureDistance,
|
||||
style: const TextStyle(
|
||||
|
||||
@@ -535,7 +535,7 @@ class _MessagesTabState extends State<MessagesTab> {
|
||||
}).firstOrNull;
|
||||
|
||||
if (recipient == null) {
|
||||
ToastLogger.error(context, l10n.cannotReplyContactNotFound);
|
||||
ToastLogger.error(context, AppLocalizations.of(context)!.cannotReplyContactNotFound);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -564,13 +564,13 @@ class _MessagesTabState extends State<MessagesTab> {
|
||||
} else {
|
||||
final senderPrefix = message.senderPublicKeyPrefix;
|
||||
if (senderPrefix == null || senderPrefix.length < 6) {
|
||||
ToastLogger.error(context, l10n.cannotReplySenderMissing);
|
||||
ToastLogger.error(context, AppLocalizations.of(context)!.cannotReplySenderMissing);
|
||||
return;
|
||||
}
|
||||
|
||||
recipient = contactsProvider.findContactByPrefix(senderPrefix);
|
||||
if (recipient == null) {
|
||||
ToastLogger.error(context, l10n.cannotReplyContactNotFound);
|
||||
ToastLogger.error(context, AppLocalizations.of(context)!.cannotReplyContactNotFound);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1376,7 +1376,7 @@ class _MessagesTabState extends State<MessagesTab> {
|
||||
final decision = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (dialogContext) => AlertDialog(
|
||||
title: const Text('Send to Public Channel?'),
|
||||
title: Text(AppLocalizations.of(context)!.sendToPublicChannel),
|
||||
content: Text(
|
||||
'You are about to send $mediaType to the Public Channel. '
|
||||
'This is not advised because everyone on the mesh may receive it. '
|
||||
@@ -1389,7 +1389,7 @@ class _MessagesTabState extends State<MessagesTab> {
|
||||
),
|
||||
FilledButton(
|
||||
onPressed: () => Navigator.of(dialogContext).pop(true),
|
||||
child: const Text('Send anyway'),
|
||||
child: Text(AppLocalizations.of(context)!.sendAnyway),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -1449,8 +1449,8 @@ class _MessagesTabState extends State<MessagesTab> {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ListTile(
|
||||
leading: const Icon(Icons.search),
|
||||
title: const Text('Search messages'),
|
||||
leading: Icon(Icons.search),
|
||||
title: Text(AppLocalizations.of(context)!.searchMessages),
|
||||
onTap: () async {
|
||||
await _runAfterSheetDismissal(sheetContext, () async {
|
||||
_showFilteredMessageSearch();
|
||||
@@ -1458,7 +1458,7 @@ class _MessagesTabState extends State<MessagesTab> {
|
||||
},
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.add_location_alt),
|
||||
leading: Icon(Icons.add_location_alt),
|
||||
title: Text(AppLocalizations.of(context)!.sendSarMarker),
|
||||
onTap: () async {
|
||||
await _runAfterSheetDismissal(sheetContext, () async {
|
||||
@@ -1485,8 +1485,8 @@ class _MessagesTabState extends State<MessagesTab> {
|
||||
),
|
||||
ListTile(
|
||||
enabled: !_isSendingImage,
|
||||
leading: const Icon(Icons.photo_library),
|
||||
title: const Text('Send image from gallery'),
|
||||
leading: Icon(Icons.photo_library),
|
||||
title: Text(AppLocalizations.of(context)!.sendImageFromGallery),
|
||||
onTap: _isSendingImage
|
||||
? null
|
||||
: () async {
|
||||
@@ -1497,8 +1497,8 @@ class _MessagesTabState extends State<MessagesTab> {
|
||||
),
|
||||
ListTile(
|
||||
enabled: !_isSendingImage,
|
||||
leading: const Icon(Icons.camera_alt),
|
||||
title: const Text('Take photo'),
|
||||
leading: Icon(Icons.camera_alt),
|
||||
title: Text(AppLocalizations.of(context)!.takePhoto),
|
||||
onTap: _isSendingImage
|
||||
? null
|
||||
: () async {
|
||||
@@ -1508,9 +1508,9 @@ class _MessagesTabState extends State<MessagesTab> {
|
||||
},
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.grid_3x3),
|
||||
title: const Text('Start Tic-Tac-Toe'),
|
||||
subtitle: const Text('DM only'),
|
||||
leading: Icon(Icons.grid_3x3),
|
||||
title: Text(AppLocalizations.of(context)!.startTictactoe),
|
||||
subtitle: Text(AppLocalizations.of(context)!.dmOnly),
|
||||
onTap: () async {
|
||||
await _runAfterSheetDismissal(sheetContext, () async {
|
||||
await _startTicTacToeGame();
|
||||
|
||||
@@ -61,7 +61,7 @@ class _PacketLogScreenState extends State<PacketLogScreen> {
|
||||
if (context.mounted) {
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(const SnackBar(content: Text('No logs to export')));
|
||||
).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.noLogsToExport)));
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -108,7 +108,7 @@ class _PacketLogScreenState extends State<PacketLogScreen> {
|
||||
if (context.mounted) {
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(const SnackBar(content: Text('No logs to export')));
|
||||
).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.noLogsToExport)));
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -155,8 +155,8 @@ class _PacketLogScreenState extends State<PacketLogScreen> {
|
||||
void _copyToClipboard(BuildContext context, BlePacketLog log) {
|
||||
Clipboard.setData(ClipboardData(text: log.hexData));
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Hex data copied to clipboard'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.hexDataCopiedToClipboard),
|
||||
duration: Duration(seconds: 1),
|
||||
),
|
||||
);
|
||||
@@ -184,7 +184,7 @@ class _PacketLogScreenState extends State<PacketLogScreen> {
|
||||
setState(() {});
|
||||
if (parentContext.mounted) {
|
||||
ScaffoldMessenger.of(parentContext).showSnackBar(
|
||||
const SnackBar(content: Text('Packet logs cleared')),
|
||||
SnackBar(content: Text(AppLocalizations.of(context)!.packetLogsCleared)),
|
||||
);
|
||||
}
|
||||
},
|
||||
@@ -205,7 +205,7 @@ class _PacketLogScreenState extends State<PacketLogScreen> {
|
||||
title: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const Text('BLE Packet Logs'),
|
||||
Text(AppLocalizations.of(context)!.blePacketLogs),
|
||||
Text(
|
||||
'${logs.length} packets',
|
||||
style: Theme.of(context).textTheme.bodySmall,
|
||||
@@ -316,23 +316,23 @@ class _PacketLogScreenState extends State<PacketLogScreen> {
|
||||
icon: const Icon(Icons.share),
|
||||
tooltip: 'Export logs',
|
||||
itemBuilder: (context) => [
|
||||
const PopupMenuItem(
|
||||
PopupMenuItem(
|
||||
value: 'csv',
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(Icons.table_chart),
|
||||
SizedBox(width: 8),
|
||||
Text('Export as CSV'),
|
||||
const Icon(Icons.table_chart),
|
||||
const SizedBox(width: 8),
|
||||
Text(AppLocalizations.of(context)!.exportAsCsv),
|
||||
],
|
||||
),
|
||||
),
|
||||
const PopupMenuItem(
|
||||
PopupMenuItem(
|
||||
value: 'txt',
|
||||
child: Row(
|
||||
children: [
|
||||
Icon(Icons.text_snippet),
|
||||
SizedBox(width: 8),
|
||||
Text('Export as Text'),
|
||||
const Icon(Icons.text_snippet),
|
||||
const SizedBox(width: 8),
|
||||
Text(AppLocalizations.of(context)!.exportAsText),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -411,8 +411,8 @@ class _PacketLogScreenState extends State<PacketLogScreen> {
|
||||
_filterDirection = null;
|
||||
});
|
||||
},
|
||||
icon: const Icon(Icons.clear_all),
|
||||
label: const Text('Clear filters'),
|
||||
icon: Icon(Icons.clear_all),
|
||||
label: Text(AppLocalizations.of(context)!.clearFilters),
|
||||
),
|
||||
],
|
||||
],
|
||||
@@ -519,24 +519,24 @@ class _PacketLogCard extends StatelessWidget {
|
||||
children: [
|
||||
_FactCard(
|
||||
icon: isRx ? Icons.call_received : Icons.call_made,
|
||||
label: 'Direction',
|
||||
label: AppLocalizations.of(context)!.direction,
|
||||
value: isRx ? 'RX' : 'TX',
|
||||
accent: directionColor,
|
||||
),
|
||||
_FactCard(
|
||||
icon: Icons.data_object,
|
||||
label: 'Size',
|
||||
label: AppLocalizations.of(context)!.size,
|
||||
value: '${log.rawData.length} bytes',
|
||||
),
|
||||
_FactCard(
|
||||
icon: Icons.schedule,
|
||||
label: 'Captured',
|
||||
label: AppLocalizations.of(context)!.captured,
|
||||
value: _formatTimestamp(log.timestamp),
|
||||
),
|
||||
if (log.responseCode != null)
|
||||
_FactCard(
|
||||
icon: Icons.sell,
|
||||
label: 'Opcode',
|
||||
label: AppLocalizations.of(context)!.opcode,
|
||||
value: log.opcodeName,
|
||||
),
|
||||
],
|
||||
@@ -565,7 +565,7 @@ class _PacketLogCard extends StatelessWidget {
|
||||
const SizedBox(height: 10),
|
||||
if (rxInfo?.rssiDbm != null)
|
||||
_SignalMeter(
|
||||
label: 'RSSI',
|
||||
label: AppLocalizations.of(context)!.rssi,
|
||||
valueLabel: '${rxInfo!.rssiDbm} dBm',
|
||||
normalized: _normalizeRssi(
|
||||
rxInfo.rssiDbm!.toDouble(),
|
||||
@@ -573,9 +573,9 @@ class _PacketLogCard extends StatelessWidget {
|
||||
color: _rssiColor(rxInfo.rssiDbm!.toDouble()),
|
||||
),
|
||||
if (rxInfo?.snrDb != null) ...[
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
_SignalMeter(
|
||||
label: 'SNR',
|
||||
label: AppLocalizations.of(context)!.snr,
|
||||
valueLabel:
|
||||
'${rxInfo!.snrDb!.toStringAsFixed(1)} dB',
|
||||
normalized: _normalizeSnr(rxInfo.snrDb!),
|
||||
@@ -854,17 +854,17 @@ class _RouteSection extends StatelessWidget {
|
||||
children: [
|
||||
_FactCard(
|
||||
icon: Icons.route,
|
||||
label: 'Payload',
|
||||
label: AppLocalizations.of(context)!.payload,
|
||||
value: _payloadTypeLabel(route.payloadType),
|
||||
),
|
||||
_FactCard(
|
||||
icon: Icons.hub,
|
||||
label: 'Hops',
|
||||
label: AppLocalizations.of(context)!.hops,
|
||||
value: '${route.hopCount}',
|
||||
),
|
||||
_FactCard(
|
||||
icon: Icons.tag,
|
||||
label: 'Hash size',
|
||||
label: AppLocalizations.of(context)!.hashSize,
|
||||
value:
|
||||
'${route.hashSize} byte${route.hashSize == 1 ? '' : 's'}',
|
||||
),
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:provider/provider.dart';
|
||||
import '../models/config_profile.dart';
|
||||
import '../services/profile_manager.dart';
|
||||
import '../services/profile_workspace_coordinator.dart';
|
||||
import '../l10n/app_localizations.dart';
|
||||
|
||||
class ProfilesScreen extends StatelessWidget {
|
||||
const ProfilesScreen({super.key});
|
||||
@@ -15,7 +16,7 @@ class ProfilesScreen extends StatelessWidget {
|
||||
final profiles = profileManager.visibleProfiles;
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('Profiles'),
|
||||
title: Text(AppLocalizations.of(context)!.profiles),
|
||||
actions: [
|
||||
IconButton(
|
||||
onPressed: () async {
|
||||
@@ -30,12 +31,12 @@ class ProfilesScreen extends StatelessWidget {
|
||||
),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () => _createProfile(context),
|
||||
icon: const Icon(Icons.add),
|
||||
label: const Text('New Profile'),
|
||||
icon: Icon(Icons.add),
|
||||
label: Text(AppLocalizations.of(context)!.newProfile),
|
||||
),
|
||||
body: profiles.isEmpty
|
||||
? const Center(
|
||||
child: Text('Enable profiles to start managing them.'),
|
||||
? Center(
|
||||
child: Text(AppLocalizations.of(context)!.enableProfilesToStartManagingThem),
|
||||
)
|
||||
: ListView.builder(
|
||||
padding: const EdgeInsets.all(16),
|
||||
@@ -73,7 +74,7 @@ class ProfilesScreen extends StatelessWidget {
|
||||
).colorScheme.primaryContainer,
|
||||
borderRadius: BorderRadius.circular(999),
|
||||
),
|
||||
child: const Text('Active'),
|
||||
child: Text(AppLocalizations.of(context)!.active),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -90,7 +91,7 @@ class ProfilesScreen extends StatelessWidget {
|
||||
.read<ProfileWorkspaceCoordinator>()
|
||||
.openProfile(profile.id);
|
||||
},
|
||||
child: const Text('Open'),
|
||||
child: Text(AppLocalizations.of(context)!.open),
|
||||
),
|
||||
OutlinedButton(
|
||||
onPressed: () async {
|
||||
@@ -111,7 +112,7 @@ class ProfilesScreen extends StatelessWidget {
|
||||
.read<ProfileWorkspaceCoordinator>()
|
||||
.exportProfile(resolved);
|
||||
},
|
||||
child: const Text('Share'),
|
||||
child: Text(AppLocalizations.of(context)!.share),
|
||||
),
|
||||
PopupMenuButton<String>(
|
||||
onSelected: (value) async {
|
||||
@@ -132,14 +133,14 @@ class ProfilesScreen extends StatelessWidget {
|
||||
}
|
||||
},
|
||||
itemBuilder: (context) => [
|
||||
const PopupMenuItem(
|
||||
PopupMenuItem(
|
||||
value: 'duplicate',
|
||||
child: Text('Duplicate'),
|
||||
child: Text(AppLocalizations.of(context)!.duplicate),
|
||||
),
|
||||
if (!profile.isDefault)
|
||||
const PopupMenuItem(
|
||||
PopupMenuItem(
|
||||
value: 'rename',
|
||||
child: Text('Rename'),
|
||||
child: Text(AppLocalizations.of(context)!.rename),
|
||||
),
|
||||
if (!profile.isDefault)
|
||||
const PopupMenuItem(
|
||||
@@ -187,7 +188,7 @@ class ProfilesScreen extends StatelessWidget {
|
||||
final name = await showDialog<String>(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: const Text('Create Profile'),
|
||||
title: Text(AppLocalizations.of(context)!.createProfile),
|
||||
content: TextField(
|
||||
controller: controller,
|
||||
autofocus: true,
|
||||
@@ -200,7 +201,7 @@ class ProfilesScreen extends StatelessWidget {
|
||||
),
|
||||
FilledButton(
|
||||
onPressed: () => Navigator.of(context).pop(controller.text.trim()),
|
||||
child: const Text('Create'),
|
||||
child: Text(AppLocalizations.of(context)!.create),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -221,7 +222,7 @@ class ProfilesScreen extends StatelessWidget {
|
||||
final name = await showDialog<String>(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: const Text('Rename Profile'),
|
||||
title: Text(AppLocalizations.of(context)!.renameProfile),
|
||||
content: TextField(
|
||||
controller: controller,
|
||||
autofocus: true,
|
||||
|
||||
@@ -10,6 +10,7 @@ import '../models/contact.dart';
|
||||
import '../providers/connection_provider.dart';
|
||||
import '../providers/contacts_provider.dart';
|
||||
import '../services/mesh_map_nodes_service.dart';
|
||||
import '../l10n/app_localizations.dart';
|
||||
|
||||
class RepeatersMapScreen extends StatefulWidget {
|
||||
const RepeatersMapScreen({super.key});
|
||||
@@ -191,18 +192,18 @@ class _RepeatersMapScreenState extends State<RepeatersMapScreen> {
|
||||
context,
|
||||
).textTheme.titleLarge?.copyWith(fontWeight: FontWeight.w700),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
SizedBox(height: 12),
|
||||
_InfoLine(
|
||||
label: 'Public key',
|
||||
label: AppLocalizations.of(context)!.publicKeyLabel,
|
||||
value: repeater.publicKey,
|
||||
monospace: true,
|
||||
),
|
||||
_InfoLine(
|
||||
label: 'Coordinates',
|
||||
label: AppLocalizations.of(context)!.coordinates,
|
||||
value:
|
||||
'${repeater.latitude.toStringAsFixed(5)}, ${repeater.longitude.toStringAsFixed(5)}',
|
||||
),
|
||||
_InfoLine(label: 'Source', value: repeater.sourceLabel),
|
||||
_InfoLine(label: AppLocalizations.of(context)!.source, value: repeater.sourceLabel),
|
||||
const SizedBox(height: 12),
|
||||
if (canAdd)
|
||||
SizedBox(
|
||||
@@ -233,8 +234,8 @@ class _RepeatersMapScreenState extends State<RepeatersMapScreen> {
|
||||
width: double.infinity,
|
||||
child: FilledButton.icon(
|
||||
onPressed: null,
|
||||
icon: const Icon(Icons.check_circle),
|
||||
label: const Text('Already in contacts'),
|
||||
icon: Icon(Icons.check_circle),
|
||||
label: Text(AppLocalizations.of(context)!.alreadyInContacts),
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -253,8 +254,8 @@ class _RepeatersMapScreenState extends State<RepeatersMapScreen> {
|
||||
if (!connectionProvider.deviceInfo.isConnected) {
|
||||
if (!mounted) return;
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Connect to a device before adding contacts'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.connectToADeviceBeforeAddingContacts),
|
||||
),
|
||||
);
|
||||
return;
|
||||
@@ -366,7 +367,7 @@ class _RepeatersMapScreenState extends State<RepeatersMapScreen> {
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text('Repeaters Map'),
|
||||
title: Text(AppLocalizations.of(context)!.repeatersMap),
|
||||
actions: [
|
||||
IconButton(
|
||||
onPressed: _isLoading
|
||||
@@ -446,18 +447,18 @@ class _RepeatersMapScreenState extends State<RepeatersMapScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: const [
|
||||
children: [
|
||||
_LegendRow(
|
||||
color: Color(0xFF7C3AED),
|
||||
label: 'From contacts',
|
||||
color: const Color(0xFF7C3AED),
|
||||
label: AppLocalizations.of(context)!.fromContacts,
|
||||
),
|
||||
SizedBox(height: 8),
|
||||
const SizedBox(height: 8),
|
||||
_LegendRow(
|
||||
color: Color(0xFFE8681D),
|
||||
label: 'Online only',
|
||||
color: const Color(0xFFE8681D),
|
||||
label: AppLocalizations.of(context)!.onlineOnly,
|
||||
),
|
||||
SizedBox(height: 8),
|
||||
_LegendRow(color: Color(0xFF1B8F4F), label: 'In both'),
|
||||
const SizedBox(height: 8),
|
||||
_LegendRow(color: const Color(0xFF1B8F4F), label: AppLocalizations.of(context)!.inBoth),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -240,7 +240,7 @@ class _SarTemplateManagementScreenState extends State<SarTemplateManagementScree
|
||||
PopupMenuItem(
|
||||
value: 'import',
|
||||
child: ListTile(
|
||||
leading: const Icon(Icons.download),
|
||||
leading: Icon(Icons.download),
|
||||
title: Text(l10n.importFromClipboard),
|
||||
contentPadding: EdgeInsets.zero,
|
||||
),
|
||||
@@ -248,7 +248,7 @@ class _SarTemplateManagementScreenState extends State<SarTemplateManagementScree
|
||||
PopupMenuItem(
|
||||
value: 'export',
|
||||
child: ListTile(
|
||||
leading: const Icon(Icons.upload),
|
||||
leading: Icon(Icons.upload),
|
||||
title: Text(l10n.exportToClipboard),
|
||||
contentPadding: EdgeInsets.zero,
|
||||
),
|
||||
@@ -257,7 +257,7 @@ class _SarTemplateManagementScreenState extends State<SarTemplateManagementScree
|
||||
PopupMenuItem(
|
||||
value: 'reset',
|
||||
child: ListTile(
|
||||
leading: const Icon(Icons.restart_alt),
|
||||
leading: Icon(Icons.restart_alt),
|
||||
title: Text(l10n.resetToDefaults),
|
||||
contentPadding: EdgeInsets.zero,
|
||||
),
|
||||
@@ -283,14 +283,14 @@ class _SarTemplateManagementScreenState extends State<SarTemplateManagementScree
|
||||
size: 64,
|
||||
color: colorScheme.onSurface.withValues(alpha: 0.3),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
Text(
|
||||
l10n.noTemplates,
|
||||
style: theme.textTheme.titleMedium?.copyWith(
|
||||
color: colorScheme.onSurface.withValues(alpha: 0.6),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
Text(
|
||||
l10n.tapAddToCreate,
|
||||
style: theme.textTheme.bodyMedium?.copyWith(
|
||||
@@ -317,7 +317,7 @@ class _SarTemplateManagementScreenState extends State<SarTemplateManagementScree
|
||||
),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: _addTemplate,
|
||||
icon: const Icon(Icons.add),
|
||||
icon: Icon(Icons.add),
|
||||
label: Text(l10n.addTemplate),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -8,6 +8,7 @@ import '../providers/connection_provider.dart';
|
||||
import '../providers/contacts_provider.dart';
|
||||
import '../providers/sensors_provider.dart';
|
||||
import '../widgets/sensors/sensor_telemetry_card.dart';
|
||||
import '../l10n/app_localizations.dart';
|
||||
|
||||
class SensorsTab extends StatefulWidget {
|
||||
final bool isActive;
|
||||
@@ -121,12 +122,12 @@ class _SensorsTabState extends State<SensorsTab> {
|
||||
shrinkWrap: true,
|
||||
padding: const EdgeInsets.only(bottom: 20),
|
||||
children: [
|
||||
const ListTile(
|
||||
title: Text(
|
||||
ListTile(
|
||||
title: const Text(
|
||||
'Add sensor node',
|
||||
style: TextStyle(fontWeight: FontWeight.bold),
|
||||
),
|
||||
subtitle: Text('Pick a relay or node to watch in Sensors.'),
|
||||
subtitle: Text(AppLocalizations.of(context)!.pickARelayOrNodeToWatchInSensors),
|
||||
),
|
||||
...candidates.map(
|
||||
(contact) => ListTile(
|
||||
@@ -209,7 +210,7 @@ class _SensorsTabState extends State<SensorsTab> {
|
||||
final didSave = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (dialogContext) => AlertDialog(
|
||||
title: const Text('Rename value'),
|
||||
title: Text(AppLocalizations.of(context)!.renameValue),
|
||||
content: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -388,10 +389,10 @@ class _SensorCustomizeView extends StatelessWidget {
|
||||
title: Text('Customize ${contact?.displayName ?? 'Sensor'}'),
|
||||
),
|
||||
body: ListView(
|
||||
padding: const EdgeInsets.fromLTRB(16, 16, 16, 24),
|
||||
padding: EdgeInsets.fromLTRB(16, 16, 16, 24),
|
||||
children: [
|
||||
_SensorCustomizeSectionCard(
|
||||
title: 'Live preview',
|
||||
title: AppLocalizations.of(context)!.livePreview,
|
||||
subtitle:
|
||||
'Changes apply immediately. This card matches the current dashboard layout for this sensor.',
|
||||
child: SensorTelemetryCard(
|
||||
@@ -414,7 +415,7 @@ class _SensorCustomizeView extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
_SensorCustomizeSectionCard(
|
||||
title: 'Refresh schedule',
|
||||
title: AppLocalizations.of(context)!.refreshSchedule,
|
||||
subtitle:
|
||||
'Choose how often this sensor should refresh while your device stays connected.',
|
||||
child: SensorAutoRefreshOptions(
|
||||
@@ -702,8 +703,8 @@ class SensorMetricSelectorItem extends StatelessWidget {
|
||||
fontWeight: FontWeight.w700,
|
||||
),
|
||||
),
|
||||
icon: const Icon(Icons.edit_outlined, size: 18),
|
||||
label: const Text('Rename'),
|
||||
icon: Icon(Icons.edit_outlined, size: 18),
|
||||
label: Text(AppLocalizations.of(context)!.rename),
|
||||
),
|
||||
if (showChannelChip)
|
||||
Container(
|
||||
@@ -911,7 +912,7 @@ class _EmptySensorsStateState extends State<_EmptySensorsState> {
|
||||
await connectionProvider.discoverNodeType(advertType: 4);
|
||||
if (mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(content: Text('Sensor discovery sent')),
|
||||
SnackBar(content: Text(AppLocalizations.of(context)!.sensorDiscoverySent)),
|
||||
);
|
||||
}
|
||||
} finally {
|
||||
|
||||
@@ -192,7 +192,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
});
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(const SnackBar(content: Text('Developer mode disabled')));
|
||||
).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.developerModeDisabled)));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -206,7 +206,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
});
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
).showSnackBar(const SnackBar(content: Text('Developer mode enabled')));
|
||||
).showSnackBar(SnackBar(content: Text(AppLocalizations.of(context)!.developerModeEnabled)));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -328,7 +328,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
final value = await showDialog<double>(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: const Text('Fast GPS movement threshold'),
|
||||
title: Text(AppLocalizations.of(context)!.fastGpsMovementThreshold),
|
||||
content: TextField(
|
||||
controller: controller,
|
||||
keyboardType: const TextInputType.numberWithOptions(decimal: true),
|
||||
@@ -369,7 +369,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
final value = await showDialog<int>(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: const Text('Fast GPS active-use interval'),
|
||||
title: Text(AppLocalizations.of(context)!.fastGpsActiveuseInterval),
|
||||
content: TextField(
|
||||
controller: controller,
|
||||
keyboardType: TextInputType.number,
|
||||
@@ -558,8 +558,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
if (kIsWeb || defaultTargetPlatform != TargetPlatform.android) {
|
||||
if (mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Update check is only available on Android'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.updateCheckIsOnlyAvailableOnAndroid),
|
||||
backgroundColor: Colors.orange,
|
||||
),
|
||||
);
|
||||
@@ -583,8 +583,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
|
||||
if (!updateInfo.isAvailable) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('You are running the latest version'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.youAreRunningTheLatestVersion),
|
||||
backgroundColor: Colors.green,
|
||||
),
|
||||
);
|
||||
@@ -593,8 +593,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
|
||||
if (updateInfo.downloadUrl == null) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Update available but download URL not found'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.updateAvailableButDownloadUrlNotFound),
|
||||
backgroundColor: Colors.orange,
|
||||
),
|
||||
);
|
||||
@@ -736,7 +736,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
title: Row(
|
||||
children: [
|
||||
const Icon(Icons.settings, size: 24),
|
||||
const SizedBox(width: 12),
|
||||
SizedBox(width: 12),
|
||||
Text(AppLocalizations.of(context)!.locationPermission),
|
||||
],
|
||||
),
|
||||
@@ -878,7 +878,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
final confirmed = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: const Text('Clear Messages'),
|
||||
title: Text(AppLocalizations.of(context)!.clearMessages),
|
||||
content: const Text(
|
||||
'This will permanently delete all stored messages. Are you sure?',
|
||||
),
|
||||
@@ -907,8 +907,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
if (!mounted) return;
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('All messages cleared'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.allMessagesCleared),
|
||||
backgroundColor: Colors.orange,
|
||||
),
|
||||
);
|
||||
@@ -918,7 +918,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
final confirmed = await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: const Text('Clear online trace database'),
|
||||
title: Text(AppLocalizations.of(context)!.clearOnlineTraceDatabase),
|
||||
content: const Text(
|
||||
'This removes the cached online node database used as a trace fallback.',
|
||||
),
|
||||
@@ -951,8 +951,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
});
|
||||
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Online trace database cleared'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.onlineTraceDatabaseCleared),
|
||||
backgroundColor: Colors.orange,
|
||||
),
|
||||
);
|
||||
@@ -978,7 +978,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
final selected = await showDialog<int>(
|
||||
context: context,
|
||||
builder: (context) => SimpleDialog(
|
||||
title: const Text('Route path byte size'),
|
||||
title: Text(AppLocalizations.of(context)!.routePathByteSize),
|
||||
children: [
|
||||
for (final value in RouteHashPreferences.supportedSizes)
|
||||
SimpleDialogOption(
|
||||
@@ -1024,21 +1024,21 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader('Appearance'),
|
||||
_buildSettingsCard([
|
||||
ListTile(
|
||||
leading: const Icon(Icons.palette),
|
||||
leading: Icon(Icons.palette),
|
||||
title: Text(AppLocalizations.of(context)!.theme),
|
||||
subtitle: Text(AppTheme.getThemeDisplayName(_selectedTheme)),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: () => _showThemeDialog(),
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.language),
|
||||
leading: Icon(Icons.language),
|
||||
title: Text(AppLocalizations.of(context)!.language),
|
||||
subtitle: Text(LocalePreferences.getDisplayName(_selectedLocale)),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: () => _showLanguageDialog(),
|
||||
),
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.radar),
|
||||
secondary: Icon(Icons.radar),
|
||||
title: Text(AppLocalizations.of(context)!.showRxTxIndicators),
|
||||
subtitle: Text(
|
||||
AppLocalizations.of(context)!.displayPacketActivity,
|
||||
@@ -1056,8 +1056,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader('Notifications'),
|
||||
_buildSettingsCard([
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.chat_bubble_outline),
|
||||
title: const Text('Message notifications'),
|
||||
secondary: Icon(Icons.chat_bubble_outline),
|
||||
title: Text(AppLocalizations.of(context)!.messageNotifications),
|
||||
subtitle: const Text(
|
||||
'Notify for incoming direct and channel messages',
|
||||
),
|
||||
@@ -1072,8 +1072,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
},
|
||||
),
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.warning_amber_outlined),
|
||||
title: const Text('SAR alerts'),
|
||||
secondary: Icon(Icons.warning_amber_outlined),
|
||||
title: Text(AppLocalizations.of(context)!.sarAlerts),
|
||||
subtitle: const Text(
|
||||
'Notify for incoming SAR markers such as found person or fire',
|
||||
),
|
||||
@@ -1086,8 +1086,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
},
|
||||
),
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.contact_page_outlined),
|
||||
title: const Text('Discovery notifications'),
|
||||
secondary: Icon(Icons.contact_page_outlined),
|
||||
title: Text(AppLocalizations.of(context)!.discoveryNotifications),
|
||||
subtitle: const Text(
|
||||
'Notify when new contacts appear in Discovery',
|
||||
),
|
||||
@@ -1102,8 +1102,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
},
|
||||
),
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.system_update),
|
||||
title: const Text('Update notifications'),
|
||||
secondary: Icon(Icons.system_update),
|
||||
title: Text(AppLocalizations.of(context)!.updateNotifications),
|
||||
subtitle: const Text(
|
||||
'Notify when a newer app version is available',
|
||||
),
|
||||
@@ -1118,8 +1118,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
},
|
||||
),
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.visibility_off_outlined),
|
||||
title: const Text('Mute while app is open'),
|
||||
secondary: Icon(Icons.visibility_off_outlined),
|
||||
title: Text(AppLocalizations.of(context)!.muteWhileAppIsOpen),
|
||||
subtitle: const Text(
|
||||
'Do not show local notifications while the app is in the foreground',
|
||||
),
|
||||
@@ -1139,7 +1139,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSettingsCard([
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.map_outlined),
|
||||
secondary: Icon(Icons.map_outlined),
|
||||
title: Text(AppLocalizations.of(context)!.disableMap),
|
||||
subtitle: Text(
|
||||
AppLocalizations.of(context)!.disableMapDescription,
|
||||
@@ -1152,8 +1152,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.contacts_outlined),
|
||||
title: const Text('Disable Contacts'),
|
||||
secondary: Icon(Icons.contacts_outlined),
|
||||
title: Text(AppLocalizations.of(context)!.disableContacts),
|
||||
subtitle: const Text(
|
||||
'Hide the contacts tab to simplify navigation',
|
||||
),
|
||||
@@ -1165,8 +1165,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.sensors),
|
||||
title: const Text('Enable Sensors tab'),
|
||||
secondary: Icon(Icons.sensors),
|
||||
title: Text(AppLocalizations.of(context)!.enableSensorsTab),
|
||||
subtitle: const Text(
|
||||
'Show a dedicated tab for watched relay and node telemetry',
|
||||
),
|
||||
@@ -1181,8 +1181,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader('Messaging'),
|
||||
_buildSettingsCard([
|
||||
ListTile(
|
||||
leading: const Icon(Icons.alt_route),
|
||||
title: const Text('Route path byte size'),
|
||||
leading: Icon(Icons.alt_route),
|
||||
title: Text(AppLocalizations.of(context)!.routePathByteSize),
|
||||
subtitle: Text(
|
||||
'$_routeHashSize byte${_routeHashSize == 1 ? '' : 's'} for manual contact routes',
|
||||
),
|
||||
@@ -1191,8 +1191,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.swap_horiz),
|
||||
title: const Text('Auto route rotation'),
|
||||
secondary: Icon(Icons.swap_horiz),
|
||||
title: Text(AppLocalizations.of(context)!.autoRouteRotation),
|
||||
subtitle: const Text(
|
||||
'Rotate between best known direct paths and flood mode for room/contact sends',
|
||||
),
|
||||
@@ -1204,8 +1204,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.route),
|
||||
title: const Text('Nearest repeater fallback'),
|
||||
secondary: Icon(Icons.route),
|
||||
title: Text(AppLocalizations.of(context)!.nearestRepeaterFallback),
|
||||
subtitle: const Text(
|
||||
'After normal retries fail, try one final resend through the nearest repeater',
|
||||
),
|
||||
@@ -1217,8 +1217,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.route),
|
||||
title: const Text('Clear path on max retry'),
|
||||
secondary: Icon(Icons.route),
|
||||
title: Text(AppLocalizations.of(context)!.clearPathOnMaxRetry),
|
||||
subtitle: const Text(
|
||||
'Clear the route only after all retries and final router fallback fail',
|
||||
),
|
||||
@@ -1234,13 +1234,13 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
'Clear Messages',
|
||||
style: TextStyle(color: Colors.red),
|
||||
),
|
||||
subtitle: const Text('Delete all stored message history'),
|
||||
subtitle: Text(AppLocalizations.of(context)!.deleteAllStoredMessageHistory),
|
||||
onTap: _clearMessages,
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => ListTile(
|
||||
leading: const Icon(Icons.format_size),
|
||||
title: const Text('Message font size'),
|
||||
leading: Icon(Icons.format_size),
|
||||
title: Text(AppLocalizations.of(context)!.messageFontSize),
|
||||
subtitle: Text(
|
||||
'${(appProvider.messageFontScale * 100).round()}% of default',
|
||||
),
|
||||
@@ -1264,8 +1264,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader('Tracing'),
|
||||
_buildSettingsCard([
|
||||
ListTile(
|
||||
leading: const Icon(Icons.cloud_sync),
|
||||
title: const Text('Online trace database'),
|
||||
leading: Icon(Icons.cloud_sync),
|
||||
title: Text(AppLocalizations.of(context)!.onlineTraceDatabase),
|
||||
subtitle: Text(_onlineTraceCacheSubtitle()),
|
||||
),
|
||||
ListTile(
|
||||
@@ -1299,8 +1299,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader('Map'),
|
||||
_buildSettingsCard([
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.explore),
|
||||
title: const Text('Rotate map with heading'),
|
||||
secondary: Icon(Icons.explore),
|
||||
title: Text(AppLocalizations.of(context)!.rotateMapWithHeading),
|
||||
subtitle: const Text(
|
||||
'Rotate the map based on your compass or movement heading',
|
||||
),
|
||||
@@ -1313,8 +1313,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
},
|
||||
),
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.bug_report_outlined),
|
||||
title: const Text('Show map debug info'),
|
||||
secondary: Icon(Icons.bug_report_outlined),
|
||||
title: Text(AppLocalizations.of(context)!.showMapDebugInfo),
|
||||
subtitle: const Text(
|
||||
'Display extra map diagnostics and internal state overlays',
|
||||
),
|
||||
@@ -1327,8 +1327,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
},
|
||||
),
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.fullscreen),
|
||||
title: const Text('Open map in fullscreen'),
|
||||
secondary: Icon(Icons.fullscreen),
|
||||
title: Text(AppLocalizations.of(context)!.openMapInFullscreen),
|
||||
subtitle: const Text(
|
||||
'Start the map tab in fullscreen mode by default',
|
||||
),
|
||||
@@ -1342,9 +1342,9 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<DrawingProvider>(
|
||||
builder: (context, drawingProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.fmd_good_outlined),
|
||||
title: const Text('Show SAR markers'),
|
||||
subtitle: const Text('Display SAR markers on the main map'),
|
||||
secondary: Icon(Icons.fmd_good_outlined),
|
||||
title: Text(AppLocalizations.of(context)!.showSarMarkersLabel),
|
||||
subtitle: Text(AppLocalizations.of(context)!.displaySarMarkersOnTheMainMap),
|
||||
value: drawingProvider.showSarMarkers,
|
||||
onChanged: (value) {
|
||||
drawingProvider.toggleSarMarkers();
|
||||
@@ -1353,8 +1353,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<MapProvider>(
|
||||
builder: (context, mapProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.timeline),
|
||||
title: const Text('Show all contact trails'),
|
||||
secondary: Icon(Icons.timeline),
|
||||
title: Text(AppLocalizations.of(context)!.showAllContactTrailsLabel),
|
||||
subtitle: const Text(
|
||||
'Display location trails for all contacts that have history',
|
||||
),
|
||||
@@ -1366,8 +1366,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<MapProvider>(
|
||||
builder: (context, mapProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.router_outlined),
|
||||
title: const Text('Hide repeaters on map'),
|
||||
secondary: Icon(Icons.router_outlined),
|
||||
title: Text(AppLocalizations.of(context)!.hideRepeatersOnMap),
|
||||
subtitle: const Text(
|
||||
'Hide repeater contacts from the main map view',
|
||||
),
|
||||
@@ -1397,16 +1397,16 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
_buildSettingsCard([
|
||||
ListTile(
|
||||
leading: const Icon(Icons.graphic_eq),
|
||||
title: const Text('Voice bitrate'),
|
||||
leading: Icon(Icons.graphic_eq),
|
||||
title: Text(AppLocalizations.of(context)!.voiceBitrate),
|
||||
subtitle: Text(_voiceBitrateSubtitle(_voiceBitrate)),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: _showVoiceBitrateDialog,
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.tune),
|
||||
title: const Text('Band-pass filter voice'),
|
||||
secondary: Icon(Icons.tune),
|
||||
title: Text(AppLocalizations.of(context)!.bandpassFilterVoice),
|
||||
subtitle: const Text(
|
||||
'Keeps speech frequencies and cuts low/high noise',
|
||||
),
|
||||
@@ -1418,9 +1418,9 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.compress),
|
||||
title: const Text('Voice compressor'),
|
||||
subtitle: const Text('Balances quiet and loud speech levels'),
|
||||
secondary: Icon(Icons.compress),
|
||||
title: Text(AppLocalizations.of(context)!.voiceCompressor),
|
||||
subtitle: Text(AppLocalizations.of(context)!.balancesQuietAndLoudSpeechLevels),
|
||||
value: appProvider.isVoiceCompressorEnabled,
|
||||
onChanged: (value) async {
|
||||
await appProvider.toggleVoiceCompressorEnabled(value);
|
||||
@@ -1429,9 +1429,9 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.speed),
|
||||
title: const Text('Voice limiter'),
|
||||
subtitle: const Text('Prevents clipping peaks before encoding'),
|
||||
secondary: Icon(Icons.speed),
|
||||
title: Text(AppLocalizations.of(context)!.voiceLimiter),
|
||||
subtitle: Text(AppLocalizations.of(context)!.preventsClippingPeaksBeforeEncoding),
|
||||
value: appProvider.isVoiceLimiterEnabled,
|
||||
onChanged: (value) async {
|
||||
await appProvider.toggleVoiceLimiterEnabled(value);
|
||||
@@ -1440,9 +1440,9 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.auto_fix_high),
|
||||
title: const Text('Mic auto gain'),
|
||||
subtitle: const Text('Lets the recorder adjust input level'),
|
||||
secondary: Icon(Icons.auto_fix_high),
|
||||
title: Text(AppLocalizations.of(context)!.micAutoGain),
|
||||
subtitle: Text(AppLocalizations.of(context)!.letsTheRecorderAdjustInputLevel),
|
||||
value: appProvider.isVoiceAutoGainEnabled,
|
||||
onChanged: (value) async {
|
||||
await appProvider.toggleVoiceAutoGainEnabled(value);
|
||||
@@ -1451,8 +1451,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.hearing_disabled),
|
||||
title: const Text('Echo cancellation'),
|
||||
secondary: Icon(Icons.hearing_disabled),
|
||||
title: Text(AppLocalizations.of(context)!.echoCancellation),
|
||||
subtitle: const Text(
|
||||
'Uses recorder echo cancellation if available',
|
||||
),
|
||||
@@ -1464,8 +1464,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.noise_control_off),
|
||||
title: const Text('Noise suppression'),
|
||||
secondary: Icon(Icons.noise_control_off),
|
||||
title: Text(AppLocalizations.of(context)!.noiseSuppression),
|
||||
subtitle: const Text(
|
||||
'Uses recorder noise suppression if available',
|
||||
),
|
||||
@@ -1477,8 +1477,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
Consumer<AppProvider>(
|
||||
builder: (context, appProvider, child) => SwitchListTile(
|
||||
secondary: const Icon(Icons.content_cut),
|
||||
title: const Text('Trim silence in voice messages'),
|
||||
secondary: Icon(Icons.content_cut),
|
||||
title: Text(AppLocalizations.of(context)!.trimSilenceInVoiceMessages),
|
||||
subtitle: const Text(
|
||||
'Removes long silent parts before sending voice',
|
||||
),
|
||||
@@ -1493,15 +1493,15 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader('Images'),
|
||||
_buildSettingsCard([
|
||||
ListTile(
|
||||
leading: const Icon(Icons.photo_size_select_large),
|
||||
title: const Text('Max image size'),
|
||||
leading: Icon(Icons.photo_size_select_large),
|
||||
title: Text(AppLocalizations.of(context)!.maxImageSize),
|
||||
subtitle: Text('$_imageMaxSize×$_imageMaxSize px'),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: _showImageMaxSizeDialog,
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.tune),
|
||||
title: const Text('Image compression'),
|
||||
leading: Icon(Icons.tune),
|
||||
title: Text(AppLocalizations.of(context)!.imageCompression),
|
||||
subtitle: Text(
|
||||
'$_imageCompression / 90 (higher = smaller file)',
|
||||
),
|
||||
@@ -1519,8 +1519,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
),
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.invert_colors),
|
||||
title: const Text('Grayscale'),
|
||||
secondary: Icon(Icons.invert_colors),
|
||||
title: Text(AppLocalizations.of(context)!.grayscale),
|
||||
subtitle: const Text(
|
||||
'Converts image to grayscale for smaller file size',
|
||||
),
|
||||
@@ -1532,8 +1532,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
},
|
||||
),
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.compress),
|
||||
title: const Text('Ultra mode'),
|
||||
secondary: Icon(Icons.compress),
|
||||
title: Text(AppLocalizations.of(context)!.ultraMode),
|
||||
subtitle: const Text(
|
||||
'Extra-aggressive compression with stronger AVIF settings',
|
||||
),
|
||||
@@ -1554,8 +1554,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader('Profiles'),
|
||||
_buildSettingsCard([
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.layers_outlined),
|
||||
title: const Text('Enable Profiles'),
|
||||
secondary: Icon(Icons.layers_outlined),
|
||||
title: Text(AppLocalizations.of(context)!.enableProfiles),
|
||||
subtitle: const Text(
|
||||
'Show profile management UI while keeping the hidden Default profile as the current workspace.',
|
||||
),
|
||||
@@ -1572,8 +1572,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
if (_profilesEnabled)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.folder_copy_outlined),
|
||||
title: const Text('Manage profiles'),
|
||||
leading: Icon(Icons.folder_copy_outlined),
|
||||
title: Text(AppLocalizations.of(context)!.manageProfiles),
|
||||
subtitle: Text(
|
||||
context.watch<ProfileManager>().activeProfileId ==
|
||||
ConfigProfile.defaultProfileId
|
||||
@@ -1594,7 +1594,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader('Templates & Help'),
|
||||
_buildSettingsCard([
|
||||
ListTile(
|
||||
leading: const Icon(Icons.location_searching),
|
||||
leading: Icon(Icons.location_searching),
|
||||
title: Text(AppLocalizations.of(context)!.sarTemplates),
|
||||
subtitle: Text(AppLocalizations.of(context)!.manageSarTemplates),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
@@ -1608,7 +1608,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
},
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.school),
|
||||
leading: Icon(Icons.school),
|
||||
title: Text(AppLocalizations.of(context)!.viewWelcomeTutorial),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: () async {
|
||||
@@ -1629,8 +1629,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader(AppLocalizations.of(context)!.permissionsSection),
|
||||
_buildSettingsCard([
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.gps_fixed),
|
||||
title: const Text('Fast private GPS updates'),
|
||||
secondary: Icon(Icons.gps_fixed),
|
||||
title: Text(AppLocalizations.of(context)!.fastPrivateGpsUpdates),
|
||||
subtitle: const Text(
|
||||
'Use private zero-hop updates while moving significantly or while actively using map/messages.',
|
||||
),
|
||||
@@ -1638,8 +1638,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
onChanged: _setFastLocationUpdatesEnabled,
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.straighten),
|
||||
title: const Text('Movement threshold'),
|
||||
leading: Icon(Icons.straighten),
|
||||
title: Text(AppLocalizations.of(context)!.movementThreshold),
|
||||
subtitle: Text(
|
||||
'${_fastLocationMovementThresholdMeters.toStringAsFixed(0)} m',
|
||||
),
|
||||
@@ -1647,14 +1647,14 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
onTap: _editFastLocationMovementThreshold,
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.timer),
|
||||
title: const Text('Active-use update interval'),
|
||||
leading: Icon(Icons.timer),
|
||||
title: Text(AppLocalizations.of(context)!.activeuseUpdateInterval),
|
||||
subtitle: Text('$_fastLocationActiveCadenceSeconds s'),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: _editFastLocationActiveCadence,
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.location_on),
|
||||
leading: Icon(Icons.location_on),
|
||||
title: Text(AppLocalizations.of(context)!.locationPermission),
|
||||
subtitle: FutureBuilder<LocationPermission>(
|
||||
future: Geolocator.checkPermission(),
|
||||
@@ -1707,7 +1707,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader(AppLocalizations.of(context)!.about),
|
||||
_buildSettingsCard([
|
||||
ListTile(
|
||||
leading: const Icon(Icons.info),
|
||||
leading: Icon(Icons.info),
|
||||
title: Text(AppLocalizations.of(context)!.appVersion),
|
||||
subtitle: Text(
|
||||
_packageInfo != null
|
||||
@@ -1717,12 +1717,12 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
onTap: _handleVersionTap,
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.badge),
|
||||
leading: Icon(Icons.badge),
|
||||
title: Text(AppLocalizations.of(context)!.appName),
|
||||
subtitle: Text(_packageInfo?.appName ?? 'MeshCore SAR'),
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.description),
|
||||
leading: Icon(Icons.description),
|
||||
title: Text(AppLocalizations.of(context)!.aboutMeshCoreSar),
|
||||
subtitle: Text(
|
||||
AppLocalizations.of(context)!.aboutDescription.split('\n\n')[0],
|
||||
@@ -1756,19 +1756,19 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
_buildSectionHeader('Developer & Data'),
|
||||
_buildSettingsCard([
|
||||
ListTile(
|
||||
leading: const Icon(Icons.bug_report),
|
||||
leading: Icon(Icons.bug_report),
|
||||
title: Text(AppLocalizations.of(context)!.packageName),
|
||||
subtitle: Text(_packageInfo?.packageName ?? 'com.meshcore.sar'),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.fromLTRB(16, 12, 16, 4),
|
||||
padding: EdgeInsets.fromLTRB(16, 12, 16, 4),
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.sampleData,
|
||||
style: Theme.of(context).textTheme.titleSmall,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.fromLTRB(16, 0, 16, 8),
|
||||
padding: EdgeInsets.fromLTRB(16, 0, 16, 8),
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.sampleDataDescription,
|
||||
style: Theme.of(context).textTheme.bodySmall?.copyWith(
|
||||
@@ -1791,7 +1791,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
height: 16,
|
||||
child: CircularProgressIndicator(strokeWidth: 2),
|
||||
)
|
||||
: const Icon(Icons.add_circle_outline),
|
||||
: Icon(Icons.add_circle_outline),
|
||||
label: Text(AppLocalizations.of(context)!.loadSampleData),
|
||||
style: ElevatedButton.styleFrom(
|
||||
padding: const EdgeInsets.symmetric(vertical: 12),
|
||||
@@ -1802,7 +1802,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
Expanded(
|
||||
child: OutlinedButton.icon(
|
||||
onPressed: _isLoadingSampleData ? null : _clearSampleData,
|
||||
icon: const Icon(Icons.delete_outline),
|
||||
icon: Icon(Icons.delete_outline),
|
||||
label: Text(AppLocalizations.of(context)!.clearAllData),
|
||||
style: OutlinedButton.styleFrom(
|
||||
foregroundColor: Colors.red,
|
||||
@@ -1908,8 +1908,8 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
onPressed: _isPreviewLoading
|
||||
? null
|
||||
: _selectPreviewImageFromGallery,
|
||||
icon: const Icon(Icons.photo_library_outlined),
|
||||
label: const Text('Select from gallery'),
|
||||
icon: Icon(Icons.photo_library_outlined),
|
||||
label: Text(AppLocalizations.of(context)!.selectFromGallery),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -2115,21 +2115,21 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
children: [
|
||||
Expanded(
|
||||
child: _voiceStatChip(
|
||||
label: 'Band-pass',
|
||||
label: AppLocalizations.of(context)!.bandpass,
|
||||
enabled: bandPassEnabled,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: _voiceStatChip(
|
||||
label: 'Compressor',
|
||||
label: AppLocalizations.of(context)!.compressor,
|
||||
enabled: compressorEnabled,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: _voiceStatChip(
|
||||
label: 'Limiter',
|
||||
label: AppLocalizations.of(context)!.limiter,
|
||||
enabled: limiterEnabled,
|
||||
),
|
||||
),
|
||||
@@ -2140,21 +2140,21 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
children: [
|
||||
Expanded(
|
||||
child: _voiceStatChip(
|
||||
label: 'Auto gain',
|
||||
label: AppLocalizations.of(context)!.autoGain,
|
||||
enabled: autoGainEnabled,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: _voiceStatChip(
|
||||
label: 'Echo cancel',
|
||||
label: AppLocalizations.of(context)!.echoCancel,
|
||||
enabled: echoCancellationEnabled,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: _voiceStatChip(
|
||||
label: 'Noise suppress',
|
||||
label: AppLocalizations.of(context)!.noiseSuppress,
|
||||
enabled: noiseSuppressionEnabled,
|
||||
),
|
||||
),
|
||||
@@ -2165,7 +2165,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
children: [
|
||||
Expanded(
|
||||
child: _voiceStatChip(
|
||||
label: 'Silence trim',
|
||||
label: AppLocalizations.of(context)!.silenceTrim,
|
||||
enabled: silenceTrimEnabled,
|
||||
),
|
||||
),
|
||||
@@ -2237,7 +2237,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
subtitle: Text(AppLocalizations.of(context)!.blueDarkTheme),
|
||||
value: AppThemeMode.dark,
|
||||
),
|
||||
const Divider(),
|
||||
Divider(),
|
||||
RadioListTile<AppThemeMode>(
|
||||
title: Row(
|
||||
children: [
|
||||
@@ -2301,7 +2301,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
),
|
||||
value: AppThemeMode.sarNavyBlue,
|
||||
),
|
||||
const Divider(),
|
||||
Divider(),
|
||||
RadioListTile<AppThemeMode>(
|
||||
title: Text(AppLocalizations.of(context)!.autoSystem),
|
||||
subtitle: Text(
|
||||
@@ -2368,7 +2368,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: const Text('Max image size'),
|
||||
title: Text(AppLocalizations.of(context)!.maxImageSize),
|
||||
content: SingleChildScrollView(
|
||||
child: RadioGroup<int>(
|
||||
groupValue: _imageMaxSize,
|
||||
@@ -2384,7 +2384,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
value: size,
|
||||
title: Text('$size×$size px'),
|
||||
subtitle: size == ImagePreferences.defaultMaxSize
|
||||
? const Text('Default')
|
||||
? Text(AppLocalizations.of(context)!.defaultValue)
|
||||
: null,
|
||||
),
|
||||
)
|
||||
@@ -2406,7 +2406,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: const Text('Voice bitrate'),
|
||||
title: Text(AppLocalizations.of(context)!.voiceBitrate),
|
||||
content: SingleChildScrollView(
|
||||
child: RadioGroup<int>(
|
||||
groupValue: _voiceBitrate,
|
||||
@@ -2425,7 +2425,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
title: Text('$bitrate bps'),
|
||||
subtitle:
|
||||
bitrate == VoiceBitratePreferences.defaultBitrate
|
||||
? const Text('Default')
|
||||
? Text(AppLocalizations.of(context)!.defaultValue)
|
||||
: null,
|
||||
),
|
||||
)
|
||||
@@ -2464,16 +2464,16 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
'Version ${_packageInfo?.version ?? '1.0.0'}',
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
Text(AppLocalizations.of(context)!.aboutDescription),
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
Text(
|
||||
AppLocalizations.of(context)!.technologiesUsed,
|
||||
style: Theme.of(
|
||||
context,
|
||||
).textTheme.titleMedium?.copyWith(fontWeight: FontWeight.bold),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
Text(AppLocalizations.of(context)!.technologiesList),
|
||||
],
|
||||
),
|
||||
@@ -2486,7 +2486,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||
await launchUrl(url, mode: LaunchMode.externalApplication);
|
||||
}
|
||||
},
|
||||
icon: const Icon(Icons.open_in_new),
|
||||
icon: Icon(Icons.open_in_new),
|
||||
label: Text(AppLocalizations.of(context)!.moreInfo),
|
||||
),
|
||||
TextButton(
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:provider/provider.dart';
|
||||
import '../models/device_info.dart';
|
||||
import '../providers/connection_provider.dart';
|
||||
import '../widgets/device/spectrum_scan_panel.dart';
|
||||
import '../l10n/app_localizations.dart';
|
||||
|
||||
class SpectrumScanScreen extends StatefulWidget {
|
||||
const SpectrumScanScreen({super.key});
|
||||
@@ -323,8 +324,8 @@ class _SpectrumScanScreenState extends State<SpectrumScanScreen> {
|
||||
final mergedCandidates = _mergeSectorCandidates(sectorCandidates);
|
||||
if (mergedCandidates.isEmpty) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Spectrum scan returned no candidate frequencies'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.spectrumScanReturnedNoCandidateFrequencies),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
@@ -383,7 +384,7 @@ class _SpectrumScanScreenState extends State<SpectrumScanScreen> {
|
||||
: possibleBracketFrequencies;
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: const Text('Spectrum Scan')),
|
||||
appBar: AppBar(title: Text(AppLocalizations.of(context)!.spectrumScan)),
|
||||
body: ListView(
|
||||
padding: const EdgeInsets.all(16),
|
||||
children: [
|
||||
|
||||
@@ -331,7 +331,7 @@ class _WelcomeWizardScreenState extends State<WelcomeWizardScreen> {
|
||||
if (_currentPage > 0)
|
||||
TextButton.icon(
|
||||
onPressed: _previousPage,
|
||||
icon: const Icon(Icons.arrow_back),
|
||||
icon: Icon(Icons.arrow_back),
|
||||
label: Text(l10n.wizardBack),
|
||||
)
|
||||
else
|
||||
@@ -510,7 +510,7 @@ class _WelcomeWizardScreenState extends State<WelcomeWizardScreen> {
|
||||
? colorScheme.primary
|
||||
: colorScheme.onSurfaceVariant,
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Text(
|
||||
isConnected
|
||||
@@ -601,7 +601,7 @@ class _WelcomeWizardScreenState extends State<WelcomeWizardScreen> {
|
||||
_selectedPreset.summary,
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
),
|
||||
const SizedBox(height: 14),
|
||||
SizedBox(height: 14),
|
||||
...[
|
||||
_FeatureItem(
|
||||
icon: Icons.rule,
|
||||
|
||||
@@ -221,7 +221,7 @@ class _ConnectionDialogState extends State<ConnectionDialog>
|
||||
Icons.info_outline,
|
||||
color: Theme.of(context).colorScheme.onPrimaryContainer,
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.defaultPinInfo,
|
||||
@@ -260,7 +260,7 @@ class _ConnectionDialogState extends State<ConnectionDialog>
|
||||
context,
|
||||
).colorScheme.onSurfaceVariant.withValues(alpha: 0.5),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
Text(
|
||||
AppLocalizations.of(context)!.noDevicesFound,
|
||||
style: TextStyle(
|
||||
@@ -271,7 +271,7 @@ class _ConnectionDialogState extends State<ConnectionDialog>
|
||||
const SizedBox(height: 8),
|
||||
TextButton.icon(
|
||||
onPressed: _refreshBleDevices,
|
||||
icon: const Icon(Icons.refresh),
|
||||
icon: Icon(Icons.refresh),
|
||||
label: Text(AppLocalizations.of(context)!.scanAgain),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -133,7 +133,7 @@ class _AddChannelSheetState extends State<AddChannelSheet> {
|
||||
onPressed: _isCreating
|
||||
? null
|
||||
: () => Navigator.of(context).pop(),
|
||||
icon: const Icon(Icons.close),
|
||||
icon: Icon(Icons.close),
|
||||
tooltip: l10n.close,
|
||||
),
|
||||
],
|
||||
@@ -158,7 +158,7 @@ class _AddChannelSheetState extends State<AddChannelSheet> {
|
||||
size: 20,
|
||||
color: theme.colorScheme.primary,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: Text(
|
||||
l10n.channelTypesInfo,
|
||||
@@ -170,7 +170,7 @@ class _AddChannelSheetState extends State<AddChannelSheet> {
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
TextFormField(
|
||||
controller: _nameController,
|
||||
decoration: InputDecoration(
|
||||
@@ -196,7 +196,7 @@ class _AddChannelSheetState extends State<AddChannelSheet> {
|
||||
},
|
||||
),
|
||||
if (!isHashChannel) ...[
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
TextFormField(
|
||||
controller: _secretController,
|
||||
decoration: InputDecoration(
|
||||
@@ -211,7 +211,7 @@ class _AddChannelSheetState extends State<AddChannelSheet> {
|
||||
textInputAction: TextInputAction.done,
|
||||
onFieldSubmitted: (_) => _handleCreate(),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
Text(
|
||||
l10n.channelSecretHelp,
|
||||
style: theme.textTheme.bodySmall?.copyWith(
|
||||
@@ -236,7 +236,7 @@ class _AddChannelSheetState extends State<AddChannelSheet> {
|
||||
size: 20,
|
||||
color: Colors.blue,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: Text(
|
||||
l10n.hashChannelInfo,
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:provider/provider.dart';
|
||||
|
||||
import '../../models/contact.dart';
|
||||
import '../../models/path_history.dart';
|
||||
import '../../l10n/app_localizations.dart';
|
||||
import '../../providers/app_provider.dart';
|
||||
import '../../providers/connection_provider.dart';
|
||||
import '../../services/contact_route_resolver.dart';
|
||||
@@ -213,6 +214,16 @@ class _ContactRouteDialogState extends State<ContactRouteDialog> {
|
||||
);
|
||||
}
|
||||
|
||||
ParsedContactRoute? get _effectiveRoute {
|
||||
if (_parsedRoute != null) {
|
||||
return _parsedRoute;
|
||||
}
|
||||
if (_errorText != null || _controller.text.trim().isNotEmpty) {
|
||||
return null;
|
||||
}
|
||||
return ContactRouteCodec.direct(hashSize: _selectedHashSize);
|
||||
}
|
||||
|
||||
void _toggleHop(Contact contact) {
|
||||
setState(() {
|
||||
if (_selectedMapHops.any(
|
||||
@@ -415,13 +426,14 @@ class _ContactRouteDialogState extends State<ContactRouteDialog> {
|
||||
),
|
||||
trailing: FilledButton.tonal(
|
||||
onPressed: () => _applyHistoryRecord(record),
|
||||
child: const Text('Use'),
|
||||
child: Text(AppLocalizations.of(context)!.use),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildPreviewSection() {
|
||||
final previewRoute = _effectiveRoute;
|
||||
final colorScheme = Theme.of(context).colorScheme;
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
@@ -435,20 +447,21 @@ class _ContactRouteDialogState extends State<ContactRouteDialog> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
_parsedRoute == null ? 'Route preview' : _parsedRoute!.summary,
|
||||
previewRoute == null ? 'Route preview' : previewRoute.summary,
|
||||
style: Theme.of(context).textTheme.titleSmall,
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
_parsedRoute == null
|
||||
previewRoute == null
|
||||
? 'Pick relays from the list below or open manual edit if you need exact hop tokens.'
|
||||
: '${_parsedRoute!.byteLength} bytes • descriptor 0x${_parsedRoute!.encodedPathLen.toRadixString(16).padLeft(2, '0').toUpperCase()}',
|
||||
: '${previewRoute.byteLength} bytes • descriptor 0x${previewRoute.encodedPathLen.toRadixString(16).padLeft(2, '0').toUpperCase()}',
|
||||
style: Theme.of(context).textTheme.bodySmall,
|
||||
),
|
||||
if (_parsedRoute != null) ...[
|
||||
if (previewRoute != null &&
|
||||
previewRoute.canonicalText.isNotEmpty) ...[
|
||||
const SizedBox(height: 10),
|
||||
SelectableText(
|
||||
_parsedRoute!.canonicalText,
|
||||
previewRoute.canonicalText,
|
||||
style: Theme.of(
|
||||
context,
|
||||
).textTheme.bodyMedium?.copyWith(fontFamily: 'monospace'),
|
||||
@@ -469,7 +482,7 @@ class _ContactRouteDialogState extends State<ContactRouteDialog> {
|
||||
border: Border.all(color: Theme.of(context).dividerColor),
|
||||
),
|
||||
child: Text(
|
||||
'No relays selected yet. Add repeaters below or let auto resolve build a route.',
|
||||
'No relays selected. Save now to use a direct path, or add repeaters below.',
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
),
|
||||
);
|
||||
@@ -590,7 +603,7 @@ class _ContactRouteDialogState extends State<ContactRouteDialog> {
|
||||
_showManualEditor = expanded;
|
||||
});
|
||||
},
|
||||
title: const Text('Manual route edit'),
|
||||
title: Text(AppLocalizations.of(context)!.manualRouteEdit),
|
||||
subtitle: const Text(
|
||||
'Use this when you need to paste or tweak hop tokens directly.',
|
||||
),
|
||||
@@ -728,8 +741,8 @@ class _ContactRouteDialogState extends State<ContactRouteDialog> {
|
||||
children: [
|
||||
FilledButton.tonalIcon(
|
||||
onPressed: _resolvePathAutomatically,
|
||||
icon: const Icon(Icons.auto_fix_high),
|
||||
label: const Text('Auto resolve'),
|
||||
icon: Icon(Icons.auto_fix_high),
|
||||
label: Text(AppLocalizations.of(context)!.autoResolve),
|
||||
),
|
||||
OutlinedButton.icon(
|
||||
onPressed: _selectedMapHops.isEmpty
|
||||
@@ -740,8 +753,8 @@ class _ContactRouteDialogState extends State<ContactRouteDialog> {
|
||||
_syncControllerFromSelectedHops();
|
||||
});
|
||||
},
|
||||
icon: const Icon(Icons.clear_all),
|
||||
label: const Text('Clear relays'),
|
||||
icon: Icon(Icons.clear_all),
|
||||
label: Text(AppLocalizations.of(context)!.clearRelays),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -796,7 +809,7 @@ class _ContactRouteDialogState extends State<ContactRouteDialog> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
if (observedRecord != null) ...[
|
||||
_buildHistoryRecordTile(observedRecord, title: 'Observed mesh route'),
|
||||
_buildHistoryRecordTile(observedRecord, title: AppLocalizations.of(context)!.observedMeshRoute),
|
||||
const SizedBox(height: 16),
|
||||
],
|
||||
if (remainingRecords.isEmpty)
|
||||
@@ -822,6 +835,7 @@ class _ContactRouteDialogState extends State<ContactRouteDialog> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final effectiveRoute = _effectiveRoute;
|
||||
final appProvider = context.watch<AppProvider>();
|
||||
final connectionProvider = context.watch<ConnectionProvider>();
|
||||
final selfPoint =
|
||||
@@ -939,22 +953,24 @@ class _ContactRouteDialogState extends State<ContactRouteDialog> {
|
||||
TextButton(
|
||||
onPressed: () => Navigator.of(
|
||||
context,
|
||||
).pop(const ContactRouteDialogResult.clear()),
|
||||
child: const Text('Clear Route'),
|
||||
).pop(ContactRouteDialogResult.clear()),
|
||||
child: Text(
|
||||
'${AppLocalizations.of(context)!.clearRoute} (${AppLocalizations.of(context)!.flood})',
|
||||
),
|
||||
)
|
||||
else
|
||||
const SizedBox.shrink(),
|
||||
FilledButton(
|
||||
onPressed: _parsedRoute == null
|
||||
onPressed: effectiveRoute == null
|
||||
? null
|
||||
: () => Navigator.of(context).pop(
|
||||
ContactRouteDialogResult.setWithFallback(
|
||||
_parsedRoute!,
|
||||
effectiveRoute,
|
||||
inferredFallbackLocation:
|
||||
_buildSyntheticFallbackLocation(),
|
||||
),
|
||||
),
|
||||
child: const Text('Save Path'),
|
||||
child: Text(AppLocalizations.of(context)!.savePath),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -159,7 +159,7 @@ class ContactTile extends StatelessWidget {
|
||||
Row(children: [_buildRoutePill(context, contact)]),
|
||||
] else
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 4),
|
||||
padding: EdgeInsets.only(top: 4),
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.noGpsData,
|
||||
style: Theme.of(
|
||||
@@ -361,8 +361,8 @@ class ContactTile extends StatelessWidget {
|
||||
onTap: () async {
|
||||
Navigator.pop(sheetContext);
|
||||
final toggled = contact.toggleFavourite();
|
||||
final connectionProvider =
|
||||
context.read<ConnectionProvider>();
|
||||
final connectionProvider = context
|
||||
.read<ConnectionProvider>();
|
||||
await connectionProvider.addOrUpdateContact(toggled);
|
||||
if (context.mounted) {
|
||||
// Refresh contact from device so the local cache is updated
|
||||
@@ -372,12 +372,12 @@ class ContactTile extends StatelessWidget {
|
||||
),
|
||||
if (!contact.isChannel)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.share_outlined),
|
||||
title: const Text('Share Contact'),
|
||||
leading: Icon(Icons.share_outlined),
|
||||
title: Text(l10n.shareContact),
|
||||
onTap: () async {
|
||||
Navigator.pop(sheetContext);
|
||||
final connectionProvider =
|
||||
context.read<ConnectionProvider>();
|
||||
final connectionProvider = context
|
||||
.read<ConnectionProvider>();
|
||||
final url = await connectionProvider.exportContactUrl(
|
||||
contact.publicKey,
|
||||
);
|
||||
@@ -385,22 +385,20 @@ class ContactTile extends StatelessWidget {
|
||||
await Clipboard.setData(ClipboardData(text: url));
|
||||
if (context.mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Contact link copied to clipboard'),
|
||||
SnackBar(
|
||||
content: Text(l10n.contactLinkCopiedToClipboard),
|
||||
),
|
||||
);
|
||||
}
|
||||
} else if (context.mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Failed to export contact'),
|
||||
),
|
||||
SnackBar(content: Text(l10n.failedToExportContact)),
|
||||
);
|
||||
}
|
||||
},
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.message_outlined),
|
||||
leading: Icon(Icons.message_outlined),
|
||||
title: Text(l10n.messages),
|
||||
enabled: canMessage,
|
||||
onTap: !canMessage
|
||||
@@ -412,7 +410,7 @@ class ContactTile extends StatelessWidget {
|
||||
),
|
||||
if (contact.displayLocation != null)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.map_outlined),
|
||||
leading: Icon(Icons.map_outlined),
|
||||
title: Text(l10n.viewOnMap),
|
||||
onTap: () {
|
||||
Navigator.pop(sheetContext);
|
||||
@@ -438,8 +436,8 @@ class ContactTile extends StatelessWidget {
|
||||
),
|
||||
if (canPreviewSensor)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.visibility_outlined),
|
||||
title: const Text('Preview'),
|
||||
leading: Icon(Icons.visibility_outlined),
|
||||
title: Text(l10n.preview),
|
||||
onTap: () async {
|
||||
Navigator.pop(sheetContext);
|
||||
await Future<void>.delayed(Duration.zero);
|
||||
@@ -467,7 +465,7 @@ class ContactTile extends StatelessWidget {
|
||||
),
|
||||
if (canSetPath)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.alt_route),
|
||||
leading: Icon(Icons.alt_route),
|
||||
title: Text(l10n.contactSetPath),
|
||||
onTap: () {
|
||||
Navigator.pop(sheetContext);
|
||||
@@ -476,8 +474,8 @@ class ContactTile extends StatelessWidget {
|
||||
),
|
||||
if (!contact.isChannel)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.route),
|
||||
title: const Text('Trace'),
|
||||
leading: Icon(Icons.route),
|
||||
title: Text(l10n.trace),
|
||||
onTap: () {
|
||||
Navigator.pop(sheetContext);
|
||||
_showTraceSheet(context, contact);
|
||||
@@ -494,8 +492,8 @@ class ContactTile extends StatelessWidget {
|
||||
),
|
||||
if (!contact.isPublicChannel)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.edit_outlined),
|
||||
title: const Text('Edit name'),
|
||||
leading: Icon(Icons.edit_outlined),
|
||||
title: Text(l10n.editName),
|
||||
onTap: () {
|
||||
Navigator.pop(sheetContext);
|
||||
_showNameOverrideDialog(context, contact);
|
||||
@@ -503,7 +501,7 @@ class ContactTile extends StatelessWidget {
|
||||
),
|
||||
if (!contact.isPublicChannel)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.delete, color: Colors.red),
|
||||
leading: Icon(Icons.delete, color: Colors.red),
|
||||
title: Text(
|
||||
contact.isChannel ? l10n.deleteChannel : l10n.deleteContact,
|
||||
style: const TextStyle(color: Colors.red),
|
||||
@@ -788,12 +786,13 @@ class ContactTile extends StatelessWidget {
|
||||
paddedPathBytes: parsedRoute.paddedPathBytes,
|
||||
);
|
||||
if (context.mounted) {
|
||||
final routeLabel = parsedRoute.hopCount == 0
|
||||
? AppLocalizations.of(context)!.direct
|
||||
: parsedRoute.canonicalText;
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(
|
||||
AppLocalizations.of(
|
||||
context,
|
||||
)!.contactRouteSet(parsedRoute.canonicalText),
|
||||
AppLocalizations.of(context)!.contactRouteSet(routeLabel),
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -1321,14 +1320,16 @@ class _NeighboursSheetState extends State<_NeighboursSheet> {
|
||||
final timestampOrMs = int.tryParse(parts[1]);
|
||||
final snrRaw = int.tryParse(parts[2]);
|
||||
final isMs = timestampOrMs != null && timestampOrMs < 1e9;
|
||||
parsed.add(_Neighbour(
|
||||
publicKeyHex: keyHex,
|
||||
lastSeenAt: !isMs && timestampOrMs != null
|
||||
? DateTime.fromMillisecondsSinceEpoch(timestampOrMs * 1000)
|
||||
: null,
|
||||
lastSeenMs: isMs ? timestampOrMs : null,
|
||||
snrDb: snrRaw != null ? snrRaw / 4.0 : null,
|
||||
));
|
||||
parsed.add(
|
||||
_Neighbour(
|
||||
publicKeyHex: keyHex,
|
||||
lastSeenAt: !isMs && timestampOrMs != null
|
||||
? DateTime.fromMillisecondsSinceEpoch(timestampOrMs * 1000)
|
||||
: null,
|
||||
lastSeenMs: isMs ? timestampOrMs : null,
|
||||
snrDb: snrRaw != null ? snrRaw / 4.0 : null,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1401,41 +1402,35 @@ class _NeighboursSheetState extends State<_NeighboursSheet> {
|
||||
child: _loading
|
||||
? const Center(child: CircularProgressIndicator())
|
||||
: _error != null
|
||||
? Center(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(24),
|
||||
child: Text(
|
||||
_error!,
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
)
|
||||
: _neighbours.isEmpty
|
||||
? const Center(child: Text('No neighbours found'))
|
||||
: ListView.builder(
|
||||
padding: const EdgeInsets.only(bottom: 16),
|
||||
itemCount: _neighbours.length,
|
||||
itemBuilder: (context, index) {
|
||||
final n = _neighbours[index];
|
||||
final name =
|
||||
_resolveNeighbourName(n.publicKeyHex);
|
||||
final parts = <String>[
|
||||
if (n.snrDb != null)
|
||||
'SNR ${n.snrDb!.toStringAsFixed(1)} dB',
|
||||
if (n.lastSeenAt != null)
|
||||
_formatAge(n.lastSeenAt!),
|
||||
if (n.lastSeenMs != null)
|
||||
'${n.lastSeenMs}ms ago',
|
||||
];
|
||||
return ListTile(
|
||||
leading: const Icon(Icons.router_outlined),
|
||||
title: Text(name),
|
||||
subtitle: parts.isNotEmpty
|
||||
? Text(parts.join(' • '))
|
||||
: null,
|
||||
);
|
||||
},
|
||||
),
|
||||
? Center(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(24),
|
||||
child: Text(_error!, textAlign: TextAlign.center),
|
||||
),
|
||||
)
|
||||
: _neighbours.isEmpty
|
||||
? const Center(child: Text('No neighbours found'))
|
||||
: ListView.builder(
|
||||
padding: const EdgeInsets.only(bottom: 16),
|
||||
itemCount: _neighbours.length,
|
||||
itemBuilder: (context, index) {
|
||||
final n = _neighbours[index];
|
||||
final name = _resolveNeighbourName(n.publicKeyHex);
|
||||
final parts = <String>[
|
||||
if (n.snrDb != null)
|
||||
'SNR ${n.snrDb!.toStringAsFixed(1)} dB',
|
||||
if (n.lastSeenAt != null) _formatAge(n.lastSeenAt!),
|
||||
if (n.lastSeenMs != null) '${n.lastSeenMs}ms ago',
|
||||
];
|
||||
return ListTile(
|
||||
leading: const Icon(Icons.router_outlined),
|
||||
title: Text(name),
|
||||
subtitle: parts.isNotEmpty
|
||||
? Text(parts.join(' • '))
|
||||
: null,
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -401,7 +401,7 @@ class _RoomLoginSheetState extends State<RoomLoginSheet> {
|
||||
color: colorScheme.onPrimaryContainer,
|
||||
size: 20,
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.enterPasswordInfo,
|
||||
@@ -488,7 +488,7 @@ class _RoomLoginSheetState extends State<RoomLoginSheet> {
|
||||
height: 20,
|
||||
child: CircularProgressIndicator(strokeWidth: 2),
|
||||
)
|
||||
: const Icon(Icons.login),
|
||||
: Icon(Icons.login),
|
||||
label: Text(
|
||||
_isLoggingIn
|
||||
? AppLocalizations.of(context)!.loggingInDots
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:meshcore_client/meshcore_client.dart';
|
||||
import '../../l10n/app_localizations.dart';
|
||||
|
||||
class SpectrumScanPanel extends StatelessWidget {
|
||||
final ThemeData theme;
|
||||
@@ -103,12 +104,12 @@ class SpectrumScanPanel extends StatelessWidget {
|
||||
children: [
|
||||
_LegendChip(
|
||||
color: theme.colorScheme.primary,
|
||||
label: 'Quiet',
|
||||
label: AppLocalizations.of(context)!.quiet,
|
||||
),
|
||||
const _LegendChip(color: Colors.orange, label: 'Moderate'),
|
||||
_LegendChip(color: Colors.orange, label: AppLocalizations.of(context)!.moderate),
|
||||
_LegendChip(
|
||||
color: theme.colorScheme.error,
|
||||
label: 'Busy',
|
||||
label: AppLocalizations.of(context)!.busy,
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -211,8 +212,8 @@ class SpectrumScanPanel extends StatelessWidget {
|
||||
onPressed: selectedFrequencyKhz == null
|
||||
? null
|
||||
: onApplySelected,
|
||||
icon: const Icon(Icons.north_east),
|
||||
label: const Text('Use selected frequency'),
|
||||
icon: Icon(Icons.north_east),
|
||||
label: Text(AppLocalizations.of(context)!.useSelectedFrequency),
|
||||
),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -100,7 +100,7 @@ class CompassContactList extends StatelessWidget {
|
||||
// Persons/Team section
|
||||
if (showContacts && persons.isNotEmpty) ...[
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 16, bottom: 8, top: 4),
|
||||
padding: EdgeInsets.only(left: 16, bottom: 8, top: 4),
|
||||
child: Text(
|
||||
l10n.teamMembers,
|
||||
style: Theme.of(
|
||||
@@ -135,7 +135,7 @@ class CompassContactList extends StatelessWidget {
|
||||
// Repeaters section
|
||||
if (showRepeaters && repeaters.isNotEmpty) ...[
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 16, bottom: 8, top: 12),
|
||||
padding: EdgeInsets.only(left: 16, bottom: 8, top: 12),
|
||||
child: Text(
|
||||
l10n.repeaters,
|
||||
style: Theme.of(
|
||||
@@ -151,7 +151,7 @@ class CompassContactList extends StatelessWidget {
|
||||
// Rooms section
|
||||
if (rooms.isNotEmpty) ...[
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 16, bottom: 8, top: 12),
|
||||
padding: EdgeInsets.only(left: 16, bottom: 8, top: 12),
|
||||
child: Text(
|
||||
l10n.rooms,
|
||||
style: Theme.of(
|
||||
|
||||
@@ -49,7 +49,7 @@ class _CompassFiltersState extends State<CompassFilters> {
|
||||
title: Row(
|
||||
children: [
|
||||
const Icon(Icons.filter_list, size: 20),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Text(l10n.filterMarkers),
|
||||
],
|
||||
),
|
||||
@@ -62,7 +62,7 @@ class _CompassFiltersState extends State<CompassFilters> {
|
||||
_CompactFilterItem(
|
||||
icon: Icons.timeline,
|
||||
color: Colors.blue,
|
||||
label: 'Location Trail',
|
||||
label: l10n.locationTrail,
|
||||
value: mapProvider.isTrailVisible,
|
||||
onChanged: (value) {
|
||||
mapProvider.toggleTrailVisibility();
|
||||
@@ -100,7 +100,7 @@ class _CompassFiltersState extends State<CompassFilters> {
|
||||
const SizedBox(height: 4),
|
||||
// SAR Markers section
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 8, bottom: 8, top: 4),
|
||||
padding: EdgeInsets.only(left: 8, bottom: 8, top: 4),
|
||||
child: Text(
|
||||
l10n.sarMarkers,
|
||||
style: Theme.of(context).textTheme.labelLarge?.copyWith(
|
||||
@@ -118,7 +118,7 @@ class _CompassFiltersState extends State<CompassFilters> {
|
||||
setDialogState(() {});
|
||||
},
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
SizedBox(height: 4),
|
||||
_CompactFilterItem(
|
||||
icon: Icons.local_fire_department,
|
||||
color: Colors.red,
|
||||
@@ -129,7 +129,7 @@ class _CompassFiltersState extends State<CompassFilters> {
|
||||
setDialogState(() {});
|
||||
},
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
SizedBox(height: 4),
|
||||
_CompactFilterItem(
|
||||
icon: Icons.home_work,
|
||||
color: Colors.orange,
|
||||
@@ -164,7 +164,7 @@ class _CompassFiltersState extends State<CompassFilters> {
|
||||
Widget build(BuildContext context) {
|
||||
final l10n = AppLocalizations.of(context)!;
|
||||
return IconButton(
|
||||
icon: const Icon(Icons.filter_list),
|
||||
icon: Icon(Icons.filter_list),
|
||||
tooltip: l10n.filterMarkersTooltip,
|
||||
onPressed: () => _showFilterDialog(),
|
||||
);
|
||||
|
||||
@@ -565,7 +565,7 @@ class _LocationFormatToggleState extends State<_LocationFormatToggle> {
|
||||
Widget build(BuildContext context) {
|
||||
final position = widget.position;
|
||||
if (position == null) {
|
||||
return const SizedBox.shrink();
|
||||
return SizedBox.shrink();
|
||||
}
|
||||
|
||||
final l10n = AppLocalizations.of(context)!;
|
||||
|
||||
@@ -64,7 +64,7 @@ class CompassSarList extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 16, top: 16, bottom: 8),
|
||||
padding: EdgeInsets.only(left: 16, top: 16, bottom: 8),
|
||||
child: Text(
|
||||
l10n.sarMarkers,
|
||||
style: Theme.of(context).textTheme.titleMedium?.copyWith(
|
||||
|
||||
@@ -603,7 +603,7 @@ class DrawingToolbar extends StatelessWidget {
|
||||
child: Row(
|
||||
children: [
|
||||
const Icon(Icons.share),
|
||||
const SizedBox(width: 12),
|
||||
SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.shareDrawingsCount(
|
||||
@@ -620,7 +620,7 @@ class DrawingToolbar extends StatelessWidget {
|
||||
const Divider(),
|
||||
// Option: Send to Public Channel
|
||||
ListTile(
|
||||
leading: const Icon(Icons.public, color: Colors.blue),
|
||||
leading: Icon(Icons.public, color: Colors.blue),
|
||||
title: Text(AppLocalizations.of(context)!.publicChannel),
|
||||
subtitle: Text(AppLocalizations.of(context)!.broadcastToAll),
|
||||
onTap: () async {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import '../../l10n/app_localizations.dart';
|
||||
|
||||
class MapLegend extends StatelessWidget {
|
||||
final int teamMemberCount;
|
||||
@@ -35,31 +36,31 @@ class MapLegend extends StatelessWidget {
|
||||
_LegendItem(
|
||||
icon: Icons.person,
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
label: 'Team',
|
||||
label: AppLocalizations.of(context)!.team,
|
||||
count: teamMemberCount,
|
||||
),
|
||||
_LegendItem(
|
||||
icon: Icons.person_pin,
|
||||
color: Colors.green,
|
||||
label: 'Found',
|
||||
label: AppLocalizations.of(context)!.found,
|
||||
count: foundPersonCount,
|
||||
),
|
||||
_LegendItem(
|
||||
icon: Icons.local_fire_department,
|
||||
color: Colors.red,
|
||||
label: 'Fire',
|
||||
label: AppLocalizations.of(context)!.fire,
|
||||
count: fireCount,
|
||||
),
|
||||
_LegendItem(
|
||||
icon: Icons.home_work,
|
||||
color: Colors.orange,
|
||||
label: 'Staging',
|
||||
label: AppLocalizations.of(context)!.staging,
|
||||
count: stagingAreaCount,
|
||||
),
|
||||
_LegendItem(
|
||||
icon: Icons.inventory_2,
|
||||
color: Colors.purple,
|
||||
label: 'Object',
|
||||
label: AppLocalizations.of(context)!.object,
|
||||
count: objectCount,
|
||||
),
|
||||
],
|
||||
|
||||
@@ -98,7 +98,7 @@ class _MapMessageOverlayState extends State<MapMessageOverlay> {
|
||||
color: Colors.white,
|
||||
size: 20,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.recentMessages,
|
||||
|
||||
@@ -39,7 +39,7 @@ class TrailControls extends StatelessWidget {
|
||||
Row(
|
||||
children: [
|
||||
const Icon(Icons.timeline, size: 24),
|
||||
const SizedBox(width: 12),
|
||||
SizedBox(width: 12),
|
||||
Text(
|
||||
l10n.locationTrail,
|
||||
style: const TextStyle(
|
||||
@@ -53,7 +53,7 @@ class TrailControls extends StatelessWidget {
|
||||
|
||||
// Trail visibility toggle
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.visibility),
|
||||
secondary: Icon(Icons.visibility),
|
||||
title: Text(l10n.showTrailOnMap),
|
||||
subtitle: Text(
|
||||
mapProvider.isTrailVisible
|
||||
@@ -75,7 +75,7 @@ class TrailControls extends StatelessWidget {
|
||||
children: [
|
||||
OutlinedButton.icon(
|
||||
onPressed: () => _importTrail(context, mapProvider),
|
||||
icon: const Icon(Icons.file_upload_outlined),
|
||||
icon: Icon(Icons.file_upload_outlined),
|
||||
label: Text(l10n.importFromClipboard),
|
||||
),
|
||||
if (mapProvider.currentTrail != null &&
|
||||
@@ -86,7 +86,7 @@ class TrailControls extends StatelessWidget {
|
||||
mapProvider.currentTrail!,
|
||||
customName: 'My Trail',
|
||||
),
|
||||
icon: const Icon(Icons.file_download_outlined),
|
||||
icon: Icon(Icons.file_download_outlined),
|
||||
label: Text(l10n.exportToClipboard),
|
||||
),
|
||||
],
|
||||
@@ -116,13 +116,13 @@ class TrailControls extends StatelessWidget {
|
||||
mapProvider.totalTrailDistance,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
_buildStatRow(
|
||||
icon: Icons.access_time,
|
||||
label: l10n.duration,
|
||||
value: _formatDuration(mapProvider.trailDuration),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
_buildStatRow(
|
||||
icon: Icons.place,
|
||||
label: l10n.points,
|
||||
@@ -139,7 +139,7 @@ class TrailControls extends StatelessWidget {
|
||||
onPressed: () {
|
||||
_showClearConfirmation(context, mapProvider, l10n);
|
||||
},
|
||||
icon: const Icon(Icons.delete_outline),
|
||||
icon: Icon(Icons.delete_outline),
|
||||
label: Text(l10n.clearTrail),
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: Colors.red,
|
||||
@@ -161,7 +161,7 @@ class TrailControls extends StatelessWidget {
|
||||
size: 48,
|
||||
color: Colors.grey,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
Text(
|
||||
l10n.noTrailRecorded,
|
||||
style: const TextStyle(
|
||||
@@ -169,7 +169,7 @@ class TrailControls extends StatelessWidget {
|
||||
fontSize: 16,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
Text(
|
||||
l10n.startTrackingToRecord,
|
||||
style: const TextStyle(
|
||||
@@ -191,7 +191,7 @@ class TrailControls extends StatelessWidget {
|
||||
Row(
|
||||
children: [
|
||||
const Icon(Icons.people, size: 20),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Text(
|
||||
l10n.contactTrails,
|
||||
style: const TextStyle(
|
||||
@@ -205,7 +205,7 @@ class TrailControls extends StatelessWidget {
|
||||
|
||||
// Show All Contact Trails toggle
|
||||
SwitchListTile(
|
||||
secondary: const Icon(Icons.route),
|
||||
secondary: Icon(Icons.route),
|
||||
title: Text(l10n.showAllContactTrails),
|
||||
subtitle: Text(
|
||||
contactsWithTrails.isEmpty
|
||||
|
||||
@@ -200,7 +200,7 @@ class _CustomMapSarUpdateSheetState extends State<CustomMapSarUpdateSheet> {
|
||||
),
|
||||
);
|
||||
}),
|
||||
const SizedBox(height: 24),
|
||||
SizedBox(height: 24),
|
||||
Text(
|
||||
AppLocalizations.of(context)!.sendTo,
|
||||
style: TextStyle(
|
||||
@@ -231,7 +231,7 @@ class _CustomMapSarUpdateSheetState extends State<CustomMapSarUpdateSheet> {
|
||||
color: Colors.red.withValues(alpha: 0.3),
|
||||
),
|
||||
),
|
||||
child: const Text('No destinations available'),
|
||||
child: Text(AppLocalizations.of(context)!.noDestinationsAvailableLabel),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -426,7 +426,7 @@ class _CustomMapSarUpdateSheetState extends State<CustomMapSarUpdateSheet> {
|
||||
(!_sendToAllContacts && _selectedContact == null)) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text('Select marker type and destination'),
|
||||
content: Text(AppLocalizations.of(context)!.selectMarkerTypeAndDestination),
|
||||
),
|
||||
);
|
||||
return;
|
||||
@@ -449,8 +449,8 @@ class _CustomMapSarUpdateSheetState extends State<CustomMapSarUpdateSheet> {
|
||||
Navigator.pop(context);
|
||||
}
|
||||
},
|
||||
icon: const Icon(Icons.send),
|
||||
label: const Text('Send'),
|
||||
icon: Icon(Icons.send),
|
||||
label: Text(AppLocalizations.of(context)!.send),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -288,7 +288,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
children: [
|
||||
if (!isOwnMessage && widget.onReply != null)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.reply),
|
||||
leading: Icon(Icons.reply),
|
||||
title: Text(AppLocalizations.of(context)!.reply),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
@@ -297,7 +297,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
),
|
||||
// Copy text option
|
||||
ListTile(
|
||||
leading: const Icon(Icons.copy),
|
||||
leading: Icon(Icons.copy),
|
||||
title: Text(AppLocalizations.of(context)!.copyText),
|
||||
onTap: () {
|
||||
Clipboard.setData(ClipboardData(text: widget.message.text));
|
||||
@@ -329,7 +329,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
}
|
||||
|
||||
return ListTile(
|
||||
leading: const Icon(Icons.bookmark_add),
|
||||
leading: Icon(Icons.bookmark_add),
|
||||
title: Text(AppLocalizations.of(context)!.saveAsTemplate),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
@@ -342,7 +342,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (widget.message.isSarMarker &&
|
||||
widget.message.sarGpsCoordinates != null)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.share_location),
|
||||
leading: Icon(Icons.share_location),
|
||||
title: Text(AppLocalizations.of(context)!.shareLocation),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
@@ -352,7 +352,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
// Navigate to drawing option (only for drawing messages)
|
||||
if (widget.message.isDrawing && widget.message.drawingId != null)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.map),
|
||||
leading: Icon(Icons.map),
|
||||
title: Text(AppLocalizations.of(context)!.navigateToDrawing),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
@@ -362,7 +362,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
// Copy coordinates option (only for drawing messages)
|
||||
if (widget.message.isDrawing && widget.message.drawingId != null)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.copy),
|
||||
leading: Icon(Icons.copy),
|
||||
title: Text(AppLocalizations.of(context)!.copyCoordinates),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
@@ -372,7 +372,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
// Hide from map option (only for drawing messages)
|
||||
if (widget.message.isDrawing && widget.message.drawingId != null)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.visibility_off),
|
||||
leading: Icon(Icons.visibility_off),
|
||||
title: Text(AppLocalizations.of(context)!.hideFromMap),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
@@ -381,7 +381,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
),
|
||||
// Technical details option
|
||||
ListTile(
|
||||
leading: const Icon(Icons.data_object),
|
||||
leading: Icon(Icons.data_object),
|
||||
title: Text(AppLocalizations.of(context)!.technicalDetails),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
@@ -392,8 +392,8 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
widget.message.pathLen > 0 &&
|
||||
widget.message.pathLen < 255)
|
||||
ListTile(
|
||||
leading: const Icon(Icons.route),
|
||||
title: const Text('Trace'),
|
||||
leading: Icon(Icons.route),
|
||||
title: Text(AppLocalizations.of(context)!.trace),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
_showTraceSheet(context);
|
||||
@@ -401,7 +401,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
),
|
||||
// Delete message option
|
||||
ListTile(
|
||||
leading: const Icon(Icons.delete, color: Colors.red),
|
||||
leading: Icon(Icons.delete, color: Colors.red),
|
||||
title: Text(
|
||||
AppLocalizations.of(context)!.delete,
|
||||
style: const TextStyle(color: Colors.red),
|
||||
@@ -686,7 +686,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
|
||||
void copyField(String value) {
|
||||
Clipboard.setData(ClipboardData(text: value));
|
||||
ToastLogger.success(context, l10n.textCopiedToClipboard);
|
||||
ToastLogger.success(context, AppLocalizations.of(context)!.textCopiedToClipboard);
|
||||
}
|
||||
|
||||
showModalBottomSheet(
|
||||
@@ -708,14 +708,14 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
l10n.messageTechnicalDetails,
|
||||
AppLocalizations.of(context)!.messageTechnicalDetails,
|
||||
style: Theme.of(sheetContext).textTheme.titleLarge,
|
||||
),
|
||||
),
|
||||
IconButton(
|
||||
onPressed: () => Navigator.pop(sheetContext),
|
||||
icon: const Icon(Icons.close),
|
||||
tooltip: l10n.close,
|
||||
icon: Icon(Icons.close),
|
||||
tooltip: AppLocalizations.of(context)!.close,
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -758,17 +758,17 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (widget.message.lastEchoRssiDbm != null ||
|
||||
snrDb != null ||
|
||||
rssiDbm != null) ...[
|
||||
const SizedBox(height: 12),
|
||||
SizedBox(height: 12),
|
||||
_techSection(
|
||||
sheetContext,
|
||||
icon: Icons.network_check,
|
||||
title: l10n.linkQuality,
|
||||
title: AppLocalizations.of(context)!.linkQuality,
|
||||
child: Column(
|
||||
children: [
|
||||
if (rssiDbm != null)
|
||||
_signalRow(
|
||||
sheetContext,
|
||||
label: 'RSSI',
|
||||
label: AppLocalizations.of(context)!.rssi,
|
||||
valueLabel: '$rssiDbm dBm',
|
||||
normalized:
|
||||
((rssiDbm.toDouble() + 120.0) / 70.0)
|
||||
@@ -780,10 +780,10 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
: Colors.redAccent,
|
||||
),
|
||||
if (snrDb != null) ...[
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
_signalRow(
|
||||
sheetContext,
|
||||
label: 'SNR',
|
||||
label: AppLocalizations.of(context)!.snr,
|
||||
valueLabel: '${snrDb.toStringAsFixed(1)} dB',
|
||||
normalized: ((snrDb + 20.0) / 40.0).clamp(
|
||||
0.0,
|
||||
@@ -800,21 +800,21 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
),
|
||||
),
|
||||
],
|
||||
const SizedBox(height: 12),
|
||||
SizedBox(height: 12),
|
||||
_techSection(
|
||||
sheetContext,
|
||||
icon: Icons.tune,
|
||||
title: l10n.delivery,
|
||||
title: AppLocalizations.of(context)!.delivery,
|
||||
child: Column(
|
||||
children: [
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.status,
|
||||
label: AppLocalizations.of(context)!.status,
|
||||
value: widget.message.deliveryStatus.name,
|
||||
),
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Received (RFC3339)',
|
||||
label: AppLocalizations.of(context)!.receivedRfc3339,
|
||||
value: _formatRfc3339(widget.message.receivedAt),
|
||||
onCopy: () => copyField(
|
||||
_formatRfc3339(widget.message.receivedAt),
|
||||
@@ -823,14 +823,14 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (widget.message.expectedAckTag != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.expectedAckTag,
|
||||
label: AppLocalizations.of(context)!.expectedAckTag,
|
||||
value: widget.message.expectedAckTag!
|
||||
.toString(),
|
||||
),
|
||||
if (receptionDetails?.senderToReceiptMs != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Sender to receipt',
|
||||
label: AppLocalizations.of(context)!.senderToReceipt,
|
||||
value: _formatDurationMs(
|
||||
receptionDetails!.senderToReceiptMs!,
|
||||
),
|
||||
@@ -838,7 +838,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (receptionDetails?.estimatedTransmitMs != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Estimated tx',
|
||||
label: AppLocalizations.of(context)!.estimatedTx,
|
||||
value: _formatDurationMs(
|
||||
receptionDetails!.estimatedTransmitMs!,
|
||||
),
|
||||
@@ -846,7 +846,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (receptionDetails?.postTransmitDelayMs != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Post-tx delay',
|
||||
label: AppLocalizations.of(context)!.posttxDelay,
|
||||
value: _formatDurationMs(
|
||||
receptionDetails!.postTransmitDelayMs!,
|
||||
),
|
||||
@@ -854,44 +854,44 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (widget.receivedCopies > 1)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Received copies',
|
||||
label: AppLocalizations.of(context)!.receivedCopies,
|
||||
value: '${widget.receivedCopies}',
|
||||
),
|
||||
if (widget.message.suggestedTimeoutMs != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'ACK timeout',
|
||||
label: AppLocalizations.of(context)!.ackTimeout,
|
||||
value:
|
||||
'${widget.message.suggestedTimeoutMs} ms',
|
||||
),
|
||||
if (retryCause != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Retry cause',
|
||||
label: AppLocalizations.of(context)!.retryCause,
|
||||
value: retryCause,
|
||||
),
|
||||
if (retryMode != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Retry mode',
|
||||
label: AppLocalizations.of(context)!.retryMode,
|
||||
value: retryMode,
|
||||
),
|
||||
if (widget.message.roundTripTimeMs != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.roundTrip,
|
||||
label: AppLocalizations.of(context)!.roundTrip,
|
||||
value: '${widget.message.roundTripTimeMs} ms',
|
||||
),
|
||||
if (widget.message.retryAttempt > 0)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.retryAttempt,
|
||||
label: AppLocalizations.of(context)!.retryAttempt,
|
||||
value: '${widget.message.retryAttempt}/4',
|
||||
),
|
||||
if (widget.message.lastRetryAt != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Last retry',
|
||||
label: AppLocalizations.of(context)!.lastRetry,
|
||||
value: _formatRfc3339(
|
||||
widget.message.lastRetryAt!,
|
||||
),
|
||||
@@ -902,49 +902,49 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (widget.message.usedFloodFallback)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.floodFallback,
|
||||
value: l10n.yes,
|
||||
label: AppLocalizations.of(context)!.floodFallback,
|
||||
value: AppLocalizations.of(context)!.yes,
|
||||
),
|
||||
if (routeMetadata?.canonicalPath
|
||||
case final routePath?)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Selected path',
|
||||
label: AppLocalizations.of(context)!.selectedPath,
|
||||
value: routePath,
|
||||
onCopy: () => copyField(routePath),
|
||||
),
|
||||
if (retryResult != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Retry result',
|
||||
label: AppLocalizations.of(context)!.retryResult,
|
||||
value: retryResult,
|
||||
),
|
||||
if (packetPathHex != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Path bytes',
|
||||
label: AppLocalizations.of(context)!.pathBytes,
|
||||
value: packetPathHex,
|
||||
onCopy: () => copyField(packetPathHex),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
SizedBox(height: 12),
|
||||
_techSection(
|
||||
sheetContext,
|
||||
icon: Icons.badge,
|
||||
title: l10n.identity,
|
||||
title: AppLocalizations.of(context)!.identity,
|
||||
child: Column(
|
||||
children: [
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.messageId,
|
||||
label: AppLocalizations.of(context)!.messageId,
|
||||
value: widget.message.id,
|
||||
onCopy: () => copyField(widget.message.id),
|
||||
),
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.sender,
|
||||
label: AppLocalizations.of(context)!.sender,
|
||||
value:
|
||||
senderName ??
|
||||
widget.message.senderName ??
|
||||
@@ -953,20 +953,20 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (senderPrefixHex != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.senderKey,
|
||||
label: AppLocalizations.of(context)!.senderKey,
|
||||
value: senderPrefixHex,
|
||||
onCopy: () => copyField(senderPrefixHex),
|
||||
),
|
||||
if (recipientName != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.recipient,
|
||||
label: AppLocalizations.of(context)!.recipient,
|
||||
value: recipientName,
|
||||
),
|
||||
if (recipientPrefixHex != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.recipientKey,
|
||||
label: AppLocalizations.of(context)!.recipientKey,
|
||||
value: recipientPrefixHex,
|
||||
onCopy: () => copyField(recipientPrefixHex),
|
||||
),
|
||||
@@ -974,51 +974,51 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
),
|
||||
),
|
||||
if (widget.message.isVoice) ...[
|
||||
const SizedBox(height: 12),
|
||||
SizedBox(height: 12),
|
||||
_techSection(
|
||||
sheetContext,
|
||||
icon: Icons.graphic_eq,
|
||||
title: l10n.voice,
|
||||
title: AppLocalizations.of(context)!.voice,
|
||||
child: Column(
|
||||
children: [
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.voiceId,
|
||||
label: AppLocalizations.of(context)!.voiceId,
|
||||
value: widget.message.voiceId ?? '-',
|
||||
),
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.envelope,
|
||||
label: AppLocalizations.of(context)!.envelope,
|
||||
value: envelope != null
|
||||
? 'VE3 compact'
|
||||
: l10n.unknown,
|
||||
: AppLocalizations.of(context)!.unknown,
|
||||
),
|
||||
if (voiceSession != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.sessionProgress,
|
||||
label: AppLocalizations.of(context)!.sessionProgress,
|
||||
value:
|
||||
'${voiceSession.receivedCount}/${voiceSession.total} segments',
|
||||
),
|
||||
if (voiceSession != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.complete,
|
||||
label: AppLocalizations.of(context)!.complete,
|
||||
value: voiceSession.isComplete
|
||||
? l10n.yes
|
||||
: l10n.no,
|
||||
? AppLocalizations.of(context)!.yes
|
||||
: AppLocalizations.of(context)!.no,
|
||||
),
|
||||
if (transferDetails != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Transfers',
|
||||
label: AppLocalizations.of(context)!.transfers,
|
||||
value: '${transferDetails.totalTransfers}',
|
||||
),
|
||||
if (transferDetails != null &&
|
||||
transferDetails.downloaders.isNotEmpty)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Downloaded by',
|
||||
label: AppLocalizations.of(context)!.downloadedBy,
|
||||
value: _formatDownloaderSummary(
|
||||
transferDetails,
|
||||
),
|
||||
@@ -1026,7 +1026,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (voiceTxEstimate > Duration.zero)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Estimated tx',
|
||||
label: AppLocalizations.of(context)!.estimatedTx,
|
||||
value: voiceTxEstimate.inSeconds < 60
|
||||
? '~${voiceTxEstimate.inSeconds}s'
|
||||
: '~${voiceTxEstimate.inMinutes}m ${voiceTxEstimate.inSeconds % 60}s',
|
||||
@@ -1036,32 +1036,32 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
),
|
||||
],
|
||||
if (imageEnvelope != null) ...[
|
||||
const SizedBox(height: 12),
|
||||
SizedBox(height: 12),
|
||||
_techSection(
|
||||
sheetContext,
|
||||
icon: Icons.image_outlined,
|
||||
title: 'Image',
|
||||
title: AppLocalizations.of(context)!.image,
|
||||
child: Column(
|
||||
children: [
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.envelope,
|
||||
label: AppLocalizations.of(context)!.envelope,
|
||||
value: 'IE1',
|
||||
),
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Format',
|
||||
label: AppLocalizations.of(context)!.format,
|
||||
value: imageEnvelope.format.label,
|
||||
),
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Dimensions',
|
||||
label: AppLocalizations.of(context)!.dimensions,
|
||||
value:
|
||||
'${imageEnvelope.width}×${imageEnvelope.height}',
|
||||
),
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Segments',
|
||||
label: AppLocalizations.of(context)!.segments,
|
||||
value: imageSession != null
|
||||
? '${imageSession.receivedCount}/${imageSession.total}'
|
||||
: '${imageEnvelope.total}',
|
||||
@@ -1069,22 +1069,22 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (imageSession != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: l10n.complete,
|
||||
label: AppLocalizations.of(context)!.complete,
|
||||
value: imageSession.isComplete
|
||||
? l10n.yes
|
||||
: l10n.no,
|
||||
? AppLocalizations.of(context)!.yes
|
||||
: AppLocalizations.of(context)!.no,
|
||||
),
|
||||
if (transferDetails != null)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Transfers',
|
||||
label: AppLocalizations.of(context)!.transfers,
|
||||
value: '${transferDetails.totalTransfers}',
|
||||
),
|
||||
if (transferDetails != null &&
|
||||
transferDetails.downloaders.isNotEmpty)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Downloaded by',
|
||||
label: AppLocalizations.of(context)!.downloadedBy,
|
||||
value: _formatDownloaderSummary(
|
||||
transferDetails,
|
||||
),
|
||||
@@ -1092,7 +1092,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
if (imageTxEstimate > Duration.zero)
|
||||
_detailRow(
|
||||
sheetContext,
|
||||
label: 'Estimated tx',
|
||||
label: AppLocalizations.of(context)!.estimatedTx,
|
||||
value: imageTxEstimate.inSeconds < 60
|
||||
? '~${imageTxEstimate.inSeconds}s'
|
||||
: '~${imageTxEstimate.inMinutes}m ${imageTxEstimate.inSeconds % 60}s',
|
||||
@@ -1107,7 +1107,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
dense: true,
|
||||
visualDensity: VisualDensity.compact,
|
||||
title: Text(
|
||||
l10n.rawDump,
|
||||
AppLocalizations.of(context)!.rawDump,
|
||||
style: const TextStyle(
|
||||
fontSize: 12,
|
||||
fontWeight: FontWeight.w600,
|
||||
@@ -1432,7 +1432,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
final lon = coords.longitude.toStringAsFixed(6);
|
||||
|
||||
// Build share text
|
||||
final shareText = l10n.shareLocationText(
|
||||
final shareText = AppLocalizations.of(context)!.shareLocationText(
|
||||
markerInfo,
|
||||
lat,
|
||||
lon,
|
||||
@@ -1441,7 +1441,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
|
||||
// Share the location
|
||||
SharePlus.instance.share(
|
||||
ShareParams(text: shareText, subject: l10n.sarLocationShare),
|
||||
ShareParams(text: shareText, subject: AppLocalizations.of(context)!.sarLocationShare),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1852,14 +1852,14 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
}
|
||||
} else if (message.isChannelMessage) {
|
||||
if (message.channelIdx == 0) {
|
||||
channelDisplayName = l10n.publicChannel;
|
||||
channelDisplayName = AppLocalizations.of(context)!.publicChannel;
|
||||
} else {
|
||||
final channelContact = contactsProvider.channels.where((c) {
|
||||
return c.publicKey.length > 1 && c.publicKey[1] == message.channelIdx;
|
||||
}).firstOrNull;
|
||||
channelDisplayName =
|
||||
channelContact?.getLocalizedDisplayName(context) ??
|
||||
'${l10n.channel} ${message.channelIdx}';
|
||||
'${AppLocalizations.of(context)!.channel} ${message.channelIdx}';
|
||||
}
|
||||
|
||||
if (isOwnMessage) {
|
||||
@@ -1869,14 +1869,14 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
|
||||
final recipientSubtitle =
|
||||
isOwnMessage && message.isChannelMessage && recipientDisplayName != null
|
||||
? '${l10n.channel}: $recipientDisplayName'
|
||||
? '${AppLocalizations.of(context)!.channel}: $recipientDisplayName'
|
||||
: recipientDisplayName;
|
||||
final directCounterpartLabel = !message.isChannelMessage
|
||||
? (isOwnMessage ? recipientSubtitle : l10n.you)
|
||||
? (isOwnMessage ? recipientSubtitle : AppLocalizations.of(context)!.you)
|
||||
: null;
|
||||
final receivedChannelSubtitle =
|
||||
!isOwnMessage && message.isChannelMessage && channelDisplayName != null
|
||||
? '${l10n.channel}: $channelDisplayName'
|
||||
? '${AppLocalizations.of(context)!.channel}: $channelDisplayName'
|
||||
: null;
|
||||
|
||||
final shouldFloatBubble = widget.isCompact;
|
||||
@@ -1992,7 +1992,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
const Icon(Icons.draw, size: 16, color: Colors.white),
|
||||
const SizedBox(width: 4),
|
||||
SizedBox(width: 4),
|
||||
Text(
|
||||
AppLocalizations.of(context)!.mapDrawing,
|
||||
style: Theme.of(context).textTheme.labelSmall
|
||||
@@ -2029,7 +2029,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
size: 16,
|
||||
color: Colors.white,
|
||||
),
|
||||
const SizedBox(width: 4),
|
||||
SizedBox(width: 4),
|
||||
Text(
|
||||
AppLocalizations.of(context)!.sarAlert,
|
||||
style: Theme.of(context).textTheme.labelSmall
|
||||
@@ -2522,7 +2522,7 @@ class _MessageBubbleState extends State<MessageBubble> {
|
||||
? Colors.red
|
||||
: Colors.orange,
|
||||
),
|
||||
const SizedBox(width: 3),
|
||||
SizedBox(width: 3),
|
||||
Text(
|
||||
message.deliveredRecipientsCount ==
|
||||
message.recipients!.length
|
||||
|
||||
@@ -55,12 +55,12 @@ class MessagesContent extends StatelessWidget {
|
||||
size: 64,
|
||||
color: Theme.of(context).disabledColor,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
Text(
|
||||
AppLocalizations.of(context)!.noMessagesYet,
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
SizedBox(height: 8),
|
||||
Text(
|
||||
AppLocalizations.of(context)!.pullDownToSync,
|
||||
style: Theme.of(context).textTheme.bodyMedium,
|
||||
|
||||
@@ -111,7 +111,7 @@ class _RecipientSelectorSheetState extends State<RecipientSelectorSheet> {
|
||||
|
||||
// Search field
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
padding: EdgeInsets.all(16),
|
||||
child: TextField(
|
||||
controller: _searchController,
|
||||
decoration: InputDecoration(
|
||||
@@ -154,7 +154,7 @@ class _RecipientSelectorSheetState extends State<RecipientSelectorSheet> {
|
||||
context: context,
|
||||
icon: Icons.all_inbox,
|
||||
title: l10n.showAll,
|
||||
subtitle: 'All messages',
|
||||
subtitle: l10n.allMessages,
|
||||
unreadCount: widget.unreadCount,
|
||||
isSelected: _isSelected('all', null),
|
||||
onTap: () {
|
||||
@@ -181,7 +181,7 @@ class _RecipientSelectorSheetState extends State<RecipientSelectorSheet> {
|
||||
),
|
||||
if (filteredChannels.isEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
padding: EdgeInsets.all(16),
|
||||
child: Text(
|
||||
l10n.noChannelsFound,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
@@ -234,7 +234,7 @@ class _RecipientSelectorSheetState extends State<RecipientSelectorSheet> {
|
||||
),
|
||||
if (filteredContacts.isEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
padding: EdgeInsets.all(16),
|
||||
child: Text(
|
||||
l10n.noContactsFound,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
@@ -283,7 +283,7 @@ class _RecipientSelectorSheetState extends State<RecipientSelectorSheet> {
|
||||
),
|
||||
if (filteredRooms.isEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
padding: EdgeInsets.all(16),
|
||||
child: Text(
|
||||
l10n.noRoomsFound,
|
||||
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
|
||||
@@ -323,7 +323,7 @@ class _RecipientSelectorSheetState extends State<RecipientSelectorSheet> {
|
||||
size: 64,
|
||||
color: Theme.of(context).disabledColor,
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
Text(
|
||||
l10n.noRecipientsAvailable,
|
||||
style: Theme.of(context).textTheme.bodyLarge
|
||||
|
||||
@@ -381,7 +381,7 @@ class _SarUpdateSheetState extends State<SarUpdateSheet> {
|
||||
),
|
||||
);
|
||||
}),
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
|
||||
// Destination selection (compact dropdown with rooms, channels, and all contacts)
|
||||
Text(
|
||||
@@ -505,7 +505,7 @@ class _SarUpdateSheetState extends State<SarUpdateSheet> {
|
||||
size: 18,
|
||||
color: colorScheme.onSurface,
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.allTeamContacts,
|
||||
@@ -593,7 +593,7 @@ class _SarUpdateSheetState extends State<SarUpdateSheet> {
|
||||
color: Colors.green,
|
||||
size: 20,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.directMessagesInfo(chatContactsCount),
|
||||
@@ -718,7 +718,7 @@ class _SarUpdateSheetState extends State<SarUpdateSheet> {
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 16),
|
||||
SizedBox(width: 16),
|
||||
Text(
|
||||
AppLocalizations.of(context)!.gettingLocation,
|
||||
style: TextStyle(color: colorScheme.onSurface),
|
||||
@@ -979,7 +979,7 @@ class _SarUpdateSheetState extends State<SarUpdateSheet> {
|
||||
size: 16,
|
||||
color: Colors.blue,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
SizedBox(width: 8),
|
||||
Expanded(
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.exampleCoordinates,
|
||||
@@ -994,7 +994,7 @@ class _SarUpdateSheetState extends State<SarUpdateSheet> {
|
||||
),
|
||||
],
|
||||
|
||||
const SizedBox(height: 24),
|
||||
SizedBox(height: 24),
|
||||
|
||||
// Optional notes
|
||||
Text(
|
||||
@@ -1193,7 +1193,7 @@ class _SarUpdateSheetState extends State<SarUpdateSheet> {
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
),
|
||||
),
|
||||
icon: const Icon(Icons.send, size: 20),
|
||||
icon: Icon(Icons.send, size: 20),
|
||||
label: Text(
|
||||
AppLocalizations.of(context)!.sendSarMarker,
|
||||
style: const TextStyle(
|
||||
|
||||
@@ -9,6 +9,7 @@ import '../../providers/contacts_provider.dart';
|
||||
import '../../providers/messages_provider.dart';
|
||||
import '../../utils/tictactoe_message_parser.dart';
|
||||
import '../../utils/toast_logger.dart';
|
||||
import '../../l10n/app_localizations.dart';
|
||||
|
||||
class TicTacToeMessageBubble extends StatelessWidget {
|
||||
final Message message;
|
||||
@@ -33,7 +34,7 @@ class TicTacToeMessageBubble extends StatelessWidget {
|
||||
final messages = context.watch<MessagesProvider>().messages;
|
||||
final selfKey = conn.deviceInfo.publicKey;
|
||||
if (selfKey == null || selfKey.length < 6) {
|
||||
return const Text('Tic-Tac-Toe unavailable');
|
||||
return Text(AppLocalizations.of(context)!.tictactoeUnavailable);
|
||||
}
|
||||
|
||||
final selfKey6 = _key6Hex(selfKey);
|
||||
@@ -43,7 +44,7 @@ class TicTacToeMessageBubble extends StatelessWidget {
|
||||
isSentByMe: isSentByMe,
|
||||
);
|
||||
if (opponent == null) {
|
||||
return const Text('Tic-Tac-Toe: opponent unknown');
|
||||
return Text(AppLocalizations.of(context)!.tictactoeOpponentUnknown);
|
||||
}
|
||||
final opponentKey6 = _key6Hex(opponent.publicKey);
|
||||
|
||||
@@ -69,7 +70,7 @@ class TicTacToeMessageBubble extends StatelessWidget {
|
||||
|
||||
start ??= event.type == TicTacToeEventType.start ? event : null;
|
||||
if (start == null) {
|
||||
return const Text('Tic-Tac-Toe: waiting for start');
|
||||
return Text(AppLocalizations.of(context)!.tictactoeWaitingForStart);
|
||||
}
|
||||
|
||||
final xPlayer = start.playerKey6;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:geolocator/geolocator.dart';
|
||||
import '../l10n/app_localizations.dart';
|
||||
|
||||
/// Dialog that requests location permissions on app startup
|
||||
class PermissionRequestDialog extends StatefulWidget {
|
||||
@@ -109,8 +110,8 @@ class _PermissionRequestDialogState extends State<PermissionRequestDialog> {
|
||||
Icons.location_on,
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
const Text('Location Permission'),
|
||||
SizedBox(width: 12),
|
||||
Text(AppLocalizations.of(context)!.locationPermission),
|
||||
],
|
||||
),
|
||||
content: Column(
|
||||
|
||||
@@ -210,7 +210,7 @@ class _SarTemplateEditDialogState extends State<SarTemplateEditDialog> {
|
||||
maxLines: 2,
|
||||
onChanged: (_) => setState(() {}),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
SizedBox(height: 16),
|
||||
|
||||
// Color picker
|
||||
Text(
|
||||
@@ -305,7 +305,7 @@ class _SarTemplateEditDialogState extends State<SarTemplateEditDialog> {
|
||||
const SizedBox(width: 12),
|
||||
ElevatedButton.icon(
|
||||
onPressed: _save,
|
||||
icon: const Icon(Icons.save),
|
||||
icon: Icon(Icons.save),
|
||||
label: Text(l10n.save),
|
||||
),
|
||||
],
|
||||
|
||||
@@ -1090,7 +1090,7 @@ class SensorTelemetryCard extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
if (state == SensorRefreshState.timeout)
|
||||
const _InlineAlertBadge(label: 'No response'),
|
||||
_InlineAlertBadge(label: l10n.noResponse),
|
||||
],
|
||||
),
|
||||
if (telemetry != null) ...[
|
||||
@@ -1107,8 +1107,8 @@ class SensorTelemetryCard extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
if (state == SensorRefreshState.refreshing)
|
||||
const _InlineStateMeta(
|
||||
label: 'Refreshing',
|
||||
_InlineStateMeta(
|
||||
label: l10n.refreshing,
|
||||
color: Color(0xFF266AC2),
|
||||
spinning: true,
|
||||
),
|
||||
@@ -1119,8 +1119,8 @@ class SensorTelemetryCard extends StatelessWidget {
|
||||
icon: Icons.check_circle,
|
||||
),
|
||||
if (state == SensorRefreshState.unavailable)
|
||||
const _InlineStateMeta(
|
||||
label: 'Unavailable',
|
||||
_InlineStateMeta(
|
||||
label: l10n.unavailable,
|
||||
color: Color(0xFFB13B55),
|
||||
icon: Icons.error_outline,
|
||||
),
|
||||
@@ -1153,17 +1153,17 @@ class SensorTelemetryCard extends StatelessWidget {
|
||||
}
|
||||
if (onCustomize != null) {
|
||||
items.add(
|
||||
const PopupMenuItem<String>(
|
||||
PopupMenuItem<String>(
|
||||
value: 'customize',
|
||||
child: Text('Customize fields'),
|
||||
child: Text(l10n.customizeFields),
|
||||
),
|
||||
);
|
||||
}
|
||||
if (onRemove != null) {
|
||||
items.add(
|
||||
const PopupMenuItem<String>(
|
||||
PopupMenuItem<String>(
|
||||
value: 'remove',
|
||||
child: Text('Remove'),
|
||||
child: Text(l10n.remove),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -54,10 +54,10 @@ class UpdateDialog extends StatelessWidget {
|
||||
|
||||
// Optional: Build timestamp
|
||||
if (updateInfo.timestamp != null) ...[
|
||||
const SizedBox(height: 12),
|
||||
SizedBox(height: 12),
|
||||
_buildInfoRow(
|
||||
context,
|
||||
label: 'Build Time',
|
||||
label: AppLocalizations.of(context)!.buildTime,
|
||||
value: _formatTimestamp(updateInfo.timestamp!),
|
||||
),
|
||||
],
|
||||
@@ -131,8 +131,8 @@ class UpdateDialog extends StatelessWidget {
|
||||
if (updateInfo.downloadUrl == null) {
|
||||
if (context.mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Download URL not available'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.downloadUrlNotAvailable),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
@@ -147,8 +147,8 @@ class UpdateDialog extends StatelessWidget {
|
||||
if (!canLaunch) {
|
||||
if (context.mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text('Cannot open download URL'),
|
||||
SnackBar(
|
||||
content: Text(AppLocalizations.of(context)!.cannotOpenDownloadUrl),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user