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
+129 -70
View File
@@ -18,19 +18,19 @@ class AppLocalizationsKo extends AppLocalizations {
String get loadingWords => '단어 불러오는 중...';
@override
String get matchRewards => "게임 보상";
String get matchRewards => '게임 보상';
@override
String get newMedals => "새 메달";
String get newMedals => '새 메달';
@override
String get noNewMedalsKeepFire => "이번에는 새 메달이 없습니다. 불꽃을 계속 키우세요.";
String get noNewMedalsKeepFire => '이번에는 새 메달이 없습니다. 불꽃을 계속 키우세요.';
@override
String get calculatingRewards => "보상 계산 중...";
String get calculatingRewards => '보상 계산 중...';
@override
String get fireLabel => "불꽃";
String get fireLabel => '불꽃';
@override
String get playersRange => '3-20명 • 인터넷 불필요';
@@ -125,7 +125,7 @@ class AppLocalizationsKo extends AppLocalizations {
String get impostorClueDescription => '임포스터가 카테고리를 알 수 있습니다';
@override
String get debate => '🗣️ Debate';
String get debate => '🗣️ 토론';
@override
String get debateTime => '⏱️ 토론 시간';
@@ -213,16 +213,6 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get playersInDebate => '토론 중인 플레이어';
@override
String voteOf(String name) {
return "$name의 투표";
}
@override
String firstTurnInstruction(String name) {
return "$name님이 자신의 단어를 말하며 시작합니다.";
}
@override
String activePlayersInfo(int active, int impostors) {
return '$active명 참여 중 • $impostors명의 임포스터 잠복 중';
@@ -500,128 +490,126 @@ class AppLocalizationsKo extends AppLocalizations {
String get licenses => '라이선스';
@override
String get scanToJoin => 'Escanea el QR para unirte';
String get scanToJoin => 'QR 코드를 스캔해 참여하세요';
@override
String get connectedPlayers => 'Jugadores conectados';
String get connectedPlayers => '접속한 플레이어';
@override
String get hostGame => 'Gestor de partida';
String get hostGame => '게임 관리';
@override
String get waitingPlayersSeeWord => 'Esperando que todos vean su palabra...';
String get waitingPlayersSeeWord => '모두가 단어를 확인하기를 기다리는 중...';
@override
String get activePlayers => 'Jugadores activos';
String get activePlayers => '활동 중인 플레이어';
@override
String get playersVoted => 'Han votado';
String get playersVoted => '투표 완료';
@override
String get waitingVoting => 'Esperando que voten...';
String get waitingVoting => '투표를 기다리는 중...';
@override
String get waitingForPlayers => 'Esperando jugadores...';
String get waitingForPlayers => '플레이어를 기다리는 중...';
@override
String needMorePlayers(int count) {
return 'Faltan $count jugadores más';
return '$count명이 더 필요합니다';
}
@override
String get starting => 'Iniciando...';
String get starting => '시작하는 중...';
@override
String get enterNameAndScan => 'Escribe tu nombre y escanea el QR del host';
String get enterNameAndScan => '이름을 입력하고 호스트의 QR 코드를 스캔하세요';
@override
String get yourName => 'Tu nombre';
String get yourName => '이름';
@override
String get nameRequired => 'Escribe tu nombre';
String get nameRequired => '이름을 입력하세요';
@override
String get connectingTo => 'Conectando a';
String get connectingTo => '연결 중:';
@override
String get scanQR => 'Escanear QR';
String get scanQR => 'QR 코드 스캔';
@override
String get scanHostQR => 'Apunta al QR del host';
String get scanHostQR => '호스트의 QR 코드를 비추세요';
@override
String get connectedWaiting => '¡Conectado!';
String get connectedWaiting => '연결되었습니다!';
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
String get waitingForHost => '호스트가 게임을 시작하기를 기다리는 중...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
String get enterNameToSearch => '이름을 입력해 근처 게임을 찾으세요';
@override
String get searchGames => 'Buscar partidas';
String get searchGames => '게임 찾기';
@override
String get searchingGames => 'Buscando partidas cercanas...';
String get searchingGames => '근처 게임을 찾는 중...';
@override
String get noGamesFound => 'No se encontraron partidas';
String get noGamesFound => '게임을 찾을 수 없습니다';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
String get noGamesFoundHint => '호스트가 방을 열어 두었고 서로 가까이 있는지 확인하세요';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
String get orScanQR => '보이지 않나요? 호스트의 QR 코드를 스캔하세요';
@override
String get iveSeenIt => 'Ya la he visto';
String get iveSeenIt => '확인했습니다';
@override
String clueIs(String category) {
return 'La pista es: $category';
return '힌트: $category';
}
@override
String get debatePhaseActive => 'Fase de debate activa';
String get debatePhaseActive => '토론 단계 진행 중';
@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.';
'서로 이야기하며 누가 임포스터라고 생각하는지 말해 보세요. 준비되면 투표를 요청하세요.';
@override
String get solicitarVotacion => 'Solicitar votación';
String get solicitarVotacion => '투표 요청';
@override
String get votacionSolicitada => 'Votación solicitada';
String get votacionSolicitada => '투표를 요청했습니다';
@override
String get whoDoYouThinkIsTheImpostor => '¿Quién es el impostor?';
String get whoDoYouThinkIsTheImpostor => '임포스터는 누구일까요?';
@override
String get selectOnePlayer => 'Selecciona a un jugador para votar';
String get selectOnePlayer => '투표할 플레이어를 선택하세요';
@override
String get votar => 'Votar';
String get votar => '투표하기';
@override
String get selectYourProfile => 'Tu perfil';
String get selectYourProfile => '내 프로필';
@override
String get selectProfile => 'Selecciona un perfil';
String get selectProfile => '프로필을 선택하세요';
@override
String get createNewUser => 'Crear nuevo usuario';
String get createNewUser => '새 사용자 만들기';
@override
String get userNameRequired => 'El nombre no puede estar vacio';
String get userNameRequired => '이름은 비워 둘 수 없습니다';
@override
String get profileSelected => 'Perfil seleccionado';
String get profileSelected => '프로필을 선택했습니다';
@override
String get availableProfiles => 'Perfiles disponibles';
String get availableProfiles => '사용 가능한 프로필';
@override
String get scanThisCodeFromAnotherPhone => '다른 휴대폰에서 이 코드를 스캔하세요';
@@ -657,34 +645,41 @@ class AppLocalizationsKo extends AppLocalizations {
String get delete => '삭제';
@override
String get selectAtLeastThreeUsersToStart => 'Select at least 3 users to start.';
String get selectAtLeastThreeUsersToStart =>
'Select at least 3 users to start.';
@override
String get hostPhoneMustSelectUser => 'The host phone must select at least one user.';
String get hostPhoneMustSelectUser =>
'The host phone must select at least one user.';
@override
String get roomNoLongerInLobby => 'The room is no longer in the lobby.';
@override
String get completeUserSelectionToStart => 'Complete user selection to start.';
String get completeUserSelectionToStart =>
'Complete user selection to start.';
@override
String get preparingSecureRoom => 'Preparing the secure room';
@override
String get searchingNearbyBluetoothGames => 'Searching nearby games over Bluetooth';
String get searchingNearbyBluetoothGames =>
'Searching nearby games over Bluetooth';
@override
String get tapToJoin => 'Tap to join';
@override
String get bluetoothLocationPermissionsRequired => 'Bluetooth and location permissions are required to search for games.';
String get bluetoothLocationPermissionsRequired =>
'Bluetooth and location permissions are required to search for games.';
@override
String get bluetoothLocationPermissionsShort => 'Bluetooth and location permissions are required';
String get bluetoothLocationPermissionsShort =>
'Bluetooth and location permissions are required';
@override
String get couldNotStartSearch => 'Could not start the search. Check Bluetooth and location.';
String get couldNotStartSearch =>
'Could not start the search. Check Bluetooth and location.';
@override
String couldNotConnectToHost(String host) {
@@ -698,13 +693,15 @@ class AppLocalizationsKo extends AppLocalizations {
String get singleDeviceSubtitle => 'Game on this device';
@override
String get singleDeviceDescription => 'Ideal for playing together by passing the phone around. Fast, direct setup.';
String get singleDeviceDescription =>
'Ideal for playing together by passing the phone around. Fast, direct setup.';
@override
String get multiDeviceSubtitle => 'Each player on their phone';
@override
String get multiDeviceDescription => 'Create a premium room, share the QR code and manage users from the lobby.';
String get multiDeviceDescription =>
'Create a premium room, share the QR code and manage users from the lobby.';
@override
String get singleDeviceGameLabel => 'Game on this device';
@@ -716,7 +713,8 @@ class AppLocalizationsKo extends AppLocalizations {
String get mainDeviceUser => 'Main device user';
@override
String get couldNotCreateRoom => 'Could not create the room. Check Bluetooth.';
String get couldNotCreateRoom =>
'Could not create the room. Check Bluetooth.';
@override
String cannotStartWithReason(String reason) {
@@ -728,6 +726,7 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get defaultPlayerName => '플레이어';
@override
String get play => '플레이';
@@ -768,8 +767,68 @@ class AppLocalizationsKo extends AppLocalizations {
String get noResult => '결과 없음';
@override
String historyGameSummary(int players, int impostors, int rounds, String word, String category) {
return '플레이어 $players명 • 임포스터 $impostors명$rounds라운드\n$word$category';
String historyGameSummary(
int players,
int impostors,
int rounds,
String word,
String category,
) {
return '플레이어 \$players명 • 임포스터 \$impostors명 • \$rounds라운드\n\$word • \$category';
}
}
@override
String voteOf(String name) {
return '$name의 투표';
}
@override
String firstTurnInstruction(String name) {
return '$name님이 자신의 단어를 말하며 시작합니다.';
}
@override
String get impostorsKnowEachOther => '🎭 임포스터끼리 서로 압니다';
@override
String get impostorsKnowEachOtherDescription => '각 임포스터가 다른 임포스터의 이름을 봅니다';
@override
String get impostorsKnowEachOtherNeedsTwo => '임포스터가 2명 이상일 때만 적용됩니다';
@override
String otherImpostorsTitle(num count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '다른 임포스터들',
one: '다른 임포스터',
);
return '$_temp0';
}
@override
String get youAreTheOnlyImpostor => '당신이 유일한 임포스터입니다';
@override
String impostorsAdjusted(int count) {
return '플레이어 수에 맞춰 임포스터를 $count명으로 조정했습니다';
}
@override
String get eliminatedCannotVote => '탈락했습니다. 더 이상 투표할 수 없습니다';
@override
String get reconnecting => '다시 연결하는 중...';
@override
String get reconnectingHint => '호스트와의 연결이 끊겼습니다. 게임 내 자리는 유지됩니다.';
@override
String get leaveGame => '게임 나가기';
@override
String playerRejoined(String name) {
return '$name 님이 게임에 복귀했습니다';
}
}