mirror of
https://github.com/qingjian-team/qingjian.git
synced 2026-11-06 08:13:51 +00:00
- 整句候选翻译译的是猜出来的候选,猜错就白发;改成用户在面板的框里自己打一句、停键后再译,整句只发确认过的内容 - 翻译组排在最前,每种目标语言算一个分类([ ] 换),打拼音时按 ↑ 直接落在这组;没在打字时 [shortcut] translate_panel(Ctrl+Alt+Y / ⌃⌥Y)打开 - Core panel/translate:原文带光标,停键 800 ms、两个字以上才发,内容没变不重发,没翻出来 2 秒后自动重试一次、再失败等回车;译文按原文 + 语言缓存在内存(换提供方清空),不落盘 - 译文放进应用的 preedit:Windows 译文靠轮询送到,DLL 记着写进文档的组句文字,变了就补一次编辑会话;行内不显示拼音的设置下也照样放 - 框的排版抽成 bamboo-slip 的 TextFlow,与设置程序的 TextField 共用;面板不是 Ui 搭的,布局后按各字位置给出 PanelHit::Caret - [predict] sentence_translation 不再认(旧配置里写着不报错),两个设置程序的开关与文档一并去掉;生词本整句翻译保留 - Windows dispatch/composed/mod.rs 超了 800 行,按联想、导航、出帧拆开 - 初音主题当前分组胶囊改纯色
qingjian-windows-server
青简 Windows 输入法的 Server 进程(bin qingjian-server):持有唯一的输入内核
qingjian-core::Engine,跑在所有应用进程之外,通过命名管道给 TSF DLL(../tsf)提供候选。
Windows 端的整体结构、为什么内核要在进程外、构建与注册步骤,见 ../README.md。
模块
assembly:装配 Engine(词库 / 释义 / 学习)。dispatch::Router:按SessionId分派多会话,处理按键、上屏、异步结果推送。session:单个应用会话的组句状态。ipc:长度前缀帧的收发循环;ipc::pipe(cfg(windows))在\\.\pipe\qingjian上起命名管道服务。
bin src/main.rs 只做配置读取、Engine 装配与启动;逻辑都在库部分,tests/ 里的集成测试直接用库。