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 AppLocalizationsJa 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 AppLocalizationsJa extends AppLocalizations {
String get impostorClueDescription => 'インポスターにカテゴリーが表示されます';
@override
String get debate => '🗣️ Debate';
String get debate => '🗣️ 議論';
@override
String get debateTime => '⏱️ 議論の時間';
@@ -213,16 +213,6 @@ class AppLocalizationsJa 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 AppLocalizationsJa 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 AppLocalizationsJa 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 AppLocalizationsJa 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 AppLocalizationsJa 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 AppLocalizationsJa extends AppLocalizations {
@override
String get defaultPlayerName => 'プレイヤー';
@override
String get play => 'プレイ';
@@ -768,8 +767,68 @@ class AppLocalizationsJa 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 がゲームに復帰しました';
}
}