2026-01-11 17:13:50 -07:00
{
"@@locale": "de",
"appTitle": "MeshCore Open",
"nav_contacts": "Kontakte",
"nav_channels": "Kanäle",
"nav_map": "Karte",
"common_cancel": "Abbrechen",
"common_connect": "Verbinden",
"common_unknownDevice": "Unbekanntes Gerät",
"common_save": "Speichern",
"common_delete": "Löschen",
"common_close": "Schließen",
"common_edit": "Bearbeiten",
"common_add": "Hinzufügen",
"common_settings": "Einstellungen",
"common_disconnect": "Trennen",
"common_connected": "Verbunden",
"common_disconnected": "Getrennt",
"common_create": "Erstellen",
"common_continue": "Fortfahren",
"common_share": "Teilen",
"common_copy": "Kopieren",
"common_retry": "Versuchen",
"common_hide": "Ausblenden",
"common_remove": "Löschen",
"common_enable": "Aktivieren",
"common_disable": "Deaktivieren",
"common_reboot": "Neustart",
"common_loading": "Laden...",
"common_notAvailable": "—",
"common_voltageValue": "{volts} V",
"@common_voltageValue": {
"placeholders": {
"volts": {
"type": "String"
}
}
},
"common_percentValue": "{percent}%",
"@common_percentValue": {
"placeholders": {
"percent": {
"type": "int"
}
}
},
"scanner_title": "MeshCore Open",
"scanner_scanning": "Scannen nach Geräten...",
"scanner_connecting": "Verbunden...",
"scanner_disconnecting": "Trenne...",
"scanner_notConnected": "Nicht verbunden",
"scanner_connectedTo": "Verbunden mit {deviceName}",
"@scanner_connectedTo": {
"placeholders": {
"deviceName": {
"type": "String"
}
}
},
"scanner_searchingDevices": "Suche nach MeshCore-Geräten...",
"scanner_tapToScan": "Tippen Sie auf Scan, um MeshCore-Geräte zu finden.",
"scanner_connectionFailed": "Verbindungsfehler: {error}",
"@scanner_connectionFailed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"scanner_stop": "Stopp",
"scanner_scan": "Scannen",
2026-01-17 17:03:39 +01:00
"device_quickSwitch": "Schnelles Umschalten",
2026-01-11 17:13:50 -07:00
"device_meshcore": "MeshCore",
"settings_title": "Einstellungen",
"settings_deviceInfo": "Geräteinformationen",
"settings_appSettings": "App-Einstellungen",
2026-01-24 18:05:10 +01:00
"settings_appSettingsSubtitle": "Benachrichtigungen, Messaging und Kartenwahrnehmung",
2026-01-11 17:13:50 -07:00
"settings_nodeSettings": "Knoten-Einstellungen",
"settings_nodeName": "Knotenname",
"settings_nodeNameNotSet": "Nicht festgelegt",
2026-01-17 17:03:39 +01:00
"settings_nodeNameHint": "Gebe den Knotenamen ein",
2026-01-11 17:13:50 -07:00
"settings_nodeNameUpdated": "Name aktualisiert",
"settings_radioSettings": "Funk Einstellungen",
"settings_radioSettingsSubtitle": "Frequenz, Leistung, Verbreitungsfaktor",
"settings_radioSettingsUpdated": "Funkparameter aktualisiert",
"settings_location": "Ort",
"settings_locationSubtitle": "GPS-Koordinaten",
"settings_locationUpdated": "Ort aktualisiert",
"settings_locationBothRequired": "Bitte geben Sie sowohl Breite als auch Längengrad ein.",
"settings_locationInvalid": "Ungültige Breiten- oder Längengrade.",
"settings_latitude": "Breitengrad",
"settings_longitude": "Längengrad",
2026-01-17 17:03:39 +01:00
"settings_privacyMode": "Privatsphäreeinstellung",
"settings_privacyModeSubtitle": "Verstecken Sie Name/Ort in Ankündigungen",
"settings_privacyModeToggle": "Aktivieren Sie die Privatsphäreeinstellung, um Ihren Namen und Ihre Standortdaten in Ankündigungen zu verbergen.",
"settings_privacyModeEnabled": "Datenschutzmodus aktiviert",
2026-01-11 17:13:50 -07:00
"settings_privacyModeDisabled": "Datenschutzmodus deaktiviert",
"settings_actions": "Aktionen",
2026-02-10 22:55:39 +01:00
"settings_sendAdvertisement": "Sende Ankündigung",
"settings_sendAdvertisementSubtitle": "Sende eine Ankündigung",
2026-01-17 17:03:39 +01:00
"settings_advertisementSent": "Ankündigung gesendet",
"settings_syncTime": "Zeitsynchronisierung",
"settings_syncTimeSubtitle": "Stelle die Gerätezeit auf die Uhrzeit des Telefons ein",
2026-01-11 17:13:50 -07:00
"settings_timeSynchronized": "Zeit synchronisiert",
"settings_refreshContacts": "Kontakte aktualisieren",
2026-02-10 22:55:39 +01:00
"settings_refreshContactsSubtitle": "Kontakt-Liste vom Gerät neu laden",
2026-01-11 17:13:50 -07:00
"settings_rebootDevice": "Gerät neu starten",
"settings_rebootDeviceSubtitle": "MeshCore-Gerät neu starten",
"settings_rebootDeviceConfirm": "Sind Sie sicher, dass Sie das Gerät neu starten möchten? Sie werden getrennt.",
"settings_debug": "Fehlerbehebung",
"settings_bleDebugLog": "BLE-Debug-Protokoll",
"settings_bleDebugLogSubtitle": "BLE-Befehle, Antworten und Rohdaten",
"settings_appDebugLog": "App-Debug-Protokoll",
"settings_appDebugLogSubtitle": "Anwendung Debug-Nachrichten",
"settings_about": "Über",
"settings_aboutVersion": "MeshCore Open v{version}",
"@settings_aboutVersion": {
"placeholders": {
"version": {
"type": "String"
}
}
},
"settings_aboutLegalese": "MeshCore Open Source Projekt 2026",
"settings_aboutDescription": "Ein Open-Source-Flutter-Client für MeshCore LoRa-Meshnetzwerkgeräte.",
"settings_infoName": "Name",
"settings_infoId": "ID",
"settings_infoStatus": "Status",
"settings_infoBattery": "Akku",
"settings_infoPublicKey": "Öffentlicher Schlüssel",
2026-01-17 17:03:39 +01:00
"settings_infoContactsCount": "Anzahl Kontakte",
"settings_infoChannelCount": "Anzahl Kanäle",
2026-01-11 17:13:50 -07:00
"settings_presets": "Voreinstellungen",
"settings_preset915Mhz": "915 MHz",
"settings_preset868Mhz": "868 MHz",
"settings_preset433Mhz": "433 MHz",
"settings_frequency": "Frequenz (MHz)",
"settings_frequencyHelper": "300,00 - 2.500,00",
"settings_frequencyInvalid": "Ungültige Frequenz (300-2500 MHz)",
"settings_bandwidth": "Bandbreite",
"settings_spreadingFactor": "Verteilungsfaktor",
2026-01-17 17:03:39 +01:00
"settings_codingRate": "Kodierungsrate",
2026-01-11 17:13:50 -07:00
"settings_txPower": "TX-Leistung (dBm)",
"settings_txPowerHelper": "0 - 22",
"settings_txPowerInvalid": "Ungültige TX-Leistung (0-22 dBm)",
2026-01-17 17:03:39 +01:00
"settings_longRange": "Grosse Reichweite",
2026-01-11 17:13:50 -07:00
"settings_fastSpeed": "Schnelle Geschwindigkeit",
"settings_error": "Fehler: {message}",
"@settings_error": {
"placeholders": {
"message": {
"type": "String"
}
}
},
"appSettings_title": "App-Einstellungen",
"appSettings_appearance": "Aussehen",
"appSettings_theme": "Theme",
"appSettings_themeSystem": "Systemstandard",
2026-01-17 17:03:39 +01:00
"appSettings_themeLight": "Hell",
2026-01-11 17:13:50 -07:00
"appSettings_themeDark": "Dunkel",
"appSettings_language": "Sprache",
"appSettings_languageSystem": "Systemstandard",
"appSettings_languageEn": "English",
"appSettings_languageFr": "Français",
"appSettings_languageEs": "Español",
"appSettings_languageDe": "Deutsch",
"appSettings_languagePl": "Polski",
"appSettings_languageSl": "Slovenščina",
"appSettings_languagePt": "Português",
"appSettings_languageIt": "Italiano",
"appSettings_languageZh": "中文",
"appSettings_languageSv": "Svenska",
"appSettings_languageNl": "Nederlands",
"appSettings_languageSk": "Slovenčina",
"appSettings_languageBg": "Български",
"appSettings_notifications": "Benachrichtigungen",
"appSettings_enableNotifications": "Benachrichtigungen aktivieren",
2026-01-17 17:03:39 +01:00
"appSettings_enableNotificationsSubtitle": "Erhalte Benachrichtigungen für Nachrichten und Ankündigungen",
2026-01-11 17:13:50 -07:00
"appSettings_notificationPermissionDenied": "Erlaubnis zur Benachrichtigung verweigert",
"appSettings_notificationsEnabled": "Benachrichtigungen aktiviert",
"appSettings_notificationsDisabled": "Benachrichtigungen deaktiviert",
2026-01-17 17:03:39 +01:00
"appSettings_messageNotifications": "Direktnachrichten Benachrichtigungen",
"appSettings_messageNotificationsSubtitle": "Zeige Benachrichtigung beim Empfang neuer Direktnachrichten",
"appSettings_channelMessageNotifications": "Kanalnachrichten Benachrichtigungen",
2026-01-11 17:13:50 -07:00
"appSettings_channelMessageNotificationsSubtitle": "Zeige Benachrichtigung beim Empfangen von Kanalnachrichten",
2026-01-17 17:03:39 +01:00
"appSettings_advertisementNotifications": "Ankündigungsbenachrichtigungen",
2026-01-11 17:13:50 -07:00
"appSettings_advertisementNotificationsSubtitle": "Zeige Benachrichtigung, wenn neue Knoten entdeckt werden.",
"appSettings_messaging": "Nachrichten",
2026-01-17 17:03:39 +01:00
"appSettings_clearPathOnMaxRetry": "Lösche Pfade bei Max Wiederholungsversuchen",
"appSettings_clearPathOnMaxRetrySubtitle": "Zurücksetzen der Kontaktpfade nach 5 fehlgeschlagenen Sendeabbrüchen",
2026-01-11 17:13:50 -07:00
"appSettings_pathsWillBeCleared": "Die Pfade werden nach 5 fehlgeschlagenen Versuchen gelöscht.",
"appSettings_pathsWillNotBeCleared": "Die Pfade werden nicht automatisch gelöscht.",
"appSettings_autoRouteRotation": "Automatische Routenrotation",
"appSettings_autoRouteRotationSubtitle": "Wechseln zwischen den besten Pfaden und dem Fluten",
"appSettings_autoRouteRotationEnabled": "Automatische Routenrotation aktiviert",
"appSettings_autoRouteRotationDisabled": "Automatische Routenrotation deaktiviert",
"appSettings_battery": "Akku",
"appSettings_batteryChemistry": "Batteriechemie",
"appSettings_batteryChemistryPerDevice": "Konfiguriert pro Gerät ({deviceName})",
"@appSettings_batteryChemistryPerDevice": {
"placeholders": {
"deviceName": {
"type": "String"
}
}
},
"appSettings_batteryChemistryConnectFirst": "Verbinde ein Gerät, um zu wählen",
"appSettings_batteryNmc": "18650 NMC (3,0– 4,2 V)",
"appSettings_batteryLifepo4": "LiFePO4 (2,6– 3,65 V)",
"appSettings_batteryLipo": "LiPo (3,0– 4,2V)",
"appSettings_mapDisplay": "Kartendarstellung",
"appSettings_showRepeaters": "Zeige Repeater",
"appSettings_showRepeatersSubtitle": "Zeige Repeater-Knoten auf der Karte an",
"appSettings_showChatNodes": "Zeige Chat-Knoten",
"appSettings_showChatNodesSubtitle": "Chat-Knoten auf der Karte anzeigen",
"appSettings_showOtherNodes": "Zeige andere Knoten",
"appSettings_showOtherNodesSubtitle": "Andere Knotentypen auf der Karte anzeigen",
"appSettings_timeFilter": "Zeitfilter",
"appSettings_timeFilterShowAll": "Alle Knoten anzeigen",
"appSettings_timeFilterShowLast": "Zeige Knoten der letzten {hours} Stunden an",
"@appSettings_timeFilterShowLast": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"appSettings_mapTimeFilter": "Karten Zeitfilter",
2026-01-11 17:13:50 -07:00
"appSettings_showNodesDiscoveredWithin": "Zeige Knoten, die innerhalb von:",
2026-01-17 17:03:39 +01:00
"appSettings_allTime": "Ganzer Zeitverlauf",
"appSettings_lastHour": "Letzte Stunde",
2026-01-11 17:13:50 -07:00
"appSettings_last6Hours": "Letzte 6 Stunden",
"appSettings_last24Hours": "Letzte 24 Stunden",
"appSettings_lastWeek": "Letzte Woche",
"appSettings_offlineMapCache": "Offline-Karten-Cache",
"appSettings_noAreaSelected": "Kein Bereich ausgewählt",
"appSettings_areaSelectedZoom": "Ausgewählte Fläche (Zoom {minZoom}-{maxZoom})",
"@appSettings_areaSelectedZoom": {
"placeholders": {
"minZoom": {
"type": "int"
},
"maxZoom": {
"type": "int"
}
}
},
"appSettings_debugCard": "Fehlerbehebung",
"appSettings_appDebugLogging": "App-Debug-Protokollierung",
"appSettings_appDebugLoggingSubtitle": "Protokolliere App-Debug-Nachrichten zur Fehlerbehebung",
"appSettings_appDebugLoggingEnabled": "App-Debug-Protokollierung aktiviert",
"appSettings_appDebugLoggingDisabled": "App-Debug-Protokollierung deaktiviert",
"contacts_title": "Kontakte",
2026-01-17 17:03:39 +01:00
"contacts_noContacts": "Noch keine Kontakte vorhanden.",
"contacts_contactsWillAppear": "Kontakte werden angezeigt, wenn Geräte eine Ankündigung machen.",
2026-01-11 17:13:50 -07:00
"contacts_searchContacts": "Suche Kontakte...",
2026-01-17 17:03:39 +01:00
"contacts_noUnreadContacts": "Keine ungesehene Kontakte",
2026-01-11 17:13:50 -07:00
"contacts_noContactsFound": "Keine Kontakte oder Gruppen gefunden.",
2026-01-17 17:03:39 +01:00
"contacts_deleteContact": "Lösche den Kontakt",
"contacts_removeConfirm": "{contactName} aus den Kontakten entfernen?",
2026-01-11 17:13:50 -07:00
"@contacts_removeConfirm": {
"placeholders": {
"contactName": {
"type": "String"
}
}
},
2026-01-24 18:05:10 +01:00
"contacts_manageRepeater": "Repeater verwalten",
2026-01-11 17:13:50 -07:00
"contacts_roomLogin": "Raum-Login",
2026-01-17 17:03:39 +01:00
"contacts_openChat": "Öffne Chat",
"contacts_editGroup": "Gruppe bearbeiten",
2026-01-11 17:13:50 -07:00
"contacts_deleteGroup": "Löschen Gruppe",
2026-01-17 17:03:39 +01:00
"contacts_deleteGroupConfirm": "Löschen von \"{groupName}\"?",
2026-01-11 17:13:50 -07:00
"@contacts_deleteGroupConfirm": {
"placeholders": {
"groupName": {
"type": "String"
}
}
},
"contacts_newGroup": "Neue Gruppe",
"contacts_groupName": "Gruppenname",
"contacts_groupNameRequired": "Der Gruppennamen ist erforderlich.",
"contacts_groupAlreadyExists": "Die Gruppe \"{name}\" existiert bereits.",
"@contacts_groupAlreadyExists": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"contacts_filterContacts": "Filtert Kontakte...",
"contacts_noContactsMatchFilter": "Keine Kontakte passen zu Ihrem Filter",
"contacts_noMembers": "Keine Mitglieder",
2026-01-17 17:03:39 +01:00
"contacts_lastSeenNow": "gerade gesehen",
"contacts_lastSeenMinsAgo": "Letzte Sichtung vor {minutes} Minuten.",
2026-01-11 17:13:50 -07:00
"@contacts_lastSeenMinsAgo": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"contacts_lastSeenHourAgo": "Letzte Sichtung vor 1 Stunde.",
2026-01-17 17:03:39 +01:00
"contacts_lastSeenHoursAgo": "Letzte Sichtung vor {hours} Stunden.",
2026-01-11 17:13:50 -07:00
"@contacts_lastSeenHoursAgo": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
"contacts_lastSeenDayAgo": "Letzte Sichtung vor 1 Tag",
"contacts_lastSeenDaysAgo": "Letzte Sichtung {days} Tage zuvor",
"@contacts_lastSeenDaysAgo": {
"placeholders": {
"days": {
"type": "int"
}
}
},
"channels_title": "Kanäle",
"channels_noChannelsConfigured": "Keine Kanäle konfiguriert",
"channels_addPublicChannel": "Öffentlichen Kanal hinzufügen",
"channels_searchChannels": "Suche Kanäle...",
"channels_noChannelsFound": "Keine Kanäle gefunden",
"channels_channelIndex": "Kanal {index}",
"@channels_channelIndex": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"channels_hashtagChannel": "Hashtag-Kanal",
"channels_public": "Öffentlich",
"channels_private": "Privat",
"channels_publicChannel": "Öffentlicher Kanal",
"channels_privateChannel": "Privater Kanal",
"channels_editChannel": "Kanal bearbeiten",
2026-01-17 17:03:39 +01:00
"channels_deleteChannel": "Lösche den Kanal",
"channels_deleteChannelConfirm": "Löschen von \"{name}\"? Dies kann nicht rückgängig gemacht werden.",
2026-01-11 17:13:50 -07:00
"@channels_deleteChannelConfirm": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_channelDeleted": "Kanal \"{name}\" gelöscht",
"@channels_channelDeleted": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_addChannel": "Kanal hinzufügen",
"channels_channelIndexLabel": "Kanalindex",
"channels_channelName": "Kanalname",
"channels_usePublicChannel": "Verwende öffentlichen Kanal",
2026-01-24 18:05:10 +01:00
"channels_standardPublicPsk": "Öffentliche Standard PSK",
2026-01-11 17:13:50 -07:00
"channels_pskHex": "PSK (Hex)",
"channels_generateRandomPsk": "Zufällige PSK generieren",
"channels_enterChannelName": "Bitte geben Sie einen Kanalnamen ein.",
"channels_pskMustBe32Hex": "Die PSK muss 32 hexadezimale Zeichen haben.",
"channels_channelAdded": "Kanal \"{name}\" hinzugefügt",
"@channels_channelAdded": {
"placeholders": {
"name": {
"type": "String"
}
}
},
2026-01-17 17:03:39 +01:00
"channels_editChannelTitle": "Bearbeiteter Kanal {index}",
2026-01-11 17:13:50 -07:00
"@channels_editChannelTitle": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"channels_smazCompression": "SMAZ-Komprimierung",
"channels_channelUpdated": "Kanal \"{name}\" aktualisiert",
"@channels_channelUpdated": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"channels_publicChannelAdded": "Öffentlicher Kanal hinzugefügt",
"channels_sortBy": "Sortiere nach",
2026-01-17 17:03:39 +01:00
"channels_sortManual": "Manuell",
2026-01-11 17:13:50 -07:00
"channels_sortAZ": "A bis Z",
"channels_sortLatestMessages": "Letzte Nachrichten",
2026-01-17 17:03:39 +01:00
"channels_sortUnread": "Ungelesen",
2026-01-11 17:13:50 -07:00
"chat_noMessages": "Noch keine Nachrichten.",
"chat_sendMessageToStart": "Eine Nachricht senden, um anzufangen.",
"chat_originalMessageNotFound": "Originalmeldung nicht gefunden",
"chat_replyingTo": "Antworten an {name}",
"@chat_replyingTo": {
"placeholders": {
"name": {
"type": "String"
}
}
},
2026-01-17 17:03:39 +01:00
"chat_replyTo": "Antwort an {name}",
2026-01-11 17:13:50 -07:00
"@chat_replyTo": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"chat_location": "Ort",
"chat_sendMessageTo": "Sende eine Nachricht an {contactName}",
"@chat_sendMessageTo": {
"placeholders": {
"contactName": {
"type": "String"
}
}
},
"chat_typeMessage": "Eine Nachricht eingeben...",
"chat_messageTooLong": "Nachricht ist zu lang (max {maxBytes} Bytes).",
"@chat_messageTooLong": {
"placeholders": {
"maxBytes": {
"type": "int"
}
}
},
"chat_messageCopied": "Nachricht kopiert",
"chat_messageDeleted": "Nachricht gelöscht",
"chat_retryingMessage": "Versuche es erneut.",
2026-01-17 17:03:39 +01:00
"chat_retryCount": "Versuche {current}/{max}",
2026-01-11 17:13:50 -07:00
"@chat_retryCount": {
"placeholders": {
"current": {
"type": "int"
},
"max": {
"type": "int"
}
}
},
"chat_sendGif": "GIF senden",
"chat_reply": "Beantworten",
"chat_addReaction": "Reaktion hinzufügen",
"chat_me": "Ich",
"emojiCategorySmileys": "Emoticons",
"emojiCategoryGestures": "Gesten",
"emojiCategoryHearts": "Herz",
"emojiCategoryObjects": "Objekte",
"gifPicker_title": "Wähle ein GIF",
"gifPicker_searchHint": "Suche nach GIFs...",
2026-01-17 17:03:39 +01:00
"gifPicker_poweredBy": "Bereitgestellt von GIPHY",
2026-01-11 17:13:50 -07:00
"gifPicker_noGifsFound": "Keine GIFs gefunden",
2026-01-17 17:03:39 +01:00
"gifPicker_failedLoad": "GIF-Datei konnten nicht geladen werden.",
2026-01-11 17:13:50 -07:00
"gifPicker_failedSearch": "Suche nach GIFs fehlgeschlagen",
"gifPicker_noInternet": "Keine Internetverbindung",
"debugLog_appTitle": "App-Debug-Protokoll",
"debugLog_bleTitle": "BLE-Debug-Protokoll",
2026-01-17 17:03:39 +01:00
"debugLog_copyLog": "Kopieren des Protokolls",
"debugLog_clearLog": "Protokoll löschen",
2026-01-11 17:13:50 -07:00
"debugLog_copied": "Debug-Protokoll kopiert",
"debugLog_bleCopied": "BLE-Protokoll kopiert",
"debugLog_noEntries": "No Debug-Protokolle noch verfügbar",
"debugLog_enableInSettings": "Aktivieren Sie das App-Debug-Logging in den Einstellungen",
"debugLog_frames": "Rahmen",
"debugLog_rawLogRx": "Roh-Log-RX",
2026-01-17 17:03:39 +01:00
"debugLog_noBleActivity": "Bisher keine BLE-Aktivität",
2026-01-11 17:13:50 -07:00
"debugFrame_length": "Rahmenlänge: {count} Bytes",
"@debugFrame_length": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"debugFrame_command": "Befehl: 0x{value}",
"@debugFrame_command": {
"placeholders": {
"value": {
"type": "String"
}
}
},
2026-01-24 18:05:10 +01:00
"debugFrame_textMessageHeader": "Textnachrichten Frame:",
"debugFrame_destinationPubKey": "- Ziel-Public-Schlüssel: {pubKey}",
2026-01-11 17:13:50 -07:00
"@debugFrame_destinationPubKey": {
"placeholders": {
"pubKey": {
"type": "String"
}
}
},
"debugFrame_timestamp": "- Zeitstempel: {timestamp}",
"@debugFrame_timestamp": {
"placeholders": {
"timestamp": {
"type": "int"
}
}
},
"debugFrame_flags": "- Flags: 0x{value}",
"@debugFrame_flags": {
"placeholders": {
"value": {
"type": "String"
}
}
},
"debugFrame_textType": "- Textart: {type} ({label})",
"@debugFrame_textType": {
"placeholders": {
"type": {
"type": "int"
},
"label": {
"type": "String"
}
}
},
"debugFrame_textTypeCli": "CLI",
"debugFrame_textTypePlain": "Einfach",
"debugFrame_text": "- Text: \"{text}\"",
"@debugFrame_text": {
"placeholders": {
"text": {
"type": "String"
}
}
},
"debugFrame_hexDump": "Hex-Dump:",
"chat_pathManagement": "Pfadverwaltung",
"chat_routingMode": "Routenmodus",
"chat_autoUseSavedPath": "Automatisch (gespeicherten Pfad verwenden)",
2026-01-17 17:03:39 +01:00
"chat_forceFloodMode": "Flut-Modus erzwingen",
2026-02-10 22:55:39 +01:00
"chat_recentAckPaths": "Aktuelle ACK-Pfade (antippen, um zu verwenden):",
2026-01-11 17:13:50 -07:00
"chat_pathHistoryFull": "Die Pfadhistorie ist voll. Entferne Einträge, um neue hinzuzufügen.",
2026-01-17 17:03:39 +01:00
"chat_hopSingular": "Sprung",
"chat_hopPlural": "Sprünge",
"chat_hopsCount": "{count} {count, plural, =1{Sprung} other{Sprünge}}",
2026-01-11 17:13:50 -07:00
"@chat_hopsCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"chat_successes": "Erfolgreich",
2026-01-11 17:13:50 -07:00
"chat_removePath": "Pfad entfernen",
2026-02-10 22:55:39 +01:00
"chat_noPathHistoryYet": "Keine Pfadhistorie vorhanden.\nSende eine Nachricht, um Pfade zu entdecken.",
2026-01-11 17:13:50 -07:00
"chat_pathActions": "Pfadaktionen:",
"chat_setCustomPath": "Lege benutzerdefinierten Pfad fest",
2026-01-17 17:03:39 +01:00
"chat_setCustomPathSubtitle": "Manuellen Routenpfad festlegen",
"chat_clearPath": "Pfad zurücksetzen",
"chat_clearPathSubtitle": "Setze Pfad zurück, erkenne neuen Pfad bei nächster Sendung.",
"chat_pathCleared": "Pfad zurückgesetzt. Nächste Nachricht wird Route neu entdecken.",
2026-01-11 17:13:50 -07:00
"chat_floodModeSubtitle": "Verwende den Routingschalter in der App-Leiste",
2026-01-17 17:03:39 +01:00
"chat_floodModeEnabled": "Flutmodus aktiviert.",
2026-01-11 17:13:50 -07:00
"chat_fullPath": "Vollständiger Pfad",
"chat_pathDetailsNotAvailable": "Die Pfaddetails sind noch nicht verfügbar. Versuchen Sie, eine Nachricht zu senden, um zu aktualisieren.",
"chat_pathSetHops": "Pfad gesetzt: {hopCount} {hopCount, plural, =1{hop} other{hops}} - {status}",
"@chat_pathSetHops": {
"placeholders": {
"hopCount": {
"type": "int"
},
"status": {
"type": "String"
}
}
},
2026-01-17 17:03:39 +01:00
"chat_pathSavedLocally": "Lokal Gespeichert. Bitte Verbinden zum Synchronisieren.",
2026-01-11 17:13:50 -07:00
"chat_pathDeviceConfirmed": "Gerät bestätigt.",
"chat_pathDeviceNotConfirmed": "Gerät noch nicht bestätigt.",
2026-01-17 17:03:39 +01:00
"chat_type": "Gebe ein",
2026-01-11 17:13:50 -07:00
"chat_path": "Pfad",
"chat_publicKey": "Öffentlicher Schlüssel",
2026-01-17 17:03:39 +01:00
"chat_compressOutgoingMessages": "Komprimieren ausgehender Nachrichten",
"chat_floodForced": "Geflutet (erzwungen)",
"chat_directForced": "Direkt (erzwungen)",
2026-01-11 17:13:50 -07:00
"chat_hopsForced": "{count} Sprünge (erzwungen)",
"@chat_hopsForced": {
"placeholders": {
"count": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"chat_floodAuto": "Geflutet (automatisch)",
2026-01-11 17:13:50 -07:00
"chat_direct": "Direkt",
2026-01-17 17:03:39 +01:00
"chat_poiShared": "Geteilter POI",
"chat_unread": "Ungelesen: {count}",
2026-01-11 17:13:50 -07:00
"@chat_unread": {
"placeholders": {
"count": {
"type": "int"
}
}
},
2026-01-20 21:42:54 -07:00
"chat_openLink": "Link öffnen?",
"chat_openLinkConfirmation": "Möchten Sie diesen Link in Ihrem Browser öffnen?",
"chat_open": "Öffnen",
"chat_couldNotOpenLink": "Link konnte nicht geöffnet werden: {url}",
"@chat_couldNotOpenLink": {
"placeholders": {
"url": {
"type": "String"
}
}
},
"chat_invalidLink": "Ungültiges Link-Format",
2026-01-17 17:03:39 +01:00
"map_title": "Karte",
2026-01-11 17:13:50 -07:00
"map_noNodesWithLocation": "Keine Knoten mit Standortdaten",
2026-01-17 17:03:39 +01:00
"map_nodesNeedGps": "Knoten müssen ihre GPS-Koordinaten teilen,\num auf der Karte zu erscheinen.",
2026-01-11 17:13:50 -07:00
"map_nodesCount": "Knoten: {count}",
"@map_nodesCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"map_pinsCount": "Pins: {count}",
"@map_pinsCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"map_chat": "Benutzer",
"map_repeater": "Repeater",
2026-01-11 17:13:50 -07:00
"map_room": "Raum",
"map_sensor": "Sensor",
2026-01-17 17:03:39 +01:00
"map_pinDm": "Pin (Kontakt)",
"map_pinPrivate": "Pin (Channel)",
"map_pinPublic": "Pin (Public)",
2026-01-11 17:13:50 -07:00
"map_lastSeen": "Letzte Sichtung",
"map_disconnectConfirm": "Sind Sie sicher, dass Sie sich von diesem Gerät trennen möchten?",
"map_from": "Von",
"map_source": "Quelle",
2026-01-17 17:03:39 +01:00
"map_flags": "Flags",
"map_shareMarkerHere": "Teilen Sie den Marker hier.",
"map_pinLabel": "Pin Name",
2026-01-11 17:13:50 -07:00
"map_label": "Label",
"map_pointOfInterest": "Punkt von Interesse",
"map_sendToContact": "Senden an Kontakt",
2026-01-17 17:03:39 +01:00
"map_sendToChannel": "Senden an Kanal",
2026-01-11 17:13:50 -07:00
"map_noChannelsAvailable": "Keine Kanäle verfügbar",
"map_publicLocationShare": "Öffentliche Standortfreigabe",
"map_publicLocationShareConfirm": "Sie werden kurz darauf einen Ort in {channelLabel} teilen. Dieser Kanal ist öffentlich und jeder mit dem PSK kann ihn sehen.",
"@map_publicLocationShareConfirm": {
"placeholders": {
"channelLabel": {
"type": "String"
}
}
},
"map_connectToShareMarkers": "Verbinde ein Gerät, um Marker zu teilen",
2026-01-17 17:03:39 +01:00
"map_filterNodes": "Knotenfilter",
2026-01-11 17:13:50 -07:00
"map_nodeTypes": "Knotentypen",
"map_chatNodes": "Chat-Knoten",
2026-01-17 17:03:39 +01:00
"map_repeaters": "Repeater",
2026-01-11 17:13:50 -07:00
"map_otherNodes": "Andere Knoten",
"map_keyPrefix": "Schlüsselpräfix",
"map_filterByKeyPrefix": "Filter nach Schlüsselpräfix",
2026-01-17 17:03:39 +01:00
"map_publicKeyPrefix": "Schlüsselpräfix",
2026-01-11 17:13:50 -07:00
"map_markers": "Marker",
"map_showSharedMarkers": "Zeige gemeinsam genutzte Marker",
"map_lastSeenTime": "Letzte Sichtung",
"map_sharedPin": "Gemeinsames Passwort",
"map_joinRoom": "Beitreten Sie dem Raum",
2026-01-17 17:03:39 +01:00
"map_manageRepeater": "Repeater verwalten",
2026-01-11 17:13:50 -07:00
"mapCache_title": "Offline-Karten-Cache",
"mapCache_selectAreaFirst": "Wählen Sie zuerst einen Bereich zum Zwischenspeichern aus.",
2026-01-17 17:03:39 +01:00
"mapCache_noTilesToDownload": "Keine Kacheln für diese Region zum Herunterladen verfügbar.",
"mapCache_downloadTilesTitle": "Herunterladen von Kacheln",
"mapCache_downloadTilesPrompt": "Laden {count} Kacheln für den Offline-Bereich herunter?",
2026-01-11 17:13:50 -07:00
"@mapCache_downloadTilesPrompt": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mapCache_downloadAction": "Herunterladen",
2026-01-17 17:03:39 +01:00
"mapCache_cachedTiles": "Zwischengespeicherte {count} Kacheln",
2026-01-11 17:13:50 -07:00
"@mapCache_cachedTiles": {
"placeholders": {
"count": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"mapCache_cachedTilesWithFailed": "Zwischengespeicherte {downloaded} Kacheln ({failed} fehlgeschlagen)",
2026-01-11 17:13:50 -07:00
"@mapCache_cachedTilesWithFailed": {
"placeholders": {
"downloaded": {
"type": "int"
},
"failed": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"mapCache_clearOfflineCacheTitle": "Leere Offline-Cache",
2026-01-11 17:13:50 -07:00
"mapCache_clearOfflineCachePrompt": "Alle zwischengespeicherten Kartenraster entfernen?",
"mapCache_offlineCacheCleared": "Offline-Cache gelöscht",
"mapCache_noAreaSelected": "Kein Bereich ausgewählt",
"mapCache_cacheArea": "Zwischenspeicherbereich",
"mapCache_useCurrentView": "Aktuelle Ansicht verwenden",
"mapCache_zoomRange": "Zoom Bereich",
2026-02-10 22:55:39 +01:00
"mapCache_estimatedTiles": "Geschätzte Kacheln: {count}",
2026-01-11 17:13:50 -07:00
"@mapCache_estimatedTiles": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mapCache_downloadedTiles": "Heruntergeladen {completed} / {total}",
"@mapCache_downloadedTiles": {
"placeholders": {
"completed": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"mapCache_downloadTilesButton": "Herunterladen von Kacheln",
2026-01-11 17:13:50 -07:00
"mapCache_clearCacheButton": "Cache leeren",
"mapCache_failedDownloads": "Fehlgeschlagene Downloads: {count}",
"@mapCache_failedDownloads": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"mapCache_boundsLabel": "N {north}, S {south}, E {east}, W {west}",
"@mapCache_boundsLabel": {
"placeholders": {
"north": {
"type": "String"
},
"south": {
"type": "String"
},
"east": {
"type": "String"
},
"west": {
"type": "String"
}
}
},
"time_justNow": "Gerade eben",
"time_minutesAgo": "{minutes} Minuten her",
"@time_minutesAgo": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"time_hoursAgo": "{hours} Stunden her",
"@time_hoursAgo": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
"time_daysAgo": "{days} Tage/Tage zuvor",
"@time_daysAgo": {
"placeholders": {
"days": {
"type": "int"
}
}
},
"time_hour": "Stunde",
"time_hours": "Stunden",
"time_day": "Tag",
"time_days": "Tage",
"time_week": "Woche",
"time_weeks": "Wochen",
"time_month": "Monat",
"time_months": "Monate",
"time_minutes": "Minuten",
2026-01-17 17:03:39 +01:00
"time_allTime": "Ganzer Zeitraum",
2026-01-11 17:13:50 -07:00
"dialog_disconnect": "Trennen",
"dialog_disconnectConfirm": "Sind Sie sicher, dass Sie sich von diesem Gerät trennen möchten?",
2026-01-17 17:03:39 +01:00
"login_repeaterLogin": "Beim Repeater anmelden",
2026-01-11 17:13:50 -07:00
"login_roomLogin": "Raum-Login",
"login_password": "Passwort",
"login_enterPassword": "Passwort eingeben",
"login_savePassword": "Passwort speichern",
"login_savePasswordSubtitle": "Das Passwort wird auf diesem Gerät sicher gespeichert.",
"login_repeaterDescription": "Geben Sie das Repeater-Passwort ein, um auf Einstellungen und Status zuzugreifen.",
"login_roomDescription": "Geben Sie das Raumkennwort ein, um auf die Einstellungen und den Status zuzugreifen.",
"login_routing": "Routen",
"login_routingMode": "Routenmodus",
"login_autoUseSavedPath": "Automatisch (gespeicherten Pfad verwenden)",
2026-01-17 17:03:39 +01:00
"login_forceFloodMode": "Flut-Modus erzwingen",
2026-01-11 17:13:50 -07:00
"login_managePaths": "Pfadverwaltung",
"login_login": "Anmelden",
"login_attempt": "Versuche {current}/{max}",
"@login_attempt": {
"placeholders": {
"current": {
"type": "int"
},
"max": {
"type": "int"
}
}
},
"login_failed": "Anmeldung fehlgeschlagen: {error}",
"@login_failed": {
"placeholders": {
"error": {
"type": "String"
}
}
},
2026-01-16 09:35:02 -05:00
"login_failedMessage": "Anmeldung fehlgeschlagen. Entweder ist das Passwort falsch oder der Repeater ist nicht erreichbar.",
2026-01-11 17:13:50 -07:00
"common_reload": "Neu laden",
"common_clear": "Löschen",
2026-01-17 17:03:39 +01:00
"path_currentPath": "Aktiver Pfad: {path}",
2026-01-11 17:13:50 -07:00
"@path_currentPath": {
"placeholders": {
"path": {
"type": "String"
}
}
},
"path_usingHopsPath": "Verwenden Sie {count} {count, plural, =1{Hop} other{Hops}} Pfad",
"@path_usingHopsPath": {
"placeholders": {
"count": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"path_enterCustomPath": "Gebe Pfad ein",
2026-01-11 17:13:50 -07:00
"path_currentPathLabel": "Aktueller Pfad",
2026-02-10 22:55:39 +01:00
"path_hexPrefixInstructions": "Gebe für jeden Zwischen-Hop das 2-stellige Hex-Präfix ein, getrennt durch Kommas.",
2026-01-11 17:13:50 -07:00
"path_hexPrefixExample": "Beispiel: A1,F2,3C (jeder Knoten verwendet den ersten Byte seines öffentlichen Schlüssels)",
"path_labelHexPrefixes": "Pfad (Hex-Präfixe)",
"path_helperMaxHops": "Max 64 Sprünge. Jede Präfixe ist 2 Hexadezimalzeichen (1 Byte)",
"path_selectFromContacts": "Oder wähle aus Kontakten aus:",
"path_noRepeatersFound": "Keine Repeater oder Raumserver gefunden.",
"path_customPathsRequire": "Benutzerdefinierte Pfade erfordern Zwischen-Hops, die Nachrichten weiterleiten können.",
"path_invalidHexPrefixes": "Ungültige Hexadezimal-Präfixe: {prefixes}",
"@path_invalidHexPrefixes": {
"placeholders": {
"prefixes": {
"type": "String"
}
}
},
"path_tooLong": "Pfad zu lang. Maximal 64 Hops erlaubt.",
"path_setPath": "Pfad festlegen",
2026-01-17 17:03:39 +01:00
"repeater_management": "Repeater-Verwaltung",
2026-01-11 17:13:50 -07:00
"repeater_managementTools": "Verwaltungs-Tools",
"repeater_status": "Status",
"repeater_statusSubtitle": "Status, Statistiken und Nachbarn anzeigen",
"repeater_telemetry": "Telemetrie",
"repeater_telemetrySubtitle": "Sensordaten und Systemwerte anzeigen",
"repeater_cli": "CLI",
"repeater_cliSubtitle": "Sende Befehle an den Repeater",
"repeater_settings": "Einstellungen",
2026-01-17 17:03:39 +01:00
"repeater_settingsSubtitle": "Repeater-parameter konfigurieren",
"repeater_statusTitle": "Repeaterstatus",
2026-01-11 17:13:50 -07:00
"repeater_routingMode": "Routenmodus",
"repeater_autoUseSavedPath": "Automatisch (gespeicherten Pfad verwenden)",
2026-01-17 17:03:39 +01:00
"repeater_forceFloodMode": "Flut-Modus erzwingen",
2026-01-11 17:13:50 -07:00
"repeater_pathManagement": "Pfadverwaltung",
"repeater_refresh": "Aktualisieren",
2026-02-10 22:55:39 +01:00
"repeater_statusRequestTimeout": "Statusanfrage durch Timeout fehlgeschlagen.",
2026-01-11 17:13:50 -07:00
"repeater_errorLoadingStatus": "Fehler beim Laden des Status: {error}",
"@repeater_errorLoadingStatus": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_systemInformation": "Systeminformation",
"repeater_battery": "Akku",
"repeater_clockAtLogin": "Uhr (bei Anmeldung)",
"repeater_uptime": "Verfügbarkeit",
"repeater_queueLength": "Warteschlangenlänge",
"repeater_debugFlags": "Fehlerbehebungsoptionen",
"repeater_radioStatistics": "Funk-Statistik",
"repeater_lastRssi": "Letzter RSSI",
"repeater_lastSnr": "Letzter SNR",
"repeater_noiseFloor": "Rauschpegel",
"repeater_txAirtime": "TX Airtime",
"repeater_rxAirtime": "RX Airtime",
"repeater_packetStatistics": "Paketstatistiken",
"repeater_sent": "Gesendet",
"repeater_received": "Empfangen",
"repeater_duplicates": "Duplikate",
"repeater_daysHoursMinsSecs": "{days} Tage {hours}h {minutes}m {seconds}s",
"@repeater_daysHoursMinsSecs": {
"placeholders": {
"days": {
"type": "int"
},
"hours": {
"type": "int"
},
"minutes": {
"type": "int"
},
"seconds": {
"type": "int"
}
}
},
"repeater_packetTxTotal": "Gesamt: {total}, Flut: {flood}, Direkt: {direct}",
"@repeater_packetTxTotal": {
"placeholders": {
"total": {
"type": "int"
},
"flood": {
"type": "String"
},
"direct": {
"type": "String"
}
}
},
"repeater_packetRxTotal": "Gesamt: {total}, Flut: {flood}, Direkt: {direct}",
"@repeater_packetRxTotal": {
"placeholders": {
"total": {
"type": "int"
},
"flood": {
"type": "String"
},
"direct": {
"type": "String"
}
}
},
2026-02-10 22:55:39 +01:00
"repeater_duplicatesFloodDirect": "Flut: {flood}, Direkt: {direct}",
2026-01-11 17:13:50 -07:00
"@repeater_duplicatesFloodDirect": {
"placeholders": {
"flood": {
"type": "String"
},
"direct": {
"type": "String"
}
}
},
"repeater_duplicatesTotal": "Gesamt: {total}",
"@repeater_duplicatesTotal": {
"placeholders": {
"total": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"repeater_settingsTitle": "Repeater Einstellungen",
2026-01-11 17:13:50 -07:00
"repeater_basicSettings": "Grundlegende Einstellungen",
2026-01-17 17:03:39 +01:00
"repeater_repeaterName": "Repeater Name",
2026-01-11 17:13:50 -07:00
"repeater_repeaterNameHelper": "Anzeigename für diesen Repeater",
"repeater_adminPassword": "Admin-Passwort",
"repeater_adminPasswordHelper": "Vollzugriffspasswort",
"repeater_guestPassword": "Gast-Passwort",
2026-02-10 22:55:39 +01:00
"repeater_guestPasswordHelper": "Schreibgeschütztes Zugriffspasswort",
2026-01-11 17:13:50 -07:00
"repeater_radioSettings": "Funk Einstellungen",
"repeater_frequencyMhz": "Frequenz (MHz)",
"repeater_frequencyHelper": "300-2500 MHz",
"repeater_txPower": "TX Power",
"repeater_txPowerHelper": "1-30 dBm",
"repeater_bandwidth": "Bandbreite",
"repeater_spreadingFactor": "Verteilungsfaktor",
2026-01-17 17:03:39 +01:00
"repeater_codingRate": "Kodierungsrate",
2026-01-11 17:13:50 -07:00
"repeater_locationSettings": "Standort Einstellungen",
"repeater_latitude": "Breitengrad",
"repeater_latitudeHelper": "Dezimalgrad (z.B. 37,7749)",
"repeater_longitude": "Längengrad",
"repeater_longitudeHelper": "Dezimalgrad (z.B. -122,4194)",
"repeater_features": "Funktionen",
"repeater_packetForwarding": "Paketweiterleitung",
"repeater_packetForwardingSubtitle": "Aktivieren Sie den Repeater, um Pakete weiterzuleiten.",
"repeater_guestAccess": "Gastzugriff",
"repeater_guestAccessSubtitle": "Gast-Zugriff mit beschränkten Rechten zulassen",
2026-01-17 17:03:39 +01:00
"repeater_privacyMode": "Privatsphäreeinstellung",
"repeater_privacyModeSubtitle": "Verstecken Sie Name/Ort in Ankündigungen",
"repeater_advertisementSettings": "Ankündigungseinstellungen",
"repeater_localAdvertInterval": "Intervall der lokalen Ankündigungen",
2026-01-11 17:13:50 -07:00
"repeater_localAdvertIntervalMinutes": "{minutes} Minuten",
"@repeater_localAdvertIntervalMinutes": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"repeater_floodAdvertInterval": "Intervall der gefluteten Ankündigungen",
2026-01-11 17:13:50 -07:00
"repeater_floodAdvertIntervalHours": "{hours} Stunden",
"@repeater_floodAdvertIntervalHours": {
"placeholders": {
"hours": {
"type": "int"
}
}
},
2026-01-17 17:03:39 +01:00
"repeater_encryptedAdvertInterval": "Intervall der verschlüsselten Ankündigung",
2026-01-11 17:13:50 -07:00
"repeater_dangerZone": "Gefahrenzone",
"repeater_rebootRepeater": "Neustart Repeater",
2026-01-24 18:05:10 +01:00
"repeater_rebootRepeaterSubtitle": "Repeater-Gerät neu starten.",
2026-01-11 17:13:50 -07:00
"repeater_rebootRepeaterConfirm": "Sind Sie sicher, dass Sie diesen Repeater neu starten möchten?",
"repeater_regenerateIdentityKey": "Schlüssel für die Identitätswiederherstellung",
"repeater_regenerateIdentityKeySubtitle": "Neuen öffentlichen/privaten Schlüsselpaar generieren",
"repeater_regenerateIdentityKeyConfirm": "Dies generiert eine neue Identität für den Repeater. Fortfahren?",
"repeater_eraseFileSystem": "Dateisystem löschen",
"repeater_eraseFileSystemSubtitle": "Formatiere die Repeater-Dateisystemdatei",
"repeater_eraseFileSystemConfirm": "WARNUNG: Dies löscht alle Daten auf dem Repeater. Dies kann nicht rückgängig gemacht werden!",
"repeater_eraseSerialOnly": "Löschen ist nur über die serielle Konsole möglich.",
"repeater_commandSent": "Befehl gesendet: {command}",
"@repeater_commandSent": {
"placeholders": {
"command": {
"type": "String"
}
}
},
"repeater_errorSendingCommand": "Fehler beim Senden des Befehls: {error}",
"@repeater_errorSendingCommand": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_confirm": "Bestätigen",
"repeater_settingsSaved": "Einstellungen erfolgreich gespeichert",
"repeater_errorSavingSettings": "Fehler beim Speichern der Einstellungen: {error}",
"@repeater_errorSavingSettings": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_refreshBasicSettings": "Grundlegende Einstellungen aktualisieren",
"repeater_refreshRadioSettings": "Radio-Einstellungen aktualisieren",
2026-01-17 17:03:39 +01:00
"repeater_refreshTxPower": "Sendeleistung aktualisieren",
2026-01-11 17:13:50 -07:00
"repeater_refreshLocationSettings": "Aktualisieren Sie die Standort Einstellungen",
"repeater_refreshPacketForwarding": "Aktualisieren Paketweiterleitung",
"repeater_refreshGuestAccess": "Aktualisieren Sie den Gastzugriff",
"repeater_refreshPrivacyMode": "Wiederherstellen des Datenschutzzustands",
2026-01-17 17:03:39 +01:00
"repeater_refreshAdvertisementSettings": "Aktualisieren Sie die Ankündigungseinstellungen",
2026-01-11 17:13:50 -07:00
"repeater_refreshed": "{label} wurde aktualisiert",
"@repeater_refreshed": {
"placeholders": {
"label": {
"type": "String"
}
}
},
"repeater_errorRefreshing": "Fehler beim Aktualisieren von {label}",
"@repeater_errorRefreshing": {
"placeholders": {
"label": {
"type": "String"
}
}
},
2026-01-17 17:03:39 +01:00
"repeater_cliTitle": "Repeater CLI",
2026-02-10 22:55:39 +01:00
"repeater_debugNextCommand": "Fehlersuche des nächsten Befehls",
2026-01-11 17:13:50 -07:00
"repeater_commandHelp": "Hilfe",
2026-01-17 17:03:39 +01:00
"repeater_clearHistory": "Löschen der Historie",
2026-01-11 17:13:50 -07:00
"repeater_noCommandsSent": "Noch keine Befehle gesendet.",
2026-02-10 22:55:39 +01:00
"repeater_typeCommandOrUseQuick": "Geben Sie unten einen Befehl ein oder verwenden Sie die Schnellbefehle",
2026-01-11 17:13:50 -07:00
"repeater_enterCommandHint": "Geben Sie den Befehl ein...",
"repeater_previousCommand": "Vorhergehende Aktion",
"repeater_nextCommand": "Nächste Aktion",
"repeater_enterCommandFirst": "Geben Sie zuerst einen Befehl ein",
"repeater_cliCommandFrameTitle": "CLI-Befehlsfenster",
"repeater_cliCommandError": "Fehler: {error}",
"@repeater_cliCommandError": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_cliQuickGetName": "Name erhalten",
"repeater_cliQuickGetRadio": "Radio empfangen",
"repeater_cliQuickGetTx": "Erhalte TX",
"repeater_cliQuickNeighbors": "Nachbarn",
"repeater_cliQuickVersion": "Version",
2026-01-17 17:03:39 +01:00
"repeater_cliQuickAdvertise": "Ankündigungen",
2026-01-11 17:13:50 -07:00
"repeater_cliQuickClock": "Uhr",
2026-01-17 17:03:39 +01:00
"repeater_cliHelpAdvert": "Sendet eine Ankündigung",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpReboot": "Startet das Gerät neu. (Beachten Sie, dass es möglicherweise zu einer 'Timeout'-Situation kommt, was normal ist.)",
"repeater_cliHelpClock": "Zeigt die aktuelle Uhrzeit pro Gerät an.",
"repeater_cliHelpPassword": "Legt ein neues Administrator-Passwort für das Gerät fest.",
"repeater_cliHelpVersion": "Zeigt die Geräteversion und das Datum des Firmware-Builds an.",
2026-01-17 17:03:39 +01:00
"repeater_cliHelpClearStats": "Setzt verschiedene Statistikberechnungen auf Null zurück.",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpSetAf": "Legt den Luftzeitfaktor fest.",
"repeater_cliHelpSetTx": "Legt die LoRa-Übertragungspower in dBm (bezogen auf 1 Watt) fest. (Neustart erforderlich, um die Änderungen anzuwenden)",
"repeater_cliHelpSetRepeat": "Aktiviert oder deaktiviert die Repeater-Rolle für diesen Knoten.",
2026-01-17 17:03:39 +01:00
"repeater_cliHelpSetAllowReadOnly": "(Raumspeicher) Wenn 'an', dann wird die Anmeldung mit einem leeren Passwort erlaubt sein, aber es kann nicht in den Raum gesendet werden. (nur lesen möglich).",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpSetFloodMax": "Legt die maximale Anzahl an Hops für Pakete der eingehenden Flut (wenn >= max, wird das Paket nicht weitergeleitet)",
"repeater_cliHelpSetIntThresh": "Legt den Interferenzeniveau (in dB) fest. Der Standardwert ist 14. Auf 0 setzen, um die Erkennung von Kanalinterferenzen zu deaktivieren.",
"repeater_cliHelpSetAgcResetInterval": "Legt das Intervall für das Zurücksetzen des Auto Gain Controllers fest. Auf 0 setzen, um die Funktion zu deaktivieren.",
"repeater_cliHelpSetMultiAcks": "Aktiviert oder deaktiviert die Funktion 'Doppel-ACKs'.",
2026-01-17 17:03:39 +01:00
"repeater_cliHelpSetAdvertInterval": "Legt das Timer-Intervall in Minuten fest, um ein lokales (ohne-Weiterleitung) Ankündigungspaket zu senden. Auf 0 setzen, um die Funktion zu deaktivieren.",
"repeater_cliHelpSetFloodAdvertInterval": "Legt das Timer-Intervall in Stunden für den Versand eines Flut-Ankündigungspacket fest. Auf 0 setzen, um es zu deaktivieren.",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpSetGuestPassword": "Legt/aktualisiert das Gastpasswort fest. (für Repeater können Gast-Logins die \"Get Stats\"-Anfrage senden)",
"repeater_cliHelpSetName": "Legt den Anzeigenamen fest.",
2026-01-17 17:03:39 +01:00
"repeater_cliHelpSetLat": "Legt die Breitengrad der Ankündigung fest. (dezimale Grad)",
"repeater_cliHelpSetLon": "Legt die Längengrade der Ankündigung fest. (dezimale Grad)",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpSetRadio": "Legt komplett neue Radio-Parameter fest und speichert diese als Präferenzen. Benötigt einen \"Reboot\"-Befehl, um sie anzuwenden.",
2026-02-10 22:55:39 +01:00
"repeater_cliHelpSetRxDelay": "Fügt eine leichte Verzögerung bei empfangenen Paketen hinzu, basierend auf Signalstärke/Punktzahl. Auf 0 setzen, um die Funktion zu deaktivieren.",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpSetTxDelay": "Legt einen Faktor fest, der mit der Zeit bei voller Zuluft für ein Flood-Mode-Paket und mit einem zufälligen Slot-System multipliziert wird, um dessen Weiterleitung zu verzögern (um Kollisionen zu vermeiden).",
"repeater_cliHelpSetDirectTxDelay": "Ähnlich wie txdelay, aber zum Anwenden einer zufälligen Verzögerung bei der Weiterleitung von Direktmodus-Paketen.",
"repeater_cliHelpSetBridgeEnabled": "Brücke aktivieren/deaktivieren.",
"repeater_cliHelpSetBridgeDelay": "Setze Verzögerung vor erneuter Übertragung von Paketen.",
2026-01-17 17:03:39 +01:00
"repeater_cliHelpSetBridgeSource": "Wählen Sie, ob über die Brücke empfangene oder gesendete Pakete erneut übertragen soll.",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpSetBridgeBaud": "Setze die serielle Link-Baudrate für RS232-Brücken.",
2026-01-17 17:03:39 +01:00
"repeater_cliHelpSetBridgeSecret": "Richte das Brückenpassword ein.",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpSetAdcMultiplier": "Legt einen benutzerdefinierten Faktor zur Anpassung der gemeldeten Batteriewirkspannung fest (nur auf ausgewählten Boards unterstützt).",
"repeater_cliHelpTempRadio": "Legt vorübergehende Funkparameter für die angegebene Anzahl von Minuten fest und kehrt anschließend zu den ursprünglichen Funkparametern zurück (wird nicht in den Einstellungen gespeichert).",
"repeater_cliHelpSetPerm": "Ändert die ACL. Entfernt das passende Eintragen (durch Pubkey-Präfix), wenn \"permissions\" auf 0 steht. Fügt ein neues Eintragen hinzu, wenn die Pubkey-Hex-Länge vollständig ist und nicht bereits in der ACL vorhanden ist. Aktualisiert das Eintragen anhand des übereinstimmenden Pubkey-Präfix. Berechtigungsbits variieren je nach Firmware-Rolle, aber die unteren 2 Bits sind: 0 (Gast), 1 (Nur Lesen), 2 (Lesen/Schreiben), 3 (Admin)",
2026-02-10 22:55:39 +01:00
"repeater_cliHelpGetBridgeType": "Ruft Brückentyp: none, rs232, espnow ab.",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpLogStart": "Beginnt die Paketprotokollierung in das Dateisystem.",
"repeater_cliHelpLogStop": "Stoppt das Paketprotokollieren in das Dateisystem.",
"repeater_cliHelpLogErase": "Löscht die Paketprotokolle aus dem Dateisystem.",
2026-01-17 17:03:39 +01:00
"repeater_cliHelpNeighbors": "Zeigt eine Liste anderer Repeater-Knoten an, die über Zero-Hop-Ankündigung gehört wurden. Jede Zeile ist id-prefix-hex:timestamp:snr-times-4",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpNeighborRemove": "Entfernt das erste übereinstimmende Element (über Pubkey-Präfix (hex)) aus der Liste der Nachbarn.",
2026-01-17 17:03:39 +01:00
"repeater_cliHelpRegion": "Listet alle definierten Regionen auf.",
2026-02-10 22:55:39 +01:00
"repeater_cliHelpRegionLoad": "Hinweis: Dies ist ein spezieller Mehrbefehl-Aufruf. Jeder nachfolgende Befehl ist ein Regionsname (eingerückt mit Leerzeichen zur Angabe der übergeordneten Hierarchie, mit mindestens einem Leerzeichen). Beendet durch das Senden einer Leerzeile.",
2026-01-11 17:13:50 -07:00
"repeater_cliHelpRegionGet": "Sucht die Region mit dem gegebenen Namenspräfix (oder \"\\\" für den globalen Scope) und antwortet mit \"-> region-name (parent-name) 'F'\".",
"repeater_cliHelpRegionPut": "Fügt eine Region-Definition mit dem angegebenen Namen hinzu oder aktualisiert diese.",
"repeater_cliHelpRegionRemove": "Löscht eine Regiondefinition mit dem angegebenen Namen. (muss genau übereinstimmen und keine Kindregionen haben)",
"repeater_cliHelpRegionAllowf": "Legt die 'Flut'-Berechtigung für die angegebene Region fest. ('' für den globalen/legacy-Bereich)",
"repeater_cliHelpRegionDenyf": "Entfernt die \"F\"lood-Berechtigung für die angegebene Region. (ANMERKUNG: in dieser Phase wird nicht empfohlen, dies auf dem globalen/legacy-Bereich zu verwenden!!)",
"repeater_cliHelpRegionHome": "Antwortet mit der aktuellen 'Home'-Region. (Hinweis wurde bisher nirgendwo angewendet, für zukünftige Zwecke reserviert)",
"repeater_cliHelpRegionHomeSet": "Legt die 'Home'-Region fest.",
"repeater_cliHelpRegionSave": "Speichert die Regionenliste/Karte in den Speicher.",
"repeater_cliHelpGps": "Zeigt GPS-Status an. Wenn GPS deaktiviert ist, antwortet es nur mit \"aus\", wenn es eingeschaltet ist, antwortet es mit \"an\", \"Status\", \"Fix\" und Satellitenanzahl.",
"repeater_cliHelpGpsOnOff": "Schaltet die GPS-Leistung ein/aus.",
"repeater_cliHelpGpsSync": "Synchronisiert die Knotenzeit mit der GPS-Uhr.",
"repeater_cliHelpGpsSetLoc": "Setze die Position des Knotens auf GPS-Koordinaten und speichere die Präferenzen.",
"repeater_cliHelpGpsAdvert": "Gibt Konfiguration für die Standortanzeige des Knotens:\n- none: Standort nicht in Anzeigen einbeziehen\n- share: GPS-Standort teilen (von SensorManager)\n- prefs: Standort aus Einstellungen anzeigen",
"repeater_cliHelpGpsAdvertSet": "Legt die Standort-Anzeigekonfiguration fest.",
"repeater_commandsListTitle": "Befehlsliste",
"repeater_commandsListNote": "ACHTUNG: Für die verschiedenen „set ...“-Befehle gibt es auch einen „get ...“-Befehl.",
"repeater_general": "Allgemein",
"repeater_settingsCategory": "Einstellungen",
"repeater_bridge": "Brücke",
"repeater_logging": "Protokollierung",
"repeater_neighborsRepeaterOnly": "Nachbarn (nur Repeater)",
"repeater_regionManagementRepeaterOnly": "Regionenverwaltung (nur Repeater)",
"repeater_regionNote": "Region-Befehle wurden eingeführt, um Region-Definitionen und Berechtigungen zu verwalten.",
"repeater_gpsManagement": "GPS-Verwaltung",
"repeater_gpsNote": "Der GPS-Befehl wurde eingeführt, um Standortbezogene Themen zu verwalten.",
"telemetry_receivedData": "Empfangene Telemetriedaten",
"telemetry_requestTimeout": "Telemetry-Anfrage hat zu lange gedauert.",
"telemetry_errorLoading": "Fehler beim Laden der Telemetrie: {error}",
"@telemetry_errorLoading": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"telemetry_noData": "Keine Telemetriedaten verfügbar.",
"telemetry_channelTitle": "Kanal {channel}",
"@telemetry_channelTitle": {
"placeholders": {
"channel": {
"type": "int"
}
}
},
"telemetry_batteryLabel": "Akku",
"telemetry_voltageLabel": "Spannung",
"telemetry_mcuTemperatureLabel": "MCU Temperatur",
"telemetry_temperatureLabel": "Temperatur",
"telemetry_currentLabel": "Aktuell",
"telemetry_batteryValue": "{percent}% / {volts}V",
"@telemetry_batteryValue": {
"placeholders": {
"percent": {
"type": "int"
},
"volts": {
"type": "String"
}
}
},
"telemetry_voltageValue": "{volts} Volt",
"@telemetry_voltageValue": {
"placeholders": {
"volts": {
"type": "String"
}
}
},
"telemetry_currentValue": "{amps}A",
"@telemetry_currentValue": {
"placeholders": {
"amps": {
"type": "String"
}
}
},
"telemetry_temperatureValue": "{celsius}°C / {fahrenheit}°F",
"@telemetry_temperatureValue": {
"placeholders": {
"celsius": {
"type": "String"
},
"fahrenheit": {
"type": "String"
}
}
},
"channelPath_title": "Paketpfad",
"channelPath_viewMap": "Karte anzeigen",
"channelPath_otherObservedPaths": "Sonstige beobachtete Pfade",
2026-01-17 17:03:39 +01:00
"channelPath_repeaterHops": "Repeater-Sprünge",
2026-01-11 17:13:50 -07:00
"channelPath_noHopDetails": "Die Detailangaben für dieses Paket sind nicht verfügbar.",
2026-02-10 22:55:39 +01:00
"channelPath_messageDetails": "Nachrichtendetails",
2026-01-11 17:13:50 -07:00
"channelPath_senderLabel": "Sender",
"channelPath_timeLabel": "Zeit",
2026-01-17 17:03:39 +01:00
"channelPath_repeatsLabel": "Wiederholungen",
2026-01-11 17:13:50 -07:00
"channelPath_pathLabel": "Pfad {index}",
"channelPath_observedLabel": "Beobachtet",
"channelPath_observedPathTitle": "Beobachteter Pfad {index} • {hops}",
"@channelPath_observedPathTitle": {
"placeholders": {
"index": {
"type": "int"
},
"hops": {
"type": "String"
}
}
},
"channelPath_noLocationData": "Keine Standortdaten",
"channelPath_timeWithDate": "{day}/{month} {time}",
"@channelPath_timeWithDate": {
"placeholders": {
"day": {
"type": "int"
},
"month": {
"type": "int"
},
"time": {
"type": "String"
}
}
},
"channelPath_timeOnly": "{time}",
"@channelPath_timeOnly": {
"placeholders": {
"time": {
"type": "String"
}
}
},
"channelPath_unknownPath": "Unbekannt",
2026-01-17 17:03:39 +01:00
"channelPath_floodPath": "Geflutet",
2026-01-11 17:13:50 -07:00
"channelPath_directPath": "Direkt",
"channelPath_observedZeroOf": "0 von {total} Sprüngen",
"@channelPath_observedZeroOf": {
"placeholders": {
"total": {
"type": "int"
}
}
},
"channelPath_observedSomeOf": "{observed} von {total} Sprüngen",
"@channelPath_observedSomeOf": {
"placeholders": {
"observed": {
"type": "int"
},
"total": {
"type": "int"
}
}
},
"channelPath_mapTitle": "Pfadkarte",
"channelPath_noRepeaterLocations": "Für diesen Pfad stehen keine Repeater-Positionen zur Verfügung.",
"channelPath_primaryPath": "Pfad {index} (Primär)",
"@channelPath_primaryPath": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"@channelPath_pathLabel": {
"placeholders": {
"index": {
"type": "int"
}
}
},
"channelPath_pathLabelTitle": "Pfad",
"channelPath_observedPathHeader": "Beobachteter Pfad",
"channelPath_selectedPathLabel": "{label} • {prefixes}",
"@channelPath_selectedPathLabel": {
"placeholders": {
"label": {
"type": "String"
},
"prefixes": {
"type": "String"
}
}
},
"channelPath_noHopDetailsAvailable": "Keine Informationen zu dieser Paketroute verfügbar.",
"channelPath_unknownRepeater": "Unbekannter Repeater",
"listFilter_tooltip": "Filteren und sortieren",
"listFilter_sortBy": "Sortiere nach",
"listFilter_latestMessages": "Letzte Nachrichten",
2026-01-17 17:03:39 +01:00
"listFilter_heardRecently": "Kürzlich gehört",
2026-01-11 17:13:50 -07:00
"listFilter_az": "A-Z",
"listFilter_filters": "Filtere",
"listFilter_all": "Alle",
"listFilter_users": "Benutzer",
2026-01-17 17:03:39 +01:00
"listFilter_repeaters": "Repeater",
2026-01-11 17:13:50 -07:00
"listFilter_roomServers": "Raumserver",
2026-02-10 22:55:39 +01:00
"listFilter_unreadOnly": "Nicht gelesen",
2026-01-18 11:17:47 -08:00
"listFilter_newGroup": "Neue Gruppe",
"@neighbors_errorLoading": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"repeater_neighbours": "Nachbarn",
"repeater_neighboursSubtitle": "Anzahl der Hop-Nachbarn anzeigen.",
2026-02-10 22:55:39 +01:00
"neighbors_receivedData": "Empfangene Nachbarsdaten",
"neighbors_requestTimedOut": "Anfrage durch Timeout fehlgeschlagen.",
2026-01-18 11:17:47 -08:00
"neighbors_errorLoading": "Fehler beim Laden der Nachbarn: {error}",
2026-01-24 18:05:10 +01:00
"neighbors_repeatersNeighbours": "Nachbarn",
2026-02-10 22:55:39 +01:00
"neighbors_noData": "Keine Nachbarsdaten verfügbar.",
2026-01-16 19:06:39 -07:00
"channels_joinPrivateChannel": "Treten Sie einem privaten Kanal bei",
"channels_joinPrivateChannelDesc": "Manuelle Eingabe eines geheimen Schlüssels.",
"channels_createPrivateChannel": "Erstelle einen privaten Kanal",
"channels_createPrivateChannelDesc": "Verschlüsselt mit einem geheimen Schlüssel.",
"channels_joinPublicChannel": "Tritt dem öffentlichen Kanal bei",
"channels_joinPublicChannelDesc": "Jeder kann diesem Kanal beitreten.",
"channels_joinHashtagChannel": "Treten Sie einem Hashtag-Kanal bei",
"channels_joinHashtagChannelDesc": "Jeder kann sich bei Hashtag-Kanälen beteiligen.",
"channels_scanQrCode": "Scannen Sie einen QR-Code",
"channels_scanQrCodeComingSoon": "Bald verfügbar",
"channels_enterHashtag": "Gib Hashtag ein",
2026-01-18 11:54:45 -08:00
"channels_hashtagHint": "z.B. #team",
"@neighbors_unknownContact": {
"placeholders": {
"pubkey": {
"type": "String"
}
}
},
"@neighbors_heardAgo": {
"placeholders": {
"time": {
"type": "String"
}
}
},
2026-02-10 22:55:39 +01:00
"neighbors_heardAgo": "Gehört vor: {time}",
"neighbors_unknownContact": "Unbekannt {pubkey}",
2026-01-19 19:13:22 -07:00
"settings_locationGPSEnable": "GPS aktivieren",
"settings_locationGPSEnableSubtitle": "Aktiviert GPS zur automatischen Aktualisierung des Standorts.",
"settings_locationIntervalSec": "Intervall für GPS (Sekunden)",
"settings_locationIntervalInvalid": "Das Intervall muss mindestens 60 Sekunden und weniger als 86400 Sekunden betragen.",
"contacts_manageRoom": "Raum-Server verwalten",
2026-01-19 20:56:07 -07:00
"room_management": "Raum-Server-Verwaltung",
"@community_joinConfirmation": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_created": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_joined": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_qrInstructions": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_alreadyMemberMessage": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_deleteConfirm": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_deleted": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_forCommunity": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"common_ok": "OK",
"community_create": "Erstelle Community",
"community_createDesc": "Erstelle eine neue Community und teile sie über den QR-Code.",
"community_join": "Beitreten",
"community_joinTitle": "Tritt der Community bei",
"community_joinConfirmation": "Möchten Sie sich der Community \"{name}\" anschließen?",
"community_scanQr": "Scannen Sie die Community QR-Code",
"community_scanInstructions": "Richten Sie die Kamera auf einen Community-QR-Code.",
"community_showQr": "Zeige QR-Code",
"community_publicChannel": "Community Öffentlich",
"community_enterName": "Bitte Community-Name eingeben",
"community_title": "Community",
"community_created": "Community \"{name}\" wurde erstellt",
"community_joined": "Community \"{name}\" beigetreten",
"community_qrTitle": "Teile Community",
"community_qrInstructions": "Scannen Sie diesen QR-Code, um sich \"{name}\" anzuschließen.",
"community_hashtagPrivacyHint": "Community-Hashtag-Kanäle können nur von Mitgliedern der Community betreten werden",
"community_hashtagChannel": "Community Hashtag",
"community_name": "Community Name",
"community_invalidQrCode": "Ungültiger Community-QR-Code",
"community_alreadyMember": "Bereits registriert",
"community_alreadyMemberMessage": "Sie sind bereits Mitglied von \"{name}\".",
"community_addPublicChannel": "Füge einen öffentlichen Community-Kanal hinzu",
"community_addPublicChannelHint": "Automatisch den öffentlichen Kanal für diese Community hinzufügen",
"community_noCommunities": "Noch keiner Community beigetreten",
"community_scanOrCreate": "Scannen Sie einen QR-Code oder eine Community erstellen, um loszulegen.",
"community_manageCommunities": "Verwalten von Communities",
"community_delete": "Verlasse Community",
"community_deleteConfirm": "\"{name}\" verlassen?",
"community_deleteChannelsWarning": "Dies löscht auch {count} Kanal/Kanäle und deren Nachrichten.",
"@community_deleteChannelsWarning": {
"placeholders": {
2026-01-20 21:42:54 -07:00
"count": {
"type": "int"
}
2026-01-19 20:56:07 -07:00
}
},
"community_deleted": "Community \"{name}\" verlassen",
"community_addHashtagChannel": "Füge einen Community-Hashtag hinzu",
"community_addHashtagChannelDesc": "Füge einen Hashtag-Kanal für diese Community hinzu",
2026-02-10 22:55:39 +01:00
"community_selectCommunity": "Wählen Sie eine Community",
2026-01-19 20:56:07 -07:00
"community_regularHashtag": "Regulärer Hashtag",
2026-02-10 22:55:39 +01:00
"community_regularHashtagDesc": "Öffentlicher Hashtag (jeder kann teilnehmen)",
2026-01-19 20:56:07 -07:00
"community_communityHashtagDesc": "Nur für Mitglieder der Community",
"community_forCommunity": "Für {name}",
2026-01-20 21:42:54 -07:00
"community_communityHashtag": "Community Hashtag",
"@community_regenerateSecretConfirm": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_secretRegenerated": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_secretUpdated": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"@community_scanToUpdateSecret": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"community_regenerate": "Neu generieren",
2026-01-24 18:05:10 +01:00
"community_secretRegenerated": "Wiederherstellung des Schlüssels für \"{name}\" erfolgreich",
2026-01-20 21:42:54 -07:00
"community_regenerateSecretConfirm": "Nehmen Sie den geheimen Schlüssel für \"{name}\" neu auf? Alle Mitglieder müssen den neuen QR-Code scannen, um die Kommunikation fortzusetzen.",
2026-01-24 18:05:10 +01:00
"community_regenerateSecret": "Neugenerierung des Schlüssels",
"community_secretUpdated": "Schlüssel für \"{name}\" aktualisiert",
2026-01-20 21:42:54 -07:00
"community_scanToUpdateSecret": "Scannen Sie den neuen QR-Code, um das Geheimnis für \"{name}\" zu aktualisieren.",
2026-01-28 22:22:26 -07:00
"community_updateSecret": "Aktualisieren Sie den Schlüssel",
2026-01-28 22:05:04 -07:00
"@contacts_pathTraceTo": {
"placeholders": {
"name": {
"type": "String"
}
}
},
"pathTrace_refreshTooltip": "Path Trace aktualisieren.",
"pathTrace_you": "Du",
"pathTrace_failed": "Pfadverfolgung fehlgeschlagen.",
"pathTrace_notAvailable": "Pfadverfolgung nicht verfügbar.",
"contacts_pathTrace": "Pfadverfolgung",
"contacts_ping": "Pingen",
"contacts_repeaterPathTrace": "Pfadverfolgung zum Repeater",
"contacts_repeaterPing": "Repeater pingen",
"contacts_roomPathTrace": "Pfadverfolgung zum Raumserver",
"contacts_roomPing": "Raumserver anpingen",
"contacts_pathTraceTo": "Route nach {name} verfolgen",
2026-01-31 22:19:01 -08:00
"contacts_chatTraceRoute": "Pfadverfolgungsroute",
"appSettings_languageRu": "Russisch",
"contacts_invalidAdvertFormat": "Ungültige Kontaktdaten",
"contacts_clipboardEmpty": "Die Zwischenablage ist leer.",
"appSettings_languageUk": "Ukrainisch",
"contacts_contactImported": "Kontakt wurde importiert.",
"contacts_contactImportFailed": "Kontakt konnte nicht importiert werden",
2026-02-10 22:55:39 +01:00
"contacts_zeroHopAdvert": "Zero-Hop-Ankündigung",
"contacts_floodAdvert": "Flut-Ankündigung",
2026-01-31 22:19:01 -08:00
"contacts_addContactFromClipboard": "Kontakt aus Zwischenablage hinzufügen",
"contacts_ShareContactZeroHop": "Kontakt über Anzeige teilen",
2026-02-10 22:55:39 +01:00
"contacts_copyAdvertToClipboard": "Ankündigung in die Zwischenablage kopieren",
2026-01-31 22:19:01 -08:00
"contacts_ShareContact": "Kontakt in die Zwischenablage kopieren",
"contacts_zeroHopContactAdvertFailed": "Kontakt konnte nicht gesendet werden.",
"contacts_zeroHopContactAdvertSent": "Kontakt über Anzeige gesendet",
"contacts_contactAdvertCopied": "Anzeige in die Zwischenablage kopiert.",
2026-02-10 22:55:39 +01:00
"contacts_contactAdvertCopyFailed": "Kopieren der Ankündigung in die Zwischenablage fehlgeschlagen.",
Notification rate limiting (#110)
* Add notification rate limiting with privacy-safe debug logging
- Add batching system to prevent notification storms (3s rate limit, 5s batch window)
- Queue rapid notifications and show batch summaries
- Debug logs show device names for adverts, sender/channel for messages (no content leaks)
- Remove unused _maxBatchSize constant
Context: Added after getting notification-flooded while evaluating RF flood management. The irony.
* Update notification_service.dart
I made a mistake and removed this
* Add l10n support for notification strings
Addresses PR #110 review feedback to use the translations system:
- Add notification strings to app_en.arb (plurals for batch summary)
- Update NotificationService to use lookupAppLocalizations()
- Wire locale from MaterialApp to NotificationService
- Regenerate localization files
New strings added (English only, translations needed):
- notification_activityTitle: "MeshCore Activity"
- notification_messagesCount: "{count} message(s)"
- notification_channelMessagesCount: "{count} channel message(s)"
- notification_newNodesCount: "{count} new node(s)"
- notification_newTypeDiscovered: "New {type} discovered"
- notification_receivedNewMessage: "Received new message"
* Add notification string translations for all supported languages
Translated notification_activityTitle, notification_messagesCount,
notification_channelMessagesCount, notification_newNodesCount,
notification_newTypeDiscovered, and notification_receivedNewMessage
to: bg, de, es, fr, it, nl, pl, pt, ru, sk, sl, sv, uk, zh
Includes proper ICU plural forms for Slavic languages (few/many/other)
and Slovenian dual form.
* Apply dart format to notification_service.dart
---------
Co-authored-by: Winston Lowe <wel97459@gmail.com>
2026-02-08 19:42:15 -07:00
"notification_activityTitle": "MeshCore Aktivität",
"notification_messagesCount": "{count} {count, plural, =1{Nachricht} other{Nachrichten}}",
"@notification_messagesCount": {
"placeholders": {
"count": {"type": "int"}
}
},
"notification_channelMessagesCount": "{count} {count, plural, =1{Kanalnachricht} other{Kanalnachrichten}}",
"@notification_channelMessagesCount": {
"placeholders": {
"count": {"type": "int"}
}
},
"notification_newNodesCount": "{count} {count, plural, =1{neuer Knoten} other{neue Knoten}}",
"@notification_newNodesCount": {
"placeholders": {
"count": {"type": "int"}
}
},
"notification_newTypeDiscovered": "Neuer {contactType} entdeckt",
"@notification_newTypeDiscovered": {
"placeholders": {
"contactType": {"type": "String"}
}
},
"notification_receivedNewMessage": "Neue Nachricht empfangen",
2026-02-10 22:55:39 +01:00
"contacts_contactAdvertCopyFailed": "Kopieren der Ankündigung in die Zwischenablage fehlgeschlagen.",
"settings_gpxExportAll": "Alle Knoten als GPX exportieren",
"settings_gpxExportAllSubtitle": "Exportiert alle Knoten mit einem Standort in eine GPX-Datei.",
"settings_gpxExportRepeaters": "Repeater und Raumserver als GPX exportieren",
"settings_gpxExportContacts": "Kontakte als GPX exportieren",
2026-02-08 12:14:03 -08:00
"settings_gpxExportRepeatersSubtitle": "Exportiert Repeater und Raumserver mit einem Standort in eine GPX-Datei.",
2026-02-10 22:55:39 +01:00
"settings_gpxExportContactsSubtitle": "Exportiert Kontakte mit einem Ort in eine GPX-Datei.",
2026-02-08 12:14:03 -08:00
"settings_gpxExportRepeatersRoom": "Repeater- und Raumserver-Standorte",
2026-02-10 22:55:39 +01:00
"settings_gpxExportChat": "Kontaktstandorte",
2026-02-08 12:14:03 -08:00
"settings_gpxExportNoContacts": "Keine Kontakte zum Exportieren.",
"settings_gpxExportError": "Beim Export ist ein Fehler aufgetreten.",
"settings_gpxExportNotAvailable": "Nicht auf Ihrem Gerät/Betriebssystem unterstützt",
2026-02-10 22:55:39 +01:00
"settings_gpxExportSuccess": "GPX-Datei erfolgreich exportiert.",
2026-02-08 12:14:03 -08:00
"settings_gpxExportAllContacts": "Alle Kontaktstandorte",
2026-02-10 22:55:39 +01:00
"settings_gpxExportShareSubject": "GPX-Kartendaten aus meshcore-open exportieren",
"settings_gpxExportShareText": "GPX-Kartendaten aus meshcore-open exportiert",
"pathTrace_someHopsNoLocation": "Bei einer oder mehreren Knoten fehlt der Standort!"
Notification rate limiting (#110)
* Add notification rate limiting with privacy-safe debug logging
- Add batching system to prevent notification storms (3s rate limit, 5s batch window)
- Queue rapid notifications and show batch summaries
- Debug logs show device names for adverts, sender/channel for messages (no content leaks)
- Remove unused _maxBatchSize constant
Context: Added after getting notification-flooded while evaluating RF flood management. The irony.
* Update notification_service.dart
I made a mistake and removed this
* Add l10n support for notification strings
Addresses PR #110 review feedback to use the translations system:
- Add notification strings to app_en.arb (plurals for batch summary)
- Update NotificationService to use lookupAppLocalizations()
- Wire locale from MaterialApp to NotificationService
- Regenerate localization files
New strings added (English only, translations needed):
- notification_activityTitle: "MeshCore Activity"
- notification_messagesCount: "{count} message(s)"
- notification_channelMessagesCount: "{count} channel message(s)"
- notification_newNodesCount: "{count} new node(s)"
- notification_newTypeDiscovered: "New {type} discovered"
- notification_receivedNewMessage: "Received new message"
* Add notification string translations for all supported languages
Translated notification_activityTitle, notification_messagesCount,
notification_channelMessagesCount, notification_newNodesCount,
notification_newTypeDiscovered, and notification_receivedNewMessage
to: bg, de, es, fr, it, nl, pl, pt, ru, sk, sl, sv, uk, zh
Includes proper ICU plural forms for Slavic languages (few/many/other)
and Slovenian dual form.
* Apply dart format to notification_service.dart
---------
Co-authored-by: Winston Lowe <wel97459@gmail.com>
2026-02-08 19:42:15 -07:00
2026-01-11 17:13:50 -07:00
}