mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-04-20 22:13:48 +00:00
localization: update room management strings in multiple languages and refactor room login handling
This commit is contained in:
parent
13f9c5058a
commit
30ba1799e1
15 changed files with 48 additions and 37 deletions
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 => 'Инструменти за управление';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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 => '管理工具';
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue