feat: confirm before leaving a game, and fix untranslated strings
Exit confirmation - A dialog in the app's own style now guards every in-game screen. The safe action is the prominent one, so a stray tap keeps you in the game. - Eleven screens covered, against both the system back gesture and the close buttons. The message adapts: a single-device game is lost, a host ends it for everyone, a client can rejoin. - The two screens the host also opens from the manager take a flag so that back there just closes them instead of offering to quit. Translations - 21 keys were still holding the English text in Arabic, Basque, Hindi, Japanese, Korean, Dutch, Polish, Russian, Turkish and both Chinese variants: 231 strings, covering the whole multi-device flow, permissions and the mode picker. Nothing failed, the app just showed English. - The permissions dialog was hardcoded in Spanish; it is localized now. - Portuguese used Spanish gerunds where pt-PT takes "a + infinitive". Checked what looked untranslated but is not: Animals and Notes are correct Catalan, Configuration and Vibration correct French, Version correct German. Those are whitelisted in the new test rather than silently rewritten. l10n_cobertura_test guards all of it: no missing or orphan keys, no empty values, no English left outside the whitelist, and placeholders preserved.
This commit is contained in:
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "تحرير",
|
"release": "تحرير",
|
||||||
"select": "اختيار",
|
"select": "اختيار",
|
||||||
"delete": "حذف",
|
"delete": "حذف",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "اختر 3 مستخدمين على الأقل للبدء.",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "يجب أن يختار هاتف المضيف مستخدمًا واحدًا على الأقل.",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "لم تعد الغرفة في ردهة الانتظار.",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "أكمل اختيار المستخدمين للبدء.",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "جارٍ تجهيز الغرفة الآمنة",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "البحث عن جولات قريبة عبر البلوتوث",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "اضغط للانضمام",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "يلزم إذنا البلوتوث والموقع للبحث عن جولات.",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "يلزم إذنا البلوتوث والموقع",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "تعذّر بدء البحث. تحقق من البلوتوث والموقع.",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "تعذّر الاتصال بـ {host}",
|
||||||
"room": "غرفة",
|
"room": "غرفة",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "اللعب على هذا الجهاز",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "مثالي للعب معًا بتمرير الهاتف. إعداد سريع ومباشر.",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "كل لاعب على هاتفه",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "أنشئ غرفة مميزة، وشارك رمز QR، وأدر المستخدمين من ردهة الانتظار.",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "اللعب على هذا الجهاز",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "لعب متعدد الأجهزة",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "المستخدم الرئيسي للجهاز",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "تعذّر إنشاء الغرفة. تحقق من البلوتوث.",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "تعذّر البدء: {reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "غرفة غير صالحة",
|
||||||
"defaultPlayerName": "لاعب",
|
"defaultPlayerName": "لاعب",
|
||||||
"play": "العب",
|
"play": "العب",
|
||||||
"history": "السجل",
|
"history": "السجل",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "جارٍ إعادة الاتصال...",
|
"reconnecting": "جارٍ إعادة الاتصال...",
|
||||||
"reconnectingHint": "انقطع الاتصال بالمضيف. مكانك في الجولة محفوظ.",
|
"reconnectingHint": "انقطع الاتصال بالمضيف. مكانك في الجولة محفوظ.",
|
||||||
"leaveGame": "مغادرة الجولة",
|
"leaveGame": "مغادرة الجولة",
|
||||||
"playerRejoined": "عاد {name} إلى الجولة"
|
"playerRejoined": "عاد {name} إلى الجولة",
|
||||||
|
"leaveGameTitle": "هل تريد مغادرة الجولة؟",
|
||||||
|
"leaveGameSingleDevice": "ستفقد الجولة الجارية ولن يمكن استعادتها.",
|
||||||
|
"leaveGameHost": "أنت المضيف: إذا غادرت ستنتهي الجولة لجميع اللاعبين.",
|
||||||
|
"leaveGameClient": "ستغادر الجولة. يمكنك العودة ما دام المضيف يبقيها مفتوحة.",
|
||||||
|
"stayInGame": "متابعة اللعب",
|
||||||
|
"permissionsNeededTitle": "أذونات مطلوبة",
|
||||||
|
"permissionsNeededBody": "لوضع اللعب الجماعي نحتاج إلى:",
|
||||||
|
"openAppSettingsQuestion": "هل تريد فتح إعدادات التطبيق؟",
|
||||||
|
"openSettings": "فتح الإعدادات",
|
||||||
|
"permissionLocation": "الموقع",
|
||||||
|
"permissionBluetoothAdvertise": "بلوتوث (الإعلان)",
|
||||||
|
"permissionBluetoothConnect": "بلوتوث (الاتصال)",
|
||||||
|
"permissionBluetoothScan": "بلوتوث (المسح)",
|
||||||
|
"permissionNearbyWifi": "واي فاي قريب"
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-1
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "Reconnectant...",
|
"reconnecting": "Reconnectant...",
|
||||||
"reconnectingHint": "S'ha perdut la connexió amb l'amfitrió. El teu lloc a la partida es manté.",
|
"reconnectingHint": "S'ha perdut la connexió amb l'amfitrió. El teu lloc a la partida es manté.",
|
||||||
"leaveGame": "Sortir de la partida",
|
"leaveGame": "Sortir de la partida",
|
||||||
"playerRejoined": "{name} ha tornat a la partida"
|
"playerRejoined": "{name} ha tornat a la partida",
|
||||||
|
"leaveGameTitle": "Vols sortir de la partida?",
|
||||||
|
"leaveGameSingleDevice": "Es perdrà la partida en curs i no la podràs recuperar.",
|
||||||
|
"leaveGameHost": "Ets l'amfitrió: si surts, la partida s'acaba per a tots els jugadors.",
|
||||||
|
"leaveGameClient": "Sortiràs de la partida. Hi podràs tornar mentre l'amfitrió la mantingui oberta.",
|
||||||
|
"stayInGame": "Continuar jugant",
|
||||||
|
"permissionsNeededTitle": "Permisos necessaris",
|
||||||
|
"permissionsNeededBody": "Per al mode multijugador necessitem:",
|
||||||
|
"openAppSettingsQuestion": "Vols obrir la configuració de l'aplicació?",
|
||||||
|
"openSettings": "Obrir configuració",
|
||||||
|
"permissionLocation": "Ubicació",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (anunciar)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (connectar)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (escanejar)",
|
||||||
|
"permissionNearbyWifi": "Wi-Fi proper"
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-1
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "Verbindung wird wiederhergestellt ...",
|
"reconnecting": "Verbindung wird wiederhergestellt ...",
|
||||||
"reconnectingHint": "Verbindung zum Host verloren. Dein Platz im Spiel bleibt reserviert.",
|
"reconnectingHint": "Verbindung zum Host verloren. Dein Platz im Spiel bleibt reserviert.",
|
||||||
"leaveGame": "Spiel verlassen",
|
"leaveGame": "Spiel verlassen",
|
||||||
"playerRejoined": "{name} ist zurück im Spiel"
|
"playerRejoined": "{name} ist zurück im Spiel",
|
||||||
|
"leaveGameTitle": "Spiel wirklich verlassen?",
|
||||||
|
"leaveGameSingleDevice": "Das laufende Spiel geht verloren und lässt sich nicht wiederherstellen.",
|
||||||
|
"leaveGameHost": "Du bist der Host: Wenn du gehst, endet das Spiel für alle.",
|
||||||
|
"leaveGameClient": "Du verlässt das Spiel. Du kannst zurückkommen, solange der Host es offen hält.",
|
||||||
|
"stayInGame": "Weiterspielen",
|
||||||
|
"permissionsNeededTitle": "Berechtigungen erforderlich",
|
||||||
|
"permissionsNeededBody": "Für den Mehrspielermodus brauchen wir:",
|
||||||
|
"openAppSettingsQuestion": "Die App-Einstellungen öffnen?",
|
||||||
|
"openSettings": "Einstellungen öffnen",
|
||||||
|
"permissionLocation": "Standort",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (sichtbar machen)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (verbinden)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (suchen)",
|
||||||
|
"permissionNearbyWifi": "Wi-Fi in der Nähe"
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-1
@@ -375,5 +375,19 @@
|
|||||||
"reconnecting": "Reconnecting...",
|
"reconnecting": "Reconnecting...",
|
||||||
"reconnectingHint": "Lost connection to the host. Your place in the game is being held.",
|
"reconnectingHint": "Lost connection to the host. Your place in the game is being held.",
|
||||||
"leaveGame": "Leave the game",
|
"leaveGame": "Leave the game",
|
||||||
"playerRejoined": "{name} has rejoined the game"
|
"playerRejoined": "{name} has rejoined the game",
|
||||||
|
"leaveGameTitle": "Leave the game?",
|
||||||
|
"leaveGameSingleDevice": "The game in progress will be lost and cannot be recovered.",
|
||||||
|
"leaveGameHost": "You are the host: if you leave, the game ends for everyone.",
|
||||||
|
"leaveGameClient": "You will leave the game. You can rejoin while the host keeps it open.",
|
||||||
|
"stayInGame": "Keep playing",
|
||||||
|
"permissionsNeededTitle": "Permissions needed",
|
||||||
|
"permissionsNeededBody": "For multiplayer mode we need:",
|
||||||
|
"openAppSettingsQuestion": "Open the app settings?",
|
||||||
|
"openSettings": "Open settings",
|
||||||
|
"permissionLocation": "Location",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (advertise)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (connect)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (scan)",
|
||||||
|
"permissionNearbyWifi": "Nearby Wi-Fi"
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-1
@@ -417,5 +417,19 @@
|
|||||||
"type": "String"
|
"type": "String"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"leaveGameTitle": "¿Salir de la partida?",
|
||||||
|
"leaveGameSingleDevice": "Se perderá la partida en curso y no podrás recuperarla.",
|
||||||
|
"leaveGameHost": "Eres el anfitrión: si sales, la partida termina para todos los jugadores.",
|
||||||
|
"leaveGameClient": "Saldrás de la partida. Podrás volver mientras el anfitrión la mantenga abierta.",
|
||||||
|
"stayInGame": "Seguir jugando",
|
||||||
|
"permissionsNeededTitle": "Permisos necesarios",
|
||||||
|
"permissionsNeededBody": "Para el modo multijugador necesitamos:",
|
||||||
|
"openAppSettingsQuestion": "¿Abrir la configuración de la app?",
|
||||||
|
"openSettings": "Abrir configuración",
|
||||||
|
"permissionLocation": "Ubicación",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (anunciar)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (conectar)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (escanear)",
|
||||||
|
"permissionNearbyWifi": "Wi-Fi cercano"
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "Askatu",
|
"release": "Askatu",
|
||||||
"select": "Hautatu",
|
"select": "Hautatu",
|
||||||
"delete": "Ezabatu",
|
"delete": "Ezabatu",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "Hautatu gutxienez 3 erabiltzaile hasteko.",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "Ostalariaren mugikorrak gutxienez erabiltzaile bat hautatu behar du.",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "Gela jada ez dago lobbyan.",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "Osatu erabiltzaileen hautaketa hasteko.",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "Gela segurua prestatzen",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "Inguruko partidak bilatzen Bluetooth bidez",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "Sakatu batzeko",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "Bluetooth eta kokapen baimenak behar dira partidak bilatzeko.",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "Bluetooth eta kokapen baimenak behar dira",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "Ezin izan da bilaketa hasi. Egiaztatu Bluetooth eta kokapena.",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "Ezin izan da {host}(e)ra konektatu",
|
||||||
"room": "Gela",
|
"room": "Gela",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "Partida gailu honetan",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "Ezin hobea denok elkarrekin jokatzeko mugikorra pasatuz. Konfigurazio azkarra eta zuzena.",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "Jokalari bakoitza bere mugikorrean",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "Sortu gela premium bat, partekatu QR kodea eta kudeatu erabiltzaileak lobbytik.",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "Partida gailu honetan",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "Gailu anitzeko partida",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "Gailuaren erabiltzaile nagusia",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "Ezin izan da gela sortu. Egiaztatu Bluetooth.",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "Ezin da hasi: {reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "gela baliogabea",
|
||||||
"defaultPlayerName": "Jokalaria",
|
"defaultPlayerName": "Jokalaria",
|
||||||
"play": "Jokatu",
|
"play": "Jokatu",
|
||||||
"history": "Historia",
|
"history": "Historia",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "Berriz konektatzen...",
|
"reconnecting": "Berriz konektatzen...",
|
||||||
"reconnectingHint": "Ostalariarekiko konexioa galdu da. Partidan duzun lekua gordeta dago.",
|
"reconnectingHint": "Ostalariarekiko konexioa galdu da. Partidan duzun lekua gordeta dago.",
|
||||||
"leaveGame": "Partidatik irten",
|
"leaveGame": "Partidatik irten",
|
||||||
"playerRejoined": "{name} partidara itzuli da"
|
"playerRejoined": "{name} partidara itzuli da",
|
||||||
|
"leaveGameTitle": "Partidatik irten nahi duzu?",
|
||||||
|
"leaveGameSingleDevice": "Abian den partida galduko da eta ezin izango duzu berreskuratu.",
|
||||||
|
"leaveGameHost": "Zu zara ostalaria: irtenez gero, partida jokalari guztientzat amaituko da.",
|
||||||
|
"leaveGameClient": "Partidatik aterako zara. Itzuli ahal izango zara ostalariak zabalik mantentzen duen bitartean.",
|
||||||
|
"stayInGame": "Jokatzen jarraitu",
|
||||||
|
"permissionsNeededTitle": "Baimenak behar dira",
|
||||||
|
"permissionsNeededBody": "Jokalari anitzeko modurako hau behar dugu:",
|
||||||
|
"openAppSettingsQuestion": "Aplikazioaren ezarpenak ireki nahi dituzu?",
|
||||||
|
"openSettings": "Ireki ezarpenak",
|
||||||
|
"permissionLocation": "Kokapena",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (iragarri)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (konektatu)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (eskaneatu)",
|
||||||
|
"permissionNearbyWifi": "Inguruko Wi-Fi"
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-1
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "Reconnexion...",
|
"reconnecting": "Reconnexion...",
|
||||||
"reconnectingHint": "Connexion à l'hôte perdue. Votre place dans la partie est conservée.",
|
"reconnectingHint": "Connexion à l'hôte perdue. Votre place dans la partie est conservée.",
|
||||||
"leaveGame": "Quitter la partie",
|
"leaveGame": "Quitter la partie",
|
||||||
"playerRejoined": "{name} a rejoint la partie"
|
"playerRejoined": "{name} a rejoint la partie",
|
||||||
|
"leaveGameTitle": "Quitter la partie ?",
|
||||||
|
"leaveGameSingleDevice": "La partie en cours sera perdue et ne pourra pas être récupérée.",
|
||||||
|
"leaveGameHost": "Vous êtes l'hôte : si vous partez, la partie se termine pour tout le monde.",
|
||||||
|
"leaveGameClient": "Vous quitterez la partie. Vous pourrez revenir tant que l'hôte la laisse ouverte.",
|
||||||
|
"stayInGame": "Continuer à jouer",
|
||||||
|
"permissionsNeededTitle": "Autorisations nécessaires",
|
||||||
|
"permissionsNeededBody": "Pour le mode multijoueur, nous avons besoin de :",
|
||||||
|
"openAppSettingsQuestion": "Ouvrir les paramètres de l'application ?",
|
||||||
|
"openSettings": "Ouvrir les paramètres",
|
||||||
|
"permissionLocation": "Localisation",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (diffusion)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (connexion)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (recherche)",
|
||||||
|
"permissionNearbyWifi": "Wi-Fi à proximité"
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "छोड़ें",
|
"release": "छोड़ें",
|
||||||
"select": "चुनें",
|
"select": "चुनें",
|
||||||
"delete": "हटाएँ",
|
"delete": "हटाएँ",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "शुरू करने के लिए कम से कम 3 उपयोगकर्ता चुनें।",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "होस्ट फ़ोन को कम से कम एक उपयोगकर्ता चुनना होगा।",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "कमरा अब लॉबी में नहीं है।",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "शुरू करने के लिए उपयोगकर्ताओं का चयन पूरा करें।",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "सुरक्षित कमरा तैयार किया जा रहा है",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "ब्लूटूथ से आस-पास के गेम खोजे जा रहे हैं",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "शामिल होने के लिए टैप करें",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "गेम खोजने के लिए ब्लूटूथ और लोकेशन की अनुमति चाहिए।",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "ब्लूटूथ और लोकेशन की अनुमति चाहिए",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "खोज शुरू नहीं हो सकी। ब्लूटूथ और लोकेशन जाँचें।",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "{host} से कनेक्ट नहीं हो सका",
|
||||||
"room": "कक्ष",
|
"room": "कक्ष",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "इसी डिवाइस पर खेल",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "फ़ोन एक-दूसरे को देकर साथ खेलने के लिए बढ़िया। सेटअप तेज़ और सीधा।",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "हर खिलाड़ी अपने फ़ोन पर",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "एक प्रीमियम कमरा बनाएँ, QR साझा करें और लॉबी से उपयोगकर्ता संभालें।",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "इसी डिवाइस पर खेल",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "मल्टी-डिवाइस खेल",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "डिवाइस का मुख्य उपयोगकर्ता",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "कमरा नहीं बन सका। ब्लूटूथ जाँचें।",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "शुरू नहीं हो सकता: {reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "अमान्य कमरा",
|
||||||
"defaultPlayerName": "खिलाड़ी",
|
"defaultPlayerName": "खिलाड़ी",
|
||||||
"play": "खेलें",
|
"play": "खेलें",
|
||||||
"history": "इतिहास",
|
"history": "इतिहास",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "फिर से कनेक्ट हो रहा है...",
|
"reconnecting": "फिर से कनेक्ट हो रहा है...",
|
||||||
"reconnectingHint": "होस्ट से कनेक्शन टूट गया। खेल में आपकी जगह सुरक्षित है।",
|
"reconnectingHint": "होस्ट से कनेक्शन टूट गया। खेल में आपकी जगह सुरक्षित है।",
|
||||||
"leaveGame": "खेल छोड़ें",
|
"leaveGame": "खेल छोड़ें",
|
||||||
"playerRejoined": "{name} खेल में वापस आ गए"
|
"playerRejoined": "{name} खेल में वापस आ गए",
|
||||||
|
"leaveGameTitle": "खेल छोड़ना है?",
|
||||||
|
"leaveGameSingleDevice": "चल रहा खेल ख़त्म हो जाएगा और वापस नहीं मिलेगा।",
|
||||||
|
"leaveGameHost": "आप होस्ट हैं: आपके जाने पर सभी खिलाड़ियों का खेल ख़त्म हो जाएगा।",
|
||||||
|
"leaveGameClient": "आप खेल से बाहर निकल जाएँगे। जब तक होस्ट इसे खुला रखे, आप लौट सकते हैं।",
|
||||||
|
"stayInGame": "खेलते रहें",
|
||||||
|
"permissionsNeededTitle": "अनुमतियाँ चाहिए",
|
||||||
|
"permissionsNeededBody": "मल्टीप्लेयर मोड के लिए हमें चाहिए:",
|
||||||
|
"openAppSettingsQuestion": "क्या ऐप की सेटिंग खोलें?",
|
||||||
|
"openSettings": "सेटिंग खोलें",
|
||||||
|
"permissionLocation": "लोकेशन",
|
||||||
|
"permissionBluetoothAdvertise": "ब्लूटूथ (प्रसारण)",
|
||||||
|
"permissionBluetoothConnect": "ब्लूटूथ (कनेक्ट)",
|
||||||
|
"permissionBluetoothScan": "ब्लूटूथ (स्कैन)",
|
||||||
|
"permissionNearbyWifi": "आस-पास का वाई-फ़ाई"
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-1
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "Riconnessione...",
|
"reconnecting": "Riconnessione...",
|
||||||
"reconnectingHint": "Connessione con l'host persa. Il tuo posto nella partita resta riservato.",
|
"reconnectingHint": "Connessione con l'host persa. Il tuo posto nella partita resta riservato.",
|
||||||
"leaveGame": "Esci dalla partita",
|
"leaveGame": "Esci dalla partita",
|
||||||
"playerRejoined": "{name} è tornato in partita"
|
"playerRejoined": "{name} è tornato in partita",
|
||||||
|
"leaveGameTitle": "Vuoi uscire dalla partita?",
|
||||||
|
"leaveGameSingleDevice": "La partita in corso andrà persa e non potrà essere recuperata.",
|
||||||
|
"leaveGameHost": "Sei l'host: se esci, la partita finisce per tutti i giocatori.",
|
||||||
|
"leaveGameClient": "Uscirai dalla partita. Potrai rientrare finché l'host la tiene aperta.",
|
||||||
|
"stayInGame": "Continua a giocare",
|
||||||
|
"permissionsNeededTitle": "Autorizzazioni necessarie",
|
||||||
|
"permissionsNeededBody": "Per la modalità multigiocatore servono:",
|
||||||
|
"openAppSettingsQuestion": "Vuoi aprire le impostazioni dell'app?",
|
||||||
|
"openSettings": "Apri impostazioni",
|
||||||
|
"permissionLocation": "Posizione",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (annuncio)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (connessione)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (scansione)",
|
||||||
|
"permissionNearbyWifi": "Wi-Fi nelle vicinanze"
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "解除",
|
"release": "解除",
|
||||||
"select": "選択",
|
"select": "選択",
|
||||||
"delete": "削除",
|
"delete": "削除",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "開始するには3人以上のユーザーを選んでください。",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "ホストの端末は少なくとも1人のユーザーを選ぶ必要があります。",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "ルームはすでにロビーにありません。",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "開始するにはユーザーの選択を完了してください。",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "安全なルームを準備しています",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "Bluetoothで近くのゲームを検索しています",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "タップして参加",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "ゲームを検索するにはBluetoothと位置情報の許可が必要です。",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "Bluetoothと位置情報の許可が必要です",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "検索を開始できませんでした。Bluetoothと位置情報を確認してください。",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "{host} に接続できませんでした",
|
||||||
"room": "ルーム",
|
"room": "ルーム",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "この端末でプレイ",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "端末を回しながらみんなで遊ぶのに最適。設定はすばやく簡単。",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "プレイヤーごとに自分の端末で",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "プレミアムなルームを作り、QRコードを共有し、ロビーからユーザーを管理します。",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "この端末でのゲーム",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "マルチデバイスのゲーム",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "この端末のメインユーザー",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "ルームを作成できませんでした。Bluetoothを確認してください。",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "開始できません: {reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "無効なルーム",
|
||||||
"defaultPlayerName": "プレイヤー",
|
"defaultPlayerName": "プレイヤー",
|
||||||
"play": "プレイ",
|
"play": "プレイ",
|
||||||
"history": "履歴",
|
"history": "履歴",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "再接続しています...",
|
"reconnecting": "再接続しています...",
|
||||||
"reconnectingHint": "ホストとの接続が切れました。ゲーム内のあなたの席は確保されています。",
|
"reconnectingHint": "ホストとの接続が切れました。ゲーム内のあなたの席は確保されています。",
|
||||||
"leaveGame": "ゲームから退出",
|
"leaveGame": "ゲームから退出",
|
||||||
"playerRejoined": "{name} がゲームに復帰しました"
|
"playerRejoined": "{name} がゲームに復帰しました",
|
||||||
|
"leaveGameTitle": "ゲームから退出しますか?",
|
||||||
|
"leaveGameSingleDevice": "進行中のゲームは失われ、元に戻せません。",
|
||||||
|
"leaveGameHost": "あなたはホストです。退出すると全員のゲームが終了します。",
|
||||||
|
"leaveGameClient": "ゲームから退出します。ホストが開いている間は戻れます。",
|
||||||
|
"stayInGame": "ゲームを続ける",
|
||||||
|
"permissionsNeededTitle": "必要な権限",
|
||||||
|
"permissionsNeededBody": "マルチプレイには次の権限が必要です:",
|
||||||
|
"openAppSettingsQuestion": "アプリの設定を開きますか?",
|
||||||
|
"openSettings": "設定を開く",
|
||||||
|
"permissionLocation": "位置情報",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth(アドバタイズ)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth(接続)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth(スキャン)",
|
||||||
|
"permissionNearbyWifi": "近くのWi-Fi"
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "해제",
|
"release": "해제",
|
||||||
"select": "선택",
|
"select": "선택",
|
||||||
"delete": "삭제",
|
"delete": "삭제",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "시작하려면 사용자를 3명 이상 선택하세요.",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "호스트 기기는 사용자를 최소 한 명 선택해야 합니다.",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "방이 더 이상 대기실에 없습니다.",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "시작하려면 사용자 선택을 마치세요.",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "보안 방을 준비하는 중",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "블루투스로 근처 게임을 찾는 중",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "눌러서 참여하기",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "게임을 찾으려면 블루투스와 위치 권한이 필요합니다.",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "블루투스와 위치 권한이 필요합니다",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "검색을 시작할 수 없습니다. 블루투스와 위치를 확인하세요.",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "{host}에 연결할 수 없습니다",
|
||||||
"room": "방",
|
"room": "방",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "이 기기에서 진행",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "휴대전화를 돌려 가며 함께 놀기에 좋습니다. 설정이 빠르고 간단합니다.",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "각자 자기 휴대전화로",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "프리미엄 방을 만들고 QR 코드를 공유하며 대기실에서 사용자를 관리하세요.",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "이 기기에서 하는 게임",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "여러 기기로 하는 게임",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "이 기기의 주 사용자",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "방을 만들 수 없습니다. 블루투스를 확인하세요.",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "시작할 수 없습니다: {reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "잘못된 방",
|
||||||
"defaultPlayerName": "플레이어",
|
"defaultPlayerName": "플레이어",
|
||||||
"play": "플레이",
|
"play": "플레이",
|
||||||
"history": "기록",
|
"history": "기록",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "다시 연결하는 중...",
|
"reconnecting": "다시 연결하는 중...",
|
||||||
"reconnectingHint": "호스트와의 연결이 끊겼습니다. 게임 내 자리는 유지됩니다.",
|
"reconnectingHint": "호스트와의 연결이 끊겼습니다. 게임 내 자리는 유지됩니다.",
|
||||||
"leaveGame": "게임 나가기",
|
"leaveGame": "게임 나가기",
|
||||||
"playerRejoined": "{name} 님이 게임에 복귀했습니다"
|
"playerRejoined": "{name} 님이 게임에 복귀했습니다",
|
||||||
|
"leaveGameTitle": "게임에서 나갈까요?",
|
||||||
|
"leaveGameSingleDevice": "진행 중인 게임이 사라지며 되돌릴 수 없습니다.",
|
||||||
|
"leaveGameHost": "당신은 호스트입니다. 나가면 모두의 게임이 끝납니다.",
|
||||||
|
"leaveGameClient": "게임에서 나갑니다. 호스트가 열어 두는 동안에는 다시 들어올 수 있습니다.",
|
||||||
|
"stayInGame": "계속 하기",
|
||||||
|
"permissionsNeededTitle": "필요한 권한",
|
||||||
|
"permissionsNeededBody": "멀티플레이 모드에는 다음 권한이 필요합니다:",
|
||||||
|
"openAppSettingsQuestion": "앱 설정을 열까요?",
|
||||||
|
"openSettings": "설정 열기",
|
||||||
|
"permissionLocation": "위치",
|
||||||
|
"permissionBluetoothAdvertise": "블루투스(광고)",
|
||||||
|
"permissionBluetoothConnect": "블루투스(연결)",
|
||||||
|
"permissionBluetoothScan": "블루투스(검색)",
|
||||||
|
"permissionNearbyWifi": "근처 Wi-Fi"
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "Vrijgeven",
|
"release": "Vrijgeven",
|
||||||
"select": "Selecteren",
|
"select": "Selecteren",
|
||||||
"delete": "Verwijderen",
|
"delete": "Verwijderen",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "Selecteer minstens 3 gebruikers om te starten.",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "De host-telefoon moet minstens één gebruiker selecteren.",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "De ruimte is niet meer in de lobby.",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "Voltooi de gebruikersselectie om te starten.",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "Beveiligde ruimte voorbereiden",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "Zoeken naar spellen in de buurt via Bluetooth",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "Tik om deel te nemen",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "Bluetooth- en locatietoestemming zijn nodig om spellen te zoeken.",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "Bluetooth- en locatietoestemming zijn nodig",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "Kon het zoeken niet starten. Controleer Bluetooth en locatie.",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "Kon geen verbinding maken met {host}",
|
||||||
"room": "Kamer",
|
"room": "Kamer",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "Spel op dit toestel",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "Ideaal om samen te spelen door de telefoon door te geven. Snel en direct ingesteld.",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "Elke speler op zijn eigen telefoon",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "Maak een premium ruimte, deel de QR-code en beheer gebruikers vanuit de lobby.",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "Spel op dit toestel",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "Spel met meerdere toestellen",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "Hoofdgebruiker van dit toestel",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "Kon de ruimte niet aanmaken. Controleer Bluetooth.",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "Kan niet starten: {reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "ongeldige ruimte",
|
||||||
"defaultPlayerName": "Speler",
|
"defaultPlayerName": "Speler",
|
||||||
"play": "Spelen",
|
"play": "Spelen",
|
||||||
"history": "Geschiedenis",
|
"history": "Geschiedenis",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "Opnieuw verbinden...",
|
"reconnecting": "Opnieuw verbinden...",
|
||||||
"reconnectingHint": "Verbinding met de host verbroken. Je plek in het spel blijft behouden.",
|
"reconnectingHint": "Verbinding met de host verbroken. Je plek in het spel blijft behouden.",
|
||||||
"leaveGame": "Spel verlaten",
|
"leaveGame": "Spel verlaten",
|
||||||
"playerRejoined": "{name} is terug in het spel"
|
"playerRejoined": "{name} is terug in het spel",
|
||||||
|
"leaveGameTitle": "Het spel verlaten?",
|
||||||
|
"leaveGameSingleDevice": "Het lopende spel gaat verloren en kan niet worden hersteld.",
|
||||||
|
"leaveGameHost": "Jij bent de host: als je weggaat, eindigt het spel voor iedereen.",
|
||||||
|
"leaveGameClient": "Je verlaat het spel. Je kunt terugkomen zolang de host het openhoudt.",
|
||||||
|
"stayInGame": "Verder spelen",
|
||||||
|
"permissionsNeededTitle": "Toestemmingen nodig",
|
||||||
|
"permissionsNeededBody": "Voor de multiplayermodus hebben we nodig:",
|
||||||
|
"openAppSettingsQuestion": "De app-instellingen openen?",
|
||||||
|
"openSettings": "Instellingen openen",
|
||||||
|
"permissionLocation": "Locatie",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (zichtbaar maken)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (verbinden)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (scannen)",
|
||||||
|
"permissionNearbyWifi": "Wi-Fi in de buurt"
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "Zwolnij",
|
"release": "Zwolnij",
|
||||||
"select": "Wybierz",
|
"select": "Wybierz",
|
||||||
"delete": "Usuń",
|
"delete": "Usuń",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "Wybierz co najmniej 3 użytkowników, aby rozpocząć.",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "Telefon gospodarza musi wybrać przynajmniej jednego użytkownika.",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "Pokój nie jest już w poczekalni.",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "Dokończ wybór użytkowników, aby rozpocząć.",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "Przygotowywanie bezpiecznego pokoju",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "Szukanie gier w pobliżu przez Bluetooth",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "Dotknij, aby dołączyć",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "Do wyszukiwania gier potrzebne są uprawnienia Bluetooth i lokalizacji.",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "Potrzebne są uprawnienia Bluetooth i lokalizacji",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "Nie udało się rozpocząć wyszukiwania. Sprawdź Bluetooth i lokalizację.",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "Nie udało się połączyć z {host}",
|
||||||
"room": "Pokój",
|
"room": "Pokój",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "Gra na tym urządzeniu",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "Idealne do wspólnej gry, podając telefon dalej. Szybka i prosta konfiguracja.",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "Każdy gracz na swoim telefonie",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "Utwórz pokój premium, udostępnij kod QR i zarządzaj graczami z poczekalni.",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "Gra na tym urządzeniu",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "Gra na wielu urządzeniach",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "Główny użytkownik urządzenia",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "Nie udało się utworzyć pokoju. Sprawdź Bluetooth.",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "Nie można rozpocząć: {reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "nieprawidłowy pokój",
|
||||||
"defaultPlayerName": "Gracz",
|
"defaultPlayerName": "Gracz",
|
||||||
"play": "Graj",
|
"play": "Graj",
|
||||||
"history": "Historia",
|
"history": "Historia",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "Ponowne łączenie...",
|
"reconnecting": "Ponowne łączenie...",
|
||||||
"reconnectingHint": "Utracono połączenie z gospodarzem. Twoje miejsce w grze jest zachowane.",
|
"reconnectingHint": "Utracono połączenie z gospodarzem. Twoje miejsce w grze jest zachowane.",
|
||||||
"leaveGame": "Opuść grę",
|
"leaveGame": "Opuść grę",
|
||||||
"playerRejoined": "{name} wrócił(a) do gry"
|
"playerRejoined": "{name} wrócił(a) do gry",
|
||||||
|
"leaveGameTitle": "Opuścić grę?",
|
||||||
|
"leaveGameSingleDevice": "Trwająca gra zostanie utracona i nie da się jej odzyskać.",
|
||||||
|
"leaveGameHost": "Jesteś gospodarzem: jeśli wyjdziesz, gra kończy się dla wszystkich.",
|
||||||
|
"leaveGameClient": "Opuścisz grę. Możesz wrócić, dopóki gospodarz jej nie zamknie.",
|
||||||
|
"stayInGame": "Graj dalej",
|
||||||
|
"permissionsNeededTitle": "Wymagane uprawnienia",
|
||||||
|
"permissionsNeededBody": "Do trybu wieloosobowego potrzebujemy:",
|
||||||
|
"openAppSettingsQuestion": "Otworzyć ustawienia aplikacji?",
|
||||||
|
"openSettings": "Otwórz ustawienia",
|
||||||
|
"permissionLocation": "Lokalizacja",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (rozgłaszanie)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (łączenie)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (skanowanie)",
|
||||||
|
"permissionNearbyWifi": "Wi-Fi w pobliżu"
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-4
@@ -6,7 +6,7 @@
|
|||||||
"matchRewards": "Recompensas da partida",
|
"matchRewards": "Recompensas da partida",
|
||||||
"newMedals": "Novas medalhas",
|
"newMedals": "Novas medalhas",
|
||||||
"noNewMedalsKeepFire": "Sem medalhas novas desta vez. Continua a acumular fogo.",
|
"noNewMedalsKeepFire": "Sem medalhas novas desta vez. Continua a acumular fogo.",
|
||||||
"calculatingRewards": "Calculando recompensas...",
|
"calculatingRewards": "A calcular recompensas...",
|
||||||
"fireLabel": "Fogo",
|
"fireLabel": "Fogo",
|
||||||
"playersRange": "3-20 jogadores • Sem internet",
|
"playersRange": "3-20 jogadores • Sem internet",
|
||||||
"createGame": "Criar partida",
|
"createGame": "Criar partida",
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
},
|
},
|
||||||
"holdToSeeWord": "Mantenha pressionado para ver sua palavra",
|
"holdToSeeWord": "Mantenha pressionado para ver sua palavra",
|
||||||
"makeSureNoOneLooks": "Certifique-se de que ninguém mais está olhando",
|
"makeSureNoOneLooks": "Certifique-se de que ninguém mais está olhando",
|
||||||
"showingWord": "👁️ Mostrando...",
|
"showingWord": "👁️ A mostrar...",
|
||||||
"holdToSee": "👆 Mantenha pressionado para ver",
|
"holdToSee": "👆 Mantenha pressionado para ver",
|
||||||
"seenMyWord": "Já vi minha palavra",
|
"seenMyWord": "Já vi minha palavra",
|
||||||
"debateRound": "Debate - Rodada {round}",
|
"debateRound": "Debate - Rodada {round}",
|
||||||
@@ -133,7 +133,7 @@
|
|||||||
"tapToReveal": "Toque para revelar o resultado",
|
"tapToReveal": "Toque para revelar o resultado",
|
||||||
"revealResult": "Revelar resultado",
|
"revealResult": "Revelar resultado",
|
||||||
"result": "Resultado",
|
"result": "Resultado",
|
||||||
"revealing": "Revelando...",
|
"revealing": "A revelar...",
|
||||||
"wasImpostor": "Era IMPOSTOR! 🎉",
|
"wasImpostor": "Era IMPOSTOR! 🎉",
|
||||||
"wasInnocent": "Era INOCENTE 😱",
|
"wasInnocent": "Era INOCENTE 😱",
|
||||||
"votesThisRound": "Votos desta rodada",
|
"votesThisRound": "Votos desta rodada",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "A religar...",
|
"reconnecting": "A religar...",
|
||||||
"reconnectingHint": "Perdeu-se a ligação ao anfitrião. O teu lugar no jogo mantém-se.",
|
"reconnectingHint": "Perdeu-se a ligação ao anfitrião. O teu lugar no jogo mantém-se.",
|
||||||
"leaveGame": "Sair do jogo",
|
"leaveGame": "Sair do jogo",
|
||||||
"playerRejoined": "{name} voltou ao jogo"
|
"playerRejoined": "{name} voltou ao jogo",
|
||||||
|
"leaveGameTitle": "Sair do jogo?",
|
||||||
|
"leaveGameSingleDevice": "O jogo em curso perde-se e não poderá ser recuperado.",
|
||||||
|
"leaveGameHost": "És o anfitrião: se saíres, o jogo termina para todos os jogadores.",
|
||||||
|
"leaveGameClient": "Vais sair do jogo. Podes voltar enquanto o anfitrião o mantiver aberto.",
|
||||||
|
"stayInGame": "Continuar a jogar",
|
||||||
|
"permissionsNeededTitle": "Permissões necessárias",
|
||||||
|
"permissionsNeededBody": "Para o modo multijogador precisamos de:",
|
||||||
|
"openAppSettingsQuestion": "Abrir as definições da aplicação?",
|
||||||
|
"openSettings": "Abrir definições",
|
||||||
|
"permissionLocation": "Localização",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (anunciar)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (ligar)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (procurar)",
|
||||||
|
"permissionNearbyWifi": "Wi-Fi por perto"
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "Освободить",
|
"release": "Освободить",
|
||||||
"select": "Выбрать",
|
"select": "Выбрать",
|
||||||
"delete": "Удалить",
|
"delete": "Удалить",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "Выберите не менее 3 пользователей, чтобы начать.",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "Телефон ведущего должен выбрать хотя бы одного пользователя.",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "Комната больше не в лобби.",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "Завершите выбор пользователей, чтобы начать.",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "Подготовка защищённой комнаты",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "Поиск игр поблизости через Bluetooth",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "Нажмите, чтобы присоединиться",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "Для поиска игр нужны разрешения Bluetooth и геолокации.",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "Нужны разрешения Bluetooth и геолокации",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "Не удалось начать поиск. Проверьте Bluetooth и геолокацию.",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "Не удалось подключиться к {host}",
|
||||||
"room": "Комната",
|
"room": "Комната",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "Игра на этом устройстве",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "Идеально, чтобы играть вместе, передавая телефон. Быстрая и простая настройка.",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "Каждый игрок на своём телефоне",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "Создайте премиум-комнату, поделитесь QR-кодом и управляйте игроками из лобби.",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "Игра на этом устройстве",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "Игра на нескольких устройствах",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "Основной пользователь устройства",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "Не удалось создать комнату. Проверьте Bluetooth.",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "Невозможно начать: {reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "недопустимая комната",
|
||||||
"defaultPlayerName": "Игрок",
|
"defaultPlayerName": "Игрок",
|
||||||
"play": "Играть",
|
"play": "Играть",
|
||||||
"history": "История",
|
"history": "История",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "Переподключение...",
|
"reconnecting": "Переподключение...",
|
||||||
"reconnectingHint": "Соединение с ведущим потеряно. Ваше место в игре сохраняется.",
|
"reconnectingHint": "Соединение с ведущим потеряно. Ваше место в игре сохраняется.",
|
||||||
"leaveGame": "Выйти из игры",
|
"leaveGame": "Выйти из игры",
|
||||||
"playerRejoined": "{name} вернулся в игру"
|
"playerRejoined": "{name} вернулся в игру",
|
||||||
|
"leaveGameTitle": "Выйти из игры?",
|
||||||
|
"leaveGameSingleDevice": "Текущая партия будет потеряна без возможности восстановления.",
|
||||||
|
"leaveGameHost": "Вы ведущий: если вы выйдете, игра закончится для всех.",
|
||||||
|
"leaveGameClient": "Вы выйдете из игры. Вы сможете вернуться, пока ведущий её не закрыл.",
|
||||||
|
"stayInGame": "Продолжить игру",
|
||||||
|
"permissionsNeededTitle": "Нужны разрешения",
|
||||||
|
"permissionsNeededBody": "Для многопользовательского режима нужны:",
|
||||||
|
"openAppSettingsQuestion": "Открыть настройки приложения?",
|
||||||
|
"openSettings": "Открыть настройки",
|
||||||
|
"permissionLocation": "Геолокация",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (объявление)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (подключение)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (сканирование)",
|
||||||
|
"permissionNearbyWifi": "Wi-Fi поблизости"
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "Bırak",
|
"release": "Bırak",
|
||||||
"select": "Seç",
|
"select": "Seç",
|
||||||
"delete": "Sil",
|
"delete": "Sil",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "Başlamak için en az 3 kullanıcı seç.",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "Sunucu telefonu en az bir kullanıcı seçmeli.",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "Oda artık lobide değil.",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "Başlamak için kullanıcı seçimini tamamla.",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "Güvenli oda hazırlanıyor",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "Bluetooth ile yakındaki oyunlar aranıyor",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "Katılmak için dokun",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "Oyun aramak için Bluetooth ve konum izinleri gerekli.",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "Bluetooth ve konum izinleri gerekli",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "Arama başlatılamadı. Bluetooth ve konumu kontrol et.",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "{host} bağlantısı kurulamadı",
|
||||||
"room": "Oda",
|
"room": "Oda",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "Bu cihazda oyun",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "Telefonu elden ele dolaştırarak birlikte oynamak için ideal. Hızlı ve doğrudan kurulum.",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "Her oyuncu kendi telefonunda",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "Premium bir oda oluştur, QR kodu paylaş ve kullanıcıları lobiden yönet.",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "Bu cihazda oyun",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "Çok cihazlı oyun",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "Cihazın ana kullanıcısı",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "Oda oluşturulamadı. Bluetooth'u kontrol et.",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "Başlatılamıyor: {reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "geçersiz oda",
|
||||||
"defaultPlayerName": "Oyuncu",
|
"defaultPlayerName": "Oyuncu",
|
||||||
"play": "Oyna",
|
"play": "Oyna",
|
||||||
"history": "Geçmiş",
|
"history": "Geçmiş",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "Yeniden bağlanılıyor...",
|
"reconnecting": "Yeniden bağlanılıyor...",
|
||||||
"reconnectingHint": "Sunucuyla bağlantı koptu. Oyundaki yerin korunuyor.",
|
"reconnectingHint": "Sunucuyla bağlantı koptu. Oyundaki yerin korunuyor.",
|
||||||
"leaveGame": "Oyundan ayrıl",
|
"leaveGame": "Oyundan ayrıl",
|
||||||
"playerRejoined": "{name} oyuna geri döndü"
|
"playerRejoined": "{name} oyuna geri döndü",
|
||||||
|
"leaveGameTitle": "Oyundan çıkılsın mı?",
|
||||||
|
"leaveGameSingleDevice": "Devam eden oyun kaybolur ve geri getirilemez.",
|
||||||
|
"leaveGameHost": "Sunucu sensin: çıkarsan oyun herkes için biter.",
|
||||||
|
"leaveGameClient": "Oyundan çıkacaksın. Sunucu odayı açık tuttuğu sürece geri dönebilirsin.",
|
||||||
|
"stayInGame": "Oynamaya devam et",
|
||||||
|
"permissionsNeededTitle": "Gerekli izinler",
|
||||||
|
"permissionsNeededBody": "Çok oyunculu mod için şunlar gerekli:",
|
||||||
|
"openAppSettingsQuestion": "Uygulama ayarları açılsın mı?",
|
||||||
|
"openSettings": "Ayarları aç",
|
||||||
|
"permissionLocation": "Konum",
|
||||||
|
"permissionBluetoothAdvertise": "Bluetooth (yayın)",
|
||||||
|
"permissionBluetoothConnect": "Bluetooth (bağlanma)",
|
||||||
|
"permissionBluetoothScan": "Bluetooth (tarama)",
|
||||||
|
"permissionNearbyWifi": "Yakındaki Wi-Fi"
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "释放",
|
"release": "释放",
|
||||||
"select": "选择",
|
"select": "选择",
|
||||||
"delete": "删除",
|
"delete": "删除",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "至少选择 3 名用户才能开始。",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "房主的手机必须至少选择一名用户。",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "房间已不在等候大厅。",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "完成用户选择后才能开始。",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "正在准备安全房间",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "正在通过蓝牙搜索附近的游戏",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "点击加入",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "搜索游戏需要蓝牙和定位权限。",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "需要蓝牙和定位权限",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "无法开始搜索。请检查蓝牙和定位。",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "无法连接到 {host}",
|
||||||
"room": "房间",
|
"room": "房间",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "在这台设备上游戏",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "适合大家传着手机一起玩。设置快速直接。",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "每位玩家用自己的手机",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "创建高级房间,分享二维码,并在大厅管理用户。",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "本机游戏",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "多设备游戏",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "本机主用户",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "无法创建房间。请检查蓝牙。",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "无法开始:{reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "无效的房间",
|
||||||
"defaultPlayerName": "玩家",
|
"defaultPlayerName": "玩家",
|
||||||
"play": "开始",
|
"play": "开始",
|
||||||
"history": "历史",
|
"history": "历史",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "正在重新连接…",
|
"reconnecting": "正在重新连接…",
|
||||||
"reconnectingHint": "与房主的连接已断开。你在游戏中的位置仍为你保留。",
|
"reconnectingHint": "与房主的连接已断开。你在游戏中的位置仍为你保留。",
|
||||||
"leaveGame": "退出游戏",
|
"leaveGame": "退出游戏",
|
||||||
"playerRejoined": "{name} 已重新加入游戏"
|
"playerRejoined": "{name} 已重新加入游戏",
|
||||||
|
"leaveGameTitle": "要退出游戏吗?",
|
||||||
|
"leaveGameSingleDevice": "正在进行的游戏将会丢失,且无法恢复。",
|
||||||
|
"leaveGameHost": "你是房主:一旦退出,所有玩家的游戏都会结束。",
|
||||||
|
"leaveGameClient": "你将退出这局游戏。只要房主还开着,你随时可以回来。",
|
||||||
|
"stayInGame": "继续游戏",
|
||||||
|
"permissionsNeededTitle": "需要权限",
|
||||||
|
"permissionsNeededBody": "多人游戏模式需要以下权限:",
|
||||||
|
"openAppSettingsQuestion": "要打开应用设置吗?",
|
||||||
|
"openSettings": "打开设置",
|
||||||
|
"permissionLocation": "定位",
|
||||||
|
"permissionBluetoothAdvertise": "蓝牙(广播)",
|
||||||
|
"permissionBluetoothConnect": "蓝牙(连接)",
|
||||||
|
"permissionBluetoothScan": "蓝牙(扫描)",
|
||||||
|
"permissionNearbyWifi": "附近的 Wi-Fi"
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-22
@@ -246,28 +246,28 @@
|
|||||||
"release": "释放",
|
"release": "释放",
|
||||||
"select": "选择",
|
"select": "选择",
|
||||||
"delete": "删除",
|
"delete": "删除",
|
||||||
"selectAtLeastThreeUsersToStart": "Select at least 3 users to start.",
|
"selectAtLeastThreeUsersToStart": "至少選擇 3 名使用者才能開始。",
|
||||||
"hostPhoneMustSelectUser": "The host phone must select at least one user.",
|
"hostPhoneMustSelectUser": "房主的手機必須至少選擇一名使用者。",
|
||||||
"roomNoLongerInLobby": "The room is no longer in the lobby.",
|
"roomNoLongerInLobby": "房間已不在等候大廳。",
|
||||||
"completeUserSelectionToStart": "Complete user selection to start.",
|
"completeUserSelectionToStart": "完成使用者選擇後才能開始。",
|
||||||
"preparingSecureRoom": "Preparing the secure room",
|
"preparingSecureRoom": "正在準備安全房間",
|
||||||
"searchingNearbyBluetoothGames": "Searching nearby games over Bluetooth",
|
"searchingNearbyBluetoothGames": "正在透過藍牙搜尋附近的遊戲",
|
||||||
"tapToJoin": "Tap to join",
|
"tapToJoin": "點擊加入",
|
||||||
"bluetoothLocationPermissionsRequired": "Bluetooth and location permissions are required to search for games.",
|
"bluetoothLocationPermissionsRequired": "搜尋遊戲需要藍牙和定位權限。",
|
||||||
"bluetoothLocationPermissionsShort": "Bluetooth and location permissions are required",
|
"bluetoothLocationPermissionsShort": "需要藍牙和定位權限",
|
||||||
"couldNotStartSearch": "Could not start the search. Check Bluetooth and location.",
|
"couldNotStartSearch": "無法開始搜尋。請檢查藍牙和定位。",
|
||||||
"couldNotConnectToHost": "Could not connect to {host}",
|
"couldNotConnectToHost": "無法連線到 {host}",
|
||||||
"room": "房间",
|
"room": "房间",
|
||||||
"singleDeviceSubtitle": "Game on this device",
|
"singleDeviceSubtitle": "在這台裝置上遊戲",
|
||||||
"singleDeviceDescription": "Ideal for playing together by passing the phone around. Fast, direct setup.",
|
"singleDeviceDescription": "適合大家傳著手機一起玩。設定快速直接。",
|
||||||
"multiDeviceSubtitle": "Each player on their phone",
|
"multiDeviceSubtitle": "每位玩家用自己的手機",
|
||||||
"multiDeviceDescription": "Create a premium room, share the QR code and manage users from the lobby.",
|
"multiDeviceDescription": "建立高級房間,分享 QR Code,並在大廳管理使用者。",
|
||||||
"singleDeviceGameLabel": "Game on this device",
|
"singleDeviceGameLabel": "本機遊戲",
|
||||||
"multiDeviceGameLabel": "Multi-device game",
|
"multiDeviceGameLabel": "多裝置遊戲",
|
||||||
"mainDeviceUser": "Main device user",
|
"mainDeviceUser": "本機主要使用者",
|
||||||
"couldNotCreateRoom": "Could not create the room. Check Bluetooth.",
|
"couldNotCreateRoom": "無法建立房間。請檢查藍牙。",
|
||||||
"cannotStartWithReason": "Cannot start: {reason}",
|
"cannotStartWithReason": "無法開始:{reason}",
|
||||||
"invalidRoom": "invalid room",
|
"invalidRoom": "無效的房間",
|
||||||
"defaultPlayerName": "玩家",
|
"defaultPlayerName": "玩家",
|
||||||
"play": "開始",
|
"play": "開始",
|
||||||
"history": "紀錄",
|
"history": "紀錄",
|
||||||
@@ -368,5 +368,19 @@
|
|||||||
"reconnecting": "正在重新連線…",
|
"reconnecting": "正在重新連線…",
|
||||||
"reconnectingHint": "與房主的連線已中斷。你在遊戲中的位置仍為你保留。",
|
"reconnectingHint": "與房主的連線已中斷。你在遊戲中的位置仍為你保留。",
|
||||||
"leaveGame": "退出遊戲",
|
"leaveGame": "退出遊戲",
|
||||||
"playerRejoined": "{name} 已重新加入遊戲"
|
"playerRejoined": "{name} 已重新加入遊戲",
|
||||||
|
"leaveGameTitle": "要退出遊戲嗎?",
|
||||||
|
"leaveGameSingleDevice": "正在進行的遊戲將會遺失,且無法復原。",
|
||||||
|
"leaveGameHost": "你是房主:一旦退出,所有玩家的遊戲都會結束。",
|
||||||
|
"leaveGameClient": "你將退出這局遊戲。只要房主還開著,你隨時可以回來。",
|
||||||
|
"stayInGame": "繼續遊戲",
|
||||||
|
"permissionsNeededTitle": "需要權限",
|
||||||
|
"permissionsNeededBody": "多人遊戲模式需要以下權限:",
|
||||||
|
"openAppSettingsQuestion": "要開啟應用程式設定嗎?",
|
||||||
|
"openSettings": "開啟設定",
|
||||||
|
"permissionLocation": "定位",
|
||||||
|
"permissionBluetoothAdvertise": "藍牙(廣播)",
|
||||||
|
"permissionBluetoothConnect": "藍牙(連線)",
|
||||||
|
"permissionBluetoothScan": "藍牙(掃描)",
|
||||||
|
"permissionNearbyWifi": "附近的 Wi-Fi"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1634,6 +1634,90 @@ abstract class AppLocalizations {
|
|||||||
/// In es, this message translates to:
|
/// In es, this message translates to:
|
||||||
/// **'{name} ha vuelto a la partida'**
|
/// **'{name} ha vuelto a la partida'**
|
||||||
String playerRejoined(String name);
|
String playerRejoined(String name);
|
||||||
|
|
||||||
|
/// No description provided for @leaveGameTitle.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'¿Salir de la partida?'**
|
||||||
|
String get leaveGameTitle;
|
||||||
|
|
||||||
|
/// No description provided for @leaveGameSingleDevice.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Se perderá la partida en curso y no podrás recuperarla.'**
|
||||||
|
String get leaveGameSingleDevice;
|
||||||
|
|
||||||
|
/// No description provided for @leaveGameHost.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Eres el anfitrión: si sales, la partida termina para todos los jugadores.'**
|
||||||
|
String get leaveGameHost;
|
||||||
|
|
||||||
|
/// No description provided for @leaveGameClient.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Saldrás de la partida. Podrás volver mientras el anfitrión la mantenga abierta.'**
|
||||||
|
String get leaveGameClient;
|
||||||
|
|
||||||
|
/// No description provided for @stayInGame.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Seguir jugando'**
|
||||||
|
String get stayInGame;
|
||||||
|
|
||||||
|
/// No description provided for @permissionsNeededTitle.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Permisos necesarios'**
|
||||||
|
String get permissionsNeededTitle;
|
||||||
|
|
||||||
|
/// No description provided for @permissionsNeededBody.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Para el modo multijugador necesitamos:'**
|
||||||
|
String get permissionsNeededBody;
|
||||||
|
|
||||||
|
/// No description provided for @openAppSettingsQuestion.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'¿Abrir la configuración de la app?'**
|
||||||
|
String get openAppSettingsQuestion;
|
||||||
|
|
||||||
|
/// No description provided for @openSettings.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Abrir configuración'**
|
||||||
|
String get openSettings;
|
||||||
|
|
||||||
|
/// No description provided for @permissionLocation.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Ubicación'**
|
||||||
|
String get permissionLocation;
|
||||||
|
|
||||||
|
/// No description provided for @permissionBluetoothAdvertise.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Bluetooth (anunciar)'**
|
||||||
|
String get permissionBluetoothAdvertise;
|
||||||
|
|
||||||
|
/// No description provided for @permissionBluetoothConnect.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Bluetooth (conectar)'**
|
||||||
|
String get permissionBluetoothConnect;
|
||||||
|
|
||||||
|
/// No description provided for @permissionBluetoothScan.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Bluetooth (escanear)'**
|
||||||
|
String get permissionBluetoothScan;
|
||||||
|
|
||||||
|
/// No description provided for @permissionNearbyWifi.
|
||||||
|
///
|
||||||
|
/// In es, this message translates to:
|
||||||
|
/// **'Wi-Fi cercano'**
|
||||||
|
String get permissionNearbyWifi;
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AppLocalizationsDelegate
|
class _AppLocalizationsDelegate
|
||||||
|
|||||||
@@ -647,83 +647,80 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart =>
|
||||||
'Select at least 3 users to start.';
|
'اختر 3 مستخدمين على الأقل للبدء.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser =>
|
||||||
'The host phone must select at least one user.';
|
'يجب أن يختار هاتف المضيف مستخدمًا واحدًا على الأقل.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => 'لم تعد الغرفة في ردهة الانتظار.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart => 'أكمل اختيار المستخدمين للبدء.';
|
||||||
'Complete user selection to start.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => 'جارٍ تجهيز الغرفة الآمنة';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames =>
|
||||||
'Searching nearby games over Bluetooth';
|
'البحث عن جولات قريبة عبر البلوتوث';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => 'اضغط للانضمام';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired =>
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
'يلزم إذنا البلوتوث والموقع للبحث عن جولات.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort => 'يلزم إذنا البلوتوث والموقع';
|
||||||
'Bluetooth and location permissions are required';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch =>
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
'تعذّر بدء البحث. تحقق من البلوتوث والموقع.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return 'تعذّر الاتصال بـ $host';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => 'غرفة';
|
String get room => 'غرفة';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => 'اللعب على هذا الجهاز';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription =>
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
'مثالي للعب معًا بتمرير الهاتف. إعداد سريع ومباشر.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => 'كل لاعب على هاتفه';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription =>
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
'أنشئ غرفة مميزة، وشارك رمز QR، وأدر المستخدمين من ردهة الانتظار.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => 'اللعب على هذا الجهاز';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => 'لعب متعدد الأجهزة';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => 'المستخدم الرئيسي للجهاز';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom => 'تعذّر إنشاء الغرفة. تحقق من البلوتوث.';
|
||||||
'Could not create the room. Check Bluetooth.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return 'تعذّر البدء: $reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => 'غرفة غير صالحة';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => 'لاعب';
|
String get defaultPlayerName => 'لاعب';
|
||||||
@@ -834,4 +831,49 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return 'عاد $name إلى الجولة';
|
return 'عاد $name إلى الجولة';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'هل تريد مغادرة الجولة؟';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'ستفقد الجولة الجارية ولن يمكن استعادتها.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'أنت المضيف: إذا غادرت ستنتهي الجولة لجميع اللاعبين.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'ستغادر الجولة. يمكنك العودة ما دام المضيف يبقيها مفتوحة.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'متابعة اللعب';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'أذونات مطلوبة';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'لوضع اللعب الجماعي نحتاج إلى:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => 'هل تريد فتح إعدادات التطبيق؟';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'فتح الإعدادات';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'الموقع';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'بلوتوث (الإعلان)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'بلوتوث (الاتصال)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'بلوتوث (المسح)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'واي فاي قريب';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -844,4 +844,50 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name ha tornat a la partida';
|
return '$name ha tornat a la partida';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Vols sortir de la partida?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'Es perdrà la partida en curs i no la podràs recuperar.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'Ets l\'amfitrió: si surts, la partida s\'acaba per a tots els jugadors.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Sortiràs de la partida. Hi podràs tornar mentre l\'amfitrió la mantingui oberta.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Continuar jugant';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Permisos necessaris';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'Per al mode multijugador necessitem:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion =>
|
||||||
|
'Vols obrir la configuració de l\'aplicació?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Obrir configuració';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Ubicació';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (anunciar)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (connectar)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (escanejar)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Wi-Fi proper';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -847,4 +847,49 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name ist zurück im Spiel';
|
return '$name ist zurück im Spiel';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Spiel wirklich verlassen?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'Das laufende Spiel geht verloren und lässt sich nicht wiederherstellen.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'Du bist der Host: Wenn du gehst, endet das Spiel für alle.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Du verlässt das Spiel. Du kannst zurückkommen, solange der Host es offen hält.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Weiterspielen';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Berechtigungen erforderlich';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'Für den Mehrspielermodus brauchen wir:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => 'Die App-Einstellungen öffnen?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Einstellungen öffnen';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Standort';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (sichtbar machen)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (verbinden)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (suchen)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Wi-Fi in der Nähe';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -840,4 +840,49 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name has rejoined the game';
|
return '$name has rejoined the game';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Leave the game?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'The game in progress will be lost and cannot be recovered.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'You are the host: if you leave, the game ends for everyone.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'You will leave the game. You can rejoin while the host keeps it open.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Keep playing';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Permissions needed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'For multiplayer mode we need:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => 'Open the app settings?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Open settings';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Location';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (advertise)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (connect)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (scan)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Nearby Wi-Fi';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -841,4 +841,49 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name ha vuelto a la partida';
|
return '$name ha vuelto a la partida';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => '¿Salir de la partida?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'Se perderá la partida en curso y no podrás recuperarla.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'Eres el anfitrión: si sales, la partida termina para todos los jugadores.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Saldrás de la partida. Podrás volver mientras el anfitrión la mantenga abierta.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Seguir jugando';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Permisos necesarios';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'Para el modo multijugador necesitamos:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => '¿Abrir la configuración de la app?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Abrir configuración';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Ubicación';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (anunciar)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (conectar)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (escanear)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Wi-Fi cercano';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -657,83 +657,83 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart =>
|
||||||
'Select at least 3 users to start.';
|
'Hautatu gutxienez 3 erabiltzaile hasteko.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser =>
|
||||||
'The host phone must select at least one user.';
|
'Ostalariaren mugikorrak gutxienez erabiltzaile bat hautatu behar du.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => 'Gela jada ez dago lobbyan.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart =>
|
||||||
'Complete user selection to start.';
|
'Osatu erabiltzaileen hautaketa hasteko.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => 'Gela segurua prestatzen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames =>
|
||||||
'Searching nearby games over Bluetooth';
|
'Inguruko partidak bilatzen Bluetooth bidez';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => 'Sakatu batzeko';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired =>
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
'Bluetooth eta kokapen baimenak behar dira partidak bilatzeko.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort =>
|
||||||
'Bluetooth and location permissions are required';
|
'Bluetooth eta kokapen baimenak behar dira';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch =>
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
'Ezin izan da bilaketa hasi. Egiaztatu Bluetooth eta kokapena.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return 'Ezin izan da $host(e)ra konektatu';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => 'Gela';
|
String get room => 'Gela';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => 'Partida gailu honetan';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription =>
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
'Ezin hobea denok elkarrekin jokatzeko mugikorra pasatuz. Konfigurazio azkarra eta zuzena.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => 'Jokalari bakoitza bere mugikorrean';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription =>
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
'Sortu gela premium bat, partekatu QR kodea eta kudeatu erabiltzaileak lobbytik.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => 'Partida gailu honetan';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => 'Gailu anitzeko partida';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => 'Gailuaren erabiltzaile nagusia';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom =>
|
||||||
'Could not create the room. Check Bluetooth.';
|
'Ezin izan da gela sortu. Egiaztatu Bluetooth.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return 'Ezin da hasi: $reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => 'gela baliogabea';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => 'Jokalaria';
|
String get defaultPlayerName => 'Jokalaria';
|
||||||
@@ -847,4 +847,51 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name partidara itzuli da';
|
return '$name partidara itzuli da';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Partidatik irten nahi duzu?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'Abian den partida galduko da eta ezin izango duzu berreskuratu.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'Zu zara ostalaria: irtenez gero, partida jokalari guztientzat amaituko da.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Partidatik aterako zara. Itzuli ahal izango zara ostalariak zabalik mantentzen duen bitartean.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Jokatzen jarraitu';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Baimenak behar dira';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody =>
|
||||||
|
'Jokalari anitzeko modurako hau behar dugu:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion =>
|
||||||
|
'Aplikazioaren ezarpenak ireki nahi dituzu?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Ireki ezarpenak';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Kokapena';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (iragarri)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (konektatu)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (eskaneatu)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Inguruko Wi-Fi';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -844,4 +844,51 @@ class AppLocalizationsFr extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name a rejoint la partie';
|
return '$name a rejoint la partie';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Quitter la partie ?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'La partie en cours sera perdue et ne pourra pas être récupérée.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'Vous êtes l\'hôte : si vous partez, la partie se termine pour tout le monde.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Vous quitterez la partie. Vous pourrez revenir tant que l\'hôte la laisse ouverte.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Continuer à jouer';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Autorisations nécessaires';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody =>
|
||||||
|
'Pour le mode multijoueur, nous avons besoin de :';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion =>
|
||||||
|
'Ouvrir les paramètres de l\'application ?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Ouvrir les paramètres';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Localisation';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (diffusion)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (connexion)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (recherche)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Wi-Fi à proximité';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -651,83 +651,82 @@ class AppLocalizationsHi extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart =>
|
||||||
'Select at least 3 users to start.';
|
'शुरू करने के लिए कम से कम 3 उपयोगकर्ता चुनें।';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser =>
|
||||||
'The host phone must select at least one user.';
|
'होस्ट फ़ोन को कम से कम एक उपयोगकर्ता चुनना होगा।';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => 'कमरा अब लॉबी में नहीं है।';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart =>
|
||||||
'Complete user selection to start.';
|
'शुरू करने के लिए उपयोगकर्ताओं का चयन पूरा करें।';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => 'सुरक्षित कमरा तैयार किया जा रहा है';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames =>
|
||||||
'Searching nearby games over Bluetooth';
|
'ब्लूटूथ से आस-पास के गेम खोजे जा रहे हैं';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => 'शामिल होने के लिए टैप करें';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired =>
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
'गेम खोजने के लिए ब्लूटूथ और लोकेशन की अनुमति चाहिए।';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort =>
|
||||||
'Bluetooth and location permissions are required';
|
'ब्लूटूथ और लोकेशन की अनुमति चाहिए';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch =>
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
'खोज शुरू नहीं हो सकी। ब्लूटूथ और लोकेशन जाँचें।';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return '$host से कनेक्ट नहीं हो सका';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => 'कक्ष';
|
String get room => 'कक्ष';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => 'इसी डिवाइस पर खेल';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription =>
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
'फ़ोन एक-दूसरे को देकर साथ खेलने के लिए बढ़िया। सेटअप तेज़ और सीधा।';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => 'हर खिलाड़ी अपने फ़ोन पर';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription =>
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
'एक प्रीमियम कमरा बनाएँ, QR साझा करें और लॉबी से उपयोगकर्ता संभालें।';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => 'इसी डिवाइस पर खेल';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => 'मल्टी-डिवाइस खेल';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => 'डिवाइस का मुख्य उपयोगकर्ता';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom => 'कमरा नहीं बन सका। ब्लूटूथ जाँचें।';
|
||||||
'Could not create the room. Check Bluetooth.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return 'शुरू नहीं हो सकता: $reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => 'अमान्य कमरा';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => 'खिलाड़ी';
|
String get defaultPlayerName => 'खिलाड़ी';
|
||||||
@@ -840,4 +839,49 @@ class AppLocalizationsHi extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name खेल में वापस आ गए';
|
return '$name खेल में वापस आ गए';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'खेल छोड़ना है?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'चल रहा खेल ख़त्म हो जाएगा और वापस नहीं मिलेगा।';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'आप होस्ट हैं: आपके जाने पर सभी खिलाड़ियों का खेल ख़त्म हो जाएगा।';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'आप खेल से बाहर निकल जाएँगे। जब तक होस्ट इसे खुला रखे, आप लौट सकते हैं।';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'खेलते रहें';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'अनुमतियाँ चाहिए';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'मल्टीप्लेयर मोड के लिए हमें चाहिए:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => 'क्या ऐप की सेटिंग खोलें?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'सेटिंग खोलें';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'लोकेशन';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'ब्लूटूथ (प्रसारण)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'ब्लूटूथ (कनेक्ट)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'ब्लूटूथ (स्कैन)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'आस-पास का वाई-फ़ाई';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -844,4 +844,50 @@ class AppLocalizationsIt extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name è tornato in partita';
|
return '$name è tornato in partita';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Vuoi uscire dalla partita?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'La partita in corso andrà persa e non potrà essere recuperata.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'Sei l\'host: se esci, la partita finisce per tutti i giocatori.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Uscirai dalla partita. Potrai rientrare finché l\'host la tiene aperta.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Continua a giocare';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Autorizzazioni necessarie';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'Per la modalità multigiocatore servono:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion =>
|
||||||
|
'Vuoi aprire le impostazioni dell\'app?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Apri impostazioni';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Posizione';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (annuncio)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (connessione)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (scansione)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Wi-Fi nelle vicinanze';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -645,84 +645,76 @@ class AppLocalizationsJa extends AppLocalizations {
|
|||||||
String get delete => '削除';
|
String get delete => '削除';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart => '開始するには3人以上のユーザーを選んでください。';
|
||||||
'Select at least 3 users to start.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser => 'ホストの端末は少なくとも1人のユーザーを選ぶ必要があります。';
|
||||||
'The host phone must select at least one user.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => 'ルームはすでにロビーにありません。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart => '開始するにはユーザーの選択を完了してください。';
|
||||||
'Complete user selection to start.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => '安全なルームを準備しています';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames => 'Bluetoothで近くのゲームを検索しています';
|
||||||
'Searching nearby games over Bluetooth';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => 'タップして参加';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired =>
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
'ゲームを検索するにはBluetoothと位置情報の許可が必要です。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort => 'Bluetoothと位置情報の許可が必要です';
|
||||||
'Bluetooth and location permissions are required';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch => '検索を開始できませんでした。Bluetoothと位置情報を確認してください。';
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return '$host に接続できませんでした';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => 'ルーム';
|
String get room => 'ルーム';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => 'この端末でプレイ';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription => '端末を回しながらみんなで遊ぶのに最適。設定はすばやく簡単。';
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => 'プレイヤーごとに自分の端末で';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription =>
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
'プレミアムなルームを作り、QRコードを共有し、ロビーからユーザーを管理します。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => 'この端末でのゲーム';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => 'マルチデバイスのゲーム';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => 'この端末のメインユーザー';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom => 'ルームを作成できませんでした。Bluetoothを確認してください。';
|
||||||
'Could not create the room. Check Bluetooth.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return '開始できません: $reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => '無効なルーム';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => 'プレイヤー';
|
String get defaultPlayerName => 'プレイヤー';
|
||||||
@@ -831,4 +823,46 @@ class AppLocalizationsJa extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name がゲームに復帰しました';
|
return '$name がゲームに復帰しました';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'ゲームから退出しますか?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice => '進行中のゲームは失われ、元に戻せません。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost => 'あなたはホストです。退出すると全員のゲームが終了します。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient => 'ゲームから退出します。ホストが開いている間は戻れます。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'ゲームを続ける';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => '必要な権限';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'マルチプレイには次の権限が必要です:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => 'アプリの設定を開きますか?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => '設定を開く';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => '位置情報';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth(アドバタイズ)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth(接続)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth(スキャン)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => '近くのWi-Fi';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -645,84 +645,77 @@ class AppLocalizationsKo extends AppLocalizations {
|
|||||||
String get delete => '삭제';
|
String get delete => '삭제';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart => '시작하려면 사용자를 3명 이상 선택하세요.';
|
||||||
'Select at least 3 users to start.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser => '호스트 기기는 사용자를 최소 한 명 선택해야 합니다.';
|
||||||
'The host phone must select at least one user.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => '방이 더 이상 대기실에 없습니다.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart => '시작하려면 사용자 선택을 마치세요.';
|
||||||
'Complete user selection to start.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => '보안 방을 준비하는 중';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames => '블루투스로 근처 게임을 찾는 중';
|
||||||
'Searching nearby games over Bluetooth';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => '눌러서 참여하기';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired =>
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
'게임을 찾으려면 블루투스와 위치 권한이 필요합니다.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort => '블루투스와 위치 권한이 필요합니다';
|
||||||
'Bluetooth and location permissions are required';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch => '검색을 시작할 수 없습니다. 블루투스와 위치를 확인하세요.';
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return '$host에 연결할 수 없습니다';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => '방';
|
String get room => '방';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => '이 기기에서 진행';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription =>
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
'휴대전화를 돌려 가며 함께 놀기에 좋습니다. 설정이 빠르고 간단합니다.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => '각자 자기 휴대전화로';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription =>
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
'프리미엄 방을 만들고 QR 코드를 공유하며 대기실에서 사용자를 관리하세요.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => '이 기기에서 하는 게임';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => '여러 기기로 하는 게임';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => '이 기기의 주 사용자';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom => '방을 만들 수 없습니다. 블루투스를 확인하세요.';
|
||||||
'Could not create the room. Check Bluetooth.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return '시작할 수 없습니다: $reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => '잘못된 방';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => '플레이어';
|
String get defaultPlayerName => '플레이어';
|
||||||
@@ -831,4 +824,46 @@ class AppLocalizationsKo extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name 님이 게임에 복귀했습니다';
|
return '$name 님이 게임에 복귀했습니다';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => '게임에서 나갈까요?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice => '진행 중인 게임이 사라지며 되돌릴 수 없습니다.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost => '당신은 호스트입니다. 나가면 모두의 게임이 끝납니다.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient => '게임에서 나갑니다. 호스트가 열어 두는 동안에는 다시 들어올 수 있습니다.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => '계속 하기';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => '필요한 권한';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => '멀티플레이 모드에는 다음 권한이 필요합니다:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => '앱 설정을 열까요?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => '설정 열기';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => '위치';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => '블루투스(광고)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => '블루투스(연결)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => '블루투스(검색)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => '근처 Wi-Fi';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -655,83 +655,83 @@ class AppLocalizationsNl extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart =>
|
||||||
'Select at least 3 users to start.';
|
'Selecteer minstens 3 gebruikers om te starten.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser =>
|
||||||
'The host phone must select at least one user.';
|
'De host-telefoon moet minstens één gebruiker selecteren.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => 'De ruimte is niet meer in de lobby.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart =>
|
||||||
'Complete user selection to start.';
|
'Voltooi de gebruikersselectie om te starten.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => 'Beveiligde ruimte voorbereiden';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames =>
|
||||||
'Searching nearby games over Bluetooth';
|
'Zoeken naar spellen in de buurt via Bluetooth';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => 'Tik om deel te nemen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired =>
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
'Bluetooth- en locatietoestemming zijn nodig om spellen te zoeken.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort =>
|
||||||
'Bluetooth and location permissions are required';
|
'Bluetooth- en locatietoestemming zijn nodig';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch =>
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
'Kon het zoeken niet starten. Controleer Bluetooth en locatie.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return 'Kon geen verbinding maken met $host';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => 'Kamer';
|
String get room => 'Kamer';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => 'Spel op dit toestel';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription =>
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
'Ideaal om samen te spelen door de telefoon door te geven. Snel en direct ingesteld.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => 'Elke speler op zijn eigen telefoon';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription =>
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
'Maak een premium ruimte, deel de QR-code en beheer gebruikers vanuit de lobby.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => 'Spel op dit toestel';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => 'Spel met meerdere toestellen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => 'Hoofdgebruiker van dit toestel';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom =>
|
||||||
'Could not create the room. Check Bluetooth.';
|
'Kon de ruimte niet aanmaken. Controleer Bluetooth.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return 'Kan niet starten: $reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => 'ongeldige ruimte';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => 'Speler';
|
String get defaultPlayerName => 'Speler';
|
||||||
@@ -845,4 +845,50 @@ class AppLocalizationsNl extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name is terug in het spel';
|
return '$name is terug in het spel';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Het spel verlaten?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'Het lopende spel gaat verloren en kan niet worden hersteld.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'Jij bent de host: als je weggaat, eindigt het spel voor iedereen.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Je verlaat het spel. Je kunt terugkomen zolang de host het openhoudt.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Verder spelen';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Toestemmingen nodig';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody =>
|
||||||
|
'Voor de multiplayermodus hebben we nodig:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => 'De app-instellingen openen?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Instellingen openen';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Locatie';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (zichtbaar maken)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (verbinden)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (scannen)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Wi-Fi in de buurt';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -653,83 +653,83 @@ class AppLocalizationsPl extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart =>
|
||||||
'Select at least 3 users to start.';
|
'Wybierz co najmniej 3 użytkowników, aby rozpocząć.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser =>
|
||||||
'The host phone must select at least one user.';
|
'Telefon gospodarza musi wybrać przynajmniej jednego użytkownika.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => 'Pokój nie jest już w poczekalni.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart =>
|
||||||
'Complete user selection to start.';
|
'Dokończ wybór użytkowników, aby rozpocząć.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => 'Przygotowywanie bezpiecznego pokoju';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames =>
|
||||||
'Searching nearby games over Bluetooth';
|
'Szukanie gier w pobliżu przez Bluetooth';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => 'Dotknij, aby dołączyć';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired =>
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
'Do wyszukiwania gier potrzebne są uprawnienia Bluetooth i lokalizacji.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort =>
|
||||||
'Bluetooth and location permissions are required';
|
'Potrzebne są uprawnienia Bluetooth i lokalizacji';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch =>
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
'Nie udało się rozpocząć wyszukiwania. Sprawdź Bluetooth i lokalizację.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return 'Nie udało się połączyć z $host';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => 'Pokój';
|
String get room => 'Pokój';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => 'Gra na tym urządzeniu';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription =>
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
'Idealne do wspólnej gry, podając telefon dalej. Szybka i prosta konfiguracja.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => 'Każdy gracz na swoim telefonie';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription =>
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
'Utwórz pokój premium, udostępnij kod QR i zarządzaj graczami z poczekalni.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => 'Gra na tym urządzeniu';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => 'Gra na wielu urządzeniach';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => 'Główny użytkownik urządzenia';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom =>
|
||||||
'Could not create the room. Check Bluetooth.';
|
'Nie udało się utworzyć pokoju. Sprawdź Bluetooth.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return 'Nie można rozpocząć: $reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => 'nieprawidłowy pokój';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => 'Gracz';
|
String get defaultPlayerName => 'Gracz';
|
||||||
@@ -842,4 +842,49 @@ class AppLocalizationsPl extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name wrócił(a) do gry';
|
return '$name wrócił(a) do gry';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Opuścić grę?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'Trwająca gra zostanie utracona i nie da się jej odzyskać.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'Jesteś gospodarzem: jeśli wyjdziesz, gra kończy się dla wszystkich.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Opuścisz grę. Możesz wrócić, dopóki gospodarz jej nie zamknie.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Graj dalej';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Wymagane uprawnienia';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'Do trybu wieloosobowego potrzebujemy:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => 'Otworzyć ustawienia aplikacji?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Otwórz ustawienia';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Lokalizacja';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (rozgłaszanie)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (łączenie)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (skanowanie)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Wi-Fi w pobliżu';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||||||
'Sem medalhas novas desta vez. Continua a acumular fogo.';
|
'Sem medalhas novas desta vez. Continua a acumular fogo.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get calculatingRewards => 'Calculando recompensas...';
|
String get calculatingRewards => 'A calcular recompensas...';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get fireLabel => 'Fogo';
|
String get fireLabel => 'Fogo';
|
||||||
@@ -194,7 +194,7 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||||||
'Certifique-se de que ninguém mais está olhando';
|
'Certifique-se de que ninguém mais está olhando';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get showingWord => '👁️ Mostrando...';
|
String get showingWord => '👁️ A mostrar...';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get holdToSee => '👆 Mantenha pressionado para ver';
|
String get holdToSee => '👆 Mantenha pressionado para ver';
|
||||||
@@ -263,7 +263,7 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||||||
String get result => 'Resultado';
|
String get result => 'Resultado';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get revealing => 'Revelando...';
|
String get revealing => 'A revelar...';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get wasImpostor => 'Era IMPOSTOR! 🎉';
|
String get wasImpostor => 'Era IMPOSTOR! 🎉';
|
||||||
@@ -845,4 +845,49 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name voltou ao jogo';
|
return '$name voltou ao jogo';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Sair do jogo?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'O jogo em curso perde-se e não poderá ser recuperado.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'És o anfitrião: se saíres, o jogo termina para todos os jogadores.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Vais sair do jogo. Podes voltar enquanto o anfitrião o mantiver aberto.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Continuar a jogar';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Permissões necessárias';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'Para o modo multijogador precisamos de:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => 'Abrir as definições da aplicação?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Abrir definições';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Localização';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (anunciar)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (ligar)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (procurar)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Wi-Fi por perto';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -652,83 +652,83 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart =>
|
||||||
'Select at least 3 users to start.';
|
'Выберите не менее 3 пользователей, чтобы начать.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser =>
|
||||||
'The host phone must select at least one user.';
|
'Телефон ведущего должен выбрать хотя бы одного пользователя.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => 'Комната больше не в лобби.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart =>
|
||||||
'Complete user selection to start.';
|
'Завершите выбор пользователей, чтобы начать.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => 'Подготовка защищённой комнаты';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames =>
|
||||||
'Searching nearby games over Bluetooth';
|
'Поиск игр поблизости через Bluetooth';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => 'Нажмите, чтобы присоединиться';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired =>
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
'Для поиска игр нужны разрешения Bluetooth и геолокации.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort =>
|
||||||
'Bluetooth and location permissions are required';
|
'Нужны разрешения Bluetooth и геолокации';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch =>
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
'Не удалось начать поиск. Проверьте Bluetooth и геолокацию.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return 'Не удалось подключиться к $host';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => 'Комната';
|
String get room => 'Комната';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => 'Игра на этом устройстве';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription =>
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
'Идеально, чтобы играть вместе, передавая телефон. Быстрая и простая настройка.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => 'Каждый игрок на своём телефоне';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription =>
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
'Создайте премиум-комнату, поделитесь QR-кодом и управляйте игроками из лобби.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => 'Игра на этом устройстве';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => 'Игра на нескольких устройствах';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => 'Основной пользователь устройства';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom =>
|
||||||
'Could not create the room. Check Bluetooth.';
|
'Не удалось создать комнату. Проверьте Bluetooth.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return 'Невозможно начать: $reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => 'недопустимая комната';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => 'Игрок';
|
String get defaultPlayerName => 'Игрок';
|
||||||
@@ -841,4 +841,50 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name вернулся в игру';
|
return '$name вернулся в игру';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Выйти из игры?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'Текущая партия будет потеряна без возможности восстановления.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost =>
|
||||||
|
'Вы ведущий: если вы выйдете, игра закончится для всех.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Вы выйдете из игры. Вы сможете вернуться, пока ведущий её не закрыл.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Продолжить игру';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Нужны разрешения';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody =>
|
||||||
|
'Для многопользовательского режима нужны:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => 'Открыть настройки приложения?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Открыть настройки';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Геолокация';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (объявление)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (подключение)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (сканирование)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Wi-Fi поблизости';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -652,83 +652,83 @@ class AppLocalizationsTr extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart =>
|
||||||
'Select at least 3 users to start.';
|
'Başlamak için en az 3 kullanıcı seç.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser =>
|
||||||
'The host phone must select at least one user.';
|
'Sunucu telefonu en az bir kullanıcı seçmeli.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => 'Oda artık lobide değil.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart =>
|
||||||
'Complete user selection to start.';
|
'Başlamak için kullanıcı seçimini tamamla.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => 'Güvenli oda hazırlanıyor';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames =>
|
||||||
'Searching nearby games over Bluetooth';
|
'Bluetooth ile yakındaki oyunlar aranıyor';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => 'Katılmak için dokun';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired =>
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
'Oyun aramak için Bluetooth ve konum izinleri gerekli.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort =>
|
||||||
'Bluetooth and location permissions are required';
|
'Bluetooth ve konum izinleri gerekli';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch =>
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
'Arama başlatılamadı. Bluetooth ve konumu kontrol et.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return '$host bağlantısı kurulamadı';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => 'Oda';
|
String get room => 'Oda';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => 'Bu cihazda oyun';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription =>
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
'Telefonu elden ele dolaştırarak birlikte oynamak için ideal. Hızlı ve doğrudan kurulum.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => 'Her oyuncu kendi telefonunda';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription =>
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
'Premium bir oda oluştur, QR kodu paylaş ve kullanıcıları lobiden yönet.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => 'Bu cihazda oyun';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => 'Çok cihazlı oyun';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => 'Cihazın ana kullanıcısı';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom =>
|
||||||
'Could not create the room. Check Bluetooth.';
|
'Oda oluşturulamadı. Bluetooth\'u kontrol et.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return 'Başlatılamıyor: $reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => 'geçersiz oda';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => 'Oyuncu';
|
String get defaultPlayerName => 'Oyuncu';
|
||||||
@@ -841,4 +841,48 @@ class AppLocalizationsTr extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name oyuna geri döndü';
|
return '$name oyuna geri döndü';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => 'Oyundan çıkılsın mı?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice =>
|
||||||
|
'Devam eden oyun kaybolur ve geri getirilemez.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost => 'Sunucu sensin: çıkarsan oyun herkes için biter.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient =>
|
||||||
|
'Oyundan çıkacaksın. Sunucu odayı açık tuttuğu sürece geri dönebilirsin.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => 'Oynamaya devam et';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => 'Gerekli izinler';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => 'Çok oyunculu mod için şunlar gerekli:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => 'Uygulama ayarları açılsın mı?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => 'Ayarları aç';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => 'Konum';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => 'Bluetooth (yayın)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => 'Bluetooth (bağlanma)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => 'Bluetooth (tarama)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => 'Yakındaki Wi-Fi';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -643,84 +643,74 @@ class AppLocalizationsZh extends AppLocalizations {
|
|||||||
String get delete => '删除';
|
String get delete => '删除';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart => '至少选择 3 名用户才能开始。';
|
||||||
'Select at least 3 users to start.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser => '房主的手机必须至少选择一名用户。';
|
||||||
'The host phone must select at least one user.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => '房间已不在等候大厅。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart => '完成用户选择后才能开始。';
|
||||||
'Complete user selection to start.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => '正在准备安全房间';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames => '正在通过蓝牙搜索附近的游戏';
|
||||||
'Searching nearby games over Bluetooth';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => '点击加入';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired => '搜索游戏需要蓝牙和定位权限。';
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort => '需要蓝牙和定位权限';
|
||||||
'Bluetooth and location permissions are required';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch => '无法开始搜索。请检查蓝牙和定位。';
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return '无法连接到 $host';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => '房间';
|
String get room => '房间';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => '在这台设备上游戏';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription => '适合大家传着手机一起玩。设置快速直接。';
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => '每位玩家用自己的手机';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription => '创建高级房间,分享二维码,并在大厅管理用户。';
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => '本机游戏';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => '多设备游戏';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => '本机主用户';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom => '无法创建房间。请检查蓝牙。';
|
||||||
'Could not create the room. Check Bluetooth.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return '无法开始:$reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => '无效的房间';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => '玩家';
|
String get defaultPlayerName => '玩家';
|
||||||
@@ -829,6 +819,48 @@ class AppLocalizationsZh extends AppLocalizations {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name 已重新加入游戏';
|
return '$name 已重新加入游戏';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => '要退出游戏吗?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice => '正在进行的游戏将会丢失,且无法恢复。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost => '你是房主:一旦退出,所有玩家的游戏都会结束。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient => '你将退出这局游戏。只要房主还开着,你随时可以回来。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => '继续游戏';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => '需要权限';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => '多人游戏模式需要以下权限:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => '要打开应用设置吗?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => '打开设置';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => '定位';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => '蓝牙(广播)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => '蓝牙(连接)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => '蓝牙(扫描)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => '附近的 Wi-Fi';
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
|
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
|
||||||
@@ -1470,84 +1502,74 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
|||||||
String get delete => '删除';
|
String get delete => '删除';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get selectAtLeastThreeUsersToStart =>
|
String get selectAtLeastThreeUsersToStart => '至少選擇 3 名使用者才能開始。';
|
||||||
'Select at least 3 users to start.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get hostPhoneMustSelectUser =>
|
String get hostPhoneMustSelectUser => '房主的手機必須至少選擇一名使用者。';
|
||||||
'The host phone must select at least one user.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
|
String get roomNoLongerInLobby => '房間已不在等候大廳。';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get completeUserSelectionToStart =>
|
String get completeUserSelectionToStart => '完成使用者選擇後才能開始。';
|
||||||
'Complete user selection to start.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get preparingSecureRoom => 'Preparing the secure room';
|
String get preparingSecureRoom => '正在準備安全房間';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get searchingNearbyBluetoothGames =>
|
String get searchingNearbyBluetoothGames => '正在透過藍牙搜尋附近的遊戲';
|
||||||
'Searching nearby games over Bluetooth';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get tapToJoin => 'Tap to join';
|
String get tapToJoin => '點擊加入';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsRequired =>
|
String get bluetoothLocationPermissionsRequired => '搜尋遊戲需要藍牙和定位權限。';
|
||||||
'Bluetooth and location permissions are required to search for games.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bluetoothLocationPermissionsShort =>
|
String get bluetoothLocationPermissionsShort => '需要藍牙和定位權限';
|
||||||
'Bluetooth and location permissions are required';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotStartSearch =>
|
String get couldNotStartSearch => '無法開始搜尋。請檢查藍牙和定位。';
|
||||||
'Could not start the search. Check Bluetooth and location.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String couldNotConnectToHost(String host) {
|
String couldNotConnectToHost(String host) {
|
||||||
return 'Could not connect to $host';
|
return '無法連線到 $host';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get room => '房间';
|
String get room => '房间';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceSubtitle => 'Game on this device';
|
String get singleDeviceSubtitle => '在這台裝置上遊戲';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceDescription =>
|
String get singleDeviceDescription => '適合大家傳著手機一起玩。設定快速直接。';
|
||||||
'Ideal for playing together by passing the phone around. Fast, direct setup.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceSubtitle => 'Each player on their phone';
|
String get multiDeviceSubtitle => '每位玩家用自己的手機';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceDescription =>
|
String get multiDeviceDescription => '建立高級房間,分享 QR Code,並在大廳管理使用者。';
|
||||||
'Create a premium room, share the QR code and manage users from the lobby.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get singleDeviceGameLabel => 'Game on this device';
|
String get singleDeviceGameLabel => '本機遊戲';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get multiDeviceGameLabel => 'Multi-device game';
|
String get multiDeviceGameLabel => '多裝置遊戲';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get mainDeviceUser => 'Main device user';
|
String get mainDeviceUser => '本機主要使用者';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get couldNotCreateRoom =>
|
String get couldNotCreateRoom => '無法建立房間。請檢查藍牙。';
|
||||||
'Could not create the room. Check Bluetooth.';
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String cannotStartWithReason(String reason) {
|
String cannotStartWithReason(String reason) {
|
||||||
return 'Cannot start: $reason';
|
return '無法開始:$reason';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get invalidRoom => 'invalid room';
|
String get invalidRoom => '無效的房間';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get defaultPlayerName => '玩家';
|
String get defaultPlayerName => '玩家';
|
||||||
@@ -1656,4 +1678,46 @@ class AppLocalizationsZhTw extends AppLocalizationsZh {
|
|||||||
String playerRejoined(String name) {
|
String playerRejoined(String name) {
|
||||||
return '$name 已重新加入遊戲';
|
return '$name 已重新加入遊戲';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameTitle => '要退出遊戲嗎?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameSingleDevice => '正在進行的遊戲將會遺失,且無法復原。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameHost => '你是房主:一旦退出,所有玩家的遊戲都會結束。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get leaveGameClient => '你將退出這局遊戲。只要房主還開著,你隨時可以回來。';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get stayInGame => '繼續遊戲';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededTitle => '需要權限';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionsNeededBody => '多人遊戲模式需要以下權限:';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openAppSettingsQuestion => '要開啟應用程式設定嗎?';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get openSettings => '開啟設定';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionLocation => '定位';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothAdvertise => '藍牙(廣播)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothConnect => '藍牙(連線)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionBluetoothScan => '藍牙(掃描)';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get permissionNearbyWifi => '附近的 Wi-Fi';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import '../tema/dialogo_confirmacion.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../estado/estado_juego.dart';
|
import '../estado/estado_juego.dart';
|
||||||
@@ -53,7 +54,9 @@ class _PantallaAdivinanzaState extends State<PantallaAdivinanza> {
|
|||||||
final partida = estado.partida;
|
final partida = estado.partida;
|
||||||
if (partida == null) return const SizedBox.shrink();
|
if (partida == null) return const SizedBox.shrink();
|
||||||
|
|
||||||
return Scaffold(
|
return GuardiaSalidaPartida(
|
||||||
|
contexto: ContextoSalida.unDispositivo,
|
||||||
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text(l10n.impostorGuessTitle),
|
title: Text(l10n.impostorGuessTitle),
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
@@ -83,6 +86,7 @@ class _PantallaAdivinanzaState extends State<PantallaAdivinanza> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import '../tema/dialogo_confirmacion.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
@@ -67,7 +68,9 @@ class _PantallaDebateState extends State<PantallaDebate> {
|
|||||||
|
|
||||||
final tieneTemporizador = partida.config.tiempoDebateSegundos != null;
|
final tieneTemporizador = partida.config.tiempoDebateSegundos != null;
|
||||||
|
|
||||||
return Scaffold(
|
return GuardiaSalidaPartida(
|
||||||
|
contexto: ContextoSalida.unDispositivo,
|
||||||
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text(l10n.debateRound(partida.rondaActual)),
|
title: Text(l10n.debateRound(partida.rondaActual)),
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
@@ -150,6 +153,7 @@ class _PantallaDebateState extends State<PantallaDebate> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import '../tema/dialogo_confirmacion.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
import 'package:farolero/modelos/inicio_partida_multijugador.dart';
|
import 'package:farolero/modelos/inicio_partida_multijugador.dart';
|
||||||
@@ -117,7 +118,9 @@ class _PantallaDebateClienteState extends State<PantallaDebateCliente> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final l10n = AppLocalizations.of(context)!;
|
final l10n = AppLocalizations.of(context)!;
|
||||||
|
|
||||||
return Scaffold(
|
return GuardiaSalidaPartida(
|
||||||
|
contexto: ContextoSalida.cliente,
|
||||||
|
child: Scaffold(
|
||||||
backgroundColor: TemaApp.colorFondo,
|
backgroundColor: TemaApp.colorFondo,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text(l10n.debate),
|
title: Text(l10n.debate),
|
||||||
@@ -225,6 +228,7 @@ class _PantallaDebateClienteState extends State<PantallaDebateCliente> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import '../tema/dialogo_confirmacion.dart';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
@@ -257,7 +258,9 @@ class _PantallaGestorHostState extends State<PantallaGestorHost> {
|
|||||||
clientesPendientes.every((id) => _clientesListos[id] == true);
|
clientesPendientes.every((id) => _clientesListos[id] == true);
|
||||||
final todosVotaron = estado.todosHanVotado();
|
final todosVotaron = estado.todosHanVotado();
|
||||||
|
|
||||||
return Scaffold(
|
return GuardiaSalidaPartida(
|
||||||
|
contexto: ContextoSalida.host,
|
||||||
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text(l10n.hostGame),
|
title: Text(l10n.hostGame),
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
@@ -299,8 +302,15 @@ class _PantallaGestorHostState extends State<PantallaGestorHost> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
|
tooltip: l10n.leaveGame,
|
||||||
icon: IconoFarolero(Icons.close),
|
icon: IconoFarolero(Icons.close),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
|
if (!await confirmarSalirDePartida(
|
||||||
|
context,
|
||||||
|
ContextoSalida.host,
|
||||||
|
)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
await nearby.desconectar();
|
await nearby.desconectar();
|
||||||
widget.onPartidaFin();
|
widget.onPartidaFin();
|
||||||
},
|
},
|
||||||
@@ -340,6 +350,7 @@ class _PantallaGestorHostState extends State<PantallaGestorHost> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -580,6 +591,7 @@ class _PantallaGestorHostState extends State<PantallaGestorHost> {
|
|||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (_) => PantallaPalabrasCliente(
|
builder: (_) => PantallaPalabrasCliente(
|
||||||
|
protegerSalida: false,
|
||||||
jugadores: jugadoresHost,
|
jugadores: jugadoresHost,
|
||||||
pistaImpostor: partida.config.pistaImpostor
|
pistaImpostor: partida.config.pistaImpostor
|
||||||
? partida.pistaImpostor
|
? partida.pistaImpostor
|
||||||
@@ -863,6 +875,7 @@ class _PantallaGestorHostState extends State<PantallaGestorHost> {
|
|||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (_) => PantallaVotacionCliente(
|
builder: (_) => PantallaVotacionCliente(
|
||||||
|
protegerSalida: false,
|
||||||
jugadores: partida.jugadoresActivos,
|
jugadores: partida.jugadoresActivos,
|
||||||
jugadoresControlados: jugadoresHost,
|
jugadoresControlados: jugadoresHost,
|
||||||
partidaId: context.read<ServicioNearby>().roomId,
|
partidaId: context.read<ServicioNearby>().roomId,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import '../tema/dialogo_confirmacion.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:qr_flutter/qr_flutter.dart';
|
import 'package:qr_flutter/qr_flutter.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
@@ -42,6 +43,12 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
|
|||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
icon: IconoFarolero(Icons.close),
|
icon: IconoFarolero(Icons.close),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
|
if (!await confirmarSalirDePartida(
|
||||||
|
context,
|
||||||
|
ContextoSalida.host,
|
||||||
|
)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
await nearby.desconectar();
|
await nearby.desconectar();
|
||||||
if (context.mounted) Navigator.pop(context);
|
if (context.mounted) Navigator.pop(context);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:farolero/tema/dialogo_confirmacion.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
import 'package:farolero/modelos/inicio_partida_multijugador.dart';
|
import 'package:farolero/modelos/inicio_partida_multijugador.dart';
|
||||||
import 'package:farolero/tema/componentes_farolero.dart';
|
import 'package:farolero/tema/componentes_farolero.dart';
|
||||||
@@ -10,11 +11,16 @@ class PantallaPalabrasCliente extends StatefulWidget {
|
|||||||
final String? pistaImpostor;
|
final String? pistaImpostor;
|
||||||
final VoidCallback onTodosVistos;
|
final VoidCallback onTodosVistos;
|
||||||
|
|
||||||
|
/// El host abre esta pantalla desde el gestor: allí el atrás solo
|
||||||
|
/// debe cerrarla, no ofrecer abandonar la partida.
|
||||||
|
final bool protegerSalida;
|
||||||
|
|
||||||
const PantallaPalabrasCliente({
|
const PantallaPalabrasCliente({
|
||||||
super.key,
|
super.key,
|
||||||
required this.jugadores,
|
required this.jugadores,
|
||||||
this.pistaImpostor,
|
this.pistaImpostor,
|
||||||
required this.onTodosVistos,
|
required this.onTodosVistos,
|
||||||
|
this.protegerSalida = true,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -47,7 +53,10 @@ class _PantallaPalabrasClienteState extends State<PantallaPalabrasCliente> {
|
|||||||
final l10n = AppLocalizations.of(context)!;
|
final l10n = AppLocalizations.of(context)!;
|
||||||
final actual = _actual;
|
final actual = _actual;
|
||||||
|
|
||||||
return Scaffold(
|
return GuardiaSalidaPartida(
|
||||||
|
contexto: ContextoSalida.cliente,
|
||||||
|
activo: widget.protegerSalida,
|
||||||
|
child: Scaffold(
|
||||||
body: FondoFarolero(
|
body: FondoFarolero(
|
||||||
intenso: true,
|
intenso: true,
|
||||||
child: SafeArea(
|
child: SafeArea(
|
||||||
@@ -147,6 +156,7 @@ class _PantallaPalabrasClienteState extends State<PantallaPalabrasCliente> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import '../tema/dialogo_confirmacion.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../estado/estado_juego.dart';
|
import '../estado/estado_juego.dart';
|
||||||
@@ -59,7 +60,9 @@ class _PantallaResultadoState extends State<PantallaResultado>
|
|||||||
final estado = context.read<EstadoJuego>();
|
final estado = context.read<EstadoJuego>();
|
||||||
final partida = estado.partida;
|
final partida = estado.partida;
|
||||||
|
|
||||||
return Scaffold(
|
return GuardiaSalidaPartida(
|
||||||
|
contexto: ContextoSalida.unDispositivo,
|
||||||
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text(l10n.result),
|
title: Text(l10n.result),
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
@@ -100,6 +103,7 @@ class _PantallaResultadoState extends State<PantallaResultado>
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import '../tema/dialogo_confirmacion.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
import '../modelos/inicio_partida_multijugador.dart';
|
import '../modelos/inicio_partida_multijugador.dart';
|
||||||
import '../modelos/snapshot_partida_online.dart';
|
import '../modelos/snapshot_partida_online.dart';
|
||||||
@@ -158,7 +159,9 @@ class _PantallaResultadoOnlineState extends State<PantallaResultadoOnline> {
|
|||||||
final l10n = AppLocalizations.of(context)!;
|
final l10n = AppLocalizations.of(context)!;
|
||||||
final resultado = _snapshot.resultadoActual;
|
final resultado = _snapshot.resultadoActual;
|
||||||
|
|
||||||
return Scaffold(
|
return GuardiaSalidaPartida(
|
||||||
|
contexto: ContextoSalida.cliente,
|
||||||
|
child: Scaffold(
|
||||||
backgroundColor: TemaApp.colorFondo,
|
backgroundColor: TemaApp.colorFondo,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text(_snapshot.fase == 'adivinanza'
|
title: Text(_snapshot.fase == 'adivinanza'
|
||||||
@@ -185,6 +188,7 @@ class _PantallaResultadoOnlineState extends State<PantallaResultadoOnline> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import '../tema/dialogo_confirmacion.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../estado/estado_juego.dart';
|
import '../estado/estado_juego.dart';
|
||||||
@@ -25,7 +26,9 @@ class _PantallaVerPalabraState extends State<PantallaVerPalabra> {
|
|||||||
|
|
||||||
final todosHanVisto = partida.jugadores.every((j) => _hanVisto.contains(j.id));
|
final todosHanVisto = partida.jugadores.every((j) => _hanVisto.contains(j.id));
|
||||||
|
|
||||||
return Scaffold(
|
return GuardiaSalidaPartida(
|
||||||
|
contexto: ContextoSalida.unDispositivo,
|
||||||
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text(l10n.seeYourWord),
|
title: Text(l10n.seeYourWord),
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
@@ -87,6 +90,7 @@ class _PantallaVerPalabraState extends State<PantallaVerPalabra> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import '../tema/dialogo_confirmacion.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import '../estado/estado_juego.dart';
|
import '../estado/estado_juego.dart';
|
||||||
@@ -25,7 +26,12 @@ class _PantallaVotacionState extends State<PantallaVotacion> {
|
|||||||
final activos = partida.jugadoresActivos;
|
final activos = partida.jugadoresActivos;
|
||||||
final todosVotaron = estado.todosHanVotado();
|
final todosVotaron = estado.todosHanVotado();
|
||||||
|
|
||||||
return _construirVotacionUnMovil(context, estado, partida, activos, todosVotaron);
|
return GuardiaSalidaPartida(
|
||||||
|
contexto: ContextoSalida.unDispositivo,
|
||||||
|
child: _construirVotacionUnMovil(
|
||||||
|
context, estado, partida, activos, todosVotaron,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _construirVotacionUnMovil(
|
Widget _construirVotacionUnMovil(
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:farolero/tema/dialogo_confirmacion.dart';
|
||||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
import 'package:farolero/modelos/inicio_partida_multijugador.dart';
|
import 'package:farolero/modelos/inicio_partida_multijugador.dart';
|
||||||
import 'package:farolero/modelos/jugador.dart';
|
import 'package:farolero/modelos/jugador.dart';
|
||||||
@@ -17,6 +18,10 @@ class PantallaVotacionCliente extends StatefulWidget {
|
|||||||
final String? pistaImpostor;
|
final String? pistaImpostor;
|
||||||
final Function(Map<String, String> votos) onVotos;
|
final Function(Map<String, String> votos) onVotos;
|
||||||
|
|
||||||
|
/// El host abre esta pantalla desde el gestor: allí el atrás solo
|
||||||
|
/// debe cerrarla, no ofrecer abandonar la partida.
|
||||||
|
final bool protegerSalida;
|
||||||
|
|
||||||
const PantallaVotacionCliente({
|
const PantallaVotacionCliente({
|
||||||
super.key,
|
super.key,
|
||||||
required this.jugadores,
|
required this.jugadores,
|
||||||
@@ -24,6 +29,7 @@ class PantallaVotacionCliente extends StatefulWidget {
|
|||||||
this.partidaId,
|
this.partidaId,
|
||||||
this.pistaImpostor,
|
this.pistaImpostor,
|
||||||
required this.onVotos,
|
required this.onVotos,
|
||||||
|
this.protegerSalida = true,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -63,7 +69,10 @@ class _PantallaVotacionClienteState extends State<PantallaVotacionCliente> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final l10n = AppLocalizations.of(context)!;
|
final l10n = AppLocalizations.of(context)!;
|
||||||
|
|
||||||
return Scaffold(
|
return GuardiaSalidaPartida(
|
||||||
|
contexto: ContextoSalida.cliente,
|
||||||
|
activo: widget.protegerSalida,
|
||||||
|
child: Scaffold(
|
||||||
backgroundColor: TemaApp.colorFondo,
|
backgroundColor: TemaApp.colorFondo,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
title: Text(l10n.voting),
|
title: Text(l10n.voting),
|
||||||
@@ -155,6 +164,7 @@ class _PantallaVotacionClienteState extends State<PantallaVotacionCliente> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:permission_handler/permission_handler.dart';
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
|
|
||||||
@@ -24,11 +25,14 @@ class ServicioPermisos {
|
|||||||
// Solicitar todos
|
// Solicitar todos
|
||||||
final resultados = await permisos.request();
|
final resultados = await permisos.request();
|
||||||
|
|
||||||
|
if (!context.mounted) return false;
|
||||||
|
final l10n = AppLocalizations.of(context)!;
|
||||||
|
|
||||||
// Verificar cuáles fueron denegados
|
// Verificar cuáles fueron denegados
|
||||||
final denegados = <String>[];
|
final denegados = <String>[];
|
||||||
for (final entry in resultados.entries) {
|
for (final entry in resultados.entries) {
|
||||||
if (!entry.value.isGranted) {
|
if (!entry.value.isGranted) {
|
||||||
denegados.add(_nombrePermiso(entry.key));
|
denegados.add(_nombrePermiso(entry.key, l10n));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,20 +43,20 @@ class ServicioPermisos {
|
|||||||
final abrirConfig = await showDialog<bool>(
|
final abrirConfig = await showDialog<bool>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (ctx) => AlertDialog(
|
builder: (ctx) => AlertDialog(
|
||||||
title: const Text('Permisos necesarios'),
|
title: Text(l10n.permissionsNeededTitle),
|
||||||
content: Text(
|
content: Text(
|
||||||
'Para el modo multijugador necesitamos:\n\n'
|
'${l10n.permissionsNeededBody}\n\n'
|
||||||
'${denegados.map((d) => '• $d').join('\n')}\n\n'
|
'${denegados.map((d) => '• $d').join('\n')}\n\n'
|
||||||
'¿Abrir configuración de la app?',
|
'${l10n.openAppSettingsQuestion}',
|
||||||
),
|
),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Navigator.pop(ctx, false),
|
onPressed: () => Navigator.pop(ctx, false),
|
||||||
child: const Text('Cancelar'),
|
child: Text(l10n.cancel),
|
||||||
),
|
),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () => Navigator.pop(ctx, true),
|
onPressed: () => Navigator.pop(ctx, true),
|
||||||
child: const Text('Abrir configuración'),
|
child: Text(l10n.openSettings),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -66,12 +70,16 @@ class ServicioPermisos {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static String _nombrePermiso(Permission p) {
|
static String _nombrePermiso(Permission p, AppLocalizations l10n) {
|
||||||
if (p == Permission.locationWhenInUse) return 'Ubicación';
|
if (p == Permission.locationWhenInUse) return l10n.permissionLocation;
|
||||||
if (p == Permission.bluetoothAdvertise) return 'Bluetooth (anunciar)';
|
if (p == Permission.bluetoothAdvertise) {
|
||||||
if (p == Permission.bluetoothConnect) return 'Bluetooth (conectar)';
|
return l10n.permissionBluetoothAdvertise;
|
||||||
if (p == Permission.bluetoothScan) return 'Bluetooth (escanear)';
|
}
|
||||||
if (p == Permission.nearbyWifiDevices) return 'Wi-Fi cercano';
|
if (p == Permission.bluetoothConnect) {
|
||||||
|
return l10n.permissionBluetoothConnect;
|
||||||
|
}
|
||||||
|
if (p == Permission.bluetoothScan) return l10n.permissionBluetoothScan;
|
||||||
|
if (p == Permission.nearbyWifiDevices) return l10n.permissionNearbyWifi;
|
||||||
return p.toString();
|
return p.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,170 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../l10n/generated/app_localizations.dart';
|
||||||
|
import 'componentes_farolero.dart';
|
||||||
|
import 'tema_app.dart';
|
||||||
|
|
||||||
|
/// Quién está saliendo, que determina qué se pierde y por tanto qué se avisa.
|
||||||
|
enum ContextoSalida {
|
||||||
|
/// Un solo móvil: la partida vive en este dispositivo y se pierde entera.
|
||||||
|
unDispositivo,
|
||||||
|
|
||||||
|
/// El host de una partida multidispositivo: al salir la corta para todos.
|
||||||
|
host,
|
||||||
|
|
||||||
|
/// Un cliente: solo se va él y puede volver mientras la sala siga abierta.
|
||||||
|
cliente,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Diálogo de confirmación con el estilo de la app.
|
||||||
|
///
|
||||||
|
/// Devuelve `true` solo si el jugador confirma. Cerrarlo tocando fuera o con
|
||||||
|
/// el gesto de atrás cuenta como cancelar, que es lo que interesa cuando lo
|
||||||
|
/// que se está evitando es precisamente una salida accidental.
|
||||||
|
Future<bool> confirmarFarolero({
|
||||||
|
required BuildContext context,
|
||||||
|
required String titulo,
|
||||||
|
required String mensaje,
|
||||||
|
required String textoConfirmar,
|
||||||
|
required String textoCancelar,
|
||||||
|
IconData icono = Icons.warning_amber_rounded,
|
||||||
|
IconData iconoConfirmar = Icons.logout,
|
||||||
|
IconData iconoCancelar = Icons.play_arrow,
|
||||||
|
}) async {
|
||||||
|
final confirmado = await showDialog<bool>(
|
||||||
|
context: context,
|
||||||
|
barrierDismissible: true,
|
||||||
|
builder: (dialogContext) => Dialog(
|
||||||
|
backgroundColor: TemaApp.colorSuperficie,
|
||||||
|
insetPadding: const EdgeInsets.symmetric(horizontal: 28, vertical: 24),
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(24),
|
||||||
|
side: BorderSide(
|
||||||
|
color: TemaApp.colorNaranja.withValues(alpha: 0.45),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.fromLTRB(24, 28, 24, 24),
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
width: 72,
|
||||||
|
height: 72,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
color: TemaApp.colorAcento.withValues(alpha: 0.16),
|
||||||
|
border: Border.all(
|
||||||
|
color: TemaApp.colorAcento.withValues(alpha: 0.65),
|
||||||
|
width: 2,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: IconoFarolero(
|
||||||
|
icono,
|
||||||
|
color: TemaApp.colorNaranja,
|
||||||
|
size: 38,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 18),
|
||||||
|
Text(
|
||||||
|
titulo,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: Theme.of(dialogContext).textTheme.titleLarge?.copyWith(
|
||||||
|
color: TemaApp.colorDorado,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
Text(
|
||||||
|
mensaje,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: Theme.of(dialogContext).textTheme.bodyMedium?.copyWith(
|
||||||
|
color: TemaApp.colorTextoSecundario,
|
||||||
|
height: 1.35,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 26),
|
||||||
|
// La acción segura va primero y destacada: si alguien llega aquí
|
||||||
|
// sin querer, lo cómodo tiene que ser quedarse.
|
||||||
|
BotonFarolero(
|
||||||
|
texto: textoCancelar,
|
||||||
|
icono: iconoCancelar,
|
||||||
|
onPressed: () => Navigator.of(dialogContext).pop(false),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 12),
|
||||||
|
BotonFarolero.oscuro(
|
||||||
|
texto: textoConfirmar,
|
||||||
|
icono: iconoConfirmar,
|
||||||
|
onPressed: () => Navigator.of(dialogContext).pop(true),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
return confirmado ?? false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Pregunta antes de abandonar una partida en curso.
|
||||||
|
Future<bool> confirmarSalirDePartida(
|
||||||
|
BuildContext context,
|
||||||
|
ContextoSalida contexto,
|
||||||
|
) {
|
||||||
|
final l10n = AppLocalizations.of(context)!;
|
||||||
|
return confirmarFarolero(
|
||||||
|
context: context,
|
||||||
|
titulo: l10n.leaveGameTitle,
|
||||||
|
mensaje: switch (contexto) {
|
||||||
|
ContextoSalida.unDispositivo => l10n.leaveGameSingleDevice,
|
||||||
|
ContextoSalida.host => l10n.leaveGameHost,
|
||||||
|
ContextoSalida.cliente => l10n.leaveGameClient,
|
||||||
|
},
|
||||||
|
textoConfirmar: l10n.leaveGame,
|
||||||
|
textoCancelar: l10n.stayInGame,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Envuelve una pantalla de partida para que el gesto o botón de atrás no la
|
||||||
|
/// abandone sin preguntar.
|
||||||
|
///
|
||||||
|
/// Se encarga solo del atrás del sistema; los botones de cerrar de cada
|
||||||
|
/// pantalla llaman a [confirmarSalirDePartida] por su cuenta, porque además de
|
||||||
|
/// confirmar tienen que desconectar y navegar.
|
||||||
|
class GuardiaSalidaPartida extends StatelessWidget {
|
||||||
|
final Widget child;
|
||||||
|
final ContextoSalida contexto;
|
||||||
|
|
||||||
|
/// Qué hacer cuando el jugador confirma que quiere salir. Si es null se deja
|
||||||
|
/// que la ruta se cierre con normalidad.
|
||||||
|
final VoidCallback? onSalirConfirmado;
|
||||||
|
|
||||||
|
/// Permite desactivar la guarda sin sacar el widget del árbol, por ejemplo
|
||||||
|
/// cuando la partida ya ha terminado.
|
||||||
|
final bool activo;
|
||||||
|
|
||||||
|
const GuardiaSalidaPartida({
|
||||||
|
super.key,
|
||||||
|
required this.child,
|
||||||
|
required this.contexto,
|
||||||
|
this.onSalirConfirmado,
|
||||||
|
this.activo = true,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return PopScope(
|
||||||
|
canPop: !activo,
|
||||||
|
onPopInvokedWithResult: (didPop, result) async {
|
||||||
|
if (didPop) return;
|
||||||
|
final salir = await confirmarSalirDePartida(context, contexto);
|
||||||
|
if (!salir || !context.mounted) return;
|
||||||
|
final alSalir = onSalirConfirmado;
|
||||||
|
if (alSalir != null) {
|
||||||
|
alSalir();
|
||||||
|
} else if (Navigator.of(context).canPop()) {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: child,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
|
/// Guardas sobre los ficheros de traducción.
|
||||||
|
///
|
||||||
|
/// El fallo que motivó estos tests: 21 claves se quedaron con el texto inglés
|
||||||
|
/// dentro de árabe, japonés, coreano, chino, ruso, turco, hindi, neerlandés,
|
||||||
|
/// polaco y euskera. Nada fallaba: la app mostraba inglés y ya está.
|
||||||
|
void main() {
|
||||||
|
const idiomaPlantilla = 'es';
|
||||||
|
|
||||||
|
/// Coincidencias reales entre idiomas: palabras que se escriben igual y por
|
||||||
|
/// tanto no son un descuido. Cada entrada es "idioma:clave".
|
||||||
|
const coincidenciasLegitimas = {
|
||||||
|
// Nombre de la app y rangos numéricos, iguales en todas partes.
|
||||||
|
'de:appTitle', 'en:appTitle', 'fr:appTitle', 'it:appTitle',
|
||||||
|
// "Animals", "Professions", "Impostors", "Notes" son catalán correcto.
|
||||||
|
'ca:categoryAnimals', 'ca:categoryProfessions', 'ca:impostors',
|
||||||
|
'ca:notes', 'ca:notesTitle',
|
||||||
|
// "Vibration", "Version", "Name" son alemán correcto.
|
||||||
|
'de:vibration', 'de:version', 'de:profileName',
|
||||||
|
// "Sports", "Configuration", "Notes", "Vibration", "Version" son francés.
|
||||||
|
'fr:categorySports', 'fr:configuration', 'fr:notes', 'fr:notesTitle',
|
||||||
|
'fr:vibration', 'fr:version',
|
||||||
|
// "Round" se usa tal cual en italiano.
|
||||||
|
'it:roundNumber', 'it:roundElimination',
|
||||||
|
};
|
||||||
|
|
||||||
|
Map<String, String> cargar(String idioma) {
|
||||||
|
final fichero = File('lib/l10n/app_$idioma.arb');
|
||||||
|
final datos = json.decode(fichero.readAsStringSync()) as Map<String, dynamic>;
|
||||||
|
return {
|
||||||
|
for (final e in datos.entries)
|
||||||
|
if (!e.key.startsWith('@') && e.value is String)
|
||||||
|
e.key: e.value as String,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
final idiomas = Directory('lib/l10n')
|
||||||
|
.listSync()
|
||||||
|
.whereType<File>()
|
||||||
|
.where((f) => f.path.endsWith('.arb'))
|
||||||
|
.map((f) => f.uri.pathSegments.last.replaceAll(RegExp(r'^app_|\.arb$'), ''))
|
||||||
|
.toList()
|
||||||
|
..sort();
|
||||||
|
|
||||||
|
final plantilla = cargar(idiomaPlantilla);
|
||||||
|
final ingles = cargar('en');
|
||||||
|
|
||||||
|
test('están los 18 idiomas soportados', () {
|
||||||
|
expect(idiomas.length, 18);
|
||||||
|
});
|
||||||
|
|
||||||
|
for (final idioma in idiomas) {
|
||||||
|
group('app_$idioma.arb', () {
|
||||||
|
final valores = cargar(idioma);
|
||||||
|
|
||||||
|
test('no le falta ninguna clave de la plantilla', () {
|
||||||
|
final faltan = plantilla.keys.where((k) => !valores.containsKey(k));
|
||||||
|
expect(faltan, isEmpty, reason: 'sin traducir: ${faltan.join(", ")}');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('no tiene claves que la plantilla no conozca', () {
|
||||||
|
final sobran = valores.keys.where((k) => !plantilla.containsKey(k));
|
||||||
|
expect(sobran, isEmpty, reason: 'huérfanas: ${sobran.join(", ")}');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('ningún valor está vacío', () {
|
||||||
|
final vacios = valores.entries
|
||||||
|
.where((e) => e.value.trim().isEmpty)
|
||||||
|
.map((e) => e.key);
|
||||||
|
expect(vacios, isEmpty);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (idioma != 'en' && idioma != idiomaPlantilla) {
|
||||||
|
test('no se ha quedado el texto en inglés', () {
|
||||||
|
final enIngles = valores.entries
|
||||||
|
.where((e) =>
|
||||||
|
ingles[e.key] == e.value &&
|
||||||
|
plantilla[e.key] != e.value &&
|
||||||
|
!coincidenciasLegitimas.contains('$idioma:${e.key}'))
|
||||||
|
.map((e) => '${e.key} = "${e.value}"')
|
||||||
|
.toList();
|
||||||
|
expect(enIngles, isEmpty, reason: enIngles.join('\n'));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
test('conserva los marcadores de posición de la plantilla', () {
|
||||||
|
final patron = RegExp(r'\{(\w+)\}');
|
||||||
|
final fallos = <String>[];
|
||||||
|
for (final entrada in valores.entries) {
|
||||||
|
final esperados = patron
|
||||||
|
.allMatches(plantilla[entrada.key] ?? '')
|
||||||
|
.map((m) => m.group(1)!)
|
||||||
|
.toSet();
|
||||||
|
final presentes =
|
||||||
|
patron.allMatches(entrada.value).map((m) => m.group(1)!).toSet();
|
||||||
|
// Los plurales ICU declaran el contador fuera de las llaves simples.
|
||||||
|
if (entrada.value.contains(', plural,')) continue;
|
||||||
|
if (!presentes.containsAll(esperados)) {
|
||||||
|
fallos.add('${entrada.key}: faltan ${esperados.difference(presentes)}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect(fallos, isEmpty, reason: fallos.join('\n'));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user