feat(i18n): fill the translation backlog and add the new strings

40 keys existed only in app_es.arb and fell back to Spanish everywhere else
(15 of them in English). Most were multi-device screens: hostGame, votar,
clueIs, whoDoYouThinkIsTheImpostor, waitingPlayersSeeWord.

Adds those plus the new keys for impostor awareness, the adjusted impostor
count, the eliminated-player notice and the reconnection screen.

51 keys across the 18 supported languages.
This commit is contained in:
2026-07-25 20:36:39 +02:00
parent 863690168c
commit b1b12cc8af
36 changed files with 3677 additions and 1206 deletions
+137 -68
View File
@@ -18,19 +18,20 @@ class AppLocalizationsPt extends AppLocalizations {
String get loadingWords => 'Carregando palavras...';
@override
String get matchRewards => "Recompensas da partida";
String get matchRewards => 'Recompensas da partida';
@override
String get newMedals => "Novas medalhas";
String get newMedals => 'Novas medalhas';
@override
String get noNewMedalsKeepFire => "Sem medalhas novas desta vez. Continua a acumular fogo.";
String get noNewMedalsKeepFire =>
'Sem medalhas novas desta vez. Continua a acumular fogo.';
@override
String get calculatingRewards => "Calculando recompensas...";
String get calculatingRewards => 'Calculando recompensas...';
@override
String get fireLabel => "Fogo";
String get fireLabel => 'Fogo';
@override
String get playersRange => '3-20 jogadores • Sem internet';
@@ -215,16 +216,6 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get playersInDebate => 'Jogadores no debate';
@override
String voteOf(String name) {
return "Voto de $name";
}
@override
String firstTurnInstruction(String name) {
return "$name começa dizendo a sua palavra.";
}
@override
String activePlayersInfo(int active, int impostors) {
return '$active ativos • $impostors impostor(es) ocultos';
@@ -504,131 +495,134 @@ class AppLocalizationsPt extends AppLocalizations {
String get licenses => 'Licenças';
@override
String get scanToJoin => 'Escanea el QR para unirte';
String get scanToJoin => 'Digitaliza o QR para entrares';
@override
String get connectedPlayers => 'Jugadores conectados';
String get connectedPlayers => 'Jogadores ligados';
@override
String get hostGame => 'Gestor de partida';
String get hostGame => 'Gestor de jogo';
@override
String get waitingPlayersSeeWord => 'Esperando que todos vean su palabra...';
String get waitingPlayersSeeWord =>
'À espera de que todos vejam a sua palavra...';
@override
String get activePlayers => 'Jugadores activos';
String get activePlayers => 'Jogadores ativos';
@override
String get playersVoted => 'Han votado';
String get playersVoted => ' votaram';
@override
String get waitingVoting => 'Esperando que voten...';
String get waitingVoting => 'À espera dos votos...';
@override
String get waitingForPlayers => 'Esperando jugadores...';
String get waitingForPlayers => 'À espera de jogadores...';
@override
String needMorePlayers(int count) {
return 'Faltan $count jugadores más';
return 'Faltam $count jogadores';
}
@override
String get starting => 'Iniciando...';
String get starting => 'A iniciar...';
@override
String get enterNameAndScan => 'Escribe tu nombre y escanea el QR del host';
String get enterNameAndScan =>
'Escreve o teu nome e digitaliza o QR do anfitrião';
@override
String get yourName => 'Tu nombre';
String get yourName => 'O teu nome';
@override
String get nameRequired => 'Escribe tu nombre';
String get nameRequired => 'Escreve o teu nome';
@override
String get connectingTo => 'Conectando a';
String get connectingTo => 'A ligar a';
@override
String get scanQR => 'Escanear QR';
String get scanQR => 'Digitalizar QR';
@override
String get scanHostQR => 'Apunta al QR del host';
String get scanHostQR => 'Aponta para o QR do anfitrião';
@override
String get connectedWaiting => '¡Conectado!';
String get connectedWaiting => 'Ligado!';
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
String get waitingForHost => 'À espera de que o anfitrião inicie o jogo...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
'Escreve o teu nome para procurar jogos por perto';
@override
String get searchGames => 'Buscar partidas';
String get searchGames => 'Procurar jogos';
@override
String get searchingGames => 'Buscando partidas cercanas...';
String get searchingGames => 'A procurar jogos por perto...';
@override
String get noGamesFound => 'No se encontraron partidas';
String get noGamesFound => 'Não foram encontrados jogos';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
'Certifica-te de que o anfitrião tem a sala aberta e estão perto';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
String get orScanQR => 'Não aparece? Digitaliza o QR do anfitrião';
@override
String get iveSeenIt => 'Ya la he visto';
String get iveSeenIt => 'Já a vi';
@override
String clueIs(String category) {
return 'La pista es: $category';
return 'A pista é: $category';
}
@override
String get debatePhaseActive => 'Fase de debate activa';
String get debatePhaseActive => 'Fase de debate a decorrer';
@override
String get debateInstructions =>
'Hablad entre vosotros y decid quién creéis que es el impostor. Cuando estéis listos, solicitad la votación.';
'Falem entre vos e digam quem acham que é o impostor. Quando estiverem prontos, peçam a votação.';
@override
String get solicitarVotacion => 'Solicitar votación';
String get solicitarVotacion => 'Pedir votação';
@override
String get votacionSolicitada => 'Votación solicitada';
String get votacionSolicitada => 'Votação pedida';
@override
String get whoDoYouThinkIsTheImpostor => '¿Quién es el impostor?';
String get whoDoYouThinkIsTheImpostor => 'Quem é o impostor?';
@override
String get selectOnePlayer => 'Selecciona a un jugador para votar';
String get selectOnePlayer => 'Seleciona um jogador para votar';
@override
String get votar => 'Votar';
@override
String get selectYourProfile => 'Tu perfil';
String get selectYourProfile => 'O teu perfil';
@override
String get selectProfile => 'Selecciona un perfil';
String get selectProfile => 'Seleciona um perfil';
@override
String get createNewUser => 'Crear nuevo usuario';
String get createNewUser => 'Criar novo utilizador';
@override
String get userNameRequired => 'El nombre no puede estar vacio';
String get userNameRequired => 'O nome não pode estar vazio';
@override
String get profileSelected => 'Perfil seleccionado';
String get profileSelected => 'Perfil selecionado';
@override
String get availableProfiles => 'Perfiles disponibles';
String get availableProfiles => 'Perfis disponíveis';
@override
String get scanThisCodeFromAnotherPhone => 'Escaneia este código noutro telemóvel';
String get scanThisCodeFromAnotherPhone =>
'Escaneia este código noutro telemóvel';
@override
String get gameUsers => 'Utilizadores da partida';
@@ -661,34 +655,41 @@ class AppLocalizationsPt extends AppLocalizations {
String get delete => 'Eliminar';
@override
String get selectAtLeastThreeUsersToStart => 'Seleciona pelo menos 3 utilizadores para começar.';
String get selectAtLeastThreeUsersToStart =>
'Seleciona pelo menos 3 utilizadores para começar.';
@override
String get hostPhoneMustSelectUser => 'O telemóvel anfitrião deve selecionar pelo menos um utilizador.';
String get hostPhoneMustSelectUser =>
'O telemóvel anfitrião deve selecionar pelo menos um utilizador.';
@override
String get roomNoLongerInLobby => 'A sala já não está no lobby.';
@override
String get completeUserSelectionToStart => 'Completa a seleção de utilizadores para começar.';
String get completeUserSelectionToStart =>
'Completa a seleção de utilizadores para começar.';
@override
String get preparingSecureRoom => 'A preparar a sala segura';
@override
String get searchingNearbyBluetoothGames => 'A procurar partidas próximas por Bluetooth';
String get searchingNearbyBluetoothGames =>
'A procurar partidas próximas por Bluetooth';
@override
String get tapToJoin => 'Toca para entrar';
@override
String get bluetoothLocationPermissionsRequired => 'São necessárias permissões de Bluetooth e localização para procurar partidas.';
String get bluetoothLocationPermissionsRequired =>
'São necessárias permissões de Bluetooth e localização para procurar partidas.';
@override
String get bluetoothLocationPermissionsShort => 'São necessárias permissões de Bluetooth e localização';
String get bluetoothLocationPermissionsShort =>
'São necessárias permissões de Bluetooth e localização';
@override
String get couldNotStartSearch => 'Não foi possível iniciar a procura. Verifica o Bluetooth e a localização.';
String get couldNotStartSearch =>
'Não foi possível iniciar a procura. Verifica o Bluetooth e a localização.';
@override
String couldNotConnectToHost(String host) {
@@ -702,13 +703,15 @@ class AppLocalizationsPt extends AppLocalizations {
String get singleDeviceSubtitle => 'Partida neste dispositivo';
@override
String get singleDeviceDescription => 'Ideal para jogar todos juntos passando o telemóvel. Configuração rápida e direta.';
String get singleDeviceDescription =>
'Ideal para jogar todos juntos passando o telemóvel. Configuração rápida e direta.';
@override
String get multiDeviceSubtitle => 'Cada jogador no seu telemóvel';
@override
String get multiDeviceDescription => 'Cria uma sala premium, partilha o QR e gere utilizadores no lobby.';
String get multiDeviceDescription =>
'Cria uma sala premium, partilha o QR e gere utilizadores no lobby.';
@override
String get singleDeviceGameLabel => 'Partida neste dispositivo';
@@ -720,7 +723,8 @@ class AppLocalizationsPt extends AppLocalizations {
String get mainDeviceUser => 'Utilizador principal do dispositivo';
@override
String get couldNotCreateRoom => 'Não foi possível criar a sala. Verifica o Bluetooth.';
String get couldNotCreateRoom =>
'Não foi possível criar a sala. Verifica o Bluetooth.';
@override
String cannotStartWithReason(String reason) {
@@ -732,6 +736,7 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get defaultPlayerName => 'Jogador';
@override
String get play => 'Jogar';
@@ -763,7 +768,8 @@ class AppLocalizationsPt extends AppLocalizations {
String get errorNoGame => 'Erro: sem partida';
@override
String get disconnectedPlayersWarning => 'Há jogadores com o dispositivo desligado.';
String get disconnectedPlayersWarning =>
'Há jogadores com o dispositivo desligado.';
@override
String get assumeOnThisPhone => 'Assumir neste telemóvel';
@@ -772,8 +778,71 @@ class AppLocalizationsPt extends AppLocalizations {
String get noResult => 'Sem resultado';
@override
String historyGameSummary(int players, int impostors, int rounds, String word, String category) {
return '$players jogadores • $impostors impostor(es) • $rounds ronda(s)\n$word$category';
String historyGameSummary(
int players,
int impostors,
int rounds,
String word,
String category,
) {
return '\$players jogadores • \$impostors impostor(es) • \$rounds ronda(s)\n\$word • \$category';
}
}
@override
String voteOf(String name) {
return 'Voto de $name';
}
@override
String firstTurnInstruction(String name) {
return '$name começa dizendo a sua palavra.';
}
@override
String get impostorsKnowEachOther => '🎭 Os impostores conhecem-se';
@override
String get impostorsKnowEachOtherDescription =>
'Cada impostor verá os nomes dos restantes';
@override
String get impostorsKnowEachOtherNeedsTwo =>
'Só se aplica com 2 ou mais impostores';
@override
String otherImpostorsTitle(num count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Os outros impostores',
one: 'O outro impostor',
);
return '$_temp0';
}
@override
String get youAreTheOnlyImpostor => 'És o único impostor';
@override
String impostorsAdjusted(int count) {
return 'Impostores ajustados para $count pelo número de jogadores';
}
@override
String get eliminatedCannotVote => 'Estás eliminado: já não votas';
@override
String get reconnecting => 'A religar...';
@override
String get reconnectingHint =>
'Perdeu-se a ligação ao anfitrião. O teu lugar no jogo mantém-se.';
@override
String get leaveGame => 'Sair do jogo';
@override
String playerRejoined(String name) {
return '$name voltou ao jogo';
}
}