refactor(pages,i18n): M99 纯搬移 —— 导航表抽 pages/nav.rs、设置页拆目录、catalog 按域拆开
- pages/mod.rs 400 -> 356 行:NAV 表与组件版 rail 搬进 pages/nav.rs(NAV 可见性变 pub(crate),
只为让 pages/tests.rs 的三条断言原样保留)
- pages/settings.rs -> pages/settings/{mod,frame,general,appearance,java,download,ai,tests}.rs:
mod.rs 只留「分组注册表 + 选中分组 + 内容分发」,一组一个文件,为四条 section 线各留位置
- i18n catalog.rs 310 -> 273 行:条目表按域拆到 catalog/<域>.rs,catalog.rs 留 catalog! 宏、
装配链、Catalog 与对外 API;新增 catalog/golden.rs(拆分前 key->译文 全量快照)守门
- 行为/文案/样式零变化:pages_demo 的 instances/settings × 浅/深 四张图逐字节相同
This commit is contained in:
1 parent
4b1471a60d
commit
330f7216fd
29 files changed
+1173
-541
No files matched your search
@@ -0,0 +1,97 @@
|
||||
//! 拆分前的 `key -> (en, zh-CN)` **逐字快照**(金表)。
|
||||
//!
|
||||
//! ## 它是什么
|
||||
//!
|
||||
//! M99 把 `catalog.rs` 的单张条目表按域拆到 `catalog/<域>.rs` 之后,这 72 行就是「拆分前那一份」
|
||||
//! 的原样导出:由拆分前的 `Catalog::of(En)` / `Catalog::of(ZhCn)` 逐条 `println!` 出来,
|
||||
//! 再原封不动抄进来(生成方式见 `catalog/tests.rs` 里 `split_keeps_every_translation` 的注释)。
|
||||
//!
|
||||
//! ## 为什么不是「数条数」
|
||||
//!
|
||||
//! 条数相等抓不住任何一种真会发生的坏法:某条译文在搬移时被漏掉、另一条被复制两次,条数照旧。
|
||||
//! 这张表比的是**全量、逐字节、按声明顺序**的三元组,于是下面四种坏法都会红:
|
||||
//!
|
||||
//! | 坏法 | 红在哪 |
|
||||
//! |---|---|
|
||||
//! | 某个 key 整条被搬丢 | 条数不等 / 该行 key 名对不上 |
|
||||
//! | 两条 key 的译文互抄(同 key 被覆盖到别的译文) | 该行 en 或 zh 不等 |
|
||||
//! | 某条译文改了一个字符 | 该行不等(`assert_eq!` 带原文) |
|
||||
//! | 域的顺序被调换(`Key` 的 `Ord` 与导出表顺序都靠它) | 该行 key 名对不上 |
|
||||
//!
|
||||
//! **抓不住**:译文本身翻得对不对(金表是「拆分前」的快照,它只能证明「没变」)。
|
||||
|
||||
/// 拆分前 `Key::ALL` 的顺序 × (en, zh-CN)。第一列是变体名(`Key::name()` 的返回值)。
|
||||
pub(super) const GOLDEN: &[(&str, &str, &str)] = &[
|
||||
("NavInstances", "Instances", "实例"),
|
||||
("NavDownload", "Downloads", "下载"),
|
||||
("NavLogs", "Logs", "日志"),
|
||||
("NavSettings", "Settings", "设置"),
|
||||
("InstancesNew", "New instance", "新建实例"),
|
||||
("InstancesImport", "Import", "导入"),
|
||||
("InstancesBack", "Back to instances", "返回实例列表"),
|
||||
("InstancesPlay", "Play", "启动"),
|
||||
("InstancesLastPlayed", "Last played {when}", "上次游玩 {when}"),
|
||||
("InstancesEmptyTitle", "No instance selected", "未选择实例"),
|
||||
("InstancesEmptyBody", "Pick an instance to see its details.", "选择一个实例查看详情。"),
|
||||
("LoaderVanilla", "Vanilla", "原版"),
|
||||
("LaunchOutcomeNormal", "Finished normally", "正常结束"),
|
||||
("LaunchOutcomeCrash", "The game crashed", "游戏崩溃"),
|
||||
("LaunchOutcomeSilent", "Suspected silent failure: exit code 0, but the game never really started", "疑似静默失败:退出码 0,但游戏没真正跑起来"),
|
||||
("LaunchFailedWithCode", "Launch failed (exit {code}): {reason}", "启动失败(退出码 {code}):{reason}"),
|
||||
("FontCjkNeedsDownload", "No Chinese font found on this system. Download an open-source (OFL) Chinese font?", "系统里没找到中文字体。要下载一套开源(OFL)中文字体吗?"),
|
||||
("FontCjkDownloading", "Downloading Chinese font… {percent}%", "正在下载中文字体… {percent}%"),
|
||||
("FontCjkDownloadFailed", "Chinese font download failed; the interface stays in English.", "中文字体下载失败,界面暂时保持英文。"),
|
||||
("FontCjkReady", "Chinese font ready: {family}", "中文字体已就绪:{family}"),
|
||||
("SettingsLanguage", "Language", "界面语言"),
|
||||
("SettingsLanguageHint", "Switches the interface language. Chinese text needs a Chinese font.", "切换界面语言。显示中文需要中文字体。"),
|
||||
("CoreTextUntranslated", "[system text not translated]", "[未翻译的系统文案]"),
|
||||
("DownloadTitle", "Downloads", "下载"),
|
||||
("DownloadSubtitle", "Versions you can install", "可以安装的版本"),
|
||||
("DownloadRefresh", "Refresh", "刷新"),
|
||||
("DownloadInstall", "Install", "安装"),
|
||||
("DownloadCancel", "Cancel install", "取消安装"),
|
||||
("DownloadInstalled", "Installed", "已安装"),
|
||||
("DownloadCount", "{count} versions", "{count} 个版本"),
|
||||
("DownloadRowSupporting", "{kind} · released {date}", "{kind} · 发布于 {date}"),
|
||||
("DownloadSelectHint", "Pick a version, then install", "选一个版本再安装"),
|
||||
("DownloadLoading", "Loading versions…", "正在加载版本列表…"),
|
||||
("DownloadLoadingHint", "If this stays here, press Refresh in the top right.", "如果一直停在这里,点右上角的刷新。"),
|
||||
("DownloadEmptyTitle", "No versions to show", "没有可显示的版本"),
|
||||
("DownloadEmptyBody", "Pick another category, or refresh the list.", "换一个分类,或刷新一次列表。"),
|
||||
("DownloadCategoryAll", "All", "全部"),
|
||||
("DownloadCategoryRelease", "Release", "正式版"),
|
||||
("DownloadCategorySnapshot", "Snapshot", "预览版"),
|
||||
("DownloadCategoryAncient", "Ancient", "远古版"),
|
||||
("DownloadStagePlanning", "Planning", "解析版本"),
|
||||
("DownloadStageDownloading", "Downloading files", "下载文件"),
|
||||
("DownloadStageInstalling", "Building the version", "生成版本"),
|
||||
("DownloadStageRegistering", "Registering the instance", "登记实例"),
|
||||
("DownloadStageDone", "Done", "已完成"),
|
||||
("DownloadStageFailed", "Install failed", "安装失败"),
|
||||
("DownloadStageCancelled", "Install cancelled", "安装已取消"),
|
||||
("DownloadProgress", "{done}/{total} files", "{done}/{total} 文件"),
|
||||
("DownloadProgressUnknown", "Waiting for the first file…", "等第一个文件…"),
|
||||
("DownloadRate", "{speed} · {eta}", "{speed},{eta}"),
|
||||
("DownloadEtaSecs", "{secs}s left", "剩 {secs}s"),
|
||||
("DownloadEtaMins", "{mins}m{secs}s left", "剩 {mins}m{secs}s"),
|
||||
("DownloadFailedHint", "The Logs page has the full reason.", "完整原因在日志页。"),
|
||||
("DownloadOpenLogs", "Open logs", "打开日志"),
|
||||
("DownloadDismiss", "Dismiss", "关闭"),
|
||||
("LogsSubtitleIdle", "Nothing is running right now", "当前没有运行中的实例"),
|
||||
("LogsStatus", "{instance} · {when} · {outcome}", "{instance}|{when}|{outcome}"),
|
||||
("LogsOpenFolder", "Open folder", "打开目录"),
|
||||
("LogsClear", "Clear", "清空"),
|
||||
("LogsOutputTitle", "OUTPUT", "输出"),
|
||||
("LogsDiagnosisTitle", "DIAGNOSIS", "诊断"),
|
||||
("LogsConfidenceHigh", "HIGH CONFIDENCE", "高置信度"),
|
||||
("LogsConfidenceMedium", "MEDIUM CONFIDENCE", "中置信度"),
|
||||
("LogsConfidenceLow", "LOW CONFIDENCE", "低置信度"),
|
||||
("LogsSubtitleLive", "Running now — logs stream as they arrive", "正在运行 — 日志实时滚动"),
|
||||
("LogsConfidence", "Confidence {percent}%", "置信度 {percent}%"),
|
||||
("LogsSuggestedFix", "Suggested fix", "建议动作"),
|
||||
("LogsSummaryLabel", "One-line summary", "一行摘要"),
|
||||
("LogsCopySummary", "Copy summary", "复制摘要"),
|
||||
("LogsEmptyTitle", "No output yet", "还没有输出"),
|
||||
("LogsEmptyBody", "Logs stream here while the launcher or the game is running. Pick an instance and start it to see the first lines.", "启动器或游戏运行时,日志会实时出现在这里。选择一个实例并启动,就能看到第一批日志。"),
|
||||
("LogsEmptyAction", "Choose an instance", "选择实例"),
|
||||
];
|
||||
Reference in new issue
Block a user