annotatable-html 0.0.0-stage → 1.45.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +352 -2
- package/agent/annot_answer.js +7 -0
- package/agent/annot_edit.js +6 -0
- package/agent/annot_poll.js +19 -0
- package/agent/annot_read.js +5 -0
- package/agent/annot_reply.js +50 -0
- package/bin/cli.js +323 -0
- package/lib/claude.js +242 -0
- package/lib/codex-desktop.js +130 -0
- package/lib/codex-headless.js +129 -0
- package/lib/codex.js +216 -0
- package/lib/core.js +2206 -0
- package/lib/document.js +56 -0
- package/lib/duty-process.js +190 -0
- package/lib/duty-worker.js +5 -0
- package/lib/duty.js +334 -0
- package/lib/lang-en.js +462 -0
- package/lib/opencode.js +195 -0
- package/lib/poll-process.js +42 -0
- package/lib/serve.js +318 -0
- package/lib/vendor/marked.cjs +2811 -0
- package/lib/vendor/temml.cjs +14710 -0
- package/package.json +51 -6
- package/templates/SKILL.md +53 -0
- package/templates/annotatable-doc.html +5702 -0
- package/templates/annotatable.theme.css +28 -0
- package/templates/commands/html4agent.md +6 -0
- package/templates/opencode/annotatable-html.js +12 -0
- package/templates/references/compatibility.md +14 -0
- package/templates/references/hosts.md +47 -0
- package/templates/references/operations.md +37 -0
- package/templates/theme-studio.html +330 -0
package/lib/lang-en.js
ADDED
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
/* 英文支持(v1.25.0):zh→en 词典。两用——
|
|
2
|
+
① 烤制:core.applyLangEn 把全文档(HTML 文本/属性/JS 字面量)按最长优先替换;
|
|
3
|
+
② 运行时:en 文档 boot 后 MutationObserver 用同一词典翻译动态生成的中文(toast/面板行/弹层…)。
|
|
4
|
+
约定:值里不用英文撇号;实体形态(< 等)与 DOM 形态(</> 等)各给一条;拼接片段(' · 对话'/'轮'…)
|
|
5
|
+
按在 DOM 全文里能拼出可读英文来翻。键是中文原串,en 烤制时词典本体被掩码保护。 */
|
|
6
|
+
var LANG_PAIRS = [
|
|
7
|
+
/* ── 长句:面板/历史/回答大页 ── */
|
|
8
|
+
['调小档案版数会永久丢弃更早的快照(不可恢复);下次保存时生效,并随文件告知 agent 同样遵守(文件内保留 10~500 版 / 档案 50~5000 版)。', 'Shrinking the archive count permanently drops older snapshots (irreversible); takes effect on next save and the file tells the agent to honor it (10–500 in-file / 50–5000 archive).'],
|
|
9
|
+
['✏️ 编辑中:点哪改哪。Ctrl+S 保存(记入版本历史),Esc 保存并退出', '✏️ Editing: click to edit. Ctrl+S saves (into version history), Esc saves and exits'],
|
|
10
|
+
['点击跳转并选中(升/降级、移位;选中后按 Del 从目录移除书签,正文不动)', 'Click to jump & select (promote/demote/move; Del removes the bookmark from the TOC, body untouched)'],
|
|
11
|
+
['🔐 需要授权才能写回文件——点页面任意位置或 🔗 同步球里的「授权」', '🔐 Authorization needed to write the file — click anywhere on the page or use "Authorize" in the 🔗 sync ball'],
|
|
12
|
+
['⚠️ 文件刚被外部修改且无法自动合并——编辑稿未丢,请刷新后再保存', '⚠️ File changed externally and could not be auto-merged — your edits are safe; refresh and save again'],
|
|
13
|
+
['⚠️ 正文无法自动合并——编辑稿未丢,请刷新后重试保存', '⚠️ Body could not be auto-merged — your edits are safe; refresh and try saving again'],
|
|
14
|
+
['✏️ 修改暂存于当前页面——点右侧 🔗 同步球绑定后才能写回原文件', '✏️ Edits kept on this page — link via the 🔗 sync ball to write back to the original file'],
|
|
15
|
+
['手动编辑「欢迎 / 绑定」引导文案:直接点字改,💾 保存后写回文件', 'Edit the welcome/link guide text: click to edit, 💾 save writes it back'],
|
|
16
|
+
['🔍 查找替换在「✏️ 编辑」模式里可用(Ctrl+E 旁的入口)', '🔍 Find & replace works in ✏️ edit mode (entry next to Ctrl+E)'],
|
|
17
|
+
['格式刷:先选有格式的文字取格式,再选目标文字套用;双击=连续套用', 'Format painter: select formatted text to grab, then paint targets; double-click = sticky mode'],
|
|
18
|
+
['已识别文件但未授权写入,请点右侧 🔗 同步球展开后「🔐 授权」', 'File recognized but not authorized — expand the 🔗 sync ball and choose "Authorize"'],
|
|
19
|
+
['继续追问…Ctrl+Enter 保存,AI 值守中会自动回应', 'Follow up… Ctrl+Enter to send; the AI on duty will reply automatically'],
|
|
20
|
+
['代码块:把当前段整块转为代码块(同行首敲 ``` 快捷输入)', 'Code block: turn the whole paragraph into a code block (or type ``` at line start)'],
|
|
21
|
+
['✅ 高亮已删除(批注数据仍在面板,Ctrl+Z 可撤销)', '✅ Highlight removed (data stays in the panel; Ctrl+Z to undo)'],
|
|
22
|
+
['✏️ 文案已改(当前未绑定文件,绑定后保存才会写回磁盘)', '✏️ Text edited (file not linked yet — link + save writes it to disk)'],
|
|
23
|
+
['🔐 未授权——批注暂存浏览器,点右侧 🔗 同步球可再授权', '🔐 Not authorized — annotations live in the browser; re-authorize via the 🔗 sync ball'],
|
|
24
|
+
['保存并退出编辑(Ctrl+S)——正文改动记入版本历史', 'Save & exit editing (Ctrl+S) — body changes go into version history'],
|
|
25
|
+
['🔗 已发现同文件夹的绑定——点页面任意位置即可启用同步', '🔗 Found a folder link — click anywhere on the page to enable sync'],
|
|
26
|
+
['⚠️ 文件已被外部修改(可能是 AI 刚更新了回复)', '⚠️ File changed externally (the AI may have just added a reply)'],
|
|
27
|
+
['🎉 本卡已全部掌握。想继续深入,回正文划线追问即可。', '🎉 Card fully mastered. To dig deeper, select text in the body and ask.'],
|
|
28
|
+
['还没有版本记录(每次批注/追问/回应都会自动存一版)', 'No versions yet (every annotate / follow-up / reply saves one)'],
|
|
29
|
+
['此浏览器不支持拖拽绑定,请点右侧 🔗 同步球绑定', 'This browser does not support drag-linking — use the 🔗 sync ball'],
|
|
30
|
+
['」在正文中找不到落点(文件可能被绕过协议手改过)', '" has no anchor in the body (the file may have been hand-edited outside the protocol)'],
|
|
31
|
+
['🖌 已取格式(双击·连续模式):逐个点选目标文字', '🖌 Format grabbed (sticky mode): paint targets one by one'],
|
|
32
|
+
[' 条批注未能定位(原文可能已改版),保留在面板中', ' annotations could not be located (body may have changed); kept in the panel'],
|
|
33
|
+
['升级为更高级标题(如 h2→h1),不改文字内容', 'Promote to a higher heading (e.g. h2→h1), text unchanged'],
|
|
34
|
+
['✅ 已绑定文件夹——其中的可批注文档将自动互联', '✅ Folder linked — annotatable documents inside are now interconnected'],
|
|
35
|
+
['🔐 已记住文件夹——点页面任意位置即可授权同步', '🔐 Folder remembered — click anywhere on the page to authorize sync'],
|
|
36
|
+
[' 条批注?(当前状态会先存入版本历史,可回滚)', ' annotations? (The current state is saved into version history first — rollback-able)'],
|
|
37
|
+
['已移动该块(随 ✏️ 保存入账,可 ⏪ 回滚)', 'Block moved (recorded on ✏️ save, ⏪ rollback-able)'],
|
|
38
|
+
['需要授权才能继续自动保存(每次打开页面一次)', 'Authorize to keep autosaving (once per page open)'],
|
|
39
|
+
['并列的实体 / 方案罗列在这里,每张卡一个。', 'Parallel entities / options, one per card.'],
|
|
40
|
+
['尚未绑定——批注暂存浏览器,点击展开可绑定', 'Not linked — annotations live in the browser; click to link'],
|
|
41
|
+
['🖌️ 已高亮并自动保存(点击高亮可补批语)', '🖌️ Highlighted & autosaved (click the highlight to add a comment)'],
|
|
42
|
+
['⚠️ 文件已被外部修改,请刷新页面后再编辑', '⚠️ File changed externally — refresh before editing'],
|
|
43
|
+
['写回后校验失败(文件可能被其他程序占用)', 'Write-back verification failed (the file may be locked by another program)'],
|
|
44
|
+
['✅ 已发送并自动保存,等 AI 下轮回应', '✅ Sent & autosaved — awaiting the next AI reply'],
|
|
45
|
+
['」(正文未动)· 窗格底部 ♻️ 可恢复', '" (body untouched) · restore via ♻️ at the pane bottom'],
|
|
46
|
+
['⏹ 已请求停止——AI 写完当前这段就停', '⏹ Stop requested — the AI finishes this chunk and stops'],
|
|
47
|
+
['✅ 追问已记录——AI 值守中会自动回应', '✅ Follow-up saved — the AI on duty will reply'],
|
|
48
|
+
['✏️ 编辑中:先保存或退出,再进阅读模式', '✏️ Editing: save or exit before entering reading mode'],
|
|
49
|
+
['日期 · 作者 · 批注会自动写回本文件', 'Date · Author · Annotations are written back into this file'],
|
|
50
|
+
['一句话说明这一层是干什么的、特点是什么。', 'One line on what this layer does and what makes it tick.'],
|
|
51
|
+
['✓ 已读', '✓ Mark read'],
|
|
52
|
+
['也可以直接用鼠标划选下方回答内容进行批注', 'You can also select text in the replies below to annotate them'],
|
|
53
|
+
['✅ 已绑定文件,此后批注自动保存进文件', '✅ File linked — annotations now autosave into it'],
|
|
54
|
+
['✅ 拖拽绑定成功,批注将自动保存进文件', '✅ Drag-linked — annotations will autosave into the file'],
|
|
55
|
+
['全屏展开 / 还原(Esc 先退全屏)', 'Fullscreen / restore (Esc exits fullscreen first)'],
|
|
56
|
+
['⚠️ 文件已被外部修改,请刷新后再回滚', '⚠️ File changed externally — refresh before rolling back'],
|
|
57
|
+
['📍 已按原句定位(高亮当前不在正文中)', '📍 Located by quote (the highlight is currently out of the body)'],
|
|
58
|
+
['✅ 已自动关联所在文件夹(此前绑定过)', '✅ Auto-linked to its folder (linked before)'],
|
|
59
|
+
['搜索版本(批语 / 原句 / 操作)…', 'Search versions (comment / quote / op)…'],
|
|
60
|
+
['✅ 引导文案已更新,将自动保存进文件', '✅ Welcome text updated — it will be autosaved into the file'],
|
|
61
|
+
[' · 正文改动记入版本历史(可回滚)', ' · body changes recorded in version history (rollback-able)'],
|
|
62
|
+
['🖌 先选中一段带格式的文字再点格式刷', '🖌 Select some formatted text before using the painter'],
|
|
63
|
+
['一行元信息:版本 / 来源 / 定位', 'One meta line: version / source / role'],
|
|
64
|
+
['⚠️ 未能定位该段文字,未创建批注', '⚠️ Could not locate that text — no annotation created'],
|
|
65
|
+
['✓ 服务器模式:批注自动保存进文件', '✓ Server mode: annotations autosave into the file'],
|
|
66
|
+
['批注 · 拖此条移动 · 拽边缩放', 'Annotation · drag header to move · drag edges to resize'],
|
|
67
|
+
['下一阶已提前解锁,确认仅为标记掌握', 'Next rung is already unlocked — confirming just marks it mastered'],
|
|
68
|
+
['📖 阅读模式 · 按 Esc 退出', '📖 Reading mode · Esc to exit'],
|
|
69
|
+
['查找替换(Ctrl+H,支持正则)', 'Find & replace (Ctrl+H, regex supported)'],
|
|
70
|
+
['降级为更低级标题(如 h2→h3)', 'Demote to a lower heading (e.g. h2→h3)'],
|
|
71
|
+
['(外置档案缺失/损坏/归属不符)', '(external archive missing / corrupt / owner mismatch)'],
|
|
72
|
+
['已清空(可在版本历史中回滚恢复)', 'Cleared (restore anytime from version history)'],
|
|
73
|
+
['🔤 字体已切换并记忆(仅本文件)', '🔤 Font switched & remembered (this file only)'],
|
|
74
|
+
['」——请选择本文件所在的文件夹', '" — choose the folder containing this file'],
|
|
75
|
+
['(绑定文件夹后可读取外置档案)', '(link the folder to read the external archive)'],
|
|
76
|
+
[' 处替换,回滚将撤销(新→旧)', ' replacements; rollback will undo them (new→old)'],
|
|
77
|
+
['🖌 已取格式:点选目标文字套用', '🖌 Format grabbed: click targets to paint'],
|
|
78
|
+
['收起——左缘 🧭 把手可再展开', 'Collapse — reopen via the 🧭 grip on the left edge'],
|
|
79
|
+
['♻️ 已移除书签 · 点击恢复', '♻️ Bookmark removed · click to restore'],
|
|
80
|
+
['(外置档案未找到或归属不符)', '(external archive not found or owner mismatch)'],
|
|
81
|
+
['正文里没有 h1–h5 标题', 'No h1–h5 headings in the body'],
|
|
82
|
+
['阅读模式:隐藏按钮,专注原文', 'Reading mode: hide the buttons, focus on the text'],
|
|
83
|
+
['一、先建心智模型:类比与分层', '1. Build the mental model: analogy & layers'],
|
|
84
|
+
['🤖 AI 回答 · 对话详情', '🤖 AI replies · conversation'],
|
|
85
|
+
['编辑正文(Word 模式)', 'Edit the body (Word mode)'],
|
|
86
|
+
['尚未绑定(批注暂存浏览器)', 'Not linked (annotations live in the browser)'],
|
|
87
|
+
['源 HTML 所在文件夹:', 'Folder of the source HTML: '],
|
|
88
|
+
['需要授权——点击展开可授权', 'Authorization needed — click to expand & authorize'],
|
|
89
|
+
['(绑定文件后回滚才含正文)', '(link the file for rollbacks to include the body)'],
|
|
90
|
+
['⚠️ 原文已变化,未能定位', '⚠️ Body changed — could not locate'],
|
|
91
|
+
['🧭 先在列表里点选一个标题', '🧭 Pick a heading in the list first'],
|
|
92
|
+
['字体:给选中文字设置字体族', 'Font: set the font family of the selection'],
|
|
93
|
+
['正文字体(预览即实际效果)', 'Body font (each preview IS the real font)'],
|
|
94
|
+
[' · 点击复制文件夹路径', ' · click to copy the folder path'],
|
|
95
|
+
['⚠️ 请在回答段落内划选', '⚠️ Select inside the reply first'],
|
|
96
|
+
['⚠️ 请选中正文中的文字', '⚠️ Select some body text first'],
|
|
97
|
+
['此版之后正文没有被修改过', 'Body unchanged after this version'],
|
|
98
|
+
['该标题结构不支持整节移动', 'This heading structure does not support section moves'],
|
|
99
|
+
['✏️ 批语已修改并保存', '✏️ Comment updated & saved'],
|
|
100
|
+
['完成上一阶检查点后解锁', 'Unlocks after the previous rung checkpoint'],
|
|
101
|
+
['(含正文)· 即将刷新', ' (with body) · reloading now'],
|
|
102
|
+
['⏪ 已回滚批注层到 r', '⏪ Rolled the annotation layer back to r'],
|
|
103
|
+
['⚠️ 请先选中正文文字', '⚠️ Select some body text first'],
|
|
104
|
+
['格式刷:已结束连续模式', 'Painter: sticky mode ended'],
|
|
105
|
+
['退出阅读模式(Esc)', 'Exit reading mode (Esc)'],
|
|
106
|
+
['输入关键词,直达标题…', 'Type keywords to jump to a heading…'],
|
|
107
|
+
['三、维度对比与实体详述', '3. Dimension table & entities'],
|
|
108
|
+
['⏪ 版本历史(可回滚)', '⏪ Version history (rollback)'],
|
|
109
|
+
['先不绑定,直接浏览 →', 'Skip linking, just browse →'],
|
|
110
|
+
['📁 绑定文件夹(推荐)', '📁 Link folder (recommended)'],
|
|
111
|
+
['✅ 文件夹路径已复制', '✅ Folder path copied'],
|
|
112
|
+
['本文件所在的文件夹:', 'Folder containing this file: '],
|
|
113
|
+
['🔄 刷新页面载入最新', '🔄 Reload the page for the latest'],
|
|
114
|
+
['⚠ 文件已被外部修改', '⚠ File changed externally'],
|
|
115
|
+
['⚠️ 自动保存失败:', '⚠️ Autosave failed: '],
|
|
116
|
+
['✅ 已发送并自动保存', '✅ Sent & autosaved'],
|
|
117
|
+
[' 的纸条缺少定位信息', ' strip lacks positioning info'],
|
|
118
|
+
[' 版 · 最早到 r', ' versions · back to r'],
|
|
119
|
+
['⚠️ 回滚写盘失败:', '⚠️ Rollback write failed: '],
|
|
120
|
+
[' 版(下次保存生效)', ' versions (takes effect on next save)'],
|
|
121
|
+
['复制失败,请手动复制', 'Copy failed — copy manually'],
|
|
122
|
+
['按住拖动,移动这个块', 'Drag to move this block'],
|
|
123
|
+
['打开导航窗格(目录)', 'Open the TOC pane'],
|
|
124
|
+
['版 · 外置档案保留', ' versions · archive keeps'],
|
|
125
|
+
['所选文件夹里没有「', 'The chosen folder has no "'],
|
|
126
|
+
['点击复制文件夹路径', 'Click to copy the folder path'],
|
|
127
|
+
['正在授权的文件夹:', 'Authorizing folder: '],
|
|
128
|
+
['⚠ 自动保存失败:', '⚠ Autosave failed: '],
|
|
129
|
+
['✓ 批注已自动保存', '✓ Annotation autosaved'],
|
|
130
|
+
['✓ 已理解,下一阶', '✓ Got it — next rung'],
|
|
131
|
+
[' · 档案归属不符', ' · archive owner mismatch'],
|
|
132
|
+
[' 条 vs 当前 ', ' items vs current '],
|
|
133
|
+
[' · 命中 0 版', ' · 0 versions matched'],
|
|
134
|
+
['读取服务器文件失败', 'Failed to read the file from the server'],
|
|
135
|
+
['原文中找不到该高亮', 'Highlight not found in the body'],
|
|
136
|
+
['● 未读', '● Unread'],
|
|
137
|
+
['○ 等 AI 回应', '○ Waiting for AI'],
|
|
138
|
+
['✓ 已了结', '✓ Done'],
|
|
139
|
+
[' 条新回复', ' new replies'],
|
|
140
|
+
[' 条新', ' new'],
|
|
141
|
+
['── 更早 ', '── Earlier '],
|
|
142
|
+
[' 轮 ▸', ' turns ▸'],
|
|
143
|
+
[' 轮 ▾', ' turns ▾'],
|
|
144
|
+
['… AI 回应中(值守在岗时自动长出来)', '… Awaiting AI (appears by itself while the watcher is on duty)'],
|
|
145
|
+
['(仅划线,还没有批语)', '(highlight only — no comment yet)'],
|
|
146
|
+
["nc.textContent = '新';", "nc.textContent = 'New';"],
|
|
147
|
+
['确定清空本页全部 ', 'About to clear all '],
|
|
148
|
+
['没有需要保存的修改', 'Nothing to save'],
|
|
149
|
+
['♻️ 已移除书签 ', '♻️ Bookmark removed '],
|
|
150
|
+
[' 个 · 点击恢复', ' items · click to restore'],
|
|
151
|
+
['给选中文字添加批注', 'Annotate the selected text'],
|
|
152
|
+
['按住拖动可移动窗格', 'Drag to move the pane'],
|
|
153
|
+
['可批注文档(标题)', 'Annotatable Document (Title)'],
|
|
154
|
+
['本文档可划线批注:', 'This document accepts highlights & annotations:'],
|
|
155
|
+
['一句话说明这一层。', 'One line describing this layer.'],
|
|
156
|
+
['二、流程与并列对比', '2. Flow & side-by-side comparison'],
|
|
157
|
+
['快速配置-两步上手', 'Quick setup — two steps'],
|
|
158
|
+
['或拖本文件进页面', 'or drag this file into the page'],
|
|
159
|
+
['🗑 已删除该批注', '🗑 Annotation deleted'],
|
|
160
|
+
['🙈 收起参考答案', '🙈 Hide the answer key'],
|
|
161
|
+
[' · 档案未找到', ' · archive not found'],
|
|
162
|
+
[' 条(比该版多 ', ' items (this version has '],
|
|
163
|
+
['批注层:快照缺失', 'annotation layer: snapshot missing'],
|
|
164
|
+
['⏪ 已回滚到 r', '⏪ Rolled back to r'],
|
|
165
|
+
[' 版 · 档案 ', ' versions · archive '],
|
|
166
|
+
[' · 待AI回应', ' · awaiting AI'],
|
|
167
|
+
['⚠️ 保存失败:', '⚠️ Save failed: '],
|
|
168
|
+
['已是最高级 H1', 'Already H1 (highest)'],
|
|
169
|
+
['已是最低级 H5', 'Already H5 (lowest)'],
|
|
170
|
+
['整节与上一节换位', 'Swap with the previous section'],
|
|
171
|
+
['整节与下一节换位', 'Swap with the next section'],
|
|
172
|
+
['在这里写文档标题', 'Write the document title here'],
|
|
173
|
+
['层级一:做什么的', 'Layer 1: what it does'],
|
|
174
|
+
['层级二:怎么运转', 'Layer 2: how it runs'],
|
|
175
|
+
['层级三:和谁协作', 'Layer 3: who it works with'],
|
|
176
|
+
['清空本页全部批注', 'Clear all annotations on this page'],
|
|
177
|
+
['✏️ 引导文案', '✏️ Welcome text'],
|
|
178
|
+
['📁 绑定文件夹', '📁 Link folder'],
|
|
179
|
+
['🔐 授权并继续', '🔐 Authorize & continue'],
|
|
180
|
+
[' ⏳ 作答中…', ' ⏳ Answering…'],
|
|
181
|
+
['已从目录移除「', 'Removed from TOC: "'],
|
|
182
|
+
['先写下追问内容', 'Write your follow-up first'],
|
|
183
|
+
[' · 已掌握 ', ' · mastered '],
|
|
184
|
+
['长答 · 全文', 'Lesson · full text'],
|
|
185
|
+
['👀 看参考答案', '👀 Show answer key'],
|
|
186
|
+
['✓ 已确认本阶', '✓ Rung confirmed'],
|
|
187
|
+
[' · 档案已连', ' · archive linked'],
|
|
188
|
+
[' · ✂ 正文', ' · ✂ body'],
|
|
189
|
+
['批注层:该版 ', 'annotation layer: this version '],
|
|
190
|
+
['…以及更早的 ', '…and earlier '],
|
|
191
|
+
[' 缺批注层快照', ' missing annotation-layer snapshot'],
|
|
192
|
+
[' · 🤖已回应', ' · 🤖 replied'],
|
|
193
|
+
[' · 🎓教学卡', ' · 🎓 lesson'],
|
|
194
|
+
['✏️ 正文编辑', '✏️ Body edit'],
|
|
195
|
+
['✅ 已保存 r', '✅ Saved r'],
|
|
196
|
+
['请输入查找内容', 'Enter search text'],
|
|
197
|
+
['折叠/展开小节', 'Fold / expand subsections'],
|
|
198
|
+
['标题已改为 H', 'Heading changed to H'],
|
|
199
|
+
['已退出阅读模式', 'Reading mode off'],
|
|
200
|
+
['✅ 代码已复制', '✅ Code copied'],
|
|
201
|
+
['[批注] 有 ', '[Annotations] '],
|
|
202
|
+
['本会话不再提示', 'Do not remind again this session'],
|
|
203
|
+
['✍️ 划线批注', '✍️ Highlight & annotate'],
|
|
204
|
+
['⚖️ 方案 C', '⚖️ Option C'],
|
|
205
|
+
['四、数量级对比', '4. Orders of magnitude'],
|
|
206
|
+
['1. 洞察一。', '1. Insight one.'],
|
|
207
|
+
['2. 洞察二。', '2. Insight two.'],
|
|
208
|
+
['🔗 绑定文件', '🔗 Link file'],
|
|
209
|
+
['↳ AI回答', '↳ AI reply'],
|
|
210
|
+
['修改这条批语', 'Edit this comment'],
|
|
211
|
+
['内容不能为空', 'Content cannot be empty'],
|
|
212
|
+
['⤢ 展开大页', '⤢ Expand panel'],
|
|
213
|
+
['✅ 检查点:', '✅ Checkpoint: '],
|
|
214
|
+
['批注AI回答', 'Annotate the AI reply'],
|
|
215
|
+
['此版之后有 ', 'Body changed after this version: '],
|
|
216
|
+
[' · 命中 ', ' · matched '],
|
|
217
|
+
['读取文件失败', 'Failed to read the file'],
|
|
218
|
+
['⏪ 已中止:', '⏪ Aborted: '],
|
|
219
|
+
[' · 仅高亮', ' · highlight only'],
|
|
220
|
+
['已是最后一节', 'Already the last section'],
|
|
221
|
+
['批注同步状态', 'Annotation sync status'],
|
|
222
|
+
['删除这个高亮', 'Delete this highlight'],
|
|
223
|
+
['复制这段代码', 'Copy this code'],
|
|
224
|
+
['快照保留数量', 'Snapshot retention'],
|
|
225
|
+
['🔮 方案 A', '🔮 Option A'],
|
|
226
|
+
['🧪 方案 B', '🧪 Option B'],
|
|
227
|
+
['📝 批注面板', '📝 Annotations'],
|
|
228
|
+
['🧭 导航窗格', '🧭 TOC pane'],
|
|
229
|
+
['💾 保存改动', '💾 Save changes'],
|
|
230
|
+
['💬 批语:', '💬 Comment: '],
|
|
231
|
+
['绑定失败:', 'Link failed: '],
|
|
232
|
+
['拖入的是「', 'Dropped "'],
|
|
233
|
+
['(空标题)', '(empty heading)'],
|
|
234
|
+
['⏹ 已打断', '⏹ Interrupted'],
|
|
235
|
+
[' 的改动「', 'change "'],
|
|
236
|
+
[' / 少 ', ' / fewer than '],
|
|
237
|
+
['回滚到此版', 'Roll back to this version'],
|
|
238
|
+
[',无法回滚', ' — cannot roll back'],
|
|
239
|
+
['(服务器档案未连或归属不符)', ' (server ledger not connected or owner mismatch)'],
|
|
240
|
+
['确认回滚', 'Confirm rollback'],
|
|
241
|
+
['刷新重试', 'Refresh & retry'],
|
|
242
|
+
['回滚到 r', 'Roll back to r'],
|
|
243
|
+
['删除此批注', 'Delete this annotation'],
|
|
244
|
+
[' · 对话', ' · '],
|
|
245
|
+
['(已保存)', ' (saved)'],
|
|
246
|
+
['已是第一节', 'Already the first section'],
|
|
247
|
+
['字号减一档', 'Smaller font size'],
|
|
248
|
+
['字号加一档', 'Bigger font size'],
|
|
249
|
+
['可批注文档', 'Annotatable document'],
|
|
250
|
+
['类比框 ·', 'analogy box · '],
|
|
251
|
+
['分层图 ·', 'layer diagram · '],
|
|
252
|
+
['流程条 ·','flow strip · '],
|
|
253
|
+
['对比表 ·', 'table · '],
|
|
254
|
+
['实体卡 ·', 'entity card · '],
|
|
255
|
+
['条形图 ·', 'bar chart · '],
|
|
256
|
+
['生活类比:', 'Everyday analogy: '],
|
|
257
|
+
['🤖 读批注', '🤖 Read annotations'],
|
|
258
|
+
['⏪ 可回滚', '⏪ Rollback-able'],
|
|
259
|
+
['✗ 缺点一', '✗ Con one'],
|
|
260
|
+
['描述内容。', 'Description goes here.'],
|
|
261
|
+
['⚠️ 一般', '⚠️ Fair'],
|
|
262
|
+
['🖌️ 高亮', '🖌️ Highlight'],
|
|
263
|
+
['文件内保留', 'Keep in file '],
|
|
264
|
+
['🖌 格式刷', '🖌 Painter'],
|
|
265
|
+
['批注回答', 'annotate the reply'],
|
|
266
|
+
['网页文件', 'web page'],
|
|
267
|
+
['原句:“', 'Quote: “'],
|
|
268
|
+
['💾 保存', '💾 Save'],
|
|
269
|
+
['批语修改', 'comment edited'],
|
|
270
|
+
['❏ 还原', '❏ Restore'],
|
|
271
|
+
['⏹ 停止', '⏹ Stop'],
|
|
272
|
+
['直接解锁', 'Unlock now'],
|
|
273
|
+
['划线批注', 'highlight & annotate'],
|
|
274
|
+
[' 条批注', ' annotations'],
|
|
275
|
+
['正文层:', 'Body layer: '],
|
|
276
|
+
['回到 r', 'Back to r'],
|
|
277
|
+
['💬 对话', '💬 Thread'],
|
|
278
|
+
['🎓 教学', '🎓 lesson'],
|
|
279
|
+
['没有批注', 'No annotations'],
|
|
280
|
+
['正则无效', 'Invalid regex'],
|
|
281
|
+
['已替换 ', 'Replaced '],
|
|
282
|
+
['已移除:', 'Removed: '],
|
|
283
|
+
['已恢复 ', 'Restored '],
|
|
284
|
+
[' 个书签', ' bookmarks'],
|
|
285
|
+
['系统默认', 'System default'],
|
|
286
|
+
['微软雅黑', 'Microsoft YaHei'],
|
|
287
|
+
['思源黑体', 'Source Han Sans'],
|
|
288
|
+
['思源宋体', 'Source Han Serif'],
|
|
289
|
+
['批注面板', 'annotations panel'],
|
|
290
|
+
['正文字体', 'Body font'],
|
|
291
|
+
['文字颜色', 'Text color'],
|
|
292
|
+
['高亮颜色', 'Highlight color'],
|
|
293
|
+
['替换为…', 'Replace with…'],
|
|
294
|
+
['标签 ·', 'tag · '],
|
|
295
|
+
['✓ 优点', '✓ Pro'],
|
|
296
|
+
['✗ 缺点', '✗ Con'],
|
|
297
|
+
['实体名称', 'Entity name'],
|
|
298
|
+
['五、结论', '5. Conclusion'],
|
|
299
|
+
['一句话。', 'One sentence.'],
|
|
300
|
+
['⧉ 复制', '⧉ Copy'],
|
|
301
|
+
['✍ 批注', '✍ Annotate'],
|
|
302
|
+
['✕ 关闭', '✕ Close'],
|
|
303
|
+
['➤ 追问', '➤ Follow up'],
|
|
304
|
+
['🔤 字体', '🔤 Font'],
|
|
305
|
+
['🎨 字色', '🎨 Color'],
|
|
306
|
+
['🖍 高亮', '🖍 Highlight'],
|
|
307
|
+
['💬 批注', '💬 Annotate'],
|
|
308
|
+
['◀ 收起', '◀ Collapse'],
|
|
309
|
+
['⬆ 升级', '⬆ Promote'],
|
|
310
|
+
['⬇ 降级', '⬇ Demote'],
|
|
311
|
+
['▲ 上移', '▲ Up'],
|
|
312
|
+
['▼ 下移', '▼ Down'],
|
|
313
|
+
['全部替换', 'Replace all'],
|
|
314
|
+
['✕ 取消', '✕ Cancel'],
|
|
315
|
+
['❓ 你', '❓ You'],
|
|
316
|
+
['教学卡', 'Lesson card'],
|
|
317
|
+
['写批语', 'Write a comment'],
|
|
318
|
+
['(空)', '(empty)'],
|
|
319
|
+
['本轮 ', 'This round '],
|
|
320
|
+
[' 条:', ' items: '],
|
|
321
|
+
['无匹配', 'No matches'],
|
|
322
|
+
['下划线', 'underline'],
|
|
323
|
+
['查找…', 'Find…'],
|
|
324
|
+
['指标一', 'Metric 1'],
|
|
325
|
+
['✅ 好', '✅ Good'],
|
|
326
|
+
['指标二', 'Metric 2'],
|
|
327
|
+
['标出。', ' is marked.'],
|
|
328
|
+
['全文', 'full text'],
|
|
329
|
+
['批注', 'annotation'],
|
|
330
|
+
['批语', 'comment'],
|
|
331
|
+
['追问', 'follow-up'],
|
|
332
|
+
['删除', 'Delete'],
|
|
333
|
+
['保存', 'Save'],
|
|
334
|
+
['取消', 'Cancel'],
|
|
335
|
+
['收起', 'Collapse'],
|
|
336
|
+
['打断', 'Stop'],
|
|
337
|
+
['回滚', 'rollback'],
|
|
338
|
+
['今天', 'Today'],
|
|
339
|
+
['昨天', 'Yesterday'],
|
|
340
|
+
['苹方', 'PingFang SC'],
|
|
341
|
+
['黑体', 'SimHei'],
|
|
342
|
+
['等线', 'DengXian'],
|
|
343
|
+
['宋体', 'SimSun'],
|
|
344
|
+
['楷体', 'KaiTi'],
|
|
345
|
+
['仿宋', 'FangSong'],
|
|
346
|
+
['标题', 'Title'],
|
|
347
|
+
['加粗', 'bold'],
|
|
348
|
+
['斜体', 'italic'],
|
|
349
|
+
['墨黑', 'ink black'],
|
|
350
|
+
['玫红', 'rose'],
|
|
351
|
+
['薄荷', 'mint'],
|
|
352
|
+
['琥珀', 'amber'],
|
|
353
|
+
['关闭', 'Close'],
|
|
354
|
+
['灰', 'gray'],
|
|
355
|
+
['蓝', 'blue'],
|
|
356
|
+
['青', 'cyan'],
|
|
357
|
+
['绿', 'green'],
|
|
358
|
+
['橙', 'orange'],
|
|
359
|
+
['红', 'red'],
|
|
360
|
+
['紫', 'purple'],
|
|
361
|
+
['棕', 'brown'],
|
|
362
|
+
['黄', 'yellow'],
|
|
363
|
+
['粉', 'pink'],
|
|
364
|
+
['靛', 'indigo'],
|
|
365
|
+
['</> 代码块', '</> Code'],
|
|
366
|
+
['</> 代码块', '</> Code'],
|
|
367
|
+
['每个节用一个 <section>(h2 作标题)。目录不用写——点右下角 🧭 导航窗格,标题树/搜索/跳转都是模板现场生成的。', 'One <section> per section (h2 as its heading). No TOC needed — the 🧭 pane at bottom-right builds the heading tree, search and jumps on the fly.'],
|
|
368
|
+
['正文即research-html暖白简化风格,下面的占位示例演示全部组件类名,动手时整段替换即可:', 'The body uses the research-html warm-white style; the placeholder examples below demonstrate every component class — replace them wholesale when writing:'],
|
|
369
|
+
['选中任意文字 → 「🖌️ 高亮」/「✍ 批注」;「⏪ 版本历史」可回滚任意版本,⚙ 可调快照保留数量。', 'Select any text → "🖌️ Highlight" / "✍ Annotate"; "⏪ Version history" rolls back anything, ⚙ tunes snapshot retention.'],
|
|
370
|
+
['结论框。', 'verdict box.'],
|
|
371
|
+
['可批注HTML(划线批注demo).html', 'annotatable-html-demo.html'],
|
|
372
|
+
['版本历史', 'version history'],
|
|
373
|
+
['回应', 'reply'],
|
|
374
|
+
['值守', 'on-duty'],
|
|
375
|
+
['快照', 'snapshot'],
|
|
376
|
+
['书签', 'bookmark'],
|
|
377
|
+
['窗格', 'pane'],
|
|
378
|
+
['授权', 'Authorize'],
|
|
379
|
+
['绑定', 'link'],
|
|
380
|
+
['正文', 'body'],
|
|
381
|
+
['目录', 'TOC'],
|
|
382
|
+
['版本', 'version'],
|
|
383
|
+
['档案', 'archive'],
|
|
384
|
+
['轮', ' turn(s)'],
|
|
385
|
+
['条', 'item(s)'],
|
|
386
|
+
['「', '"'],
|
|
387
|
+
['」', '"'],
|
|
388
|
+
['🖍️ 高亮(点击编辑)', '🖌️ Highlight (click to edit)'],
|
|
389
|
+
['请拖入 HTML 文件', 'Drop an HTML file here'],
|
|
390
|
+
['⚙ 已恢复默认:文件内 ', '⚙ Defaults restored: in-file '],
|
|
391
|
+
['Courier New(等宽)', 'Courier New (mono)'],
|
|
392
|
+
['描述。关键配置用', 'Description. Key settings in '],
|
|
393
|
+
['💡 结论 / 关键洞察', '💡 Conclusion / key insights'],
|
|
394
|
+
['💬 回答 / 改正文', '💬 Reply / edit body'],
|
|
395
|
+
['✓ 优点一 · 优点二', '✓ Pro one · pro two'],
|
|
396
|
+
['关键字', 'keyword'],
|
|
397
|
+
['方案 A', 'Option A'],
|
|
398
|
+
['方案 B', 'Option B'],
|
|
399
|
+
['方案 C', 'Option C'],
|
|
400
|
+
['标签 1', 'Tag 1'],
|
|
401
|
+
['标签 2', 'Tag 2'],
|
|
402
|
+
['标签 3', 'Tag 3'],
|
|
403
|
+
['维度', 'Dimension'],
|
|
404
|
+
['成本', 'Cost'],
|
|
405
|
+
['类别', 'Category'],
|
|
406
|
+
['默认', 'Default'],
|
|
407
|
+
['正则', 'regex'],
|
|
408
|
+
['值', 'value'],
|
|
409
|
+
['低', 'Low'],
|
|
410
|
+
['高', 'High'],
|
|
411
|
+
['中', 'Med'],
|
|
412
|
+
['(需要 section 结构,或标题直接位于正文根部)', ' (needs a section structure, or the heading sits at the body root)'],
|
|
413
|
+
['⚠️ 此浏览器不支持写回文件——请改用 Edge/Chrome 打开,或运行 annotatable serve 自动保存', '⚠️ This browser cannot write files — use Edge/Chrome instead, or run annotatable serve for autosave'],
|
|
414
|
+
['此浏览器不支持写回文件(可用 annotatable serve)', 'This browser cannot write files (annotatable serve works)'],
|
|
415
|
+
['数据在本文件 answers 区块 · 追问请回正文继续划线批注', 'Data lives in the answers block of this file · go back to the body to highlight & annotate'],
|
|
416
|
+
['\n(点击复制文件夹路径,粘进资源管理器 / 终端可直接打开)', '\n(click to copy the folder path — paste into Explorer / a terminal to open)'],
|
|
417
|
+
['\n(点击复制文件夹路径——粘给 AI / 资源管理器都能用)', '\n(click to copy the folder path — for the AI or Explorer)'],
|
|
418
|
+
['当前状态会先存入历史,随时可以再滚回来。', 'The current state is saved to history first — roll back anytime.'],
|
|
419
|
+
['去正文里选中一段文字试试 ✍️', 'Select some text in the body to try ✍️'],
|
|
420
|
+
['写下批语或疑问…按 Ctrl+Enter 保存', 'Write a comment or question… Ctrl+Enter to save'],
|
|
421
|
+
['继续追问…按 Ctrl+Enter 保存', 'Continue the follow-up… Ctrl+Enter to save'],
|
|
422
|
+
['还没有批注。', 'No annotations yet.'],
|
|
423
|
+
['✅ 高亮已删除(Ctrl+Z 可撤销)', '✅ Highlight removed (Ctrl+Z to undo)'],
|
|
424
|
+
['\n位置:', '\nLocation: '],
|
|
425
|
+
['阶 ', 'rung '],
|
|
426
|
+
[' 阶', ' rung'],
|
|
427
|
+
['共 ', 'total '],
|
|
428
|
+
[' 等', ' etc.'],
|
|
429
|
+
[' 处', ' place(s)'],
|
|
430
|
+
['回答', 'reply'],
|
|
431
|
+
['可批注文档模板(research-html 暖白简化风格)· 配套 annotatable-html skill 与批注工具使用 · 批注数据在文末 annotations-store 区块', 'Annotatable document template (research-html warm-white style) · use with the annotatable-html skill and annotation tools · annotation data lives in the annotations-store block at the end'],
|
|
432
|
+
['⚙ 快照保留:文件内 ', '⚙ Retention: in-file '],
|
|
433
|
+
['Consolas(等宽)', 'Consolas (mono)'],
|
|
434
|
+
[',粘进资源管理器 / 终端可直接打开)', ', paste into Explorer / a terminal to open)'],
|
|
435
|
+
['——粘给 AI / 资源管理器都能用)', ' — for the AI or Explorer)'],
|
|
436
|
+
['(点击展开 / 收起详情)', '(click to expand / collapse details)'],
|
|
437
|
+
[',不是本文件,已忽略', ', not this file — ignored'],
|
|
438
|
+
['版', ' versions'],
|
|
439
|
+
['卡片 ·', 'card · '],
|
|
440
|
+
['讲任何主题前,先用一个读者熟悉的生活场景开场——比如把版本历史想成一本相册,快照就是相纸,档案室就是仓库。', 'Before any topic, open with an everyday scene the reader knows — say, version history as a photo album: snapshots are the film, the archive is the storage room.'],
|
|
441
|
+
['标签 · 关键字', 'tag · keyword'],
|
|
442
|
+
['⚠ 磁盘已有正文之外的更新(脚本 / 样式 / 壳)——本页不会热载,刷新对齐后再继续', '⚠ The file on disk changed outside the body (scripts / styles / shell) — this page cannot hot-load it; refresh to align before continuing'],
|
|
443
|
+
['📥 正文已热同步;磁盘另有正文之外的更新(脚本 / 样式 / 壳)——本页不会热载,建议刷新对齐', '📥 Body hot-synced; the disk also has updates outside the body (scripts / styles / shell) that hot-load cannot apply — refresh to align'],
|
|
444
|
+
['刷新对齐', 'Refresh & align'],
|
|
445
|
+
['知道了', 'Got it'],
|
|
446
|
+
/* v1.33.0 值守状态灯(长句键在前——langTr 顺序替换,短键是长键子串时必须排后) */
|
|
447
|
+
['本页未挂值守 poll——批注不会自动被应答', 'No watch poll on this page — annotations will not be answered automatically'],
|
|
448
|
+
['agent 值守在岗 · 最后心跳 ', 'Agent on watch · last beat '],
|
|
449
|
+
['值守心跳已停(最后心跳 ', 'Watch heartbeat stopped (last beat '],
|
|
450
|
+
[')——watcher 进程可能已死,批注无人监听', ') — the watcher process may be dead; annotations go unheard'],
|
|
451
|
+
['上一班 poll 已交班(最后心跳 ', 'Previous poll shift handed over (last beat '],
|
|
452
|
+
[')——agent 应答/重挂中', ') — agent answering or re-arming'],
|
|
453
|
+
['值守已断,批注不会自动被应答——请唤起 agent 重挂 poll', 'Watch chain is broken; annotations go unanswered — wake the agent to re-arm the poll'],
|
|
454
|
+
['无人值守 · 最后心跳 ', 'Unwatched · last beat '],
|
|
455
|
+
[' 秒前', 's ago'],
|
|
456
|
+
[' 分钟前', ' min ago'],
|
|
457
|
+
['心跳超龄', 'Beat stale'],
|
|
458
|
+
['换班中', 'Handing over'],
|
|
459
|
+
['未挂值守', 'No watch'],
|
|
460
|
+
['值守中', 'On watch'],
|
|
461
|
+
];
|
|
462
|
+
if (typeof module !== 'undefined') module.exports = { pairs: LANG_PAIRS };
|