Files
farolero/lib/l10n/generated/app_localizations_zh.dart
ShanaiaBot 757344ca48
All checks were successful
Build & Deploy Farolero / Análisis de código (push) Successful in 9s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m7s
feat: discovery automático + QR como fallback en PantallaUnirse
- Discovery: busca hosts cercanos automáticamente y los muestra en lista
- Cada host aparece como tile tocable con nombre de la sala
- QR fallback: botón 'Escanear QR' debajo de la lista
- ServicioNearby: hostsEncontrados map, pararBusqueda(), no auto-connect
- Flujo: nombre → buscar → lista de salas (o QR) → conectar → espera
- l10n: searchGames, searchingGames, noGamesFound, orScanQR (es/en)
2026-04-04 03:20:36 +02:00

1001 lines
23 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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 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 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';
}
/// 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 => '授權條款';
}