Files
qingjian/apps/windows/server
yenharvey 61ca4b4150 feat: 符号面板加「翻译」组,删掉 Windows 的整句候选翻译
- 整句候选翻译译的是猜出来的候选,猜错就白发;改成用户在面板的框里自己打一句、停键后再译,整句只发确认过的内容
- 翻译组排在最前,每种目标语言算一个分类([ ] 换),打拼音时按 ↑ 直接落在这组;没在打字时 [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 行,按联想、导航、出帧拆开
- 初音主题当前分组胶囊改纯色
2026-11-04 16:18:39 +08:00
..

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/ 里的集成测试直接用库。