localization: update room management strings in multiple languages and refactor room login handling

This commit is contained in:
zjs81 2026-01-19 18:29:53 -07:00
parent 13f9c5058a
commit 30ba1799e1
15 changed files with 48 additions and 37 deletions

View file

@ -1349,6 +1349,6 @@
"channels_scanQrCodeComingSoon": "Bientôt disponible",
"channels_enterHashtag": "Entrez le hashtag",
"channels_hashtagHint": "ex. #équipe",
"contacts_manageRoom": "Gérer le serveur de la pièce {name}",
"contacts_manageRoom": "Gérer le serveur de salle",
"room_management": "Gestion du serveur de pièce"
}

View file

@ -651,7 +651,7 @@ class AppLocalizationsBg extends AppLocalizations {
String get contacts_manageRepeater => 'Управление на Повтарящ се Елемент';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Управление на сървър за стая';
@override
String get contacts_roomLogin => 'Вход в стаята';
@ -1591,7 +1591,7 @@ class AppLocalizationsBg extends AppLocalizations {
String get repeater_management => 'Управление на повторители';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Управление на сървъра за стая';
@override
String get repeater_managementTools => 'Инструменти за управление';

View file

@ -648,7 +648,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get contacts_manageRepeater => 'Wiederholungen verwalten';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Verwalten Sie den Raumserver';
@override
String get contacts_roomLogin => 'Raum-Login';
@ -1590,7 +1590,7 @@ class AppLocalizationsDe extends AppLocalizations {
String get repeater_management => 'Repeater-Verwaltung';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Raumserververwaltung';
@override
String get repeater_managementTools => 'Verwaltungs-Tools';

View file

@ -649,7 +649,7 @@ class AppLocalizationsEs extends AppLocalizations {
String get contacts_manageRepeater => 'Gestionar Repetidor';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Gestionar Servidor de Habitación';
@override
String get contacts_roomLogin => 'Inicio de Sala';
@ -1589,7 +1589,7 @@ class AppLocalizationsEs extends AppLocalizations {
String get repeater_management => 'Gestión de Repetidores';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Administración del Servidor de Habitación';
@override
String get repeater_managementTools => 'Herramientas de Gestión';

View file

@ -650,7 +650,7 @@ class AppLocalizationsFr extends AppLocalizations {
String get contacts_manageRepeater => 'Gérer le répétiteur';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Gérer le serveur de salle';
@override
String get contacts_roomLogin => 'Connexion Salle';
@ -1595,7 +1595,7 @@ class AppLocalizationsFr extends AppLocalizations {
String get repeater_management => 'Gestion des répétiteurs';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Gestion du serveur de pièce';
@override
String get repeater_managementTools => 'Outils de Gestion';

View file

@ -647,7 +647,7 @@ class AppLocalizationsIt extends AppLocalizations {
String get contacts_manageRepeater => 'Gestisci Ripetitore';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Gestisci Server Camera';
@override
String get contacts_roomLogin => 'Login Camera';
@ -1587,7 +1587,7 @@ class AppLocalizationsIt extends AppLocalizations {
String get repeater_management => 'Gestione Ripetitori';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Gestione del Server di Camera';
@override
String get repeater_managementTools => 'Strumenti di Gestione';

View file

@ -645,7 +645,7 @@ class AppLocalizationsNl extends AppLocalizations {
String get contacts_manageRepeater => 'Beheer Repeater';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Beheer Ruimte Server';
@override
String get contacts_roomLogin => 'Ruimte Inloggen';
@ -1582,7 +1582,7 @@ class AppLocalizationsNl extends AppLocalizations {
String get repeater_management => 'Beheer Repeaters';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Beheer Server Kamer';
@override
String get repeater_managementTools => 'Beheerinstrumenten';

View file

@ -650,7 +650,7 @@ class AppLocalizationsPl extends AppLocalizations {
String get contacts_manageRepeater => 'Zarządzaj Powtórzami';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Zarządzaj Serwerem Pokoju';
@override
String get contacts_roomLogin => 'Logowanie do pokoju';
@ -1591,7 +1591,7 @@ class AppLocalizationsPl extends AppLocalizations {
String get repeater_management => 'Zarządzanie Powtórzami';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Zarządzanie Serwerem Pokoju';
@override
String get repeater_managementTools => 'Narzędzia Zarządzania';

View file

@ -650,7 +650,7 @@ class AppLocalizationsPt extends AppLocalizations {
String get contacts_manageRepeater => 'Gerenciar Repetidor';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Gerenciar Servidor de Sala';
@override
String get contacts_roomLogin => 'Login no Quarto';
@ -1589,7 +1589,7 @@ class AppLocalizationsPt extends AppLocalizations {
String get repeater_management => 'Gerenciamento de Repetidor';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Gerenciamento de Servidor de Sala';
@override
String get repeater_managementTools => 'Ferramentas de Gerenciamento';

View file

@ -643,7 +643,7 @@ class AppLocalizationsSk extends AppLocalizations {
String get contacts_manageRepeater => 'Spravovať opakované zoznamy';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Spravovať server miestnosti';
@override
String get contacts_roomLogin => 'Prihlásenie do miestnosti';
@ -1584,7 +1584,7 @@ class AppLocalizationsSk extends AppLocalizations {
String get repeater_management => 'Správa opakérov';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Správa servera miestnosti';
@override
String get repeater_managementTools => 'Nástroje na správu';

View file

@ -645,7 +645,7 @@ class AppLocalizationsSl extends AppLocalizations {
String get contacts_manageRepeater => 'Upravljajte Ponovitve';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Upravljajte strežnik sobe';
@override
String get contacts_roomLogin => 'Vnos v sobo';
@ -1584,7 +1584,7 @@ class AppLocalizationsSl extends AppLocalizations {
String get repeater_management => 'Upravljanje ponovitve';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Upravljanje stremlišča';
@override
String get repeater_managementTools => 'Upravne orodje';

View file

@ -639,7 +639,7 @@ class AppLocalizationsSv extends AppLocalizations {
String get contacts_manageRepeater => 'Hantera Upprepare';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => 'Hantera Rumserver';
@override
String get contacts_roomLogin => 'Rum Inloggning';
@ -1573,7 +1573,7 @@ class AppLocalizationsSv extends AppLocalizations {
String get repeater_management => 'Återuppspelarens Hantering';
@override
String get room_management => 'Room Server Management';
String get room_management => 'Rumserverhantering';
@override
String get repeater_managementTools => 'Administrationsverktyg';

View file

@ -612,7 +612,7 @@ class AppLocalizationsZh extends AppLocalizations {
String get contacts_manageRepeater => '管理重复项';
@override
String get contacts_manageRoom => 'Manage Room Server';
String get contacts_manageRoom => '管理房间服务器';
@override
String get contacts_roomLogin => '房间登录';
@ -1517,7 +1517,7 @@ class AppLocalizationsZh extends AppLocalizations {
String get repeater_management => '重复器管理';
@override
String get room_management => 'Room Server Management';
String get room_management => '房间服务器管理';
@override
String get repeater_managementTools => '管理工具';

View file

@ -1349,6 +1349,6 @@
"channels_scanQrCodeComingSoon": "Em breve",
"channels_enterHashtag": "Insira hashtag",
"channels_hashtagHint": "ex. #equipe",
"contacts_manageRoom": "Gerenciar Servidor de Sala {name} ({count})",
"contacts_manageRoom": "Gerenciar Servidor de Sala",
"room_management": "Gerenciamento de Servidor de Sala"
}

View file

@ -27,6 +27,11 @@ import 'map_screen.dart';
import 'repeater_hub_screen.dart';
import 'settings_screen.dart';
enum RoomLoginDestination {
chat,
management,
}
class ContactsScreen extends StatefulWidget {
final bool hideBackButton;
@ -277,8 +282,9 @@ class _ContactsScreenState extends State<ContactsScreen>
if (group.name.toLowerCase().contains(query)) return true;
for (final key in group.memberKeys) {
final contact = contactsByKey[key];
if (contact != null && matchesContactQuery(contact, query))
if (contact != null && matchesContactQuery(contact, query)) {
return true;
}
}
return false;
})
@ -422,7 +428,7 @@ class _ContactsScreenState extends State<ContactsScreen>
if (contact.type == advTypeRepeater) {
_showRepeaterLogin(context, contact);
} else if (contact.type == advTypeRoom) {
_showRoomLogin(context, contact, false);
_showRoomLogin(context, contact, RoomLoginDestination.chat);
} else {
context.read<MeshCoreConnector>().markContactRead(contact.publicKeyHex);
Navigator.push(
@ -469,18 +475,21 @@ class _ContactsScreenState extends State<ContactsScreen>
);
}
void _showRoomLogin(BuildContext context, Contact room, bool settings) {
void _showRoomLogin(
BuildContext context,
Contact room,
RoomLoginDestination destination,
) {
showDialog(
context: context,
builder: (context) => RoomLoginDialog(
room: room,
onLogin: (password) {
// Navigate to chat screen after successful login
context.read<MeshCoreConnector>().markContactRead(room.publicKeyHex);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => settings
builder: (context) => destination == RoomLoginDestination.management
? RepeaterHubScreen(repeater: room, password: password)
: ChatScreen(contact: room),
),
@ -745,7 +754,7 @@ class _ContactsScreenState extends State<ContactsScreen>
children: [
if (isRepeater)
ListTile(
leading: const Icon(Icons.settings, color: Colors.orange),
leading: const Icon(Icons.cell_tower, color: Colors.orange),
title: Text(context.l10n.contacts_manageRepeater),
onTap: () {
Navigator.pop(sheetContext);
@ -758,15 +767,15 @@ class _ContactsScreenState extends State<ContactsScreen>
title: Text(context.l10n.contacts_roomLogin),
onTap: () {
Navigator.pop(sheetContext);
_showRoomLogin(context, contact, false);
_showRoomLogin(context, contact, RoomLoginDestination.chat);
},
),
ListTile(
leading: const Icon(Icons.settings, color: Colors.orange),
leading: const Icon(Icons.room_preferences, color: Colors.orange),
title: Text(context.l10n.room_management),
onTap: () {
Navigator.pop(sheetContext);
_showRoomLogin(context, contact, true);
_showRoomLogin(context, contact, RoomLoginDestination.management);
},
),
] else
@ -917,10 +926,12 @@ class _ContactTile extends StatelessWidget {
final now = DateTime.now();
final diff = now.difference(lastSeen);
if (diff.isNegative || diff.inMinutes < 5)
if (diff.isNegative || diff.inMinutes < 5) {
return context.l10n.contacts_lastSeenNow;
if (diff.inMinutes < 60)
}
if (diff.inMinutes < 60) {
return context.l10n.contacts_lastSeenMinsAgo(diff.inMinutes);
}
if (diff.inHours < 24) {
final hours = diff.inHours;
return hours == 1