6.8 KiB
6.8 KiB
UI Translation Status
原则:静态翻译优先;全部翻译完成后再统一测试。 技术栈:Kotlin/JS + kotlin-react + Emotion(静态布局可用 CSS,动态状态用 Emotion)。
已完成
| 屏幕 / 组件 | 文件 | 说明 |
|---|---|---|
| HEAD 顶栏 | app/src/jsMain/kotlin/App/Browser/Ui/HeadScreen.kt |
Emotion;所有页面复用;子页面只把 VIP 替换为退出键,其余组队/等级/昵称/货币/F11/退出不变 |
| 子页面外壳 | LobbyView.kt + lobby3.css |
ms-top 始终显示;#lobby-content 从 6em 开始;不再使用独立 Breadcrumbs 顶栏 |
| 大厅首页 | app/src/jsMain/kotlin/App/Browser/Ui/HomeScreen.kt |
Emotion;Play / 主菜单 / Footer / BattlePass / 公告 |
| 车库 | app/src/jsMain/kotlin/App/Browser/Ui/GarageScreen.kt |
React;默认「总览」+ 右侧 4 个已装配件;分类栏、底盘/炮塔选择条、迷彩网格、左右面板、底部选择条 |
| 商店 | app/src/jsMain/kotlin/App/Browser/Ui/LobbyScreens.kt |
已按 NewShopCommonComponentStyle / ShopSelectedSectionComponentStyle / ShopCategoryComponentStyle / ShopItemComponentStyle / ShopFooterComponentStyle 重建:左侧 25em 分类菜单、径向渐变主容器、分类标题/描述、2 列物品网格、17.5em 物品卡、右侧 22.5em 选中卡、底部 3.125em 购买栏;详见 ShopStyleTable.md |
| 幸运礼盒 | 同上 | 4 种礼盒美术、钥匙图标/数量、可能奖励稀有度、右侧详情/开启确认 |
| 战斗选择 | 同上 | 模式筛选(DM/TDM/CTF/CP/AS/JGR/SGE/RUGBY 图标)+ 战场列表 + 右侧详情/加入/创建入口 |
| 任务 | 同上 | 分类侧栏(主要/每日/每周/星级挑战/合约)+ 任务卡(进度、奖励图标、领取/去完成)+ 星级挑战横幅 + 离线示例 |
| 设置 | 同上 | 7 个分类:游戏显示/战斗/画面/音效/操控/账户/安全;开关/滑杆/下拉/按键表;文案走 i18n;样式与配色按原包校准 |
| 聊天 | 同上 | 频道侧栏(公共/战斗/军团/私聊)+ 消息行(头像/作者/时间)+ 发送;军团频道读 ClanChatState |
| 新闻 | 同上 | 左列表 + 右详情;真实图片/日期/正文;无数据时显示带标记的离线示例 |
| 军团 | 同上 | 未加入:军团美术、创建/搜索、许可证;已加入:军团头图、信息/成员/请求/邀请页签与成员表 |
| 好友 | 同上 | 好友/请求/搜索页签;在线状态、等级、军团标记;私聊/邀请/删除、接受/拒绝、拒绝所有;离线示例 |
| 战斗 HUD | app/src/jsMain/kotlin/App/Browser/Ui/BattleHud.kt |
顶部时间/分数/地图、左下战斗聊天、底部补给、右下全屏/统计/暂停、统计面板、暂停菜单 |
| 战斗结算 | LobbyScreens.kt |
统计 / 奖励 / 任务页签;统计表、奖励列表、经验、返回大厅 |
| 通用弹窗 / Toast | app/src/jsMain/kotlin/App/Browser/Ui/Dialogs.kt |
DialogContext / ToastContext / OverlayHost;商店购买、好友接受/拒绝已接入 |
| 大厅 Tips | HomeScreen.kt |
底部提示条,读 TipsState.Tips |
| 军团聊天 | LobbyScreens.kt |
聊天页「军团」频道,读 ClanChatState.Messages |
| 登录页 | EntranceView.kt + entrance.css |
之前已完成 1:1 |
已接入的通用层
| 文件 | 内容 |
|---|---|
UiTheme.kt |
颜色/字体/间距 token、Panel/Button/Tab/Card/Grid/Empty 等通用 Emotion 样式 |
Palette.kt |
原版 C9i 配色表;所有颜色从 Palette 取值,见 3DTank/docs/ColorPalette.md |
Translations.kt |
原版翻译加载;支持 zh-CN/en-US/ru/de/fr/es/pl/pt-BR/tr/ja 切换 |
HeadScreen.kt |
HeadContext / HeadMount |
HomeScreen.kt |
HomeContext / HomeMount |
LobbyScreens.kt |
ScreenContext / ScreenMount / 子页面路由 |
LobbyView.kt |
导航、HEAD/Home/Screen/Garage 挂载与切换 |
待翻译
| 模块 | 原模块 | 说明 |
|---|---|---|
| 战斗 HUD 精确布局 | module_21300 |
已翻译壳/按钮/聊天/补给/统计/暂停;内部血条、弹药、准星、战斗日志的精确尺寸仍需按 style 函数展开 |
| 战斗结算精确布局 | module_82347 |
已翻译奖励/经验结构;表格列宽、排名变化动画仍需展开 |
| 通用弹窗具体实例 | module_82347 |
Dialog/Toast 壳已就绪,购买/升级/排名等具体弹窗还需逐个接入 |
| 通知 / Tips 样式 | module_82347 |
已有提示条,原版图标/动画未展开 |
| 3D 坦克模型 | Item3DCC.Resource |
资源 URL 索引未打通;当前用官方预览图/图标占位 |
| 真实迷彩预览 | Item3DCC.Resource |
迷彩资源 URL 未打通;车库用色块、商店用色块渐变占位 |
| 军团/好友真实数据 | RootState |
已接状态与列表;真实服务器数据下会替换离线示例 |
| HEAD 组队 3/4 人分支 | module_82347 UserGroupTitleButtonComponentStyle-commonBlockGroup |
2 人组(默认上限)已按 q4 + groupUser.svg 还原;3/4 人组的等级小图标分支未接组队数据 |
| 商店物品卡动态行高 | module_82347 ShopCategoryOfferSectionStyle-containerItem |
原版 grid-template-rows:31.35%,当前固定 11.5em;等容器高度确定后替换 |
| 商店购买按钮共享外观 | module_82347 ShopBuyButtonComponentStyle |
当前用金色按钮近似;共享 Button 组件的完整样式待展开 |
| 商店选中区轮播 | module_82347 ShopSelectedSectionComponentStyle |
当前单个 22.5em 选中卡;commonCard / limitedOffersCommon 的横向轮播待展开 |
| 商店特殊分类 | module_82347 ShopCategoryOfferSectionStyle |
containerCoin / containerLimitOffers / containerKitOffers 的金币、限时、礼包分类待展开 |
| 商店折扣/加成/促销码 | module_82347 ShopItemComponentStyle |
当前数据模型没有折扣、加成、促销码字段;原版徽章/能源条未渲染 |
说明
LobbyView的旧 HTML 字符串子页面已删除,只保留车库 HTML 容器;非车库页面全部走ScreenMount。- 已用无头浏览器核对非战斗页面:首页、车库(总览/底盘/迷彩)、商店、礼盒、战斗选择、任务、设置(游戏/画面/音效)、聊天、新闻、军团、好友。
- 任务/新闻/好友在离线无数据时显示带「离线示例」标记的演示内容;连接服务器后自动使用真实状态。
- 设置页已按原包 style 类展开值重建;其余非战斗页面仍使用通用
UiTheme样式,尚未逐页校准,不能视为最终 1:1。 - 原版 UI 还原方法已写入
3DTank/docs/UI_Rebuild_Plan.md第 10 节:定位Sq(...Style)→ 提取 style 函数 CSS → 还原原版 DOM/类名 → 提取资源/配色 → 无头探针验收 → 删除旧近似代码。 - 下一步:以设置页为基准,逐页提取原版 style 类并替换,再处理战斗 HUD / 结算的精确尺寸与弹窗实例。