feat(app-iced): 实例页「导入已有版本」向导(M223)

页头「导入」按钮(以前是占位动作,点了只打日志)现在打开四段向导:

| 段 | 画什么 |
|---|---|
| Pick | 候选版本(可导入的才可点)+ 目标三档 chip + 实例名(缺省 InstanceDir) |
| Preview | 生效运行目录(回程给的)+ 隔离档 + target_notes() 原文逐条 |
| Failed | 稳定码 + problems 逐条(不折叠成一句「导入失败」) |
| Done | 实例名 + 运行目录 + 提示原文 |

- 向导是叠在页面之上的一层(遮罩 + 居中卡),不搅乱 list-detail 的版式判据;
- 表单态在 App(app/adopt.rs 的 Form),事件真相在 presenter 的 AdoptState;
- 在等回程时主按钮禁用(连点「确认」不会写两条实例);
- i18n 中英目录 + 金表补 27 条向导文案(实例域末尾追加)。
This commit is contained in:
AskaEth committed 2026-11-10 19:37:42 +08:00
1 parent 5a59cb33b2
commit 41caae3571
16 files changed
+1265 -2

No files matched your search

+27
View File
@@ -59,6 +59,33 @@ pub(super) const GOLDEN: &[(&str, &str, &str)] = &[
("InstancesBackendVulkan", "Vulkan", "Vulkan 后端"),
("InstancesLaunchSave", "Save", "保存"),
("InstancesLaunchReset", "Reset to global", "恢复跟随全局"),
("AdoptTitle", "Import an existing version", "导入已有版本"),
("AdoptSubtitle", "Register versions another launcher already installed. Nothing is copied: versions, libraries and assets stay where they are.", "把别的启动器已经装好的版本登记成实例。不复制任何东西:versions / libraries / assets 原地不动。"),
("AdoptScanning", "Scanning versions/…", "正在扫描 versions/…"),
("AdoptEmpty", "No version found under {dir}. Install one here, or point the game folder at the .minecraft another launcher uses.", "在 {dir} 下一个版本都没找到。可以用本启动器装一个,或者把游戏目录指向别的启动器用的那个 .minecraft。"),
("AdoptSelectLabel", "Pick a version", "选择版本"),
("AdoptReady", "Ready", "可导入"),
("AdoptBlocked", "{count} problem(s)", "{count} 个问题"),
("AdoptRegistered", "Already used by {name}", "已被 {name} 使用"),
("AdoptTargetLabel", "Where should the game run?", "游戏在哪个目录里跑"),
("AdoptTargetInstanceDir", "New folder in ULL data (default)", "ULL 数据区新建目录(缺省)"),
("AdoptTargetInstanceDirHint", "mods, saves and config stay out of the other launcher's .minecraft", "mods / saves / config 不会落进别人的 .minecraft"),
("AdoptTargetShared", "Share the game folder", "共用游戏目录"),
("AdoptTargetSharedHint", "mods, saves and config are written into the other launcher's .minecraft", "mods / saves / config 会写进别人的 .minecraft"),
("AdoptTargetVersionDir", "Use the version folder", "用版本目录"),
("AdoptTargetVersionDirHint", "player data grows inside versions/<id>", "玩家数据会长在 versions/<id> 里"),
("AdoptNameLabel", "Instance name (empty = version id)", "实例名(留空 = 版本 id)"),
("AdoptPreview", "Check", "预检"),
("AdoptConfirm", "Import", "导入"),
("AdoptBack", "Back", "返回"),
("AdoptClose", "Close", "关闭"),
("AdoptPlanTitle", "Ready to import", "可以导入"),
("AdoptPlanRunDir", "Game folder", "运行目录"),
("AdoptPlanIsolation", "Isolation", "隔离方式"),
("AdoptFailureTitle", "Import failed", "导入失败"),
("AdoptProblemCount", "Every reason is listed below - nothing is collapsed into one sentence.", "下面逐条列出全部原因,不折叠成一句「导入失败」。"),
("AdoptDoneTitle", "Imported", "已导入"),
("AdoptDoneHint", "It is in the instance list now. Player data will live in the game folder below.", "它已经出现在实例列表里;玩家数据会落在下面这个运行目录。"),
];
/// 金表的**全量**行(本文件 → [`tail`] → [`tail_ai`] → [`tail2`],顺序即 `Key::ALL`)。