aplicadas correcciones

This commit is contained in:
2026-05-10 22:53:41 +02:00
parent 12af58d828
commit fa7901019f
42 changed files with 2708 additions and 76 deletions

View File

@@ -220,5 +220,39 @@
"about": "حول التطبيق",
"version": "الإصدار",
"developer": "المطوّر",
"licenses": "التراخيص"
"licenses": "التراخيص",
"scanThisCodeFromAnotherPhone": "امسح هذا الرمز من هاتف آخر",
"gameUsers": "مستخدمو اللعبة",
"selectedPlayers": "اللاعبون المحددون",
"connectedPhones": "الهواتف المتصلة",
"selectedOnThisPhone": "محدد على هذا الهاتف",
"selectedByAnotherDevice": "محدد على جهاز آخر",
"available": "متاح",
"notAvailable": "غير متاح",
"release": "تحرير",
"select": "اختيار",
"delete": "حذف",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "غرفة",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "لاعب"
}

View File

@@ -220,5 +220,39 @@
"about": "Quant a",
"version": "Versió",
"developer": "Desenvolupador",
"licenses": "Llicències"
"licenses": "Llicències",
"scanThisCodeFromAnotherPhone": "Escaneja aquest codi des dun altre mòbil",
"gameUsers": "Usuaris de la partida",
"selectedPlayers": "Jugadors seleccionats",
"connectedPhones": "Mòbils connectats",
"selectedOnThisPhone": "Seleccionat en aquest mòbil",
"selectedByAnotherDevice": "Seleccionat en un altre dispositiu",
"available": "Disponible",
"notAvailable": "No disponible",
"release": "Allibera",
"select": "Selecciona",
"delete": "Elimina",
"selectAtLeastThreeUsersToStart": "Selecciona almenys 3 usuaris per començar.",
"hostPhoneMustSelectUser": "El mòbil servidor ha de seleccionar almenys un usuari.",
"roomNoLongerInLobby": "La sala ja no és al lobby.",
"completeUserSelectionToStart": "Completa la selecció dusuaris per començar.",
"preparingSecureRoom": "Preparant la sala segura",
"searchingNearbyBluetoothGames": "Cercant partides properes per Bluetooth",
"tapToJoin": "Toca per unir-thi",
"bluetoothLocationPermissionsRequired": "Calen permisos de Bluetooth i ubicació per cercar partides.",
"bluetoothLocationPermissionsShort": "Calen permisos de Bluetooth i ubicació",
"couldNotStartSearch": "No sha pogut iniciar la cerca. Verifica el Bluetooth i la ubicació.",
"couldNotConnectToHost": "No sha pogut connectar a {host}",
"room": "Sala",
"singleDeviceSubtitle": "Partida en aquest dispositiu",
"singleDeviceDescription": "Ideal per jugar tots junts passant el mòbil. Configuració ràpida i directa.",
"multiDeviceSubtitle": "Cada jugador al seu mòbil",
"multiDeviceDescription": "Crea una sala premium, comparteix el QR i gestiona usuaris des del lobby.",
"singleDeviceGameLabel": "Partida en aquest dispositiu",
"multiDeviceGameLabel": "Partida multidispositiu",
"mainDeviceUser": "Usuari principal del dispositiu",
"couldNotCreateRoom": "No sha pogut crear la sala. Verifica el Bluetooth.",
"cannotStartWithReason": "No es pot iniciar: {reason}",
"invalidRoom": "sala invàlida",
"defaultPlayerName": "Jugador"
}

View File

@@ -220,5 +220,39 @@
"about": "Über",
"version": "Version",
"developer": "Entwickler",
"licenses": "Lizenzen"
"licenses": "Lizenzen",
"scanThisCodeFromAnotherPhone": "Scanne diesen Code mit einem anderen Handy",
"gameUsers": "Spielbenutzer",
"selectedPlayers": "Ausgewählte Spieler",
"connectedPhones": "Verbundene Handys",
"selectedOnThisPhone": "Auf diesem Handy ausgewählt",
"selectedByAnotherDevice": "Auf einem anderen Gerät ausgewählt",
"available": "Verfügbar",
"notAvailable": "Nicht verfügbar",
"release": "Freigeben",
"select": "Auswählen",
"delete": "Löschen",
"selectAtLeastThreeUsersToStart": "Wähle mindestens 3 Benutzer aus, um zu starten.",
"hostPhoneMustSelectUser": "Das Host-Handy muss mindestens einen Benutzer auswählen.",
"roomNoLongerInLobby": "Der Raum ist nicht mehr in der Lobby.",
"completeUserSelectionToStart": "Schließe die Benutzerauswahl ab, um zu starten.",
"preparingSecureRoom": "Sicherer Raum wird vorbereitet",
"searchingNearbyBluetoothGames": "Suche nach Spielen in der Nähe per Bluetooth",
"tapToJoin": "Tippen zum Beitreten",
"bluetoothLocationPermissionsRequired": "Bluetooth- und Standortberechtigungen sind erforderlich, um Spiele zu suchen.",
"bluetoothLocationPermissionsShort": "Bluetooth- und Standortberechtigungen sind erforderlich",
"couldNotStartSearch": "Suche konnte nicht gestartet werden. Prüfe Bluetooth und Standort.",
"couldNotConnectToHost": "Verbindung zu {host} nicht möglich",
"room": "Raum",
"singleDeviceSubtitle": "Spiel auf diesem Gerät",
"singleDeviceDescription": "Ideal, um gemeinsam zu spielen, indem das Handy weitergegeben wird. Schnelle, direkte Einrichtung.",
"multiDeviceSubtitle": "Jeder Spieler auf seinem Handy",
"multiDeviceDescription": "Erstelle einen Premium-Raum, teile den QR-Code und verwalte Benutzer in der Lobby.",
"singleDeviceGameLabel": "Spiel auf diesem Gerät",
"multiDeviceGameLabel": "Mehrgeräte-Spiel",
"mainDeviceUser": "Hauptbenutzer des Geräts",
"couldNotCreateRoom": "Raum konnte nicht erstellt werden. Prüfe Bluetooth.",
"cannotStartWithReason": "Start nicht möglich: {reason}",
"invalidRoom": "ungültiger Raum",
"defaultPlayerName": "Spieler"
}

View File

@@ -261,5 +261,39 @@
"createNewUser": "Create new user",
"userNameRequired": "Name cannot be empty",
"profileSelected": "Profile selected",
"availableProfiles": "Available profiles"
"availableProfiles": "Available profiles",
"scanThisCodeFromAnotherPhone": "Scan this code from another phone",
"gameUsers": "Game users",
"selectedPlayers": "Selected players",
"connectedPhones": "Connected phones",
"selectedOnThisPhone": "Selected on this phone",
"selectedByAnotherDevice": "Selected on another device",
"available": "Available",
"notAvailable": "Not available",
"release": "Release",
"select": "Select",
"delete": "Delete",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "Room",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "Player"
}

View File

@@ -283,5 +283,49 @@
"createNewUser": "Crear nuevo usuario",
"userNameRequired": "El nombre no puede estar vacio",
"profileSelected": "Perfil seleccionado",
"availableProfiles": "Perfiles disponibles"
"availableProfiles": "Perfiles disponibles",
"scanThisCodeFromAnotherPhone": "Escanea este código desde otro móvil",
"gameUsers": "Usuarios de la partida",
"selectedPlayers": "Jugadores seleccionados",
"connectedPhones": "Móviles conectados",
"selectedOnThisPhone": "Seleccionado en este móvil",
"selectedByAnotherDevice": "Seleccionado en otro dispositivo",
"available": "Disponible",
"notAvailable": "No disponible",
"release": "Liberar",
"select": "Seleccionar",
"delete": "Eliminar",
"selectAtLeastThreeUsersToStart": "Selecciona al menos 3 usuarios para iniciar.",
"hostPhoneMustSelectUser": "El móvil servidor debe seleccionar al menos un usuario.",
"roomNoLongerInLobby": "La sala ya no está en el lobby.",
"completeUserSelectionToStart": "Completa la selección de usuarios para iniciar.",
"preparingSecureRoom": "Preparando la sala segura",
"searchingNearbyBluetoothGames": "Buscando partidas cercanas por Bluetooth",
"tapToJoin": "Toca para unirte",
"bluetoothLocationPermissionsRequired": "Se necesitan permisos de Bluetooth y ubicación para buscar partidas.",
"bluetoothLocationPermissionsShort": "Se necesitan permisos de Bluetooth y ubicación",
"couldNotStartSearch": "No se pudo iniciar la búsqueda. Verifica Bluetooth y ubicación.",
"couldNotConnectToHost": "No se pudo conectar a {host}",
"@couldNotConnectToHost": {
"placeholders": {
"host": { "type": "String" }
}
},
"room": "Sala",
"singleDeviceSubtitle": "Partida en este dispositivo",
"singleDeviceDescription": "Ideal para jugar todos juntos pasando el móvil. Configuración rápida y directa.",
"multiDeviceSubtitle": "Cada jugador en su móvil",
"multiDeviceDescription": "Crea una sala premium, comparte el QR y gestiona usuarios desde el lobby.",
"singleDeviceGameLabel": "Partida en este dispositivo",
"multiDeviceGameLabel": "Partida multidispositivo",
"mainDeviceUser": "Usuario principal del dispositivo",
"couldNotCreateRoom": "No se pudo crear la sala. Verifica Bluetooth.",
"cannotStartWithReason": "No se puede iniciar: {reason}",
"@cannotStartWithReason": {
"placeholders": {
"reason": { "type": "String" }
}
},
"invalidRoom": "sala inválida",
"defaultPlayerName": "Jugador"
}

View File

@@ -220,5 +220,39 @@
"about": "Honi buruz",
"version": "Bertsioa",
"developer": "Garatzailea",
"licenses": "Lizentziak"
"licenses": "Lizentziak",
"scanThisCodeFromAnotherPhone": "Eskaneatu kode hau beste mugikor batetik",
"gameUsers": "Partidako erabiltzaileak",
"selectedPlayers": "Hautatutako jokalariak",
"connectedPhones": "Konektatutako mugikorrak",
"selectedOnThisPhone": "Mugikor honetan hautatuta",
"selectedByAnotherDevice": "Beste gailu batean hautatuta",
"available": "Eskuragarri",
"notAvailable": "Ez dago erabilgarri",
"release": "Askatu",
"select": "Hautatu",
"delete": "Ezabatu",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "Gela",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "Jokalaria"
}

View File

@@ -220,5 +220,39 @@
"about": "À propos",
"version": "Version",
"developer": "Développeur",
"licenses": "Licences"
"licenses": "Licences",
"scanThisCodeFromAnotherPhone": "Scanne ce code depuis un autre mobile",
"gameUsers": "Utilisateurs de la partie",
"selectedPlayers": "Joueurs sélectionnés",
"connectedPhones": "Mobiles connectés",
"selectedOnThisPhone": "Sélectionné sur ce mobile",
"selectedByAnotherDevice": "Sélectionné sur un autre appareil",
"available": "Disponible",
"notAvailable": "Indisponible",
"release": "Libérer",
"select": "Sélectionner",
"delete": "Supprimer",
"selectAtLeastThreeUsersToStart": "Sélectionne au moins 3 utilisateurs pour commencer.",
"hostPhoneMustSelectUser": "Le mobile hôte doit sélectionner au moins un utilisateur.",
"roomNoLongerInLobby": "Le salon nest plus dans le lobby.",
"completeUserSelectionToStart": "Termine la sélection des utilisateurs pour commencer.",
"preparingSecureRoom": "Préparation du salon sécurisé",
"searchingNearbyBluetoothGames": "Recherche de parties proches par Bluetooth",
"tapToJoin": "Touche pour rejoindre",
"bluetoothLocationPermissionsRequired": "Les autorisations Bluetooth et localisation sont nécessaires pour rechercher des parties.",
"bluetoothLocationPermissionsShort": "Autorisations Bluetooth et localisation nécessaires",
"couldNotStartSearch": "Impossible de lancer la recherche. Vérifie le Bluetooth et la localisation.",
"couldNotConnectToHost": "Impossible de se connecter à {host}",
"room": "Salon",
"singleDeviceSubtitle": "Partie sur cet appareil",
"singleDeviceDescription": "Idéal pour jouer ensemble en se passant le mobile. Configuration rapide et directe.",
"multiDeviceSubtitle": "Chaque joueur sur son mobile",
"multiDeviceDescription": "Crée un salon premium, partage le QR et gère les utilisateurs depuis le lobby.",
"singleDeviceGameLabel": "Partie sur cet appareil",
"multiDeviceGameLabel": "Partie multiappareil",
"mainDeviceUser": "Utilisateur principal de lappareil",
"couldNotCreateRoom": "Impossible de créer le salon. Vérifie le Bluetooth.",
"cannotStartWithReason": "Impossible de démarrer : {reason}",
"invalidRoom": "salon invalide",
"defaultPlayerName": "Joueur"
}

View File

@@ -220,5 +220,39 @@
"about": "ऐप के बारे में",
"version": "संस्करण",
"developer": "डेवलपर",
"licenses": "लाइसेंस"
"licenses": "लाइसेंस",
"scanThisCodeFromAnotherPhone": "इस कोड को दूसरे फ़ोन से स्कैन करें",
"gameUsers": "गेम उपयोगकर्ता",
"selectedPlayers": "चुने गए खिलाड़ी",
"connectedPhones": "कनेक्टेड फ़ोन",
"selectedOnThisPhone": "इस फ़ोन पर चुना गया",
"selectedByAnotherDevice": "दूसरे डिवाइस पर चुना गया",
"available": "उपलब्ध",
"notAvailable": "उपलब्ध नहीं",
"release": "छोड़ें",
"select": "चुनें",
"delete": "हटाएँ",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "कक्ष",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "खिलाड़ी"
}

View File

@@ -220,5 +220,39 @@
"about": "Informazioni",
"version": "Versione",
"developer": "Sviluppatore",
"licenses": "Licenze"
"licenses": "Licenze",
"scanThisCodeFromAnotherPhone": "Scansiona questo codice da un altro telefono",
"gameUsers": "Utenti della partita",
"selectedPlayers": "Giocatori selezionati",
"connectedPhones": "Telefoni connessi",
"selectedOnThisPhone": "Selezionato su questo telefono",
"selectedByAnotherDevice": "Selezionato su un altro dispositivo",
"available": "Disponibile",
"notAvailable": "Non disponibile",
"release": "Libera",
"select": "Seleziona",
"delete": "Elimina",
"selectAtLeastThreeUsersToStart": "Seleziona almeno 3 utenti per iniziare.",
"hostPhoneMustSelectUser": "Il telefono host deve selezionare almeno un utente.",
"roomNoLongerInLobby": "La stanza non è più nella lobby.",
"completeUserSelectionToStart": "Completa la selezione utenti per iniziare.",
"preparingSecureRoom": "Preparazione della stanza sicura",
"searchingNearbyBluetoothGames": "Ricerca di partite vicine via Bluetooth",
"tapToJoin": "Tocca per unirti",
"bluetoothLocationPermissionsRequired": "Sono necessari i permessi Bluetooth e posizione per cercare partite.",
"bluetoothLocationPermissionsShort": "Sono necessari i permessi Bluetooth e posizione",
"couldNotStartSearch": "Impossibile avviare la ricerca. Verifica Bluetooth e posizione.",
"couldNotConnectToHost": "Impossibile connettersi a {host}",
"room": "Stanza",
"singleDeviceSubtitle": "Partita su questo dispositivo",
"singleDeviceDescription": "Ideale per giocare insieme passandosi il telefono. Configurazione rapida e diretta.",
"multiDeviceSubtitle": "Ogni giocatore sul proprio telefono",
"multiDeviceDescription": "Crea una stanza premium, condividi il QR e gestisci gli utenti dalla lobby.",
"singleDeviceGameLabel": "Partita su questo dispositivo",
"multiDeviceGameLabel": "Partita multi-dispositivo",
"mainDeviceUser": "Utente principale del dispositivo",
"couldNotCreateRoom": "Impossibile creare la stanza. Verifica Bluetooth.",
"cannotStartWithReason": "Impossibile iniziare: {reason}",
"invalidRoom": "stanza non valida",
"defaultPlayerName": "Giocatore"
}

View File

@@ -220,5 +220,39 @@
"about": "アプリについて",
"version": "バージョン",
"developer": "開発者",
"licenses": "ライセンス"
}
"licenses": "ライセンス",
"scanThisCodeFromAnotherPhone": "別のスマートフォンでこのコードをスキャン",
"gameUsers": "ゲームのユーザー",
"selectedPlayers": "選択済みプレイヤー",
"connectedPhones": "接続中のスマートフォン",
"selectedOnThisPhone": "このスマートフォンで選択済み",
"selectedByAnotherDevice": "別の端末で選択済み",
"available": "利用可能",
"notAvailable": "利用不可",
"release": "解除",
"select": "選択",
"delete": "削除",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "ルーム",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "プレイヤー"
}

View File

@@ -220,5 +220,39 @@
"about": "앱 정보",
"version": "버전",
"developer": "개발자",
"licenses": "라이선스"
}
"licenses": "라이선스",
"scanThisCodeFromAnotherPhone": "다른 휴대폰에서 이 코드를 스캔하세요",
"gameUsers": "게임 사용자",
"selectedPlayers": "선택된 플레이어",
"connectedPhones": "연결된 휴대폰",
"selectedOnThisPhone": "이 휴대폰에서 선택됨",
"selectedByAnotherDevice": "다른 기기에서 선택됨",
"available": "사용 가능",
"notAvailable": "사용 불가",
"release": "해제",
"select": "선택",
"delete": "삭제",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "방",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "플레이어"
}

View File

@@ -220,5 +220,39 @@
"about": "Over",
"version": "Versie",
"developer": "Ontwikkelaar",
"licenses": "Licenties"
"licenses": "Licenties",
"scanThisCodeFromAnotherPhone": "Scan deze code met een andere telefoon",
"gameUsers": "Spelgebruikers",
"selectedPlayers": "Geselecteerde spelers",
"connectedPhones": "Verbonden telefoons",
"selectedOnThisPhone": "Geselecteerd op deze telefoon",
"selectedByAnotherDevice": "Geselecteerd op een ander apparaat",
"available": "Beschikbaar",
"notAvailable": "Niet beschikbaar",
"release": "Vrijgeven",
"select": "Selecteren",
"delete": "Verwijderen",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "Kamer",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "Speler"
}

View File

@@ -220,5 +220,39 @@
"about": "O aplikacji",
"version": "Wersja",
"developer": "Programista",
"licenses": "Licencje"
"licenses": "Licencje",
"scanThisCodeFromAnotherPhone": "Zeskanuj ten kod innym telefonem",
"gameUsers": "Użytkownicy gry",
"selectedPlayers": "Wybrani gracze",
"connectedPhones": "Połączone telefony",
"selectedOnThisPhone": "Wybrano na tym telefonie",
"selectedByAnotherDevice": "Wybrano na innym urządzeniu",
"available": "Dostępny",
"notAvailable": "Niedostępny",
"release": "Zwolnij",
"select": "Wybierz",
"delete": "Usuń",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "Pokój",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "Gracz"
}

View File

@@ -220,5 +220,39 @@
"about": "Sobre",
"version": "Versão",
"developer": "Desenvolvedor",
"licenses": "Licenças"
"licenses": "Licenças",
"scanThisCodeFromAnotherPhone": "Escaneia este código noutro telemóvel",
"gameUsers": "Utilizadores da partida",
"selectedPlayers": "Jogadores selecionados",
"connectedPhones": "Telemóveis ligados",
"selectedOnThisPhone": "Selecionado neste telemóvel",
"selectedByAnotherDevice": "Selecionado noutro dispositivo",
"available": "Disponível",
"notAvailable": "Não disponível",
"release": "Libertar",
"select": "Selecionar",
"delete": "Eliminar",
"selectAtLeastThreeUsersToStart": "Seleciona pelo menos 3 utilizadores para começar.",
"hostPhoneMustSelectUser": "O telemóvel anfitrião deve selecionar pelo menos um utilizador.",
"roomNoLongerInLobby": "A sala já não está no lobby.",
"completeUserSelectionToStart": "Completa a seleção de utilizadores para começar.",
"preparingSecureRoom": "A preparar a sala segura",
"searchingNearbyBluetoothGames": "A procurar partidas próximas por Bluetooth",
"tapToJoin": "Toca para entrar",
"bluetoothLocationPermissionsRequired": "São necessárias permissões de Bluetooth e localização para procurar partidas.",
"bluetoothLocationPermissionsShort": "São necessárias permissões de Bluetooth e localização",
"couldNotStartSearch": "Não foi possível iniciar a procura. Verifica o Bluetooth e a localização.",
"couldNotConnectToHost": "Não foi possível ligar a {host}",
"room": "Sala",
"singleDeviceSubtitle": "Partida neste dispositivo",
"singleDeviceDescription": "Ideal para jogar todos juntos passando o telemóvel. Configuração rápida e direta.",
"multiDeviceSubtitle": "Cada jogador no seu telemóvel",
"multiDeviceDescription": "Cria uma sala premium, partilha o QR e gere utilizadores no lobby.",
"singleDeviceGameLabel": "Partida neste dispositivo",
"multiDeviceGameLabel": "Partida multidispositivo",
"mainDeviceUser": "Utilizador principal do dispositivo",
"couldNotCreateRoom": "Não foi possível criar a sala. Verifica o Bluetooth.",
"cannotStartWithReason": "Não é possível iniciar: {reason}",
"invalidRoom": "sala inválida",
"defaultPlayerName": "Jogador"
}

View File

@@ -220,5 +220,39 @@
"about": "О приложении",
"version": "Версия",
"developer": "Разработчик",
"licenses": "Лицензии"
}
"licenses": "Лицензии",
"scanThisCodeFromAnotherPhone": "Отсканируйте этот код с другого телефона",
"gameUsers": "Пользователи игры",
"selectedPlayers": "Выбранные игроки",
"connectedPhones": "Подключённые телефоны",
"selectedOnThisPhone": "Выбрано на этом телефоне",
"selectedByAnotherDevice": "Выбрано на другом устройстве",
"available": "Доступно",
"notAvailable": "Недоступно",
"release": "Освободить",
"select": "Выбрать",
"delete": "Удалить",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "Комната",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "Игрок"
}

View File

@@ -220,5 +220,39 @@
"about": "Hakkında",
"version": "Sürüm",
"developer": "Geliştirici",
"licenses": "Lisanslar"
"licenses": "Lisanslar",
"scanThisCodeFromAnotherPhone": "Bu kodu başka bir telefondan tarayın",
"gameUsers": "Oyun kullanıcıları",
"selectedPlayers": "Seçilen oyuncular",
"connectedPhones": "Bağlı telefonlar",
"selectedOnThisPhone": "Bu telefonda seçildi",
"selectedByAnotherDevice": "Başka bir cihazda seçildi",
"available": "Uygun",
"notAvailable": "Uygun değil",
"release": "Bırak",
"select": "Seç",
"delete": "Sil",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "Oda",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "Oyuncu"
}

View File

@@ -220,5 +220,39 @@
"about": "关于",
"version": "版本",
"developer": "开发者",
"licenses": "许可证"
}
"licenses": "许可证",
"scanThisCodeFromAnotherPhone": "用另一部手机扫描此代码",
"gameUsers": "游戏用户",
"selectedPlayers": "已选择的玩家",
"connectedPhones": "已连接的手机",
"selectedOnThisPhone": "已在此手机上选择",
"selectedByAnotherDevice": "已在另一台设备上选择",
"available": "可用",
"notAvailable": "不可用",
"release": "释放",
"select": "选择",
"delete": "删除",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "房间",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "玩家"
}

View File

@@ -220,5 +220,39 @@
"about": "關於",
"version": "版本",
"developer": "開發者",
"licenses": "授權條款"
"licenses": "授權條款",
"scanThisCodeFromAnotherPhone": "用另一部手机扫描此代码",
"gameUsers": "游戏用户",
"selectedPlayers": "已选择的玩家",
"connectedPhones": "已连接的手机",
"selectedOnThisPhone": "已在此手机上选择",
"selectedByAnotherDevice": "已在另一台设备上选择",
"available": "可用",
"notAvailable": "不可用",
"release": "释放",
"select": "选择",
"delete": "删除",
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
"roomNoLongerInLobby": "The room is no longer in the lobby.",
"completeUserSelectionToStart": "Complete user selection to start.",
"preparingSecureRoom": "Preparing the secure room",
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
"tapToJoin": "Tap to join",
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
"couldNotConnectToHost": "Could not connect to {host}",
"room": "房间",
"singleDeviceSubtitle": "Game on this device",
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
"multiDeviceSubtitle": "Each player on their phone",
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
"singleDeviceGameLabel": "Game on this device",
"multiDeviceGameLabel": "Multi-device game",
"mainDeviceUser": "Main device user",
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
"cannotStartWithReason": "Cannot start: {reason}",
"invalidRoom": "invalid room",
"defaultPlayerName": "玩家"
}

View File

@@ -1232,6 +1232,74 @@ abstract class AppLocalizations {
/// In es, this message translates to:
/// **'Perfiles disponibles'**
String get availableProfiles;
String get scanThisCodeFromAnotherPhone;
String get gameUsers;
String get selectedPlayers;
String get connectedPhones;
String get selectedOnThisPhone;
String get selectedByAnotherDevice;
String get available;
String get notAvailable;
String get release;
String get select;
String get delete;
String get selectAtLeastThreeUsersToStart;
String get hostPhoneMustSelectUser;
String get roomNoLongerInLobby;
String get completeUserSelectionToStart;
String get preparingSecureRoom;
String get searchingNearbyBluetoothGames;
String get tapToJoin;
String get bluetoothLocationPermissionsRequired;
String get bluetoothLocationPermissionsShort;
String get couldNotStartSearch;
String couldNotConnectToHost(String host);
String get room;
String get singleDeviceSubtitle;
String get singleDeviceDescription;
String get multiDeviceSubtitle;
String get multiDeviceDescription;
String get singleDeviceGameLabel;
String get multiDeviceGameLabel;
String get mainDeviceUser;
String get couldNotCreateRoom;
String cannotStartWithReason(String reason);
String get invalidRoom;
String get defaultPlayerName;
}
class _AppLocalizationsDelegate

View File

@@ -597,4 +597,110 @@ class AppLocalizationsAr extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'امسح هذا الرمز من هاتف آخر';
@override
String get gameUsers => 'مستخدمو اللعبة';
@override
String get selectedPlayers => 'اللاعبون المحددون';
@override
String get connectedPhones => 'الهواتف المتصلة';
@override
String get selectedOnThisPhone => 'محدد على هذا الهاتف';
@override
String get selectedByAnotherDevice => 'محدد على جهاز آخر';
@override
String get available => 'متاح';
@override
String get notAvailable => 'غير متاح';
@override
String get release => 'تحرير';
@override
String get select => 'اختيار';
@override
String get delete => 'حذف';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => 'غرفة';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => 'لاعب';
}

View File

@@ -600,4 +600,110 @@ class AppLocalizationsCa extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Escaneja aquest codi des dun altre mòbil';
@override
String get gameUsers => 'Usuaris de la partida';
@override
String get selectedPlayers => 'Jugadors seleccionats';
@override
String get connectedPhones => 'Mòbils connectats';
@override
String get selectedOnThisPhone => 'Seleccionat en aquest mòbil';
@override
String get selectedByAnotherDevice => 'Seleccionat en un altre dispositiu';
@override
String get available => 'Disponible';
@override
String get notAvailable => 'No disponible';
@override
String get release => 'Allibera';
@override
String get select => 'Selecciona';
@override
String get delete => 'Elimina';
@override
String get selectAtLeastThreeUsersToStart => 'Selecciona almenys 3 usuaris per començar.';
@override
String get hostPhoneMustSelectUser => 'El mòbil servidor ha de seleccionar almenys un usuari.';
@override
String get roomNoLongerInLobby => 'La sala ja no és al lobby.';
@override
String get completeUserSelectionToStart => 'Completa la selecció dusuaris per començar.';
@override
String get preparingSecureRoom => 'Preparant la sala segura';
@override
String get searchingNearbyBluetoothGames => 'Cercant partides properes per Bluetooth';
@override
String get tapToJoin => 'Toca per unir-thi';
@override
String get bluetoothLocationPermissionsRequired => 'Calen permisos de Bluetooth i ubicació per cercar partides.';
@override
String get bluetoothLocationPermissionsShort => 'Calen permisos de Bluetooth i ubicació';
@override
String get couldNotStartSearch => 'No sha pogut iniciar la cerca. Verifica el Bluetooth i la ubicació.';
@override
String couldNotConnectToHost(String host) {
return 'No sha pogut connectar a $host';
}
@override
String get room => 'Sala';
@override
String get singleDeviceSubtitle => 'Partida en aquest dispositiu';
@override
String get singleDeviceDescription => 'Ideal per jugar tots junts passant el mòbil. Configuració ràpida i directa.';
@override
String get multiDeviceSubtitle => 'Cada jugador al seu mòbil';
@override
String get multiDeviceDescription => 'Crea una sala premium, comparteix el QR i gestiona usuaris des del lobby.';
@override
String get singleDeviceGameLabel => 'Partida en aquest dispositiu';
@override
String get multiDeviceGameLabel => 'Partida multidispositiu';
@override
String get mainDeviceUser => 'Usuari principal del dispositiu';
@override
String get couldNotCreateRoom => 'No sha pogut crear la sala. Verifica el Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'No es pot iniciar: $reason';
}
@override
String get invalidRoom => 'sala invàlida';
@override
String get defaultPlayerName => 'Jugador';
}

View File

@@ -603,4 +603,110 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Scanne diesen Code mit einem anderen Handy';
@override
String get gameUsers => 'Spielbenutzer';
@override
String get selectedPlayers => 'Ausgewählte Spieler';
@override
String get connectedPhones => 'Verbundene Handys';
@override
String get selectedOnThisPhone => 'Auf diesem Handy ausgewählt';
@override
String get selectedByAnotherDevice => 'Auf einem anderen Gerät ausgewählt';
@override
String get available => 'Verfügbar';
@override
String get notAvailable => 'Nicht verfügbar';
@override
String get release => 'Freigeben';
@override
String get select => 'Auswählen';
@override
String get delete => 'Löschen';
@override
String get selectAtLeastThreeUsersToStart => 'Wähle mindestens 3 Benutzer aus, um zu starten.';
@override
String get hostPhoneMustSelectUser => 'Das Host-Handy muss mindestens einen Benutzer auswählen.';
@override
String get roomNoLongerInLobby => 'Der Raum ist nicht mehr in der Lobby.';
@override
String get completeUserSelectionToStart => 'Schließe die Benutzerauswahl ab, um zu starten.';
@override
String get preparingSecureRoom => 'Sicherer Raum wird vorbereitet';
@override
String get searchingNearbyBluetoothGames => 'Suche nach Spielen in der Nähe per Bluetooth';
@override
String get tapToJoin => 'Tippen zum Beitreten';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth- und Standortberechtigungen sind erforderlich, um Spiele zu suchen.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth- und Standortberechtigungen sind erforderlich';
@override
String get couldNotStartSearch => 'Suche konnte nicht gestartet werden. Prüfe Bluetooth und Standort.';
@override
String couldNotConnectToHost(String host) {
return 'Verbindung zu $host nicht möglich';
}
@override
String get room => 'Raum';
@override
String get singleDeviceSubtitle => 'Spiel auf diesem Gerät';
@override
String get singleDeviceDescription => 'Ideal, um gemeinsam zu spielen, indem das Handy weitergegeben wird. Schnelle, direkte Einrichtung.';
@override
String get multiDeviceSubtitle => 'Jeder Spieler auf seinem Handy';
@override
String get multiDeviceDescription => 'Erstelle einen Premium-Raum, teile den QR-Code und verwalte Benutzer in der Lobby.';
@override
String get singleDeviceGameLabel => 'Spiel auf diesem Gerät';
@override
String get multiDeviceGameLabel => 'Mehrgeräte-Spiel';
@override
String get mainDeviceUser => 'Hauptbenutzer des Geräts';
@override
String get couldNotCreateRoom => 'Raum konnte nicht erstellt werden. Prüfe Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Start nicht möglich: $reason';
}
@override
String get invalidRoom => 'ungültiger Raum';
@override
String get defaultPlayerName => 'Spieler';
}

View File

@@ -597,4 +597,110 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get availableProfiles => 'Available profiles';
@override
String get scanThisCodeFromAnotherPhone => 'Scan this code from another phone';
@override
String get gameUsers => 'Game users';
@override
String get selectedPlayers => 'Selected players';
@override
String get connectedPhones => 'Connected phones';
@override
String get selectedOnThisPhone => 'Selected on this phone';
@override
String get selectedByAnotherDevice => 'Selected on another device';
@override
String get available => 'Available';
@override
String get notAvailable => 'Not available';
@override
String get release => 'Release';
@override
String get select => 'Select';
@override
String get delete => 'Delete';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => 'Room';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => 'Player';
}

View File

@@ -599,4 +599,110 @@ class AppLocalizationsEs extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Escanea este código desde otro móvil';
@override
String get gameUsers => 'Usuarios de la partida';
@override
String get selectedPlayers => 'Jugadores seleccionados';
@override
String get connectedPhones => 'Móviles conectados';
@override
String get selectedOnThisPhone => 'Seleccionado en este móvil';
@override
String get selectedByAnotherDevice => 'Seleccionado en otro dispositivo';
@override
String get available => 'Disponible';
@override
String get notAvailable => 'No disponible';
@override
String get release => 'Liberar';
@override
String get select => 'Seleccionar';
@override
String get delete => 'Eliminar';
@override
String get selectAtLeastThreeUsersToStart => 'Selecciona al menos 3 usuarios para iniciar.';
@override
String get hostPhoneMustSelectUser => 'El móvil servidor debe seleccionar al menos un usuario.';
@override
String get roomNoLongerInLobby => 'La sala ya no está en el lobby.';
@override
String get completeUserSelectionToStart => 'Completa la selección de usuarios para iniciar.';
@override
String get preparingSecureRoom => 'Preparando la sala segura';
@override
String get searchingNearbyBluetoothGames => 'Buscando partidas cercanas por Bluetooth';
@override
String get tapToJoin => 'Toca para unirte';
@override
String get bluetoothLocationPermissionsRequired => 'Se necesitan permisos de Bluetooth y ubicación para buscar partidas.';
@override
String get bluetoothLocationPermissionsShort => 'Se necesitan permisos de Bluetooth y ubicación';
@override
String get couldNotStartSearch => 'No se pudo iniciar la búsqueda. Verifica Bluetooth y ubicación.';
@override
String couldNotConnectToHost(String host) {
return 'No se pudo conectar a $host';
}
@override
String get room => 'Sala';
@override
String get singleDeviceSubtitle => 'Partida en este dispositivo';
@override
String get singleDeviceDescription => 'Ideal para jugar todos juntos pasando el móvil. Configuración rápida y directa.';
@override
String get multiDeviceSubtitle => 'Cada jugador en su móvil';
@override
String get multiDeviceDescription => 'Crea una sala premium, comparte el QR y gestiona usuarios desde el lobby.';
@override
String get singleDeviceGameLabel => 'Partida en este dispositivo';
@override
String get multiDeviceGameLabel => 'Partida multidispositivo';
@override
String get mainDeviceUser => 'Usuario principal del dispositivo';
@override
String get couldNotCreateRoom => 'No se pudo crear la sala. Verifica Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'No se puede iniciar: $reason';
}
@override
String get invalidRoom => 'sala inválida';
@override
String get defaultPlayerName => 'Jugador';
}

View File

@@ -602,4 +602,110 @@ class AppLocalizationsEu extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Eskaneatu kode hau beste mugikor batetik';
@override
String get gameUsers => 'Partidako erabiltzaileak';
@override
String get selectedPlayers => 'Hautatutako jokalariak';
@override
String get connectedPhones => 'Konektatutako mugikorrak';
@override
String get selectedOnThisPhone => 'Mugikor honetan hautatuta';
@override
String get selectedByAnotherDevice => 'Beste gailu batean hautatuta';
@override
String get available => 'Eskuragarri';
@override
String get notAvailable => 'Ez dago erabilgarri';
@override
String get release => 'Askatu';
@override
String get select => 'Hautatu';
@override
String get delete => 'Ezabatu';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => 'Gela';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => 'Jokalaria';
}

View File

@@ -600,4 +600,110 @@ class AppLocalizationsFr extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Scanne ce code depuis un autre mobile';
@override
String get gameUsers => 'Utilisateurs de la partie';
@override
String get selectedPlayers => 'Joueurs sélectionnés';
@override
String get connectedPhones => 'Mobiles connectés';
@override
String get selectedOnThisPhone => 'Sélectionné sur ce mobile';
@override
String get selectedByAnotherDevice => 'Sélectionné sur un autre appareil';
@override
String get available => 'Disponible';
@override
String get notAvailable => 'Indisponible';
@override
String get release => 'Libérer';
@override
String get select => 'Sélectionner';
@override
String get delete => 'Supprimer';
@override
String get selectAtLeastThreeUsersToStart => 'Sélectionne au moins 3 utilisateurs pour commencer.';
@override
String get hostPhoneMustSelectUser => 'Le mobile hôte doit sélectionner au moins un utilisateur.';
@override
String get roomNoLongerInLobby => 'Le salon nest plus dans le lobby.';
@override
String get completeUserSelectionToStart => 'Termine la sélection des utilisateurs pour commencer.';
@override
String get preparingSecureRoom => 'Préparation du salon sécurisé';
@override
String get searchingNearbyBluetoothGames => 'Recherche de parties proches par Bluetooth';
@override
String get tapToJoin => 'Touche pour rejoindre';
@override
String get bluetoothLocationPermissionsRequired => 'Les autorisations Bluetooth et localisation sont nécessaires pour rechercher des parties.';
@override
String get bluetoothLocationPermissionsShort => 'Autorisations Bluetooth et localisation nécessaires';
@override
String get couldNotStartSearch => 'Impossible de lancer la recherche. Vérifie le Bluetooth et la localisation.';
@override
String couldNotConnectToHost(String host) {
return 'Impossible de se connecter à $host';
}
@override
String get room => 'Salon';
@override
String get singleDeviceSubtitle => 'Partie sur cet appareil';
@override
String get singleDeviceDescription => 'Idéal pour jouer ensemble en se passant le mobile. Configuration rapide et directe.';
@override
String get multiDeviceSubtitle => 'Chaque joueur sur son mobile';
@override
String get multiDeviceDescription => 'Crée un salon premium, partage le QR et gère les utilisateurs depuis le lobby.';
@override
String get singleDeviceGameLabel => 'Partie sur cet appareil';
@override
String get multiDeviceGameLabel => 'Partie multiappareil';
@override
String get mainDeviceUser => 'Utilisateur principal de lappareil';
@override
String get couldNotCreateRoom => 'Impossible de créer le salon. Vérifie le Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Impossible de démarrer : $reason';
}
@override
String get invalidRoom => 'salon invalide';
@override
String get defaultPlayerName => 'Joueur';
}

View File

@@ -599,4 +599,110 @@ class AppLocalizationsHi extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'इस कोड को दूसरे फ़ोन से स्कैन करें';
@override
String get gameUsers => 'गेम उपयोगकर्ता';
@override
String get selectedPlayers => 'चुने गए खिलाड़ी';
@override
String get connectedPhones => 'कनेक्टेड फ़ोन';
@override
String get selectedOnThisPhone => 'इस फ़ोन पर चुना गया';
@override
String get selectedByAnotherDevice => 'दूसरे डिवाइस पर चुना गया';
@override
String get available => 'उपलब्ध';
@override
String get notAvailable => 'उपलब्ध नहीं';
@override
String get release => 'छोड़ें';
@override
String get select => 'चुनें';
@override
String get delete => 'हटाएँ';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => 'कक्ष';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => 'खिलाड़ी';
}

View File

@@ -600,4 +600,110 @@ class AppLocalizationsIt extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Scansiona questo codice da un altro telefono';
@override
String get gameUsers => 'Utenti della partita';
@override
String get selectedPlayers => 'Giocatori selezionati';
@override
String get connectedPhones => 'Telefoni connessi';
@override
String get selectedOnThisPhone => 'Selezionato su questo telefono';
@override
String get selectedByAnotherDevice => 'Selezionato su un altro dispositivo';
@override
String get available => 'Disponibile';
@override
String get notAvailable => 'Non disponibile';
@override
String get release => 'Libera';
@override
String get select => 'Seleziona';
@override
String get delete => 'Elimina';
@override
String get selectAtLeastThreeUsersToStart => 'Seleziona almeno 3 utenti per iniziare.';
@override
String get hostPhoneMustSelectUser => 'Il telefono host deve selezionare almeno un utente.';
@override
String get roomNoLongerInLobby => 'La stanza non è più nella lobby.';
@override
String get completeUserSelectionToStart => 'Completa la selezione utenti per iniziare.';
@override
String get preparingSecureRoom => 'Preparazione della stanza sicura';
@override
String get searchingNearbyBluetoothGames => 'Ricerca di partite vicine via Bluetooth';
@override
String get tapToJoin => 'Tocca per unirti';
@override
String get bluetoothLocationPermissionsRequired => 'Sono necessari i permessi Bluetooth e posizione per cercare partite.';
@override
String get bluetoothLocationPermissionsShort => 'Sono necessari i permessi Bluetooth e posizione';
@override
String get couldNotStartSearch => 'Impossibile avviare la ricerca. Verifica Bluetooth e posizione.';
@override
String couldNotConnectToHost(String host) {
return 'Impossibile connettersi a $host';
}
@override
String get room => 'Stanza';
@override
String get singleDeviceSubtitle => 'Partita su questo dispositivo';
@override
String get singleDeviceDescription => 'Ideale per giocare insieme passandosi il telefono. Configurazione rapida e diretta.';
@override
String get multiDeviceSubtitle => 'Ogni giocatore sul proprio telefono';
@override
String get multiDeviceDescription => 'Crea una stanza premium, condividi il QR e gestisci gli utenti dalla lobby.';
@override
String get singleDeviceGameLabel => 'Partita su questo dispositivo';
@override
String get multiDeviceGameLabel => 'Partita multi-dispositivo';
@override
String get mainDeviceUser => 'Utente principale del dispositivo';
@override
String get couldNotCreateRoom => 'Impossibile creare la stanza. Verifica Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Impossibile iniziare: $reason';
}
@override
String get invalidRoom => 'stanza non valida';
@override
String get defaultPlayerName => 'Giocatore';
}

View File

@@ -597,4 +597,110 @@ class AppLocalizationsJa extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => '別のスマートフォンでこのコードをスキャン';
@override
String get gameUsers => 'ゲームのユーザー';
@override
String get selectedPlayers => '選択済みプレイヤー';
@override
String get connectedPhones => '接続中のスマートフォン';
@override
String get selectedOnThisPhone => 'このスマートフォンで選択済み';
@override
String get selectedByAnotherDevice => '別の端末で選択済み';
@override
String get available => '利用可能';
@override
String get notAvailable => '利用不可';
@override
String get release => '解除';
@override
String get select => '選択';
@override
String get delete => '削除';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => 'ルーム';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => 'プレイヤー';
}

View File

@@ -597,4 +597,110 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => '다른 휴대폰에서 이 코드를 스캔하세요';
@override
String get gameUsers => '게임 사용자';
@override
String get selectedPlayers => '선택된 플레이어';
@override
String get connectedPhones => '연결된 휴대폰';
@override
String get selectedOnThisPhone => '이 휴대폰에서 선택됨';
@override
String get selectedByAnotherDevice => '다른 기기에서 선택됨';
@override
String get available => '사용 가능';
@override
String get notAvailable => '사용 불가';
@override
String get release => '해제';
@override
String get select => '선택';
@override
String get delete => '삭제';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => '';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => '플레이어';
}

View File

@@ -600,4 +600,110 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Scan deze code met een andere telefoon';
@override
String get gameUsers => 'Spelgebruikers';
@override
String get selectedPlayers => 'Geselecteerde spelers';
@override
String get connectedPhones => 'Verbonden telefoons';
@override
String get selectedOnThisPhone => 'Geselecteerd op deze telefoon';
@override
String get selectedByAnotherDevice => 'Geselecteerd op een ander apparaat';
@override
String get available => 'Beschikbaar';
@override
String get notAvailable => 'Niet beschikbaar';
@override
String get release => 'Vrijgeven';
@override
String get select => 'Selecteren';
@override
String get delete => 'Verwijderen';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => 'Kamer';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => 'Speler';
}

View File

@@ -600,4 +600,110 @@ class AppLocalizationsPl extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Zeskanuj ten kod innym telefonem';
@override
String get gameUsers => 'Użytkownicy gry';
@override
String get selectedPlayers => 'Wybrani gracze';
@override
String get connectedPhones => 'Połączone telefony';
@override
String get selectedOnThisPhone => 'Wybrano na tym telefonie';
@override
String get selectedByAnotherDevice => 'Wybrano na innym urządzeniu';
@override
String get available => 'Dostępny';
@override
String get notAvailable => 'Niedostępny';
@override
String get release => 'Zwolnij';
@override
String get select => 'Wybierz';
@override
String get delete => 'Usuń';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => 'Pokój';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => 'Gracz';
}

View File

@@ -601,4 +601,110 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Escaneia este código noutro telemóvel';
@override
String get gameUsers => 'Utilizadores da partida';
@override
String get selectedPlayers => 'Jogadores selecionados';
@override
String get connectedPhones => 'Telemóveis ligados';
@override
String get selectedOnThisPhone => 'Selecionado neste telemóvel';
@override
String get selectedByAnotherDevice => 'Selecionado noutro dispositivo';
@override
String get available => 'Disponível';
@override
String get notAvailable => 'Não disponível';
@override
String get release => 'Libertar';
@override
String get select => 'Selecionar';
@override
String get delete => 'Eliminar';
@override
String get selectAtLeastThreeUsersToStart => 'Seleciona pelo menos 3 utilizadores para começar.';
@override
String get hostPhoneMustSelectUser => 'O telemóvel anfitrião deve selecionar pelo menos um utilizador.';
@override
String get roomNoLongerInLobby => 'A sala já não está no lobby.';
@override
String get completeUserSelectionToStart => 'Completa a seleção de utilizadores para começar.';
@override
String get preparingSecureRoom => 'A preparar a sala segura';
@override
String get searchingNearbyBluetoothGames => 'A procurar partidas próximas por Bluetooth';
@override
String get tapToJoin => 'Toca para entrar';
@override
String get bluetoothLocationPermissionsRequired => 'São necessárias permissões de Bluetooth e localização para procurar partidas.';
@override
String get bluetoothLocationPermissionsShort => 'São necessárias permissões de Bluetooth e localização';
@override
String get couldNotStartSearch => 'Não foi possível iniciar a procura. Verifica o Bluetooth e a localização.';
@override
String couldNotConnectToHost(String host) {
return 'Não foi possível ligar a $host';
}
@override
String get room => 'Sala';
@override
String get singleDeviceSubtitle => 'Partida neste dispositivo';
@override
String get singleDeviceDescription => 'Ideal para jogar todos juntos passando o telemóvel. Configuração rápida e direta.';
@override
String get multiDeviceSubtitle => 'Cada jogador no seu telemóvel';
@override
String get multiDeviceDescription => 'Cria uma sala premium, partilha o QR e gere utilizadores no lobby.';
@override
String get singleDeviceGameLabel => 'Partida neste dispositivo';
@override
String get multiDeviceGameLabel => 'Partida multidispositivo';
@override
String get mainDeviceUser => 'Utilizador principal do dispositivo';
@override
String get couldNotCreateRoom => 'Não foi possível criar a sala. Verifica o Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Não é possível iniciar: $reason';
}
@override
String get invalidRoom => 'sala inválida';
@override
String get defaultPlayerName => 'Jogador';
}

View File

@@ -600,4 +600,110 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Отсканируйте этот код с другого телефона';
@override
String get gameUsers => 'Пользователи игры';
@override
String get selectedPlayers => 'Выбранные игроки';
@override
String get connectedPhones => 'Подключённые телефоны';
@override
String get selectedOnThisPhone => 'Выбрано на этом телефоне';
@override
String get selectedByAnotherDevice => 'Выбрано на другом устройстве';
@override
String get available => 'Доступно';
@override
String get notAvailable => 'Недоступно';
@override
String get release => 'Освободить';
@override
String get select => 'Выбрать';
@override
String get delete => 'Удалить';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => 'Комната';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => 'Игрок';
}

View File

@@ -599,4 +599,110 @@ class AppLocalizationsTr extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => 'Bu kodu başka bir telefondan tarayın';
@override
String get gameUsers => 'Oyun kullanıcıları';
@override
String get selectedPlayers => 'Seçilen oyuncular';
@override
String get connectedPhones => 'Bağlı telefonlar';
@override
String get selectedOnThisPhone => 'Bu telefonda seçildi';
@override
String get selectedByAnotherDevice => 'Başka bir cihazda seçildi';
@override
String get available => 'Uygun';
@override
String get notAvailable => 'Uygun değil';
@override
String get release => 'Bırak';
@override
String get select => 'Seç';
@override
String get delete => 'Sil';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => 'Oda';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => 'Oyuncu';
}

View File

@@ -596,6 +596,112 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get availableProfiles => 'Perfiles disponibles';
@override
String get scanThisCodeFromAnotherPhone => '用另一部手机扫描此代码';
@override
String get gameUsers => '游戏用户';
@override
String get selectedPlayers => '已选择的玩家';
@override
String get connectedPhones => '已连接的手机';
@override
String get selectedOnThisPhone => '已在此手机上选择';
@override
String get selectedByAnotherDevice => '已在另一台设备上选择';
@override
String get available => '可用';
@override
String get notAvailable => '不可用';
@override
String get release => '释放';
@override
String get select => '选择';
@override
String get delete => '删除';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => '房间';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => '玩家';
}
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
@@ -1063,4 +1169,109 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
@override
String get licenses => '授權條款';
@override
String get scanThisCodeFromAnotherPhone => '用另一部手机扫描此代码';
@override
String get gameUsers => '游戏用户';
@override
String get selectedPlayers => '已选择的玩家';
@override
String get connectedPhones => '已连接的手机';
@override
String get selectedOnThisPhone => '已在此手机上选择';
@override
String get selectedByAnotherDevice => '已在另一台设备上选择';
@override
String get available => '可用';
@override
String get notAvailable => '不可用';
@override
String get release => '释放';
@override
String get select => '选择';
@override
String get delete => '删除';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
return 'Could not connect to $host';
}
@override
String get room => '房间';
@override
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@override
String get multiDeviceGameLabel => 'Multi-device game';
@override
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
return 'Cannot start: $reason';
}
@override
String get invalidRoom => 'invalid room';
@override
String get defaultPlayerName => '玩家';
}

View File

@@ -55,8 +55,10 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
final servicioPerfil = context.read<ServicioPerfilUsuario>();
if (!servicioPerfil.cargado) return;
final perfil = servicioPerfil.perfil;
final nombre =
perfil.nombre.trim().isEmpty ? 'Jugador' : perfil.nombre.trim();
final l10n = AppLocalizations.of(context)!;
final nombre = perfil.nombre.trim().isEmpty
? l10n.defaultPlayerName
: perfil.nombre.trim();
if (_jugadores.contains(nombre)) return;
setState(() {
_jugadores.insert(0, nombre);
@@ -101,8 +103,10 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
void _eliminarJugador(int index) {
final perfil = context.read<ServicioPerfilUsuario>().perfil;
final nombrePerfil =
perfil.nombre.trim().isEmpty ? 'Jugador' : perfil.nombre.trim();
final l10n = AppLocalizations.of(context)!;
final nombrePerfil = perfil.nombre.trim().isEmpty
? l10n.defaultPlayerName
: perfil.nombre.trim();
if (index == 0 && _jugadores[index] == nombrePerfil) return;
setState(() {
_jugadores.removeAt(index);
@@ -146,13 +150,14 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
}
Future<void> _iniciarPartidaMulti() async {
final l10n = AppLocalizations.of(context)!;
// 1. Pedir permisos automáticamente
final permisosOk = await ServicioPermisos.solicitarPermisosNearby(context);
if (!permisosOk) {
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('Se necesitan permisos de Bluetooth y ubicación'),
SnackBar(
content: Text(l10n.bluetoothLocationPermissionsShort),
),
);
}
@@ -182,8 +187,8 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
if (!ok) {
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('No se pudo crear la sala. Verifica Bluetooth.'),
SnackBar(
content: Text(l10n.couldNotCreateRoom),
),
);
}
@@ -207,7 +212,9 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
'No se puede iniciar: ${validacion.codigo ?? "sala inválida"}',
l10n.cannotStartWithReason(
validacion.codigo ?? l10n.invalidRoom,
),
),
),
);
@@ -301,7 +308,7 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
final categorias = ['todas', ...?estado.banco?.nombresCategorias];
final etiquetas = _etiquetasTiempo(l10n);
final nombrePerfilActual = servicioPerfil.perfil.nombre.trim().isEmpty
? 'Jugador'
? l10n.defaultPlayerName
: servicioPerfil.perfil.nombre.trim();
if (!_modoMultimovil &&
servicioPerfil.cargado &&
@@ -383,8 +390,8 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
Expanded(
child: Text(
_modoMultimovil
? 'Partida multidispositivo'
: 'Partida en este dispositivo',
? l10n.multiDeviceGameLabel
: l10n.singleDeviceGameLabel,
style: Theme.of(context).textTheme.titleMedium,
),
),
@@ -475,7 +482,7 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
..._jugadores.asMap().entries.map((e) {
final perfil = servicioPerfil.perfil;
final nombrePerfil = perfil.nombre.trim().isEmpty
? 'Jugador'
? l10n.defaultPlayerName
: perfil.nombre.trim();
final inicialPerfil = nombrePerfil.isEmpty
? '?'
@@ -498,7 +505,7 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
),
title: Text(e.value),
subtitle: esPerfilLocal
? const Text('Usuario principal del dispositivo')
? Text(l10n.mainDeviceUser)
: null,
trailing: esPerfilLocal
? const Icon(Icons.lock, color: TemaApp.colorDorado)

View File

@@ -220,6 +220,7 @@ class _HeroResultado extends StatelessWidget {
@override
Widget build(BuildContext context) {
final l10n = AppLocalizations.of(context)!;
final apertura = String.fromCharCode(0x00A1);
final tituloLimpio = titulo
.replaceAll(apertura, '')
@@ -254,7 +255,7 @@ class _HeroResultado extends StatelessWidget {
).animate().fadeIn(duration: 260.ms).slideY(begin: -0.18),
const SizedBox(height: 62),
Text(
'RESULTADOS',
l10n.result.toUpperCase(),
style: Theme.of(context).textTheme.labelLarge?.copyWith(
color: TemaApp.colorDorado,
fontWeight: FontWeight.w900,

View File

@@ -103,7 +103,7 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
),
const SizedBox(height: 10),
Text(
'Escanea este código desde otro móvil',
l10n.scanThisCodeFromAnotherPhone,
style: Theme.of(context).textTheme.bodyMedium,
textAlign: TextAlign.center,
),
@@ -111,7 +111,12 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
),
),
const SizedBox(height: 16),
_buildResumenSala(context, seleccionados, nearby.jugadores.length),
_buildResumenSala(
context,
l10n,
seleccionados,
nearby.jugadores.length,
),
const SizedBox(height: 12),
Expanded(
child: Card(
@@ -124,7 +129,7 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
children: [
Expanded(
child: Text(
'Usuarios de la partida',
l10n.gameUsers,
style: Theme.of(context).textTheme.titleLarge,
),
),
@@ -141,7 +146,11 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
: ListView.builder(
itemCount: usuarios.length,
itemBuilder: (context, index) =>
_buildUsuarioTile(context, usuarios[index]),
_buildUsuarioTile(
context,
l10n,
usuarios[index],
),
),
),
],
@@ -152,7 +161,7 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
const SizedBox(height: 12),
if (!puedeIniciar)
Text(
_mensajeValidacion(validacionInicio?.codigo),
_mensajeValidacion(validacionInicio?.codigo, l10n),
style: Theme.of(context)
.textTheme
.bodyMedium
@@ -182,6 +191,7 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
Widget _buildResumenSala(
BuildContext context,
AppLocalizations l10n,
int seleccionados,
int clientesRemotos,
) {
@@ -191,7 +201,7 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
child: _buildStat(
context,
icon: Icons.groups,
label: 'Jugadores seleccionados',
label: l10n.selectedPlayers,
value: '$seleccionados',
ok: seleccionados >= 3,
),
@@ -201,7 +211,7 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
child: _buildStat(
context,
icon: Icons.devices,
label: 'Móviles conectados',
label: l10n.connectedPhones,
value: '${clientesRemotos + 1}',
ok: true,
),
@@ -241,7 +251,11 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
);
}
Widget _buildUsuarioTile(BuildContext context, Usuario usuario) {
Widget _buildUsuarioTile(
BuildContext context,
AppLocalizations l10n,
Usuario usuario,
) {
final nearby = context.read<ServicioNearby>();
final miClientId = nearby.miClientId;
final seleccionadoPorMi = usuario.clienteIdSeleccionado == miClientId;
@@ -270,10 +284,10 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
children: [
Text(
seleccionadoPorMi
? 'Seleccionado por este móvil'
? l10n.selectedOnThisPhone
: seleccionadoPorOtro
? 'Seleccionado por otro cliente'
: 'Disponible',
? l10n.selectedByAnotherDevice
: l10n.available,
),
if (usuario.medallas.isNotEmpty) ...[
const SizedBox(height: 4),
@@ -286,19 +300,19 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
children: [
if (seleccionadoPorMi)
IconButton(
tooltip: 'Liberar',
tooltip: l10n.release,
icon: const Icon(Icons.close),
onPressed: () => nearby.liberarUsuarioSala(usuario.id),
)
else if (!seleccionadoPorOtro)
IconButton(
tooltip: 'Seleccionar',
tooltip: l10n.select,
icon: const Icon(Icons.check_circle_outline),
onPressed: () => nearby.seleccionarUsuarioSala(usuario.id),
),
if (!usuario.estaSeleccionado)
IconButton(
tooltip: 'Eliminar',
tooltip: l10n.delete,
icon: const Icon(Icons.delete_outline, color: TemaApp.colorAcento),
onPressed: () => nearby.eliminarUsuarioSala(usuario.id),
),
@@ -307,16 +321,16 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
);
}
String _mensajeValidacion(String? codigo) {
String _mensajeValidacion(String? codigo, AppLocalizations l10n) {
switch (codigo) {
case 'faltan_jugadores':
return 'Seleccioná al menos 3 usuarios para iniciar.';
return l10n.selectAtLeastThreeUsersToStart;
case 'host_sin_usuario':
return 'El móvil servidor debe seleccionar al menos un usuario.';
return l10n.hostPhoneMustSelectUser;
case 'sala_cerrada':
return 'La sala ya no está en lobby.';
return l10n.roomNoLongerInLobby;
default:
return 'Completá la selección de usuarios para iniciar.';
return l10n.completeUserSelectionToStart;
}
}

View File

@@ -36,8 +36,8 @@ class PantallaSeleccionModoJuego extends StatelessWidget {
marcoAsset: 'assets/ui/generated/mode/mode_single_card_frame.png',
icono: Icons.phone_android_rounded,
titulo: l10n.singleDevice,
subtitulo: 'Partida en este dispositivo',
descripcion: 'Ideal para jugar todos juntos pasando el móvil. Configuración rápida y directa.',
subtitulo: l10n.singleDeviceSubtitle,
descripcion: l10n.singleDeviceDescription,
onTap: () => Navigator.push(
context,
MaterialPageRoute(
@@ -53,8 +53,8 @@ class PantallaSeleccionModoJuego extends StatelessWidget {
marcoAsset: 'assets/ui/generated/mode/mode_multi_card_frame.png',
icono: Icons.devices_rounded,
titulo: l10n.multiDevice,
subtitulo: 'Cada jugador en su móvil',
descripcion: 'Crea una sala premium, comparte QR y gestiona usuarios desde el lobby.',
subtitulo: l10n.multiDeviceSubtitle,
descripcion: l10n.multiDeviceDescription,
destacado: true,
onTap: () => Navigator.push(
context,

View File

@@ -301,13 +301,13 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
/// Paso 1: validar nombre, pedir permisos e iniciar discovery
Future<void> _iniciarBusqueda() async {
if (!_formKey.currentState!.validate()) return;
final l10n = AppLocalizations.of(context)!;
// Solicitar permisos automáticamente
final permisosOk = await ServicioPermisos.solicitarPermisosNearby(context);
if (!permisosOk) {
setState(() {
_error =
'Se necesitan permisos de Bluetooth y ubicación para buscar partidas.';
_error = l10n.bluetoothLocationPermissionsRequired;
});
return;
}
@@ -332,14 +332,14 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
});
} else {
setState(() {
_error =
'No se pudo iniciar la búsqueda. Verifica Bluetooth y ubicación.';
_error = l10n.couldNotStartSearch;
});
}
}
/// Conectar a un host de la lista
Future<void> _conectarAHost(String endpointId, String nombreHost) async {
final l10n = AppLocalizations.of(context)!;
setState(() {
_conectando = true;
_salaSeleccionada = nombreHost;
@@ -363,7 +363,7 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
if (!ok && mounted) {
setState(() {
_conectando = false;
_error = 'No se pudo conectar a $nombreHost';
_error = l10n.couldNotConnectToHost(nombreHost);
});
// Reiniciar búsqueda
_iniciarBusqueda();
@@ -387,11 +387,12 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
final datos = ServicioNearby.parsearQR(valor);
if (datos != null) {
final l10n = AppLocalizations.of(context)!;
setState(() {
_escaneandoQR = false;
_conectando = true;
_salaSeleccionada =
datos['host'] as String? ?? datos['sala'] as String? ?? 'Sala';
datos['host'] as String? ?? datos['sala'] as String? ?? l10n.room;
});
// Iniciar búsqueda para que Nearby encuentre al host
@@ -530,8 +531,8 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
? '${l10n.connectingTo} ${_salaSeleccionada ?? ""}...'
: l10n.searchingGames,
subtitulo: _conectando
? 'Preparando la sala segura'
: 'Buscando partidas cercanas por Bluetooth',
? l10n.preparingSecureRoom
: l10n.searchingNearbyBluetoothGames,
color: _conectando ? TemaApp.colorAcento : TemaApp.colorNaranja,
trailing: SizedBox(
width: 24,
@@ -560,7 +561,7 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
itemCount: hosts.length,
itemBuilder: (context, index) {
final entry = hosts.entries.elementAt(index);
return _buildHostTile(entry.key, entry.value);
return _buildHostTile(l10n, entry.key, entry.value);
},
),
),
@@ -597,7 +598,11 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
);
}
Widget _buildHostTile(String endpointId, String nombre) {
Widget _buildHostTile(
AppLocalizations l10n,
String endpointId,
String nombre,
) {
return Container(
margin: const EdgeInsets.only(bottom: 10),
child: Material(
@@ -630,7 +635,7 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
style: Theme.of(context).textTheme.titleMedium,
),
Text(
'Toca para unirte',
l10n.tapToJoin,
style: Theme.of(context).textTheme.bodySmall,
),
],
@@ -842,16 +847,18 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
}
}
/// Env?a el usuario seleccionado/creado al host
/// Envía el usuario seleccionado/creado al host
void _enviarUsuarioAlHost(Usuario usuario) {
final l10n = AppLocalizations.of(context)!;
final nearby = context.read<ServicioNearby>();
nearby.seleccionarUsuarioSala(usuario.id);
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('${usuario.nombre} seleccionado')));
).showSnackBar(SnackBar(content: Text(l10n.profileSelected)));
}
Widget _buildUsuarioSalaTile(Usuario usuario) {
final l10n = AppLocalizations.of(context)!;
final nearby = context.read<ServicioNearby>();
final miClientId = nearby.miClientId;
final seleccionadoPorMi = usuario.clienteIdSeleccionado == miClientId;
@@ -872,10 +879,10 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
children: [
Text(
seleccionadoPorMi
? 'Seleccionado por este móvil'
? l10n.selectedOnThisPhone
: seleccionadoPorOtro
? 'No disponible'
: 'Disponible',
? l10n.notAvailable
: l10n.available,
),
if (usuario.medallas.isNotEmpty) ...[
const SizedBox(height: 4),

View File

@@ -40,3 +40,9 @@ flutter:
- assets/rewards/
- assets/ui/premium/
- assets/ui/generated/
- assets/ui/generated/shared/
- assets/ui/generated/main/
- assets/ui/generated/mode/
- assets/ui/generated/create_game/
- assets/ui/generated/join_lobby/
- assets/ui/generated/final_rewards/