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.
1724 lines
40 KiB
Dart
1724 lines
40 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 matchRewards => '游戏奖励';
|
|
|
|
@override
|
|
String get newMedals => '新奖牌';
|
|
|
|
@override
|
|
String get noNewMedalsKeepFire => '这次没有新奖牌。继续积累火焰。';
|
|
|
|
@override
|
|
String get calculatingRewards => '正在计算奖励...';
|
|
|
|
@override
|
|
String get fireLabel => '火焰';
|
|
|
|
@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 => '🗣️ 讨论';
|
|
|
|
@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 => '扫描二维码加入';
|
|
|
|
@override
|
|
String get connectedPlayers => '已连接的玩家';
|
|
|
|
@override
|
|
String get hostGame => '游戏管理';
|
|
|
|
@override
|
|
String get waitingPlayersSeeWord => '等待所有人查看自己的词语…';
|
|
|
|
@override
|
|
String get activePlayers => '在场玩家';
|
|
|
|
@override
|
|
String get playersVoted => '已投票';
|
|
|
|
@override
|
|
String get waitingVoting => '等待投票…';
|
|
|
|
@override
|
|
String get waitingForPlayers => '等待玩家…';
|
|
|
|
@override
|
|
String needMorePlayers(int count) {
|
|
return '还需要 $count 名玩家';
|
|
}
|
|
|
|
@override
|
|
String get starting => '正在开始…';
|
|
|
|
@override
|
|
String get enterNameAndScan => '输入你的名字并扫描房主的二维码';
|
|
|
|
@override
|
|
String get yourName => '你的名字';
|
|
|
|
@override
|
|
String get nameRequired => '请输入你的名字';
|
|
|
|
@override
|
|
String get connectingTo => '正在连接';
|
|
|
|
@override
|
|
String get scanQR => '扫描二维码';
|
|
|
|
@override
|
|
String get scanHostQR => '对准房主的二维码';
|
|
|
|
@override
|
|
String get connectedWaiting => '已连接!';
|
|
|
|
@override
|
|
String get waitingForHost => '等待房主开始游戏…';
|
|
|
|
@override
|
|
String get enterNameToSearch => '输入你的名字以搜索附近的游戏';
|
|
|
|
@override
|
|
String get searchGames => '搜索游戏';
|
|
|
|
@override
|
|
String get searchingGames => '正在搜索附近的游戏…';
|
|
|
|
@override
|
|
String get noGamesFound => '未找到游戏';
|
|
|
|
@override
|
|
String get noGamesFoundHint => '请确认房主已开启房间,且你们距离较近';
|
|
|
|
@override
|
|
String get orScanQR => '没有显示?扫描房主的二维码';
|
|
|
|
@override
|
|
String get iveSeenIt => '我看过了';
|
|
|
|
@override
|
|
String clueIs(String category) {
|
|
return '提示:$category';
|
|
}
|
|
|
|
@override
|
|
String get debatePhaseActive => '讨论阶段进行中';
|
|
|
|
@override
|
|
String get debateInstructions => '互相讨论,说出你认为谁是卧底。准备好后请求投票。';
|
|
|
|
@override
|
|
String get solicitarVotacion => '请求投票';
|
|
|
|
@override
|
|
String get votacionSolicitada => '已请求投票';
|
|
|
|
@override
|
|
String get whoDoYouThinkIsTheImpostor => '谁是卧底?';
|
|
|
|
@override
|
|
String get selectOnePlayer => '选择要投票的玩家';
|
|
|
|
@override
|
|
String get votar => '投票';
|
|
|
|
@override
|
|
String get selectYourProfile => '你的资料';
|
|
|
|
@override
|
|
String get selectProfile => '选择一个资料';
|
|
|
|
@override
|
|
String get createNewUser => '创建新用户';
|
|
|
|
@override
|
|
String get userNameRequired => '名字不能为空';
|
|
|
|
@override
|
|
String get profileSelected => '已选择资料';
|
|
|
|
@override
|
|
String get availableProfiles => '可用资料';
|
|
|
|
@override
|
|
String get scanThisCodeFromAnotherPhone => '用另一部手机扫描此代码';
|
|
|
|
@override
|
|
String get gameUsers => '游戏用户';
|
|
|
|
@override
|
|
String get selectedPlayers => '已选择的玩家';
|
|
|
|
@override
|
|
String get connectedPhones => '已连接的手机';
|
|
|
|
@override
|
|
String get selectedOnThisPhone => '已在此手机上选择';
|
|
|
|
@override
|
|
String get selectedByAnotherDevice => '已在另一台设备上选择';
|
|
|
|
@override
|
|
String get available => '可用';
|
|
|
|
@override
|
|
String get notAvailable => '不可用';
|
|
|
|
@override
|
|
String get release => '释放';
|
|
|
|
@override
|
|
String get select => '选择';
|
|
|
|
@override
|
|
String get delete => '删除';
|
|
|
|
@override
|
|
String get selectAtLeastThreeUsersToStart => '至少选择 3 名用户才能开始。';
|
|
|
|
@override
|
|
String get hostPhoneMustSelectUser => '房主的手机必须至少选择一名用户。';
|
|
|
|
@override
|
|
String get roomNoLongerInLobby => '房间已不在等候大厅。';
|
|
|
|
@override
|
|
String get completeUserSelectionToStart => '完成用户选择后才能开始。';
|
|
|
|
@override
|
|
String get preparingSecureRoom => '正在准备安全房间';
|
|
|
|
@override
|
|
String get searchingNearbyBluetoothGames => '正在通过蓝牙搜索附近的游戏';
|
|
|
|
@override
|
|
String get tapToJoin => '点击加入';
|
|
|
|
@override
|
|
String get bluetoothLocationPermissionsRequired => '搜索游戏需要蓝牙和定位权限。';
|
|
|
|
@override
|
|
String get bluetoothLocationPermissionsShort => '需要蓝牙和定位权限';
|
|
|
|
@override
|
|
String get couldNotStartSearch => '无法开始搜索。请检查蓝牙和定位。';
|
|
|
|
@override
|
|
String couldNotConnectToHost(String host) {
|
|
return '无法连接到 $host';
|
|
}
|
|
|
|
@override
|
|
String get room => '房间';
|
|
|
|
@override
|
|
String get singleDeviceSubtitle => '在这台设备上游戏';
|
|
|
|
@override
|
|
String get singleDeviceDescription => '适合大家传着手机一起玩。设置快速直接。';
|
|
|
|
@override
|
|
String get multiDeviceSubtitle => '每位玩家用自己的手机';
|
|
|
|
@override
|
|
String get multiDeviceDescription => '创建高级房间,分享二维码,并在大厅管理用户。';
|
|
|
|
@override
|
|
String get singleDeviceGameLabel => '本机游戏';
|
|
|
|
@override
|
|
String get multiDeviceGameLabel => '多设备游戏';
|
|
|
|
@override
|
|
String get mainDeviceUser => '本机主用户';
|
|
|
|
@override
|
|
String get couldNotCreateRoom => '无法创建房间。请检查蓝牙。';
|
|
|
|
@override
|
|
String cannotStartWithReason(String reason) {
|
|
return '无法开始:$reason';
|
|
}
|
|
|
|
@override
|
|
String get invalidRoom => '无效的房间';
|
|
|
|
@override
|
|
String get defaultPlayerName => '玩家';
|
|
|
|
@override
|
|
String get play => '开始';
|
|
|
|
@override
|
|
String get history => '历史';
|
|
|
|
@override
|
|
String get mainTagline => '在太晚之前找出冒牌者';
|
|
|
|
@override
|
|
String get deviceProfile => '设备档案';
|
|
|
|
@override
|
|
String get profileName => '名称';
|
|
|
|
@override
|
|
String get profileNick => '昵称';
|
|
|
|
@override
|
|
String get save => '保存';
|
|
|
|
@override
|
|
String get automaticLanguage => '自动';
|
|
|
|
@override
|
|
String get noSavedGames => '还没有保存的游戏。';
|
|
|
|
@override
|
|
String get errorNoGame => '错误:没有游戏';
|
|
|
|
@override
|
|
String get disconnectedPlayersWarning => '有玩家的设备已断开连接。';
|
|
|
|
@override
|
|
String get assumeOnThisPhone => '在此手机上接管';
|
|
|
|
@override
|
|
String get noResult => '无结果';
|
|
|
|
@override
|
|
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 已重新加入游戏';
|
|
}
|
|
|
|
@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`).
|
|
class AppLocalizationsZhTw extends AppLocalizationsZh {
|
|
AppLocalizationsZhTw() : super('zh_TW');
|
|
|
|
@override
|
|
String get appTitle => '冒牌者';
|
|
|
|
@override
|
|
String get subtitle => '社交推理遊戲';
|
|
|
|
@override
|
|
String get loadingWords => '正在載入詞彙...';
|
|
|
|
@override
|
|
String get matchRewards => '遊戲獎勵';
|
|
|
|
@override
|
|
String get newMedals => '新獎牌';
|
|
|
|
@override
|
|
String get noNewMedalsKeepFire => '這次沒有新獎牌。繼續累積火焰。';
|
|
|
|
@override
|
|
String get calculatingRewards => '正在計算獎勵...';
|
|
|
|
@override
|
|
String get fireLabel => '火焰';
|
|
|
|
@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 => '🗣️ 討論';
|
|
|
|
@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 => '授權條款';
|
|
|
|
@override
|
|
String get scanToJoin => '掃描 QR Code 加入';
|
|
|
|
@override
|
|
String get connectedPlayers => '已連線的玩家';
|
|
|
|
@override
|
|
String get hostGame => '遊戲管理';
|
|
|
|
@override
|
|
String get waitingPlayersSeeWord => '等待所有人查看自己的詞語…';
|
|
|
|
@override
|
|
String get activePlayers => '在場玩家';
|
|
|
|
@override
|
|
String get playersVoted => '已投票';
|
|
|
|
@override
|
|
String get waitingVoting => '等待投票…';
|
|
|
|
@override
|
|
String get waitingForPlayers => '等待玩家…';
|
|
|
|
@override
|
|
String needMorePlayers(int count) {
|
|
return '還需要 $count 名玩家';
|
|
}
|
|
|
|
@override
|
|
String get starting => '正在開始…';
|
|
|
|
@override
|
|
String get enterNameAndScan => '輸入你的名字並掃描房主的 QR Code';
|
|
|
|
@override
|
|
String get yourName => '你的名字';
|
|
|
|
@override
|
|
String get nameRequired => '請輸入你的名字';
|
|
|
|
@override
|
|
String get connectingTo => '正在連線';
|
|
|
|
@override
|
|
String get scanQR => '掃描 QR Code';
|
|
|
|
@override
|
|
String get scanHostQR => '對準房主的 QR Code';
|
|
|
|
@override
|
|
String get connectedWaiting => '已連線!';
|
|
|
|
@override
|
|
String get waitingForHost => '等待房主開始遊戲…';
|
|
|
|
@override
|
|
String get enterNameToSearch => '輸入你的名字以搜尋附近的遊戲';
|
|
|
|
@override
|
|
String get searchGames => '搜尋遊戲';
|
|
|
|
@override
|
|
String get searchingGames => '正在搜尋附近的遊戲…';
|
|
|
|
@override
|
|
String get noGamesFound => '找不到遊戲';
|
|
|
|
@override
|
|
String get noGamesFoundHint => '請確認房主已開啟房間,且你們距離較近';
|
|
|
|
@override
|
|
String get orScanQR => '沒有顯示?掃描房主的 QR Code';
|
|
|
|
@override
|
|
String get iveSeenIt => '我看過了';
|
|
|
|
@override
|
|
String clueIs(String category) {
|
|
return '提示:$category';
|
|
}
|
|
|
|
@override
|
|
String get debatePhaseActive => '討論階段進行中';
|
|
|
|
@override
|
|
String get debateInstructions => '互相討論,說出你認為誰是臥底。準備好後請求投票。';
|
|
|
|
@override
|
|
String get solicitarVotacion => '請求投票';
|
|
|
|
@override
|
|
String get votacionSolicitada => '已請求投票';
|
|
|
|
@override
|
|
String get whoDoYouThinkIsTheImpostor => '誰是臥底?';
|
|
|
|
@override
|
|
String get selectOnePlayer => '選擇要投票的玩家';
|
|
|
|
@override
|
|
String get votar => '投票';
|
|
|
|
@override
|
|
String get selectYourProfile => '你的個人檔案';
|
|
|
|
@override
|
|
String get selectProfile => '選擇一個個人檔案';
|
|
|
|
@override
|
|
String get createNewUser => '建立新使用者';
|
|
|
|
@override
|
|
String get userNameRequired => '名字不能為空';
|
|
|
|
@override
|
|
String get profileSelected => '已選擇個人檔案';
|
|
|
|
@override
|
|
String get availableProfiles => '可用的個人檔案';
|
|
|
|
@override
|
|
String get scanThisCodeFromAnotherPhone => '用另一部手机扫描此代码';
|
|
|
|
@override
|
|
String get gameUsers => '游戏用户';
|
|
|
|
@override
|
|
String get selectedPlayers => '已选择的玩家';
|
|
|
|
@override
|
|
String get connectedPhones => '已连接的手机';
|
|
|
|
@override
|
|
String get selectedOnThisPhone => '已在此手机上选择';
|
|
|
|
@override
|
|
String get selectedByAnotherDevice => '已在另一台设备上选择';
|
|
|
|
@override
|
|
String get available => '可用';
|
|
|
|
@override
|
|
String get notAvailable => '不可用';
|
|
|
|
@override
|
|
String get release => '释放';
|
|
|
|
@override
|
|
String get select => '选择';
|
|
|
|
@override
|
|
String get delete => '删除';
|
|
|
|
@override
|
|
String get selectAtLeastThreeUsersToStart => '至少選擇 3 名使用者才能開始。';
|
|
|
|
@override
|
|
String get hostPhoneMustSelectUser => '房主的手機必須至少選擇一名使用者。';
|
|
|
|
@override
|
|
String get roomNoLongerInLobby => '房間已不在等候大廳。';
|
|
|
|
@override
|
|
String get completeUserSelectionToStart => '完成使用者選擇後才能開始。';
|
|
|
|
@override
|
|
String get preparingSecureRoom => '正在準備安全房間';
|
|
|
|
@override
|
|
String get searchingNearbyBluetoothGames => '正在透過藍牙搜尋附近的遊戲';
|
|
|
|
@override
|
|
String get tapToJoin => '點擊加入';
|
|
|
|
@override
|
|
String get bluetoothLocationPermissionsRequired => '搜尋遊戲需要藍牙和定位權限。';
|
|
|
|
@override
|
|
String get bluetoothLocationPermissionsShort => '需要藍牙和定位權限';
|
|
|
|
@override
|
|
String get couldNotStartSearch => '無法開始搜尋。請檢查藍牙和定位。';
|
|
|
|
@override
|
|
String couldNotConnectToHost(String host) {
|
|
return '無法連線到 $host';
|
|
}
|
|
|
|
@override
|
|
String get room => '房间';
|
|
|
|
@override
|
|
String get singleDeviceSubtitle => '在這台裝置上遊戲';
|
|
|
|
@override
|
|
String get singleDeviceDescription => '適合大家傳著手機一起玩。設定快速直接。';
|
|
|
|
@override
|
|
String get multiDeviceSubtitle => '每位玩家用自己的手機';
|
|
|
|
@override
|
|
String get multiDeviceDescription => '建立高級房間,分享 QR Code,並在大廳管理使用者。';
|
|
|
|
@override
|
|
String get singleDeviceGameLabel => '本機遊戲';
|
|
|
|
@override
|
|
String get multiDeviceGameLabel => '多裝置遊戲';
|
|
|
|
@override
|
|
String get mainDeviceUser => '本機主要使用者';
|
|
|
|
@override
|
|
String get couldNotCreateRoom => '無法建立房間。請檢查藍牙。';
|
|
|
|
@override
|
|
String cannotStartWithReason(String reason) {
|
|
return '無法開始:$reason';
|
|
}
|
|
|
|
@override
|
|
String get invalidRoom => '無效的房間';
|
|
|
|
@override
|
|
String get defaultPlayerName => '玩家';
|
|
|
|
@override
|
|
String get play => '開始';
|
|
|
|
@override
|
|
String get history => '紀錄';
|
|
|
|
@override
|
|
String get mainTagline => '在太晚之前找出冒牌者';
|
|
|
|
@override
|
|
String get deviceProfile => '裝置個人檔案';
|
|
|
|
@override
|
|
String get profileName => '名稱';
|
|
|
|
@override
|
|
String get profileNick => '暱稱';
|
|
|
|
@override
|
|
String get save => '儲存';
|
|
|
|
@override
|
|
String get automaticLanguage => '自動';
|
|
|
|
@override
|
|
String get noSavedGames => '尚未有已儲存的遊戲。';
|
|
|
|
@override
|
|
String get errorNoGame => '錯誤:沒有遊戲';
|
|
|
|
@override
|
|
String get disconnectedPlayersWarning => '有玩家的裝置已中斷連線。';
|
|
|
|
@override
|
|
String get assumeOnThisPhone => '在此手機上接管';
|
|
|
|
@override
|
|
String get noResult => '無結果';
|
|
|
|
@override
|
|
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 已重新加入遊戲';
|
|
}
|
|
|
|
@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';
|
|
}
|