- 卡片内 22 处硬编码英文(整窗/面板透明度、背景图开关+路径、填充、暗化、配色来源)全部改走 Key
- 运行时诊断改成 key + 参数:`background::Note`(读盘/解码/过大/小图平铺)、`state::backend_note`、
`palette::note` 全部返回 Key;`state.rs` 只留 key、不放文案表(390 → 391 行)
- 上限/下限常量走占位符 `{floor}` / `{max}` / `{limit}` / `{requested}`;`{:.2}` 在 Rust 侧格式化好
再套模板(`Catalog::render` 只认 `{name}`)
- 新增 40 条 key(中英各一条),按装配链锚点插在 `SettingsAppearanceCornerSuspended` 之后,
金表 `golden/tail.rs` 同位置插入 40 行(`rows() == len() == Key::ALL.len()`)
- 守卫三条:中文渲染全非 ASCII、卡片 key 全覆盖(改回写死英文即红)、外观 key 逐条真翻过
- probe 加第二条取证路(`record_rendered`),`take()` 签名不动(M179 的守卫在 scope 外)
48 lines
1.4 KiB
Rust
48 lines
1.4 KiB
Rust
//! 外观分组第 ⑨ 段:**配色来源**(背景图 / 壁纸 / 色卡三档;它选的正是 D38 三级优先序的起点)。
|
|
|
|
use iced::Element;
|
|
use unlucky_i18n::catalog::Key;
|
|
use unlucky_i18n::Lang;
|
|
use unlucky_presenter::prefs::PaletteSource;
|
|
|
|
use crate::pages::Message;
|
|
use crate::theme::Ui;
|
|
|
|
use super::super::state::State;
|
|
use super::super::Change;
|
|
use super::{choice, choice_row, t};
|
|
|
|
/// 把 ⑨ 配色来源推进行 `rows`。
|
|
pub(super) fn push<'a>(
|
|
ui: &'a Ui,
|
|
state: &'a State,
|
|
lang: Lang,
|
|
rows: &mut Vec<Element<'a, Message>>,
|
|
) {
|
|
// ⑨ 配色来源
|
|
rows.push(choice_row(
|
|
ui,
|
|
t(Key::SettingsAppearancePaletteSource, lang),
|
|
vec![
|
|
choice(
|
|
ui,
|
|
t(Key::SettingsAppearancePaletteBackground, lang),
|
|
state.palette_source == PaletteSource::BackgroundImage,
|
|
Change::PaletteSource(PaletteSource::BackgroundImage),
|
|
),
|
|
choice(
|
|
ui,
|
|
t(Key::SettingsAppearancePaletteWallpaper, lang),
|
|
state.palette_source == PaletteSource::Wallpaper,
|
|
Change::PaletteSource(PaletteSource::Wallpaper),
|
|
),
|
|
choice(
|
|
ui,
|
|
t(Key::SettingsAppearancePalettePreset, lang),
|
|
state.palette_source == PaletteSource::Preset,
|
|
Change::PaletteSource(PaletteSource::Preset),
|
|
),
|
|
],
|
|
));
|
|
}
|