d263c7bf48
- GameGlobal.js: keep upstream SERVER_URL with /ws suffix - en.js/zh.js: merge both settings.nickname and settings.profile keys - SettingsScene.js: keep both nickname row and profile button - server/index.js: merge express app + content security proxy with noServer WebSocket mode and path validation - Add .gitignore for node_modules and .codebuddy
337 lines
13 KiB
JavaScript
337 lines
13 KiB
JavaScript
/**
|
||
* zh.js
|
||
* Chinese language pack for Tank Adventure.
|
||
*/
|
||
|
||
module.exports = {
|
||
// ============================================================
|
||
// Common
|
||
// ============================================================
|
||
'common.back': '← 返回',
|
||
'common.joinBtn': '加入',
|
||
'common.cannotConnect': '无法连接服务器',
|
||
'common.connectFailed': '连接失败',
|
||
'common.disconnected': '与服务器断开连接',
|
||
'common.paused': '暂停',
|
||
'common.tapContinue': '点击继续',
|
||
'common.kicked': '你已被踢出队伍',
|
||
|
||
// ============================================================
|
||
// Menu Scene
|
||
// ============================================================
|
||
'menu.title': '坦克探险',
|
||
'profile.welcome': '欢迎 {name}!',
|
||
'menu.subtitle': '经典坦克对战',
|
||
'menu.classic': '经典模式',
|
||
'menu.endless': '无尽模式',
|
||
'menu.pvp': '双人对战',
|
||
'menu.team3v3': '3v3 对战',
|
||
'menu.shop': '商店',
|
||
'menu.skin': '皮肤',
|
||
'menu.ranking': '排行榜',
|
||
'menu.settings': '设置',
|
||
'menu.profile': '个人资料',
|
||
'menu.chat': '聊天室',
|
||
|
||
// ============================================================
|
||
// Room Scene (PVP)
|
||
// ============================================================
|
||
'room.title': '双人对战',
|
||
'room.idleHint': '创建房间或输入房间号加入',
|
||
'room.create': '创建房间',
|
||
'room.join': '加入房间',
|
||
'room.connecting': '连接中{dots}',
|
||
'room.roomCode': '房间号:',
|
||
'room.waiting': '等待对手加入{dots}',
|
||
'room.shareHint': '将房间号分享给好友',
|
||
'room.inputCode': '输入房间号:',
|
||
'room.opponentFound': '对手已找到!',
|
||
'room.starting': '即将开始...',
|
||
'room.tapBack': '点击任意位置返回',
|
||
|
||
// ============================================================
|
||
// Team Room Scene (3v3)
|
||
// ============================================================
|
||
'teamRoom.title': '3v3 团队对战',
|
||
'teamRoom.chooseMode': '选择游戏方式',
|
||
'teamRoom.createTeam': '🎮 组队开黑',
|
||
'teamRoom.soloMatch': '⚡ 快速匹配',
|
||
'teamRoom.teamId': '队伍:{id}',
|
||
'teamRoom.leader': '队长',
|
||
'teamRoom.ready': '✓ 已准备',
|
||
'teamRoom.notReady': '未准备',
|
||
'teamRoom.emptySlot': '空位',
|
||
'teamRoom.invite': '📨 邀请好友',
|
||
'teamRoom.startMatch': '🔍 开始匹配',
|
||
'teamRoom.disband': '解散队伍',
|
||
'teamRoom.readyBtn': '✓ 准备',
|
||
'teamRoom.cancelReady': '取消准备',
|
||
'teamRoom.leaveTeam': '退出队伍',
|
||
'teamRoom.matching': '匹配中{dots}',
|
||
'teamRoom.waitTime': '已等待 {seconds} 秒',
|
||
'teamRoom.cancelMatch': '取消匹配',
|
||
'teamRoom.matchFound': '对手已找到!',
|
||
'teamRoom.enterBattle': '即将进入战斗...',
|
||
'teamRoom.tapBack': '点击任意位置返回',
|
||
'teamRoom.shareTitle': '坦克3v3,速来开黑!',
|
||
'teamRoom.joining': '正在加入房间',
|
||
|
||
// ============================================================
|
||
// PVP Game Scene
|
||
// ============================================================
|
||
'pvp.playerLabel': 'P{slot} (我方)',
|
||
'pvp.hp': '生命 x{count}',
|
||
'pvp.kills': '击杀:{count}',
|
||
'pvp.killDeath': '杀:{kills} 亡:{deaths}',
|
||
'pvp.respawn': '{seconds}秒后重生',
|
||
'pvp.youWin': '你赢了!',
|
||
'pvp.draw': '平局',
|
||
'pvp.youLose': '你输了',
|
||
'pvp.baseHpSummary': 'P1:{hp1} 生命 | P2:{hp2} 生命',
|
||
|
||
// ============================================================
|
||
// Team Game Scene (3v3)
|
||
// ============================================================
|
||
'team.teamA': 'A队',
|
||
'team.teamB': 'B队',
|
||
'team.myTeam': '我方:{team}队',
|
||
'team.killDeath': '杀:{kills} 亡:{deaths}',
|
||
'team.respawn': '{seconds}秒后重生',
|
||
'team.victory': '胜利!',
|
||
'team.defeat': '失败',
|
||
'team.baseHpSummary': 'A队:{hpA} 生命 | B队:{hpB} 生命',
|
||
'team.disconnectTitle': '⚠ 连接断开',
|
||
'team.reconnecting': '重连中{dots} ({attempts}/{max})',
|
||
'team.reconnectHint': '请稍候,您的坦克将由AI代管',
|
||
|
||
// ============================================================
|
||
// PVP Result Scene
|
||
// ============================================================
|
||
'pvpResult.title': '对战结果',
|
||
'pvpResult.victory': '🏆 胜利!',
|
||
'pvpResult.draw': '⚔️ 平局',
|
||
'pvpResult.defeat': '😵 失败',
|
||
'pvpResult.kills': '击杀',
|
||
'pvpResult.deaths': '死亡',
|
||
'pvpResult.lives': '生命',
|
||
'pvpResult.baseDmg': '阵地伤害',
|
||
'pvpResult.p1BaseHp': 'P1:{hp} 生命',
|
||
'pvpResult.p2BaseHp': 'P2:{hp} 生命',
|
||
'pvpResult.baseDestroyed': '基地被摧毁',
|
||
'pvpResult.disconnectedReason': '断线',
|
||
'pvpResult.duration': '对战时长:{time}',
|
||
'pvpResult.timeRemaining': '剩余时间:{time}',
|
||
'pvpResult.rematch': '再来一局',
|
||
'pvpResult.backMenu': '返回菜单',
|
||
|
||
// ============================================================
|
||
// Team Result Scene (3v3)
|
||
// ============================================================
|
||
'teamResult.title': '3v3 对战结果',
|
||
'teamResult.victory': '🏆 胜利!',
|
||
'teamResult.defeat': '😵 失败',
|
||
'teamResult.teamAHp': 'A队:{hp} 生命',
|
||
'teamResult.teamBHp': 'B队:{hp} 生命',
|
||
'teamResult.baseDestroyed': '基地被摧毁',
|
||
'teamResult.disconnectedReason': '断线',
|
||
'teamResult.teamAHeader': 'A队',
|
||
'teamResult.teamBHeader': 'B队',
|
||
'teamResult.myTeamSuffix': ' (我方)',
|
||
'teamResult.player': '玩家',
|
||
'teamResult.k': '杀',
|
||
'teamResult.d': '亡',
|
||
'teamResult.a': '助',
|
||
'teamResult.dmg': '伤害',
|
||
'teamResult.bot': '🤖 机器人',
|
||
'teamResult.duration': '对战时长:{time}',
|
||
'teamResult.mvp': '⭐ MVP:{name}({kills} 击杀)',
|
||
'teamResult.rankUp': '📈 积分 +{points}',
|
||
'teamResult.mvpBonus': '(MVP加成 +5)',
|
||
'teamResult.rankDown': '📉 积分 -{points}',
|
||
'teamResult.rematch': '再来一局',
|
||
'teamResult.rematchWaiting': '等待中({ready}/{total})',
|
||
'teamResult.backMenu': '返回菜单',
|
||
|
||
// ============================================================
|
||
// Game Scene (Classic/Endless)
|
||
// ============================================================
|
||
'game.level': '第 {level} 关',
|
||
'game.hp': '生命 x{count}',
|
||
'game.fireLevel': 'LV{level}',
|
||
'game.enemies': '敌人: {count}',
|
||
'game.score': '{score}分',
|
||
'game.gameOver': '游戏结束',
|
||
'game.stageClear': '关卡通过!',
|
||
|
||
// ============================================================
|
||
// Result Scene
|
||
// ============================================================
|
||
'result.victory': '🎉 关卡通过!',
|
||
'result.defeat': '😵 游戏结束',
|
||
'result.level': '第 {level} 关',
|
||
'result.killStats': '击杀统计',
|
||
'result.tankNormal': '普通',
|
||
'result.tankFast': '快速',
|
||
'result.tankArmor': '重甲',
|
||
'result.tankBoss': 'BOSS',
|
||
'result.totalLabel': '汇总',
|
||
'result.rowKills': '击杀',
|
||
'result.rowScore': '得分',
|
||
'result.totalScore': '总分: {score}',
|
||
'result.time': '用时: {minutes}分{seconds}秒',
|
||
'result.baseAlive': '基地: ✅ 完好',
|
||
'result.baseDestroyed': '基地: ❌ 被毁',
|
||
'result.newRecord': '🎊 新纪录!',
|
||
'result.doubled': '双倍!',
|
||
'result.share': '📤 分享挑战书',
|
||
'result.adDouble': '🎬 看广告双倍得分',
|
||
'result.nextLevel': '下一关 →',
|
||
'result.retry': '重新开始',
|
||
'result.backMenu': '返回主菜单',
|
||
|
||
// ============================================================
|
||
// Ranking Scene
|
||
// ============================================================
|
||
'ranking.title': '🏆 排行榜',
|
||
'ranking.personalRecord': '— 个人记录 —',
|
||
'ranking.classicHigh': '经典模式最高分',
|
||
'ranking.endlessHigh': '无尽模式最高分',
|
||
'ranking.highestLevel': '最高通关关卡',
|
||
'ranking.levelSuffix': '关',
|
||
'ranking.scoreSuffix': '分',
|
||
'ranking.friendHint': '好友排行榜需要微信开放数据域支持',
|
||
|
||
// ============================================================
|
||
// Settings Scene
|
||
// ============================================================
|
||
'settings.title': '设置',
|
||
'settings.sound': '音效',
|
||
'settings.music': '音乐',
|
||
'settings.vibration': '振动',
|
||
'settings.nickname': '显示名字',
|
||
'settings.profile': '个人资料',
|
||
|
||
// ============================================================
|
||
// Shop Scene (Simplified)
|
||
// ============================================================
|
||
'shop.title': '商店',
|
||
'shop.goldBalance': '金币余额',
|
||
'shop.adFree': '去广告特权',
|
||
'shop.adFreeDesc': '永久移除插屏广告',
|
||
'shop.adFreeOwned': '已拥有',
|
||
'shop.goldPack': '金币包',
|
||
'shop.goldPackDesc': '1000 金币',
|
||
'shop.newcomerPack': '新手礼包',
|
||
'shop.newcomerPackDesc': '500 金币',
|
||
'shop.newcomerExpired': '已过期',
|
||
'shop.buy': '购买',
|
||
'shop.purchased': '已购买',
|
||
|
||
|
||
|
||
// ============================================================
|
||
// Profile Scene
|
||
// ============================================================
|
||
'profile.title': '个人资料',
|
||
'profile.nickname': '昵称',
|
||
'profile.signature': '个性签名',
|
||
'profile.description': '个人空间描述',
|
||
'profile.changeAvatar': '更换头像',
|
||
'profile.tapToEdit': '点击编辑',
|
||
'profile.save': '保存',
|
||
|
||
// ============================================================
|
||
// Chat Room Scene
|
||
// ============================================================
|
||
'chat.title': '聊天室',
|
||
'chat.inputPlaceholder': '输入消息...',
|
||
'chat.send': '发送',
|
||
'chat.reportTitle': '举报',
|
||
'chat.reportPolitics': '政治有害',
|
||
'chat.reportPornography': '色情低俗',
|
||
'chat.reportGambling': '赌博诈骗',
|
||
'chat.reportOther': '其他',
|
||
'chat.reportCancel': '取消',
|
||
|
||
// ============================================================
|
||
// Content Security
|
||
// ============================================================
|
||
'contentSecurity.violation': '内容包含违规信息,请修改',
|
||
'contentSecurity.nicknameViolation': '昵称包含违规内容,请重新输入',
|
||
'contentSecurity.chatViolation': '消息发送失败:内容违规',
|
||
'contentSecurity.muted': '由于违规行为,您暂无法修改个人信息',
|
||
'contentSecurity.mutedChat': '您已被禁言,剩余时间:{time}',
|
||
'contentSecurity.imageViolation': '图片内容违规,请更换',
|
||
'contentSecurity.checking': '审核中...',
|
||
'contentSecurity.timeout': '审核超时,请重试',
|
||
'contentSecurity.reportSuccess': '举报已提交',
|
||
'contentSecurity.reportFail': '举报失败',
|
||
|
||
// ============================================================
|
||
// Ad System
|
||
// ============================================================
|
||
'ad.reviveTitle': '复活机会',
|
||
'ad.reviveDesc': '选择复活方式继续游戏',
|
||
'ad.watchAd': '📺 观看广告(免费)',
|
||
'ad.goldRevive': '🪙 金币复活',
|
||
'ad.giveUp': '放弃',
|
||
'ad.doubleReward': '🎬 看广告双倍奖励',
|
||
'ad.unavailable': '广告暂时不可用',
|
||
'ad.dailyLimitReached': '今日广告恢复次数已用完',
|
||
|
||
// ============================================================
|
||
// Currency (Simplified - Gold only)
|
||
// ============================================================
|
||
'currency.gold': '金币',
|
||
'currency.insufficient': '金币不足',
|
||
'currency.full': '金币已满',
|
||
|
||
// ============================================================
|
||
// IAP Products (Simplified)
|
||
// ============================================================
|
||
'iap.adFree': '去广告特权(¥18 永久)',
|
||
'iap.goldPack': '金币包(¥6)',
|
||
'iap.newcomerPack': '新手礼包(¥1)',
|
||
|
||
// ============================================================
|
||
// Buff System
|
||
// ============================================================
|
||
'buff.title': '局前增益',
|
||
'buff.shield': '🛡️ 护盾',
|
||
'buff.shieldDesc': '开局自带一层护盾',
|
||
'buff.doubleFire': '🔥 双倍火力',
|
||
'buff.doubleFireDesc': '开局10秒子弹威力翻倍',
|
||
'buff.skip': '跳过 →',
|
||
'buff.start': '开始游戏',
|
||
'buff.purchased': '已购买',
|
||
'buff.goldInsufficient': '金币不足',
|
||
|
||
// ============================================================
|
||
// Daily Gold
|
||
// ============================================================
|
||
'dailyGold.btn': '🪙 领金币',
|
||
'dailyGold.remaining': '{remaining}/3',
|
||
'dailyGold.exhausted': '明日再来',
|
||
'dailyGold.reward': '+100 金币!',
|
||
|
||
// ============================================================
|
||
// Skin System
|
||
// ============================================================
|
||
'skin.title': '坦克皮肤',
|
||
'skin.default': '经典',
|
||
'skin.arctic': '极地',
|
||
'skin.inferno': '烈焰',
|
||
'skin.phantom': '幻影',
|
||
'skin.jungle': '丛林',
|
||
'skin.neon': '霓虹',
|
||
'skin.nebula': '星云',
|
||
'skin.royal': '皇家',
|
||
'skin.sakura': '樱花',
|
||
'skin.thunder': '雷电',
|
||
'skin.diamond': '钻石',
|
||
'skin.equipped': '✓ 使用中',
|
||
'skin.owned': '已拥有',
|
||
'skin.equipSuccess': '✓ 已装备!',
|
||
'skin.purchaseSuccess': '✓ 已解锁!',
|
||
};
|