- Añadido modelo Usuario con pool de usuarios sincronizado - El host ahora recibe palabra y rol como cualquier jugador - UI de selección de perfil en pantallas de lobby - Los clientes pueden ver usuarios del servidor o crear nuevos - El juego no inicia hasta que el host selecciona perfil
1067 lines
25 KiB
Dart
1067 lines
25 KiB
Dart
// ignore: unused_import
|
||
import 'package:intl/intl.dart' as intl;
|
||
import 'app_localizations.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// The translations for Chinese (`zh`).
|
||
class AppLocalizationsZh extends AppLocalizations {
|
||
AppLocalizationsZh([String locale = 'zh']) : super(locale);
|
||
|
||
@override
|
||
String get appTitle => '冒牌者';
|
||
|
||
@override
|
||
String get subtitle => '社交推理游戏';
|
||
|
||
@override
|
||
String get loadingWords => '正在加载词汇...';
|
||
|
||
@override
|
||
String get playersRange => '3-20名玩家 • 无需联网';
|
||
|
||
@override
|
||
String get createGame => '创建游戏';
|
||
|
||
@override
|
||
String get joinGame => '加入游戏';
|
||
|
||
@override
|
||
String get howToPlay => '玩法介绍';
|
||
|
||
@override
|
||
String get settings => '设置';
|
||
|
||
@override
|
||
String get gameMode => '游戏模式';
|
||
|
||
@override
|
||
String get singleDevice => '单设备';
|
||
|
||
@override
|
||
String get multiDevice => '多设备';
|
||
|
||
@override
|
||
String get category => '分类';
|
||
|
||
@override
|
||
String get categoryAll => '全部';
|
||
|
||
@override
|
||
String get categoryAnimals => '动物';
|
||
|
||
@override
|
||
String get categoryFood => '食物';
|
||
|
||
@override
|
||
String get categoryCountries => '国家';
|
||
|
||
@override
|
||
String get categorySports => '运动';
|
||
|
||
@override
|
||
String get categoryProfessions => '职业';
|
||
|
||
@override
|
||
String get categoryObjects => '物品';
|
||
|
||
@override
|
||
String get categoryPlaces => '地点';
|
||
|
||
@override
|
||
String get categoryMovies => '电影';
|
||
|
||
@override
|
||
String get categoryMusic => '音乐';
|
||
|
||
@override
|
||
String get categoryTechnology => '科技';
|
||
|
||
@override
|
||
String playersCount(int count) {
|
||
return '玩家 ($count)';
|
||
}
|
||
|
||
@override
|
||
String get playersRangeHint => '3-20';
|
||
|
||
@override
|
||
String get playerNameHint => '玩家名称';
|
||
|
||
@override
|
||
String get playerAlreadyExists => '已存在同名玩家';
|
||
|
||
@override
|
||
String get maxPlayersReached => '最多20名玩家';
|
||
|
||
@override
|
||
String get minPlayersRequired => '至少需要3名玩家';
|
||
|
||
@override
|
||
String get configuration => '配置';
|
||
|
||
@override
|
||
String get impostors => '🎭 冒牌者';
|
||
|
||
@override
|
||
String get impostorClue => '🔍 给冒牌者的提示';
|
||
|
||
@override
|
||
String get impostorClueDescription => '冒牌者可以知道分类';
|
||
|
||
@override
|
||
String get debate => '🗣️ Debate';
|
||
|
||
@override
|
||
String get debateTime => '⏱️ 讨论时间';
|
||
|
||
@override
|
||
String get noLimit => '不限时';
|
||
|
||
@override
|
||
String get oneMin => '1分钟';
|
||
|
||
@override
|
||
String get twoMin => '2分钟';
|
||
|
||
@override
|
||
String get threeMin => '3分钟';
|
||
|
||
@override
|
||
String get fiveMin => '5分钟';
|
||
|
||
@override
|
||
String get startGame => '开始游戏';
|
||
|
||
@override
|
||
String get seeYourWord => '查看你的词语';
|
||
|
||
@override
|
||
String get eachPlayerMustSee => '每位玩家需要秘密查看自己的词语';
|
||
|
||
@override
|
||
String roundNumber(int round) {
|
||
return '第 $round 轮';
|
||
}
|
||
|
||
@override
|
||
String get alreadySeen => '已查看词语';
|
||
|
||
@override
|
||
String get tapToSee => '点击查看';
|
||
|
||
@override
|
||
String get allSeenStartDebate => '全员已查看 → 开始讨论';
|
||
|
||
@override
|
||
String playersRemaining(int count) {
|
||
return '还剩 $count 位玩家';
|
||
}
|
||
|
||
@override
|
||
String get youAreImpostor => '你是冒牌者!';
|
||
|
||
@override
|
||
String get yourWordIs => '你的词语是:';
|
||
|
||
@override
|
||
String clueCategory(String category) {
|
||
return '提示:$category';
|
||
}
|
||
|
||
@override
|
||
String get holdToSeeWord => '长按查看你的词语';
|
||
|
||
@override
|
||
String get makeSureNoOneLooks => '确保没有其他人在看';
|
||
|
||
@override
|
||
String get showingWord => '👁️ 显示中...';
|
||
|
||
@override
|
||
String get holdToSee => '👆 长按查看';
|
||
|
||
@override
|
||
String get seenMyWord => '我已看过词语';
|
||
|
||
@override
|
||
String debateRound(int round) {
|
||
return '讨论 - 第 $round 轮';
|
||
}
|
||
|
||
@override
|
||
String get timeUp => '⏰ 时间到!';
|
||
|
||
@override
|
||
String get timeRemaining => '⏱️ 剩余时间';
|
||
|
||
@override
|
||
String get playersInDebate => '参与讨论的玩家';
|
||
|
||
@override
|
||
String activePlayersInfo(int active, int impostors) {
|
||
return '$active 名在场 • $impostors 名冒牌者潜伏中';
|
||
}
|
||
|
||
@override
|
||
String get eliminated => '已淘汰';
|
||
|
||
@override
|
||
String get notes => '笔记';
|
||
|
||
@override
|
||
String get goToVoting => '前往投票';
|
||
|
||
@override
|
||
String get voting => '🗳️ 投票';
|
||
|
||
@override
|
||
String get turnToVote => '轮到你投票:';
|
||
|
||
@override
|
||
String votesProgress(int current, int total) {
|
||
return '投票:$current/$total';
|
||
}
|
||
|
||
@override
|
||
String get whoIsImpostor => '你认为谁是冒牌者?';
|
||
|
||
@override
|
||
String get confirmVote => '确认投票';
|
||
|
||
@override
|
||
String get votingComplete => '🗳️ 投票结束';
|
||
|
||
@override
|
||
String get allVoted => '所有人已投票!';
|
||
|
||
@override
|
||
String get tapToReveal => '点击揭晓结果';
|
||
|
||
@override
|
||
String get revealResult => '揭晓结果';
|
||
|
||
@override
|
||
String get result => '结果';
|
||
|
||
@override
|
||
String get revealing => '揭晓中...';
|
||
|
||
@override
|
||
String get wasImpostor => '是冒牌者! 🎉';
|
||
|
||
@override
|
||
String get wasInnocent => '是无辜的 😱';
|
||
|
||
@override
|
||
String get votesThisRound => '本轮投票情况';
|
||
|
||
@override
|
||
String get seeEndResult => '查看最终结果';
|
||
|
||
@override
|
||
String get impostorGuessWord => '冒牌者要猜词吗?';
|
||
|
||
@override
|
||
String get nextRound => '下一轮';
|
||
|
||
@override
|
||
String get impostorGuessTitle => '🎯 冒牌者猜词';
|
||
|
||
@override
|
||
String get impostorCanGuess => '被淘汰的冒牌者可以\n尝试猜出词语';
|
||
|
||
@override
|
||
String get ifCorrectImpostorsWin => '如果猜对,冒牌者获胜!';
|
||
|
||
@override
|
||
String get guessWordHint => '你认为词语是什么?';
|
||
|
||
@override
|
||
String get dontGuess => '不猜';
|
||
|
||
@override
|
||
String get guess => '猜词';
|
||
|
||
@override
|
||
String get correctGuess => '猜对了!';
|
||
|
||
@override
|
||
String theWordWas(String word) {
|
||
return '词语是:$word';
|
||
}
|
||
|
||
@override
|
||
String get impostorsWin => '冒牌者获胜!';
|
||
|
||
@override
|
||
String get wrongGuess => '猜错了!';
|
||
|
||
@override
|
||
String get gameContinues => '游戏继续...';
|
||
|
||
@override
|
||
String get gameOver => '游戏结束';
|
||
|
||
@override
|
||
String get playersWin => '玩家获胜!';
|
||
|
||
@override
|
||
String get theSecretWordWas => '🔍 词语是:';
|
||
|
||
@override
|
||
String categoryLabel(String category) {
|
||
return '分类:$category';
|
||
}
|
||
|
||
@override
|
||
String get theImpostorWas => '🎭 冒牌者是:';
|
||
|
||
@override
|
||
String get theImpostorsWere => '🎭 冒牌者们是:';
|
||
|
||
@override
|
||
String get votingHistory => '📊 投票历史';
|
||
|
||
@override
|
||
String roundElimination(int round, String name) {
|
||
return '第 $round 轮:$name';
|
||
}
|
||
|
||
@override
|
||
String get rematch => '再来一局';
|
||
|
||
@override
|
||
String get mainMenu => '主菜单';
|
||
|
||
@override
|
||
String get notesTitle => '📝 笔记';
|
||
|
||
@override
|
||
String get notesSaved => '笔记已保存';
|
||
|
||
@override
|
||
String get whoAreYou => '你是谁?';
|
||
|
||
@override
|
||
String get selectYourName => '选择你的名字查看个人笔记';
|
||
|
||
@override
|
||
String notesOf(String name) {
|
||
return '$name的笔记';
|
||
}
|
||
|
||
@override
|
||
String get notesAboutPlayers => '关于每位玩家的记录';
|
||
|
||
@override
|
||
String get playerNoteHint => '他说了什么?可疑吗?';
|
||
|
||
@override
|
||
String get freeNote => '自由笔记';
|
||
|
||
@override
|
||
String get freeNoteHint => '个人记录...';
|
||
|
||
@override
|
||
String get rulesTitle => '📖 玩法介绍';
|
||
|
||
@override
|
||
String get rulesWhatIsTitle => '🎭 什么是冒牌者?';
|
||
|
||
@override
|
||
String get rulesWhatIsBody =>
|
||
'一款3-20人的社交推理游戏。每个人都会收到一个秘密词语......除了冒牌者!你的任务:找出谁在假装。';
|
||
|
||
@override
|
||
String get rulesHowToPlayTitle => '🔍 怎么玩?';
|
||
|
||
@override
|
||
String get rulesHowToPlayBody =>
|
||
'1. 分配角色:所有人收到相同的词语,但冒牌者除外。\n\n2. 讨论:轮流发言,每位玩家描述词语但不能直接说出来。冒牌者必须假装知道词语。\n\n3. 投票:讨论结束后,所有人投票选出他们认为的冒牌者。\n\n4. 淘汰:得票最多的玩家被淘汰,并揭晓其是否为冒牌者。\n\n5. 如果是冒牌者,可以尝试猜出词语。猜对则冒牌者获胜!';
|
||
|
||
@override
|
||
String get rulesWhoWinsTitle => '🏆 谁能赢?';
|
||
|
||
@override
|
||
String get rulesWhoWinsBody =>
|
||
'• 玩家:淘汰所有冒牌者即可获胜。\n• 冒牌者:如果未被识破,坚持到普通玩家人数等于或少于冒牌者人数即可获胜;或者在被淘汰时猜对词语也能获胜。';
|
||
|
||
@override
|
||
String get rulesTipsPlayersTitle => '💡 给玩家的建议';
|
||
|
||
@override
|
||
String get rulesTipsPlayersBody =>
|
||
'• 给出能证明你知道词语的微妙提示,但不要太明显以至于被冒牌者利用。\n• 留意那些给出模糊或笼统回答的人。\n• 利用笔记记录每个人说的话。\n• 不要直接说出词语,那会帮到冒牌者!';
|
||
|
||
@override
|
||
String get rulesTipsImpostorTitle => '🎭 给冒牌者的建议';
|
||
|
||
@override
|
||
String get rulesTipsImpostorBody =>
|
||
'• 仔细聆听其他人的提示。\n• 尝试推断词语,以便给出可信的提示。\n• 如果没有把握,不要第一个发言。\n• 如果给了你分类提示,好好利用它。\n• 指控别人来转移注意力。';
|
||
|
||
@override
|
||
String get rulesModesTitle => '📱 游戏模式';
|
||
|
||
@override
|
||
String get rulesModesBody =>
|
||
'• 单设备:所有人共享一台设备。每位玩家通过长按按钮查看自己的词语。\n\n• 多设备:每位玩家使用自己的设备。通过蓝牙/WiFi Direct连接,无需联网。';
|
||
|
||
@override
|
||
String get rulesExampleTitle => '✏️ 游戏示例';
|
||
|
||
@override
|
||
String get rulesExampleBody =>
|
||
'秘密词语:\"披萨\"\n\n• 小明:\"趁热吃的\" ✓\n• 小红:\"装在盒子里的\" ✓\n• 小丽(冒牌者):\"非常受欢迎\" 🤔\n• 小刚:\"上面有芝士\" ✓\n\n小丽的回答太笼统了......可疑!';
|
||
|
||
@override
|
||
String get joinGameTitle => '加入游戏';
|
||
|
||
@override
|
||
String get multiDeviceMode => '多设备模式';
|
||
|
||
@override
|
||
String get scanQrDescription => '扫描房主显示的二维码,通过蓝牙/WiFi Direct连接到游戏。';
|
||
|
||
@override
|
||
String get comingSoon => '即将推出';
|
||
|
||
@override
|
||
String get nearbyNotAvailable =>
|
||
'多设备连接的Nearby Connections功能需要实体Android设备。\n\n目前请使用\"单设备\"模式,在一台共享设备上进行游戏。';
|
||
|
||
@override
|
||
String get back => '返回';
|
||
|
||
@override
|
||
String get yes => '是';
|
||
|
||
@override
|
||
String get no => '否';
|
||
|
||
@override
|
||
String get cancel => '取消';
|
||
|
||
@override
|
||
String get accept => '确定';
|
||
|
||
@override
|
||
String get next => '下一步';
|
||
|
||
@override
|
||
String get settingsTitle => '设置';
|
||
|
||
@override
|
||
String get language => '语言';
|
||
|
||
@override
|
||
String get soundVolume => '音效音量';
|
||
|
||
@override
|
||
String get vibration => '振动';
|
||
|
||
@override
|
||
String get about => '关于';
|
||
|
||
@override
|
||
String get version => '版本';
|
||
|
||
@override
|
||
String get developer => '开发者';
|
||
|
||
@override
|
||
String get licenses => '许可证';
|
||
|
||
@override
|
||
String get scanToJoin => 'Escanea el QR para unirte';
|
||
|
||
@override
|
||
String get connectedPlayers => 'Jugadores conectados';
|
||
|
||
@override
|
||
String get hostGame => 'Gestor de partida';
|
||
|
||
@override
|
||
String get waitingPlayersSeeWord => 'Esperando que todos vean su palabra...';
|
||
|
||
@override
|
||
String get activePlayers => 'Jugadores activos';
|
||
|
||
@override
|
||
String get playersVoted => 'Han votado';
|
||
|
||
@override
|
||
String get waitingVoting => 'Esperando que voten...';
|
||
|
||
@override
|
||
String get waitingForPlayers => 'Esperando jugadores...';
|
||
|
||
@override
|
||
String needMorePlayers(int count) {
|
||
return 'Faltan $count jugadores más';
|
||
}
|
||
|
||
@override
|
||
String get starting => 'Iniciando...';
|
||
|
||
@override
|
||
String get enterNameAndScan => 'Escribe tu nombre y escanea el QR del host';
|
||
|
||
@override
|
||
String get yourName => 'Tu nombre';
|
||
|
||
@override
|
||
String get nameRequired => 'Escribe tu nombre';
|
||
|
||
@override
|
||
String get connectingTo => 'Conectando a';
|
||
|
||
@override
|
||
String get scanQR => 'Escanear QR';
|
||
|
||
@override
|
||
String get scanHostQR => 'Apunta al QR del host';
|
||
|
||
@override
|
||
String get connectedWaiting => '¡Conectado!';
|
||
|
||
@override
|
||
String get waitingForHost => 'Esperando a que el host inicie la partida...';
|
||
|
||
@override
|
||
String get enterNameToSearch =>
|
||
'Escribe tu nombre para buscar partidas cercanas';
|
||
|
||
@override
|
||
String get searchGames => 'Buscar partidas';
|
||
|
||
@override
|
||
String get searchingGames => 'Buscando partidas cercanas...';
|
||
|
||
@override
|
||
String get noGamesFound => 'No se encontraron partidas';
|
||
|
||
@override
|
||
String get noGamesFoundHint =>
|
||
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
|
||
|
||
@override
|
||
String get orScanQR => '¿No aparece? Escanea el QR del host';
|
||
|
||
@override
|
||
String get iveSeenIt => 'Ya la he visto';
|
||
|
||
@override
|
||
String clueIs(String category) {
|
||
return 'La pista es: $category';
|
||
}
|
||
|
||
@override
|
||
String get debatePhaseActive => 'Fase de debate activa';
|
||
|
||
@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';
|
||
|
||
@override
|
||
String get votacionSolicitada => 'Votación solicitada';
|
||
|
||
@override
|
||
String get whoDoYouThinkIsTheImpostor => '¿Quién es el impostor?';
|
||
|
||
@override
|
||
String get selectOnePlayer => 'Selecciona a un jugador para votar';
|
||
|
||
@override
|
||
String get votar => 'Votar';
|
||
|
||
@override
|
||
String get selectYourProfile => 'Tu perfil';
|
||
|
||
@override
|
||
String get selectProfile => 'Selecciona un perfil';
|
||
|
||
@override
|
||
String get createNewUser => 'Crear nuevo usuario';
|
||
|
||
@override
|
||
String get userNameRequired => 'El nombre no puede estar vacio';
|
||
|
||
@override
|
||
String get profileSelected => 'Perfil seleccionado';
|
||
|
||
@override
|
||
String get availableProfiles => 'Perfiles disponibles';
|
||
}
|
||
|
||
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
|
||
class AppLocalizationsZhTw extends AppLocalizationsZh {
|
||
AppLocalizationsZhTw() : super('zh_TW');
|
||
|
||
@override
|
||
String get appTitle => '冒牌者';
|
||
|
||
@override
|
||
String get subtitle => '社交推理遊戲';
|
||
|
||
@override
|
||
String get loadingWords => '正在載入詞彙...';
|
||
|
||
@override
|
||
String get playersRange => '3-20 位玩家 • 無需網路';
|
||
|
||
@override
|
||
String get createGame => '建立遊戲';
|
||
|
||
@override
|
||
String get joinGame => '加入遊戲';
|
||
|
||
@override
|
||
String get howToPlay => '遊戲規則';
|
||
|
||
@override
|
||
String get settings => '設定';
|
||
|
||
@override
|
||
String get gameMode => '遊戲模式';
|
||
|
||
@override
|
||
String get singleDevice => '單機模式';
|
||
|
||
@override
|
||
String get multiDevice => '多機模式';
|
||
|
||
@override
|
||
String get category => '類別';
|
||
|
||
@override
|
||
String get categoryAll => '全部';
|
||
|
||
@override
|
||
String get categoryAnimals => '動物';
|
||
|
||
@override
|
||
String get categoryFood => '食物';
|
||
|
||
@override
|
||
String get categoryCountries => '國家';
|
||
|
||
@override
|
||
String get categorySports => '運動';
|
||
|
||
@override
|
||
String get categoryProfessions => '職業';
|
||
|
||
@override
|
||
String get categoryObjects => '物品';
|
||
|
||
@override
|
||
String get categoryPlaces => '地點';
|
||
|
||
@override
|
||
String get categoryMovies => '電影';
|
||
|
||
@override
|
||
String get categoryMusic => '音樂';
|
||
|
||
@override
|
||
String get categoryTechnology => '科技';
|
||
|
||
@override
|
||
String playersCount(int count) {
|
||
return '玩家 ($count)';
|
||
}
|
||
|
||
@override
|
||
String get playersRangeHint => '3-20';
|
||
|
||
@override
|
||
String get playerNameHint => '玩家名稱';
|
||
|
||
@override
|
||
String get playerAlreadyExists => '已有同名玩家';
|
||
|
||
@override
|
||
String get maxPlayersReached => '最多 20 位玩家';
|
||
|
||
@override
|
||
String get minPlayersRequired => '至少需要 3 位玩家';
|
||
|
||
@override
|
||
String get configuration => '設定';
|
||
|
||
@override
|
||
String get impostors => '🎭 冒牌者';
|
||
|
||
@override
|
||
String get impostorClue => '🔍 冒牌者提示';
|
||
|
||
@override
|
||
String get impostorClueDescription => '冒牌者可以知道類別';
|
||
|
||
@override
|
||
String get debateTime => '⏱️ 討論時間';
|
||
|
||
@override
|
||
String get noLimit => '無限制';
|
||
|
||
@override
|
||
String get oneMin => '1 分鐘';
|
||
|
||
@override
|
||
String get twoMin => '2 分鐘';
|
||
|
||
@override
|
||
String get threeMin => '3 分鐘';
|
||
|
||
@override
|
||
String get fiveMin => '5 分鐘';
|
||
|
||
@override
|
||
String get startGame => '開始遊戲';
|
||
|
||
@override
|
||
String get seeYourWord => '查看你的詞彙';
|
||
|
||
@override
|
||
String get eachPlayerMustSee => '每位玩家必須私下查看自己的詞彙';
|
||
|
||
@override
|
||
String roundNumber(int round) {
|
||
return '第 $round 回合';
|
||
}
|
||
|
||
@override
|
||
String get alreadySeen => '已查看過詞彙';
|
||
|
||
@override
|
||
String get tapToSee => '點擊查看';
|
||
|
||
@override
|
||
String get allSeenStartDebate => '全員已查看 → 開始討論';
|
||
|
||
@override
|
||
String playersRemaining(int count) {
|
||
return '還有 $count 位玩家未查看';
|
||
}
|
||
|
||
@override
|
||
String get youAreImpostor => '你是冒牌者!';
|
||
|
||
@override
|
||
String get yourWordIs => '你的詞彙是:';
|
||
|
||
@override
|
||
String clueCategory(String category) {
|
||
return '提示:$category';
|
||
}
|
||
|
||
@override
|
||
String get holdToSeeWord => '長按查看你的詞彙';
|
||
|
||
@override
|
||
String get makeSureNoOneLooks => '請確認沒有其他人在看';
|
||
|
||
@override
|
||
String get showingWord => '👁️ 顯示中...';
|
||
|
||
@override
|
||
String get holdToSee => '👆 長按查看';
|
||
|
||
@override
|
||
String get seenMyWord => '我已看過詞彙';
|
||
|
||
@override
|
||
String debateRound(int round) {
|
||
return '討論 - 第 $round 回合';
|
||
}
|
||
|
||
@override
|
||
String get timeUp => '⏰ 時間到!';
|
||
|
||
@override
|
||
String get timeRemaining => '⏱️ 剩餘時間';
|
||
|
||
@override
|
||
String get playersInDebate => '參與討論的玩家';
|
||
|
||
@override
|
||
String activePlayersInfo(int active, int impostors) {
|
||
return '$active 位在場 • $impostors 位冒牌者潛伏中';
|
||
}
|
||
|
||
@override
|
||
String get eliminated => '已淘汰';
|
||
|
||
@override
|
||
String get notes => '筆記';
|
||
|
||
@override
|
||
String get goToVoting => '前往投票';
|
||
|
||
@override
|
||
String get voting => '🗳️ 投票';
|
||
|
||
@override
|
||
String get turnToVote => '輪到你投票:';
|
||
|
||
@override
|
||
String votesProgress(int current, int total) {
|
||
return '票數:$current/$total';
|
||
}
|
||
|
||
@override
|
||
String get whoIsImpostor => '你認為誰是冒牌者?';
|
||
|
||
@override
|
||
String get confirmVote => '確認投票';
|
||
|
||
@override
|
||
String get votingComplete => '🗳️ 投票完成';
|
||
|
||
@override
|
||
String get allVoted => '所有人都已投票!';
|
||
|
||
@override
|
||
String get tapToReveal => '點擊揭曉結果';
|
||
|
||
@override
|
||
String get revealResult => '揭曉結果';
|
||
|
||
@override
|
||
String get result => '結果';
|
||
|
||
@override
|
||
String get revealing => '揭曉中...';
|
||
|
||
@override
|
||
String get wasImpostor => '是冒牌者! 🎉';
|
||
|
||
@override
|
||
String get wasInnocent => '是無辜的 😱';
|
||
|
||
@override
|
||
String get votesThisRound => '本回合票數';
|
||
|
||
@override
|
||
String get seeEndResult => '查看最終結果';
|
||
|
||
@override
|
||
String get impostorGuessWord => '冒牌者要猜詞彙嗎?';
|
||
|
||
@override
|
||
String get nextRound => '下一回合';
|
||
|
||
@override
|
||
String get impostorGuessTitle => '🎯 冒牌者猜詞';
|
||
|
||
@override
|
||
String get impostorCanGuess => '被淘汰的冒牌者可以\n嘗試猜出正確詞彙';
|
||
|
||
@override
|
||
String get ifCorrectImpostorsWin => '猜對的話,冒牌者就贏了!';
|
||
|
||
@override
|
||
String get guessWordHint => '你覺得詞彙是什麼?';
|
||
|
||
@override
|
||
String get dontGuess => '放棄猜測';
|
||
|
||
@override
|
||
String get guess => '猜測';
|
||
|
||
@override
|
||
String get correctGuess => '猜對了!';
|
||
|
||
@override
|
||
String theWordWas(String word) {
|
||
return '正確詞彙是:$word';
|
||
}
|
||
|
||
@override
|
||
String get impostorsWin => '冒牌者獲勝!';
|
||
|
||
@override
|
||
String get wrongGuess => '猜錯了!';
|
||
|
||
@override
|
||
String get gameContinues => '遊戲繼續...';
|
||
|
||
@override
|
||
String get gameOver => '遊戲結束';
|
||
|
||
@override
|
||
String get playersWin => '玩家們獲勝!';
|
||
|
||
@override
|
||
String get theSecretWordWas => '🔍 正確詞彙是:';
|
||
|
||
@override
|
||
String categoryLabel(String category) {
|
||
return '類別:$category';
|
||
}
|
||
|
||
@override
|
||
String get theImpostorWas => '🎭 冒牌者是:';
|
||
|
||
@override
|
||
String get theImpostorsWere => '🎭 冒牌者們是:';
|
||
|
||
@override
|
||
String get votingHistory => '📊 投票紀錄';
|
||
|
||
@override
|
||
String roundElimination(int round, String name) {
|
||
return '第 $round 回合:$name';
|
||
}
|
||
|
||
@override
|
||
String get rematch => '再來一局';
|
||
|
||
@override
|
||
String get mainMenu => '主選單';
|
||
|
||
@override
|
||
String get notesTitle => '📝 筆記';
|
||
|
||
@override
|
||
String get notesSaved => '筆記已儲存';
|
||
|
||
@override
|
||
String get whoAreYou => '你是誰?';
|
||
|
||
@override
|
||
String get selectYourName => '選擇你的名字以查看個人筆記';
|
||
|
||
@override
|
||
String notesOf(String name) {
|
||
return '$name 的筆記';
|
||
}
|
||
|
||
@override
|
||
String get notesAboutPlayers => '關於每位玩家的紀錄';
|
||
|
||
@override
|
||
String get playerNoteHint => '他說了什麼?可疑嗎?';
|
||
|
||
@override
|
||
String get freeNote => '自由筆記';
|
||
|
||
@override
|
||
String get freeNoteHint => '個人筆記...';
|
||
|
||
@override
|
||
String get rulesTitle => '📖 遊戲規則';
|
||
|
||
@override
|
||
String get rulesWhatIsTitle => '🎭 什麼是冒牌者?';
|
||
|
||
@override
|
||
String get rulesWhatIsBody =>
|
||
'一款適合 3-20 位玩家的社交推理遊戲。每個人都會收到一個秘密詞彙……除了冒牌者!你的任務:找出誰在假裝。';
|
||
|
||
@override
|
||
String get rulesHowToPlayTitle => '🔍 怎麼玩?';
|
||
|
||
@override
|
||
String get rulesHowToPlayBody =>
|
||
'1. 分配角色:所有人獲得相同的詞彙,冒牌者除外。\n\n2. 討論:玩家輪流描述該詞彙,但不能直接說出來。冒牌者必須假裝知道這個詞。\n\n3. 投票:討論結束後,所有人投票選出誰是冒牌者。\n\n4. 淘汰:得票最多的人被淘汰,並揭曉其身份。\n\n5. 如果被淘汰者是冒牌者,可以嘗試猜出詞彙。猜對的話,冒牌者獲勝!';
|
||
|
||
@override
|
||
String get rulesWhoWinsTitle => '🏆 誰會贏?';
|
||
|
||
@override
|
||
String get rulesWhoWinsBody =>
|
||
'• 玩家:淘汰所有冒牌者即可獲勝。\n• 冒牌者:如果未被發現且剩餘普通玩家人數等於或少於冒牌者人數,則獲勝;或者被淘汰時猜對詞彙也可獲勝。';
|
||
|
||
@override
|
||
String get rulesTipsPlayersTitle => '💡 玩家攻略';
|
||
|
||
@override
|
||
String get rulesTipsPlayersBody =>
|
||
'• 給出巧妙的提示來證明你知道詞彙,但不要太明顯讓冒牌者利用。\n• 注意誰給出了模糊或籠統的回答。\n• 使用筆記功能記錄每個人說了什麼。\n• 不要直接說出詞彙,那會幫到冒牌者!';
|
||
|
||
@override
|
||
String get rulesTipsImpostorTitle => '🎭 冒牌者攻略';
|
||
|
||
@override
|
||
String get rulesTipsImpostorBody =>
|
||
'• 仔細聆聽其他人的提示。\n• 嘗試推斷出詞彙,才能給出可信的描述。\n• 如果沒把握,不要第一個發言。\n• 如果獲得了類別提示,善加利用。\n• 指控他人以轉移注意力。';
|
||
|
||
@override
|
||
String get rulesModesTitle => '📱 遊戲模式';
|
||
|
||
@override
|
||
String get rulesModesBody =>
|
||
'• 單機模式:所有人共用一台裝置。每位玩家長按按鈕查看自己的詞彙。\n\n• 多機模式:每位玩家使用自己的裝置,透過藍牙/WiFi Direct 連線,無需網路。';
|
||
|
||
@override
|
||
String get rulesExampleTitle => '✏️ 遊戲範例';
|
||
|
||
@override
|
||
String get rulesExampleBody =>
|
||
'秘密詞彙:「披薩」\n\n• 小明:「要趁熱吃」 ✓\n• 小華:「裝在盒子裡」 ✓\n• 小美(冒牌者):「很受歡迎」 🤔\n• 小強:「上面有起司」 ✓\n\n小美的回答太籠統了……有嫌疑!';
|
||
|
||
@override
|
||
String get joinGameTitle => '加入遊戲';
|
||
|
||
@override
|
||
String get multiDeviceMode => '多機模式';
|
||
|
||
@override
|
||
String get scanQrDescription => '掃描主機顯示的 QR 碼,透過藍牙/WiFi Direct 加入遊戲。';
|
||
|
||
@override
|
||
String get comingSoon => '即將推出';
|
||
|
||
@override
|
||
String get nearbyNotAvailable =>
|
||
'多機連線功能需要 Android 實體裝置搭配 Nearby Connections。\n\n目前請使用「單機模式」在共用裝置上進行遊戲。';
|
||
|
||
@override
|
||
String get back => '返回';
|
||
|
||
@override
|
||
String get yes => '是';
|
||
|
||
@override
|
||
String get no => '否';
|
||
|
||
@override
|
||
String get cancel => '取消';
|
||
|
||
@override
|
||
String get accept => '確定';
|
||
|
||
@override
|
||
String get next => '下一步';
|
||
|
||
@override
|
||
String get settingsTitle => '設定';
|
||
|
||
@override
|
||
String get language => '語言';
|
||
|
||
@override
|
||
String get soundVolume => '音效音量';
|
||
|
||
@override
|
||
String get vibration => '震動';
|
||
|
||
@override
|
||
String get about => '關於';
|
||
|
||
@override
|
||
String get version => '版本';
|
||
|
||
@override
|
||
String get developer => '開發者';
|
||
|
||
@override
|
||
String get licenses => '授權條款';
|
||
}
|