From 12bf46bba15cf7b9ce06e6a65b4faa67b2d200c9 Mon Sep 17 00:00:00 2001 From: Winston Lowe Date: Sun, 1 Mar 2026 10:13:17 -0800 Subject: [PATCH] feat(localization): update contact settings translations for multiple languages - Translated contact settings and related strings in Slovenian, Swedish, Ukrainian, Chinese, Dutch, Polish, Portuguese, Russian, and Slovak. - Added new strings for discovered contacts actions such as adding, copying, and deleting contacts. - Enhanced the DiscoveryContact model to include a rawPacket field for better data handling. - Updated the contacts screen to support new actions in the context menu for discovered contacts. - Improved the contact discovery store to handle the serialization of the new rawPacket field. --- lib/connector/meshcore_connector.dart | 97 ++++++++++++++++++++++-- lib/connector/meshcore_protocol.dart | 38 +++++----- lib/l10n/app_bg.arb | 24 +++++- lib/l10n/app_de.arb | 24 +++++- lib/l10n/app_en.arb | 6 +- lib/l10n/app_es.arb | 24 +++++- lib/l10n/app_fr.arb | 24 +++++- lib/l10n/app_it.arb | 24 +++++- lib/l10n/app_localizations.dart | 24 ++++++ lib/l10n/app_localizations_bg.dart | 52 ++++++++----- lib/l10n/app_localizations_de.dart | 54 ++++++++----- lib/l10n/app_localizations_en.dart | 12 +++ lib/l10n/app_localizations_es.dart | 55 +++++++++----- lib/l10n/app_localizations_fr.dart | 54 ++++++++----- lib/l10n/app_localizations_it.dart | 53 ++++++++----- lib/l10n/app_localizations_nl.dart | 52 ++++++++----- lib/l10n/app_localizations_pl.dart | 52 ++++++++----- lib/l10n/app_localizations_pt.dart | 54 ++++++++----- lib/l10n/app_localizations_ru.dart | 54 ++++++++----- lib/l10n/app_localizations_sk.dart | 52 ++++++++----- lib/l10n/app_localizations_sl.dart | 51 ++++++++----- lib/l10n/app_localizations_sv.dart | 52 ++++++++----- lib/l10n/app_localizations_uk.dart | 54 ++++++++----- lib/l10n/app_localizations_zh.dart | 54 +++++++------ lib/l10n/app_nl.arb | 24 +++++- lib/l10n/app_pl.arb | 24 +++++- lib/l10n/app_pt.arb | 24 +++++- lib/l10n/app_ru.arb | 24 +++++- lib/l10n/app_sk.arb | 24 +++++- lib/l10n/app_sl.arb | 24 +++++- lib/l10n/app_sv.arb | 24 +++++- lib/l10n/app_uk.arb | 24 +++++- lib/l10n/app_zh.arb | 24 +++++- lib/models/discovery_contact.dart | 40 +--------- lib/screens/contacts_screen.dart | 3 +- lib/screens/discovery_screen.dart | 71 ++++++++++++++++- lib/storage/contact_discovery_store.dart | 2 + 37 files changed, 1034 insertions(+), 338 deletions(-) diff --git a/lib/connector/meshcore_connector.dart b/lib/connector/meshcore_connector.dart index c142f84..c7ebdaf 100644 --- a/lib/connector/meshcore_connector.dart +++ b/lib/connector/meshcore_connector.dart @@ -283,6 +283,7 @@ class MeshCoreConnector extends ChangeNotifier { int? get batteryMillivolts => _batteryMillivolts; int get maxContacts => _maxContacts; int get maxChannels => _maxChannels; + Set get knownContactKeys => Set.unmodifiable(_knownContactKeys); bool get isSyncingQueuedMessages => _isSyncingQueuedMessages; bool get isSyncingChannels => _isSyncingChannels; int get channelSyncProgress => @@ -1534,6 +1535,50 @@ class MeshCoreConnector extends ChangeNotifier { notifyListeners(); } + Future removeDiscoveredContact(DiscoveryContact contact) async { + if (!isConnected) return; + _discoveredContacts.removeWhere( + (c) => c.publicKeyHex == contact.publicKeyHex, + ); + unawaited(_persistDiscoveredContacts()); + notifyListeners(); + } + + Future importDiscoveredContact(DiscoveryContact contact) async { + if (!isConnected) return; + await sendFrame( + buildSetAutoAddConfigFrame( + autoAddChat: true, + autoAddRepeater: true, + autoAddRoomServer: true, + autoAddSensor: true, + overwriteOldest: _overwriteOldest, + ), + ); + await sendFrame(buildImportContactFrame(contact.rawPacket)); + await sendFrame( + buildSetAutoAddConfigFrame( + autoAddChat: _autoAddUsers, + autoAddRepeater: _autoAddRepeaters, + autoAddRoomServer: _autoAddRoomServers, + autoAddSensor: _autoAddSensors, + overwriteOldest: _overwriteOldest, + ), + ); + + _handleContactAdvert( + Contact( + publicKey: contact.publicKey, + name: contact.name, + type: contact.type, + pathLength: contact.pathLength, + path: contact.path, + lastSeen: DateTime.now(), + ), + ); + notifyListeners(); + } + Future clearContactPath(Contact contact) async { if (!isConnected) return; @@ -3705,22 +3750,29 @@ class MeshCoreConnector extends ChangeNotifier { appLogger.warn('Malformed RX frame: $e', tag: 'Connector'); return; } - + final rawPacket = frame.sublist(3); switch (payloadType) { case payloadTypeADVERT: - _handlePayloadAdvertReceived(payload, pathBytes, routeType, snr); + _handlePayloadAdvertReceived( + rawPacket, + payload, + pathBytes, + routeType, + snr, + ); break; default: } } void _handlePayloadAdvertReceived( - Uint8List frame, + Uint8List rawPacket, + Uint8List payload, Uint8List path, int routeType, double snr, ) { - final advert = BufferReader(frame); + final advert = BufferReader(payload); double latitude = 0.0; double longitude = 0.0; String name = ''; @@ -3785,7 +3837,7 @@ class MeshCoreConnector extends ChangeNotifier { (_autoAddSensors && type == advTypeSensor)) { _handleContactAdvert(newContact); } else { - _handleDiscovery(newContact); + _handleDiscovery(newContact, rawPacket); } _updateDirectRepeater(newContact, snr, path); return; @@ -3890,9 +3942,42 @@ class MeshCoreConnector extends ChangeNotifier { } } - void _handleDiscovery(Contact contact) { + void _handleDiscovery(Contact contact, Uint8List rawPacket) { debugPrint('Discovered new contact: ${contact.name}'); + + final existingIndex = _discoveredContacts.indexWhere( + (c) => c.publicKeyHex == contact.publicKeyHex, + ); + final existingContactsIndex = _contacts.indexWhere( + (c) => c.publicKeyHex == contact.publicKeyHex, + ); + + if (existingContactsIndex >= 0) { + if (existingIndex >= 0) { + removeDiscoveredContact(_discoveredContacts[existingIndex]); + unawaited(_persistDiscoveredContacts()); + } + return; + } + + // Update existing contact + if (existingIndex >= 0) { + _discoveredContacts[existingIndex] = _discoveredContacts[existingIndex] + .copyWith( + rawPacket: rawPacket, + name: contact.name, + type: contact.type, + pathLength: contact.pathLength, + path: contact.path, + latitude: contact.latitude, + longitude: contact.longitude, + lastSeen: contact.lastSeen, + ); + return; + } + final disContact = DiscoveryContact( + rawPacket: rawPacket, publicKey: contact.publicKey, name: contact.name, type: contact.type, diff --git a/lib/connector/meshcore_protocol.dart b/lib/connector/meshcore_protocol.dart index 36c13e2..4f50ec3 100644 --- a/lib/connector/meshcore_protocol.dart +++ b/lib/connector/meshcore_protocol.dart @@ -114,25 +114,27 @@ class BufferWriter { } void writeHex(String hex) { - // Validate hex string length is even and not empty - if (hex.isEmpty || hex.length % 2 != 0) { - throw FormatException('Invalid hex string length: ${hex.length}'); - } - List result = []; - for (int i = 0; i < hex.length ~/ 2; i++) { - final hexByte = hex.substring(i * 2, i * 2 + 2); - final byte = int.tryParse(hexByte, radix: 16); - if (byte == null) { - throw FormatException( - 'Invalid hex characters at position $i: $hexByte', - ); - } - result.add(byte); - } - writeBytes(Uint8List.fromList(result)); + writeBytes(hex2Uint8List(hex)); } } +Uint8List hex2Uint8List(String hex) { + // Validate hex string length is even and not empty + if (hex.isEmpty || hex.length % 2 != 0) { + throw FormatException('Invalid hex string length: ${hex.length}'); + } + List result = []; + for (int i = 0; i < hex.length ~/ 2; i++) { + final hexByte = hex.substring(i * 2, i * 2 + 2); + final byte = int.tryParse(hexByte, radix: 16); + if (byte == null) { + throw FormatException('Invalid hex characters at position $i: $hexByte'); + } + result.add(byte); + } + return Uint8List.fromList(result); +} + // Command codes (to device) const int cmdAppStart = 1; const int cmdSendTxtMsg = 2; @@ -827,10 +829,10 @@ Uint8List buildExportContactFrame(Uint8List pubKey) { // Build a import contact frame // [cmd][contact_frame x98+] -Uint8List buildImportContactFrame(String contactFrame) { +Uint8List buildImportContactFrame(Uint8List contactFrame) { final writer = BufferWriter(); writer.writeByte(cmdImportContact); - writer.writeHex(contactFrame); + writer.writeBytes(contactFrame); return writer.toBytes(); } diff --git a/lib/l10n/app_bg.arb b/lib/l10n/app_bg.arb index 975e067..eed1897 100644 --- a/lib/l10n/app_bg.arb +++ b/lib/l10n/app_bg.arb @@ -1799,5 +1799,27 @@ "contacts_unread": "Непрочетено", "contacts_searchRepeaters": "Търсене на {number}{str} повтарящи се...", "contacts_searchContactsNoNumber": "Търси контакти...", - "contacts_searchUsers": "Търсене на {number}{str} потребители..." + "contacts_searchUsers": "Търсене на {number}{str} потребители...", + "contactsSettings_title": "Настройки на контактите", + "contactsSettings_autoAddTitle": "Автоматично откриване", + "contactsSettings_autoAddUsersTitle": "Автоматично добавяне на потребители", + "contactsSettings_otherTitle": "Други настройки свързани с контакти", + "settings_contactSettingsSubtitle": "Настройки за добавяне на контакти.", + "settings_contactSettings": "Настройки за контакти", + "contactsSettings_autoAddSensorsTitle": "Автоматично добавяне на датчици", + "contactsSettings_autoAddRoomServersTitle": "Автоматично добавяне на сървъри на стаите", + "contactsSettings_autoAddRoomServersSubtitle": "Позволи на спътника да добавя автоматично откритите сървъри на стаите.", + "contactsSettings_autoAddRepeatersTitle": "Автоматично добавяне на повтарящи се елементи", + "contactsSettings_autoAddUsersSubtitle": "Позволи на спътника да добавя автоматично откритите потребители.", + "contactsSettings_autoAddRepeatersSubtitle": "Позволи на спътника да добавя автоматично откритите повтарящи се устройства.", + "contactsSettings_autoAddSensorsSubtitle": "Позволи на спътника да добавя автоматично откритите датчици.", + "contactsSettings_overwriteOldestTitle": "Премахни най-старото", + "discoveredContacts_Title": "Открити контакти", + "discoveredContacts_searchHint": "Търсене на открити контакти", + "discoveredContacts_noMatching": "Няма съвпадащи контакти", + "contactsSettings_overwriteOldestSubtitle": "Когато е активиран, компаньонът ще презапише най-стария контакт, който не е отбелязан като любим, когато списъкът с контакти е пълен.", + "discoveredContacts_contactAdded": "Контакт добавен", + "discoveredContacts_copyContact": "Копирай контакт в клипборда", + "discoveredContacts_deleteContact": "Изтрий контакт", + "discoveredContacts_addContact": "Добави контакт" } diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 74b6c05..4fe662f 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -1827,5 +1827,27 @@ "contacts_searchRepeaters": "Suche {number}{str} Repeater...", "contacts_searchFavorites": "Suche {number}{str} Favoriten...", "contacts_searchUsers": "Suche {number}{str} Benutzer...", - "contacts_searchRoomServers": "Suche {number}{str} Raumserver..." + "contacts_searchRoomServers": "Suche {number}{str} Raumserver...", + "settings_contactSettings": "Kontakteinstellungen", + "contactsSettings_otherTitle": "Weitere Einstellungen zu Kontakten", + "contactsSettings_title": "Kontakteinstellungen", + "contactsSettings_autoAddTitle": "Automatische Erkennung", + "contactsSettings_autoAddUsersTitle": "Automatische Hinzufügung von Benutzern", + "settings_contactSettingsSubtitle": "Einstellungen für das Hinzufügen von Kontakten", + "contactsSettings_autoAddSensorsTitle": "Automatisch Sensoren hinzufügen", + "contactsSettings_autoAddUsersSubtitle": "Ermöglichen Sie dem Begleiter, automatisch entdeckte Benutzer hinzuzufügen", + "contactsSettings_autoAddRoomServersTitle": "Automatisch Raumservers hinzufügen", + "contactsSettings_autoAddRoomServersSubtitle": "Ermöglichen Sie dem Begleiter, entdeckte Raumserver automatisch hinzuzufügen", + "contactsSettings_autoAddRepeatersTitle": "Automatisch Repeater hinzufügen", + "contactsSettings_autoAddRepeatersSubtitle": "Ermöglichen Sie dem Begleiter, automatisch entdeckte Repeater hinzuzufügen.", + "discoveredContacts_noMatching": "Keine passenden Kontakte", + "discoveredContacts_searchHint": "Entdeckte Kontakte suchen", + "discoveredContacts_addContact": "Kontakt hinzufügen", + "discoveredContacts_contactAdded": "Kontakt hinzugefügt", + "discoveredContacts_deleteContact": "Kontakt löschen", + "discoveredContacts_Title": "Entdeckte Kontakte", + "discoveredContacts_copyContact": "Kontakt in die Zwischenablage kopieren", + "contactsSettings_overwriteOldestTitle": "Überschreiben des Ältesten", + "contactsSettings_overwriteOldestSubtitle": "Wenn aktiviert, überschreibt der Begleiter den ältesten nicht favorisierten Kontakt, wenn die Kontaktliste voll ist.", + "contactsSettings_autoAddSensorsSubtitle": "Ermöglichen Sie dem Begleiter, automatisch entdeckte Sensoren hinzuzufügen" } diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 3f92d0e..8d5e528 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -1855,5 +1855,9 @@ "contactsSettings_overwriteOldestSubtitle": "When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.", "discoveredContacts_Title": "Discovered Contacts", "discoveredContacts_noMatching": "No matching contacts", - "discoveredContacts_searchHint": "Search discovered contacts" + "discoveredContacts_searchHint": "Search discovered contacts", + "discoveredContacts_contactAdded": "Contact added", + "discoveredContacts_addContact": "Add Contact", + "discoveredContacts_copyContact": "Copy Contact to clipboard", + "discoveredContacts_deleteContact": "Delete Contact" } \ No newline at end of file diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 74339ff..5a2e1c8 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -1827,5 +1827,27 @@ "contacts_searchFavorites": "Buscar {number}{str} Favoritos...", "contacts_searchUsers": "Buscar {number}{str} Usuarios...", "contacts_searchRepeaters": "Buscar {number}{str} Repetidores...", - "contacts_searchRoomServers": "Buscar {number}{str} servidores de sala..." + "contacts_searchRoomServers": "Buscar {number}{str} servidores de sala...", + "contactsSettings_autoAddTitle": "Detección automática", + "settings_contactSettings": "Configuración de contacto", + "contactsSettings_autoAddUsersTitle": "Agregar usuarios automáticamente", + "contactsSettings_otherTitle": "Otras configuraciones relacionadas con el contacto", + "contactsSettings_autoAddUsersSubtitle": "Permitir que el compañero agregue automáticamente a los usuarios descubiertos.", + "contactsSettings_autoAddRepeatersSubtitle": "Permitir que el compañero agregue automáticamente los repetidores descubiertos.", + "contactsSettings_autoAddRoomServersSubtitle": "Permitir que el compañero agregue automáticamente los servidores de salas descubiertos.", + "contactsSettings_autoAddSensorsTitle": "Agregar sensores automáticamente", + "contactsSettings_title": "Configuración de contactos", + "settings_contactSettingsSubtitle": "Configuración de cómo se agregan los contactos.", + "contactsSettings_autoAddSensorsSubtitle": "Permitir que el compañero agregue automáticamente los sensores descubiertos.", + "contactsSettings_autoAddRepeatersTitle": "Agregar repetidores automáticamente", + "contactsSettings_overwriteOldestTitle": "Sobreescribir el más antiguo", + "contactsSettings_autoAddRoomServersTitle": "Agregar automáticamente servidores de sala", + "discoveredContacts_noMatching": "No se encontraron contactos coincidentes", + "discoveredContacts_contactAdded": "Contacto agregado", + "discoveredContacts_copyContact": "Copiar contacto al portapapeles", + "discoveredContacts_deleteContact": "Eliminar contacto", + "discoveredContacts_Title": "Contactos descubiertos", + "contactsSettings_overwriteOldestSubtitle": "Cuando se habilita, el compañero sobrescribirá el contacto más antiguo no favorito cuando la lista de contactos esté llena.", + "discoveredContacts_searchHint": "Buscar contactos descubiertos", + "discoveredContacts_addContact": "Agregar contacto" } diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 0697aee..e222f53 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -1799,5 +1799,27 @@ "contacts_searchUsers": "Rechercher {number}{str} utilisateurs...", "contacts_searchRoomServers": "Rechercher {number}{str} serveurs de salle...", "contacts_searchRepeaters": "Rechercher {number}{str} Répéteurs...", - "contacts_searchContactsNoNumber": "Rechercher des contacts..." + "contacts_searchContactsNoNumber": "Rechercher des contacts...", + "settings_contactSettings": "Paramètres de contact", + "settings_contactSettingsSubtitle": "Paramètres pour l'ajout de contacts", + "contactsSettings_autoAddRepeatersTitle": "Ajouter automatiquement les répéteurs", + "contactsSettings_autoAddRepeatersSubtitle": "Autoriser le compagnon à ajouter automatiquement les répéteurs découverts", + "contactsSettings_autoAddRoomServersTitle": "Ajouter automatiquement les serveurs de salle", + "contactsSettings_autoAddRoomServersSubtitle": "Autoriser le compagnon à ajouter automatiquement les serveurs de salles découverts", + "contactsSettings_otherTitle": "Autres paramètres liés aux contacts", + "contactsSettings_title": "Paramètres des contacts", + "contactsSettings_autoAddUsersTitle": "Ajouter automatiquement les utilisateurs", + "contactsSettings_autoAddTitle": "Découverte automatique", + "contactsSettings_autoAddSensorsTitle": "Ajouter automatiquement les capteurs", + "contactsSettings_autoAddUsersSubtitle": "Autoriser le compagnon à ajouter automatiquement les utilisateurs découverts", + "discoveredContacts_noMatching": "Aucun contact correspondant", + "discoveredContacts_contactAdded": "Contact ajouté", + "discoveredContacts_addContact": "Ajouter un contact", + "discoveredContacts_copyContact": "Copier le contact dans le presse-papiers", + "discoveredContacts_deleteContact": "Supprimer le contact", + "contactsSettings_overwriteOldestTitle": "Écraser le plus ancien", + "contactsSettings_autoAddSensorsSubtitle": "Autoriser le compagnon à ajouter automatiquement les capteurs découverts.", + "contactsSettings_overwriteOldestSubtitle": "Lorsqu'il est activé, le compagnon écrasera l'ancien contact non favori lorsque la liste de contacts est pleine.", + "discoveredContacts_Title": "Contacts découverts", + "discoveredContacts_searchHint": "Rechercher des contacts découverts" } diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index 4798d26..53c3737 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -1799,5 +1799,27 @@ "contacts_searchFavorites": "Cerca {number}{str} Preferiti...", "contacts_unread": "Non letti", "contacts_searchRepeaters": "Cerca {number}{str} Ripetitori...", - "contacts_searchRoomServers": "Cerca {number}{str} server Room..." + "contacts_searchRoomServers": "Cerca {number}{str} server Room...", + "contactsSettings_title": "Impostazioni dei contatti", + "settings_contactSettings": "Impostazioni di contatto", + "contactsSettings_otherTitle": "Altre impostazioni relative ai contatti", + "contactsSettings_autoAddUsersSubtitle": "Consenti al compagno di aggiungere automaticamente gli utenti scoperti.", + "contactsSettings_autoAddRepeatersTitle": "Aggiungere ripetitori automaticamente", + "contactsSettings_autoAddRoomServersSubtitle": "Consenti al compagno di aggiungere automaticamente i server delle stanze scoperte.", + "contactsSettings_autoAddSensorsTitle": "Aggiungere automaticamente i sensori", + "settings_contactSettingsSubtitle": "Impostazioni per l'aggiunta dei contatti", + "contactsSettings_autoAddUsersTitle": "Aggiungere utenti automaticamente", + "contactsSettings_autoAddTitle": "Scoperta automatica", + "contactsSettings_autoAddSensorsSubtitle": "Consenti al compagno di aggiungere automaticamente i sensori scoperti", + "discoveredContacts_noMatching": "Nessun contatto corrispondente", + "contactsSettings_autoAddRepeatersSubtitle": "Consenti al compagno di aggiungere automaticamente i ripetitori scoperti.", + "discoveredContacts_searchHint": "Cerca contatti scoperti", + "contactsSettings_autoAddRoomServersTitle": "Aggiungere automaticamente i server delle stanze", + "discoveredContacts_addContact": "Aggiungi contatto", + "contactsSettings_overwriteOldestTitle": "Sostituisci il più vecchio", + "contactsSettings_overwriteOldestSubtitle": "Quando abilitato, il companion sovrascriverà il contatto più vecchio non preferito quando l'elenco dei contatti è pieno.", + "discoveredContacts_Title": "Contatti scoperti", + "discoveredContacts_contactAdded": "Contatto aggiunto", + "discoveredContacts_deleteContact": "Elimina Contatto", + "discoveredContacts_copyContact": "Copia contatto negli appunti" } diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 333147f..a7c458f 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -5488,6 +5488,30 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Search discovered contacts'** String get discoveredContacts_searchHint; + + /// No description provided for @discoveredContacts_contactAdded. + /// + /// In en, this message translates to: + /// **'Contact added'** + String get discoveredContacts_contactAdded; + + /// No description provided for @discoveredContacts_addContact. + /// + /// In en, this message translates to: + /// **'Add Contact'** + String get discoveredContacts_addContact; + + /// No description provided for @discoveredContacts_copyContact. + /// + /// In en, this message translates to: + /// **'Copy Contact to clipboard'** + String get discoveredContacts_copyContact; + + /// No description provided for @discoveredContacts_deleteContact. + /// + /// In en, this message translates to: + /// **'Delete Contact'** + String get discoveredContacts_deleteContact; } class _AppLocalizationsDelegate diff --git a/lib/l10n/app_localizations_bg.dart b/lib/l10n/app_localizations_bg.dart index c26b5b2..f9a858f 100644 --- a/lib/l10n/app_localizations_bg.dart +++ b/lib/l10n/app_localizations_bg.dart @@ -235,11 +235,11 @@ class AppLocalizationsBg extends AppLocalizations { String get settings_longitude => 'Дължина'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Настройки за контакти'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Настройки за добавяне на контакти.'; @override String get settings_privacyMode => 'Режим на поверителност'; @@ -3121,56 +3121,72 @@ class AppLocalizationsBg extends AppLocalizations { String get snrIndicator_lastSeen => 'Последно видян'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Настройки на контактите'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Автоматично откриване'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Други настройки свързани с контакти'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Автоматично добавяне на потребители'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Позволи на спътника да добавя автоматично откритите потребители.'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Автоматично добавяне на повтарящи се елементи'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Позволи на спътника да добавя автоматично откритите повтарящи се устройства.'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Автоматично добавяне на сървъри на стаите'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Позволи на спътника да добавя автоматично откритите сървъри на стаите.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Автоматично добавяне на датчици'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Позволи на спътника да добавя автоматично откритите датчици.'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => 'Премахни най-старото'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Когато е активиран, компаньонът ще презапише най-стария контакт, който не е отбелязан като любим, когато списъкът с контакти е пълен.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Открити контакти'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Няма съвпадащи контакти'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Търсене на открити контакти'; + + @override + String get discoveredContacts_contactAdded => 'Контакт добавен'; + + @override + String get discoveredContacts_addContact => 'Добави контакт'; + + @override + String get discoveredContacts_copyContact => 'Копирай контакт в клипборда'; + + @override + String get discoveredContacts_deleteContact => 'Изтрий контакт'; } diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index 6d36471..77b2a4b 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -234,11 +234,11 @@ class AppLocalizationsDe extends AppLocalizations { String get settings_longitude => 'Längengrad'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Kontakteinstellungen'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Einstellungen für das Hinzufügen von Kontakten'; @override String get settings_privacyMode => 'Privatsphäreeinstellung'; @@ -3130,56 +3130,74 @@ class AppLocalizationsDe extends AppLocalizations { String get snrIndicator_lastSeen => 'Zuletzt gesehen'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Kontakteinstellungen'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Automatische Erkennung'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Weitere Einstellungen zu Kontakten'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Automatische Hinzufügung von Benutzern'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Ermöglichen Sie dem Begleiter, automatisch entdeckte Benutzer hinzuzufügen'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Automatisch Repeater hinzufügen'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Ermöglichen Sie dem Begleiter, automatisch entdeckte Repeater hinzuzufügen.'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Automatisch Raumservers hinzufügen'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Ermöglichen Sie dem Begleiter, entdeckte Raumserver automatisch hinzuzufügen'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Automatisch Sensoren hinzufügen'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Ermöglichen Sie dem Begleiter, automatisch entdeckte Sensoren hinzuzufügen'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => + 'Überschreiben des Ältesten'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Wenn aktiviert, überschreibt der Begleiter den ältesten nicht favorisierten Kontakt, wenn die Kontaktliste voll ist.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Entdeckte Kontakte'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Keine passenden Kontakte'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Entdeckte Kontakte suchen'; + + @override + String get discoveredContacts_contactAdded => 'Kontakt hinzugefügt'; + + @override + String get discoveredContacts_addContact => 'Kontakt hinzufügen'; + + @override + String get discoveredContacts_copyContact => + 'Kontakt in die Zwischenablage kopieren'; + + @override + String get discoveredContacts_deleteContact => 'Kontakt löschen'; } diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index c40b7df..08132ac 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -3126,4 +3126,16 @@ class AppLocalizationsEn extends AppLocalizations { @override String get discoveredContacts_searchHint => 'Search discovered contacts'; + + @override + String get discoveredContacts_contactAdded => 'Contact added'; + + @override + String get discoveredContacts_addContact => 'Add Contact'; + + @override + String get discoveredContacts_copyContact => 'Copy Contact to clipboard'; + + @override + String get discoveredContacts_deleteContact => 'Delete Contact'; } diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index 203916b..0d2167f 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -234,11 +234,11 @@ class AppLocalizationsEs extends AppLocalizations { String get settings_longitude => 'Longitud'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Configuración de contacto'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Configuración de cómo se agregan los contactos.'; @override String get settings_privacyMode => 'Modo Privacidad'; @@ -3122,56 +3122,75 @@ class AppLocalizationsEs extends AppLocalizations { String get snrIndicator_lastSeen => 'Visto por última vez'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Configuración de contactos'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Detección automática'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Otras configuraciones relacionadas con el contacto'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Agregar usuarios automáticamente'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Permitir que el compañero agregue automáticamente a los usuarios descubiertos.'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Agregar repetidores automáticamente'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Permitir que el compañero agregue automáticamente los repetidores descubiertos.'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Agregar automáticamente servidores de sala'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Permitir que el compañero agregue automáticamente los servidores de salas descubiertos.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Agregar sensores automáticamente'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Permitir que el compañero agregue automáticamente los sensores descubiertos.'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => + 'Sobreescribir el más antiguo'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Cuando se habilita, el compañero sobrescribirá el contacto más antiguo no favorito cuando la lista de contactos esté llena.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Contactos descubiertos'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => + 'No se encontraron contactos coincidentes'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Buscar contactos descubiertos'; + + @override + String get discoveredContacts_contactAdded => 'Contacto agregado'; + + @override + String get discoveredContacts_addContact => 'Agregar contacto'; + + @override + String get discoveredContacts_copyContact => + 'Copiar contacto al portapapeles'; + + @override + String get discoveredContacts_deleteContact => 'Eliminar contacto'; } diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index 7ae1b25..29f3af8 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -235,11 +235,11 @@ class AppLocalizationsFr extends AppLocalizations { String get settings_longitude => 'Longitude'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Paramètres de contact'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Paramètres pour l\'ajout de contacts'; @override String get settings_privacyMode => 'Mode de confidentialité'; @@ -3144,56 +3144,74 @@ class AppLocalizationsFr extends AppLocalizations { String get snrIndicator_lastSeen => 'Dernière fois vu'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Paramètres des contacts'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Découverte automatique'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Autres paramètres liés aux contacts'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Ajouter automatiquement les utilisateurs'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Autoriser le compagnon à ajouter automatiquement les utilisateurs découverts'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Ajouter automatiquement les répéteurs'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Autoriser le compagnon à ajouter automatiquement les répéteurs découverts'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Ajouter automatiquement les serveurs de salle'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Autoriser le compagnon à ajouter automatiquement les serveurs de salles découverts'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Ajouter automatiquement les capteurs'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Autoriser le compagnon à ajouter automatiquement les capteurs découverts.'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => 'Écraser le plus ancien'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Lorsqu\'il est activé, le compagnon écrasera l\'ancien contact non favori lorsque la liste de contacts est pleine.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Contacts découverts'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Aucun contact correspondant'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => + 'Rechercher des contacts découverts'; + + @override + String get discoveredContacts_contactAdded => 'Contact ajouté'; + + @override + String get discoveredContacts_addContact => 'Ajouter un contact'; + + @override + String get discoveredContacts_copyContact => + 'Copier le contact dans le presse-papiers'; + + @override + String get discoveredContacts_deleteContact => 'Supprimer le contact'; } diff --git a/lib/l10n/app_localizations_it.dart b/lib/l10n/app_localizations_it.dart index be88ecb..1fb4eb1 100644 --- a/lib/l10n/app_localizations_it.dart +++ b/lib/l10n/app_localizations_it.dart @@ -234,11 +234,11 @@ class AppLocalizationsIt extends AppLocalizations { String get settings_longitude => 'Longitudine'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Impostazioni di contatto'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Impostazioni per l\'aggiunta dei contatti'; @override String get settings_privacyMode => 'Modalità Privacy'; @@ -3125,56 +3125,73 @@ class AppLocalizationsIt extends AppLocalizations { String get snrIndicator_lastSeen => 'Ultimo accesso'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Impostazioni dei contatti'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Scoperta automatica'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Altre impostazioni relative ai contatti'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Aggiungere utenti automaticamente'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Consenti al compagno di aggiungere automaticamente gli utenti scoperti.'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Aggiungere ripetitori automaticamente'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Consenti al compagno di aggiungere automaticamente i ripetitori scoperti.'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Aggiungere automaticamente i server delle stanze'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Consenti al compagno di aggiungere automaticamente i server delle stanze scoperte.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Aggiungere automaticamente i sensori'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Consenti al compagno di aggiungere automaticamente i sensori scoperti'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => + 'Sostituisci il più vecchio'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Quando abilitato, il companion sovrascriverà il contatto più vecchio non preferito quando l\'elenco dei contatti è pieno.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Contatti scoperti'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Nessun contatto corrispondente'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Cerca contatti scoperti'; + + @override + String get discoveredContacts_contactAdded => 'Contatto aggiunto'; + + @override + String get discoveredContacts_addContact => 'Aggiungi contatto'; + + @override + String get discoveredContacts_copyContact => 'Copia contatto negli appunti'; + + @override + String get discoveredContacts_deleteContact => 'Elimina Contatto'; } diff --git a/lib/l10n/app_localizations_nl.dart b/lib/l10n/app_localizations_nl.dart index ad1f624..6ed3a84 100644 --- a/lib/l10n/app_localizations_nl.dart +++ b/lib/l10n/app_localizations_nl.dart @@ -234,11 +234,11 @@ class AppLocalizationsNl extends AppLocalizations { String get settings_longitude => 'Lengtegraad'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Contactinstellingen'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Instellingen voor het toevoegen van contacten'; @override String get settings_privacyMode => 'Privacy Mode'; @@ -3112,56 +3112,72 @@ class AppLocalizationsNl extends AppLocalizations { String get snrIndicator_lastSeen => 'Laatst gezien'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Instellingen voor contacten'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Automatische detectie'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Andere instellingen voor contactgerelateerde zaken'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Gebruikers automatisch toevoegen'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Sta toe dat de companion automatisch ontdekte gebruikers toevoegt'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Automatisch herhalingstoestellen toevoegen'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Sta toe dat de companion automatisch ontdekte repeaters toevoegt'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Automatisch kamerservers toevoegen'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Sta toe dat de companion automatisch ontdekte kamer servers toevoegt.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Automatisch sensoren toevoegen'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Sta toe dat de companion automatisch ontdekte sensoren toevoegt'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => 'Overschrijf Oudste'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Wanneer ingeschakeld, overschrijft de companion het oudste contact dat niet is gemarkeerd als favoriet wanneer de contactenlijst vol is.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Ontdekte contacten'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Geen overeenkomende contacten'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Ontdekte contacten zoeken'; + + @override + String get discoveredContacts_contactAdded => 'Contact toegevoegd'; + + @override + String get discoveredContacts_addContact => 'Contact toevoegen'; + + @override + String get discoveredContacts_copyContact => 'Kopieer contact naar klembord'; + + @override + String get discoveredContacts_deleteContact => 'Contact verwijderen'; } diff --git a/lib/l10n/app_localizations_pl.dart b/lib/l10n/app_localizations_pl.dart index a97599c..703e281 100644 --- a/lib/l10n/app_localizations_pl.dart +++ b/lib/l10n/app_localizations_pl.dart @@ -236,11 +236,11 @@ class AppLocalizationsPl extends AppLocalizations { String get settings_longitude => 'Długość'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Ustawienia kontaktowe'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Ustawienia dotyczące sposobu dodawania kontaktów'; @override String get settings_privacyMode => 'Tryb Prywatny'; @@ -3125,56 +3125,72 @@ class AppLocalizationsPl extends AppLocalizations { String get snrIndicator_lastSeen => 'Ostatnio widziany'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Ustawienia kontaktów'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Automatyczne odnajdywanie'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Inne ustawienia związane z kontaktami'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Automatycznie dodaj użytkowników'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Pozwól towarzyszowi automatycznie dodawać znalezione użytkowników.'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Automatyczne dodawanie powtarzalników'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Zezwól na automatyczne dodawanie odkrytych repeaterów przez towarzysza.'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Automatycznie dodaj serwery pokojowe'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Zezwól towarzyszowi na automatyczne dodawanie znalezionych serwerów pokojowych.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Automatycznie dodaj czujniki'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Zezwól towarzyszowi na automatyczne dodawanie wykrytych czujników.'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => 'Nadpisz najstarszy'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Gdy jest włączone, companion zastępuje najstarszy kontakt nie ulubiony, gdy lista kontaktów jest pełna.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Odkryte Kontakty'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Brak pasujących kontaktów'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Wyszukaj odkryte kontakty'; + + @override + String get discoveredContacts_contactAdded => 'Kontakt dodany'; + + @override + String get discoveredContacts_addContact => 'Dodaj kontakt'; + + @override + String get discoveredContacts_copyContact => 'Kopiuj kontakt do schowka'; + + @override + String get discoveredContacts_deleteContact => 'Usuń kontakt'; } diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart index e1f89e2..442b41e 100644 --- a/lib/l10n/app_localizations_pt.dart +++ b/lib/l10n/app_localizations_pt.dart @@ -235,11 +235,11 @@ class AppLocalizationsPt extends AppLocalizations { String get settings_longitude => 'Longitude'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Configurações de Contato'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Configurações para como os contatos são adicionados'; @override String get settings_privacyMode => 'Modo de Privacidade'; @@ -3120,56 +3120,74 @@ class AppLocalizationsPt extends AppLocalizations { String get snrIndicator_lastSeen => 'Visto pela última vez'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Configurações de contatos'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Descoberta Automática'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Outras configurações relacionadas a contatos'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Adicionar usuários automaticamente'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Permitir que o companheiro adicione automaticamente os usuários descobertos.'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Adicionar repetidores automaticamente'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Permitir que o companheiro adicione automaticamente os repetidores descobertos.'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Adicionar automaticamente servidores de sala'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Permitir que o companheiro adicione automaticamente os servidores de salas descobertos.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Adicionar sensores automaticamente'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Permitir que o companheiro adicione automaticamente sensores descobertos.'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => + 'Sobrescrever o Mais Antigo'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Quando ativado, o acompanhante substituirá o contato mais antigo não favoritado quando a lista de contatos estiver cheia.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Contatos Descobertos'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Nenhum contato correspondente'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Pesquisar contatos descobertos'; + + @override + String get discoveredContacts_contactAdded => 'Contato adicionado'; + + @override + String get discoveredContacts_addContact => 'Adicionar Contato'; + + @override + String get discoveredContacts_copyContact => + 'Copiar Contato para a área de transferência'; + + @override + String get discoveredContacts_deleteContact => 'Excluir Contato'; } diff --git a/lib/l10n/app_localizations_ru.dart b/lib/l10n/app_localizations_ru.dart index b2f3718..90f8ed6 100644 --- a/lib/l10n/app_localizations_ru.dart +++ b/lib/l10n/app_localizations_ru.dart @@ -233,11 +233,11 @@ class AppLocalizationsRu extends AppLocalizations { String get settings_longitude => 'Долгота'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Настройки контактов'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Настройки добавления контактов'; @override String get settings_privacyMode => 'Режим конфиденциальности'; @@ -3132,56 +3132,74 @@ class AppLocalizationsRu extends AppLocalizations { String get snrIndicator_lastSeen => 'Последний раз видели'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Настройки контактов'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Автоматическое обнаружение'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Другие настройки, связанные с контактами'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Автоматически добавлять пользователей'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Разрешить компаньону автоматически добавлять обнаруженных пользователей'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Автоматически добавлять ретрансляторы'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Разрешить спутнику автоматически добавлять обнаруженные ретрансляторы'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Автоматически добавлять серверы комнат'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Разрешить компаньону автоматически добавлять обнаруженные сервера комнат.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Автоматически добавлять датчики'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Разрешить компаньону автоматически добавлять обнаруженные датчики'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => + 'Перезаписать самое старое'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'При включении компаньон будет перезаписывать самый старый контакт, не отмеченный как любимый, когда список контактов полон.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Обнаруженные контакты'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Нет совпадающих контактов'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Найденные контакты поиска'; + + @override + String get discoveredContacts_contactAdded => 'Контакт добавлен'; + + @override + String get discoveredContacts_addContact => 'Добавить контакт'; + + @override + String get discoveredContacts_copyContact => + 'Копировать контакт в буфер обмена'; + + @override + String get discoveredContacts_deleteContact => 'Удалить контакт'; } diff --git a/lib/l10n/app_localizations_sk.dart b/lib/l10n/app_localizations_sk.dart index 773b338..944bc6c 100644 --- a/lib/l10n/app_localizations_sk.dart +++ b/lib/l10n/app_localizations_sk.dart @@ -234,11 +234,11 @@ class AppLocalizationsSk extends AppLocalizations { String get settings_longitude => 'Dĺžka'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Nastavenia kontaktov'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Nastavenia pre pridávanie kontaktov.'; @override String get settings_privacyMode => 'Režim ochrany súkromia'; @@ -3107,56 +3107,72 @@ class AppLocalizationsSk extends AppLocalizations { String get snrIndicator_lastSeen => 'Naposledy videný'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Nastavenia kontaktov'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Automatické zisťovanie'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Ďalšie nastavenia súvisiace s kontaktami'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Automaticky pridávať užívateľov'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Povoliť spoločníkovi automaticky pridávať objavených užívateľov.'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Automaticky pridávať opakovače'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Povoliť spoločníkovi automaticky pridávať objavené repeater.'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Automaticky pridávať server miestnosti'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Povoliť spoločníkovi automaticky pridať objavené serverové miestnosti.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Automaticky pridávať senzory'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Povoliť spoločníkovi automaticky pridávať objavené senzory.'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => 'Prepísať najstaršie'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Keď je povolené, spoločník prepíše najstarší kontakt, ktorý nie je označený ako obľúbený, keď je zoznam kontaktov plný.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Objavené kontakty'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Žiadne zhodné kontakty'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Vyhľadať objavené kontakty'; + + @override + String get discoveredContacts_contactAdded => 'Kontakt bol pridaný'; + + @override + String get discoveredContacts_addContact => 'Pridať kontakt'; + + @override + String get discoveredContacts_copyContact => 'Kopírovať kontakt do schránky'; + + @override + String get discoveredContacts_deleteContact => 'Zmazať kontakt'; } diff --git a/lib/l10n/app_localizations_sl.dart b/lib/l10n/app_localizations_sl.dart index 0f38b94..0fd67ce 100644 --- a/lib/l10n/app_localizations_sl.dart +++ b/lib/l10n/app_localizations_sl.dart @@ -234,11 +234,11 @@ class AppLocalizationsSl extends AppLocalizations { String get settings_longitude => 'Dolžina'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Nastavitve stika'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Nastavitve za dodajanje stikov.'; @override String get settings_privacyMode => 'Zasebnost'; @@ -3112,56 +3112,71 @@ class AppLocalizationsSl extends AppLocalizations { String get snrIndicator_lastSeen => 'Zadnjič videno'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Nastavitve stikov'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Avtomatsko odkrivanje'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => 'Druge nastavitve v zvezi s stiki'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Avtomatsko dodaj uporabnike'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Dovoli spremljevalcu, da samodejno doda odkrite uporabnike.'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Avtomatsko dodaj ponovitelje'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Dovoli spremljevalcu, da samodejno doda odkrite ponovitelje.'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Avtomatsko dodaj strežnike sob'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Dovoli spremljevalcu, da samodejno doda odkrite strežnike sob.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Avtomatsko dodaj senzorje'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Dovoli spremljevalcu, da samodejno doda odkrite senzorje.'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => 'Prepiši najstarejše'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Ko je omogočen, bo spremljevalec prepisal najstarejši stik, ki ni označen kot najljubši, ko je seznam stikov poln.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Odkriti stiki'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Ni ujemajočih stikov'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Najdeni stiki po iskanju'; + + @override + String get discoveredContacts_contactAdded => 'Kontakt dodan'; + + @override + String get discoveredContacts_addContact => 'Dodaj stik'; + + @override + String get discoveredContacts_copyContact => 'Kopiraj stik v odložišče'; + + @override + String get discoveredContacts_deleteContact => 'Izbriši stik'; } diff --git a/lib/l10n/app_localizations_sv.dart b/lib/l10n/app_localizations_sv.dart index 4e67267..86ba9fd 100644 --- a/lib/l10n/app_localizations_sv.dart +++ b/lib/l10n/app_localizations_sv.dart @@ -233,11 +233,11 @@ class AppLocalizationsSv extends AppLocalizations { String get settings_longitude => 'Längdgrad'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Kontaktinställningar'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Inställningar för hur kontakter läggs till.'; @override String get settings_privacyMode => 'Privatläge'; @@ -3090,56 +3090,72 @@ class AppLocalizationsSv extends AppLocalizations { String get snrIndicator_lastSeen => 'Senast sedd'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Kontaktinställningar'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Automatisk upptäckt'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Andra inställningar relaterade till kontakt'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Lägg till användare automatiskt'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Tillåt kompanjonen att automatiskt lägga till upptäckta användare'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Lägg till upprepande enheter automatiskt'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Tillåt kompanjonen att automatiskt lägga till upptäckta repeater.'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Lägg automatiskt till rumsservrar'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Tillåt kompanjonen att automatiskt lägga till upptäckta rumsservrar.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Lägg till sensorer automatiskt'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Tillåt kompanjonen att automatiskt lägga till upptäckta sensorer.'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => 'Skriv över äldst'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'När den är aktiverad kommer medhjälparen att skriva över den äldsta kontakten som inte är favoritmarkerad när kontaktnamnslistan är full'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Upptäckta kontakter'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => 'Inga matchande kontakter'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Sök uppfunna kontakter'; + + @override + String get discoveredContacts_contactAdded => 'Kontakt tillagd'; + + @override + String get discoveredContacts_addContact => 'Lägg till kontakt'; + + @override + String get discoveredContacts_copyContact => 'Kopiera kontakt till urklipp'; + + @override + String get discoveredContacts_deleteContact => 'Ta bort kontakt'; } diff --git a/lib/l10n/app_localizations_uk.dart b/lib/l10n/app_localizations_uk.dart index 40a52ca..abeb6c6 100644 --- a/lib/l10n/app_localizations_uk.dart +++ b/lib/l10n/app_localizations_uk.dart @@ -233,11 +233,11 @@ class AppLocalizationsUk extends AppLocalizations { String get settings_longitude => 'Довгота'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => 'Налаштування контактів'; @override String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + 'Налаштування для додавання контактів'; @override String get settings_privacyMode => 'Режим приватності'; @@ -3139,56 +3139,74 @@ class AppLocalizationsUk extends AppLocalizations { String get snrIndicator_lastSeen => 'Останній раз бачили'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => 'Налаштування контактів'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => 'Автоматичне виявлення'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => + 'Інші налаштування, пов\'язані з контактами'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => + 'Автоматично додавати користувачів'; @override String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + 'Дозволити супутникові автоматично додавати виявлених користувачів'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => + 'Автоматично додавати повторювачі'; @override String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + 'Дозволити супутнику автоматично додавати виявлені ретранслятори'; @override String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + 'Автоматично додавати сервери кімнат'; @override String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + 'Дозволити супровіднику автоматично додавати виявлені сервери кімнат.'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => + 'Автоматично додавати датчики'; @override String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + 'Дозволити супровіднику автоматично додавати виявлені сенсори'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => 'Перезаписати найстаріше'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + 'Коли увімкнено, супровід переганяє найстарший контакт, який не доданий до улюблених, коли список контактів повний.'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => 'Виявлені контакти'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => + 'Відповідних контактів не знайдено'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => 'Знайти виявлені контакти'; + + @override + String get discoveredContacts_contactAdded => 'Контакт додано'; + + @override + String get discoveredContacts_addContact => 'Додати контакт'; + + @override + String get discoveredContacts_copyContact => + 'Копіювати контакт у буфер обміну'; + + @override + String get discoveredContacts_deleteContact => 'Видалити контакт'; } diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart index 4aec80b..72babcc 100644 --- a/lib/l10n/app_localizations_zh.dart +++ b/lib/l10n/app_localizations_zh.dart @@ -227,11 +227,10 @@ class AppLocalizationsZh extends AppLocalizations { String get settings_longitude => '经度'; @override - String get settings_contactSettings => 'Contact Settings'; + String get settings_contactSettings => '联系人设置'; @override - String get settings_contactSettingsSubtitle => - 'Settings for how contacts are added.'; + String get settings_contactSettingsSubtitle => '添加联系人的设置'; @override String get settings_privacyMode => '隐私模式'; @@ -2899,56 +2898,63 @@ class AppLocalizationsZh extends AppLocalizations { String get snrIndicator_lastSeen => '最近访问'; @override - String get contactsSettings_title => 'Contacts settings'; + String get contactsSettings_title => '联系人设置'; @override - String get contactsSettings_autoAddTitle => 'Automatic Discovery'; + String get contactsSettings_autoAddTitle => '自动发现'; @override - String get contactsSettings_otherTitle => 'Other contact related settings'; + String get contactsSettings_otherTitle => '其他联系人相关设置'; @override - String get contactsSettings_autoAddUsersTitle => 'Auto-add users'; + String get contactsSettings_autoAddUsersTitle => '自动添加用户'; @override - String get contactsSettings_autoAddUsersSubtitle => - 'Allow the companion to automatically add discovered users.'; + String get contactsSettings_autoAddUsersSubtitle => '允许伴侣自动添加发现的用户'; @override - String get contactsSettings_autoAddRepeatersTitle => 'Auto-add repeaters'; + String get contactsSettings_autoAddRepeatersTitle => '自动添加重复器'; @override - String get contactsSettings_autoAddRepeatersSubtitle => - 'Allow the companion to automatically add discovered repeaters.'; + String get contactsSettings_autoAddRepeatersSubtitle => '允许伴侣自动添加发现的重复器'; @override - String get contactsSettings_autoAddRoomServersTitle => - 'Auto-add room servers'; + String get contactsSettings_autoAddRoomServersTitle => '自动添加房间服务器'; @override - String get contactsSettings_autoAddRoomServersSubtitle => - 'Allow the companion to automatically add discovered room servers.'; + String get contactsSettings_autoAddRoomServersSubtitle => '允许伴侣自动添加发现的房间服务器'; @override - String get contactsSettings_autoAddSensorsTitle => 'Auto-add sensors'; + String get contactsSettings_autoAddSensorsTitle => '自动添加传感器'; @override - String get contactsSettings_autoAddSensorsSubtitle => - 'Allow the companion to automatically add discovered sensors.'; + String get contactsSettings_autoAddSensorsSubtitle => '允许伴侣自动添加发现的传感器'; @override - String get contactsSettings_overwriteOldestTitle => 'Overwrite Oldest'; + String get contactsSettings_overwriteOldestTitle => '覆盖最旧的'; @override String get contactsSettings_overwriteOldestSubtitle => - 'When enabled, the companion will overwrite the oldest contact not favoriteited when the contact list is full.'; + '启用时,伴侣将在联系人列表满时覆盖最老的未收藏的联系人。'; @override - String get discoveredContacts_Title => 'Discovered Contacts'; + String get discoveredContacts_Title => '已发现的联系人'; @override - String get discoveredContacts_noMatching => 'No matching contacts'; + String get discoveredContacts_noMatching => '没有匹配的联系人'; @override - String get discoveredContacts_searchHint => 'Search discovered contacts'; + String get discoveredContacts_searchHint => '搜索已发现的联系人'; + + @override + String get discoveredContacts_contactAdded => '联系人已添加'; + + @override + String get discoveredContacts_addContact => '添加联系人'; + + @override + String get discoveredContacts_copyContact => '复制联系人到剪贴板'; + + @override + String get discoveredContacts_deleteContact => '删除联系人'; } diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index 69ebecc..7d57cb8 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -1799,5 +1799,27 @@ "contacts_searchContactsNoNumber": "Zoek contacten...", "contacts_searchUsers": "Zoek {number}{str} gebruikers...", "contacts_searchFavorites": "Zoek {number}{str} favorieten...", - "contacts_searchRoomServers": "Zoek {number}{str} Room servers..." + "contacts_searchRoomServers": "Zoek {number}{str} Room servers...", + "contactsSettings_autoAddUsersTitle": "Gebruikers automatisch toevoegen", + "contactsSettings_title": "Instellingen voor contacten", + "settings_contactSettings": "Contactinstellingen", + "contactsSettings_otherTitle": "Andere instellingen voor contactgerelateerde zaken", + "contactsSettings_autoAddRepeatersSubtitle": "Sta toe dat de companion automatisch ontdekte repeaters toevoegt", + "contactsSettings_autoAddRoomServersTitle": "Automatisch kamerservers toevoegen", + "contactsSettings_autoAddRoomServersSubtitle": "Sta toe dat de companion automatisch ontdekte kamer servers toevoegt.", + "contactsSettings_autoAddSensorsTitle": "Automatisch sensoren toevoegen", + "settings_contactSettingsSubtitle": "Instellingen voor het toevoegen van contacten", + "contactsSettings_autoAddTitle": "Automatische detectie", + "contactsSettings_autoAddSensorsSubtitle": "Sta toe dat de companion automatisch ontdekte sensoren toevoegt", + "contactsSettings_autoAddUsersSubtitle": "Sta toe dat de companion automatisch ontdekte gebruikers toevoegt", + "contactsSettings_autoAddRepeatersTitle": "Automatisch herhalingstoestellen toevoegen", + "contactsSettings_overwriteOldestTitle": "Overschrijf Oudste", + "discoveredContacts_noMatching": "Geen overeenkomende contacten", + "discoveredContacts_addContact": "Contact toevoegen", + "discoveredContacts_copyContact": "Kopieer contact naar klembord", + "discoveredContacts_deleteContact": "Contact verwijderen", + "discoveredContacts_Title": "Ontdekte contacten", + "contactsSettings_overwriteOldestSubtitle": "Wanneer ingeschakeld, overschrijft de companion het oudste contact dat niet is gemarkeerd als favoriet wanneer de contactenlijst vol is.", + "discoveredContacts_contactAdded": "Contact toegevoegd", + "discoveredContacts_searchHint": "Ontdekte contacten zoeken" } diff --git a/lib/l10n/app_pl.arb b/lib/l10n/app_pl.arb index 75e1d34..d20ffee 100644 --- a/lib/l10n/app_pl.arb +++ b/lib/l10n/app_pl.arb @@ -1799,5 +1799,27 @@ "contacts_searchFavorites": "Wyszukaj {number}{str} ulubione...", "contacts_searchRoomServers": "Wyszukaj {number}{str} serwerów Room...", "contacts_searchUsers": "Wyszukaj {number}{str} Użytkowników...", - "contacts_searchRepeaters": "Wyszukaj {number}{str} powtórników..." + "contacts_searchRepeaters": "Wyszukaj {number}{str} powtórników...", + "contactsSettings_title": "Ustawienia kontaktów", + "settings_contactSettingsSubtitle": "Ustawienia dotyczące sposobu dodawania kontaktów", + "contactsSettings_autoAddUsersSubtitle": "Pozwól towarzyszowi automatycznie dodawać znalezione użytkowników.", + "contactsSettings_autoAddRepeatersTitle": "Automatyczne dodawanie powtarzalników", + "contactsSettings_autoAddRepeatersSubtitle": "Zezwól na automatyczne dodawanie odkrytych repeaterów przez towarzysza.", + "contactsSettings_autoAddRoomServersTitle": "Automatycznie dodaj serwery pokojowe", + "contactsSettings_autoAddUsersTitle": "Automatycznie dodaj użytkowników", + "settings_contactSettings": "Ustawienia kontaktowe", + "contactsSettings_otherTitle": "Inne ustawienia związane z kontaktami", + "contactsSettings_autoAddTitle": "Automatyczne odnajdywanie", + "contactsSettings_autoAddRoomServersSubtitle": "Zezwól towarzyszowi na automatyczne dodawanie znalezionych serwerów pokojowych.", + "contactsSettings_autoAddSensorsTitle": "Automatycznie dodaj czujniki", + "discoveredContacts_searchHint": "Wyszukaj odkryte kontakty", + "discoveredContacts_contactAdded": "Kontakt dodany", + "discoveredContacts_addContact": "Dodaj kontakt", + "discoveredContacts_copyContact": "Kopiuj kontakt do schowka", + "contactsSettings_overwriteOldestTitle": "Nadpisz najstarszy", + "discoveredContacts_Title": "Odkryte Kontakty", + "contactsSettings_overwriteOldestSubtitle": "Gdy jest włączone, companion zastępuje najstarszy kontakt nie ulubiony, gdy lista kontaktów jest pełna.", + "contactsSettings_autoAddSensorsSubtitle": "Zezwól towarzyszowi na automatyczne dodawanie wykrytych czujników.", + "discoveredContacts_noMatching": "Brak pasujących kontaktów", + "discoveredContacts_deleteContact": "Usuń kontakt" } diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index f6ada19..421ddd3 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -1799,5 +1799,27 @@ "contacts_searchUsers": "Pesquisar {number}{str} Usuários...", "contacts_searchContactsNoNumber": "Pesquisar Contatos...", "contacts_unread": "Não lido", - "contacts_searchRoomServers": "Pesquisar {number}{str} servidores de sala..." + "contacts_searchRoomServers": "Pesquisar {number}{str} servidores de sala...", + "settings_contactSettings": "Configurações de Contato", + "contactsSettings_otherTitle": "Outras configurações relacionadas a contatos", + "contactsSettings_title": "Configurações de contatos", + "contactsSettings_autoAddTitle": "Descoberta Automática", + "settings_contactSettingsSubtitle": "Configurações para como os contatos são adicionados", + "contactsSettings_autoAddUsersTitle": "Adicionar usuários automaticamente", + "contactsSettings_autoAddRepeatersSubtitle": "Permitir que o companheiro adicione automaticamente os repetidores descobertos.", + "contactsSettings_autoAddRoomServersTitle": "Adicionar automaticamente servidores de sala", + "contactsSettings_overwriteOldestTitle": "Sobrescrever o Mais Antigo", + "contactsSettings_autoAddSensorsTitle": "Adicionar sensores automaticamente", + "contactsSettings_overwriteOldestSubtitle": "Quando ativado, o acompanhante substituirá o contato mais antigo não favoritado quando a lista de contatos estiver cheia.", + "discoveredContacts_Title": "Contatos Descobertos", + "contactsSettings_autoAddUsersSubtitle": "Permitir que o companheiro adicione automaticamente os usuários descobertos.", + "contactsSettings_autoAddRepeatersTitle": "Adicionar repetidores automaticamente", + "discoveredContacts_noMatching": "Nenhum contato correspondente", + "contactsSettings_autoAddRoomServersSubtitle": "Permitir que o companheiro adicione automaticamente os servidores de salas descobertos.", + "discoveredContacts_searchHint": "Pesquisar contatos descobertos", + "contactsSettings_autoAddSensorsSubtitle": "Permitir que o companheiro adicione automaticamente sensores descobertos.", + "discoveredContacts_copyContact": "Copiar Contato para a área de transferência", + "discoveredContacts_deleteContact": "Excluir Contato", + "discoveredContacts_contactAdded": "Contato adicionado", + "discoveredContacts_addContact": "Adicionar Contato" } diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 9aef298..b5910b7 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -1039,5 +1039,27 @@ "contacts_unread": "Непрочитанное", "contacts_searchRoomServers": "Поиск {number}{str} серверов комнат...", "contacts_searchFavorites": "Поиск {number}{str} избранного...", - "contacts_searchUsers": "Поиск {number}{str} пользователей..." + "contacts_searchUsers": "Поиск {number}{str} пользователей...", + "settings_contactSettings": "Настройки контактов", + "settings_contactSettingsSubtitle": "Настройки добавления контактов", + "contactsSettings_autoAddTitle": "Автоматическое обнаружение", + "contactsSettings_title": "Настройки контактов", + "contactsSettings_otherTitle": "Другие настройки, связанные с контактами", + "contactsSettings_autoAddUsersSubtitle": "Разрешить компаньону автоматически добавлять обнаруженных пользователей", + "contactsSettings_autoAddRoomServersTitle": "Автоматически добавлять серверы комнат", + "contactsSettings_autoAddSensorsTitle": "Автоматически добавлять датчики", + "contactsSettings_autoAddSensorsSubtitle": "Разрешить компаньону автоматически добавлять обнаруженные датчики", + "contactsSettings_autoAddUsersTitle": "Автоматически добавлять пользователей", + "contactsSettings_overwriteOldestTitle": "Перезаписать самое старое", + "contactsSettings_autoAddRepeatersTitle": "Автоматически добавлять ретрансляторы", + "contactsSettings_autoAddRepeatersSubtitle": "Разрешить спутнику автоматически добавлять обнаруженные ретрансляторы", + "contactsSettings_overwriteOldestSubtitle": "При включении компаньон будет перезаписывать самый старый контакт, не отмеченный как любимый, когда список контактов полон.", + "contactsSettings_autoAddRoomServersSubtitle": "Разрешить компаньону автоматически добавлять обнаруженные сервера комнат.", + "discoveredContacts_noMatching": "Нет совпадающих контактов", + "discoveredContacts_searchHint": "Найденные контакты поиска", + "discoveredContacts_contactAdded": "Контакт добавлен", + "discoveredContacts_copyContact": "Копировать контакт в буфер обмена", + "discoveredContacts_addContact": "Добавить контакт", + "discoveredContacts_Title": "Обнаруженные контакты", + "discoveredContacts_deleteContact": "Удалить контакт" } diff --git a/lib/l10n/app_sk.arb b/lib/l10n/app_sk.arb index 672b7d7..4fb52ce 100644 --- a/lib/l10n/app_sk.arb +++ b/lib/l10n/app_sk.arb @@ -1799,5 +1799,27 @@ "contacts_searchRepeaters": "Hľadať {number}{str} opakovače...", "contacts_searchUsers": "Hľadať {number}{str} používateľov...", "contacts_searchContactsNoNumber": "Hľadať kontakty...", - "contacts_unread": "Neprečítané" + "contacts_unread": "Neprečítané", + "settings_contactSettingsSubtitle": "Nastavenia pre pridávanie kontaktov.", + "contactsSettings_autoAddUsersTitle": "Automaticky pridávať užívateľov", + "contactsSettings_autoAddUsersSubtitle": "Povoliť spoločníkovi automaticky pridávať objavených užívateľov.", + "contactsSettings_autoAddRepeatersTitle": "Automaticky pridávať opakovače", + "contactsSettings_autoAddRoomServersTitle": "Automaticky pridávať server miestnosti", + "contactsSettings_autoAddRoomServersSubtitle": "Povoliť spoločníkovi automaticky pridať objavené serverové miestnosti.", + "contactsSettings_autoAddTitle": "Automatické zisťovanie", + "contactsSettings_title": "Nastavenia kontaktov", + "contactsSettings_otherTitle": "Ďalšie nastavenia súvisiace s kontaktami", + "settings_contactSettings": "Nastavenia kontaktov", + "contactsSettings_autoAddSensorsTitle": "Automaticky pridávať senzory", + "discoveredContacts_noMatching": "Žiadne zhodné kontakty", + "discoveredContacts_searchHint": "Vyhľadať objavené kontakty", + "contactsSettings_autoAddRepeatersSubtitle": "Povoliť spoločníkovi automaticky pridávať objavené repeater.", + "discoveredContacts_contactAdded": "Kontakt bol pridaný", + "discoveredContacts_copyContact": "Kopírovať kontakt do schránky", + "discoveredContacts_deleteContact": "Zmazať kontakt", + "contactsSettings_overwriteOldestSubtitle": "Keď je povolené, spoločník prepíše najstarší kontakt, ktorý nie je označený ako obľúbený, keď je zoznam kontaktov plný.", + "contactsSettings_autoAddSensorsSubtitle": "Povoliť spoločníkovi automaticky pridávať objavené senzory.", + "discoveredContacts_Title": "Objavené kontakty", + "contactsSettings_overwriteOldestTitle": "Prepísať najstaršie", + "discoveredContacts_addContact": "Pridať kontakt" } diff --git a/lib/l10n/app_sl.arb b/lib/l10n/app_sl.arb index 09359a1..ea75b76 100644 --- a/lib/l10n/app_sl.arb +++ b/lib/l10n/app_sl.arb @@ -1799,5 +1799,27 @@ "contacts_searchRoomServers": "Išči {number}{str} strežnikov sob...", "contacts_searchContactsNoNumber": "Iskanje stikov...", "contacts_searchRepeaters": "Išči {number}{str} ponavljalnike...", - "contacts_searchUsers": "Išči {number}{str} uporabnikov..." + "contacts_searchUsers": "Išči {number}{str} uporabnikov...", + "settings_contactSettings": "Nastavitve stika", + "contactsSettings_autoAddTitle": "Avtomatsko odkrivanje", + "contactsSettings_autoAddUsersTitle": "Avtomatsko dodaj uporabnike", + "contactsSettings_autoAddRepeatersTitle": "Avtomatsko dodaj ponovitelje", + "contactsSettings_autoAddRepeatersSubtitle": "Dovoli spremljevalcu, da samodejno doda odkrite ponovitelje.", + "contactsSettings_autoAddRoomServersTitle": "Avtomatsko dodaj strežnike sob", + "contactsSettings_autoAddRoomServersSubtitle": "Dovoli spremljevalcu, da samodejno doda odkrite strežnike sob.", + "contactsSettings_otherTitle": "Druge nastavitve v zvezi s stiki", + "settings_contactSettingsSubtitle": "Nastavitve za dodajanje stikov.", + "contactsSettings_title": "Nastavitve stikov", + "contactsSettings_autoAddSensorsTitle": "Avtomatsko dodaj senzorje", + "contactsSettings_autoAddUsersSubtitle": "Dovoli spremljevalcu, da samodejno doda odkrite uporabnike.", + "discoveredContacts_noMatching": "Ni ujemajočih stikov", + "contactsSettings_autoAddSensorsSubtitle": "Dovoli spremljevalcu, da samodejno doda odkrite senzorje.", + "discoveredContacts_addContact": "Dodaj stik", + "discoveredContacts_contactAdded": "Kontakt dodan", + "discoveredContacts_copyContact": "Kopiraj stik v odložišče", + "contactsSettings_overwriteOldestTitle": "Prepiši najstarejše", + "contactsSettings_overwriteOldestSubtitle": "Ko je omogočen, bo spremljevalec prepisal najstarejši stik, ki ni označen kot najljubši, ko je seznam stikov poln.", + "discoveredContacts_Title": "Odkriti stiki", + "discoveredContacts_searchHint": "Najdeni stiki po iskanju", + "discoveredContacts_deleteContact": "Izbriši stik" } diff --git a/lib/l10n/app_sv.arb b/lib/l10n/app_sv.arb index a923cc9..b4bcfb5 100644 --- a/lib/l10n/app_sv.arb +++ b/lib/l10n/app_sv.arb @@ -1799,5 +1799,27 @@ "contacts_searchRepeaters": "Sök {number}{str} upprepningsenheter...", "contacts_searchFavorites": "Sök {number}{str} Favoriter...", "contacts_searchUsers": "Sök {number}{str} användare...", - "contacts_searchRoomServers": "Sök {number}{str} Room-servrar..." + "contacts_searchRoomServers": "Sök {number}{str} Room-servrar...", + "settings_contactSettingsSubtitle": "Inställningar för hur kontakter läggs till.", + "settings_contactSettings": "Kontaktinställningar", + "contactsSettings_autoAddTitle": "Automatisk upptäckt", + "contactsSettings_otherTitle": "Andra inställningar relaterade till kontakt", + "contactsSettings_autoAddUsersSubtitle": "Tillåt kompanjonen att automatiskt lägga till upptäckta användare", + "contactsSettings_autoAddRepeatersTitle": "Lägg till upprepande enheter automatiskt", + "contactsSettings_autoAddRoomServersSubtitle": "Tillåt kompanjonen att automatiskt lägga till upptäckta rumsservrar.", + "contactsSettings_autoAddSensorsTitle": "Lägg till sensorer automatiskt", + "contactsSettings_autoAddUsersTitle": "Lägg till användare automatiskt", + "contactsSettings_title": "Kontaktinställningar", + "contactsSettings_autoAddSensorsSubtitle": "Tillåt kompanjonen att automatiskt lägga till upptäckta sensorer.", + "contactsSettings_overwriteOldestTitle": "Skriv över äldst", + "contactsSettings_autoAddRepeatersSubtitle": "Tillåt kompanjonen att automatiskt lägga till upptäckta repeater.", + "contactsSettings_autoAddRoomServersTitle": "Lägg automatiskt till rumsservrar", + "discoveredContacts_noMatching": "Inga matchande kontakter", + "discoveredContacts_searchHint": "Sök uppfunna kontakter", + "discoveredContacts_deleteContact": "Ta bort kontakt", + "discoveredContacts_Title": "Upptäckta kontakter", + "contactsSettings_overwriteOldestSubtitle": "När den är aktiverad kommer medhjälparen att skriva över den äldsta kontakten som inte är favoritmarkerad när kontaktnamnslistan är full", + "discoveredContacts_contactAdded": "Kontakt tillagd", + "discoveredContacts_addContact": "Lägg till kontakt", + "discoveredContacts_copyContact": "Kopiera kontakt till urklipp" } diff --git a/lib/l10n/app_uk.arb b/lib/l10n/app_uk.arb index c86f11c..733e4e5 100644 --- a/lib/l10n/app_uk.arb +++ b/lib/l10n/app_uk.arb @@ -1799,5 +1799,27 @@ "contacts_searchFavorites": "Пошук {number}{str} улюблених...", "contacts_searchContactsNoNumber": "Пошук контактів...", "contacts_searchRepeaters": "Пошук {number}{str} ретрансляторів...", - "contacts_unread": "Непрочитане" + "contacts_unread": "Непрочитане", + "settings_contactSettingsSubtitle": "Налаштування для додавання контактів", + "settings_contactSettings": "Налаштування контактів", + "contactsSettings_autoAddUsersSubtitle": "Дозволити супутникові автоматично додавати виявлених користувачів", + "contactsSettings_autoAddRepeatersTitle": "Автоматично додавати повторювачі", + "contactsSettings_autoAddRepeatersSubtitle": "Дозволити супутнику автоматично додавати виявлені ретранслятори", + "contactsSettings_autoAddRoomServersTitle": "Автоматично додавати сервери кімнат", + "contactsSettings_otherTitle": "Інші налаштування, пов'язані з контактами", + "contactsSettings_autoAddTitle": "Автоматичне виявлення", + "contactsSettings_autoAddUsersTitle": "Автоматично додавати користувачів", + "contactsSettings_title": "Налаштування контактів", + "contactsSettings_autoAddRoomServersSubtitle": "Дозволити супровіднику автоматично додавати виявлені сервери кімнат.", + "contactsSettings_autoAddSensorsTitle": "Автоматично додавати датчики", + "discoveredContacts_searchHint": "Знайти виявлені контакти", + "discoveredContacts_contactAdded": "Контакт додано", + "contactsSettings_autoAddSensorsSubtitle": "Дозволити супровіднику автоматично додавати виявлені сенсори", + "contactsSettings_overwriteOldestTitle": "Перезаписати найстаріше", + "contactsSettings_overwriteOldestSubtitle": "Коли увімкнено, супровід переганяє найстарший контакт, який не доданий до улюблених, коли список контактів повний.", + "discoveredContacts_Title": "Виявлені контакти", + "discoveredContacts_noMatching": "Відповідних контактів не знайдено", + "discoveredContacts_deleteContact": "Видалити контакт", + "discoveredContacts_copyContact": "Копіювати контакт у буфер обміну", + "discoveredContacts_addContact": "Додати контакт" } diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 63c02a5..d0abb87 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -1804,5 +1804,27 @@ "contacts_searchRepeaters": "搜索 {number}{str} 重复器...", "contacts_searchContactsNoNumber": "搜索联系人...", "contacts_searchRoomServers": "搜索 {number}{str} 房间服务器...", - "contacts_searchFavorites": "搜索 {number}{str} 收藏..." + "contacts_searchFavorites": "搜索 {number}{str} 收藏...", + "settings_contactSettings": "联系人设置", + "contactsSettings_title": "联系人设置", + "contactsSettings_autoAddUsersTitle": "自动添加用户", + "contactsSettings_otherTitle": "其他联系人相关设置", + "contactsSettings_autoAddUsersSubtitle": "允许伴侣自动添加发现的用户", + "contactsSettings_autoAddRepeatersSubtitle": "允许伴侣自动添加发现的重复器", + "contactsSettings_autoAddSensorsTitle": "自动添加传感器", + "contactsSettings_autoAddRoomServersSubtitle": "允许伴侣自动添加发现的房间服务器", + "contactsSettings_autoAddRepeatersTitle": "自动添加重复器", + "contactsSettings_autoAddTitle": "自动发现", + "settings_contactSettingsSubtitle": "添加联系人的设置", + "contactsSettings_overwriteOldestTitle": "覆盖最旧的", + "contactsSettings_autoAddSensorsSubtitle": "允许伴侣自动添加发现的传感器", + "discoveredContacts_searchHint": "搜索已发现的联系人", + "contactsSettings_autoAddRoomServersTitle": "自动添加房间服务器", + "discoveredContacts_contactAdded": "联系人已添加", + "discoveredContacts_deleteContact": "删除联系人", + "discoveredContacts_addContact": "添加联系人", + "discoveredContacts_noMatching": "没有匹配的联系人", + "discoveredContacts_Title": "已发现的联系人", + "contactsSettings_overwriteOldestSubtitle": "启用时,伴侣将在联系人列表满时覆盖最老的未收藏的联系人。", + "discoveredContacts_copyContact": "复制联系人到剪贴板" } diff --git a/lib/models/discovery_contact.dart b/lib/models/discovery_contact.dart index 54c2937..f6c6a52 100644 --- a/lib/models/discovery_contact.dart +++ b/lib/models/discovery_contact.dart @@ -2,6 +2,7 @@ import 'dart:typed_data'; import '../connector/meshcore_protocol.dart'; class DiscoveryContact { + final Uint8List rawPacket; final Uint8List publicKey; final String name; final int type; @@ -12,6 +13,7 @@ class DiscoveryContact { final DateTime lastSeen; DiscoveryContact({ + required this.rawPacket, required this.publicKey, required this.name, required this.type, @@ -48,6 +50,7 @@ class DiscoveryContact { bool get hasLocation => latitude != null && longitude != null; DiscoveryContact copyWith({ + Uint8List? rawPacket, Uint8List? publicKey, String? name, int? type, @@ -58,6 +61,7 @@ class DiscoveryContact { DateTime? lastSeen, }) { return DiscoveryContact( + rawPacket: rawPacket ?? this.rawPacket, publicKey: publicKey ?? this.publicKey, name: name ?? this.name, type: type ?? this.type, @@ -92,42 +96,6 @@ class DiscoveryContact { return "<${publicKeyHex.substring(0, 8)}...${publicKeyHex.substring(publicKeyHex.length - 8)}>"; } - Uint8List? get traceRouteBytes { - final pathBytes = path; - Uint8List? traceBytes; - - if (pathBytes.isEmpty) { - traceBytes = Uint8List(1); - traceBytes[0] = publicKey[0]; - return traceBytes; - } - - if (type == advTypeRepeater || type == advTypeRoom) { - final len = (pathBytes.length + pathBytes.length + 1); - traceBytes = Uint8List(len); - traceBytes[pathBytes.length] = publicKey[0]; - for (int i = 0; i < pathBytes.length; i++) { - traceBytes[i] = pathBytes[i]; - if (i < pathBytes.length) { - traceBytes[len - 1 - i] = pathBytes[i]; - } - } - } else { - if (pathBytes.length < 2) { - return pathBytes[0] == 0 ? null : pathBytes; - } - final len = (pathBytes.length + pathBytes.length - 1); - traceBytes = Uint8List(len); - for (int i = 0; i < pathBytes.length; i++) { - traceBytes[i] = pathBytes[i]; - if (i < pathBytes.length - 1) { - traceBytes[len - 1 - i] = pathBytes[i]; - } - } - } - return traceBytes; - } - @override bool operator ==(Object other) => other is DiscoveryContact && publicKeyHex == other.publicKeyHex; diff --git a/lib/screens/contacts_screen.dart b/lib/screens/contacts_screen.dart index 6e9f841..5753785 100644 --- a/lib/screens/contacts_screen.dart +++ b/lib/screens/contacts_screen.dart @@ -219,7 +219,8 @@ class _ContactsScreenState extends State } final hexString = text.substring('meshcore://'.length); try { - final importContactFrame = buildImportContactFrame(hexString); + final bytes = hex2Uint8List(hexString); + final importContactFrame = buildImportContactFrame(bytes); _pendingOperations.add(ContactOperationType.import); await connector.sendFrame(importContactFrame, expectsGenericAck: true); } catch (e) { diff --git a/lib/screens/discovery_screen.dart b/lib/screens/discovery_screen.dart index 10dc016..5cc9fa8 100644 --- a/lib/screens/discovery_screen.dart +++ b/lib/screens/discovery_screen.dart @@ -1,8 +1,7 @@ import 'dart:async'; -import 'dart:typed_data'; import 'package:flutter/material.dart'; -import 'package:meshcore_open/models/contact.dart'; +import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import '../connector/meshcore_connector.dart'; @@ -96,6 +95,11 @@ class _DiscoveryScreenState extends State { color: Colors.grey[600], ), ), + onTap: () { + connector.importDiscoveredContact(contact); + }, + onLongPress: () => + _showContactContextMenu(contact, connector), ); }, ), @@ -105,9 +109,64 @@ class _DiscoveryScreenState extends State { ); } - Widget _buildFilters(filteredAndSorted, connector) { - final l10n = context.l10n; + Future _showContactContextMenu( + DiscoveryContact contact, + MeshCoreConnector connector, + ) async { + final action = await showModalBottomSheet( + context: context, + showDragHandle: true, + builder: (sheetContext) { + final l10n = context.l10n; + return SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + ListTile( + leading: const Icon(Icons.add_reaction_sharp), + title: Text(l10n.discoveredContacts_addContact), + onTap: () => Navigator.of(sheetContext).pop('import_contact'), + ), + ListTile( + leading: const Icon(Icons.copy), + title: Text(l10n.discoveredContacts_copyContact), + onTap: () => Navigator.of(sheetContext).pop('copy_contact'), + ), + ListTile( + leading: const Icon(Icons.delete), + title: Text(l10n.discoveredContacts_deleteContact), + onTap: () => Navigator.of(sheetContext).pop('delete_contact'), + ), + ], + ), + ); + }, + ); + if (!mounted || action == null) return; + + switch (action) { + case 'import_contact': + connector.importDiscoveredContact(contact); + break; + case 'copy_contact': + final hexString = pubKeyToHex(contact.rawPacket); + Clipboard.setData(ClipboardData(text: "meshcore://$hexString")); + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(context.l10n.contacts_contactAdvertCopied)), + ); + break; + case 'delete_contact': + connector.removeDiscoveredContact(contact); + break; + } + } + + Widget _buildFilters( + List filteredAndSorted, + MeshCoreConnector connector, + ) { String hintText = ""; switch (typeFilter) { case ContactTypeFilter.all: @@ -216,6 +275,10 @@ class _DiscoveryScreenState extends State { return matchesDiscoveryContactQuery(contact, searchQuery); }).toList(); + filtered = filtered.where((contact) { + return !connector.knownContactKeys.contains(contact.publicKeyHex); + }).toList(); + // Filter out own node from the list if (connector.selfPublicKey != null) { final selfPubKeyHex = pubKeyToHex(connector.selfPublicKey!); diff --git a/lib/storage/contact_discovery_store.dart b/lib/storage/contact_discovery_store.dart index 84f7807..37bfbb4 100644 --- a/lib/storage/contact_discovery_store.dart +++ b/lib/storage/contact_discovery_store.dart @@ -30,6 +30,7 @@ class ContactDiscoveryStore { Map _toJson(DiscoveryContact contact) { return { + 'rawPacket': base64Encode(contact.rawPacket), 'publicKey': base64Encode(contact.publicKey), 'name': contact.name, 'type': contact.type, @@ -44,6 +45,7 @@ class ContactDiscoveryStore { DiscoveryContact _fromJson(Map json) { final lastSeenMs = json['lastSeen'] as int? ?? 0; return DiscoveryContact( + rawPacket: Uint8List.fromList(base64Decode(json['rawPacket'] as String)), publicKey: Uint8List.fromList(base64Decode(json['publicKey'] as String)), name: json['name'] as String? ?? 'Unknown', type: json['type'] as int? ?? 0,