mirror of
https://github.com/qingjian-team/qingjian.git
synced 2026-11-06 16:13:55 +00:00
- 新 crate bamboo-slip-i18n:各 crate 的 locales/*.toml 编译时嵌入,tr 按进程级的界面语言查,缺的文案退到英文再退到中文;各文案表有测试核对废键与参数 - 设置程序、core、platform 里给用户看的文字都进了文案表,简体、繁体、英、日、西、越、德七种齐全;日志与报错类型不翻 - 界面语言放在设置侧栏左下角(文A 加当前语言自己的叫法),看不懂当前界面的人也找得到;配置是 [general] ui_language,缺省简体中文(不少中文用户的系统首选语言是英文),system 跟随系统 - 数字、日期跟着语言写:中日按万 / 亿,其余按 K / M,小数点与千位分隔按语言;统计页的数字卡片放不下时两张一排 - 生词本里的整句译词与原句换行,不再冲出卡片、压住右边的时间 Closes #823
44 lines
1.8 KiB
Rust
44 lines
1.8 KiB
Rust
//! 候选右键菜单:右键一格给出这格能做的几项,点中一项就做、提示随下一帧下发、下一次按键清。
|
|
|
|
use qingjian_platform::candidate_menu::CandidateAction;
|
|
|
|
use crate::support::*;
|
|
|
|
#[test]
|
|
fn right_click_offers_actions_and_a_pick_shows_a_notice_until_next_key() {
|
|
bamboo_slip_i18n::pin_locale("zh-Hans");
|
|
let mut router = router();
|
|
let sink = RecordingCandidates::default();
|
|
router.set_candidate_sink(Box::new(sink.clone()));
|
|
let (_, _, frame) = type_letters(&mut router, "nihao");
|
|
let slot = slot_of(&frame, "你好") as usize - 1;
|
|
let _ = router.handle(ClientMessage::PositionCandidates {
|
|
session: SESSION,
|
|
rect: rect(),
|
|
});
|
|
|
|
router.handle_candidate_mouse(CandidateMouse::Menu {
|
|
offset: slot,
|
|
point: (10, 10),
|
|
});
|
|
let menu = sink.3.lock().unwrap().pop().expect("右键应弹出菜单");
|
|
assert_eq!(menu.offset, slot);
|
|
let labels: Vec<_> = menu.items.iter().map(|(_, label)| *label).collect();
|
|
assert!(
|
|
labels.contains(&"降权") && labels.contains(&"删除"),
|
|
"{labels:?}"
|
|
);
|
|
|
|
// 「你好」是词库词且没学习记录,删不掉,但提示照样给出,组句不变
|
|
router.handle_candidate_mouse(CandidateMouse::MenuPick {
|
|
offset: slot,
|
|
id: CandidateAction::Delete.id(),
|
|
});
|
|
let shown = sink.0.lock().unwrap().last().cloned().expect("做完要重画");
|
|
let notice = shown.notice.expect("做完应带屏幕提示");
|
|
assert!(notice.contains("你好"), "{notice}");
|
|
let (_, _, after) = press(&mut router, KeyEvent::new(0x10, None, Default::default())); // VK_SHIFT 不动组句
|
|
assert_eq!(after.notice, None, "提示应只活到下一次按键");
|
|
assert_eq!(preedit(&after), "ni'hao");
|
|
}
|