From e139383335cfe71cf5057ef9ef0e8aaaeb64ee7a Mon Sep 17 00:00:00 2001 From: Winston Lowe Date: Thu, 26 Feb 2026 22:53:52 -0800 Subject: [PATCH] Add localized search functionality for contacts (#244) - Introduced new localization keys for searching contacts, users, favorites, repeaters, and room servers in multiple languages. - Updated localization files for Italian, Bulgarian, German, English, Spanish, French, Dutch, Polish, Portuguese, Russian, Slovak, Slovenian, Swedish, Ukrainian, and Chinese. - Enhanced the contacts screen to dynamically display search hints based on the selected contact type filter. - Modified the map screen to utilize the new search functionality for contacts without a number. --- lib/l10n/app_bg.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_de.arb | 56 +++++++++++++++++++++++++++-- lib/l10n/app_en.arb | 58 +++++++++++++++++++++++++++++- lib/l10n/app_es.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_fr.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_it.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_localizations.dart | 40 +++++++++++++++++++-- lib/l10n/app_localizations_bg.dart | 30 +++++++++++++++- lib/l10n/app_localizations_de.dart | 30 +++++++++++++++- lib/l10n/app_localizations_en.dart | 30 +++++++++++++++- lib/l10n/app_localizations_es.dart | 30 +++++++++++++++- lib/l10n/app_localizations_fr.dart | 30 +++++++++++++++- lib/l10n/app_localizations_it.dart | 30 +++++++++++++++- lib/l10n/app_localizations_nl.dart | 30 +++++++++++++++- lib/l10n/app_localizations_pl.dart | 30 +++++++++++++++- lib/l10n/app_localizations_pt.dart | 30 +++++++++++++++- lib/l10n/app_localizations_ru.dart | 30 +++++++++++++++- lib/l10n/app_localizations_sk.dart | 30 +++++++++++++++- lib/l10n/app_localizations_sl.dart | 30 +++++++++++++++- lib/l10n/app_localizations_sv.dart | 30 +++++++++++++++- lib/l10n/app_localizations_uk.dart | 30 +++++++++++++++- lib/l10n/app_localizations_zh.dart | 30 +++++++++++++++- lib/l10n/app_nl.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_pl.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_pt.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_ru.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_sk.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_sl.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_sv.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_uk.arb | 48 ++++++++++++++++++++++++- lib/l10n/app_zh.arb | 48 ++++++++++++++++++++++++- lib/screens/contacts_screen.dart | 37 ++++++++++++++++++- lib/screens/map_screen.dart | 3 +- 33 files changed, 1233 insertions(+), 35 deletions(-) diff --git a/lib/l10n/app_bg.arb b/lib/l10n/app_bg.arb index 3613e85..975e067 100644 --- a/lib/l10n/app_bg.arb +++ b/lib/l10n/app_bg.arb @@ -1753,5 +1753,51 @@ }, "listFilter_removeFromFavorites": "Премахване от списъка с любими", "listFilter_addToFavorites": "Добави към любими", - "listFilter_favorites": "Любими" + "listFilter_favorites": "Любими", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchFavorites": "Търсене на {number}{str} любими...", + "contacts_searchRoomServers": "Търсене на {number}{str} сървъри в стаята...", + "contacts_unread": "Непрочетено", + "contacts_searchRepeaters": "Търсене на {number}{str} повтарящи се...", + "contacts_searchContactsNoNumber": "Търси контакти...", + "contacts_searchUsers": "Търсене на {number}{str} потребители..." } diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 64e8cd3..74b6c05 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -1,6 +1,12 @@ { "channels_channelDeleteFailed": "Kanal {name} konnte nicht gelöscht werden", - "@channels_channelDeleteFailed": { "placeholders": { "name": { "type": "String" } } }, + "@channels_channelDeleteFailed": { + "placeholders": { + "name": { + "type": "String" + } + } + }, "@@locale": "de", "appTitle": "MeshCore Open", "nav_contacts": "Kontakte", @@ -1775,5 +1781,51 @@ "type": "double" } } - } + }, + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_unread": "Ungelesen", + "contacts_searchContactsNoNumber": "Kontakte suchen...", + "contacts_searchRepeaters": "Suche {number}{str} Repeater...", + "contacts_searchFavorites": "Suche {number}{str} Favoriten...", + "contacts_searchUsers": "Suche {number}{str} Benutzer...", + "contacts_searchRoomServers": "Suche {number}{str} Raumserver..." } diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 8d9f385..175c346 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -268,7 +268,63 @@ "contacts_title": "Contacts", "contacts_noContacts": "No contacts yet", "contacts_contactsWillAppear": "Contacts will appear when devices advertise", - "contacts_searchContacts": "Search contacts...", + "contacts_unread": "Unread", + "contacts_searchContactsNoNumber": "Search Contacts...", + "contacts_searchContacts": "Search {number}{str} Contacts...", + "@contacts_searchContacts": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchFavorites": "Search {number}{str} Favorites...", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchUsers": "Search {number}{str} Users...", + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchRepeaters": "Search {number}{str} Repeaters...", + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchRoomServers": "Search {number}{str} Room servers...", + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, "contacts_noUnreadContacts": "No unread contacts", "contacts_noContactsFound": "No contacts or groups found", "contacts_deleteContact": "Delete Contact", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index dd8ce6c..74339ff 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -1781,5 +1781,51 @@ }, "listFilter_favorites": "Favoritos", "listFilter_removeFromFavorites": "Eliminar de las favoritas", - "listFilter_addToFavorites": "Añadir a favoritos" + "listFilter_addToFavorites": "Añadir a favoritos", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchContactsNoNumber": "Buscar contactos...", + "contacts_unread": "No leído", + "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..." } diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index fe738f7..0697aee 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -1753,5 +1753,51 @@ }, "listFilter_addToFavorites": "Ajouter à mes favoris", "listFilter_removeFromFavorites": "Supprimer des favoris", - "listFilter_favorites": "Préférences" + "listFilter_favorites": "Préférences", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_unread": "Non lu", + "contacts_searchFavorites": "Rechercher {number}{str} Favoris...", + "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..." } diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index d6c02f0..4798d26 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -1753,5 +1753,51 @@ }, "listFilter_addToFavorites": "Aggiungi ai preferiti", "listFilter_removeFromFavorites": "Rimuovi dai preferiti", - "listFilter_favorites": "Preferiti" + "listFilter_favorites": "Preferiti", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchUsers": "Cerca {number}{str} Utenti...", + "contacts_searchContactsNoNumber": "Cerca Contatti...", + "contacts_searchFavorites": "Cerca {number}{str} Preferiti...", + "contacts_unread": "Non letti", + "contacts_searchRepeaters": "Cerca {number}{str} Ripetitori...", + "contacts_searchRoomServers": "Cerca {number}{str} server Room..." } diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index d64cdb0..ff2c726 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -1336,11 +1336,47 @@ abstract class AppLocalizations { /// **'Contacts will appear when devices advertise'** String get contacts_contactsWillAppear; + /// No description provided for @contacts_unread. + /// + /// In en, this message translates to: + /// **'Unread'** + String get contacts_unread; + + /// No description provided for @contacts_searchContactsNoNumber. + /// + /// In en, this message translates to: + /// **'Search Contacts...'** + String get contacts_searchContactsNoNumber; + /// No description provided for @contacts_searchContacts. /// /// In en, this message translates to: - /// **'Search contacts...'** - String get contacts_searchContacts; + /// **'Search {number}{str} Contacts...'** + String contacts_searchContacts(int number, String str); + + /// No description provided for @contacts_searchFavorites. + /// + /// In en, this message translates to: + /// **'Search {number}{str} Favorites...'** + String contacts_searchFavorites(int number, String str); + + /// No description provided for @contacts_searchUsers. + /// + /// In en, this message translates to: + /// **'Search {number}{str} Users...'** + String contacts_searchUsers(int number, String str); + + /// No description provided for @contacts_searchRepeaters. + /// + /// In en, this message translates to: + /// **'Search {number}{str} Repeaters...'** + String contacts_searchRepeaters(int number, String str); + + /// No description provided for @contacts_searchRoomServers. + /// + /// In en, this message translates to: + /// **'Search {number}{str} Room servers...'** + String contacts_searchRoomServers(int number, String str); /// No description provided for @contacts_noUnreadContacts. /// diff --git a/lib/l10n/app_localizations_bg.dart b/lib/l10n/app_localizations_bg.dart index f9637aa..da7ddc9 100644 --- a/lib/l10n/app_localizations_bg.dart +++ b/lib/l10n/app_localizations_bg.dart @@ -681,7 +681,35 @@ class AppLocalizationsBg extends AppLocalizations { 'Контактите ще се появят, когато устройствата рекламират.'; @override - String get contacts_searchContacts => 'Търсене на контакти...'; + String get contacts_unread => 'Непрочетено'; + + @override + String get contacts_searchContactsNoNumber => 'Търси контакти...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Търсене на контакти...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Търсене на $number$str любими...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Търсене на $number$str потребители...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Търсене на $number$str повтарящи се...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Търсене на $number$str сървъри в стаята...'; + } @override String get contacts_noUnreadContacts => 'Няма непрочетени контакти'; diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index 1574281..228ffe7 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -677,7 +677,35 @@ class AppLocalizationsDe extends AppLocalizations { 'Kontakte werden angezeigt, wenn Geräte eine Ankündigung machen.'; @override - String get contacts_searchContacts => 'Suche Kontakte...'; + String get contacts_unread => 'Ungelesen'; + + @override + String get contacts_searchContactsNoNumber => 'Kontakte suchen...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Suche Kontakte...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Suche $number$str Favoriten...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Suche $number$str Benutzer...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Suche $number$str Repeater...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Suche $number$str Raumserver...'; + } @override String get contacts_noUnreadContacts => 'Keine ungesehene Kontakte'; diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 039ad22..70b3393 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -670,7 +670,35 @@ class AppLocalizationsEn extends AppLocalizations { 'Contacts will appear when devices advertise'; @override - String get contacts_searchContacts => 'Search contacts...'; + String get contacts_unread => 'Unread'; + + @override + String get contacts_searchContactsNoNumber => 'Search Contacts...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Search $number$str Contacts...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Search $number$str Favorites...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Search $number$str Users...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Search $number$str Repeaters...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Search $number$str Room servers...'; + } @override String get contacts_noUnreadContacts => 'No unread contacts'; diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index 8961b18..876666b 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -678,7 +678,35 @@ class AppLocalizationsEs extends AppLocalizations { 'Los contactos aparecerán cuando los dispositivos anuncien.'; @override - String get contacts_searchContacts => 'Buscar contactos...'; + String get contacts_unread => 'No leído'; + + @override + String get contacts_searchContactsNoNumber => 'Buscar contactos...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Buscar contactos...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Buscar $number$str Favoritos...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Buscar $number$str Usuarios...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Buscar $number$str Repetidores...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Buscar $number$str servidores de sala...'; + } @override String get contacts_noUnreadContacts => 'No contactos sin leer'; diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index 3737f46..0c11eac 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -681,7 +681,35 @@ class AppLocalizationsFr extends AppLocalizations { 'Les contacts apparaîtront lorsque les appareils font leur annonce.'; @override - String get contacts_searchContacts => 'Rechercher des contacts...'; + String get contacts_unread => 'Non lu'; + + @override + String get contacts_searchContactsNoNumber => 'Rechercher des contacts...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Rechercher des contacts...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Rechercher $number$str Favoris...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Rechercher $number$str utilisateurs...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Rechercher $number$str Répéteurs...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Rechercher $number$str serveurs de salle...'; + } @override String get contacts_noUnreadContacts => 'Aucun contact non lu'; diff --git a/lib/l10n/app_localizations_it.dart b/lib/l10n/app_localizations_it.dart index b64ec6d..8a8fe71 100644 --- a/lib/l10n/app_localizations_it.dart +++ b/lib/l10n/app_localizations_it.dart @@ -677,7 +677,35 @@ class AppLocalizationsIt extends AppLocalizations { 'I contatti appariranno quando i dispositivi pubblicizzano.'; @override - String get contacts_searchContacts => 'Cerca contatti...'; + String get contacts_unread => 'Non letti'; + + @override + String get contacts_searchContactsNoNumber => 'Cerca Contatti...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Cerca contatti...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Cerca $number$str Preferiti...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Cerca $number$str Utenti...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Cerca $number$str Ripetitori...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Cerca $number$str server Room...'; + } @override String get contacts_noUnreadContacts => 'Nessun contatto non letto'; diff --git a/lib/l10n/app_localizations_nl.dart b/lib/l10n/app_localizations_nl.dart index 523cd6e..8b4eee5 100644 --- a/lib/l10n/app_localizations_nl.dart +++ b/lib/l10n/app_localizations_nl.dart @@ -674,7 +674,35 @@ class AppLocalizationsNl extends AppLocalizations { 'Contacten verschijnen wanneer apparaten zich aanbieden.'; @override - String get contacts_searchContacts => 'Zoek contacten...'; + String get contacts_unread => 'Ongelezen'; + + @override + String get contacts_searchContactsNoNumber => 'Zoek contacten...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Zoek contacten...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Zoek $number$str favorieten...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Zoek $number$str gebruikers...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Zoek $number$str Repeaters...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Zoek $number$str Room servers...'; + } @override String get contacts_noUnreadContacts => 'Geen ongelezen contacten'; diff --git a/lib/l10n/app_localizations_pl.dart b/lib/l10n/app_localizations_pl.dart index 1639600..cff6010 100644 --- a/lib/l10n/app_localizations_pl.dart +++ b/lib/l10n/app_localizations_pl.dart @@ -678,7 +678,35 @@ class AppLocalizationsPl extends AppLocalizations { 'Kontakty będą wyświetlane, gdy urządzenia reklamują się.'; @override - String get contacts_searchContacts => 'Wyszukaj kontakty...'; + String get contacts_unread => 'Nieprzeczytane'; + + @override + String get contacts_searchContactsNoNumber => 'Wyszukaj kontakty...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Wyszukaj kontakty...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Wyszukaj $number$str ulubione...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Wyszukaj $number$str Użytkowników...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Wyszukaj $number$str powtórników...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Wyszukaj $number$str serwerów Room...'; + } @override String get contacts_noUnreadContacts => 'Brak nieprzeczytanych kontaktów'; diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart index c59a4f5..831d47a 100644 --- a/lib/l10n/app_localizations_pt.dart +++ b/lib/l10n/app_localizations_pt.dart @@ -679,7 +679,35 @@ class AppLocalizationsPt extends AppLocalizations { 'Os contatos serão exibidos quando os dispositivos anunciarem.'; @override - String get contacts_searchContacts => 'Pesquisar contatos...'; + String get contacts_unread => 'Não lido'; + + @override + String get contacts_searchContactsNoNumber => 'Pesquisar Contatos...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Pesquisar contatos...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Pesquisar $number$str Favoritos...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Pesquisar $number$str Usuários...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Pesquisar $number$str Repetidores...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Pesquisar $number$str servidores de sala...'; + } @override String get contacts_noUnreadContacts => 'Sem contatos não lidos.'; diff --git a/lib/l10n/app_localizations_ru.dart b/lib/l10n/app_localizations_ru.dart index 69d6044..5c73e3e 100644 --- a/lib/l10n/app_localizations_ru.dart +++ b/lib/l10n/app_localizations_ru.dart @@ -678,7 +678,35 @@ class AppLocalizationsRu extends AppLocalizations { 'Контакты появятся, когда устройства начнут рассылать оповещения'; @override - String get contacts_searchContacts => 'Поиск контактов...'; + String get contacts_unread => 'Непрочитанное'; + + @override + String get contacts_searchContactsNoNumber => 'Поиск контактов...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Поиск контактов...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Поиск $number$str избранного...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Поиск $number$str пользователей...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Поиск $number$str ретрансляторов...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Поиск $number$str серверов комнат...'; + } @override String get contacts_noUnreadContacts => 'Нет непрочитанных контактов'; diff --git a/lib/l10n/app_localizations_sk.dart b/lib/l10n/app_localizations_sk.dart index 17cbd7b..b4f28fb 100644 --- a/lib/l10n/app_localizations_sk.dart +++ b/lib/l10n/app_localizations_sk.dart @@ -671,7 +671,35 @@ class AppLocalizationsSk extends AppLocalizations { 'Kontakty sa zobrazia, keď zariadenia spúšťajú reklamu.'; @override - String get contacts_searchContacts => 'Vyhľadávajte kontakty...'; + String get contacts_unread => 'Neprečítané'; + + @override + String get contacts_searchContactsNoNumber => 'Hľadať kontakty...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Vyhľadávajte kontakty...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Hľadať $number$str obľúbené...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Hľadať $number$str používateľov...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Hľadať $number$str opakovače...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Hľadaj $number$str serverov miestností...'; + } @override String get contacts_noUnreadContacts => 'Žiadne neprečítané kontakty'; diff --git a/lib/l10n/app_localizations_sl.dart b/lib/l10n/app_localizations_sl.dart index 6478b2b..e015e45 100644 --- a/lib/l10n/app_localizations_sl.dart +++ b/lib/l10n/app_localizations_sl.dart @@ -672,7 +672,35 @@ class AppLocalizationsSl extends AppLocalizations { 'Stiki se bodo prikazali, ko se naprave oglasijo.'; @override - String get contacts_searchContacts => 'Iskanje stikov...'; + String get contacts_unread => 'Neprebrano'; + + @override + String get contacts_searchContactsNoNumber => 'Iskanje stikov...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Iskanje stikov...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Iskanje $number$str priljubljenih...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Išči $number$str uporabnikov...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Išči $number$str ponavljalnike...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Išči $number$str strežnikov sob...'; + } @override String get contacts_noUnreadContacts => 'Ne prebrani stiki.'; diff --git a/lib/l10n/app_localizations_sv.dart b/lib/l10n/app_localizations_sv.dart index 54b998d..3a25c3c 100644 --- a/lib/l10n/app_localizations_sv.dart +++ b/lib/l10n/app_localizations_sv.dart @@ -667,7 +667,35 @@ class AppLocalizationsSv extends AppLocalizations { 'Kontakter kommer att visas när enheter annonserar.'; @override - String get contacts_searchContacts => 'Sök kontakter...'; + String get contacts_unread => 'Oläst'; + + @override + String get contacts_searchContactsNoNumber => 'Sök kontakter...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Sök kontakter...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Sök $number$str Favoriter...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Sök $number$str användare...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Sök $number$str upprepningsenheter...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Sök $number$str Room-servrar...'; + } @override String get contacts_noUnreadContacts => 'Inga oinlästa kontakter'; diff --git a/lib/l10n/app_localizations_uk.dart b/lib/l10n/app_localizations_uk.dart index e3564f1..cd820cf 100644 --- a/lib/l10n/app_localizations_uk.dart +++ b/lib/l10n/app_localizations_uk.dart @@ -676,7 +676,35 @@ class AppLocalizationsUk extends AppLocalizations { 'Контакти з\'являться, коли пристрої надішлють оголошення.'; @override - String get contacts_searchContacts => 'Пошук контактів...'; + String get contacts_unread => 'Непрочитане'; + + @override + String get contacts_searchContactsNoNumber => 'Пошук контактів...'; + + @override + String contacts_searchContacts(int number, String str) { + return 'Пошук контактів...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return 'Пошук $number$str улюблених...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return 'Пошук $number$str користувачів...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return 'Пошук $number$str ретрансляторів...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return 'Пошук $number$str серверів кімнат...'; + } @override String get contacts_noUnreadContacts => 'Немає непрочитаних контактів'; diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart index b55c376..b63f714 100644 --- a/lib/l10n/app_localizations_zh.dart +++ b/lib/l10n/app_localizations_zh.dart @@ -636,7 +636,35 @@ class AppLocalizationsZh extends AppLocalizations { String get contacts_contactsWillAppear => '当设备发送广播时,联系人将显示。'; @override - String get contacts_searchContacts => '搜索联系人...'; + String get contacts_unread => '未读'; + + @override + String get contacts_searchContactsNoNumber => '搜索联系人...'; + + @override + String contacts_searchContacts(int number, String str) { + return '搜索联系人...'; + } + + @override + String contacts_searchFavorites(int number, String str) { + return '搜索 $number$str 收藏...'; + } + + @override + String contacts_searchUsers(int number, String str) { + return '搜索 $number$str 位用户...'; + } + + @override + String contacts_searchRepeaters(int number, String str) { + return '搜索 $number$str 重复器...'; + } + + @override + String contacts_searchRoomServers(int number, String str) { + return '搜索 $number$str 房间服务器...'; + } @override String get contacts_noUnreadContacts => '没有未读内容'; diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index fee1f22..69ebecc 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -1753,5 +1753,51 @@ }, "listFilter_removeFromFavorites": "Verwijderen uit favorieten", "listFilter_favorites": "Favorieten", - "listFilter_addToFavorites": "Toevoegen aan favorieten" + "listFilter_addToFavorites": "Toevoegen aan favorieten", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_unread": "Ongelezen", + "contacts_searchRepeaters": "Zoek {number}{str} Repeaters...", + "contacts_searchContactsNoNumber": "Zoek contacten...", + "contacts_searchUsers": "Zoek {number}{str} gebruikers...", + "contacts_searchFavorites": "Zoek {number}{str} favorieten...", + "contacts_searchRoomServers": "Zoek {number}{str} Room servers..." } diff --git a/lib/l10n/app_pl.arb b/lib/l10n/app_pl.arb index 8096bb4..75e1d34 100644 --- a/lib/l10n/app_pl.arb +++ b/lib/l10n/app_pl.arb @@ -1753,5 +1753,51 @@ }, "listFilter_removeFromFavorites": "Usuń z ulubionych", "listFilter_addToFavorites": "Dodaj do ulubionych", - "listFilter_favorites": "Ulubione" + "listFilter_favorites": "Ulubione", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_unread": "Nieprzeczytane", + "contacts_searchContactsNoNumber": "Wyszukaj kontakty...", + "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..." } diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index 53f8f93..f6ada19 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -1753,5 +1753,51 @@ }, "listFilter_addToFavorites": "Adicionar aos favoritos", "listFilter_removeFromFavorites": "Remover da lista de favoritos", - "listFilter_favorites": "Favoritos" + "listFilter_favorites": "Favoritos", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchRepeaters": "Pesquisar {number}{str} Repetidores...", + "contacts_searchFavorites": "Pesquisar {number}{str} Favoritos...", + "contacts_searchUsers": "Pesquisar {number}{str} Usuários...", + "contacts_searchContactsNoNumber": "Pesquisar Contatos...", + "contacts_unread": "Não lido", + "contacts_searchRoomServers": "Pesquisar {number}{str} servidores de sala..." } diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index b4d7b59..9aef298 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -993,5 +993,51 @@ }, "listFilter_addToFavorites": "Добавить в избранное", "listFilter_favorites": "Избранное", - "listFilter_removeFromFavorites": "Удалить из избранного" + "listFilter_removeFromFavorites": "Удалить из избранного", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchRepeaters": "Поиск {number}{str} ретрансляторов...", + "contacts_searchContactsNoNumber": "Поиск контактов...", + "contacts_unread": "Непрочитанное", + "contacts_searchRoomServers": "Поиск {number}{str} серверов комнат...", + "contacts_searchFavorites": "Поиск {number}{str} избранного...", + "contacts_searchUsers": "Поиск {number}{str} пользователей..." } diff --git a/lib/l10n/app_sk.arb b/lib/l10n/app_sk.arb index 23a0aea..672b7d7 100644 --- a/lib/l10n/app_sk.arb +++ b/lib/l10n/app_sk.arb @@ -1753,5 +1753,51 @@ }, "listFilter_removeFromFavorites": "Odstrániť z označení", "listFilter_addToFavorites": "Pridaj do obľúbených", - "listFilter_favorites": "Obľúbené" + "listFilter_favorites": "Obľúbené", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchRoomServers": "Hľadaj {number}{str} serverov miestností...", + "contacts_searchFavorites": "Hľadať {number}{str} obľúbené...", + "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é" } diff --git a/lib/l10n/app_sl.arb b/lib/l10n/app_sl.arb index 6b64f68..09359a1 100644 --- a/lib/l10n/app_sl.arb +++ b/lib/l10n/app_sl.arb @@ -1753,5 +1753,51 @@ }, "listFilter_favorites": "Priljubljene", "listFilter_removeFromFavorites": "Odstrani iz priljubljenih", - "listFilter_addToFavorites": "Dodaj v priljubljene" + "listFilter_addToFavorites": "Dodaj v priljubljene", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_unread": "Neprebrano", + "contacts_searchFavorites": "Iskanje {number}{str} priljubljenih...", + "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..." } diff --git a/lib/l10n/app_sv.arb b/lib/l10n/app_sv.arb index 3b96df7..a923cc9 100644 --- a/lib/l10n/app_sv.arb +++ b/lib/l10n/app_sv.arb @@ -1753,5 +1753,51 @@ }, "listFilter_removeFromFavorites": "Ta bort från favoriter", "listFilter_addToFavorites": "Lägg till i favoriter", - "listFilter_favorites": "Favoriter" + "listFilter_favorites": "Favoriter", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_unread": "Oläst", + "contacts_searchContactsNoNumber": "Sök kontakter...", + "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..." } diff --git a/lib/l10n/app_uk.arb b/lib/l10n/app_uk.arb index 78b4a90..c86f11c 100644 --- a/lib/l10n/app_uk.arb +++ b/lib/l10n/app_uk.arb @@ -1753,5 +1753,51 @@ }, "listFilter_removeFromFavorites": "Видалити зі списку улюблених", "listFilter_addToFavorites": "Додати до улюблених", - "listFilter_favorites": "Улюблені" + "listFilter_favorites": "Улюблені", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchRoomServers": "Пошук {number}{str} серверів кімнат...", + "contacts_searchUsers": "Пошук {number}{str} користувачів...", + "contacts_searchFavorites": "Пошук {number}{str} улюблених...", + "contacts_searchContactsNoNumber": "Пошук контактів...", + "contacts_searchRepeaters": "Пошук {number}{str} ретрансляторів...", + "contacts_unread": "Непрочитане" } diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 6b8fc09..63c02a5 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -1758,5 +1758,51 @@ }, "listFilter_favorites": "收藏", "listFilter_addToFavorites": "添加到收藏", - "listFilter_removeFromFavorites": "从收藏中移除" + "listFilter_removeFromFavorites": "从收藏中移除", + "@contacts_searchFavorites": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchUsers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRepeaters": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "@contacts_searchRoomServers": { + "placeholders": { + "number": { + "type": "int" + }, + "str": { + "type": "String" + } + } + }, + "contacts_searchUsers": "搜索 {number}{str} 位用户...", + "contacts_unread": "未读", + "contacts_searchRepeaters": "搜索 {number}{str} 重复器...", + "contacts_searchContactsNoNumber": "搜索联系人...", + "contacts_searchRoomServers": "搜索 {number}{str} 房间服务器...", + "contacts_searchFavorites": "搜索 {number}{str} 收藏..." } diff --git a/lib/screens/contacts_screen.dart b/lib/screens/contacts_screen.dart index 6c683cc..eeecfb9 100644 --- a/lib/screens/contacts_screen.dart +++ b/lib/screens/contacts_screen.dart @@ -402,6 +402,41 @@ class _ContactsScreenState extends State ? const [] : _filterAndSortGroups(_groups, contacts); + String hintText = ""; + + switch (_typeFilter) { + case ContactTypeFilter.all: + hintText = context.l10n.contacts_searchContacts( + filteredAndSorted.length, + _showUnreadOnly ? " ${context.l10n.contacts_unread}" : "", + ); + break; + case ContactTypeFilter.users: + hintText = context.l10n.contacts_searchUsers( + filteredAndSorted.length, + _showUnreadOnly ? " ${context.l10n.contacts_unread}" : "", + ); + break; + case ContactTypeFilter.repeaters: + hintText = context.l10n.contacts_searchRepeaters( + filteredAndSorted.length, + _showUnreadOnly ? " ${context.l10n.contacts_unread}" : "", + ); + break; + case ContactTypeFilter.rooms: + hintText = context.l10n.contacts_searchRoomServers( + filteredAndSorted.length, + _showUnreadOnly ? " ${context.l10n.contacts_unread}" : "", + ); + break; + case ContactTypeFilter.favorites: + hintText = context.l10n.contacts_searchFavorites( + filteredAndSorted.length, + _showUnreadOnly ? " ${context.l10n.contacts_unread}" : "", + ); + break; + } + return Column( children: [ Padding( @@ -409,7 +444,7 @@ class _ContactsScreenState extends State child: TextField( controller: _searchController, decoration: InputDecoration( - hintText: context.l10n.contacts_searchContacts, + hintText: hintText, prefixIcon: const Icon(Icons.search), suffixIcon: Row( mainAxisSize: MainAxisSize.min, diff --git a/lib/screens/map_screen.dart b/lib/screens/map_screen.dart index b688a30..2ec71a0 100644 --- a/lib/screens/map_screen.dart +++ b/lib/screens/map_screen.dart @@ -1301,7 +1301,8 @@ class _MapScreenState extends State { padding: const EdgeInsets.fromLTRB(16, 4, 16, 8), child: TextField( decoration: InputDecoration( - hintText: context.l10n.contacts_searchContacts, + hintText: + context.l10n.contacts_searchContactsNoNumber, prefixIcon: const Icon(Icons.search), border: OutlineInputBorder( borderRadius: BorderRadius.circular(12),