Repository navigation
Expand file tree
/
Copy pathi18n.js
More file actions
654 lines (619 loc) · 47.1 KB
/
Copy pathi18n.js
File metadata and controls
654 lines (619 loc) · 47.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
/* Jev 聊天助手官网文案:中英两套字典,全站单一来源。
* - data-i18n="key" → 元素 innerHTML(可以含 <a> <strong> <b> 等标签)
* - data-i18n-attr="a:key" → 元素属性(纯文本)
* - main.js 里 t("key") 用到的键(演示批注、按钮状态等)也在这里
* 改完跑:node tools/check-i18n.mjs --fix(把中文同步进 index.html),再跑一遍不带 --fix 的检查。
* 字典里的 HTML 属性一律用单引号。流程见 MAINTAINING.md。
*/
window.JEV_I18N = {
"zh": {
"learn.title": "从这里开始用",
"learn.intro": "把安装步骤和使用方法写清楚,遇到问题可以直接回来查。",
"learn.1.title": "Jev 聊天助手安装与设置:从选择平台到第一条候选回复",
"learn.1.desc": "先确认设备,再配置模型接口与读屏权限。本文说明 Android 的设置顺序、桌面版入口、费用和聊天数据去向。",
"learn.1.url": "guides/android-setup.html",
"learn.2.title": "AI 给出的回复怎么用?发送前检查这四件事",
"learn.2.desc": "用一个明确标注为虚构的对话示例,说明怎样核对事实、减少误读、检查承诺,并把 AI 候选改成自己愿意发送的话。",
"learn.2.url": "guides/review-ai-replies.html",
"learn.sister": "同一作者的开源项目:<a href='https://brewreel.com/?lang=zh' data-umami-event='click-sister' data-umami-event-project='brewreel'>精酿 BrewReel · AI 辅助宣传片制作</a>。",
"facts.title": "Jev 聊天助手是什么?",
"facts.desc": "Jev 聊天助手(Jev Chat Assistant)是开源的 AI 聊天辅助工具,提供 Android、Windows 和 macOS 版本。它帮助你分析消息、理解意图并起草候选回复,发送前由你检查和决定。",
"facts.use.label": "适合什么需求",
"facts.use": "需要斟酌措辞、理解对话语气或获得回复思路的个人用户;判断结果仅供参考。",
"facts.scope.label": "平台与功能范围",
"facts.scope": "三端独立维护。本页的无障碍读屏、ML Kit OCR、权限设置和聊天 App 兼容性说明以 Android 版为准;桌面端功能以各自项目说明为准。",
"facts.cost.label": "费用与使用条件",
"facts.cost": "Android 项目采用 MIT 许可,软件免费开源;模型接口使用你自己的 API Key,可能产生服务商费用。桌面端许可与要求见对应项目。",
"facts.source": "项目发布者:<a href='https://github.com/Finderchangchang' rel='noopener' target='_blank'>Finderchangchang</a>。安装包、各平台说明与更新请查看 <a href='https://github.com/jev-chat/jev-chat-jarvis' target='_blank' rel='noopener' data-umami-event='go-main-repo' data-umami-event-pos='facts' data-umami-event-intent='get'>GitHub 项目主页</a>。",
"facts.text": "项目资料(文本)",
"meta.title": "Jev 聊天助手 — 开源 AI 聊天辅助工具|Android / Windows / macOS",
"meta.desc": "Jev 聊天助手提供 Android、Windows、macOS 版本。读懂屏幕上的聊天,判断意图与风险,起草候选回复;填入后由你决定是否发送。安装包、教程和交流入口在 GitHub 项目主页。",
"meta.ogTitle": "Jev 聊天助手 — 回消息之前,先看懂对方",
"meta.ogDesc": "读懂对方、三条回复、一键填入。开源 MIT,Android / Windows / macOS 三端。程序只填不发。",
"meta.ogAlt": "Jev 聊天助手:悬浮窗给出危险等级、对方真实意图和三条候选回复",
"meta.locale": "zh_CN",
"meta.localeAlt": "en_US",
"skip": "跳到主要内容",
"a.brand": "Jev 聊天助手 首页",
"brand.name": "Jev 聊天助手",
"a.nav": "主导航",
"nav.read": "先看懂",
"nav.how": "怎么工作",
"nav.privacy": "数据去向",
"nav.apps": "支持的 App",
"nav.start": "开始使用",
"nav.faq": "常见问题",
"nav.dl": "前往 GitHub 获取 Jev",
"a.lang": "Switch to English",
"a.theme": "切换深浅色",
"a.menuOpen": "打开菜单",
"a.menuClose": "关闭菜单",
"hero.eyebrow": "开源 · MIT · Android / Windows / macOS",
"hero.title": "回消息之前,<br><span class='hl'>先看懂对方</span>",
"hero.sub": "Jev 聊天助手是你的对话副驾:读懂屏幕上的聊天,给出意图和危险等级,起草候选回复并填进输入框。发不发,由你。支持 Android、Windows 和 macOS。",
"hero.dl": "前往 GitHub 获取 Jev",
"hero.meta": "安装包、使用教程和各平台入口,统一在 GitHub 项目主页。选择适合你的平台。",
"hero.note": "程序只把回复填进输入框,从不自动发送,不碰转账 / 红包 / 收款。<a href='#privacy'>聊天内容去了哪里</a>",
"hero.works": "已跑通",
"app.qq": "QQ",
"app.x": "X(Twitter)",
"app.lark": "飞书(OCR 兜底)",
"app.any": "任意 App(手动 OCR)",
"app.web": "网页端(规划中)",
"demo.aria": "演示:Jev 悬浮窗怎么帮你回一条消息",
"demo.sr": "演示动画:对方发来「你根本就不懂我」。Jev 悬浮窗判断危险 8/9、很危险,对方真实意图是确认你在不在乎,建议接住情绪、先别给实质;随后给出三条排好序的候选回复。点第 1 条的「填入」,回复进入输入框,发送键由你自己按。",
"demo.chatName": "对象",
"demo.m1": "这周末我约了朋友打球",
"demo.m2": "上周末你也不在",
"demo.m3": "你根本就不懂我",
"demo.placeholder": "输入消息",
"demo.panelTitle": "Jev 分析",
"demo.kb": "未用知识库",
"demo.badge": "危险 8/9",
"demo.word": "很危险",
"demo.intent": "对方真实意图:确认你在不在乎",
"demo.conf": "把握 82%",
"demo.bits": "要你的在乎 · 接住情绪 · 先别给实质",
"demo.listLabel": "候选回复(Jev 排序)",
"demo.gen": "生成中…",
"demo.r1": "是我没顾上你的感受,你愿意跟我说说吗?",
"demo.r2": "对不起,刚才是我语气不好",
"demo.r3": "那你说说我哪里不懂你",
"demo.copy": "复制",
"demo.fill": "填入",
"demo.s1": "消息进来",
"demo.s2": "看懂意图",
"demo.s3": "三条候选",
"demo.s4": "由你发送",
"demo.n1": "对方刚发来「你根本就不懂我」,悬浮球亮了。",
"demo.n2": "Jev 判断:危险 8/9,对方想确认你在不在乎。先接住情绪,别急着讲道理。",
"demo.n3": "生成模型起草三条,Jev 按合适程度排好序,标出占比。",
"demo.n4": "点「填入」,回复进输入框。<b>发送键不动</b>,发不发、怎么改,由你决定。",
"demo.cap": "演示动画,对话为模拟;悬浮窗按 App 源码还原。",
"demo.pause": "暂停演示",
"demo.play": "播放演示",
"a.demoSteps": "演示步骤,点一步可以停在那里",
"read.kicker": "先看懂",
"read.title": "同一个「嗯」,意思可能完全相反",
"read.lead": "大多数助手直接给你一段话。Jev 先判断这条消息到底是什么,再决定怎么回。",
"read.ctx": "前情",
"read.hm": "嗯",
"read.intentK": "对方真实意图",
"read.a.me": "今晚加班,晚点到家",
"read.a.lvl": "危险 2/9",
"read.a.word": "安全",
"read.a.intent": "随便聊聊",
"read.a.needs": "要(不用做什么)",
"read.b.me": "纪念日我给忘了,明天补上",
"read.b.lvl": "危险 7/9",
"read.b.word": "偏危险",
"read.b.intent": "确认你在不在乎",
"read.b.needs": "要道歉 · 先道歉",
"read.note": "演示场景,对话为模拟。",
"jq.title": "Jev 判断模型不写字,只在固定选项里选",
"jq.lead": "一次请求问 7 道题:真实意图、危险等级(0–9)、对方要什么、该不该马上回、下一步怎么做等,都带概率和把握度,约 1 秒出结果。回复由生成模型另写。",
"jq.choice": "选择",
"jq.score": "打分",
"jq.yesno": "是非",
"jq.i1.n": "真实意图",
"jq.i1.o": "确认你在不在乎 · 在发泄情绪 · 要你办事 · 要个解释 · 随便聊聊 · 事情过去了",
"jq.i2.n": "危险等级",
"jq.i2.o": "0 是轻松闲聊,9 是已经闹翻;悬浮窗按分数标出安全、留神、偏危险、很危险",
"jq.i3.n": "对方要什么",
"jq.i3.o": "道歉 · 具体行动 · 解释 · 你的在乎 · 不用做什么",
"jq.i4.n": "该不该马上回",
"jq.i4.o": "下一句该不该给实质内容;悬浮窗里写作「可给实质」或「先别给实质」",
"jq.i5.n": "下一步怎么做",
"jq.i5.o": "翻聊天记录 · 先道歉 · 给承诺 · 解释清楚 · 接住情绪 · 少说两句 · 定个安排",
"jq.i6.n": "话里有没有话",
"jq.i6.o": "是字面意思,还是在试探、反讽、暗示",
"jq.i7.n": "紧张缓和了没",
"jq.i7.o": "对方已经接受、又开起玩笑,还是还在等你表态",
"cmp.title": "和其他做法比",
"cmp.lead": "同样是「帮你回消息」,差别在读得到多少、判不判断,以及谁按发送。",
"cmp.h0": "能力",
"cmp.h1": "Jev 聊天助手",
"cmp.h2": "输入法 / App 自带 AI 回复",
"cmp.h3": "通用聊天机器人(复制粘贴)",
"cmp.h4": "自动回复机器人",
"cmp.r1": "先判断再写",
"cmp.r2": "任意聊天 App 都能读",
"cmp.r3": "非侵入,不改客户端",
"cmp.r4": "发送由你按",
"cmp.r5": "知识库 + 联系人上下文",
"cmp.r6": "接口 / 模型自选",
"cmp.r7": "开源免费",
"cmp.yes": "有",
"cmp.no": "没有",
"cmp.part": "部分",
"cmp.foot": "对比按公开可得的常见形态归纳,不针对任何具体产品。",
"read.next": "接下来:看它怎么工作",
"how.kicker": "怎么工作",
"how.title": "从屏幕上的一条消息,到输入框里的一句话",
"how.lead": "中间只有这几步。实心的在你手机上完成,虚线的发往你自己配置的接口。",
"how.local": "在你手机上",
"how.remote": "发往你配置的接口",
"how.n1.t": "采集屏幕消息",
"how.n1.d": "无障碍服务读当前对话;读不到就截屏,用离线 OCR 认字",
"how.n2.t": "Jev 判断",
"how.n2.d": "意图 · 危险等级 0–9 · 该不该马上回",
"how.n3.t": "生成模型起草",
"how.n3.d": "3 条口语化候选:稳妥接话、给出行动或承诺、简短表态各一条;默认经 OpenRouter 调用 DeepSeek",
"how.n4.t": "Jev 排序",
"how.n4.d": "按合适程度重排,标出概率",
"how.n5.t": "悬浮窗展示",
"how.n5.d": "判断结论 + 三条候选,就在对话旁边",
"how.n6.t": "复制 / 填入",
"how.n6.d": "<strong>不发送</strong>,发送那一下由你按",
"how.f1.t": "知识库与关联上下文",
"how.f1.d": "本地维护笔记和联系人档案(关系、别名、备注)。笔记分两种:常驻的每次都带,其余按标签或标题匹配当前对话自动命中;开启历史后再带上这个人近期的聊天。回复口径与知识库一致,不编造知识库外的内容。联系人可跨 App 关联。",
"how.f2.t": "读不到就 OCR",
"how.f2.d": "控件树里没有正文时自动截屏,用 ML Kit 中文离线识别,不上传图片、不需要 Google 服务。任何 App 都能在悬浮窗菜单里手动「截屏识别一次」。",
"how.f3.t": "接口全可配",
"how.f3.d": "判断 / 回复 / 视觉三路接口的地址、密钥、模型分别可填。内置 OpenRouter、博查 Jev、TypeSafe 直连、DeepSeek 官方、通义兼容预设,各自一键连通测试。只填一把 OpenRouter 密钥就能用。",
"how.f4.t": "一套内核,多平台",
"how.f4.d": "判断、候选、排序、填入都在同一个内核里。新增一个 App 只需要实现一个几十行的适配器,其余全部复用。",
"how.next": "接下来:聊天内容去了哪里",
"priv.kicker": "数据去向",
"priv.title": "它读你的聊天,所以先把话说清楚",
"priv.lead": "这不是一个「什么都不收集」的产品:聊天文字确实会发给一个模型接口,只是那个地址由你自己填。除此之外的数据都留在你手机里。",
"priv.d.phone": "你的手机",
"priv.d.p1": "读屏幕上正在显示的对话",
"priv.d.p2": "截图只在本机 OCR,不上传",
"priv.d.p3": "密钥、知识库、历史(默认关)只存本机",
"priv.d.when": "只在分析那一刻",
"priv.d.what": "当前对话的近 10 条消息 + 你填的关系描述;开了知识库、历史,才带上命中的笔记和这个人的历史",
"priv.d.api": "你配置的模型接口",
"priv.d.apiList": "OpenRouter · 博查 Jev · TypeSafe · DeepSeek · 通义 · 任意 OpenAI 兼容地址",
"priv.d.none": "作者的服务器",
"priv.d.noneD": "没有这一环:作者不架设服务器、不经手",
"priv.q1": "读了什么",
"priv.a1": "只读屏幕上正在显示的对话,用的是系统无障碍服务。不改任何 App 的安装包,不走它们的接口或账号,不读数据库。可以设会话白名单,也可以关掉自动分析,只在你点的时候读。",
"priv.q2": "发给谁",
"priv.a2": "只在判断那一刻,发给你自己配置的接口。作者不架设服务器、不经手。服务商拿到内容后怎么处理,以它们自己的隐私政策为准。",
"priv.q3": "存在哪",
"priv.a3": "密钥只存在 App 私有空间。聊天内容发完不落盘、不进日志。历史记录默认关闭,开了也只存本机。OCR 走 ML Kit 中文离线识别,图片不上传。",
"priv.q4": "怎么删",
"priv.a4": "设置页「清空知识库与历史」一键删除;卸载应用会连同密钥、设置一起清空,没有云端备份。",
"priv.q5": "从不做什么",
"priv.a5": "从不自动发送;不碰转账、红包、收款;无广告、无第三方统计 SDK。",
"priv.cta": "读完整隐私政策",
"priv.src": "每一条都可以在 GitHub 仓库里对照源码核实。",
"apps.kicker": "支持的 App",
"apps.title": "在这些 App 里跑通了",
"apps.lead": "真机实测为准,版本号是验证时的版本。",
"apps.h1": "App",
"apps.h2": "状态",
"apps.h3": "说明",
"apps.qq": "QQ Android",
"apps.qq.s": "全链路",
"apps.qq.d": "9.3.50 实测",
"apps.x": "X / Twitter 私信",
"apps.x.s": "全链路",
"apps.x.d": "12.25 实测,中文界面",
"apps.lark": "飞书 / Lark",
"apps.lark.s": "OCR 兜底",
"apps.lark.d": "真机验证,正文离线 OCR",
"apps.any": "任意其它 App",
"apps.any.s": "手动识别",
"apps.any.d": "悬浮窗菜单「截屏识别一次」",
"apps.web": "网页端",
"apps.web.s": "规划中",
"apps.web.d": "目前还没有网页版",
"apps.ios": "iOS",
"apps.ios.s": "暂不支持",
"apps.ios.d": "—",
"apps.win.d": "截自己的聊天窗口 + 本地离线 OCR,不改客户端、不读数据库。",
"apps.win.req": "Windows 10 1903+ / 11",
"apps.mac.d": "看屏 + 本地小模型判断意图与风险等级,按话术生成候选并本地排序。",
"apps.mac.req": "Apple Silicon · macOS 13+",
"platform.android.d": "手机上的对话副驾,读懂消息、给出候选回复并填入输入框。",
"platform.android.req": "Android 11+ · arm64-v8a",
"platform.star": "如果项目对你有帮助,欢迎在 GitHub 项目主页点一个 Star,支持后续维护。",
"start.kicker": "开始使用",
"start.title": "三端获取 Jev",
"start.lead": "选择适合你的平台。安装包、使用教程和更新信息都能在 GitHub 项目主页找到。",
"start.steps": "Android 安装与设置",
"s1.t": "装包",
"s1.d": "在 GitHub 项目主页获取 APK 后安装,Android 11+,仅支持 arm64-v8a 机型。也可以用 adb:",
"s1.note": "从旧版升级后,把系统设置里的无障碍开关关掉再打开一次,服务才会重新生效。",
"s2.t": "填密钥",
"s2.d": "设置 → 接口 → 判断接口填 OpenRouter API Key,其余留空会自动继承。三路接口都能一键测连通。",
"s2.tip": "判断接口也可以选「博查 Jev」预设,当前限时免费,key 在 <a href='https://jev.bocha.cn' target='_blank' rel='noopener'>jev.bocha.cn</a> 领。",
"sch.tag": "示意",
"sch.judge": "判断接口(Jev)",
"sch.judgeV": "OpenRouter · sk-or-••••",
"sch.reply": "回复接口",
"sch.vision": "视觉接口",
"sch.inherit": "留空则继承",
"sch.test": "测连通",
"s3.t": "开权限",
"s3.d": "无障碍、悬浮窗、自启动 + 省电无限制。小米 / HyperOS 上后两项必做,否则气泡会被冻掉。",
"s3.p1": "无障碍服务",
"s3.p2": "悬浮窗",
"s3.p3": "自启动 + 省电无限制",
"start.star": "<a href='https://github.com/jev-chat/jev-chat-jarvis' target='_blank' rel='noopener' data-umami-event='go-main-repo' data-umami-event-pos='start-tutorial' data-umami-event-intent='tutorial'>查看安装教程</a> · <a href='https://github.com/jev-chat/jev-chat-jarvis' target='_blank' rel='noopener' data-umami-event='go-main-repo' data-umami-event-pos='start-community' data-umami-event-intent='community'>交流与更新:去项目主页查看</a>",
"faq.kicker": "常见问题",
"faq.title": "装之前,你可能想问",
"faq.q1": "会不会自动帮我发送?",
"faq.a1": "不会。程序只把回复填进输入框,从不自动发送,也不碰转账、红包、收款。发不发、怎么改,都是你自己决定。",
"faq.q2": "我的聊天内容会被上传吗?",
"faq.a2": "只在判断那一刻,把屏幕上近几条消息、你填的关系描述发给你自己配置的接口(开了知识库还会带上命中的笔记和联系人备注,开了历史还会带上这个人近期的聊天),之后不落盘、不进日志,作者不架设服务器、不经手。密钥只存在 App 私有空间。历史记录默认关闭,开了也只存在本机。OCR 走的是 ML Kit 中文离线识别,图片不上传。<a href='privacy.html' data-umami-event='view-privacy' data-umami-event-pos='faq'>完整隐私政策</a>",
"faq.q3": "要准备什么密钥?",
"faq.a3": "一把 OpenRouter API Key 就能跑起来:填在「判断接口」,回复和视觉接口留空会自动继承。也可以三路分开配,内置 OpenRouter、博查 Jev、TypeSafe 直连、DeepSeek 官方、通义兼容预设,各自一键测连通。判断接口选「博查 Jev」的话,当前限时免费,key 在 jev.bocha.cn 领。",
"faq.q4": "要花钱吗?",
"faq.a4": "软件本身免费开源。模型调用走你自己的 API Key,按用量在对应服务商那边结算,项目不经手任何费用。",
"faq.q5": "需要 root 吗?",
"faq.a5": "不需要 root,也不用装任何模块。它是非侵入的:只读屏幕上正在显示的对话,不改任何 App 的安装包,不走它们的接口或账号。",
"faq.q6": "支持 iOS 和电脑吗?",
"faq.a6": "暂不支持 iOS。Android、Windows、macOS 的获取入口都在<a href='https://github.com/jev-chat/jev-chat-jarvis' target='_blank' rel='noopener' data-umami-event='go-main-repo' data-umami-event-pos='faq' data-umami-event-intent='get'>GitHub 项目主页</a>;各平台独立维护。网页端还在规划中,目前没有网页版。",
"faq.q7": "悬浮球不见了,或者读不到消息?",
"faq.a7": "多半是国产 ROM 把后台冻结了。确认无障碍、悬浮窗、自启动、省电无限制四项都开着,小米 / HyperOS 尤其要开后两项;重装后悬浮窗权限会被重置,按主页向导再开一次。在聊天界面里随便点一下,通常就能恢复。",
"faq.q8": "升级之后没反应?",
"faq.a8": "把系统设置里的无障碍开关关掉再打开一次。1.3 起新增了截屏能力,服务需要重新绑定才会生效。",
"lim.title": "现在还做不到的",
"lim.lead": "先说清楚,免得装完失望。",
"lim.1": "Jev 主要用英文训练,中文场景的判断质量会波动;题目是按亲密关系里的冲突场景校准的,群聊、工作聊天这类场景准确度会下降。",
"lim.2": "群聊目前按一对一的方式分析,多人交叉对话时判断会不准。",
"lim.3": "判断给出的是概率,不是确定结论,仅供参考。",
"lim.4": "部分国产 ROM 的后台冻结策略可能让悬浮气泡短暂消失,开自启动和省电无限制可缓解。",
"lim.5": "X / Twitter 只在中文界面下验证过。",
"lim.6": "OCR 只认屏幕上看得见的部分,长消息被截断的地方读不到,偶尔有错字。",
"lim.7": "知识库按标签或标题匹配,不做语义检索,笔记要打好标签才能被命中。",
"lim.8": "安装包约 25 MB(含离线中文识别模型),只支持 arm64 机型。",
"faq.more": "没找到答案?<a href='https://github.com/jev-chat/jev-chat-jarvis/issues' target='_blank' rel='noopener' data-umami-event='click-issues' data-umami-event-pos='faq'>提一个 Issue</a>,或到<a href='https://github.com/jev-chat/jev-chat-jarvis' target='_blank' rel='noopener' data-umami-event='go-main-repo' data-umami-event-pos='faq-community' data-umami-event-intent='community'>项目主页查看交流方式</a>。",
"contact.kicker": "联系与交流",
"contact.title": "问题、建议、想接新 App,都可以来找",
"grp.t": "交流与更新",
"grp.d": "公众号和交流群入口放在 GitHub 项目主页,群二维码会在那里更新。",
"grp.link": "交流与更新:去项目主页查看",
"iss.t": "GitHub Issues",
"iss.d": "提 bug、报某个 App 读不到、提适配需求,走 Issues 好跟踪。",
"iss.link": "提一个 Issue",
"end.title": "选好平台,让下一条消息有副驾",
"end.license": "开源 MIT",
"ft.tag": "你的对话副驾。读懂对方、三条回复、一键填入。",
"ft.product": "产品",
"ft.apk": "前往 GitHub 获取 Jev",
"ft.win": "Windows 版",
"ft.mac": "macOS 版",
"ft.resources": "资源",
"ft.readme": "安装教程",
"ft.changelog": "更新日志",
"ft.privacy": "隐私政策",
"ft.community": "社区",
"ft.mp": "交流与更新",
"ft.group": "交流群 / 需求收集",
"ft.copy": "© 2026 Jev 聊天助手 · <a href='https://github.com/jev-chat/jev-chat-jarvis/blob/main/LICENSE' target='_blank' rel='noopener'>MIT 开源</a> · 可商用,须注明出处(<a href='https://github.com/jev-chat/jev-chat-jarvis/blob/main/NOTICE' target='_blank' rel='noopener'>NOTICE</a>) · <a href='privacy.html' data-umami-event='view-privacy' data-umami-event-pos='footer-legal'>隐私政策</a>",
"ft.legal": "仅供个人学习与研究使用,只处理你自己设备上、你自己有权查看的聊天,请遵守各软件许可协议与当地法律法规。",
"ui.copy": "复制",
"ui.copied": "已复制",
"ui.copyFail": "复制失败",
"a.copy": "复制安装命令"
},
"en": {
"learn.title": "Practical guides",
"learn.intro": "Setup steps and examples you can refer to when using the project.",
"learn.1.title": "Set up Jev Chat Assistant: choose a platform and generate your first reply options",
"learn.1.desc": "A practical Android setup guide covering model endpoints, accessibility, overlay permissions, costs and where chat data goes. Desktop editions have separate instructions.",
"learn.1.url": "guides/android-setup.en.html",
"learn.2.title": "How to review an AI-written reply before sending it",
"learn.2.desc": "Use a clearly fictional conversation to check captured text, uncertain interpretations, invented facts and commitments before turning an AI candidate into your own message.",
"learn.2.url": "guides/review-ai-replies.en.html",
"learn.sister": "Another open-source project by the author: <a href='https://brewreel.com/en.html' data-umami-event='click-sister' data-umami-event-project='brewreel'>BrewReel — AI-assisted promo video production</a>.",
"facts.title": "What is Jev Chat Assistant?",
"facts.desc": "Jev Chat Assistant is an open-source AI chat companion with Android, Windows and macOS versions. It helps you analyze messages, interpret intent and draft reply options. You review the wording and decide whether to send.",
"facts.use.label": "Who it is for",
"facts.use": "Individuals who want help choosing words, interpreting conversational tone or drafting a reply. Its assessments are suggestions, not certain conclusions.",
"facts.scope.label": "Platforms and feature scope",
"facts.scope": "Each platform is maintained separately. Accessibility capture, ML Kit OCR, permissions and chat-app compatibility on this page describe the Android version. See each desktop project for its own capabilities.",
"facts.cost.label": "Costs and requirements",
"facts.cost": "The Android project is free and open source under MIT. Model calls use your own API key and may incur provider charges. Desktop licenses and requirements are documented in their respective projects.",
"facts.source": "Project publisher: <a href='https://github.com/Finderchangchang' rel='noopener' target='_blank'>Finderchangchang</a>. Find packages, platform documentation and updates on the <a href='https://github.com/jev-chat/jev-chat-jarvis' target='_blank' rel='noopener' data-umami-event='go-main-repo' data-umami-event-pos='facts' data-umami-event-intent='get'>GitHub project homepage</a>.",
"facts.text": "Project facts (text)",
"meta.title": "Jev Chat Assistant — Open-source AI chat companion for Android, Windows and macOS",
"meta.desc": "Jev Chat Assistant is available for Android, Windows, and macOS. It reads visible chats, judges intent and risk, drafts replies, and fills the one you choose. Sending stays manual. Find installers, guides, and community links on GitHub.",
"meta.ogTitle": "Jev Chat Assistant — read them first, then reply",
"meta.ogDesc": "Reads the other person, suggests three replies, fills one in. Open source (MIT) for Android, Windows and macOS. It never sends for you.",
"meta.ogAlt": "Jev Chat Assistant: the overlay shows a danger level, the other person's true intent and three suggested replies",
"meta.locale": "en_US",
"meta.localeAlt": "zh_CN",
"skip": "Skip to main content",
"a.brand": "Jev Chat Assistant home",
"brand.name": "Jev Chat Assistant",
"a.nav": "Main",
"nav.read": "How it reads",
"nav.how": "How it works",
"nav.privacy": "Your data",
"nav.apps": "Supported apps",
"nav.start": "Get started",
"nav.faq": "FAQ",
"nav.dl": "Get Jev on GitHub",
"a.lang": "切换到中文",
"a.theme": "Toggle light and dark theme",
"a.menuOpen": "Open menu",
"a.menuClose": "Close menu",
"hero.eyebrow": "Open source · MIT · Android / Windows / macOS",
"hero.title": "Read them first,<br><span class='hl'>then reply</span>",
"hero.sub": "Jev Chat Assistant is your chat copilot. It reads visible chats, judges intent and danger level, drafts replies, and fills the one you pick into the input box. Whether to send is up to you. Available for Android, Windows, and macOS.",
"hero.dl": "Get Jev on GitHub",
"hero.meta": "Installers, setup guides, and platform links are on the GitHub project page. Choose the platform that fits you.",
"hero.note": "It only fills the reply into the input box. It never sends on its own and never touches transfers, red packets or payments. <a href='#privacy'>Where does my chat text go?</a>",
"hero.works": "Works in",
"app.qq": "QQ",
"app.x": "X (Twitter)",
"app.lark": "Feishu / Lark (OCR)",
"app.any": "Any app (manual OCR)",
"app.web": "Web (planned)",
"demo.aria": "Demo: how the Jev overlay helps you answer one message",
"demo.sr": "Demo animation: the other person writes “You just don't get me.” The Jev overlay rates it danger 8/9, high risk; their true intent is checking whether you care, so it suggests acknowledging the feeling and holding off on substance. It then shows three ranked replies. Tapping Fill on the first one puts it in the input box; you press send yourself.",
"demo.chatName": "Jamie",
"demo.m1": "Playing ball with friends this weekend",
"demo.m2": "You weren't around last weekend either",
"demo.m3": "You just don't get me",
"demo.placeholder": "Message",
"demo.panelTitle": "Jev analysis",
"demo.kb": "No notes used",
"demo.badge": "Danger 8/9",
"demo.word": "High risk",
"demo.intent": "True intent: see if you care",
"demo.conf": "Confidence 82%",
"demo.bits": "Wants your care · Acknowledge · No substance yet",
"demo.listLabel": "Suggested replies (ranked by Jev)",
"demo.gen": "Generating…",
"demo.r1": "I didn't think about how you felt. Will you tell me?",
"demo.r2": "Sorry, that came out wrong",
"demo.r3": "Then tell me what I'm not getting",
"demo.copy": "Copy",
"demo.fill": "Fill",
"demo.s1": "Message in",
"demo.s2": "Read intent",
"demo.s3": "Three replies",
"demo.s4": "You send",
"demo.n1": "They just wrote “You just don't get me.” The floating bubble lights up.",
"demo.n2": "Jev's read: danger 8/9, they want to know you care. Acknowledge the feeling before you argue.",
"demo.n3": "A text model drafts three replies; Jev ranks them by fit and shows each share.",
"demo.n4": "Tap Fill and the reply lands in the input box. <b>The send button stays untouched</b>: whether and how to send is your call.",
"demo.cap": "Demo animation with a simulated chat. The overlay is recreated from the app's source code; the app's own interface is in Chinese.",
"demo.pause": "Pause demo",
"demo.play": "Play demo",
"a.demoSteps": "Demo steps; pick one to stop there",
"read.kicker": "Read first",
"read.title": "The same “k” can mean opposite things",
"read.lead": "Most assistants hand you a paragraph right away. Jev first works out what the message actually is, then decides how to answer.",
"read.ctx": "Before",
"read.hm": "k",
"read.intentK": "True intent",
"read.a.me": "Working late tonight, home a bit later",
"read.a.lvl": "Danger 2/9",
"read.a.word": "Safe",
"read.a.intent": "just chatting",
"read.a.needs": "Needs: nothing",
"read.b.me": "I forgot our anniversary. I'll make it up tomorrow",
"read.b.lvl": "Danger 7/9",
"read.b.word": "Risky",
"read.b.intent": "checking whether you care",
"read.b.needs": "Needs an apology · Apologize first",
"read.note": "Demo scenario; the chats are simulated.",
"jq.title": "Jev's decision model doesn't write. It picks from fixed options.",
"jq.lead": "One request asks seven questions: true intent, danger level (0–9), what they need, whether to reply with substance now, what to do next and more. Every answer comes with probabilities and a confidence score, in about a second. A separate text model writes the replies.",
"jq.choice": "Choice",
"jq.score": "Score",
"jq.yesno": "Yes / no",
"jq.i1.n": "True intent",
"jq.i1.o": "Checking you care · Venting · Asking for action · Wants an explanation · Casual chat · Topic closed",
"jq.i2.n": "Danger level",
"jq.i2.o": "0 is light chat, 9 is an open rupture; the overlay labels it safe, careful, risky or high risk",
"jq.i3.n": "What they need",
"jq.i3.o": "An apology · Action · An explanation · Your care · Nothing",
"jq.i4.n": "Reply with substance now?",
"jq.i4.o": "Should the next line carry real content; the overlay shows “give substance” or “hold off on substance”",
"jq.i5.n": "What to do next",
"jq.i5.o": "Check the history · Apologize · Commit · Explain · Acknowledge · Say less · Make a plan",
"jq.i6.n": "Any subtext?",
"jq.i6.o": "Meant literally, or a test, sarcasm or a hint",
"jq.i7.n": "Tension resolved?",
"jq.i7.o": "They accepted and are joking again, or still waiting on you",
"cmp.title": "Compared with other approaches",
"cmp.lead": "They all “help you reply.” The differences: how much they can read, whether they judge first, and who presses send.",
"cmp.h0": "Capability",
"cmp.h1": "Jev Chat Assistant",
"cmp.h2": "Keyboard or in-app AI replies",
"cmp.h3": "General chatbots (copy and paste)",
"cmp.h4": "Auto-reply bots",
"cmp.r1": "Judges before writing",
"cmp.r2": "Reads any chat app",
"cmp.r3": "Non-invasive, no client changes",
"cmp.r4": "You press send",
"cmp.r5": "Notes + contact context",
"cmp.r6": "Pick your own API and model",
"cmp.r7": "Open source and free",
"cmp.yes": "Yes",
"cmp.no": "No",
"cmp.part": "Partly",
"cmp.foot": "Based on the common, publicly available forms of each approach, not on any specific product.",
"read.next": "Next: how it works",
"how.kicker": "How it works",
"how.title": "From a message on screen to a line in your input box",
"how.lead": "Only these steps in between. Solid steps run on your phone; dashed ones go to the endpoints you configure yourself.",
"how.local": "On your phone",
"how.remote": "Sent to your configured API",
"how.n1.t": "Read the screen",
"how.n1.d": "The accessibility service reads the open chat; if the text isn't there, it takes a screenshot and runs offline OCR",
"how.n2.t": "Jev judges",
"how.n2.d": "Intent · danger level 0–9 · reply with substance now or not",
"how.n3.t": "A text model drafts",
"how.n3.d": "Three casual replies: a safe follow-up, one with an action or commitment, and a short response. DeepSeek via OpenRouter by default",
"how.n4.t": "Jev ranks",
"how.n4.d": "Reorders them by fit and shows probabilities",
"how.n5.t": "Overlay shows",
"how.n5.d": "The read plus three replies, right next to the chat",
"how.n6.t": "Copy / fill",
"how.n6.d": "<strong>Never sends.</strong> You press send.",
"how.f1.t": "Notes and contact context",
"how.f1.d": "Keep notes and contact profiles (relationship, aliases, notes) on the phone. Pinned notes go with every request; the rest are picked up when their tags or titles match the current chat. Turn on history and the person's recent messages come along too. Replies are prompted to stay consistent with your notes and not to make up facts outside them. A contact can be linked across apps.",
"how.f2.t": "OCR when text is missing",
"how.f2.d": "When the accessibility tree has no message text, it takes a screenshot and runs ML Kit's offline Chinese OCR. No image is uploaded and no Google services are needed. In any app you can also trigger a one-off screen OCR from the floating-bubble menu.",
"how.f3.t": "Bring your own endpoints",
"how.f3.d": "Set the URL, key and model separately for the judge, reply and vision endpoints. Presets for OpenRouter, Bocha Jev, TypeSafe direct, DeepSeek official and Qwen-compatible APIs, each with a one-tap connection test. One OpenRouter key is enough to start.",
"how.f4.t": "One core, many apps",
"how.f4.d": "Judging, drafting, ranking and filling share one core. Supporting a new app takes one adapter of a few dozen lines; everything else is reused.",
"how.next": "Next: where your chat text goes",
"priv.kicker": "Your data",
"priv.title": "It reads your chats, so here is exactly what happens",
"priv.lead": "This is not a “collects nothing” app. Chat text does go to a model endpoint, but you are the one who sets that address. Everything else stays on your phone.",
"priv.d.phone": "Your phone",
"priv.d.p1": "Reads the chat on screen",
"priv.d.p2": "Screenshots OCR'd on device, never uploaded",
"priv.d.p3": "Keys, notes and history (off by default) stay local",
"priv.d.when": "Only when it analyzes",
"priv.d.what": "The last 10 messages of this chat + your relationship note; matched notes and this person's history only if you turned them on",
"priv.d.api": "The model endpoint you configured",
"priv.d.apiList": "OpenRouter · Bocha Jev · TypeSafe · DeepSeek · Qwen · any OpenAI-compatible URL",
"priv.d.none": "The author's server",
"priv.d.noneD": "Not in the loop: the author runs no server and never handles your chats",
"priv.q1": "What it reads",
"priv.a1": "Only the conversation on screen, through Android's accessibility service. It doesn't modify any app's package, doesn't use their APIs or accounts, and doesn't read databases. You can limit it to an allowlist of chats, or turn off auto-analysis so it only reads when you tap.",
"priv.q2": "Where it goes",
"priv.a2": "Only at the moment of judging, and only to the endpoint you configured. The author runs no server and never handles your chats. What the provider does with the data is governed by its own privacy policy.",
"priv.q3": "Where it's stored",
"priv.a3": "Keys live only in the app's private storage. Chat text isn't written to disk or logs after sending. History is off by default and stays on the phone if you turn it on. OCR uses ML Kit's offline Chinese model; images are never uploaded.",
"priv.q4": "How to delete",
"priv.a4": "In Settings, “清空知识库与历史” (clear notes and history) removes them in one tap. Uninstalling wipes everything, including keys and settings. There is no cloud backup.",
"priv.q5": "What it never does",
"priv.a5": "It never sends messages on its own, never touches transfers, red packets or payments, and has no ads and no third-party analytics SDKs.",
"priv.cta": "Full privacy policy (Chinese, with an English summary)",
"priv.src": "Every point can be checked against the source code on GitHub.",
"apps.kicker": "Supported apps",
"apps.title": "Where it works today",
"apps.lead": "Based on real-device tests; version numbers are the ones tested.",
"apps.h1": "App",
"apps.h2": "Status",
"apps.h3": "Notes",
"apps.qq": "QQ Android",
"apps.qq.s": "Full flow",
"apps.qq.d": "Tested on 9.3.50",
"apps.x": "X / Twitter DMs",
"apps.x.s": "Full flow",
"apps.x.d": "Tested on 12.25, Chinese interface",
"apps.lark": "Feishu / Lark",
"apps.lark.s": "OCR fallback",
"apps.lark.d": "Verified on a real device; message text via offline OCR",
"apps.any": "Any other app",
"apps.any.s": "Manual",
"apps.any.d": "One-off screen OCR from the bubble menu",
"apps.web": "Web",
"apps.web.s": "Planned",
"apps.web.d": "No web version yet",
"apps.ios": "iOS",
"apps.ios.s": "Not yet",
"apps.ios.d": "—",
"apps.win.d": "Captures your own chat window and runs OCR locally. No client changes, no database reads.",
"apps.win.req": "Windows 10 1903+ / 11",
"apps.mac.d": "Watches the screen and uses a small local model to judge intent and risk level, then drafts replies in a chosen style and ranks them locally.",
"apps.mac.req": "Apple Silicon · macOS 13+",
"platform.android.d": "A chat copilot on your phone: reads messages, drafts replies, and fills the one you pick into the input box.",
"platform.android.req": "Android 11+ · arm64-v8a",
"platform.star": "If Jev helps you, consider starring the GitHub project to support its maintenance.",
"start.kicker": "Get started",
"start.title": "Get Jev for your platform",
"start.lead": "Choose the platform that fits you. Find installers, setup guides, and updates on the GitHub project page.",
"start.steps": "Android setup",
"s1.t": "Install",
"s1.d": "Get the APK from the GitHub project page and install it. Android 11+, arm64-v8a devices only. Or use adb:",
"s1.note": "After upgrading from an older version, switch accessibility off and on again in system settings so the service rebinds.",
"s2.t": "Add a key",
"s2.d": "Settings → 接口 (Endpoints) → put an OpenRouter API key in the judge endpoint. Leave the others blank and they inherit it. Each endpoint has a one-tap connection test.",
"s2.tip": "The judge endpoint also has a “Bocha Jev” preset, free for a limited time; get a key at <a href='https://jev.bocha.cn' target='_blank' rel='noopener'>jev.bocha.cn</a>.",
"sch.tag": "Sketch",
"sch.judge": "Judge endpoint (Jev)",
"sch.judgeV": "OpenRouter · sk-or-••••",
"sch.reply": "Reply endpoint",
"sch.vision": "Vision endpoint",
"sch.inherit": "Blank = inherit",
"sch.test": "Test",
"s3.t": "Grant permissions",
"s3.d": "Accessibility, display over other apps, autostart and unrestricted battery. On Xiaomi / HyperOS the last two are a must, or the bubble gets frozen.",
"s3.p1": "Accessibility service",
"s3.p2": "Display over other apps",
"s3.p3": "Autostart + unrestricted battery",
"start.star": "<a href='https://github.com/jev-chat/jev-chat-jarvis' target='_blank' rel='noopener' data-umami-event='go-main-repo' data-umami-event-pos='start-tutorial' data-umami-event-intent='tutorial'>Setup guide</a> · <a href='https://github.com/jev-chat/jev-chat-jarvis' target='_blank' rel='noopener' data-umami-event='go-main-repo' data-umami-event-pos='start-community' data-umami-event-intent='community'>Community and updates on GitHub</a>",
"faq.kicker": "FAQ",
"faq.title": "Before you install",
"faq.q1": "Will it send messages for me?",
"faq.a1": "No. It only fills the reply into the input box. It never sends anything on its own and never touches transfers, red packets or payments. Whether to send, and what to change first, is your call.",
"faq.q2": "Is my chat uploaded?",
"faq.a2": "Only at the moment of judging: the recent messages on screen and your relationship note go to the endpoint you configured (plus matched notes and contact notes if the knowledge base is on, and this person's recent history if history is on). Nothing is written to disk or logs afterwards, and the author runs no server and never handles it. Keys live only in the app's private storage. History is off by default and stays on the phone if you turn it on. OCR uses ML Kit's offline Chinese model; images are never uploaded. <a href='privacy.html#en-summary' data-umami-event='view-privacy' data-umami-event-pos='faq'>Full privacy policy (Chinese, with an English summary)</a>",
"faq.q3": "Which API keys do I need?",
"faq.a3": "One OpenRouter API key is enough: put it in the judge endpoint and leave the reply and vision endpoints blank to inherit it. You can also set all three separately, with presets for OpenRouter, Bocha Jev, TypeSafe direct, DeepSeek official and Qwen-compatible APIs, each with a one-tap connection test. The Bocha Jev preset for the judge endpoint is free for a limited time; keys are at jev.bocha.cn.",
"faq.q4": "Does it cost anything?",
"faq.a4": "The app is free and open source. Model calls use your own API keys and are billed by the provider for what you use; the project never handles any money.",
"faq.q5": "Do I need root?",
"faq.a5": "No root and no modules. It is non-invasive: it only reads the conversation on screen, doesn't modify any app's package, and doesn't use their APIs or accounts.",
"faq.q6": "iOS or desktop?",
"faq.a6": "No iOS for now. The <a href='https://github.com/jev-chat/jev-chat-jarvis' target='_blank' rel='noopener' data-umami-event='go-main-repo' data-umami-event-pos='faq' data-umami-event-intent='get'>GitHub project page</a> lists Android, Windows, and macOS; each platform is maintained independently. A web version is planned but doesn't exist yet.",
"faq.q7": "The bubble disappeared, or it can't read messages?",
"faq.a7": "Usually the Android skin froze the app in the background. Check that accessibility, display over other apps, autostart and unrestricted battery are all on, especially the last two on Xiaomi / HyperOS. Reinstalling resets the overlay permission, so turn it on again from the home-screen guide. Tapping anywhere in the chat usually brings it back.",
"faq.q8": "Nothing happens after an upgrade?",
"faq.a8": "Switch accessibility off and on again in system settings. Version 1.3 added screen capture, and the service has to rebind before it works.",
"lim.title": "Known limitations",
"lim.lead": "Worth knowing before you install.",
"lim.1": "Jev was trained mainly on English, so judgments on Chinese chats vary. The questions are calibrated on conflicts in close relationships; group and work chats are less accurate.",
"lim.2": "Group chats are analyzed as one-to-one, so crossed conversations throw it off.",
"lim.3": "Judgments are probabilities, not verdicts. Treat them as a reference.",
"lim.4": "Some Android skins freeze background apps, so the bubble can briefly disappear. Autostart and unrestricted battery help.",
"lim.5": "X / Twitter has only been verified with the Chinese interface.",
"lim.6": "OCR only sees what's on screen: cut-off parts of long messages are missed, and it sometimes misreads characters.",
"lim.7": "Notes are matched by tag or title, not by meaning, so tag them well.",
"lim.8": "The APK is about 25 MB (it bundles the offline Chinese OCR model) and runs on arm64 devices only.",
"faq.more": "Didn't find your answer? <a href='https://github.com/jev-chat/jev-chat-jarvis/issues' target='_blank' rel='noopener' data-umami-event='click-issues' data-umami-event-pos='faq'>Open an issue</a> or <a href='https://github.com/jev-chat/jev-chat-jarvis' target='_blank' rel='noopener' data-umami-event='go-main-repo' data-umami-event-pos='faq-community' data-umami-event-intent='community'>find community options on GitHub</a>.",
"contact.kicker": "Contact",
"contact.title": "Questions, ideas, or an app you want supported",
"grp.t": "Community and updates",
"grp.d": "Find the Chinese official account and group chat on the GitHub project page, where group QR codes are updated.",
"grp.link": "Community and updates on GitHub",
"iss.t": "GitHub Issues",
"iss.d": "Bugs, an app it can't read, requests for a new app: Issues keep them trackable.",
"iss.link": "Open an issue",
"end.title": "Choose your platform for your next chat copilot",
"end.license": "Open source, MIT",
"ft.tag": "Your chat copilot. Reads the other person, suggests three replies, fills one in.",
"ft.product": "Product",
"ft.apk": "Get Jev on GitHub",
"ft.win": "Windows version",
"ft.mac": "macOS version",
"ft.resources": "Resources",
"ft.readme": "Setup guide (Chinese)",
"ft.changelog": "Changelog (Chinese)",
"ft.privacy": "Privacy policy (Chinese)",
"ft.community": "Community",
"ft.mp": "Community and updates",
"ft.group": "Group chat / requests",
"ft.copy": "© 2026 Jev Chat Assistant · <a href='https://github.com/jev-chat/jev-chat-jarvis/blob/main/LICENSE' target='_blank' rel='noopener'>MIT</a> open source · commercial use allowed with attribution (<a href='https://github.com/jev-chat/jev-chat-jarvis/blob/main/NOTICE' target='_blank' rel='noopener'>NOTICE</a>) · <a href='privacy.html#en-summary' data-umami-event='view-privacy' data-umami-event-pos='footer-legal'>Privacy policy (Chinese)</a>",
"ft.legal": "For personal study and research only. Use it only on your own device, with chats you have the right to view, and follow each app's license terms and local laws.",
"ui.copy": "Copy",
"ui.copied": "Copied",
"ui.copyFail": "Copy failed",
"a.copy": "Copy the install command"
}
};