Oregami
Repositories/oxedyne/daimond

oxedyne/daimond/www/i18n/zh-Hans.js

217 KiB, 3 runs

created by r2519314175:1335, which is this file's identity for as long as the history lasts, whatever it is later renamed to

download · who wrote it · its history

1/* i18n/zh-Hans.js — 简体中文 (Simplified Chinese, mainland conventions).
2 *
3 * Machine-drafted from `en.js`, pending native review. Keys are the baseline's
4 * and are never renamed; a key omitted here falls back to English.
5 *
6 * Punctuation: full-width 。,、()“” throughout.
7 * Product nouns are left in the Latin script on purpose: Daimond, Diamond,
8 * Daimond Pro, Hands, Stripe. A "Diamond" is a named object in this app.
9 */
10(function () {
11 'use strict';
12 if (!window.DaimondI18n) return;
13
14 window.DaimondI18n.register('zh-Hans', {
15
16 // ── 通用词 ─────────────────────────────────────────────────
17 'common.close': '关闭',
18 'common.close_named': '关闭{name}',
19 'admin.close_drawer': '关闭管理面板',
20 'rail.close_rail': '关闭 Diamonds 面板',
21 'sheet.close': '关闭工作表',
22 'pal.close': '关闭“前往”框',
23 'common.dismiss': '关闭',
24 'agents.read': '阅读',
25 'agents.read_help': '在文档面板中把这个智能体的记录当作文件打开',
26 'agents.read_nothing': '这个智能体还没有说过任何话。',
27 'common.close_panel': '关闭面板',
28 'common.refresh': '刷新',
29 'common.copy': '复制',
30 'common.cancel': '取消',
31 'common.save': '保存',
32
33 // 复制标识符。`copy.aria` 把每个 `what_` 包起来,读屏听到的是
34 // “复制构建 ID”,而不是五个按钮都只叫“复制”。每个片段都以中文起头,
35 // 这样“复制”后面不会直接贴上一串西文。
36 'copy.aria': '复制{what}',
37 'copy.failed': '无法复制',
38 'copy.nothing': '没有可复制的内容',
39 'copy.what_build': '构建 ID',
40 'copy.what_build_n': '构建 ID {id}',
41 'copy.what_fingerprint': '你的账户指纹',
42 'copy.what_device': '设备 {name} 的 ID',
43 'copy.what_model': '模型 ID {id}',
44 'copy.what_default_model': '默认模型 ID',
45 'copy.what_handle': '你的公开名称',
46
47 // ── 顶栏 ───────────────────────────────────────────────────
48 'topbar.menu': '菜单',
49 'topbar.open_menu': '打开菜单',
50 'topbar.brand': 'Daimond,daimond.app 主页',
51 'topbar.made_by': '由 Oxedyne 制作',
52 'topbar.made_with_ai': '代码主要由 AI 编写',
53 'topbar.up_to_date': 'Daimond 已是最新版本',
54 'topbar.about': '关于 Daimond',
55 'topbar.guide': '打开使用指南',
56 'topbar.guide_short': '使用指南',
57 'topbar.appearance': '外观与布局',
58
59 // ── 关于 ───────────────────────────────────────────────────
60 // `about.what` 就是指南的开篇一段:它已经把话说清楚了,再写一版只会多一处
61 // 要跟着维护的文字。
62 'about.title': '关于 Daimond',
63 'about.splash_alt': '一个身影在夜空中飞向一颗钻石,下方是行星的弧线。',
64 'about.what': 'Daimond 是一个在你浏览器里运行的 AI 智能体工作区。没有服务器账户,也没有东西要下载。你的聊天、密钥和文件都留在这台设备上。',
65 'about.verify': '用公开源码核对这个构建',
66
67 // ── 面板名称 ───────────────────────────────────────────────
68 // 要短:它们排在一行标签里,也排在手机的底部标签栏里。
69 'panel.rail': 'Diamonds',
70 'panel.ai': 'AI',
71 'panel.web': '网页',
72 'panel.doc': '文档',
73 'panel.preview': '预览',
74 'panel.msg': '邮件消息',
75 'panel.tools': '工具',
76 'panel.compose': '撰写',
77 'panel.graph': '关系图',
78 'panel.agents': '智能体',
79 'panel.mail': '邮件',
80 'panel.work': '工作区',
81 'panel.spend': '支出',
82 'panel.term': '终端',
83
84 // ── 标签行 ─────────────────────────────────────────────────
85 // {name} 是上面 `panel.*` 里的面板名称。
86 'chip.dock_full': '停靠区已满。在“外观”里选一个更大的分格,或者关掉一个面板。',
87 'chip.show': '显示{name}',
88 'chip.close': '关闭{name}',
89 'chip.open': '打开{name}',
90 'chip.open_instead': '打开{name},取代聊天旁边的面板',
91 'chip.more.one': '还有 {n} 个',
92 'chip.more.other': '还有 {n} 个',
93
94 // ── 面板总览与命令面板 ─────────────────────────────────────
95 'gallery.title': '面板',
96 'pal.title': '前往',
97 'pal.placeholder': '前往某个面板,或某项设置…',
98 'pal.results': '结果',
99 'pal.nothing': '没有匹配的结果。',
100 'pal.kind_panel': '面板',
101 'pal.kind_theme': '主题',
102 'pal.kind_size': '字号',
103 'pal.kind_dock': '停靠',
104 'pal.kind_lang': '语言',
105 'pal.kind_ccy': '货币',
106 'pal.hint_open': '已打开',
107 'pal.hint_full': '已满',
108 'pal.hint_current': '当前',
109
110 // ── 侧栏 ───────────────────────────────────────────────────
111 'rail.diamonds': 'Diamonds',
112 'rail.diamonds_help': '从一场对话里提炼出的、可以反复使用的方法。',
113 'rail.new_diamond': '新建 Diamond',
114 'rail.unnamed_diamond': '未命名的 Diamond',
115 'rail.chats': '聊天',
116 'rail.chats_help': '原始的对话。Diamond 就是从中切出来的。',
117 'rail.new_chat': '新建聊天',
118 'rail.chats_menu': '更多',
119 'rail.delete_all_chats': '删除所有聊天',
120 'layout.handle': '拖动调整大小,双击复位',
121
122 // ── 账户与设置 ─────────────────────────────────────────────
123 'admin.identity': '你的 Daimond 身份',
124 'admin.settings': '设置',
125 'admin.local_identity': '本地身份',
126 'admin.account_help': '你的账户。点击可退出登录、管理密码短语和备份。',
127 'admin.locked': '已锁定',
128 'admin.locked_help': '已锁定。输入密码短语即可解锁。',
129 'admin.no_account': '没有账户',
130 'admin.no_account_help': '你的 API 密钥以未加密的形式保存。点击创建账户,把它加密起来。',
131 'admin.no_crypto_help': '这个浏览器没有 WebCrypto,所以密钥无法在这里加密。',
132 'admin.version_history': '版本历史',
133
134 // ── 模型与提供商密钥 ───────────────────────────────────────
135 'models.lead': '你用到的每一家提供商配一个密钥。新的聊天和 Diamond 都从默认模型开始;任何模型也可以单独指定给某一次聊天。',
136 'models.add': '+ 添加提供商',
137 'models.provider': '提供商',
138 'models.choose_provider': '选择提供商…',
139 'models.custom_provider': '自定义(高级)…',
140 'models.base_url': '基础 URL',
141 'models.api_key': 'API 密钥',
142 'models.api_key_ph': '粘贴你的 API 密钥',
143 'models.default_model': '默认模型',
144 'models.choose_provider_first': '请先选择提供商…',
145 'models.model_id_ph': '模型 ID(手动输入)',
146 'models.default_note': '新的智能体都用它,除非你另外为它指定。',
147 'models.save_start': '保存并开始',
148 'models.privacy': '<strong>一切都留在这台设备上。</strong>你的密钥、聊天和文件只存在于这个浏览器里,什么都不会发给我们。',
149
150 // 模型面板:每家提供商一行,展开后是它能跑的模型。
151 // 厂商名字(Groq、Fireworks AI)是专有名词,不在这里;
152 // 下面这两个是 Daimond 给自己起的名字。
153 'models.credits_row': 'Daimond 额度',
154 'models.custom_provider_name': '自定义提供商',
155 // 网关没有说出临时密钥背后是哪一家公司时的替代说法。它会被填进为“品牌名”
156 // 准备的 {provider} 位置里,所以要读起来像一个名字。
157 'models.the_provider': '你的提供商',
158 'models.empty': '还没有提供商。添加一个,给 Daimond 一个可以用来思考的模型。',
159 'models.balance_left': '还剩 {amount}',
160 'models.via': '经由 {provider}',
161 'models.count.one': '{n} 个模型',
162 'models.count.other': '{n} 个模型',
163 'models.row_paid_help': '这些模型花的是你的 Daimond 余额。你的浏览器用为你签发的密钥直接调用 {provider},没有任何东西经过 Daimond。',
164 'models.row_own_help': '这些模型记在你自己的 {provider} 账户上,不会动你的 Daimond 余额。',
165 // 每行关于密钥的说明。前面的符号由代码加上。
166 'models.sealed': '已封存',
167 'models.key_set': '已设密钥',
168 'models.no_key': '无密钥',
169 'models.connecting': '连接中…',
170 'models.no_credits': '没有额度',
171 'models.offline': '账户服务连不上',
172 'models.could_not_connect': '连不上',
173 'models.unlock_to_use': '解锁后可用',
174 'models.sealed_unlock': '已封存,解锁后可用',
175 'models.top_up_to_use': '充值后可用',
176 'models.top_up': '给额度充值 →',
177 'models.ask_provider': '问问这家提供商能跑什么',
178 'models.ask_provider_again': '再问一次这家提供商',
179 'models.list_asked': '{when} 列出的。',
180 'models.list_never': '从没问过。',
181 'models.add_key_first': '请先添加密钥',
182 'models.asking': '询问中…',
183 // 列表里的一个模型。
184 'models.econ_credits': '额度',
185 'models.econ_own': '你的密钥',
186 'models.favourites': '常用模型',
187 'models.is_default': '默认',
188 'models.model_is_default': '新的聊天和 Diamond 都从这个模型开始。',
189 'models.model_make_default': '让新的聊天和 Diamond 都从这个模型开始。',
190 'models.model_paid': '经由 {provider},花你的 Daimond 余额。',
191 'models.model_own': '记在你自己的 {provider} 账户上。',
192 'models.model_twin': '另一家提供商也有同名的模型。这个是 {provider} 的。',
193 'models.remove': '移除 {provider}',
194 'models.starts_on': '新聊天从这个模型开始:{model}',
195 'models.no_default': '还没有默认模型。给上面的一个加星。',
196 'models.none_yet': '还没有提供商',
197 'models.err_refused': '账户服务拒绝了(HTTP {status})。',
198 'models.err_bad_key': '账户服务发来一个 Daimond 用不了的密钥。',
199 'models.err_no_key': '那家提供商还没有密钥。',
200 'models.err_key_refused': '提供商拒绝了这个密钥(HTTP {status})。',
201 // 一把提供商密钥上还剩多少,以及这个数是怎么来的。手填的那一行故意不叫
202 // “余额”:它是用户自己报的数,减去估算出来的花费。
203 'models.credit_auto': '这把密钥还剩 {amount},是提供商在 {when} 说的。',
204 'models.credit_manual': '还剩 {amount}。你在 {when} 报的 {base},减去此后估算花掉的 {spent}。',
205 'models.credit_unknown': '这把密钥还剩多少,无从得知。',
206 'models.credit_check': '问问还剩多少',
207 'models.credit_recheck': '再问一次',
208 'models.credit_probe_failed': '{provider} 不肯说还剩多少。那就直接告诉 Daimond。',
209 'models.credit_base_ph': '例如 12.50',
210 'models.credit_base_label': '这把密钥现在有多少,以美元计',
211 'models.credit_base_set': '我现在有这么多',
212 'models.credit_base_update': '更新我填的数',
213 'models.credit_base_bad': '这不是一个金额。请输入美元数字。',
214 // 问来的数目,减去此后这台设备亲眼看着花掉的钱。
215 'models.credit_auto_spent': '还剩 {amount}。提供商在 {when} 说的是 {base},减去此后在这里花掉的约 {spent}。',
216 // 数字有多旧。没有这一句,停住不动的数字和最新的数字看着一模一样。
217 'models.age_now': '刚刚查过。',
218 'models.age_mins.one': '{n} 分钟前查过。',
219 'models.age_mins.other': '{n} 分钟前查过。',
220 'models.age_hours.one': '{n} 小时前查过。',
221 'models.age_hours.other': '{n} 小时前查过。',
222 'models.age_days.one': '{n} 天前查过。',
223 'models.age_days.other': '{n} 天前查过。',
224 'models.age_failed': '上次查询没有回应,这个数字从那以后就没有动过。',
225
226 // ── 搜索 ───────────────────────────────────────────────────
227 // “搜索引擎”指的是所用的那家服务,不是搜索这个动作。
228 // 引擎名字(Brave、Exa、Tavily、Serper)是专有名词,不翻译。
229 // {engine} 里装的就是那个名字,所以按本文件的惯例,拉丁字母两侧留一个空格。
230 'search.head': '搜索',
231 'search.engine': '搜索引擎',
232 // 免费的是每月的一份用量,不是密钥本身;超出的部分由服务方向用户收费。
233 // 这里刻意不写数字,也不点名任何一家引擎。
234 'search.engine_note': 'Daimond 用哪家服务来搜索。多数服务只要你自带密钥,每月都有一定的免费用量。',
235 'search.credits': 'Daimond 额度',
236 'search.key': 'API 密钥',
237 'search.key_note': '留在这台设备上,用你的密码短语封存,只随它付账的那次搜索一起发出。',
238 'search.no_key': '为“{engine}”添加一个密钥,或者改用 Daimond 额度。',
239 'search.kind_web': '网页',
240 'search.kind_news': '新闻',
241 'search.kind_academic': '学术',
242 'search.refused_serper': '“{engine}”只能用你自己的密钥。',
243 // {n} 到手时已经按当地习惯分好位,不要再自己加分隔符。末尾那句保留:
244 // 这是别家的价格,早晚会过时。
245 'search.free_month': '{engine}:每月大约 {n} 次免费,以我们上次查看时为准。',
246
247 // ── 额度、加油包与 Pro ─────────────────────────────────────
248 // 凡是会扣用户钱的地方,都要把美元说清楚。见 `billing.*`。
249 'credits.lead': '买点额度,Daimond 就替你跑模型,不用你自己管一把提供商密钥。没有订阅。买到的额度一直是你的,除非你打开自动充值,否则不会再扣费。',
250 'credits.balance': '余额:{amount}',
251 'credits.balance_unavailable': '暂时无法获取余额。',
252 'credits.see_spend': '看看钱花到哪儿了 →',
253 'credits.offline': 'Daimond 账户服务连不上,所以用不了额度。你自己的提供商密钥仍然可用。',
254 'credits.need_account': '有了额度,不用提供商密钥也能用 Daimond。额度需要一个账户:一个只留在这台设备上的密码短语。',
255 'credits.need_passcode': '积分需要账户,而封测期间本网关不开通新账户。请在上方兑换邀请码。',
256 'credits.create_account': '创建账户',
257 'credits.added': '额度已到账',
258 'credits.now': '你的余额现在是 {amount}。',
259 'pro.owned': '<b>你已拥有 Daimond Pro。</b>跨设备同步、云端存储和 Email 都已开启。没有订阅,也不会续费。',
260 'pro.offer': '<p><b>Daimond Pro,五年。</b>付一次钱。Pro 会开启跨设备同步、云端存储和 Email,你自己的邮件就能在工作区里收发。</p>',
261 'pro.fine': '没有订阅,也不会续费。按量计费的部分(推理、流量、超出免费额度的存储)都从额度里扣,无论你是否拥有 Pro。',
262 'pro.buy': '购买五年 Pro',
263 'pro.buy_priced': '以 {price} 购买五年 Pro',
264 'billing.usd_note': '扣费以美元结算;换算后的金额只是近似值。',
265 'billing.rates_as_of': '汇率取自 {date},仅为近似值。',
266
267 // ── The closed beta and its passcode ───────────────────────
268 'beta.title': '封闭测试',
269 'beta.title_unavailable': '没有创建账户',
270 'beta.title_plain': '测试通行码',
271 'beta.lead_beta_only': '这台服务器还没有开放新账户。关闭的只是账户,不是应用:Daimond 免费,在你的浏览器里运行,用你自己的供应商密钥完全不需要账户也能用。账户加上的是额度和代你购买的推理,所以你不需要自己的密钥。设备间同步和 Daimond 邮件属于 Pro,需要另外购买。',
272 'beta.lead_unavailable': '这台服务器无法说明它是否接受新账户,因此没有创建任何账户。你的设备没有问题,其间 Daimond 仍可用你自己的供应商密钥运行。请稍后再试。',
273 'beta.lead_no_reason': '这台设备还没有 Daimond 账户。',
274 'beta.have_code': '如果 Oxedyne 给了你测试通行码,请填在这里。它只在这台设备上用一次。',
275 'beta.no_code': '没有通行码?每一轮测试的名额通过申请发放。',
276 'beta.apply': '申请参与 Daimond 测试',
277 'beta.code': '通行码',
278 'beta.code_ph': 'abcd-efgh-ijkl',
279 'beta.redeem': '兑换',
280 'beta.redeeming': '正在兑换…',
281 'beta.try_again': '重试',
282 'beta.enter_code': '输入通行码',
283 'beta.still_closed': '仍然没有账户。服务器给出了同样的答复。',
284 'beta.err_enter_code': '请输入你收到的通行码。',
285 'beta.err_locked': '请先解锁 Daimond:通行码是兑换到这台设备的密钥上的。',
286 'beta.err_no_identity': '这台设备还没有可供兑换通行码的身份。请先创建一个。',
287 'beta.err_unknown': '这个通行码不是我们发出的。请逐字核对 — 十二个字符,分成三组。',
288 'beta.err_spent': '这个通行码已经用过了。每个只在一台设备上用一次。',
289 'beta.err_expired': '这个通行码已过期。请向 Oxedyne 再要一个。',
290 'beta.err_throttled': '这个连接尝试次数过多。请稍等一会儿再试。',
291 'beta.err_generic': '这个通行码未被接受。',
292 'beta.err_unreachable': '无法连接 Daimond 账户服务,因此通行码没有被使用。请稍后再试。',
293 'beta.done_title': '你已加入',
294 'beta.done_pro': '这台设备有了 Daimond 账户,并且已开通 Pro:设备间同步、云存储和邮件。',
295 'beta.done_plain': '这台设备有了 Daimond 账户。应用的功能都能用,额度会代你购买推理,所以不需要自己的供应商密钥。设备间同步、云存储和邮件是 Pro 增加的部分,想用时再买。',
296 'beta.done_handle': '别人看到这个账户是 {handle}。',
297 'beta.done_not_signed_in': '通行码已被使用,账户也已存在,但这台设备刚才没能完成登录。它会自行再试。',
298
299 // ── 只请测试者同意这一件事 ──────────────────────────
300 // 与本表其余部分一样,尚待母语者校对。`tel_never` 说的是代码的事实,不是我们
301 // 用心与否的承诺,不可弱化为「我们不收集个人数据」。
302 'beta.tel_title': '发送使用计数吗?',
303 'beta.tel_title_on': '使用计数',
304 'beta.tel_lead': '如果 Daimond 能报告它被怎样使用,这次测试对我们的帮助会大得多。它只发送数字:二十件事里发生了哪一件、距离本次会话开始多少毫秒,以及各自的一个计数 — 一轮用了多久、打开了哪个面板、出现了多少次错误。',
305 'beta.tel_never': '它从不发送文字。不发消息、不发文件名、不发 Diamond 的名字、不发路径、不发错误信息。根本没有放这些的字段,我们的服务器也会拒收任何带文字的报告。',
306 'beta.tel_who': '它发给 Oxedyne,记在你的通行码创建的账户上,所以我们看得出哪些数字是你的,也能回头就此问你。',
307 'beta.tel_free': '说不不会让你失去任何东西。你的账户、额度以及其他一切都原封不动,应用里也没有任何地方会因此不同。',
308 'beta.tel_more': '完整的发送内容',
309 'beta.tel_yes': '发送使用计数',
310 'beta.tel_no': '不发送',
311 'beta.tel_on': 'Daimond 正在发送这个账户的使用计数:只有数字,从不含文字。',
312 'beta.tel_stop': '停止发送使用计数',
313
314 // ── 入口 ───────────────────────────────────────────────────
315 // 机器翻译,未经母语者校对。
316 'door.head': '第一次用 Daimond?',
317 'door.lead': '它还在封闭测试,账户按通行码发放。',
318 'door.test': '申请参加测试',
319 'door.waitlist': '加入等候名单',
320 'door.code': '我有通行码',
321 'door.code_later': '请先创建口令短语:通行码是兑换到这台设备的密钥上的。一旦可以,通行码输入框会自行打开。',
322
323 // ── 自动充值 ───────────────────────────────────────────────
324 // 这里的每一笔金额都会扣到卡上,所以文案保持平实。
325 'autoreload.title': '自动充值',
326 'autoreload.lead': '额度快用完时,Daimond 可以自己去买,这样长活不会做到一半停下。它会在你这里设的上限之内,不问就扣下面这张卡。',
327 'autoreload.card_word': '卡',
328 'autoreload.card_has': '{brand} 尾号 {last4}',
329 'autoreload.replace': '更换…',
330 'autoreload.replace_help': '保存另一张卡。由 Stripe 收集,Daimond 永远看不到。',
331 'autoreload.no_card': '还没有保存任何卡。',
332 'autoreload.save_card': '保存一张卡',
333 'autoreload.save_card_help': '会打开 Stripe 自己的页面。不会扣任何钱,卡片信息也到不了 Daimond。',
334 'autoreload.switch_on': '自动购买额度',
335 'autoreload.switch_no_card': '自动购买额度(请先保存一张卡)',
336 'autoreload.when_below': '当余额低于',
337 'autoreload.when_below_hint': '只要某一轮把余额压到这个数以下,就会立刻充值。',
338 'autoreload.buy_amount': '每次买这么多',
339 'autoreload.buy_amount_hint': '一次充值的金额。网关单次最多只卖 {max}。',
340 'autoreload.monthly_cap': '每月最多花',
341 'autoreload.monthly_cap_hint': '自动充值在一个自然月里最多能花多少。需要更多就在这里调高。',
342 'autoreload.spent': '本月已花:{spent}',
343 'autoreload.spent_of': '本月已花:{spent},上限 {cap}',
344 'autoreload.last_error': '上一次自动充值失败:{reason}',
345 'autoreload.saving': '保存中…',
346 'autoreload.on_note': '已开启。Daimond 会在你的每月上限之内自己补上额度。',
347 'autoreload.off_note': '已关闭。不会有任何扣费。',
348
349 // ── 聊天 ───────────────────────────────────────────────────
350 'chat.no_chat': '没有聊天',
351 'chat.model_for_chat': '这次聊天用的模型',
352 'chat.select_all': '全选',
353 'chat.deselect_all': '取消全选',
354 'chat.fold_selected': '折叠所选',
355 'chat.fold_now': '折叠',
356 'chat.fold_now_help': '立即折叠此对话,保留此前内容的摘要。',
357 'say.more': '详细内容',
358 'say.less': '隐藏详细内容',
359 'rail.dupes_trashed': '已移除 {n} 个内置 Diamond 的重复副本 —— 它们是旧的同步造成的。如需找回,可在回收站中查看。',
360 'rail.dupes_kept': '还有 {n} 个重复的内置 Diamond,但你曾在其中工作过,因此未移除。请自行删除不需要的。',
361 'ask.of': '第 {n} 项决定,共 {of} 项',
362 'ask.recommended': '推荐',
363 'ask.why': '理由:{why}',
364 'ask.silent': '若您不作答:{what}',
365 'ask.other': '其他答案…',
366 'ask.other_ph': '用您自己的话作答',
367 'ask.send': '发送此答案',
368 'ask.answered': '您的回答:{what}',
369 'say.more_help': '约 {n} 个 token,保存在本设备。折叠时不会发送给模型;展开则会。',
370 'say.less_help': '约 {n} 个 token。展开期间,模型每一轮也会看到它们。',
371 'chat.copy_all_aria': '复制对话',
372 'wire.role_help': '你的角色提示词。可在 prompts/ 中编辑 —— 这是系统消息中属于你的部分。',
373 'wire.safety_help': '在你的编辑之后追加,每一轮都有。编辑角色提示词无法将其移除。',
374 'wire.tools_help': '根据这个对话实际拥有的工具生成,因此不会承诺一个并不存在的工具。',
375 'wire.machine_help': '由执行它的围栏本身生成,因此描述与规则不会互相矛盾。',
376 'wire.schemas_help': '每个工具的完整 JSON schema,每次请求都会发送,通常是负载中最大的部分。',
377 'wire.diamond_help': '只为这一轮拼成:这个 Diamond 自己的文件夹、回形针放进来的东西,以及它此刻的记忆 —— crystal.json。旁边的 capp 只被提到名字,从不随行。',
378 'wire.standing_help': '你的 DAIMOND.md,在每个对话的每一轮都追加到系统消息里。',
379 'wire.chip': 'Wire',
380 'wire.chip_help': '显示每一轮实际发送给模型的内容 —— 系统消息、各部分的来源,以及工具的 schema。',
381 'wire.head': '在你说任何话之前,每一轮都会发送 —— 约 {n} 个 token',
382 'wire.role': '角色提示词',
383 'wire.role_why': '你的',
384 'wire.safety': '安全条款',
385 'wire.safety_why': '不可移除',
386 'wire.tools': '工具名称',
387 'wire.tools_why': '来自注册表',
388 'wire.machine': '这台计算机',
389 'wire.machine_why': '来自围栏',
390 'wire.diamond': '这个 Diamond',
391 'wire.diamond_why': '仅本轮',
392 'wire.standing': '常设指令',
393 'wire.standing_why': '你的',
394 'wire.schemas': '工具 schema({n})',
395 'wire.schemas_why': '每一轮',
396 'chat.copy_all': '复制',
397 'chat.copy_all_help': '将整段对话以纯文本复制到剪贴板。',
398 'chat.copy_all_said': '对话已复制到剪贴板。',
399 'chat.copy_all_empty': '这段对话还没有可复制的内容。',
400 'chat.copy_all_failed': '无法访问剪贴板。请自行选中文本并复制。',
401 'chat.steps': '步骤',
402 'chat.concise': '简短',
403 'chat.concise_help': '在这个聊天里要求简短的回答。每条消息都会带上 /concise 技能,那是工作区里一个你可以编辑的文件。',
404 'chat.concise_failed_title': '简短不可用',
405 'chat.concise_failed': 'Daimond 写不了 .daimond/skills/concise.md,这样一来这个按钮不会缩短回答,只会让每一轮都被拒绝。请打开一个工作区文件夹,或查看文件面板,然后重试。',
406 'chat.steps_help': '在会话里显示或隐藏工具步骤',
407 'chat.collapse_help': '折叠每一条回答,只留下你问的话,再挑出要折叠的轮次',
408 'chat.input_ph': '输入消息…',
409 'chat.send': '发送',
410 'chat.busy': '思考中…',
411 'chat.thinking': '思考过程',
412 'chat.busy_tool': '正在运行 {tool},第 {n} 步…',
413 'chat.busy_next': '第 {n} 步完成,思考中…',
414 'chat.busy_road': '连接已断开 — 正在重试 {name}(第 {n} 次,共 {of} 次)…',
415 'chat.busy_writing': '正在写回答…',
416 // One command's own line, when the turn's fence withheld the network from it.
417 // `src/tools.rs`'s NO_NET_NOTE says the same thing to the model; this is the
418 // half a person can read. A statement of what happened, not a failure.
419 'chat.tool_no_net': '这条命令在没有网络的情况下运行,因为 Daimond 读过别人写的内容。其中任何要下载、安装或克隆的操作都一无所获。权限按钮可以把网络交还回来。',
420 'chat.answered': 'Daimond 已回答,{n} 个词',
421 'chat.answer_failed': 'Daimond 无法回答',
422 'chat.collapse': '折叠所有回答',
423 'chat.jump': '回到你上一条消息',
424 'chat.end': '跳到聊天末尾',
425 'chat.jump_help': '跳回你最后发的那条消息。再按一次,可以继续往前翻。',
426 'chat.end_help': '跳到聊天的最下面。',
427 'chat.new': '+ 新建聊天',
428 // 回答还在往外吐时写下的消息。先握着、显示出来,等这条回答完了,
429 // 再一轮一条地发出去。故意写得短:手机上的输入框只有 120px 宽,
430 // 行一长就会折成两行并被截断。
431 'chat.queue_ph': '写下一条消息…',
432 'chat.queue_help': '排队中。这条回答结束后就发出',
433 'chat.queued_pending': '还没发出。点一下可以改。',
434 'chat.queue_cancel': '不要发这条',
435 // 机器翻译。往正在跑的这一轮里插话。这行也说清了限制 --
436 // 不调用工具的回答没有可以插进去的接缝。
437 'chat.send_into': '插入到这条回答里发送',
438 'chat.interject_help': '等待中。会在模型的下一步插入,没有下一步就等这条回答结束',
439 'chat.interject_pending': '还没送到。点一下可以改。',
440 'chat.interjected': '你在这里插了话',
441 'chat.interjected_help': '在这个位置加入了本轮对话。模型从这里开始就知道了。',
442 'chat.queue_returned': '这一轮没能走完,你排在后面的那条又回到了输入框里,没有发出去。',
443 // 同样的话也写在聊天的磁贴上,给那些人已经走开、却还留着排队消息的会话。
444 // 气泡只画在屏幕上正开着的那个聊天里,而马上要花出去的钱,
445 // 不该指望你记得住。
446 'chat.queue_badge.one': '{n} 条排队中',
447 'chat.queue_badge.other': '{n} 条排队中',
448 'chat.queue_badge_help.one': '这个聊天里有一条消息在等着。打开它,这条就作为单独的一轮发出去。',
449 'chat.queue_badge_help.other': '这个聊天里有 {n} 条消息在等着。打开它,它们就会一轮一条地发出去。',
450
451 // ── 这一轮怎么结束的,以及 Diamond 的模板 ─────────────────
452 'end.how_answered': '答完了',
453 'end.how_stopped': '停下了',
454 'end.how_capped': '到了步数上限',
455 'end.how_silent': '什么都没说就结束了',
456 'end.how_failed': '出错结束',
457 'end.no_calls': '没有用工具',
458 'end.calls.one': '{n} 次工具调用',
459 'end.calls.other': '{n} 次工具调用',
460 'end.refused.one': '其中 {n} 次被拒绝',
461 'end.refused.other': '其中 {n} 次被拒绝',
462 'end.broke.one': '其中 {n} 次失败',
463 'end.broke.other': '其中 {n} 次失败',
464 'end.missing': '没有写下: {paths}',
465 'end.help': '这一轮是怎么结束的。可用的工具:{offered}。发出的请求:{rounds}。工具调用:{calls}。',
466
467 'tmpl.section': '模板',
468 'tmpl.dlg_help': '模板带走这个 Diamond 的形状 —— 它据以绘制的页面、它的自动化,以及 capp 放在自己旁边的东西 —— 而不带走它记下的任何内容。触发动作是特意留下的:触发器不用谁去按就会启动,跟着走的一个,会因为别人打开了一个文件而在他的机器上开始干活。打开它的人得到的是一个新的 Diamond,他自己的东西不会被覆盖。',
469 'tmpl.with_conversation': '连记下的内容一起带上',
470 'tmpl.with_conversation_help': '改为带走全部:记忆、留下的对话,以及 capp 自己的条目。它仍然是模板,所以仍然作为一个新的 Diamond 打开。',
471 'tmpl.save': '存为模板…',
472 'tmpl.saving': '正在做模板…',
473 'tmpl.saved': '已存为 {file}。你给谁,谁就能从社交面板的“分享”视图里,把它打开成自己的 Diamond。',
474 'tmpl.panel_head': '打开一个模板',
475 'tmpl.panel_help': '模板是一个 Diamond 的形状,不含它的内容:只有它据以绘制的页面和它的自动化,没有它记下的东西。它作为一个新的 Diamond 打开,绝不会覆盖你已经有的那个。触发动作从不随行,因为触发器不用谁去按就会启动。',
476 'tmpl.panel_open': '打开模板文件…',
477 'tmpl.opened': '已作为新的 Diamond “{name}” 打开。到了 {n} 个文件。',
478 'tmpl.unnamed': '这个模板',
479 'tmpl.code_title': '这个模板里有代码',
480 'tmpl.code_body': '“{name}” 里含有一个页面:别人写的程序,你一打开,Daimond 就会运行它。模板不带签名,也不带任何人的名字,所以这里没有东西能告诉你它从哪儿来 —— 只有把文件给你的那个人知道。\n\n会加进来的是:{files}\n\n它作为一个新的 Diamond 打开,绝不会覆盖你已经有的那个。拒绝的话,什么都不会写。',
481 'tmpl.code_ok': '接受这个页面并打开',
482 'tmpl.declined': '这个页面没有被接受,所以什么都没有打开。',
483 'tmpl.err_empty': '那个文件是空的,没有什么可打开。',
484 'tmpl.err_not_template': '那个文件不是 Daimond 模板。',
485 'tmpl.err_file_huge': '那个文件有 {size},比任何模板都大,所以没有打开。',
486 'tmpl.err_no_file': '没有选文件,所以什么都没有打开。',
487 'tmpl.err_nothing': '没有可保存的东西:那个 Diamond 做出来的模板是空的。',
488 'tmpl.err_no_door': '这个版本能读模板,但没有地方可以打开它。',
489
490 // ── 网页面板 ───────────────────────────────────────────────
491 'web.who_drives': '现在谁在操作',
492 'web.back': '返回',
493 'web.reload': '重新加载',
494 'web.pop_out': '在真正的标签页里打开',
495 // 面板标题栏里那个暂停控件的名字,填进 `pause.act_pause` 就是
496 // “暂停 网页访问”。它管的是 `root/web`,管得比这个面板宽,
497 // 所以不叫“这个面板”。
498 'web.pause': '网页访问',
499 'web.blind_title': '现在你来操作。我没在看。',
500 'web.blind_note': 'Daimond 已经停止读取这个页面。不看文字,不看图像,不看按键。登录之后,点浏览器标签页里的 <b>恢复 Daimond</b>,把控制权交回来。那个按钮在标签页里,所以这个页面永远抢不走你的控制权。',
501 'web.resumed': '我已经恢复了,请检查',
502 // {where} 是扩展报回来的、Daimond 停下的地方,比如一个登录页。
503 'web.blind_title_at': '现在你来操作。我停在 {where}。',
504 // 头部:屏幕上是什么,以及方向盘在谁手里。
505 'web.guide': '指南',
506 'web.guide_title': 'Daimond 使用指南',
507 'web.panel_for': '网页面板',
508 'web.who_you': '你',
509 'web.who_daimond': 'Daimond',
510 'web.who_ready': '就绪',
511 'web.who_view_only': '仅查看',
512 'web.who_you_help': '你在操作。Daimond 没有在看这个页面。',
513 'web.who_daimond_help': 'Daimond 在操作。你随时可以接手。',
514 'web.who_ready_help': 'Daimond Hands 已安装。',
515 'web.who_view_only_help': '这个页面可以显示,但不能操作。装上 Daimond Hands 才能操作它。',
516 // 通过扩展打开一个站点。{host} 是主机名,已经转义过;
517 // 这几条是按标记摆放的,保留原有标签,不要添加。
518 'web.opening': '<b>正在打开 {host}…</b><br>前面会开出一个 <b>Daimond Hands</b> 窗口。在那里批准这个站点,然后到 Chrome 里确认一次。两步都只在第一次访问这个站点时出现。',
519 'web.not_approved': '<b>{host} 未获批准。</b><br>',
520 'web.approval_closed': '批准窗口被关掉了,或者你选了不允许。要允许,就再请求一次这个站点,然后点<b>允许,再到 Chrome 里确认</b>。窗口会开在这个窗口前面,而 <b>Daimond Hands</b> 图标会一直留着这个问题,直到你回答。',
521 'web.approved_late': '<b>{host} 已获批准。</b>你的回答是在 Daimond 不再等下去之后才到的,所以面板有一瞬间显示的正好相反。页面现在已经打开了。',
522 'web.answer_late': '你的回答是在 Daimond 不再等下去之后才到的。',
523 'web.driving_tab': '<b>Daimond 正在一个浏览器标签页里操作 {host}</b>。你可以到那边看,也可以把实时画面拉进这个面板。',
524 'web.show_live': '在这里显示实时画面',
525 'web.real_tab': '该页面以真实的浏览器标签页打开,只有它才带得上您自己的登录状态,因此本面板只显示它的画面。',
526 'web.mirror_wait': '正在等待该标签页的第一张画面。如果 Chrome 在前面弹出了权限窗口,它在等您回答。',
527 'web.mirror_silent': 'Daimond Hands 已有一段时间没有回应,因此没有实时画面。标签页本身仍然打开,仍然是该页面。',
528 'web.mirror_refused': '此标签页无法截取画面,因此没有实时画面。请直接查看该标签页,或再次请求画面。',
529 // 拒绝被嵌进框里的站点,也就是大多数站点。
530 'web.blocked': '<b>{host}</b> 不允许在别的页面里显示。大多数站点都会挡这一手,用来防点击劫持;这不是故障。',
531 'web.blocked_hands': 'Daimond Hands 可以在真正的标签页里操作它。',
532 'web.blocked_install': '装上 Daimond Hands 才能实时操作它。',
533 'web.open_new_tab': '在新标签页里打开',
534 'web.read_as_text': '当作文本读',
535 'web.reading': '正在读取…',
536 'web.read_failed': '那个页面读不出来:{reason}',
537 'web.readonly_badge': '只读副本,不是实时站点。不要在这里登录。',
538
539 // ── 写邮件 ─────────────────────────────────────────────────
540 'compose.from': '发件人',
541 'compose.to': '收件人',
542 'compose.cc': '抄送',
543 'compose.subject': '主题',
544 'compose.optional': '可选',
545 'compose.body_ph': '写下你的消息。',
546 'compose.send': '发送',
547 'compose.save_draft': '保存草稿',
548 'compose.attach': '添加附件…',
549 'compose.discard': '丢弃',
550
551 // ── 智能体 ─────────────────────────────────────────────────
552 'agents.control_all': '控制所有智能体',
553 'agents.pause_all': '暂停所有智能体',
554 'agents.resume_all': '恢复所有已暂停的智能体',
555 'agents.stop_all': '停止所有智能体',
556 'agents.clear_finished': '清除已结束的智能体',
557 'agents.search': '搜索智能体',
558 'agents.search_help': '按名称、任务、Diamond 或标签搜索智能体',
559
560 // ── 邮件 ───────────────────────────────────────────────────
561 'mail.write': '写一封邮件',
562 'mail.add_mailbox': '添加邮箱',
563 'mail.sync_now': '立即同步',
564
565 // 本账户还没解锁 Email 时显示的介绍。前两条带标记,也按标记摆放:
566 // 保留原有标签,不要添加。
567 'mail.pitch.head': '<b>Daimond 能读你的邮件。</b>收件箱会以普通文件的形式落在工作区里,所以每个智能体都能读、能搜,也能据此干活。',
568 'mail.pitch.fine': 'Email 属于 Pro——付一次钱,用五年——和跨设备同步、云端存储一起。最多支持 {cap} 个邮箱。收发按量从额度里扣,跟推理一样。没有订阅,也不会续费。',
569 'mail.pitch.privacy': 'Daimond 的网关负责连接,然后忘掉你的密码。我们这边从不保存任何邮件。',
570 'mail.pitch.unknown': '账户服务连不上,所以 Daimond 无法判断这里是否解锁了 Email。',
571 'mail.pro_pitch': 'Email 属于 Pro。购买五年 Pro,就能连同同步和云端存储一起打开它。',
572
573 // 邮箱列表。
574 'mail.remove_mailbox': '移除这个邮箱',
575 'mail.remove_mailbox_named': '移除邮箱 {address}',
576 'mail.no_mailbox': '还没有邮箱。按 <b>+</b> 添加一个。',
577 'mail.remove.title': '移除 {address}?',
578 'mail.remove.body': '已经同步下来的邮件仍然留在工作区。移除后,你解锁的邮箱名额会空出一个。',
579 'mail.remove.ok': '移除',
580 'mail.ago.never': '从未',
581 'mail.ago.just_now': '刚刚',
582 'mail.ago.mins': '{n} 分钟前',
583 'mail.ago.hours': '{n} 小时前',
584 'mail.ago.days': '{n} 天前',
585
586 // 文件夹。服务器可能用自己的语言给文件夹命名,所以只要它声明了角色
587 //(RFC 6154),显示的就是角色名;其余一律照搬服务器自己的写法。
588 'mail.folders': '文件夹',
589 'mail.folders_loading': '正在查找文件夹…',
590 'mail.refreshed_held': '已在 {boxes} 个邮箱中刷新 {done} 个文件夹;{held} 个因暂停而未动。',
591 'mail.refreshed': '已在 {boxes} 个邮箱中刷新 {done} 个文件夹。',
592 'mail.count.never': '还没有取过,所以没有数目。',
593 'mail.count.asat': '{n} 封,截至 {when}。',
594 'mail.count.more': '当时服务器上还有 {n} 封在等。',
595 'mail.settings': '邮箱设置',
596 'mail.settings_named': '{address} 的设置',
597 'mail.all_mailboxes': '所有邮箱',
598 'mail.refresh_all': '刷新 {boxes} 个邮箱中的全部 {folders} 个文件夹',
599 'mail.every.0': '仅手动',
600 'mail.every.300': '每 5 分钟',
601 'mail.every.900': '每 15 分钟',
602 'mail.every.1800': '每 30 分钟',
603 'mail.every.3600': '每小时',
604 'mail.every.14400': '每 4 小时',
605 'mail.every.43200': '每 12 小时',
606 'mail.every.86400': '每天一次',
607 'mail.every.secs': '每 {n} 秒',
608 'mail.every_for': '{folder} 自己刷新的频率',
609 'mail.cfg.head': '每个文件夹多久去看一次,以及哪些可以去看。每次刷新都要花额度,所以在你开口之前什么都不会去问。',
610 'mail.cfg.self': '一并停住下面所有文件夹。',
611 'mail.cfg.title': '{address} 的设置',
612 'mail.folders_err': '取不到文件夹列表:{reason}',
613 'mail.folder.inbox': '收件箱',
614 'mail.folder.sent': '已发送',
615 'mail.folder.drafts': '草稿',
616 'mail.folder.trash': '已删除',
617 'mail.folder.junk': '垃圾邮件',
618 'mail.folder.archive': '归档',
619 'mail.folder.all': '全部邮件',
620 'mail.folder.flagged': '星标',
621
622 // 邮件列表。
623 'mail.drafts_head': '草稿 · {n}',
624 'mail.no_subject': '(无主题)',
625 'mail.no_recipient': '(无收件人)',
626 'mail.unknown_sender': '(未知)',
627 'mail.nothing_yet': '这里还什么都没有。按 <b>⟳</b> 同步。',
628
629 // 同步中。{address} 是一个邮箱,{folder} 是它里面的文件夹。
630 'mail.note.syncing': '正在同步 {address} 的 {folder}…',
631 'mail.note.fetching_older': '正在从 {address} 的 {folder} 取更早的邮件…',
632 'mail.note.rebuilt': '服务器上的邮箱被重建了,正从头重新同步…',
633 'mail.note.up_to_date': '已是最新。',
634 'mail.note.no_older': '没有更早的邮件可取了。',
635 'mail.note.new.one': '{n} 封新邮件',
636 'mail.note.new.other': '{n} 封新邮件',
637 'mail.note.older.one': '{n} 封更早的邮件',
638 'mail.note.older.other': '{n} 封更早的邮件',
639 'mail.note.still_older.one': '服务器上还有 {n} 封更早的',
640 'mail.note.still_older.other': '服务器上还有 {n} 封更早的',
641
642 // 列表底部:上限拦下了多少。
643 'mail.more.note.one': '服务器上还有 {n} 封更早的邮件。Daimond 每次只取最新的 {batch} 封,所以整个邮箱不会被一次性拉下来。',
644 'mail.more.note.other': '服务器上还有 {n} 封更早的邮件。Daimond 每次只取最新的 {batch} 封,所以整个邮箱不会被一次性拉下来。',
645 'mail.more.next': '再取 {n} 封',
646 'mail.more.stop': '停止',
647 'mail.more.all': '全部取回',
648
649 // 把一整个邮箱走完。{count} 就是 `mail.all.count`,已经是成句的说法。
650 'mail.all.title': '要取回剩下的全部 {n} 封吗?',
651 'mail.all.body': '它们每批 {batch} 封到达,并写进工作区,所以大邮箱会花些时间,也会占硬盘。同步按兆字节从你的额度里扣。中途停下,已经到的都留着。',
652 'mail.all.ok': '全部取回',
653 'mail.all.progress': '已取 {total} 封中的 {got} 封…',
654 'mail.all.count.one': '{n} 封',
655 'mail.all.count.other': '{n} 封',
656 'mail.all.done': '完成。已取回 {count}。',
657 'mail.all.done_left': '完成。已取回 {count},服务器上还有 {left}。',
658 'mail.all.stopped': '已停止。已取回 {count}。',
659 'mail.all.stopped_left': '已停止。已取回 {count},服务器上还有 {left}。',
660
661 // 引用与转发。分隔线是给读信的人看的;它下面的头字段名(From:、Date:、
662 // Subject:、To:)是邮件自己的,照邮件头的写法保留。“Re:”和“Fwd:”同样不动 —
663 // 收信的客户端靠它们串会话。
664 // 两句话,而不是一句话里塞一个兜底的日期:读不出日期的引用,就用一句
665 // 根本没有日期的话。
666 'mail.quote.head': '{date},{who} 写道:',
667 'mail.quote.head_undated': '{who} 写道:',
668 'mail.quote.they': '对方',
669 'mail.fwd.sep': '---------- 转发的邮件 ----------',
670
671 // 添加邮箱。
672 'mail.add.title': '添加邮箱',
673 'mail.add.lead': 'Daimond 的网关连上你的邮件服务器,把邮件交回来,然后忘掉你的密码。密码在这台设备上用你的密码短语加密。',
674 'mail.add.ok': '添加并同步',
675 'mail.add.address': '电子邮件地址',
676 'mail.add.password': '应用专用密码',
677 'mail.add.password_ph': '你的提供商发给你的应用专用密码',
678 'mail.add.imap': 'IMAP 服务器',
679 'mail.add.smtp': 'SMTP 服务器',
680 'mail.add.port': '端口',
681 'mail.add.guess': 'Daimond 需要这家提供商的服务器名(收信常是 imap.{domain},发信常是 smtp.{domain})。',
682 'mail.add.err_address': '这不是一个电子邮件地址。',
683 'mail.add.err_password': '应用专用密码是必填的。',
684 'mail.add.err_imap': 'Daimond 需要 IMAP 服务器名。',
685 'mail.add.err_port': 'IMAP 走 993 端口(TLS)或 143 端口。',
686 'mail.add.err_smtp': '要从这个邮箱发信,Daimond 需要 SMTP 服务器名。',
687 'mail.add.err_smtp_port': '邮件通过 587 或 465 端口投递。',
688
689 // 提供商提示:一认出域名就显示在地址下面。它们带标记。
690 //“应用专用密码”是提供商自己的叫法,各语言里就照它自己怎么叫来写。
691 'mail.preset.gmail': 'Gmail 需要一个<b>应用专用密码</b>(Google 账号 → 安全性 → 两步验证 → 应用专用密码),不是你的 Google 密码。',
692 'mail.preset.gmail_short': 'Gmail 需要一个<b>应用专用密码</b>,不是你的 Google 密码。',
693 'mail.preset.outlook': '如果开了两步验证,Outlook 需要一个<b>应用密码</b>。',
694 'mail.preset.yahoo': 'Yahoo 需要在账户安全里生成的<b>应用密码</b>。',
695 'mail.preset.icloud': 'iCloud 需要一个<b>App 专用密码</b>。',
696 'mail.preset.fastmail': 'Fastmail 需要一个开放了 IMAP 访问的应用密码。',
697 'mail.unreachable.proton': 'Proton 的邮件只能通过跑在你自己机器上的 Proton Bridge 访问,而 Daimond 的网关连不到那里。',
698 'mail.unreachable.tuta': 'Tuta 不提供 IMAP,所以任何邮件客户端都读不了它,包括 Daimond。',
699
700 // 可能出的问题。
701 'mail.err.unlock_first': '请先解锁 Daimond。邮箱密码是用你的密码短语加密的。',
702 'mail.err.draft_needs_mailbox': '草稿需要一个发件邮箱。',
703 'mail.err.draft_unreadable': '那份草稿读不出来。',
704 'mail.err.msg_unreadable': '那封邮件读不出来。',
705 'mail.err.send_from_added': '请从你已经添加并同步过的邮箱发信。',
706 'mail.err.no_recipients': '没有收件人的邮件发不出去。',
707 'mail.err.add_mailbox_first': '写邮件之前,先添加一个邮箱。',
708 'mail.err.service_unavailable': '账户服务不可用。',
709 'mail.err.service_unreachable': '连不上 Daimond 账户服务。请稍后再试。',
710 'mail.err.cap.one': '这次解锁最多支持 {n} 个邮箱。要再加一个,请先移除一个。',
711 'mail.err.cap.other': '这次解锁最多支持 {n} 个邮箱。要再加一个,请先移除一个。',
712
713 'mail.err.protocol_pending': 'Daimond 还不能收取邮件:私密隧道已经建好,邮件协议还没有接上去。什么都没有发出,你的密码也从未离开这台设备。',
714
715 // 隧道。TLS 在浏览器里终结,所以关于一条网关看不见内容的连接,读者能得到的
716 // 就只有这些话。
717 'mail.tunnel.close.auth': 'Daimond 已让这台设备退出登录,所以邮件连接被拒绝了。解锁 Daimond 后再收取。',
718 'mail.tunnel.close.pro': '邮件属于 Pro,这个账户还没有解锁。在“积分”里购买 Pro,邮件就会打开。',
719 'mail.tunnel.close.host': 'Daimond 只连接这个账户已经绑定的邮件服务器,而 {host} 不在其中。请重新添加这个邮箱 —— Daimond 会在添加时绑定它的服务器 —— 然后再收取。',
720 'mail.tunnel.close.port': '邮件只使用 993、143、465 和 587 端口,{port} 不是其中之一。请在邮箱设置里改正端口。',
721 'mail.tunnel.close.credits': '收到一半时积分用完了。在“积分”里充值后再收取;已经下载的部分就在这台设备上。',
722 'mail.tunnel.close.concurrent': '这个账户已经占用了四条邮件连接。等另一个邮箱完成,或者关掉另一个 Daimond 标签页,然后再收取。',
723 'mail.tunnel.close.unresolved': '{host} 解析不出 Daimond 可以连接的地址。请在邮箱设置里核对服务器名称 —— 打错字看起来就是这样 —— 或者看看这个网络的 DNS 能不能查到它。',
724 'mail.tunnel.close.toobig': '邮件连接一次发送的内容超过了网关能承载的量,所以被关闭了。请再收取一次。',
725 'mail.tunnel.close.done': '邮件服务器在这次收取完成之前结束了连接。请再收取一次;已经下载的部分就在这台设备上。',
726 'mail.tunnel.close.unreachable': '无法连到 {host}。请在邮箱设置里核对服务器名称,或稍后再试。',
727 'mail.tunnel.close.no_socket': '邮件连接根本没能打开。请确认你已联网,然后再收取。',
728 'mail.tunnel.close.idle': '邮件服务器不再回应,连接已关闭。再收取一次就能继续。',
729 'mail.tunnel.close.expired': '这次花的时间太长,邮件连接已关闭。再收取一次会从停下的地方继续。',
730 'mail.tunnel.close.other': '邮件连接意外关闭(代码 {code})。请再收取一次。',
731 'mail.tunnel.err.no_server': '这个邮箱没有设置服务器和端口。请打开它的设置填上。',
732 'mail.tunnel.err.no_client': 'Daimond 无法建立加密的邮件连接 —— {reason}',
733 'mail.tunnel.err.slow': '{host} 在 {secs} 秒内没有完成加密握手。请稍后再试。',
734 'mail.tunnel.err.no_reply': '{host} 在 {secs} 秒内没有回应 {what} 这一步。请再收取一次。',
735 'mail.tunnel.err.cert': 'Daimond 无法验证 {host} 的证书({fault}),因此什么都没有发出。在服务器能证明自己身份之前,你的密码留在这台设备上。',
736 'mail.tunnel.err.cert_name': '{host} 出示的证书是签给另一台服务器的({fault}),因此 Daimond 什么都没有发出。请在邮箱设置里核对服务器名称。',
737 'mail.tunnel.err.cert_expired': '{host} 出示的证书已过期({fault}),因此 Daimond 什么都没有发出。如果这台机器的时钟不对,请校正后再收取。',
738 'mail.tunnel.err.cert_issuer': '{host} 出示的证书来自 Daimond 不信任的签发者({fault}),因此什么都没有发出。自签名证书是这个样子,被中途截取的连接也是。',
739 'mail.tunnel.err.starttls': '无法建立通往 {host} 的加密通道 —— {reason}',
740 'mail.tunnel.err.starttls_early': '{host} 在加密通道建立之前就发来了东西,Daimond 没有信任它,而是丢掉了这条连接。什么都没有发出。',
741
742 // ── 工作区文件 ─────────────────────────────────────────────
743 'work.new_file': '新建文件',
744 'work.new_folder': '新建文件夹',
745 'work.upload': '上传文件',
746 'work.parent': '上级文件夹',
747 'work.filter_ph': '筛选…',
748 'work.breadcrumb': '文件夹路径',
749
750 // ── 手机界面 ───────────────────────────────────────────────
751 'sheet.panel': '面板',
752 'sheet.ask': '提问',
753 'sheet.ask_ph': '就这个提问…',
754 // {thing} 是一个面板的名称。
755 'sheet.ask_about': '就这个{thing}提问…',
756
757 // ── 身份:创建与解锁 ───────────────────────────────────────
758 'identity.your_name': '你的名字',
759 'identity.passphrase': '密码短语',
760 'identity.confirm_passphrase': '确认密码短语',
761 'identity.show_passphrase': '显示密码短语',
762 'identity.hide_passphrase': '隐藏密码短语',
763 'identity.generate_another': '换一个',
764 'identity.wrote_it_down': '我已经抄在安全的地方了',
765 'identity.choose_own': '我自己定一个密码短语',
766 'identity.skip': '暂时跳过',
767 'identity.create_account': '创建账户',
768 'identity.unlock': '解锁',
769 'identity.forget': '忘掉这个身份…',
770 'identity.use_generated': '改用生成的密码短语',
771 'identity.title_create': '创建你的账户',
772 'identity.title_unlock': '解锁 Daimond',
773 'identity.title_welcome': '欢迎回来,{name}',
774 'identity.title_linked': '已关联。现在解锁它',
775 'identity.lead_create': '取个名字。密码短语由 Daimond 自己在下面生成。如果你已经在另一台设备上用 Daimond,就别再建第二个账户:选“有配对码吗?”把这台设备关联过去。(要打开一个真实文件夹供智能体编辑,需要 Chrome、Edge 或 Brave。)',
776 'identity.lead_unlock': '输入你的密码短语,解锁这台设备,并解密你保存的密钥。',
777 'identity.lead_linked': '这台设备已经关联到你的账户。请输入你在另一台设备上用的那个密码短语,不是新的,这样聊天和文件才会带过来。',
778 'identity.lead_linked_named': '这台设备已经关联到你的账户“{name}”。请输入你在另一台设备上用的那个密码短语,不是新的,这样聊天和文件才会带过来。',
779 // {bits} 是从随附词表算出来的数字,不是常量。
780 'identity.gen_note': '这台设备随机挑出的八个词,大约 {bits} 位,远远超出任何能被猜到的范围。它是你在这里存放的一切的钥匙,谁也没法替你重置。请抄在纸上。密码管理器可能也会提出代为保管,在这个强度下是安全的。',
781
782 // ── 通行密钥 ───────────────────────────────────────────────
783 // 每一条都是把死路讲清楚:打不开的通行密钥意味着只剩密码短语这一条进门的路,
784 // 所以每条都说明是哪一种情况。
785 'passkey.err_need_passphrase': '注册通行密钥需要密码短语。',
786 'passkey.err_no_identity': '没有可以用通行密钥保护的身份。',
787 'passkey.err_bad_passphrase': '密码短语对不上。',
788 'passkey.err_cannot_create': '这个浏览器或设备无法创建通行密钥。',
789 'passkey.err_create_failed': '创建通行密钥被取消,或者失败了。',
790 'passkey.err_none_created': '没有创建任何通行密钥。',
791 'passkey.err_no_prf': '这个认证器不支持 PRF 扩展,所以解不开 Daimond。',
792 'passkey.err_not_sealed': '通行密钥没能封存。什么都没保存。',
793 'passkey.err_not_saved': '通行密钥没能保存在这台设备上。',
794 'passkey.err_not_enrolled': '这台设备上没有注册过通行密钥。',
795 'passkey.err_unreadable': '通行密钥读不出来。',
796 'passkey.err_unreadable_use_pass': '通行密钥读不出来。请用你的密码短语。',
797 'passkey.err_wrong_identity': '通行密钥和这个身份对不上。请用你的密码短语。',
798 'passkey.err_out_of_date': '这个通行密钥过时了。先用密码短语解锁,再重新添加它。',
799 'passkey.err_cannot_use': '这个浏览器或设备用不了通行密钥。',
800 'passkey.err_no_identity_support': '身份功能不可用。',
801 'passkey.err_no_offer': '没有提供 Daimond 的通行密钥,或者它没带 PRF 密钥材料。',
802 'passkey.err_no_account_carried': '那个通行密钥没有设置成携带账户。请在有你账户的那台设备上打开设置,重新添加这个通行密钥。',
803 'passkey.err_did_not_open': '那个通行密钥打不开账户。',
804 'passkey.err_stored_unreadable': '保存的账户读不出来。',
805 'passkey.err_stored_locked': '保存的账户没打开。请用你的密码短语。',
806 'passkey.err_not_resealed': '通行密钥没能重新封存。',
807
808 // ── 跨设备同步 ─────────────────────────────────────────────
809 'sync.syncing': '同步中…',
810 'sync.synced': '已同步',
811 'sync.off': '同步已关',
812 'sync.off_reason': '跨设备同步属于 Pro,这个账户没有。',
813 // 只有这个小标签会说这件事,所以它也得是通往这个提议的路:
814 // 在这个状态下它可以点,点开就是“额度”里的 Pro。
815 'sync.off_click': '点一下,在“额度”里看看 Pro。',
816 'sync.off_pitch': '同步是关的,因为这个账户不是 Pro。Pro 会加上跨设备同步、云端存储和 Email。',
817 // 被退回的包裹。要说清楚什么太大,以及通常是什么弄大的。
818 'sync.too_big': '同步已暂停',
819 'sync.too_big_reason': '这台设备的包裹太大,发不出去,它做的事就不再往外走了。通常是某个特别大的 Diamond 或工作区文件闹的;让它小一点或删掉它,同步会自己接上。',
820 'sync.diamonds_left.one': '有 {n} 个 Diamond 装不进这台设备的同步包裹,在它变小之前不会传到你的其他设备:{names}',
821 'sync.diamonds_left.other': '有 {n} 个 Diamond 装不进这台设备的同步包裹,在它们变小之前不会传到你的其他设备:{names}',
822 // A file the parcel had no room for, named the way a Diamond that did not fit is
823 // named. The same news in the same shape; not an error -- the budget is doing what
824 // it is for, and nothing at the far end is deleted.
825 'sync.files_left.one': '有 {n} 个文件装不进这台设备的同步包裹,在腾出空间之前不会传到你的其他设备:{names}',
826 'sync.files_left.other': '有 {n} 个文件装不进这台设备的同步包裹,在腾出空间之前不会传到你的其他设备:{names}',
827 // 已经结束、又拿不回来的会话。和下面用同一个说法。
828 'sync.signed_out': '同步已暂停',
829 'sync.signed_out_reason': '这台设备已退出 Daimond 的账户服务,也没能重新登录,所以它做的事没有传到你的其他设备。服务一能连上就会恢复。如果没有恢复,把 Daimond 锁上再解锁。',
830 'sync.paused': '同步已暂停',
831 'sync.busy_reason': '另一台设备正同时往这个账户里写,所以这台设备做的事还没发出去。下次有改动时就会一起走。',
832 'sync.merge_reason': '从另一台设备来的东西有一部分在这里合不上,所以这台设备没有覆盖它。刷新页面通常就好了。',
833 'sync.last_synced': '上次同步:{when}。',
834 'sync.last_never': '这台设备还没有同步过任何东西。',
835 'sync.when_just_now': '刚刚',
836 'sync.when_mins': '{n} 分钟前',
837 'sync.when_hours': '{n} 小时前',
838 'sync.when_days': '{n} 天前',
839
840 // ── 账户的公开用户名 ───────────────────────────────────────
841 'handle.taken': '这个用户名已被别人使用,请换一个。',
842 'handle.invalid': '用户名为 3 至 24 个字符:小写字母、数字,以及它们之间的连字符。',
843 'handle.reserved': '这个用户名由 Daimond 保留,无法使用。',
844 'handle.failed': '现在无法更改用户名,请稍后再试。',
845
846 // ── 云端存储清理 ───────────────────────────────────────────
847 'chunks.sweep_held': '清理已暂停',
848 'chunks.sweep_held_reason': '云端存储里的 {m} 个片段中,有 {n} 个已经没有本账户的任何文件再引用。它们并没有被删除,因为一次请求最多只能删掉已存内容的一半。你的东西一件都没少,等到下一次同步能把它们全部对上,空间就会释放。',
849 'chunks.upload_refused': '上传已暂停',
850 'chunks.upload_refused_title': '云端存储拒绝了一次上传',
851 'chunks.sweep_confirm_ask': '现在就删除?你还能看到的东西一件都不会动,空间会腾出来。',
852 'chunks.sweep_confirm_ok': '删除这些片段',
853 'chunks.sweep_confirm_title': '释放没有被引用的片段?',
854
855 // ── 关联第二台设备 ─────────────────────────────────────────
856 // 按钮名称外面的引号用中文的“”。
857 'pair.link_another': '关联另一台设备',
858 'pair.link_this': '关联这台设备',
859 'pair.have_code': '有配对码吗?',
860 'pair.making_code': '正在生成一次性配对码…',
861 'pair.scan_lead': '用你另一部手机的摄像头对准它,就会打开 Daimond 并完成关联:',
862 'pair.no_camera': '没有摄像头的话,在那台设备上打开 Daimond,选“有配对码吗?”,然后输入:',
863 'pair.type_lead': '在你另一台设备上打开 Daimond,选“有配对码吗?”,然后输入:',
864 'pair.code_expiry': '这个码只能用一次,大约 {mins} 分钟后失效。另一台设备仍然用你平常的密码短语解锁。',
865 'pair.code_ph': '配对码',
866 'pair.code_check': '这是你另一台设备上的码。它应该和那边显示的一致。',
867 'pair.scanned_lead': '已经从你另一台设备扫到了。点下面的“关联这台设备”,把账户带过来。',
868 'pair.manual_lead': '在你已经在用的那台设备上选“关联另一台设备”,把它显示的码输到这里。',
869 'pair.linked': '这台设备已关联',
870 'pair.linked_note': '它现在持有你的账户。点“解锁”,然后输入你在另一台设备上用的那个密码短语,不是新的。',
871 'pair.linked_named': '它现在持有你的账户“{name}”。点“解锁”,然后输入你在另一台设备上用的那个密码短语,不是新的。',
872 // 关联的时候顺手起个名字。可选 — 没起名也照样同步。
873 'pair.name_this': '给这台设备起个名字(可选)',
874 'pair.name_ph': '例如:厨房笔记本',
875 'pair.named_note': '这台设备会在你的设备列表里显示为“{name}”。以后可以在那里改。',
876 'pair.err_no_identity': '这台设备上没有可以关联的身份。',
877 'pair.err_unreadable_local': '读不出这台设备的身份。',
878 'pair.err_sign_in_first': '先在这台设备上登录,再去关联另一台。',
879 'pair.err_enter_code': '请输入另一台设备上的配对码。',
880 'pair.err_bad_code': '这个码无效,或者已经过期。请在另一台设备上重新生成一个。',
881 'pair.err_bundle_unreadable': '关联过来的身份读不出来。',
882 'pair.err_bundle_import': '关联过来的身份无法导入。',
883 'pair.err_create': '无法生成配对码。',
884 'pair.err_link': '无法关联这台设备。',
885 // 外观设置的一次性交接。要说清楚这件事发生了,而且从现在起
886 // 这些就归这台设备自己了。
887 'pair.look_carried': '你的主题、语言和面板布局也一并带了过来。从现在起每台设备各管各的,改一边不会动到另一边。',
888
889 // ── 外观菜单 ───────────────────────────────────────────────
890 'menu.view': '视图',
891 'menu.view_simple': '简洁',
892 'menu.view_max': '完整',
893 'menu.view_simple_help': '每项只显示名称与运行状态,其余内容点一下即可展开。',
894 'menu.view_max_help': '模型、花费与上下文并排显示在每一项旁边,无需打开即可比较。',
895 'menu.view_note': '同时决定每块磁贴的形状。要让某块磁贴不一样,用它上面的齿轮。',
896 'menu.theme': '主题',
897 'menu.tone_light': '浅色',
898 'menu.tone_mid': '中间色',
899 'menu.tone_dark': '深色',
900 'menu.theme_light': '纸白',
901 'menu.theme_mist': '薄雾',
902 'menu.theme_linen': '亚麻',
903 'menu.theme_lollypop': '棒棒糖',
904 'menu.theme_sage': '鼠尾草',
905 'menu.theme_dusk': '暮色',
906 'menu.theme_dark': '余烬',
907 'menu.theme_amber': '琥珀',
908 'menu.theme_amber_help': '暖色、蓝光少,适合夜间阅读。',
909 'menu.theme_midnight': '午夜',
910 'menu.theme_forest': '森林',
911 'menu.theme_plum': '李子',
912 'menu.text_size': '字号',
913 'menu.smaller': '缩小文字',
914 'menu.larger': '放大文字',
915 'menu.dock_tiling': '停靠区分格',
916 'menu.dock_auto': '自动',
917 'menu.dock_auto_help': '窗口够宽时,自动出现第二列',
918 'menu.dock_grid_help.one': '{cols} 列,最多 {cells} 个面板',
919 'menu.dock_grid_help.other': '{cols} 列,最多 {cells} 个面板',
920 'menu.language': '语言',
921 'menu.language_help': 'Daimond 说的语言。还没有译文的语言仍然显示英文。',
922 'menu.language_pending': '尚未翻译',
923 'menu.currency': '货币',
924 'menu.currency_help': '金额用什么货币显示。扣费始终以美元结算。',
925 'menu.this_diamond': '这个 Diamond',
926 'menu.arrangement_update': '更新已保存的布置',
927 'menu.arrangement_keep': '把这个布置留给 {name}',
928 'menu.arrangement_keep_this': '把这个布置留给这个 Diamond',
929 'menu.arrangement_forget': '不保留',
930 'menu.arrangement_note': '再次打开这个 Diamond 时,会恢复你当时用的那些面板。你不开口,什么都不会被记住。',
931
932 // ── 字号档位 ───────────────────────────────────────────────
933 'size.small': '小',
934 'size.normal': '标准',
935 'size.large': '大',
936 'size.larger': '更大',
937
938 // ── 停靠区分格 ─────────────────────────────────────────────
939 'dock.one_column': '单列',
940 'dock.2x2': '2 × 2',
941 'dock.2x3': '2 × 3',
942 'dock.3x2': '3 × 2',
943 'dock.automatic': '自动',
944
945 // ── 面板总览的分区 ─────────────────────────────────────────
946 'gallery.search_ph': '搜索面板',
947 'gallery.no_match': '没有叫这个名字的面板。',
948 'gallery.zone_rail': '侧栏',
949 'gallery.zone_stage': '聊天旁边',
950 'gallery.zone_dock': '停靠区',
951 'gallery.note': '固定的面板会停在顶栏。按 <kbd>Ctrl</kbd> <kbd>K</kbd>,用键盘就能到达任何一个面板。',
952 'gallery.state_unrevealed': '还没用过',
953 'gallery.state_full': '已满',
954 'gallery.state_open': '已打开',
955 'gallery.state_no_room': '顶栏没位置',
956 'gallery.pin': '把{name}留在顶栏',
957 'gallery.unpin': '把{name}从顶栏移走',
958
959 // ── 支出 ───────────────────────────────────────────────────
960 'spend.intro': '两个钱袋,分得很清。推理走你自己的提供商密钥;额度则替少数几件要出浏览器的事付给网关。',
961 'spend.inference': '推理',
962 'spend.inference_hint': '扣你自己的提供商密钥',
963 'spend.credits': '额度',
964 'spend.credits_hint': '网关服务:网页、邮件、同步',
965 'spend.no_usage': '没有用量记录。',
966 'spend.no_account': '还没有网关账户。额度用来支付少数几件要出浏览器的事:抓一个网页、发邮件或同步邮件、跨设备同步。加一个密码短语和一些额度就能开始。',
967 'spend.this_week': '本周',
968 'spend.this_month': '本月',
969 'spend.session': '本次会话',
970 'spend.balance': '余额',
971 'spend.tok': '词元',
972 // 侧栏支出行的三格。要短:它们压在数字下面。
973 'spend.period_day': '今天',
974 'spend.period_week': '周',
975 'spend.period_month': '月',
976 'spend.no_turns': '这个时间段里还没有轮次。',
977 'spend.nothing_yet': '还没有。',
978 'spend.nothing_spent': '这里还没花过钱。',
979 'spend.no_movements': '还没有额度变动。',
980 'spend.where_credits_went': '额度花到哪儿了',
981 'spend.unknown_model': '(未知)',
982 'spend.meter_help': '看看钱花到哪儿了',
983 'spend.rates_note': '金额按近似汇率({date})换算;扣费以美元结算。',
984 // 表头。它们压在数字上方的窄列里,要短。
985 'spend.col_model': '模型',
986 'spend.col_turns': '轮次',
987 'spend.col_tokens': '词元',
988 'spend.col_cost': '费用',
989 'spend.col_key': '密钥',
990 'spend.col_left': '剩余',
991 'spend.col_period_spend': '花费',
992 'spend.provider_keys': '提供商密钥',
993 'spend.left_auto': '提供商说这把密钥上还剩这些。',
994 'spend.left_manual': '你自己报的数,减去 Daimond 估算你此后花掉的那一部分。',
995 'spend.left_unknown': '这家提供商不说还剩多少,你也没有告诉 Daimond。',
996 'spend.all_reported': '这段时间里的每一轮都带回了提供商给的费用,所以这是实际扣的钱。',
997 'spend.part_reported': '其中 {amount} 是提供商报回来的;其余按 Daimond 的价目表计算。',
998 'spend.none_reported': '按 Daimond 的价目表计算。这些轮次没有任何提供商报回费用。',
999 'spend.none_reported_unknown': '按 Daimond 的价目表计算,而表里缺了其中一个模型,所以这个数字只是个粗略的参考。',
1000 'spend.repriced': '价目表更正之前做的估算,已经在这台设备上重新算过一遍;按旧的价目表,这段时间显示的是 {amount}。',
1001 'spend.col_when': '时间',
1002 'spend.col_what': '项目',
1003 'spend.col_amount': '金额',
1004 'spend.col_balance': '余额',
1005 // 网关给额度打的分类标签。
1006 'spend.cat_web': '网页',
1007 'spend.cat_search': '网页搜索',
1008 'spend.cat_mail': '邮件',
1009 'spend.cat_sync': '跨设备同步',
1010 'spend.cat_storage': '已存储的文件',
1011 'spend.cat_infer': '推理(额度)',
1012 'spend.cat_other': '其他服务',
1013 'spend.cat_topup': '购买额度',
1014 'spend.cat_refund': '退款',
1015 'spend.cat_grant': '赠送与补助',
1016 'spend.cat_adjust': '调整',
1017 'spend.cat_fallback': '其他',
1018 'spend.cat_unlisted': '未归类',
1019
1020 // ── 工具 ───────────────────────────────────────────────────
1021 'tools.unlock_price': '以 {price} 解锁',
1022 'tools.unreachable': '连不上账户服务,所以这里解锁了什么无从得知。',
1023 'tools.no_service': '账户服务不可用。',
1024
1025 // ── 应用替用户改写的错误 ───────────────────────────────────
1026 'err.unreachable': '连不上那个端点。请检查设置里的基础 URL,以及你的网络连接。',
1027 'err.rejected_401': '你的 API 密钥被拒绝了(401)。打开设置检查一下。',
1028 'err.denied_403': '提供商拒绝了访问(403)。检查你的密钥和套餐。',
1029 'err.notfound_404': '提供方返回了 404。如果这一轮之前的步骤都正常,那么基础 URL 没有问题,是模型无法处理这一个请求 — 多半是带图片的请求。否则请在设置里检查基础 URL。',
1030 'err.ratelimit_429': '提供商正在限流(429)。稍等片刻再试。',
1031 'err.server_5xx': '提供商那边出了服务器错误。稍后再试。',
1032 'err.generic': '出了点问题。再试一次。',
1033 'err.reply_cut': '回复在 {max} 个 token 处用尽了空间,因此一次工具调用只到了一半,无法运行。请在设置里调高回复长度,或者要求一个更小的改动',
1034
1035 // ── 回复可以有多长 ─────────────────────────────────────────
1036 'settings.max_tokens': '最长回复',
1037 'settings.max_tokens_auto': '自动',
1038 'settings.tokens': 'token',
1039 'settings.max_rounds': '每轮的步数',
1040 'settings.crystal_limits': '晶体容量',
1041 'settings.crystal_cap': '晶体大小上限',
1042 'settings.crystal_cap_note': '晶体是 Diamond 的摘要,因此有上限。超过之后,daimon 会把细节写进 Diamond 范围内的文件。',
1043 'settings.crystal_cap_auto': '默认',
1044 'settings.crystal_page_cap': '页面大小上限',
1045 'settings.crystal_page_cap_note': '显示 Diamond 数据的页面。它随每次同步一起走,所以和数据共用同一份空间。',
1046 'settings.max_rounds_auto': '默认',
1047 'settings.steps': '步',
1048 'settings.max_rounds_note': '一轮停下来之前,代理可以使用工具的次数。停下来时它会说明,你可以让它继续。',
1049 'settings.fold_at': '折叠对话的阈值',
1050 'settings.fold_at_auto': '默认',
1051 'settings.fold_at_note': '上下文窗口填到多满时,Daimond 会把对话较早的部分换成摘要。发生时会在对话中说明。设得低会更早、更频繁地折叠;设得高会逐字保留更多对话。',
1052 'settings.max_tokens_note': '单次回复可以有多长。设得太低,大文件会被拦腰截断。',
1053 'settings.max_tokens_ceiling': '最多接受',
1054
1055 // ── 当对话不再被保存时 ─────────────────────────────────────
1056 'store.alarm': '你的对话没有被保存。',
1057 'store.alarm_advice': '屏幕上的内容还在,但重新载入就会丢失。请立刻下载一份副本。',
1058 'store.alarm_download': '下载副本',
1059 'store.alarm_retry': '重试',
1060 'store.full': '这个浏览器为本站点留的存储空间已经满了',
1061 'identity.err_no_sealing_key': '此设备没有封装密钥,因此无法打开已封装的消息。解锁一次身份后就会生成一个。',
1062 'store.empty_read': '这个浏览器持有 {n} 段对话,却一段也没有返回',
1063 // ── 权限阶梯 ───────────────────────────────────────────────
1064 'permmode.title': '权限模式',
1065 'permmode.lead': 'Daimond 不问就做的事',
1066 'permmode.chip_help': 'Daimond 不问就做的事',
1067 'permmode.chip_aria': '权限模式:{mode}。更改。',
1068 'permmode.astat': '权限:{mode}',
1069 'permmode.never': '任何模式都不会移动围栏、Diamond 的文件夹或日志。',
1070 'permmode.failed': '这个权限模式没能设置成功,所以什么都没变。',
1071 'permmode.net_head': '命令与网络',
1072 'permmode.net_open': '没有从外部读到任何东西,所以没有扣下任何权限。',
1073 'permmode.net_cut': '读到了别人写的东西,所以命令在无网络下运行。',
1074 'permmode.net_allowed': '命令可以联网。',
1075 'permmode.net_refused': '命令在无网络下运行。',
1076 'permmode.net_bypass': '“不再询问”不会扣下任何权限。',
1077 'permmode.net_each': '每个聊天问一次',
1078 'permmode.net_always': '总是允许',
1079 'permmode.net_never': '从不',
1080 'permmode.net_cut_mark': '无网络',
1081 'permmode.ask': '每次都问',
1082 'permmode.ask_blurb': '每条命令都先问你。访问网络也一样,每次对话问一次。',
1083 'permmode.guarded': '看守',
1084 'permmode.guarded_blurb': '命令照常运行。一旦读到别人写的东西,向外联络前先问你。',
1085 'permmode.bypass': '不再询问',
1086 'permmode.bypass_blurb': '无论读到什么,都不再询问。',
1087 'permmode.bypass_title': '不再询问?',
1088 'permmode.bypass_body': '命令在你的机器上运行,页面也不问就抓取——包括 Daimond 已经读过别人写的网页、邮件或构建日志之后。\n\n你交出的正是最后这种情况:不是你写的东西,可能说动 Daimond 把你的成果送到别处。\n\n不受影响的是:命令运行所在的围栏、每个 Diamond 自己的文件夹、系统调用过滤器,以及你事后可以查看的日志;来自外部的文字仍然标记为别人的话。\n\n以后不会再问。',
1089 'permmode.bypass_ok': '使用不再询问',
1090 'permmode.run_title': '运行这条命令?',
1091 'permmode.run_body': 'Daimond 想在你的机器上运行一条命令。\n\n{cmd}\n\n位置:{cwd}\n\n“每次都问”这个权限模式会先把每条命令交给你看。',
1092 'permmode.run_ok': '运行',
1093 'permmode.net_title': '让这条命令联网吗?',
1094 'permmode.net_body': 'Daimond 读过别人写的东西,所以命令正在无网络下运行。它读到的内容可能决定这条命令的去向。\n\n{cmd}\n\n位于 {cwd}\n\n“是”只放行这一条命令。“否”仍会运行这条命令,只是没有网络——什么都不说也是如此。',
1095 'permmode.net_ok': '允许联网',
1096 'permmode.net_remember': '在每个对话中都允许,不再询问',
1097 'permmode.act_worker_title': '有智能体想在页面上操作',
1098 'permmode.act_worker_body': '一个自己在跑的智能体想在 {host} 上点击某个东西。不是你在操作它,它也没法自己问你,所以由 Daimond 来问。点一下就可能花掉你的钱、发出一条消息或者提交表单,而这些都收不回来。答应就只允许这一次点击,之后的都不算在内。',
1099 'permmode.type_worker_body': '一个自己在跑的智能体想把下面这段话输入 {host} 并发送:\n\n{text}\n\n不是你在操作它,它也没法自己问你,所以由 Daimond 来问。发给网站的文字收不回来。答应就只允许这一次,之后的都不算在内。',
1100 'permmode.net_not_fetch': '这里说的是命令。Daimond 自己抓取的网页是另一个问题:每次对话问一次,在那里答应之后,直到这次对话结束都适用于所有站点。',
1101 'pal.kind_permmode': '权限',
1102 'chat.compacted': '对话已折叠',
1103 'chat.compacted_help': 'Daimond 把较早的部分换成了摘要,好让这段对话装进模型的上下文窗口。',
1104 'chat.fold_boundary': '这条线以上的内容,模型已不再按原文保留 —— 它拿到的是这条提示里的摘要,加上最近的 {kept} 条消息。上面的内容仍留在你的屏幕上,你依然可以阅读和引用。',
1105 'chat.shortened': '已为模型缩短回答',
1106 'chat.shortened_help': '为了让这段对话装进模型的上下文窗口,Daimond 把较早的回答缩短后再发出。它们的每一个字都还留在你的屏幕上和记录里。',
1107 'chat.working_more': '+{n} 个字符',
1108
1109 // ── 送达核对 ───────────────────────────────────────────────
1110 // 一个页面在核对自己。核对项的名字是给人一眼扫下来的,所以要短;
1111 // 细节是失败时写在下面的那句话。
1112 'verify.page_title': '核验 Daimond',
1113 'verify.page_lede': '核对这个页面来自的 Daimond,就是公开发布的开源代码。证据是一个你自己也能算出来的哈希。',
1114 'verify.checking': '正在核对这个构建…',
1115 'verify.recheck': '再核对一次',
1116 'verify.hashing': '正在对送达的文件做哈希… {done} / {total}',
1117 'verify.ids': '构建 {build} · 整包 {bundle}',
1118 'verify.verdict_ok': '这个构建就是公开发布的源码,并且已经封存。',
1119 'verify.verdict_no': '这个构建与公开发布的源码不一致。',
1120 'verify.verdict_partial': '没能完整核验。下面的检查会说明原因。',
1121 'verify.independent': '独立的核验。',
1122 'verify.independent_body': '页面没法完全为自己作保。请构建公开的源码并运行核验工具;这个回路里没有一样东西是这台服务器能左右的:',
1123 'verify.this_site': '这个站点',
1124 'verify.green_means': '绿色表示这个站点送达的字节,就是你刚刚构建出来的源码,而且那个构建是<a href="{url}">公开透明日志</a>里一条已封存的记录。',
1125 'verify.check_manifest': '清单',
1126 'verify.check_self': '清单自洽',
1127 'verify.check_log': '公开透明日志',
1128 'verify.check_sealed': '已封存进公开日志',
1129 'verify.check_files': '每个送达的文件都与清单相符',
1130 'verify.no_manifest': '这个构建送达时没有 manifest.json,所以无法核对',
1131 'verify.self_mismatch': '清单里的整包哈希和它的文件列表对不上',
1132 'verify.log_broken': '公开日志不是一条完整的链:{reason}',
1133 'verify.log_unreachable': '连不上公开日志(离线,或被策略拦下);要确认请运行 verify/check.mjs',
1134 'verify.on_record': '记录在案的发布有 {n} 次',
1135 'verify.never_published': '送达的这个包不在公开历史里;它从未被发布过',
1136 'verify.unreadable': '(读不出来)',
1137 'verify.files_differ': '{n} 个不一致:{list}',
1138 'verify.files_ok': '{n} 个文件',
1139 'verify.chain_order': '第 {n} 条顺序不对',
1140 'verify.chain_break': '第 {n} 条没有接在 {prev} 后面',
1141 'verify.chain_hash': '第 {n} 条哈希对不上',
1142 'verify.caveat': '页面没法为自己作保:被动过手脚的服务器,也能对这项核对动手脚。要拿到独立的结论,就去构建公开的源码并运行 verify/check.mjs,或者用送达核验的浏览器扩展。这台服务器两样都碰不到。',
1143
1144 // ── 版本与发布历史 ─────────────────────────────────────────
1145 'rel.version': '版本',
1146 'rel.prerelease': '预发布',
1147 'rel.unsealed': '未封存',
1148 'rel.update_ready': '更新已就绪',
1149 'rel.not_published': '未发布',
1150 'rel.planned': '计划中',
1151 'rel.next': '下一个',
1152 'rel.you_are_here': '你在这里',
1153 'rel.today': '今天',
1154 'rel.yesterday': '昨天',
1155 'rel.days_ago.one': '{n} 天前',
1156 'rel.days_ago.other': '{n} 天前',
1157 'rel.months_ago.one': '{n} 个月前',
1158 'rel.months_ago.other': '{n} 个月前',
1159 'rel.years_ago.one': '{n} 年前',
1160 'rel.years_ago.other': '{n} 年前',
1161 'rel.title_named': '{name},构建 {build},发布于 {date}。',
1162 'rel.title_prerelease': '预发布,构建 {build},发布于 {date}。',
1163 'rel.title_behind': '已经发布了更新的构建;重新加载即可用上。',
1164 'rel.title_click': '点击查看改了什么。',
1165 'rel.title_unlogged': '这个构建不在已发布的日志里。点击查看历史。',
1166 'rel.no_date': '还没发布,也没承诺日期。',
1167 'rel.no_history': '读不到已发布的历史。',
1168 'rel.none_declared': '还没有宣布过任何发布。你跑的是第一个发布之前的构建。',
1169 'rel.sealed_no': '封存 #{n}',
1170 'rel.sealed_builds.one': '{n} 个已封存的构建',
1171 'rel.sealed_builds.other': '{n} 个已封存的构建',
1172 'rel.foot': '发布是宣布出来的,构建是部署出去的。这里每一个构建都记在一条链里,动它就会断。回到旧版本的路是有意不留的。',
1173
1174 // ── 更新 ───────────────────────────────────────────────────
1175 'update.checking': '正在检查更新…',
1176 'update.latest': '你用的是最新版本',
1177 'update.ready': '更新已就绪',
1178 'update.click_now': '点击立即更新。',
1179 'update.ready_help': '更新已就绪。这件事做完就会应用,也可以点击强制应用。',
1180 'update.updated': 'Daimond 已更新',
1181 'update.stale': 'Daimond 版本过旧,必须重新加载才能继续工作。点击重新加载。',
1182
1183 // ── Typst ──────────────────────────────────────────────────
1184 // {reason} 是编译器自己的诊断信息,原样保留。
1185 'typst.load_failed': 'Typst 编译器加载失败:{reason}',
1186 'typst.no_pdf': 'Typst 没有产出 PDF(未知的编译错误)。',
1187 'typst.compile_error': 'Typst 编译错误:{reason}',
1188 'typst.pack_locked': '排版属于本账户尚未购买的工具包。名称和价格见「工具」面板:一次购买,长期保留,用钱支付而非扣除额度。',
1189 'typst.watch.starting': '正在排版页面…',
1190 'typst.watch.building': '正在重新编译…',
1191 'typst.watch.live_preview': '实时预览',
1192 'typst.watch.stale': '显示的是最后一次编译成功的结果',
1193 'typst.watch.held': '已停止重新编译',
1194 'typst.watch.dead': '编译器已停止',
1195 'typst.watch.rebuild': '重新编译',
1196 'typst.watch.nothing': '编译器没有产出任何内容,也没有说明原因。',
1197 'typst.watch.heap': '编译器占用了 {heap} MB,再编译一次可能还需要 {more} MB,超出本页允许的 {budget} MB。每次保存就重新编译已经停止,下方是最后一次编译成功的页面。编译器无法把这块内存交回——重新加载页面可以从头开始,或者按「重新编译」再试一次。',
1198 'typst.watch.spin': '一个监看的文件一直说它变了,而它太大,无法读回来核对:为它连续排了 {n} 次页面。每次保存就重新编译已经停止,以免占满编译器的内存。需要页面时请按「重新编译」。这个文件是 {what}。',
1199 'typst.watch.page': '页',
1200 'typst.watch.zoom_out': '缩小',
1201 'typst.watch.zoom_in': '放大',
1202 // 按钮上只放一个词,较长的说法放在悬停时的标题里。
1203 'typst.watch.fit_width': '适应宽度',
1204 'typst.watch.fit_page': '适应整页',
1205 'typst.watch.paper_dark': '深色',
1206 'typst.watch.paper_light': '浅色',
1207 'typst.watch.paper_dark_why': '深色纸张,适合夜里阅读',
1208 'typst.watch.paper_light_why': '浅色纸张',
1209 'typst.watch.sections': '章节',
1210 'typst.watch.sections_none': '这个文档没有可以列出的标题。',
1211 'typst.watch.dead_why': '编译器在这份文档上耗尽了内存,不重新加载页面就无法重启。下方是最后一次编译成功的页面。请重新加载,然后再次打开同一个文件。',
1212
1213 // ── 提示 ───────────────────────────────────────────────────
1214 'toast.copied': '已复制',
1215 'render.copy_failed': '失败',
1216
1217 // ── 管理抽屉的标题 ─────────────────────────────────────────
1218 // 抽屉顶上的名字,随它装着什么而变。
1219 'drawer.admin': '管理',
1220 'drawer.models': '模型',
1221 'drawer.version': '版本',
1222 'drawer.credits': '额度',
1223 'drawer.push': '推送',
1224
1225 // ── 对话框 ─────────────────────────────────────────────────
1226 'dlg.are_you_sure': '确定吗?',
1227 'dlg.ok': '好',
1228 'dlg.done': '完成',
1229 'dlg.not_now': '暂不',
1230
1231 // ── 管理抽屉的主菜单 ───────────────────────────────────────
1232 'home.connect_model': '连接一个模型',
1233 'home.connect_note': 'Daimond 需要一个提供商密钥或一些额度,才能回答。',
1234 'home.locked': '已锁定。输入你的密码短语来解锁这台设备。',
1235 'home.sec_account': '账户',
1236 'home.sec_prompts': '提示词',
1237 'home.sec_accounts': '所有账户',
1238 'home.create_account': '创建账户…',
1239 'home.account_note': '账户就是留在这台设备上的一句密码短语。它给你的 API 密钥加密,也用来登录取用额度。什么都不会离开浏览器。',
1240 'home.fingerprint': '你这台设备的身份指纹',
1241 'home.change_name': '改名…',
1242 'home.handle_help': '你的公开名称:别人看到的名字,这个账户的每台设备上都一样。',
1243 'home.change_handle': '改公开名称…',
1244 'handle.rename_title': '改公开名称',
1245 'home.change_passphrase': '更改密码短语…',
1246 'home.add_passkey': '添加通行密钥…',
1247 'home.remove_passkey': '移除通行密钥',
1248 'home.export_backup': '导出备份',
1249 'home.import_backup': '导入备份…',
1250 'home.dashboard': 'Daimond 控制台 ↗',
1251 'home.signed_in_as': '你现在的角色是 {role}。',
1252 // {role} 是某个提示词角色的名称,由调用方转成小写。
1253 // 引号是为了让角色名和前后的字分开:有的角色名以拉丁字母开头。
1254 'home.edit_prompt': '编辑“{role}”提示词…',
1255 'home.prompt_opens': '在文档面板里打开 {path}。',
1256 'home.prompts_note': '每个智能体运行时遵循的指令,以文件的形式放在你的工作区里。改一个,下一轮就生效;删掉它,原来的那份就回来。不管你写什么,有两条规矩始终成立:网页或邮件只是数据,永远不是指令;任何撤不回来的事,都要先问过你。',
1257 'home.switch_to': '切换到{name}',
1258 'home.unnamed_account': '未命名账户',
1259 'home.add_account': '+ 添加另一个账户',
1260 'home.accounts_note': '每个账户都有自己的聊天、密钥、额度和文件。切换时会锁上这一个、打开另一个。任何账户都看不到别的账户的数据。',
1261 'home.log_out': '退出登录',
1262 'home.sec_devices': '设备',
1263 'home.sec_console': '控制台',
1264 'home.console_open': '打开运营控制台',
1265 'home.console_note': '此账户拥有 {role} 角色。控制台会在新标签页打开,并沿用当前登录。',
1266 'home.sec_push': '推送',
1267 'home.push_setup': '设置 git push…',
1268 'home.push_to': '更换 {host} 的推送令牌…',
1269 'home.push_help': '有令牌,Daimond 就能把提交过的内容推送出去。没有也照样能提交,但每次推送都会被拒绝。',
1270
1271 // ── The credential a push travels with ─────────────────────
1272 // Two boxes and no more: the user name a token travels as is a per-forge
1273 // constant, so it is inferred from the host rather than asked for. Every line
1274 // here says what happens if it is skipped, because "no credential" and
1275 // "authentication failed" look identical from inside a refused push.
1276 'push.lead': '有令牌,Daimond 就能把你提交过的工作推送出去。没有令牌也照样能提交,但每次推送都会被拒绝,工作只留在这台机器上。',
1277 'push.host': '主机',
1278 'push.host_ph': 'github.com',
1279 'push.host_note': '只填名字,比如 github.com。不要 https://、端口和路径。只有这台主机会通过认证;别处的仓库会被拒绝,你的令牌不会到那里。',
1280 'push.token': '令牌',
1281 'push.token_ph': '粘贴一个有推送权限的令牌',
1282 'push.token_note': '有推送权限就够了,令牌从不需要更多。Daimond 只推送,只快进,也只推到 origin。即使令牌允许,force、delete、mirror 和其他远程都会被拒绝。清空这一栏再保存就是删除它。',
1283 'push.save': '保存',
1284 'push.privacy': '令牌会用你的密码短语加密,只留在这个浏览器里。不会再显示,不会发给我们,也不会交给模型。没有账户就没有东西可以加密它,那样它只在这个标签页里有效,重新加载后会再问一次。',
1285 'push.set': '已设置。推送会到 {host}。',
1286 'push.none': '未设置。在这里保存令牌之前,每次推送都会被拒绝。',
1287 'push.saved': '已保存。用你的密码短语加密,每次解锁后都会用上。',
1288 'push.cleared': '已删除。在这里保存令牌之前,推送会再次被拒绝。',
1289 'push.session_only': '只在这个标签页里有效。没有账户就没有东西可以加密它,重新加载会再问一次。想留住它就创建一个账户。',
1290 'push.err_host': '填上推送要去的主机,比如 github.com;要删除凭据就把令牌那一栏清空。',
1291 'push.err_not_held': '没有被接受,所以现在没有推送凭据。检查一下主机和令牌。',
1292 'push.not_resealed': '密码短语已经改了,但推送令牌没能用新的重新加密。重新加载之前推送还能用。想留住它就再设置一次令牌。',
1293 'push.the_token': '你的推送令牌',
1294
1295 // ── 同步这个账户的设备 ─────────────────────────────────────
1296 'devices.on_platform': '{platform} 上的 {brand}',
1297 'devices.unknown': '这台设备',
1298 'devices.this_device': '这台设备',
1299 'devices.only_this': '只有这台设备在同步这个账户。',
1300 // 给设备起名字的地方。名字是用户自己写的字,只在加密数据里流转,
1301 // 文案要把这点说清楚。
1302 'devices.rename_title': '给这台设备起个名字',
1303 'devices.rename_body': '用来和别的设备区分的名字。把框清空,就回到“{derived}”。名字和你自己的加密数据存在一起,只会传到你自己的其他设备上。',
1304 'devices.rename_aria': '重命名{name}',
1305 'devices.note': '同步过这个账户的设备。有这个账户、却从未同步过的设备不会列出来。这里不能让哪台设备退出登录。关联的设备和这台持有同样的密钥,只能在那台设备上处理。',
1306 'devices.remove_aria': '移除{name}',
1307 'devices.remove_body': '“{name}”会从这个列表里去掉。这不会让那台设备退出登录。它和这台持有同样的密钥,下次同步时又会回来。',
1308 'devices.remove': '移除',
1309 'devices.remove_title':'移除这台设备',
1310
1311 // ── 侧栏下方的状态行 ───────────────────────────────────────
1312 'astat.offline': '离线',
1313 'astat.service_unreachable': '账户服务连不上',
1314 'astat.no_account': '没有额度账户',
1315 'money.daimond_credits': 'Daimond 额度',
1316 'money.own_key': '你的 {provider} 密钥',
1317 'money.own_keys': '你自己的密钥',
1318 'money.left_at_rate': '按此速度约 {mins} 分钟',
1319 'money.spent_so_far': '已花费 {amt}',
1320 'money.spent_help': '你的服务商不提供余额,因此这里显示的是 Daimond 开始统计以来这把密钥的花费。',
1321 'money.estimate_help': '你自己填的金额,减去此后的花费。充值后请在“模型”中更新。',
1322 'astat.locked': '已锁定',
1323 'astat.credits': '额度',
1324 'astat.credits_help': '购买额度,或者连接你自己的提供商密钥',
1325 'astat.pro_owned': '已拥有',
1326 'astat.pro_owned_help': '你已拥有 Daimond Pro。同步、云端存储和 Email 都已开启。',
1327 'astat.pro_ended': '授权已结束',
1328 'astat.pro_ended_help': '你的 Pro 授权已经结束。同步、云端存储和 Email 已关闭;这台设备上的东西一点没动。',
1329 'astat.pro_upgrade': '升级到 Pro',
1330 'astat.pro_upgrade_help': '购买五年 Pro,就能打开同步、云端存储和 Email。',
1331 'astat.tools': '工具 · {have}',
1332 'astat.tools_of': '工具 · {have}/{all}',
1333 'astat.tools_help': 'Daimond 能做什么,以及其余的要花多少钱。',
1334 'astat.workspace_browser': '工作区 · 浏览器',
1335 'astat.workspace_native': '工作区 · 本机',
1336 'astat.evictable': '可能被清除',
1337 'astat.store_of': '浏览器允许的 {quota} 中,已用 {used}。',
1338 'astat.store_persistent': '已标记为持久,所以浏览器不会清除它。',
1339 'astat.store_evictable': '不是持久存储:存储吃紧时,浏览器可能清掉这个工作区。点击可申请永久存储。',
1340 'astat.not_connected': '未连接',
1341 'astat.native_help': '让智能体在这台机器上的一个真实文件夹里干活。',
1342 'astat.n_files': '{n} 个文件',
1343 'astat.counting': '正在数。点击可停止。',
1344 'astat.part': '(部分)',
1345 'astat.counted': '{folder} 下有 {n} 个文件。',
1346 'astat.counted_partial': '{folder} 下有 {n} 个文件,数到你叫停为止。',
1347 'astat.count_again': '点击可重新数一遍。',
1348 'astat.count_offer': '点击可数一遍。浏览器不会告诉你一个真实文件夹有多大,数一遍又要读遍每个文件,目录大就会花些时间。你随时可以停下。',
1349
1350 // ── Pro,用它自己的话说 ────────────────────────────────────
1351 'pro.owned_plain': '你已拥有 Daimond Pro。跨设备同步、云端存储和 Email 都已开启。没有订阅,也不会续费。',
1352 'pro.offer_plain': '付一次钱,Pro 用五年。它会开启跨设备同步、云端存储和 Email,你自己的邮件就能在工作区里收发。没有订阅,也不会续费:五年之后,要不要再买由你决定。推理、流量这类按量计费的部分,仍然从额度里扣。',
1353 'pro.checkout_failed': '无法开始结账',
1354 'pro.term_note': 'Pro 自购买之日起用五年。',
1355 'pro.ends_on': '你的 Pro 授权将于 {date} 结束。',
1356 'pro.ended_on': '你的 Pro 授权已于 {date} 结束。同步、云端存储和 Email 已关闭;这台设备上的东西一点没动,已经存上去的内容也还能取回来。',
1357 'pro.buy_again': '再买五年',
1358 'pro.buy_again_priced': '以 {price} 再买五年',
1359
1360 // ── 外发关口 ───────────────────────────────────────────────
1361 // 被引导的智能体和一个会把用户信息带出去的请求之间,最后的一道门。
1362 // {host} 是主机名,把它放在读者会去找的位置。
1363 'egress.type_title': '要在 {host} 上输入吗?',
1364 'egress.type_body': '这一轮读过你工作区以外的内容。Daimond 现在想在 {host} 的页面上输入,那可能会把内容发出去。\n\n它想输入的是:\n\n{text}\n\n如果这不是你预料中的事,就拒绝。',
1365 'egress.type_ok': '输入',
1366 'egress.nothing': '(没有内容)',
1367 'egress.act_title': '要在 {host} 上操作吗?',
1368 'egress.act_body': '这一轮读过你工作区以外的内容。Daimond 现在想在 {host} 的页面上操作。\n\n页面上的链接是写页面的人写的,点开一个,可能会把信息一起带走。\n\n只有在你预料到的时候才允许。',
1369 'egress.act_ok': '允许在 {host} 上操作',
1370 'egress.heavy_title': '要把这个发到 {host} 吗?',
1371 'egress.heavy_body': '这一轮读过你工作区以外的内容。Daimond 现在想用一个异常长的地址去访问 {host}。\n\n地址本身也能把信息带出去。这一条带的是:\n\n{text}\n\n如果这不是你预料中的事,就拒绝。除了这一次请求,什么都不会丢。',
1372 'egress.heavy_ok': '仍然发送',
1373 'egress.reach_title': '要访问 {host} 吗?',
1374 'egress.reach_body': '这一轮读过你工作区以外的网页或信件,里面可能有东西正在操纵 Daimond。\n\n它现在想访问 {host},这是它此前没去过的地方。它知道的任何事,都可能夹在那个地址里带出去。\n\n只有在你预料到的时候才允许。',
1375 'egress.reach_ok': '允许 {host}',
1376 'egress.any_title': '允许 Daimond 访问任何网站吗?',
1377 'egress.any_body': '这次对话读过别人写的网页或信件,里面可能有东西正在操纵 Daimond。\n\n它现在想访问 {host}。\n\n答应之后,在这次对话余下的时间里,它可以访问任何网站,而不只是这一个,这里也不会再问你。Daimond 知道的任何事都能写进一个网址,所以它访问的页面可能把你的话一并带走。\n\n新的聊天会重新问,新的代蒙也会。异常长的地址无论你现在怎么回答,都会单独再问你一次。',
1378 'egress.any_ok': '在这里允许任何网站',
1379 // 搜索里出去的是搜索词,不是地址。{query} 单独占一段,不加引号 ——
1380 // 搜索词自己就可能带着引号。
1381 'egress.search_title': '要上网搜索吗?',
1382 'egress.search_body': '这一轮读过你工作区以外的内容。Daimond 现在想上网搜索。\n\n它想搜索的是:\n\n{query}\n\n用的是 {engine},这是你的设置。离开这台设备的,就是这条搜索词。\n\n如果这不是你预料中的事,就拒绝。除了这一次搜索,什么都不会丢。',
1383 'egress.search_ok': '执行这次搜索',
1384
1385 // ── 侧栏里的一张聊天卡片 ───────────────────────────────────
1386 'chat.tool_refused': '已拒绝',
1387 'chat.tool_failed': '失败',
1388 'chat.copy_message': '复制消息',
1389 'chat.include_turn': '折叠时把这一轮算进去',
1390 'chat.connect_to_chat': '连接一个提供商,或者先解锁,才能用这个模型聊天。',
1391 'tile.cost_estimated': '估算值。这个模型不在价目表里。',
1392 'tile.cost_so_far': '这次聊天到目前为止的花费。',
1393 'tile.click_to_open': '点击打开,双击重命名',
1394 'tile.settings': '此磁贴的设置',
1395 'tile.settings_named': '「{name}」的设置',
1396 'tile.close_named': '关闭“{name}”',
1397 'tile.dlg_name': '名称',
1398 'tile.dlg_name_hint': '未命名:侧栏显示时间',
1399 'tile.dlg_running': '运行',
1400 'tile.dlg_detail': '详略',
1401 'tile.spend_help': '该 Diamond 的花费(共 {turns} 轮)。',
1402 'tile.detail_default': '默认({what})',
1403 'tile.detail_default_help': '跟随“外观”中设定的视图,以及之后的任何更改。',
1404 'tile.detail_simple': '简洁',
1405 'tile.detail_simple_help': '名称、是否在运行,以及正在等待的东西。',
1406 'tile.detail_max': '完整',
1407 'tile.detail_max_help': '模型、上下文、费用、版本,以及最后一次变动的时间。',
1408 'tile.detail_note': '除非在此另行设置,磁贴将跟随视图。',
1409 'tile.dlg_delete': '删除',
1410 'tile.start': '开始',
1411 'tile.start_help': '确认模型并开始这次聊天',
1412 'tile.workers': '工人',
1413 'tile.worker_model_help': '工人跑在哪个模型上。不动它,它们就跑在聊天自己的模型上。',
1414 'tile.folded': '已折叠',
1415 'tile.fold_all': '全部折叠',
1416 'tile.folded_help': '已经折叠进“{name}”。再折叠一次,就能把之后新增的内容加进去。',
1417 'tile.fold_all_help': '把整场聊天折叠进一个 Diamond',
1418 'tile.dlg_colour': '颜色',
1419 'tile.colour_bg': '背景',
1420 'tile.colour_fg': '文字',
1421 'tile.colour_clear':'改回主题的颜色',
1422 'tile.colour_faint':'这两个颜色的对比度是 {ratio}:1,低于这么大的字通常要求的 {min}:1 下限。就按你选的留着。',
1423
1424 // ── 支出管束 ───────────────────────────────────────────────
1425 'gov.past_budget': '远超这次运行的预算',
1426 'gov.faster': '花得比平时快',
1427 'gov.per_min': '{rate}/分钟',
1428 'gov.run_spent': '这次运行已经花掉 {spent},节奏预算是 {budget}。要大批分派之前会先问过你。',
1429 'gov.fanout_body.one': '这个 Diamond 就要跑 {n} 个智能体,大约 {total}(每个约 {each})。',
1430 'gov.fanout_body.other': '这个 Diamond 就要跑 {n} 个智能体,大约 {total}(每个约 {each})。',
1431 'gov.burst_spent': '这一阵已经花掉 {spent}。',
1432 'gov.would_pass': '那会超过你给一次运行定的 {budget} 节奏预算。',
1433 'gov.run_n.one': '跑 {n} 个智能体',
1434 'gov.run_n.other': '跑 {n} 个智能体',
1435 'spend.includes_estimate': '估算值。这里至少有一个模型不在价目表里。',
1436
1437 // ── 侧栏里的 Diamond 与聊天 ────────────────────────────────
1438 'rail.no_diamonds': '还没有 Diamond。',
1439 'rail.no_match': '没有匹配的 Diamond。',
1440 'rail.no_chats': '还没有聊天。',
1441 'rail.not_synced': '尚未同步',
1442 'rail.not_synced_help': '这段对话在你的另一台设备上,还没有传到这里。',
1443 // 什么都还没打标签时,显示在搜索框下面,免得空的分类被当成没有分类。
1444 'rail.tag_hint': '还没有标签。给 Diamond 加上标签,这里就会出现可以筛选的标签。',
1445 'rail.tag_hint_help': '打开一个 Diamond,再打开它晶体上的标签。那里备好了起步用的标签:{tags}。',
1446 'rail.dblclick_rename': '双击可重命名',
1447 'rail.rename_diamond': '重命名 Diamond',
1448 'rail.rename': '重命名',
1449 'rail.rename_failed': '重命名失败',
1450 'rail.delete_failed': '删除失败',
1451 'rail.create': '创建',
1452 'rail.name': '名称',
1453 'rail.model': '模型',
1454 'rail.worker_model': '工人用的模型',
1455 'rail.worker_model_help': 'daimon 会一次派出好几个工人。不动它,它们就跑在 Diamond 自己的模型上。',
1456 'rail.err_no_key_worker': '工人那边的提供商还没有可读的密钥,它们会退回 Diamond 自己的模型。请解锁密钥,或者换一家提供商。',
1457 'rail.err_name': '给这个 Diamond 起个名字。',
1458 'rail.err_model': '给这个 Diamond 选一个用来思考的模型。',
1459 'rail.err_no_key': '那家提供商还没有可读的密钥。请解锁,或添加一个。',
1460 'rail.create_failed': '无法创建 Diamond',
1461 'rail.created_unreadable': 'Diamond 建好了,却读不出来',
1462 'rail.created_unreadable_body': '“{name}”写进去了,却读不回来,所以它不在侧栏里。请重新加载页面。如果还是不见,说明这台设备的存储收下了数据却不肯交出来。',
1463
1464 // ── 一场聊天是什么时候的,以及把它留下 ─────────────────────
1465 'rail.day_today': '今天',
1466 'rail.day_yesterday': '昨天',
1467 'rail.day_earlier': '更早',
1468 'rail.when_now': '刚刚',
1469 'rail.when_min': '{n} 分钟前',
1470 'rail.when_hr': '{n} 小时前',
1471 'rail.a_chat': '一场聊天',
1472 'rail.chat_from': '{when}的聊天',
1473 'rail.show_preview': '显示第一条消息',
1474 'rail.show_preview_help': '在时间下面显示你在每场聊天里最先说的话。关掉后,侧栏就只说时间。',
1475 'tile.keep': '保留',
1476 'tile.keep_help': '把这场聊天做成一个 Diamond,整段对话作为它的第一件产物。',
1477 'keep.title': '保留为 Diamond',
1478 'keep.body': '给它起个名字,这段对话就完整地留在里面。聊天会到期消失,Diamond 不会。',
1479 'keep.ok': '保留',
1480 'keep.gone': '那场聊天已经不在了',
1481 'keep.gone_body': '它在这台或另一台设备上被彻底删除了。什么也没有创建。',
1482 'keep.made': '已保留 {name},对话就在里面。',
1483 'keep.made_bare': '已创建 {name},但对话没能写进去。',
1484
1485 // ── PPTW:暂停 / 播放 / 信号灯 ─────────────────────────────
1486 'pause.everything': '全部',
1487 'pause.everything_help': '暂停或恢复所有会产生费用的东西:每个 Diamond、每个对话、工作代理、邮箱,以及替你抓取的网页。',
1488 'pause.act_pause': '暂停 {name}',
1489 'pause.act_play': '恢复 {name}',
1490 'pause.state_play': '运行中',
1491 'pause.state_pause': '已暂停',
1492 'pause.state_mixed': '部分暂停',
1493 'pause.this': '此项',
1494 'pause.workers': '工作代理',
1495 'pause.mail': '邮件',
1496 'pause.mail_polling': '邮箱轮询',
1497 'pause.unnamed_chat': '未命名对话',
1498 'pause.web': '网页',
1499 'pause.refused_title': '已暂停',
1500 'pause.refused.turn': '{node}已暂停。没有开始任何回合,也没有产生费用。按它的播放键即可恢复。',
1501 'pause.refused.dispatch': '{node}已暂停。没有派出任何工作代理,也没有产生费用。按它的播放键即可恢复。',
1502 'pause.refused.web': '{node}已暂停。没有抓取该页面,也没有产生费用。按它的播放键即可恢复。',
1503 'pause.refused.mail': '{node}已暂停。没有连接该邮箱,也没有产生费用。按它的播放键即可恢复。',
1504 'pause.state_idle': '这里没有东西会自行动作',
1505
1506 // ── 标签 ───────────────────────────────────────────────────
1507 'tag.only_agents': '只显示标了“{tag}”的智能体',
1508 'tag.only_diamonds': '只显示标了“{tag}”的 Diamond',
1509 'tag.clear_filter': '清除“{tag}”筛选',
1510 'tag.remove': '移除“{tag}”',
1511 'tag.add': '添加“{tag}”',
1512 'tag.starters': '人, 项目, 主题, 组织',
1513 'tag.add_btn': '添加',
1514 'tag.add_ph': '添加标签',
1515 'tag.on_diamond': '此 Diamond 上',
1516 'tag.all': '所有标签',
1517 'tag.all_used': '你的所有标签都已加到此 Diamond。',
1518 'tag.none_yet': '还没有标签。',
1519 'tag.save_failed': '无法保存标签',
1520 // 侧栏的筛选:要的标签、不要的标签,以及两个以上要的标签如何组合。
1521 // 侧栏里的标签片按关闭、要、不要、关闭循环;摘要里的标签片则整个
1522 // 退出筛选。
1523 'tag.exclude_next': '正在显示标了“{tag}”的 Diamond。再点一次就隐藏',
1524 'tag.clear_exclude': '不再隐藏标了“{tag}”的 Diamond',
1525 'tag.not_tagged': '没标“{tag}”',
1526 'tag.mode_all': '全部',
1527 'tag.mode_any': '任一',
1528 'tag.mode_all_help': '只显示这些标签都有的 Diamond',
1529 'tag.mode_any_help': '显示带有其中任一标签的 Diamond',
1530 'tag.mode_aria': '所选标签如何组合',
1531 'tag.clear_all': '清除',
1532 'tag.clear_all_help': '把所有标签移出筛选',
1533 // 搜索框下面那一行,标签片都收在它后面。只要有标签,这一行就在 — 看不
1534 // 见的筛选没人找得到;而它只占一行,是因为三十个标签摊开着,会让侧栏的
1535 // 两个列表每屏少掉四行。{n} 是收在后面的标签数。
1536 'tag.pool_toggle': '按标签筛选({n})',
1537 'tag.pool_show_help': '显示所有可以用来筛选的标签',
1538 'tag.pool_hide_help': '把标签收起来。正在筛选的标签仍然生效,也仍然看得见。',
1539 // 正在筛选的那些标签片。标签收起来时,只剩它们在外面。
1540 'tag.active_aria': '侧栏正在筛选的标签',
1541 // 从标签列表里删掉一个标签,它会从所有带着它的 Diamond 上取下来。
1542 'tag.delete_help': '把“{tag}”标签到处都删掉',
1543 'tag.delete_title': '删掉这个标签?',
1544 'tag.delete_body_used.one': '删掉“{tag}”标签?它会从挂着它的 {n} 个 Diamond 上取下来。那个 Diamond 的其他地方不变。',
1545 'tag.delete_body_used.other': '删掉“{tag}”标签?它会从挂着它的全部 {n} 个 Diamond 上取下来。这些 Diamond 的其他地方不变。',
1546 'tag.delete_body_unused': '删掉“{tag}”标签?没有 Diamond 挂着它,所以这只是把它从列表里去掉。',
1547 'tag.delete_ok': '删掉标签',
1548 'tag.deleted': '“{tag}”标签已删掉。',
1549 'tag.deleted_from.one': '已从 {n} 个 Diamond 上删掉“{tag}”标签。',
1550 'tag.deleted_from.other': '已从 {n} 个 Diamond 上删掉“{tag}”标签。',
1551 'tag.editor_note': '标签用来在侧栏里给这个 Diamond 归档。它们从不发给模型,也从不进入晶体。',
1552
1553 // ── 开始与打断一轮 ─────────────────────────────────────────
1554 'chat.choose_model': '选一个模型来开始这次聊天。',
1555 'chat.no_key_start': '那家提供商还没有可读的密钥。请解锁,或添加一个,才能开始这次聊天。',
1556 'chat.connect_start': '连接一个提供商,才能开始这次聊天。',
1557 'chat.pending_hint': '在这次聊天的卡片里选一个模型,然后按 ▶ 开始。',
1558 'chat.start_selected': '用选中的模型开始',
1559 'chat.stop': '停止',
1560 'turn.interrupted': '被打断了。这一轮还没做完,浏览器就关了。',
1561 'turn.interrupted_early': '还没来得及回答就被打断了。',
1562 'turn.offline': '连接在完成前中断了。没有内容丢失——可以从中断处继续。',
1563 'turn.offline_early': '连接在回答到达前中断了。没有内容丢失——可以从这里重新提问。',
1564 'turn.continue': '继续',
1565 'turn.continue_help': '从你那条消息开始,把这一轮重跑一遍。',
1566 'astat.no_model': '没有连接模型',
1567 'astat.model_help': 'Daimond 能跑的模型,以及它们背后的密钥',
1568
1569 // ── 把一场聊天折叠进 Diamond ───────────────────────────────
1570 'fold.nothing': '没有可折叠的内容',
1571 'fold.chat_empty': '这场聊天是空的。先发一条消息,再把它折叠进 Diamond。',
1572 'fold.turns_empty': '你选的那几轮里没有可折叠的内容。',
1573 'fold.agent_empty': '这个智能体没有产出可折叠的摘要。',
1574 'fold.into': '折叠进…',
1575 'fold.n_turns_into.one': '把 {n} 轮折叠进…',
1576 'fold.n_turns_into.other': '把 {n} 轮折叠进…',
1577 'fold.no_diamonds': '还没有 Diamond。新建一个:',
1578 'fold.new_diamond': '+ 新建 Diamond…',
1579 'fold.connect_first': '连接一个提供商,才能折叠进 Diamond。',
1580 'fold.create_and_fold': '创建并折叠',
1581 'fold.no_key': '那个 Diamond 的提供商没有可读的密钥。请解锁,或添加一个,才能折叠进去。',
1582 'fold.nothing_new': '没有新内容可折叠',
1583 'fold.nothing_new_body': '“{chat}”自从折叠进“{diamond}”之后就没有变过。',
1584 'fold.proposing': '正在拟折叠方案…',
1585 'fold.busy_title': '该 Diamond 正在工作',
1586 'fold.busy_body': '“{diamond}”有一轮正在进行,而折叠会改写同一个 crystal。等它结束后再折叠。',
1587 'fold.diamond_gone': 'Diamond 不见了',
1588 'fold.diamond_gone_body': '派出这个智能体的 Diamond 已经不存在了。',
1589 'fold.diamond_gone_chat_body': '你选的那个 Diamond 已经不存在了,可能在另一个标签页里被删掉了。什么也没有折叠。',
1590 'fold.empty_reply': '模型没有返回任何可折叠的内容,所以没有提出任何改动。再试一次。',
1591 'fold.proposed_toast': '已提出折叠。在下面接受或拒绝。',
1592 'fold.proposed_elsewhere': '已对“{diamond}”提出折叠。打开它来接受或拒绝。',
1593 'fold.pending_badge': '折叠待处理',
1594 'fold.pending_badge_help': '这个 Diamond 上有一个提出的折叠在等着。打开它来接受或拒绝这处改动。',
1595 // 折叠差异的标题。做成四种句式而不是一句加拼接,因为把目标放在前面的语言
1596 // 没法重排一个片段。
1597 'diff.folding_chat': '正在折叠“{chat}”。看一下改动,然后接受或拒绝。',
1598 'diff.folding_chat_into': '正在把“{chat}”折叠进“{diamond}”。看一下改动,然后接受或拒绝。',
1599 'diff.proposed': '折叠方案。看一下改动,然后接受或拒绝。',
1600 'diff.proposed_into': '折叠进“{diamond}”的方案。看一下改动,然后接受或拒绝。',
1601 'diff.no_change': '没有提出改动。晶体里已经涵盖了。',
1602 'diff.no_change_into': '没有对“{diamond}”提出改动。晶体里已经涵盖了。',
1603 'diff.accept': '接受折叠',
1604 'diff.reject': '拒绝',
1605 'diff.nothing_to_apply': '没有可应用的改动。方案和当前的晶体一致。',
1606 'fold.keys_lost': '接受之后会去掉:{keys}',
1607
1608 // ── 晶体 ───────────────────────────────────────────────────
1609 'crystal.page': '页面',
1610 'crystal.page_help': '让 daimon 改变这个晶体的外观,而不是它说的内容',
1611 'crystal.page_note': '改变这个 Diamond 的页面(crystal.html),而不是它的记忆(crystal.json)。先读 crystal.html,再编辑它,不要动 crystal.json。保持自包含:所有 CSS 和 JavaScript 内联,图片只用 data: URI,不要 fetch,不要外部文件,不要 eval。保留它的 ready、rendered 和 height 消息,并让 rendered 列出数据中每一个有内容的顶层键。页面也可以用 save 消息把文件保存到这个 Diamond,再用 asset 读回来,这样交互式页面就能留住用户做过的事。我想要的是:',
1612 'crystal.history': '历史',
1613 'crystal.tags': '标签',
1614 'crystal.tags_help': '在侧栏里给这个 Diamond 归档',
1615 'crystal.marks_unread': '读不到附件,所以这一轮只在 Diamond 里工作。',
1616 'crystal.empty': '晶体是空的。在下面引导它,就可以开始。',
1617 'crystal.empty_paren': '(空)',
1618 'crystal.save_failed': '无法保存晶体',
1619 'crystal.back': '回到晶体',
1620 'crystal.no_history': '还没有历史。',
1621 'crystal.view': '查看',
1622 'crystal.restore': '恢复',
1623 'crystal.restore_v': '恢复到 v{v}',
1624 'crystal.restore_title': '恢复某个版本',
1625 'crystal.restore_body': '把晶体恢复到 v{v}?当前的文本会留在历史里,所以这一步本身也能撤销。',
1626 'crystal.restore_failed': '无法恢复',
1627 'crystal.at_version': 'v{v} 时的晶体',
1628 'crystal.read_version_failed': '读不出那个版本',
1629 'crystal.delta': '增量',
1630 'crystal.delta_help': '这次折叠所依据的原始输入',
1631 'crystal.delta_at': '在 v{v} 折叠进来的增量',
1632 'crystal.read_delta_failed': '读不出这份增量',
1633 'crystal.steering': '引导中…',
1634 'crystal.no_key_steer': '这个 Diamond 的提供商没有可读的密钥。请解锁,或添加一个,才能引导它。',
1635 'crystal.page_failed': '这个 Diamond 的页面没有加载出来,所以改为显示它的数据。',
1636 'crystal.page_partial': '这个 Diamond 的内容没有在页面上全部呈现,所以改为显示它的数据。',
1637 'crystal.page_reset': '恢复默认页面',
1638 'crystal.page_reset_confirm': '把这个 Diamond 的页面换成默认页面?它的数据不会有任何改动。',
1639 'crystal.ask': '请代蒙修改这个页面',
1640 'crystal.edit_json': '以 JSON 编辑',
1641 'crystal.json_invalid': '这不是有效的 JSON,所以什么都没有保存。',
1642 'crystal.field_title': '标题',
1643 'crystal.field_summary': '摘要',
1644 'crystal.field_sections': '章节',
1645 'crystal.field_facts': '事实',
1646 'crystal.field_open': '未决的问题',
1647 'crystal.field_links': '链接',
1648 'crystal.field_heading': '小标题',
1649 'crystal.field_body': '正文',
1650 'crystal.add_section': '添加一节',
1651 'crystal.remove': '移除',
1652 'crystal.other_fields': '其他字段',
1653 'crystal.other_fields_note': '按原样保留,并显示在这里,这样不会有东西丢失。',
1654
1655 // ── 产物 ───────────────────────────────────────────────────
1656 'arte.count.one': '{n} 件产物',
1657 'arte.count.other': '{n} 件产物',
1658 'arte.strip_help': '这个 Diamond 产出或参考过的东西',
1659 'arte.refer_help': '在引导框里引用它',
1660 'arte.drop_help': '不是这个 Diamond 的产物',
1661 'arte.drop_named': '把「{name}」从产物中移除',
1662 'arte.file_fenced': '该路径不在此 Diamond 可读取的范围内',
1663 'arte.file_fenced_body': '围栏阻止了读取。请把该文件夹授权给此 Diamond,或把文件移到它已获授权的文件夹中。',
1664 'arte.file_gone': '那个文件已经不在了',
1665 'arte.file_gone_body': '“{path}”是这个 Diamond 的产物,但现在读不到了;它可能被改名、移走或删掉了。',
1666 'arte.nothing_to_open': '没有可打开的东西',
1667 'arte.no_viewer': '这件产物是“{kind}”,这个版本还没有能看它的查看器。',
1668
1669 // ── 附加到焦点 (ATTACH_CONTRACT.md) ────────────
1670 'attach.to_focus': '附加到当前焦点',
1671 'attach.note': '备注',
1672 'attach.read': '阅读',
1673 'attach.note_help': '值得知道这个路径。只花几个 token。',
1674 'attach.read_help': '现在就要读取内容。一个文件可能耗费成千上万个 token。',
1675 'attach.add': '添加附件',
1676 'attach.view_stack': '堆叠',
1677 'attach.view_icons': '图标',
1678 'attach.prefix_note': '记下 {paths}',
1679 'attach.prefix_read': '完整阅读 {paths}。',
1680 'attach.cleared': '附件已清除',
1681 'attach.list': '附件',
1682 'attach.pick_title': '附加文件和文件夹',
1683 'attach.pick_empty': '这里没有内容。',
1684 'attach.already': '已附加',
1685 'attach.ws_mark': '工作区',
1686 'attach.ws_add': '把文件夹放进工作区',
1687 'attach.add_mark': '放一个文件夹进去',
1688 'attach.mark_note': '勾选文件夹就把它放进去:这个工作区随后可以读取和修改里面的东西。勾选文件只是把它放到模型面前。',
1689 'attach.mark_focus': '把这个文件夹放进 {name},让它的 daimon 可以读取和修改里面的东西',
1690 'attach.not_here': '这个对话保留着它,但它在{where},不是你现在打开的工作区。从这里够不到。',
1691 'attach.ws_help': '这个对话可以读取和更改的文件夹。放进来就是授权,之后不会再问你。',
1692 'attach.ws_on': '在这个对话的工作区里:可以读取和更改其中的内容。按一下移出。',
1693 'attach.ws_off': '不在工作区里,所以这个对话打不开它。按一下放进来。',
1694 'attach.ws_empty': '还没有放入任何文件夹。这个对话碰不到你的任何东西,只有它自己的工作文件夹。用回形针,或上面的 + 放一个进来。',
1695 'attach.group_prompt': '交给模型的',
1696 'attach.group_prompt_help': '发送时会在提示中写出路径或引用内容。这不会带来任何访问权限。',
1697 'attach.read_block': '{path} 的内容:',
1698 'attach.read_cut': '{path} 就放到这里为止。',
1699
1700 // ── 这个 Diamond 的工作区 ──────────────────────────────────
1701 'dws.title': '这个 Diamond 的工作区',
1702 'dws.count.one': '{n} 项',
1703 'dws.count.other': '{n} 项',
1704 'dws.none_yet': '这里还没有放东西',
1705 'dws.mode_all': '全部',
1706 'dws.mode_diamond': '这个 Diamond',
1707 'dws.empty': '这个 Diamond 还没有留下任何东西。你留在这里的,就是它的 daimon 能打开的。',
1708 'dws.not_here': '留在这个 Diamond 里,但它在{where},不是你现在打开的这个工作区。它的 daimon 没法从这里够到它。',
1709 'dws.in_machine': '这台机器上的“{name}”文件夹里',
1710 'dws.in_browser': '浏览器工作区里',
1711 'dws.a_folder': '文件夹',
1712 'dws.attach_dir': '把这个文件夹留在 {name} 里',
1713 'dws.detach_dir': '不再把这个文件夹留在 {name} 里',
1714 'dws.kits': '工具链',
1715 'dws.kits_help': '来自这个 Diamond 的命令可以在你的电脑上使用哪些编译器和包管理器。在你允许之前一律关闭,也不由 daimon 来选。',
1716 'dws.kit_on': '把 {kit} 工具链授予 {name}',
1717 'dws.kit_off': '从 {name} 收回 {kit} 工具链',
1718 'dws.kit_failed': '该工具链没有保存',
1719 'dws.kit_none': '没有工具链。命令只能访问这个 Diamond 的文件,电脑上的其他内容都访问不到。',
1720 'dws.elsewhere': '在工作区里',
1721 'dws.readonly': '只读',
1722 'dws.showing': '正在显示',
1723 'dws.reach': '可及范围',
1724 'dws.reach_help': '这个 Diamond 的 daimon 可以写入的文件夹。两棵树里都会显示,因为两边都算数。',
1725 'dws.reach_own': '它自己的文件夹',
1726 'dws.reach_search': '没有指定路径的搜索只看这几处,别处不看。',
1727 'dws.reach_none': '没有放进别的东西,所以 {name} 的 daimon 写不到你的其他地方,没有指定路径的搜索也只看这里。',
1728 'dws.mark_here': '把“{name}”放进去',
1729 'dws.mark_here_help': '把你正在看的文件夹放进 {name} 的工作区。它的 daimon 就能读取和修改里面的东西,没有指定路径的搜索也会看那里。',
1730
1731 // ── Diamond 之间的关联 ─────────────────────────────────────
1732 'link.count.one': '{n} 个关联的 Diamond',
1733 'link.count.other': '{n} 个关联的 Diamond',
1734 'link.strip_help': '这个 Diamond 与你其他 Diamond 之间的关系',
1735 'link.none': '还没有和别的 Diamond 建立关联。',
1736 'link.this': '这个',
1737 'link.rel_blank': '关联',
1738 'link.out_help': '这个 Diamond → {rel} → “{name}”',
1739 'link.in_help': '“{name}” → {rel} → 这个 Diamond',
1740 'link.open_other': '显示“{name}”',
1741 'link.note_help': '显示这条关联上的备注',
1742 'link.drop': '移除关联',
1743 'link.drop_help': '移除这条关联',
1744 'link.drop_confirm': '移除与“{name}”的“{rel}”关联?两个 Diamond 都还在,走的只是这条关联。',
1745 'link.drop_failed': '无法移除这条关联',
1746 'link.gone': '那个 Diamond 已经不在了',
1747 'link.gone_body': '“{ref}”是从这个 Diamond 关联出去的,但现在读不到这个 id 对应的 Diamond;它可能已经被删掉了。',
1748 'link.gone_name': '(已删除的 Diamond)',
1749 'link.add_btn': '关联',
1750 'link.add_title': '把这个 Diamond 关联到另一个',
1751 'link.pick_label': 'Diamond',
1752 'link.pick_ph': '按名字找一个 Diamond',
1753 'link.pick_none': '没有匹配的 Diamond。',
1754 'link.pick_empty': '还没有别的 Diamond 可以关联。',
1755 'link.change_pick': '更改',
1756 'link.rel_label': '关系',
1757 'link.rel_sug_help': '只是建议,任何词都行',
1758 'link.rel_use': '用“{rel}”',
1759 'link.note_label': '备注',
1760 'link.note_ph': '为什么,一句话(可选)',
1761 'link.direction_note': '关联从这个 Diamond 指向你选的那个。',
1762 'link.need_target': '请先选好要关联到的 Diamond。',
1763 'link.save': '添加关联',
1764 'link.graph_open': '关系图',
1765
1766 // ── 智能体 ─────────────────────────────────────────────────
1767 'agents.none_yet': '还没有智能体。让一个 Diamond 派一个出来,它就会出现在这里。',
1768 'agents.no_match': '没有匹配的智能体。清掉搜索或筛选。',
1769 'agents.fold_in': '折叠进去',
1770 'agents.fold_in_help': '把这个智能体的摘要折叠进“{name}”',
1771 'agents.folded': '已折叠',
1772 'agents.already_folded': '已经折叠过了',
1773 'agents.already_folded_body': '这个智能体的摘要已经折叠进晶体了。',
1774 'agents.a_diamond': 'Diamond',
1775 'agents.clear_diamond_filter': '清除 Diamond 筛选',
1776 'agents.clear_chat_filter': '清除聊天筛选',
1777 'instructions.chip_help': '你的常设指令,交给每一个智能体。点击打开。',
1778 'instructions.chip_empty': '这里还没有内容。此文件会交给 Daimond 运行的每一个智能体。点击撰写。',
1779
1780 // ── 每一类智能体被告知的事 ─────────────────────────────────
1781 'role.chat': '聊天',
1782 'role.chat_help': '和你说话的那个智能体。',
1783 'role.daimon': 'Diamond daimon',
1784 'role.daimon_help': '守着一个 Diamond 的晶体,并派出工人。',
1785 'role.worker': '派出的工人',
1786 'role.worker_help': '一件任务,自己的上下文,做完回报。',
1787 'role.reducer': '晶体折叠',
1788 'role.reducer_help': '把一份增量折叠进晶体。',
1789
1790 // ── 工作区面板 ─────────────────────────────────────────────
1791 'files.rest': '\u8fd9\u4e2a\u6587\u4ef6\u5939\u7684\u5176\u4f59\u90e8\u5206',
1792 'files.rest_count.one': '{n} \u9879',
1793 'files.rest_count.other': '{n} \u9879',
1794 'files.rest_help': '\u8fd9\u4e2a\u6587\u4ef6\u5939\u91cc\u7684\u5176\u4f59\u4e00\u5207\uff1a\u540d\u5b57\u4ee5\u70b9\u5f00\u5934\u7684\u6587\u4ef6\u548c\u6587\u4ef6\u5939\uff0c\u4ee5\u53ca Daimond \u4e3a\u81ea\u5df1\u7684\u5de5\u4f5c\u4fdd\u7559\u7684\u90a3\u4e9b\u2014\u2014\u4f60\u7684\u89c4\u5219\u548c\u6280\u80fd\u3001\u4f60\u7684\u90ae\u4ef6\u3001\u6bcf\u79cd\u4ee3\u7406\u6240\u5f97\u5230\u7684\u63d0\u793a\u3002\u8fd9\u91cc\u6ca1\u6709\u4efb\u4f55\u4e1c\u897f\u5bf9\u4f60\u8bbe\u9650\uff0c\u53ea\u662f\u6ca1\u6446\u5728\u773c\u524d\u3002\u6253\u5f00\u5b83\u5c31\u80fd\u9605\u8bfb\u6216\u4fee\u6539\u3002',
1795 'files.back': '返回',
1796 'files.edit': '编辑',
1797 'files.stop_editing': '停止编辑',
1798 'files.line_numbers': '行号',
1799 'files.download': '下载',
1800 'files.download_help': '保存到这台机器上',
1801 'files.hold_add': '把这个文件留在 {name} 里',
1802 'files.hold_drop': '不再把这个文件留在 {name} 里',
1803 'files.mode_browser': '浏览器',
1804 'files.browser_switch': '把智能体切回浏览器里的私有工作区。',
1805 'files.browser_help': '智能体在浏览器里的私有工作区中工作。同步的就是这个。',
1806 'files.mode_machine': '本机',
1807 'files.machine_here': '智能体读写这个真实文件夹。它不会同步。',
1808 'files.machine_pick': '让智能体在这台机器上的真实文件夹里工作。它不会同步。',
1809 'files.machine_needs_chromium': '真实文件夹需要基于 Chromium 的浏览器。',
1810 'files.machine_reconnect': '重新连接 {name}',
1811 'files.mode_cloud': '云端',
1812 'files.cloud_on_machine': '云端存储装的是浏览器工作区,而不是这台机器上的文件夹。',
1813 'files.cloud_help': '你的工作区所在之处,因此它可以比这台设备更大。',
1814 'files.import_folder': '导入一个文件夹…',
1815 'files.import_folder_help': '把这台机器上的一个文件夹复制到工作区,让它同步',
1816 'files.save_copy': '保存一份副本…',
1817 'files.save_copy_help': '把工作区写出到这台机器上的一个文件夹',
1818 'files.delete': '删除',
1819 'files.rename_move': '重命名或移动',
1820 'files.rename_hint': '一个名字,或者一个路径 — 把它挪到别处去。',
1821 'files.err_name': '请输入名称。',
1822 'files.rename_failed': '无法重命名:{reason}',
1823 'files.no_match': '没有匹配“{filter}”的内容。',
1824 'files.new_doc_here': '新文档。保存后会写入 {place}。',
1825 'files.new_file_hint': '把它命名为 DAIMOND.md,就可以写下每个智能体都会遵循的常设指令。',
1826 'files.create_failed': '无法创建文件:{reason}',
1827 'files.create_folder_failed': '无法创建文件夹:{reason}',
1828 'files.delete_file_body': '删除“{name}”?这无法撤销。',
1829 'files.delete_folder_body': '删除文件夹“{name}”以及它里面的一切?这无法撤销。',
1830 'files.delete_failed': '无法删除 {name}:{reason}',
1831 'files.upload_failed': '无法上传 {name}:{reason}',
1832 'files.uploaded.one': '已上传 {n} 个文件。',
1833 'files.uploaded.other': '已上传 {n} 个文件。',
1834 'files.saving': '保存中…',
1835 'files.saved': '已保存。',
1836 'files.save_failed': '保存失败:{reason}',
1837 'files.save_cancelled': '保存已取消。文件在磁盘上变过了。',
1838 'files.discard': '丢弃',
1839 'files.discard_title': '要丢掉你的改动吗?',
1840 'files.keep_editing': '继续编辑',
1841 'files.unsaved_body': '你对 {path} 的改动还没保存。关掉编辑器,把它们丢掉吗?',
1842 'files.editing_stopped': '已停止编辑。什么都没写入。',
1843 'files.overwrite': '覆盖',
1844 'files.conflict_title': '你编辑的时候它变了',
1845 'files.conflict_body': '自从你打开以来,这个文件在磁盘上变过了,多半是某个智能体改的。仍然保存并覆盖那些改动吗?',
1846 'files.changed_while_editing': '这个文件在磁盘上变了,是某个智能体改的。你的编辑还留着,保存时会先问你要不要覆盖。',
1847 'files.reloaded': '已重新加载。文件在磁盘上变过了。',
1848 'files.compile': '编译',
1849 'files.compiling': '编译中',
1850 'files.compiling_path': '正在编译 {path} …',
1851 'files.compiled': '已编译 → {path}({size})',
1852 'files.compile_failed': '编译失败:{reason}',
1853 'files.binary_note': '一个 {size} 的二进制文件。它和这里的其他东西一样会被保存和同步,但没有什么可显示的。下载下来,用看得懂它的软件打开。',
1854 // 从工作区面板看到的云端存储。
1855 'files.cloud': '云端',
1856 'files.cloud_storage': '云端存储',
1857 'files.cloud_empty': '云端存储里还什么都没有。你的工作区只能用浏览器给的那点空间。',
1858 'files.cloud_locked': '解锁之后才能用云端存储。没有它,你的工作区只能用浏览器给的那点空间。',
1859 'files.cloud_some_away': '云端存储里有 {n} 个文件,其中 {away} 个不在这台设备上。',
1860 'files.cloud_all_here': '云端存储里有 {n} 个文件,它们也全都在这台设备上。',
1861 'files.cloud_intro': '你的工作区放在云端存储里,这台设备尽量多存一些。共 {n} 个文件,{total};',
1862 'files.cloud_away': '其中 {n} 个({bytes})不在这台设备上。',
1863 'files.cloud_here': '它们也全都在这台设备上。',
1864 'files.cloud_none': '云端存储里还什么都没有。没有它,你的工作区只能用浏览器给你的那点空间。',
1865 'files.cloud_none_quota': '云端存储里还什么都没有。没有它,你的工作区只能用浏览器给你的那点空间,这里是 {quota}。',
1866 'files.cloud_cap': '浏览器给了 {quota},其中已用 {used}。快满的时候会自动释放文件,除非你把它们钉住了。',
1867 'files.reclaim': '释放空间',
1868 'files.reclaim_help': '立刻在这台设备上释放空间',
1869 'files.get_help': '把这个文件取到这台设备上({size})',
1870 'files.pinned_short': '已钉在这台设备上',
1871 'files.pinned_help': '已钉住:始终留在这台设备上。点击可取消。',
1872 'files.pin_help': '钉住:绝不为腾地方而释放这一个。',
1873 'files.free_help': '留在云端存储里,删掉这里的副本',
1874 'files.fetch': '取回',
1875 'files.fetch_body': '把“{path}”取到这台设备上?这会下载 {size}。',
1876 'files.fetching': '正在取回 {path}…',
1877 // 智能体干活的地方 — 根目录,以及它的范围。换根目录和在浏览器沙盒
1878 // 与磁盘之间切换,是两件不同的事。
1879 'files.change_root': '换个文件夹…',
1880 'files.change_root_help': '把智能体指向这台机器上的另一个文件夹',
1881 'files.machine_scope': '智能体只在 {name} 里面干活。这个文件夹之外的东西,Daimond 都看不到。',
1882 'files.machine_return': '让智能体回到 {name} 里干活',
1883 'files.forget_root': '忘掉这个文件夹',
1884 'files.forget_root_help': '不再提供这个文件夹。Daimond 不会留下它的记录,下次会请你重新挑一个。',
1885 'files.root_forgotten': '已忘掉。Daimond 不再留有那个文件夹的记录。',
1886
1887 'files.adopted_title.one': '找回了一个 Diamond',
1888 'files.adopted_title.other': '找回了 {n} 个 Diamond',
1889 'files.adopted_body': 'Daimond 在这个文件夹里发现了自己的文件,已把它们复制回自己的存储中,那里才会同步:{names}。副本仍留在 diamonds/ 下面,你确认无误后可以删掉。',
1890 'files.adopted_kept': '以下文件与 Daimond 已有的内容不同,因此两份都保留了:\n{paths}',
1891 'files.adopt_left_title': '有些文件留在了文件夹里',
1892 'files.adopted_skipped': '以下文件因为超过 8 MiB 或读不了而没有复制过来,所以需要它们的 Diamond 会缺这一块,甚至根本不在这里:\n{paths}',
1893 'fileview.read_failed': '读不了这个文件:{reason}',
1894 'fileview.disagree': '名字说是 {named},字节说是 {found},显示出来的是字节说的那个。',
1895 'fileview.empty': '这个文件是空的。',
1896 'fileview.too_large': '一个 {size} 的 {fmt},在这里放进内存太大了。下面是它的字节;下载下来,用别的软件打开。',
1897 'fileview.decode_failed': '这个浏览器解不了这个 {fmt}。',
1898 'fileview.frame_title': '{name} 的内容',
1899 'fileview.json_bad': '这不是一个 JSON 值,所以按文本显示。',
1900 'fileview.tree_capped': '树在这里截断了;文件比显示出来的要大。',
1901 'fileview.rows_capped': '显示 {total} 行中的前 {shown} 行。',
1902 'fileview.capped': '显示 {total} 中的前 {shown}。',
1903 'fileview.hex_note': '这里没有能显示 {fmt} 的东西,所以这是它的字节。',
1904 'fileview.hex_note_unknown': '这里没有东西认得这个文件,所以这是它的字节。',
1905 'fileview.hex_prev': '前面的字节',
1906 'fileview.hex_next': '后面的字节',
1907 'fileview.hex_at': '第 {from} 到 {to} 字节,共 {total}',
1908 'fileview.office_too_large': '一个 {size} 的 {fmt},在这里解包太大了。下面是它的字节。',
1909 'fileview.office_failed': '读不了这个文档:{why}',
1910 'fileview.office_reading': '阅读视图。这是文档说了什么,而不是它打印出来的样子。',
1911 'fileview.office_tracked': '{n} 处修订插入按已接受显示;删除不显示。',
1912 'fileview.office_macros': '这个文件包含宏。既不运行,也不读取。',
1913 'fileview.office_undrawn': '有 {total} 项没有画出来:{parts}。',
1914 'fileview.sheet_failed': '读不了这个电子表格:{why}',
1915 'fileview.sheet_stored': '这些值是文件里存着的值。公式没有重新计算。',
1916 'fileview.sheet_capped': '显示这张工作表 {rows} 行 {cols} 列中的 {shown}。',
1917 'fileview.sheet_formulas': '这里有 {n} 个单元格带公式;显示的是存着的值。',
1918 'fileview.sheet_missing': '这个工作簿点名了 {n} 张工作表,读不了:{names}。',
1919 'fileview.save': '存一份副本',
1920 'fileview.save_help': '把它存一份到你自己的设备上。这里的文件不会变。',
1921 'fileview.save_failed': '这个存不下来:{why}',
1922 'fileview.save_capped': '屏幕上只有这个文件的开头,所以不把它写成文档:写出来会是一个缺了结尾的文档。',
1923 'fileview.save_as': '存为文档',
1924 'fileview.save_as_help': '把这段文字写成一份真正的文档,存到你自己的设备上。这里的文件不会变。',
1925 'fileview.save_as_failed': '存为{fmt}没成:{why}',
1926 'fileview.write_left': '这段文字里并非样样都能进到文档里:{parts}。',
1927 'fileview.left_image': '{n} 张图',
1928 'fileview.left_notes': '{n} 页幻灯片的演讲者备注',
1929 'fileview.left_image_named': '{n} 张图:{names}',
1930 'fileview.left_notes_named': '{n} 页幻灯片的演讲者备注:{names}',
1931 'fileview.edit': '改一处',
1932 'fileview.edit_find': '查找',
1933 'fileview.edit_replace': '替换为',
1934 'fileview.edit_nth': '第几处',
1935 'fileview.edit_note': '把“{which}”留空,就把找到的每一处都改掉。文件里其余的部分一个字节都不动。',
1936 'fileview.edit_apply': '应用',
1937 'fileview.edit_failed': '那处没有改成:{why}',
1938 'fileview.edit_nothing': '编辑器没有给出文档',
1939 'fileview.edited': '在这里改了 {n} 次。文件本身没有变——存一份副本才留得下来。',
1940 'fileview.edit_sheet': '工作表',
1941 'fileview.edit_cell': '单元格',
1942 'fileview.edit_value': '值',
1943 'fileview.edit_cell_note': '以“=”开头的值按公式存放。这里和文件里都不会重新计算。',
1944 // the nine kinds a reading view names but does not draw
1945 'fileview.undrawn_image': '{n} 张图片',
1946 'fileview.undrawn_chart': '{n} 个图表',
1947 'fileview.undrawn_diagram': '{n} 个示意图',
1948 'fileview.undrawn_textbox': '{n} 个文本框',
1949 'fileview.undrawn_object': '{n} 个嵌入对象',
1950 'fileview.undrawn_equation': '{n} 个公式',
1951 'fileview.undrawn_footnote': '{n} 个脚注',
1952 'fileview.undrawn_endnote': '{n} 个尾注',
1953 'fileview.undrawn_comment': '{n} 条批注',
1954
1955 // ── 读一封邮件 ─────────────────────────────────────────────
1956 'msg.unknown_sender': '(未知发件人)',
1957 'msg.reply_to': '回复地址',
1958 'msg.reply': '回复',
1959 'msg.reply_all': '全部回复',
1960 'msg.forward': '转发',
1961 'msg.save_help': '保存到工作区',
1962 'msg.saved_to': '已保存 · {path}',
1963 'msg.save_failed': '无法保存 {name}',
1964 'msg.pictures_blocked': '图片和其他远程内容已被拦下。加载它们,等于告诉发件人你打开了这封信。',
1965 'msg.load_pictures': '加载图片',
1966 'msg.no_text': '(这封邮件没有可读的文本部分。)',
1967
1968 // ── 写一封邮件 ─────────────────────────────────────────────
1969 'compose.new_message': '新邮件',
1970 'compose.draft': '草稿',
1971 'compose.remove_attachment': '移除这个附件',
1972 'compose.err_no_to': '说清楚这封信要发给谁。',
1973 'compose.send_title': '要发出这封邮件吗?',
1974 'compose.send_body': '它会经由 {from} 发出,而且无法撤回。',
1975 'compose.discard_title': '要丢掉这份草稿吗?',
1976 'compose.discard_body': '草稿会被删掉,里面写的东西也就没了。',
1977
1978 // ── 身份,在门口 ───────────────────────────────────────────
1979 'identity.err_enter_pass': '请输入密码短语。',
1980 'identity.err_choose_name': '请起一个名字。',
1981 'identity.err_confirm_written': '请先确认你已经把密码短语抄下来了。',
1982 'identity.err_too_short_gen': '这个密码短语太短了。换一个,或者自己定一个。',
1983 'identity.err_too_short': '密码短语至少要 8 个字符。',
1984 'identity.err_mismatch': '两次输入的密码短语不一致。',
1985 'identity.err_create': '无法创建账户。',
1986 'identity.err_wrong_pass': '密码短语对不上。再试一次。',
1987 'identity.err_locked': 'Daimond 身份已锁定。',
1988 'identity.err_no_webcrypto': '这个浏览器里没有 WebCrypto。',
1989
1990 // ── 通行密钥,在界面上 ─────────────────────────────────────
1991 'passkey.have_one': '我有 Daimond 的通行密钥',
1992 'passkey.use_one': '使用通行密钥',
1993 'passkey.browser_cannot': '这个浏览器用不了你的通行密钥,所以这里只能靠密码短语进。',
1994 'passkey.adopt_note': '如果你在另一台设备上加过通行密钥,它能把那个账户带过来,不用配对码,也不用密码短语。',
1995 'passkey.looking': '正在寻找你的通行密钥…',
1996 'passkey.waiting': '正在等你的通行密钥…',
1997 'passkey.err_unusable': '这个通行密钥用不了。',
1998 'passkey.err_did_not_work': '那个通行密钥不管用。请用你的密码短语。',
1999 'passkey.err_enter_pass': '请输入你的密码短语。',
2000 'passkey.add_title': '添加通行密钥',
2001 'passkey.add_body': '确认你的密码短语,好用通行密钥保护它。接着你的设备会请你创建:Face ID、Touch ID、Windows Hello 或者安全密钥。',
2002 'passkey.continue': '继续',
2003 'passkey.not_added': '没有添加通行密钥',
2004 'passkey.err_create_failed2': '无法创建通行密钥。',
2005 'passkey.err_create_retry': '无法创建通行密钥。你可以到设置里再试一次。',
2006 'passkey.added': '已添加通行密钥',
2007 'passkey.added_synced': '现在你可以用通行密钥解锁 Daimond 了。它会在你自己的设备之间同步,所以不用配对码也能把这个账户带到新的手机或笔记本上。你的密码短语依然有效,仍然是那条备用的路。',
2008 'passkey.added_local': '现在你可以在这台设备上用通行密钥解锁 Daimond 了。账户服务连不上,所以眼下它只在这里管用;等你联网之后再添加一次,它就会把账户带到你其他的设备上。你的密码短语依然有效,仍然是那条备用的路。',
2009 'passkey.added_offer': '下一次,Daimond 会问你要通行密钥,而不是密码短语。你随时可以到设置里把它移除。',
2010 'passkey.remove_title': '要移除通行密钥吗?',
2011 'passkey.remove_body': '通行密钥会从这台设备上去掉,在别处也不再打开你的账户,以后用密码短语解锁。通行密钥本身仍留在你的认证器里,直到你在那边删掉它。',
2012 'passkey.removed': '已移除通行密钥',
2013 'passkey.removed_body': '从现在起,这台设备会问你要密码短语。',
2014 'passkey.offer_title': '要用面容解锁吗?',
2015 'passkey.offer_body': 'Daimond 可以用 Face ID、Touch ID 或设备 PIN 解锁,不必输密码短语。通行密钥会在你的设备之间同步,所以这个账户也会跟着过去。不管用哪种,你的密码短语都照常可用。',
2016
2017 // ── 忘掉一个账户 ───────────────────────────────────────────
2018 'forget.credits_title': '要先把额度保下来吗?',
2019 'forget.credits_body': '此账户持有 {amount},保存在 Daimond 的服务器上,只有这个身份能解锁。备份会以加密形式保存这个身份,另一台设备可以接管它,但需要此账户的口令,而备份中并不包含口令。口令一旦丢失,余额就找不回来了。现在导出备份吗?',
2020 'forget.skip': '跳过',
2021 'forget.title': '要忘掉这个账户吗?',
2022 'forget.ok': '全部抹掉',
2023 'forget.body': '这会抹掉你的密码短语、你加密保存的 API 密钥,以及这台设备上你所有的聊天、Diamond 和支出记录。',
2024 'forget.tail': '没有恢复的余地。一切都没了。',
2025 'forget.body_secondary': '这会把账户“{name}”从这个浏览器里移除:它的密码短语、密钥、聊天、Diamond、支出和文件。',
2026 'forget.tail_secondary': '没有恢复的余地。这里的其他账户不受影响。',
2027 'forget.abandons': '这也会放弃服务器上的 {amount}。只有这个身份能解锁它,而这个身份的备份只有此账户的口令能打开。',
2028
2029 // ── 改名,以及改密码短语 ───────────────────────────────────
2030 'rename.title': '改名',
2031 'rename.failed': '无法改名',
2032 'changepass.lead': '这会替换你现在的密码短语。没有恢复的余地,所以请先把新的抄下来再继续。',
2033 'changepass.gen_note': '这台设备随机挑出的八个词,大约 {bits} 位,远远超出任何能被猜到的范围。它将成为你在这里存放的一切的钥匙,谁也没法替你重置。请抄在纸上。密码管理器可能也会提出替你更新,在这个强度下是安全的。',
2034 'changepass.new_ph': '新的密码短语',
2035 'changepass.again_ph': '再输一遍',
2036 'changepass.change_it': '更改',
2037 'changepass.select_above': '在上面选中它',
2038 'changepass.err_same_gen': '这和你现在的密码短语一样。换一个。',
2039 'changepass.err_short': '至少要 8 个字符。',
2040 'changepass.err_same': '这就是你现在的密码短语。换一个不一样的。',
2041 'changepass.failed': '没能成功',
2042 'changepass.failed_body': '你现在的密码短语对不上。什么都没有改动。',
2043 'changepass.careful': '小心',
2044 'changepass.key_not_resealed': '密码短语换掉了,但你的 API 密钥没能重新加密。请到设置里重新输入一次。',
2045 'changepass.mail_not_resealed': '这些邮箱没能用新的密码短语重新加密,需要重新输入密码:{list}。',
2046 'changepass.mail_not_unsealed': '这些邮箱用旧的密码短语也读不出来,所以密码仍然要重新设置:{list}。',
2047 'changepass.post_not_resealed': '无法用新的口令短语重新加密你的私信。',
2048 'changepass.post_not_unsealed': '无法用你原先的口令短语读取你的私信,因此保持原样未做改动。',
2049 'changepass.models_not_resealed': '这些提供商没能用新的密码短语重新加密,需要重新输入密钥:{list}。',
2050 'changepass.models_not_unsealed': '这些提供商在这次更改之前,密钥就已经读不出来了,仍然要重新设置密钥:{list}。',
2051 'changepass.all_of_them': '全部',
2052 'changepass.the_api_key': '你的 API 密钥',
2053 'changepass.search_not_resealed': '这些搜索服务没能用新的密码短语重新加密,需要重新输入密钥:{list}。',
2054 'changepass.search_not_unsealed': '这些搜索服务在这次更改之前,密钥就已经读不出来了,仍然要重新设置密钥:{list}。',
2055 'changepass.voice_not_resealed': '你的锻造台声音没能用新的密码短语重新加密。请用锻造台为你打印的那一行重新设置一次。',
2056 'changepass.voice_not_unsealed': '你的锻造台声音用旧的密码短语读不出来,所以仍然要用锻造台为你打印的那一行重新设置一次。',
2057 'changepass.settle_not_resealed': '你的裁定声音没能用新的密码短语重新加密。请用锻造台为你打印的那一行重新粘贴一次。',
2058 'changepass.settle_not_unsealed': '你的裁定声音用旧的密码短语读不出来,所以仍然要用锻造台为你打印的那一行重新粘贴一次。',
2059 'changepass.rekey_generic': '{who}:{list}。',
2060 'changepass.rekey_failed': '这里存着的东西,有一部分没能用新的密码短语重新加密。请到设置里检查你的密钥和邮箱密码。',
2061 'changepass.changed': '密码短语已更改',
2062 'changepass.changed_body': '你的新密码短语已经生效。保存的 API 密钥也用它重新加密了。',
2063 'changepass.passkey_stale': '你的通行密钥没能更新,所以它会要你输入新的密码短语。请到设置里重新添加。',
2064
2065 // ── 备份 ───────────────────────────────────────────────────
2066 'backup.unreadable': '那个备份文件读不出来。',
2067 'backup.not_a_backup': '那不是一份 Daimond 备份。',
2068 'backup.version_title': '这个备份比这个 Daimond 新',
2069 'backup.version_body': '这个文件是用备份格式 {found} 写的,而这个构建读的是格式 {known}。什么都没有恢复,文件里的内容也没有改动。请更新 Daimond,然后重新打开它。',
2070 'backup.identity_title': '已恢复账户身份',
2071 'backup.identity_body': '备份带来了“{name}”的身份,这个浏览器现在就是那个账户,服务器上为它保存的额度和 Pro 许可也一并归它。请用该账户的口令解锁;备份里没有口令,别的东西也打不开这个账户。',
2072 'backup.identity_kept': '这个浏览器已经有账户,所以备份中“{name}”的身份保持不动。其余内容都已恢复。',
2073 'backup.identity_failed': '无法恢复该备份中的身份。',
2074 'backup.restored': '备份已恢复',
2075 'backup.n_files.one': '{n} 个工作区文件',
2076 'backup.n_files.other': '{n} 个工作区文件',
2077 'backup.n_diamonds.one': '{n} 个 Diamond',
2078 'backup.n_diamonds.other': '{n} 个 Diamond',
2079 'backup.restored_body': '已恢复 {files} 和 {diamonds}。Daimond 会重新加载,打开恢复好的工作区。',
2080 'backup.n_foreign.one': '那份备份里有 {n} 个文件属于那台浏览器上的另一个账户,因此没有恢复,只留在备份里。',
2081 'backup.n_foreign.other': '那份备份里有 {n} 个文件属于那台浏览器上的另一个账户,因此没有恢复,只留在备份里。',
2082
2083 // ── 提供商表单 ─────────────────────────────────────────────
2084 'models.other': '其他(手动输入)…',
2085 'models.enter_key_first': '输入你的 API 密钥来加载模型…',
2086 'models.key_rejected': '这个 API 密钥被拒绝了。检查一下再试。',
2087 'models.list_failed': '无法自动加载模型。选“其他”,然后手动输入模型 ID。',
2088
2089 // ── 提供商表单的拒绝 ───────────────────────────────────────
2090 'byok.err_provider': '请先选择提供商。',
2091 'byok.err_base_url': '请输入提供商的基础 URL。',
2092 'byok.err_bad_url': '那个基础 URL 不是一个网址。它应该以 https:// 开头,并写明提供商的主机名。',
2093 'byok.err_key': '请粘贴你的 API 密钥。',
2094 'byok.err_model': '选一个模型,或者稍等一下让列表加载出来。',
2095 'byok.err_rejected': '提供商拒绝了这个 API 密钥。检查一下再试。',
2096
2097 // ── 确认一件无法撤销的事 ───────────────────────────────────
2098 'confirm.yes_do_it': '好,就这么做',
2099 'confirm.irreversible': 'Daimond 想做一件无法撤销的事',
2100 'fold.nothing_chosen': '什么都没选',
2101 'fold.nothing_chosen_body': '勾上你想折叠的轮次,然后按“折叠所选”。',
2102
2103 // ── 结账回来之后 ───────────────────────────────────────────
2104 'checkout.cancelled': '已取消',
2105 'checkout.cancelled_body': '没有产生任何扣费,你的余额也没有变。',
2106 'checkout.card_saved': '卡已保存',
2107 'checkout.card_saved_body': 'Daimond 现在可以自动给你的额度充值了。先在下面设好上限,再把它打开。目前没有产生任何扣费。',
2108 'checkout.card_pending_body': 'Stripe 已经收下这张卡。它可能要过一会儿才显示在这里;稍后重新打开“额度”。目前没有产生任何扣费。',
2109 'checkout.pro_unlocked': 'Pro 已解锁',
2110 'checkout.pro_unlocked_body': '你已拥有 Daimond Pro。跨设备同步、云端存储和 Email 都已开启。Pro 自购买之日起用五年。没有订阅,也不会续费。',
2111 'checkout.received': '已收到付款',
2112 'checkout.pro_pending_body': '你的 Pro 解锁正在确认中,稍后就会显示在这里。过一会儿再打开“额度”。',
2113 'checkout.credits_pending_body': '你的额度还在确认中,稍后就会显示在这里。',
2114 'gateway.acct_unreachable': '连不上 Daimond 账户服务。请稍后再试。',
2115 'gateway.session_no_url': '结账会话返回时没有带 URL。',
2116 'gateway.card_no_url': '银行卡会话返回时没有带 URL。',
2117
2118 // ── 工作区与智能体面板里的几条 ─────────────────────────────
2119 'files.folder_open_failed': '打不开那个文件夹。',
2120 'files.import': '导入',
2121 'files.import_body': '把“{name}”复制进工作区?它里面的一切随后都会同步到你其他的设备,也会算进你的存储用量。',
2122 'files.this_file': '这个文件',
2123 'files.unsaved_close': '你对 {path} 的改动还没保存。关掉它,把它们丢掉吗?',
2124 'agents.no_diamond': '没有 Diamond',
2125 'agents.no_diamond_help': '这次运行没有对应的 Diamond',
2126 'agents.only_from': '只显示来自“{name}”的智能体',
2127 'agents.only_from_chat': '只显示来自这个聊天的智能体',
2128 'agents.from_chat': '一段聊天',
2129 'agents.from_chat_help': '从聊天“{name}”里派出。',
2130 'agents.from_chat_help_when': '从一段你还没有命名的聊天里派出(最后活动:{when})。',
2131 'agents.no_diamond_fold': '这个智能体是从聊天里派出的,所以没有可以折叠进去的晶体。它的报告在那段对话里,全文在“阅读”下面。',
2132 'agents.report_one': '你派出的一个智能体已经结束。',
2133 'agents.report_n': '你派出的 {n} 个智能体已经结束。',
2134 'agents.no_task': '有人要了一个智能体,却没有给任务,所以什么也没有启动。',
2135 'changepass.title': '更改密码短语',
2136 'changepass.enter_current': '请输入你当前的密码短语。',
2137 'changepass.next': '下一步',
2138
2139 // ── 关系图 ─────────────────────────────────────────────────
2140 // 把所有 Diamond 和它们之间的关联画成一张静止的图。它是用来查看结构的
2141 // 工具,所以措辞只说明画面上有什么,不加褒扬。
2142 'graph.no_diamonds': '还没有 Diamond,所以没有可画的东西。',
2143 'graph.isolated': '未关联',
2144 'graph.unnamed': '未命名',
2145 'graph.link_mode': '连线',
2146 'graph.link_help': '先点连线起点的 Diamond,再点它指向的那个。Escape 取消。',
2147 'graph.organise': '整理',
2148 'graph.organise_help': '重新摆放 Diamond 以减少交叉,并保留新的位置。',
2149 'graph.pick_source': '先点起点,再点终点。Escape 取消。',
2150 'graph.pick_target': '从 {name} 出发。点终点,或按 Escape。',
2151 'graph.menu_link': '从这里连线…',
2152 'graph.menu_open': '打开这个 Diamond',
2153 'graph.menu_reset_node': '把这个 Diamond 放回去',
2154 'graph.menu_reset_all': '把所有 Diamond 放回去',
2155 'graph.menu_reset_view': '重置视图',
2156 'graph.menu_edit_link': '编辑这条连线…',
2157 'graph.menu_drop_link': '删除这条连线',
2158 'graph.fit': '全部',
2159 'graph.fit_help': '缩放画面,直到每个 Diamond 都在屏幕上。',
2160 'graph.edit_title': '连线',
2161 'graph.new_title': '新连线',
2162 'graph.rels_label': '关系',
2163 'graph.rel_add_ph': '属于、阻挡… 一次一个',
2164 'graph.rel_add': '添加这个关系',
2165 'graph.rel_pool': '已经在用',
2166 'graph.rel_none': '还没有关系。',
2167 'graph.rel_remove': '移除 {rel}',
2168 'graph.rel_full': '一条连线最多带 {n} 个字的关系。',
2169 'graph.rel_label': '关系',
2170 'graph.rel_ph': '属于、阻挡、取代…',
2171 'graph.note_label': '备注',
2172 'graph.note_ph': '关系本身说不清的部分。',
2173 'graph.save': '保存',
2174 'graph.create': '新建',
2175 'graph.cancel': '取消',
2176 'graph.drop': '删除',
2177 'graph.self_link': '一条连线连接两个不同的 Diamond。',
2178 'graph.write_failed': '这个写不进去:{err}',
2179 'graph.edit_help': '编辑这条连线',
2180 'graph.in_cycle': '这个 Diamond 在一个环上。',
2181 'graph.back_edge': '这条关联闭合了一个环。环是允许的;它画成虚线,好让人看见。',
2182 'graph.edge_tip': '{from} → {to}',
2183 'graph.edge_rel': '关系:{rel}',
2184 'graph.failed': '读不到关系图:{err}',
2185 'graph.artefacts.one': '{n} 条指向文件、页面或聊天的关联',
2186 'graph.artefacts.other': '{n} 条指向文件、页面或聊天的关联',
2187 'graph.stat_diamonds.one': '{n} 个 Diamond',
2188 'graph.stat_diamonds.other': '{n} 个 Diamond',
2189 'graph.stat_links.one': '{n} 条 Diamond 之间的关联',
2190 'graph.stat_links.other': '{n} 条 Diamond 之间的关联',
2191 'graph.stat_cycles.one': '{n} 条关联闭合了环',
2192 'graph.stat_cycles.other': '{n} 条关联闭合了环',
2193 'graph.stat_dangling.one': '{n} 条关联指向已经不在的 Diamond',
2194 'graph.stat_dangling.other': '{n} 条关联指向已经不在的 Diamond',
2195
2196 // ── The terminal ───────────────────────────────────────────
2197 'term.label': '终端',
2198 'term.menu_copy': '复制',
2199 'term.menu_paste': '粘贴',
2200 'term.menu_select_all': '全选',
2201 'term.clipboard_denied': '浏览器没有交出剪贴板。请使用 Ctrl-V,它始终有效。',
2202 'termroot.browse': '更改…',
2203 'termroot.browse_wait': '询问中…',
2204 'termroot.browse_use': '使用',
2205 'grantroot.head': 'Daimond 的文件夹',
2206 'grantroot.note': '限定每条命令。重新加载后生效。',
2207 'termroot.reset': '已授予的文件夹',
2208 'termroot.head': '终端文件夹',
2209 'termroot.note': '终端就是你,可以比代身走得更远。',
2210 'termroot.pinned': '已在这台电脑上通过 shell 设定。',
2211 'term.hint': '直接输入即可把按键送给程序。Ctrl-Shift-C 复制所选内容,Ctrl-Shift-V 粘贴,Ctrl-Shift-A 全选,按住 Shift 再按 Page Up 或 Page Down 可翻看已经滚过去的内容。',
2212 'term.screen_label': '终端屏幕的文字版本',
2213 'term.screen_now': '屏幕现在显示:',
2214 'term.nothing_selected': '没有选中任何内容。',
2215 'term.copied.one': '已复制 {n} 行。',
2216 'term.copied.other': '已复制 {n} 行。',
2217 'term.printed_lines.one': '输出了 {n} 行。',
2218 'term.printed_lines.other': '输出了 {n} 行。',
2219 'term.paste_warn': '这次粘贴有 {n} 行。程序没有要求在粘贴时得到通知,因此第一行之后的每一行一到达就会执行。',
2220 'term.paste_first': '只粘贴第一行',
2221 'term.paste_all': '粘贴全部 {n} 行',
2222 'term.exited': '程序已结束,状态码 {code}。',
2223
2224 'term.notices_label': '关于此终端的提示',
2225 'term.dismiss_notice': '关闭此提示',
2226 'term.gaps_count.one': '有 {n} 处输出缺失。',
2227 'term.gaps_count.other': '有 {n} 处输出缺失。',
2228 'term.start': '启动终端',
2229 'term.restart': '重新启动终端',
2230 'term.stop': '停止程序',
2231 'term.leave_hint': '按 F6 将键盘移出终端。',
2232 'term.starting': '正在启动终端…',
2233 'term.running': '终端正在运行。',
2234 'term.nothing_running': '此终端中没有正在运行的程序。',
2235 'term.not_paired': '没有机器之手与此浏览器配对,因此没有可以打开终端的机器。Daimond 的其余功能无需它也能使用。',
2236 'term.no_composer': '此版本无法说明终端可以接触什么,因此不会打开终端。这由应用的 Rust 部分计算,而本页面比它更旧。请更新 Daimond;命令与文件工具不受影响。',
2237 'term.unreadable_request': 'Daimond 无法读取自己关于此终端可以接触什么的答复,因此没有启动任何东西。请重新加载应用;若再次发生,应用需要更新。',
2238 'term.no_relay_script': '终端中继未在本页面加载,因此无法打开终端。您的机器没有问题。请重新加载 Daimond。',
2239 'term.no_renderer': '终端本身未在本页面加载,因此没有可供绘制的地方。您的机器没有问题。请重新加载 Daimond。',
2240
2241
2242 // ── Added 2026-08-07 with the notes2 phases D-H ──────────
2243 'panel.pending': '待办',
2244 'skills.menu': '可以调用的技能',
2245 'skills.none': '还没有技能。把一个 markdown 文件放进 {dir},它的名字就成了一条命令。',
2246 'skills.draft_badge': '· 草稿',
2247 'skills.draft_title': '安装 /{name}?',
2248 'skills.draft_ask': 'Daimond 起草了这项技能。安装会把下面的文本原样写入 {into},之后输入 /{name} 即可运行。',
2249 'skills.draft_install': '安装',
2250 'skills.draft_bad': '这份草稿无法安装',
2251 'tile.dlg_models': '模型',
2252 'tile.model_daimon': '代蒙',
2253 'tile.model_daimon_help': '这个 Diamond 用来思考的模型。对话会延续下去;要结束它,请用「新的代蒙」。',
2254 'tile.daimon_reset': '新的代蒙',
2255 'tile.daimon_reset_help': '结束这个代蒙的对话,而不把它折进晶体',
2256 'tile.daimon_reset_title': '开始一个新的代蒙?',
2257 'tile.daimon_reset_body': '这个代蒙的对话({n} 条)会被丢弃,下一条指令开始新的对话。什么都不会进入晶体 — 如果有值得留下的,请先折进去。晶体、文件和链接都不受影响。',
2258 'tile.daimon_reset_ok': '丢弃对话',
2259 'tile.daimon_reset_done': '新的代蒙。晶体不受影响。',
2260 'tile.daimon_reset_busy_title': '代蒙还在工作',
2261 'tile.daimon_reset_busy': '这个代蒙正在一轮对话中间。它的回答会落进你正要丢掉的那段对话里,模型手上握着的对话也一样,所以现在还什么都没丢。先把这一轮停下来:它在跑的时候,输入框旁边的按钮是停止。',
2262 'tile.model_workers': '工人',
2263 'tile.model_vision': '工人(图像)',
2264 'tile.model_vision_help': '任务里提到图像时工人所用的模型,以及当前模型被发现不接受图片时工人转去的模型。Daimond 无法事先判断哪些模型能看图,所以这个选择由你来定;它依据第一次拒绝行动。',
2265 'tile.model_same_as_text': '与代蒙相同',
2266 'tile.model_none': '无',
2267 'tile.diamond_model_help': '这个 Diamond 用 {model} 思考。',
2268 'tile.model_note': '工人会保留启动时的模型。新模型从下一个派出的工人开始生效。',
2269 'tile.model_changed': '代蒙由 {from} 换成 {to}。对话会延续下去。',
2270 'tile.model_change_note': '代蒙由 {from} 换成 {to}。',
2271 'tile.model_change_unlogged': '模型已更换,但历史记录写不进去。',
2272 'tile.dlg_context': '上下文',
2273 'tile.context_line': '已用 {used},共 {all}。到 {at}% 时折叠。',
2274 'tile.context_unknown': '这个模型没有公布上下文窗口,所以在请求被拒绝之前没有可以衡量的基准。',
2275 'tile.context_used_folds': '上下文窗口已用:{used} / {all}。到 {at}% 时折叠。',
2276 'tile.fold_context': '立即折叠',
2277 'tile.fold_context_help': '趁这段对话还没装满,现在就把较早的部分总结掉',
2278 'tile.fold_context_title': '折叠这段对话?',
2279 'tile.fold_context_body': '由一个模型来总结较早的部分,这会用掉一次付费调用,而这份摘要就成了这段对话所记得的内容。屏幕上的消息保持原样。',
2280 'tile.fold_context_ok': '折叠',
2281 'tile.fold_nothing': '没有可折叠的内容。这段对话已经不能再短了。',
2282 'tile.fold_mid_turn': '等这一轮结束后再折叠。',
2283 'tile.fold_unavailable': '这段对话里还什么都没说。',
2284 'tile.fold_failed': '折叠没有完成',
2285 'agent.model_vision': '这个任务提到了图像,所以它在这个 Diamond 的图像模型 {model} 上运行。',
2286 'agent.model_vision_fallback': '这个任务提到了图像,但这个 Diamond 没有设置图像模型,所以它在文本模型 {model} 上运行。',
2287 'agent.model_rerouted': '{from} 无法被展示图片,所以这个工人转到了 {to}。',
2288 'agent.model_blind': '{model} 无法被展示图片,所以图片被略去了。',
2289 'agent.model_blind_none': '{model} 无法被展示图片,而这个 Diamond 没有设置图像模型。',
2290 'pending.empty': '没有等着你的事。',
2291 'pending.sort': '排序',
2292 'pending.by_priority': '按优先级',
2293 'pending.by_newest': '最新在前',
2294 'pending.by_oldest': '最早在前',
2295 'pending.priority': '优先级',
2296 'pending.prio_high': '高',
2297 'pending.prio_normal': '普通',
2298 'pending.prio_low': '低',
2299 'pending.no_detail': '没有给出更多说明。',
2300 'pending.execute': '去做',
2301 'pending.execute_named': '去做:{what}',
2302 'pending.discuss': '先谈一谈',
2303 'pending.discuss_named': '先谈一谈:{what}',
2304 'pending.cancel': '作罢',
2305 'pending.cancel_named': '作罢:{what}',
2306 'pending.noted': '已知悉,并从列表中移除。',
2307 'pending.opened': '已打开待发送。发出前会一直留在这里。',
2308 'pending.diamond_gone': '提出这件事的 Diamond 已经没有了,所以没人可以谈。',
2309 'pending.discuss_prompt': '在我同意之前,这件事我们还需要再谈谈:“{headline}”',
2310 'crystal.view_switch': '这个 Diamond 的哪一面',
2311 'crystal.view_crystal': '晶体',
2312 'crystal.view_chat': '对话',
2313 'crystal.full': '全屏',
2314 'crystal.full_help': '让这个页面占满屏幕',
2315 'crystal.full_exit': '退出全屏',
2316 'crystal.full_exit_help': '把侧栏和顶栏放回来',
2317 'capp.title': '{name}',
2318 'capp.make_body': '这会新建一个名为“{name}”的 Diamond,并把 {name} 页面放进去。你记录的内容留在那个 Diamond 里,在这台设备上。',
2319 'capp.make_ok': '新建',
2320 'capp.exists_body': '你已经有一个名为“{name}”的 Diamond,你记录的内容就在里面。再建一个会把那些记录留在原处。',
2321 'capp.exists_ok': '打开',
2322 'capp.missing_body': '这个 Daimond 版本没有带 {name} 模板,所以没有可以放进 Diamond 的东西。什么也没有新建。可以让你的 daimon 做一个页面,或者更新 Daimond 之后再试。',
2323 'capp.page_failed': 'Diamond 已新建,但它的页面写不进去:{why}',
2324 // 让 capp 的页面保持最新。会先问,不会直接替换:这是一个提议,不是警告。
2325 // “lanes” 保留英文,因为 Life log 页面本身就是英文的,和 Diamond 一样。
2326 'capp.legacy_body': '这个 {name} 是在 capp 还没有版本号之前建的,所以 Daimond 分辨不出它的页面里哪些部分是当初给它的。要把它的页面更新到当前版本吗?你的 lanes 和你的记录都不会动。',
2327 'capp.legacy_ok': '更新页面',
2328 'capp.update_kept': '页面已经更新到最新。下面这些文件是你的,保持原样:{files}。',
2329 'capp.update_failed': '无法替换页面:{why}',
2330 // 恢复到的是 capp 自己的模板,不是空白页,也不是默认页面。
2331 'capp.page_reset_confirm': '把这个 Diamond 的页面换成当前的 {name} 页面?你记录的内容不会有任何改动。',
2332 'crystal.chat_empty': '还没有说过什么。晶体是这个 Diamond 所知道的,这里是它如何知道的。',
2333 'crystal.dispatch_after_error': '这一轮结束得不顺利,所以它请求的代理没有启动。',
2334 'instructions.chip_two': '有两层在起作用:你的和这个项目的。点击可打开你的。',
2335 'sys.head': '系统',
2336 'sys.note': 'Daimond 自己的文件。它们在浏览器里,不在你打开的文件夹里,并会在你的各台设备之间往来。',
2337 'sys.empty': '这里还什么都没有',
2338 'sys.up': '上一级文件夹',
2339 'trig.head': '这个 Diamond 何时行动',
2340 'trig.none': '没有设置。这个 Diamond 只在你提问时回答,其他时候都不动。',
2341 'trig.activity': '在你活动 {n} 分钟之后',
2342 'trig.mail': '当 {folder}({mailbox})收到邮件时',
2343 'trig.edit': '编辑这个动作',
2344 'trig.choose': '哪个动作',
2345 'trig.opt_on': '▶ {what}',
2346 'trig.opt_off': '⏸ {what}',
2347 'trig.nothing_written': '尚未填写',
2348 'trig.edit_this': '编辑{what}',
2349 'trig.copy_this': '复制{what}',
2350 'trig.copy': '复制它的指令和上下文',
2351 'trig.copied': '已复制。',
2352 'trig.copy_failed': '剪贴板拒绝了。打开这个动作,从框里复制。',
2353 'trig.remove': '移除',
2354 'trig.remove_body': '移除“{what}”?这个 Diamond 将不再因此行动。',
2355 'trig.add': '添加一个动作',
2356 'trig.add_kind': '由什么触发',
2357 'trig.kind_activity': '我的活动分钟数',
2358 'trig.kind_mail': '邮件到达',
2359 'trig.note': '它们放在 {path},你和这个 Diamond 都能读。',
2360 'trig.edit_title': '编辑:{what}',
2361 'trig.minutes': '分钟',
2362 'trig.minutes_note': '是你在工作的分钟,不是钟表上的分钟。整夜开着的标签页一分钟都不算。',
2363 'trig.mailbox': '邮箱',
2364 'trig.folder': '文件夹',
2365 'trig.no_mailbox': '还没有设置任何邮箱',
2366 'trig.instruction': '指令',
2367 'trig.instruction_ph': '触发时要这个 Diamond 做什么……',
2368 'trig.context': '上下文',
2369 'trig.context_ph': '它第一次需要的背景,也只在第一次需要……',
2370 'trig.context_note': '只在第一条指令前发送一次。改动它,就会再发一次。',
2371 'trig.section': '自动触发的动作',
2372 'role.compactor': '上下文折叠',
2373 'role.compactor_help': '总结一段已经超出窗口的对话。它的答复会成为这段对话所记得的内容。',
2374 'settings.fold_model': '用来折叠的模型',
2375 'settings.fold_model_own': '对话自己的模型',
2376 'settings.fold_model_group': '改用以下模型折叠',
2377 'settings.fold_model_note': '对话超出窗口时会被总结,而这份摘要会成为模型所记得的内容。这里选择由谁来写,只对同一供应商的对话有效;其余的都用自己的模型折叠。',
2378
2379 // The durable trail, shown on the lock screen only when the app is
2380 // actually looping -- three boots in ninety seconds. See breadcrumb.js.
2381 'trail.looping': 'Daimond 在过去一分钟内重启了 {n} 次。以下是它的记录,请复制到错误报告中。',
2382 'trail.copy': '复制',
2383 'trail.copied': '已复制',
2384 'trail.clear': '清除',
2385
2386 // A safe start: the app opens without the sync engine, so a device that
2387 // cannot stay open long enough to be used gets to be used. See safe.js.
2388 'safe.armed': 'Daimond 已在不同步的情况下启动,因此应该会保持打开。你的工作在本设备上是安全的,重新开启同步后就会再次传到你的其他设备。',
2389 'safe.offer': '如果 Daimond 无法保持打开,请在不同步的情况下启动它。你的工作会留在本设备上,不会删除任何内容。',
2390 'safe.turn_off': '不同步启动',
2391 'safe.turn_on': '重新开启同步',
2392 'safe.chip': '同步已关闭(安全启动)',
2393 'safe.chip_reason': 'Daimond 在不同步的情况下启动,因此本设备的工作没有传到你的其他设备。没有丢失任何内容,都还在这里。',
2394 'safe.chip_click': '点击以重新开启同步。',
2395 'safe.turn_on_title': '重新开启同步?',
2396 'safe.turn_on_ask': 'Daimond 会重新启动,并再次尝试与你的其他设备同步。如果它又开始自行关闭,会自动回到安全启动。',
2397 'safe.turn_on_ok': '带同步重新启动',
2398
2399 // The sync switch and the durable trail, both reachable from the admin
2400 // panel. See safe.js and breadcrumb.js.
2401 'home.sec_sync': '同步与诊断',
2402 'settings.sync': '同步',
2403 'settings.sync_on_note': '本设备正在把工作发送到你的其他设备。停止会立即生效,且不会丢失任何内容,一切都留在本机。',
2404 'settings.sync_off_note': '本设备未在同步。它的工作安全地留在本机,不会传到你的其他设备。',
2405 'settings.trail': '诊断',
2406 'settings.trail_copy': '复制应用自己的记录',
2407 'settings.trail_note': 'Daimond 最近做了什么:只有事件名称和时间,没有密钥、没有消息正文、没有你的文件内容。可以放心粘贴到错误报告中。',
2408 'settings.trail_empty': '尚无记录。',
2409 // ── The email doorbell ─────────────────────────────────────
2410 'doorbell.title': '邮件门铃',
2411 'doorbell.asking': '正在检查…',
2412 'doorbell.saving': '正在保存…',
2413 'doorbell.turn_off': '关闭邮件门铃',
2414 'doorbell.turn_on': '开启邮件门铃',
2415 'doorbell.on_note': '当有消息送达而你没有打开 Daimond 时,我们可能会向你账户上的地址发送一封邮件,说明有东西在等你。不含发件人、主题和数量,24 小时内最多一封。关闭它也会一并停掉已经排队待发的那一封。',
2416 'doorbell.off_note': '不会发送任何邮件。你会在下次打开 Daimond 时看到消息,别处都不会出现。',
2417 'doorbell.default_note': '这是测试版账户的默认设置,你还没有改过。',
2418 'doorbell.no_address': '你的账户上没有邮件地址,所以无论此处如何设置都发不出任何东西。',
2419 'doorbell.unconfigured': '此网关无法发送邮件,所以无论此处如何设置都不会发出任何东西。',
2420 'doorbell.err_save': '没有保存成功。设置未改变,请再试一次。',
2421 'doorbell.notice_title': '一封邮件,一天最多一次',
2422 'doorbell.notice_body': '当有人给你发来私信而你没有打开 Daimond 时,我们可能会向你账户上的地址发送一封邮件,说明有东西在等你。它不含发件人、主题、数量,也没有指向任何一条消息的链接 —— 24 小时内最多一封。\n\n你随时可以关闭:从你名字旁边的齿轮打开设置,就是那一行“邮件门铃”。关闭它也会一并停掉已经排队待发的那一封。',
2423 // ── Reporting a message, and sharing a Diamond ─────────────
2424 // i18n-family: report.reason_ = harassment threat spam impersonation other
2425 'post.report': '举报',
2426 'report.title': '举报这条消息',
2427 'report.rule': '这些原话会发给运营者,附上发送者的签名和打开这条消息的那一把密钥。这次对话里别的东西都不会走:不含其余会话,不含对方的其他消息,也不含你的其他对话。',
2428 'report.signed_by': '由 {fp} 签名',
2429 'report.why': '你为什么要举报它?',
2430 'report.reason_harassment': '针对我的辱骂',
2431 'report.reason_threat': '伤害威胁',
2432 'report.reason_spam': '不请自来的批量消息',
2433 'report.reason_impersonation': '冒充他人',
2434 'report.reason_other': '其他',
2435 'report.send': '发送这份举报',
2436 'report.cancel': '取消',
2437 'report.sending': '正在发送…',
2438 'report.sent': '已举报。运营者现在可以读到这一条消息。',
2439 'report.already': '你已经举报过这条消息,没有再发送任何新内容。',
2440 'report.done': '关闭',
2441 'report.err_no_message': '那条消息不是本设备持有的。',
2442 'report.err_no_artefact': '此版本没有保留那条消息的签名形式,因此没有东西能证明是谁发的。缺了它的举报就成了指控,所以什么都没有发送。',
2443 'report.err_no_envelope': '此版本没有保留那条消息的密封形式,因此这份举报无法与中继所承载的内容比对。什么都没有发送。',
2444 'report.err_no_bridge': '此版本读不了它将要发送的消息,因此不会发送。',
2445 'report.err_not_a_post': '那不是一条消息,而是一个 {kind}。',
2446 'report.err_no_reasons': '目前无法举报。',
2447 'report.err_failed': '那份举报没有提交,什么都没有发送。',
2448 'share.err_no_bridge': '此版本无法分享 Diamond:它的分享格式没有加载。',
2449 'share.err_no_seal': '此版本无法分享 Diamond:发送时所用的封印没有加载。',
2450 'share.err_no_store': '此版本能读取分享,却没有地方存放。',
2451 'share.err_locked': '解锁 Daimond 后才能分享:分享要用你自己的密钥签名。',
2452 'share.err_empty': '那个 Diamond 里还没有可发送的内容。',
2453 'share.err_nothing': '没有可分享的东西:请指定一个 Diamond 或要发送的文件。',
2454 'share.err_no_name': '分享需要一个说明其内容的名字。',
2455 'share.err_note_long': '那条备注超过 {n} 个字符,没有发送。分享带的是一行说明它是什么;写信是消息该做的事。',
2456 'share.err_too_many_files': '那个 Diamond 有 {n} 个文件,而一次分享最多带 {max} 个。',
2457 'share.err_too_big': '那个 Diamond 有 {mb} MB,而一次分享最多带 {max} MB。它被拒绝而不是被删减:少了一个文件的副本不是更小的副本。',
2458 'share.err_bad_key': '那个人没有可用的密钥,因此什么都没有发送。',
2459 'share.err_no_card': '还没有那个人的封印密钥,所以无法向其密封任何东西。扫描对方的代码,或请对方把自己的发给你。',
2460 'share.err_not_addressed': '那份分享的收件密钥与此处的不同。',
2461 'share.err_addr_mismatch': '预告的分享与实际到达的分享不是同一个。',
2462 'share.err_all_code': '那份分享里全是页面,而页面未被接受,因此什么都没有添加。',
2463 'share.code_title': '此分享包含代码',
2464 'share.code_body': '“{name}”里含有一个页面:那是别人写的程序,你打开时 Daimond 会运行它。它来自 {who}。只有在你确实打算收下对方的页面时才接受。\n\n将会添加的内容:{files}',
2465 'share.code_ok': '接受该页面',
2466 'share.landed_name': '一个共享的 Diamond',
2467 'share.landed_title': '已添加共享的 Diamond',
2468 'share.landed_partial': '以下文件无法写入 Diamond:{list}。分享中的其余内容都在。',
2469 'share.left_page': '是你没有接受的页面',
2470 'share.landed_ok': '已作为你自己的 Diamond 加入。到了 {n} 个文件。',
2471 'share.panel_take_head': '打开一次分享',
2472 'share.panel_take_help': '接收别人给你的 {ext} 文件。里面的页面是他们写的程序,不先问过你,绝不会写进你的工作区。',
2473 'share.panel_take': '打开分享文件…',
2474 'share.panel_send_head': '发送一个 Diamond',
2475 'share.panel_no_diamond': '要分享就先打开一个 Diamond。一次分享带的是一个 Diamond 的文件,所以眼前得有一个。',
2476 'share.panel_no_people': '这里还没有人有封装密钥,所以没有可以把分享封给谁。给别人看你的码,或者读他们的。',
2477 'share.panel_this': '正在分享“{name}”——是归他们的一份副本,不是看你这份的窗口。',
2478 'share.panel_who': '发给谁',
2479 'share.panel_send': '分享',
2480 'share.panel_sealing': '正在封装…',
2481 'share.panel_sent': '已发给 {who}。',
2482 'share.panel_refused': '中继没有收:{why} 已改存为文件——把那个给他们。',
2483 'share.by_relay': '这次分享 {size},经中继直接送到对方那里。',
2484 'share.by_file': '这次分享 {size},而中继最多只带 {max},所以它以文件的形式走:存下来,把文件给他们。两种走法都是对他们封好的。',
2485 'share.saved_as': '已存为 {name}。把那个文件给他们:它只对他们封好,别人打不开。',
2486 'share.err_not_share': '那个文件不是 Daimond 的分享。',
2487 'share.err_no_file': '没有选文件,所以什么也没打开。',
2488 'share.err_file_huge': '那个文件 {size},比任何一次分享都大,所以没有打开。',
2489 // ── The Trash ──────────────────────────────────────────────
2490 'panel.trash': '回收站',
2491
2492 // ── 改进面板 ───────────────────────────────────────────────
2493 // 在这里写下关于 Daimond 的笔记,也在这里读提案。两半现在都经由 Oregami
2494 // 的锻造台(存放提案的服务器)。“锻造台”和“声音”是这个应用的说法,母语
2495 // 审校时换成别的词也可以。
2496 'panel.social': '社交',
2497 'social.notes': '笔记',
2498 'social.proposals': '提案',
2499 'social.messages': '消息',
2500 'social.people': '联系人',
2501 'social.messages_off': '此版本尚未启用消息。',
2502 'social.people_off': '还没有人。把你的代码给身边的人看,或者读一下他们的。',
2503 'social.share': '分享',
2504 'social.share_off': '此版本无法使用分享。',
2505
2506 'post.err_no_bridge': '此版本无法撰写消息:消息格式没有加载。',
2507 'post.err_no_draft': '此版本无法撰写消息:消息编码器没有加载。',
2508 'post.err_no_recipient': '一条封装的消息至少需要一个收件人密钥。',
2509 'post.err_too_many': '一条消息一次最多可以封装给 {n} 个人。',
2510 'post.err_bad_key': '有一位收件人没有可用的密钥,所以什么都没有发出。',
2511 'post.err_short': '这条消息短得算不上一条消息。',
2512 'post.err_not_sealed': '这不是一条封装的 Daimond 消息。',
2513 'post.err_no_sealing_key': '此设备没有封装密钥,因此无法打开已封装的消息。解锁一次 Daimond 后就会生成一个。',
2514 'post.err_not_for_you': '这条消息没有封装给此设备持有的任何密钥。',
2515 'post.err_locked': '解锁 Daimond 才能发送消息:它要用你自己的密钥签名。',
2516 'post.err_empty': '没有可发送的内容。',
2517 'post.err_long': '这条消息的正文超过 {n} 个字符,没有发出。它被拒绝而不是被截断:半条消息不是更短的消息。',
2518 'post.err_no_card': '还没有那个人的封装密钥,所以无法为其封装任何内容。扫描他们的代码,或者请他们把代码发给你。',
2519 'post.err_no_groups': '此版本无法发送到群组。',
2520 'post.err_group_none': '这条消息在那个群组里没有到达任何人,所以什么都没发出去。',
2521 'post.err_reserved_line': '消息不能以那一行开头:Daimond 用它来携带群组的成员名单。在它前面写点别的。',
2522 'post.err_bad_ref': '这不是消息可以携带的引用种类。',
2523 'post.err_not_a_post': '这不是一条消息,而是一个 {kind}。',
2524 'post.err_not_addressed': '这条消息寄给的是另一个密钥,不是这个。',
2525 'post.err_addr_mismatch': '中继所说的消息,不是它实际送来的那条。',
2526 'post.err_offline': 'Daimond 没能连上中继,消息还没有发出。',
2527 'post.err_box_full': '那个信箱满了,消息没有送达。要先取走里面已有的,才装得下新的。',
2528 'post.err_no_account': '没有账户持有那个密钥,消息还没有发出。',
2529 'post.err_too_big': '这条消息太大,中继带不动。',
2530 'post.err_refused': '中继没有接受这条消息,所以它没有发出。',
2531 'post.locked': '解锁 Daimond 才能读你的消息:它们在此设备上加密保存。',
2532 'post.tray_head': '等你答复',
2533 'post.none': '还没有消息。',
2534 'post.you': '你',
2535 'post.someone': '新的人',
2536 'post.unreadable': '收到了一条此设备打不开的消息。',
2537 'post.accept': '接受',
2538 'post.ignore': '忽略',
2539 'post.block': '屏蔽',
2540 'post.expired': '你发出的一条消息一直没人取走,中继已经把它放掉了。',
2541 'post.expired_group': '你发给某个群组的一条消息,收信人里有 {n} 个一直没取走,中继已经把那些副本放掉了。',
2542 'post.notice': '中继在这里留了一条通知。',
2543 'post.nobody': '还没有人可以写信。在“联系人”里和谁交换代码,他们就会出现在这里。',
2544 'post.to_label': '发给谁',
2545 'post.audience': '私密。只有你和收信的人能读到。',
2546 'post.audience_group': '为这个群组里的 {n} 个人各封装一次。没有共享密钥:后来加入的人读不到这条,之后被移出的人仍然留着它。',
2547 'post.group_count': '{n} 个人',
2548 'post.box_label': '写一条私密消息',
2549 'post.box_ph': '你想说什么,说给谁。',
2550 'post.send': '私密发送',
2551 'post.err_no_to': '先选择这条发给谁。',
2552 'post.sending': '正在发送…',
2553 'post.sent': '已发送。',
2554 'post.sent_group': '已发送给 {n} 个人。',
2555 'post.refused_offline': '联系不上中继',
2556 'post.refused_full': '对方的信箱满了',
2557 'post.refused_no_account': '没有账户持有他们的密钥',
2558 'post.refused_too_big': '超过中继能带的大小',
2559 'post.refused_other': '中继没有收',
2560 'post.group_refused': '这些人中继没有收:{who}。',
2561
2562 // ── A group, and who is in it ──
2563 // A group is a LIST OF PEOPLE a message is sealed to one by one. No
2564 // shared key, nothing kept on the relay: that decides every line here.
2565 'group.err_unknown': '此设备不认识那个群组。',
2566 'group.err_left': '你已经不在这个群组里了,所以什么都发不进去。已经在这里的消息还留在原处。',
2567 'group.err_closed': '这个群组已经关闭,不能再往里发任何东西。已经在这里的消息还留在原处。',
2568 'group.err_close_not_creator': '只有建这个群组的人才能关闭它。',
2569 'group.err_not_joined': '先加入这个群组,再往里写。',
2570 'group.err_nobody': '这个群组里没有此设备能封装给的人。',
2571 'group.err_locked': '解锁 Daimond 才能建群组:它的成员名单要用你自己的密钥签名。',
2572 'group.err_no_id': '此设备无法为群组命名。',
2573 'group.err_not_creator': '只有建这个群组的人才能改谁在里面。',
2574 'group.err_no_sealing_key': '此设备还没有封装密钥,所以建不了群组。',
2575 'group.err_too_many': '一个群组最多容纳 {n} 个人。',
2576 'group.err_no_card': '所选的人里有 {n} 个没有封装密钥,加不进来。先扫他们的代码。',
2577 'group.err_bad_keys': '这些不是密钥:{who}。',
2578 'group.err_pick': '至少选一个人。',
2579
2580 // lower case and no full stop: each finishes `group.refused`
2581 'group.skip_blocked': '你屏蔽了这个密钥',
2582 'group.refused': '没有封给:{who}。',
2583 'group.skip_changed': '他们的密钥变了,你还没有核对新的',
2584 'group.skip_disagree': '群组为他们保存的密钥不是你手上的那把',
2585
2586 // The two sentences. Each states a LIMIT: what a new member cannot be
2587 // shown, and what somebody taken out keeps. Neither may be softened.
2588 'group.joining_shows_nothing': '加入之后,你看不到加入之前发出的任何内容。那些消息从来没有为你的密钥封装过,所以没有哪台设备能替你打开。',
2589 'group.removing_retracts_nothing': '把人移出去,收不回任何东西。已经发给他们的每一条消息他们都留着;从现在起发的,他们收不到。',
2590 'group.close_note': '关闭群组,对所有人都关闭。包括你在内,没有人能再往里写;已经发出的每一条消息都留在原处。收不回来。',
2591
2592 'group.unnamed': '一个群组',
2593 'group.invites_head': '群组邀请',
2594 'group.head': '群组',
2595 'group.none_joined': '还没有加入任何群组。回应上面的邀请,或者在下面建一个。',
2596 'group.none': '还没有群组。群组就是一份人员名单,消息会一个一个地为他们封装 — 没有共享密钥,中继上也不留任何东西。',
2597 'group.invited_by': '{n} 个人,由建群组的人邀请。',
2598 'group.join': '加入',
2599 'group.decline': '暂不',
2600 'group.count': '{n} 个人',
2601
2602 // "stop sending to", never "remove": nothing is taken back
2603 'group.stop_sending': '不再发送给 {who}',
2604 'group.leave': '退出这个群组',
2605 'group.gone': '你已经不在这个群组里了。什么都没有被拿走:已经在这里的每一条消息都留着,新的不会再来。',
2606
2607 'group.close': '关闭这个群组',
2608 'group.close_title': '对所有人关闭这个群组?',
2609 'group.close_ask': '这会对群组里的所有人关闭“{name}”。',
2610 'group.close_ok': '对所有人关闭',
2611 'group.closed_said': '已关闭,已告知 {n} 人。',
2612 'group.closed': '这个群组已被建它的人关闭。什么都没有被拿走:已经在这里的每一条消息都留着,而且没有人能再往里写。',
2613
2614 'group.nobody': '还没有人可以放进群组。在“联系人”里和谁交换代码,他们就会出现在这里。',
2615 'group.name_ph': '这个群组叫什么',
2616 'group.name_label': '群组的名字',
2617 'group.members_label': '谁在这个群组里',
2618 'group.make': '建这个群组',
2619 'group.sending_roster': '正在通知所有人…',
2620 'group.roster_sent': '好了。',
2621 'group.making': '正在建群组…',
2622 'group.made': '建好了,已通知 {n} 个人。',
2623
2624 'trust.key_blocked': '已屏蔽的密钥',
2625 'trust.key_matched_qr': '当面核对过的密钥,{when}',
2626 'trust.key_matched_number': '通过安全码核对过的密钥,{when}',
2627 'trust.key_changed': '不同的密钥 — 你核对过的那个最后一次出现是 {when}',
2628 'trust.key_new': '新密钥 — 你还没有核对过它',
2629 'trust.no_name': '(未填名字)',
2630 'trust.calls_themselves': '自称“{name}”',
2631 'trust.lookalike': '这个名字很像你已经核对过的一个({fp})。名字不是身份 — 请看密钥。',
2632 'trust.held': '来自这个密钥的消息会先留着,等你决定。',
2633 'trust.compare_numbers': '比对安全码',
2634 'trust.unblock': '解除屏蔽',
2635 'trust.block': '屏蔽',
2636 'trust.show_mine': '显示我的代码',
2637 'trust.show_lead': '让对方用相机对准这里。当面读取,是你们两人不打电话就能互相标记为已核对的唯一办法。',
2638 'trust.no_card': '此设备还没有名片。解锁后再试一次。',
2639 'trust.paste_lead': '没有相机?那就把这个发给对方。这样送达的代码是一个新密钥,在你们比对安全码之前一直是。',
2640 'trust.add': '添加一个人',
2641 'trust.add_lead': '把这台设备对准对方的代码,或者粘贴他们发来的内容。',
2642 'trust.read_paste': '读取这个',
2643 'trust.bad_card': '这不是 Daimond 代码,或者签名没有通过。',
2644 'trust.arrived': '收到了一个代码',
2645 'trust.qr_lead': '你是从对方屏幕上直接读的,中间没有任何可以插进来的通道。只有确实如此,才把它标记为已核对。',
2646 'trust.mark_matched': '现在标记为已核对',
2647 'trust.async_lead': '这是经过中间环节送来的,所以它仍然是一个新密钥。在通话中把安全码念出来对一遍,才能改变这一点。',
2648 'trust.numbers': '安全码',
2649 'trust.numbers_lead': '在通话中或当面把这六十位数字念给对方听。你们两人必须看到相同的十二组。在消息里念毫无意义 — 能换掉密钥的东西,也能换掉这条消息。',
2650 'trust.numbers_differ': '它们不一样',
2651 'trust.numbers_match': '数字一致',
2652 'trust.no_number': '此设备暂时还算不出这个号码。',
2653 'trust.numbers_differ_note': '那就是有人夹在你们中间。不要用这个密钥。见面,或者从你亲眼读到的代码重新开始。',
2654
2655 'ref.kind_proposal': '提案',
2656 'ref.kind_build': '构建',
2657 'ref.kind_panel': '面板',
2658 'ref.kind_guide': '指南',
2659 'ref.proposal': '提案 #{n}',
2660 'ref.build': '构建 {id}',
2661 'ref.panel': '{name} 面板',
2662 'ref.guide': '指南:{page}',
2663 'ref.open_proposal': '打开提案',
2664 'ref.open_build': '打开发布说明',
2665 'ref.open_panel': '打开',
2666 'ref.open_guide': '打开页面',
2667 'ref.expand': '看看这是什么',
2668 'ref.reading': '正在读取…',
2669 'ref.signin': '登录后才能打开。',
2670 'ref.said': '描述为:{text}',
2671 'ref.unopenable': '这个在这里打不开。',
2672 'ref.said_n.one': '{n} 条评论,公开',
2673 'ref.said_n.other': '{n} 条评论,公开',
2674 'ref.build_here': '这就是你正在用的构建。',
2675 'ref.build_other': '你正在用构建 {id}。',
2676 'ref.build_update': '更新到该构建',
2677
2678 'dock.unseen.one': '{n} 条未读',
2679 'dock.unseen.other': '{n} 条未读',
2680 'social.info': '在指南中查看这个面板是什么',
2681 'social.box_label': '写一条关于 Daimond 的笔记',
2682 'social.box_ph': '在哪里、你以为会怎样、结果又发生了什么。',
2683 'social.with': '一起发送的内容',
2684 'social.with_off': '把这些细节从这条笔记里去掉',
2685 'social.keep': '留下',
2686 'social.keep_help': '把这条笔记存在这台设备上。不会发送任何东西。',
2687 'social.send': '发送',
2688 'social.send_help': '把上面的内容原样发给 Oxedyne。不会附带别的。',
2689 // 笔记以书写者的“声音”发出。没有账号名,也没有姓名同行,所以这里的任何
2690 // 一句都不能指名书写的人。
2691 'social.as_novoice': '你还没有声音,所以笔记只能留在这里。',
2692 // 在发送按钮上方,只在发送出现时一起出现。仓库是公开的,所以发出去的笔记
2693 // 任何人都能读到,不需要账号,还会带上声音的名称。这三点翻译时都不能丢。
2694 // `{host}` 由 js/improve.js 填入,原样保留。
2695 'social.publish_body': 'Daimond 想以你的名义发布这条内容,别人都能读到,而且无法撤回。\n\n{what}\n\n如果这不是你预期的,请拒绝。损失的只有这一次发布。',
2696 'social.publish_ok': '发布',
2697 'social.publish_title': '发布这条内容?',
2698 'social.public_note': '发送会把这条笔记发布到 {host},并带上你的声音名称。任何人都可以在那里读到它,不需要账号。你留下的笔记只留在这台设备上。',
2699 'social.compose_public': '以你的声音名公开发布,任何人都能读到。',
2700 'social.title_hint': '第一行是提案的标题。发生了什么写在它下面。',
2701 'social.no_title': '第一行是标题。先写一行标题,再在下面写发生了什么。',
2702 'social.nothing': '先写点什么。',
2703 // 被拒绝之后显示。没有队列也没有重试,所以译文不能许诺再试一次。
2704 'social.kept_here': '你的笔记留在这里,没有再试过。',
2705 'social.copied': '已复制。',
2706 'social.state_kept': '只在这里',
2707 'social.state_sent': '{date} 已发送',
2708 'social.state_sent_n': '{date} 已发送,是提案 {n}',
2709 'social.drop': '删除这条笔记',
2710 'social.drop_ask': '删除这条笔记?它只在这台设备上,没有别的副本。',
2711 'social.drop_ok': '删除',
2712 'social.no_notes': '还没有笔记。',
2713 'social.ctx_build': '构建 {id}',
2714 'social.ctx_touch': '触控',
2715 'social.ctx_pointer': '指针',
2716 'social.ctx_palette': '配色 {name}',
2717 'social.ctx_panels': '打开的面板:{list}',
2718
2719 // 声音是每个人自己的一段秘密,锻造台靠它认出是谁在写。它在这里用你的口令
2720 // 加密保存,绝不会出现在地址里。
2721 'social.voice_held': '这台设备上存着一个声音,用你的口令加密。',
2722 'social.voice_none': '你还没有声音,所以能读别人写下的内容,但不能添加。你自己的笔记只能保留。',
2723 'social.voice_replace': '更换声音',
2724 'social.voice_help': '追踪器给你看的那 45 个字符。它们在这里加密保存,永远不会进入地址。',
2725 'social.voice_ph': '粘贴追踪器给你看的那 45 个字符',
2726 'social.voice_save': '保存声音',
2727 'social.voice_saved': '你的声音已加密保存在这里。',
2728 'social.voice_failed': '这个声音没能保存。',
2729 'social.voice_forget': '忘掉它',
2730 'social.voice_forget_help': '删掉这台设备上的副本。',
2731 'social.voice_forgotten': '这台设备上的副本没有了。',
2732 'social.voice_ask_forget': '忘掉这台设备上的声音?锻造台只显示过一次,无法再显示第二次。',
2733 'voice.err.empty': '要在锻造台上写东西,得先有一个声音。',
2734 'voice.err.shape': '这看起来不像声音。声音是一串不含空格的 45 个字符。',
2735 'voice.err.short': '这比锻造炉签发的任何声音都短。请复制全部 45 个字符。',
2736 'voice.err.long': '这比一个声音能有的长度还长。',
2737 'voice.err.locked': '请先解锁 Daimond:你的声音是用你的密码短语加密保存的。',
2738 'voice.err.locked_send': '要在锻造台上写东西,请先解锁 Daimond:你的声音是用你的密码短语加密的。',
2739 'voice.err.unreadable': '用这个密码短语读不出你的声音。请用锻造台为你打印的那一行重新设置一次。',
2740 'voice.err.inurl': '声音放在请求头里,绝不放进地址。',
2741 'voice.the_voice': '你的锻造台声音',
2742
2743 'tracker.the_settle_voice': '你的裁定声音',
2744 // 提案是在你查看时从锻造台读来的。没有任何东西会告诉你提案何时有了回应,
2745 // 这里的任何一句都不能让人以为有。
2746 'social.live_note': '这些是在你查看时从锻造台读来的。提案有了回应不会有任何提示;再看一次才知道。',
2747 'social.loading': '正在读取提案…',
2748 'social.none_shown': '刚才什么都没能读到。',
2749 'social.none_yet': '这里还没有提案。你的会是第一条。',
2750 'social.reading': '正在读取…',
2751 'social.more': '显示更早的',
2752 'social.count.one': '{n} 条提案',
2753 'social.count.other': '{n} 条提案',
2754 'social.by': '来自 {who}',
2755 'social.said_n.one': '{n} 条回复',
2756 'social.said_n.other': '{n} 条回复',
2757 'social.built_on': '写于构建 {build}',
2758 'social.closed_by': '由标记 {mark} 关闭',
2759 'social.move_floor': '只有当一次改动被认作移动时,笔记才会跟着内容跨过文件的边界,而这个门槛是 64 字节。从一个文件里剪走少于这个数量再放进另一个文件,历史里留下的就是一次删除和一次插入,于是锚在那里的笔记会如实地说它的内容被删掉了。笔记没有错,历史也没有错。',
2760 'social.state_open': '待议',
2761 'social.state_taken': '正在做',
2762 'social.state_done': '已完成',
2763 'social.state_declined': '已谢绝',
2764 'social.tally': '{yes} 赞成,{no} 反对',
2765 'social.do': '做这个',
2766 'social.not': '不做这个',
2767 'social.vote_novoice': '设置一个声音才能给它投票。',
2768 'social.vote_off': '再按一次可以把你的票收回。',
2769 'social.reply': '说出来',
2770 'social.reply_ph': '说说你对这条提案的看法。',
2771 'social.reply_help': '把这个框里的内容原样发出。不会附带别的。',
2772
2773 // 锻造台拒绝的理由,用话说出来。这些句子都不说是哪一项额度用完了:会报出
2774 // 自己状态的限额,是别人可以拿捏着用的限额。
2775 //
2776 // 译者请注意 —— `improve.err_absent` 是隐私规则,不是措辞偏好。锻造台对
2777 // “没有这个仓库”和“这个仓库是私有的”这两种情况,有意且永久地都回答
2778 // `absent`。任何能把两者分开的迹象,都会把私有仓库正在保留的事实重新公开
2779 // 出去。所以这句话在两种情况下都必须为真:仓库是私有的时候,“不存在”是
2780 // 假话;而“是私有的”本身就泄露了。只说它对你不可用。
2781 // 参见 dev/IMPROVE_CONTRACT.md §7 (and the forge contract §3.1)。
2782 'social.err_absent': '这个仓库对你不可用。',
2783 'social.err_unvoiced': '没有把声音交给锻造台,所以它拒绝了。',
2784 'social.err_unknown': '锻造台认不出你的声音。请用锻造台为你打印出的那一行重新设置。',
2785 'social.err_unpermitted': '你的声音在这里不能做这件事。',
2786 'social.err_amend_unpermitted': '只有发起该提案的人才能修订它。',
2787 'social.err_throttled': '刚才请求太多了。稍等一会儿再试。',
2788 'social.err_throttled_address': '刚才这个地址发出的请求太多了。稍等一会儿再试。',
2789 'social.err_throttled_failing': '刚才失败的请求太多了。稍等一会儿再试。',
2790 'social.err_malformed': '锻造台读不懂 Daimond 的请求。这是 Daimond 的毛病,不是你写的内容有问题。',
2791 'social.err_no_proposal': '这里没有这条提案。',
2792 'social.err_unsupported': '锻造台不回答这个。',
2793 'social.err_internal': '锻造台那边出了问题。这不是你的错。',
2794 'social.err_gateway': 'Daimond 刚才没能连上锻造台。',
2795 'social.err_session': 'Daimond 现在没有登录,所以没能连上锻造台。',
2796 'social.err_toolong': '这比锻造台能接受的长度还长。缩短一些,或者分两次发。',
2797 'social.err_offline': '刚才什么都没能发出去。',
2798 'social.amend': '修订这条',
2799 'social.amend_help': '替换这条提案的内容。每个读到它的人看到的都是新文字。',
2800 'social.amend_title_ph': '说明这是关于什么的那一行',
2801 'social.amend_body_ph': '发生了什么,以及原本期待的是什么',
2802 'social.amend_save': '发布修订',
2803 'social.amend_save_help': '只发送这两个框里的内容,别的什么也不带。',
2804 'social.revised_n.one': '修订过 1 次',
2805 'social.revised_n.other': '修订过 {n} 次',
2806 // Drafting from the whole list of kept notes at once (www/js/triage.js).
2807 'social.triage_run': '用全部 {n} 条笔记起草',
2808 'social.triage_run_help': '读取每一条留存的笔记,以及锻造台上已有的提案,然后写出一份计划。在你对某份草稿按下发送之前,没有任何内容离开这台设备。',
2809 'social.triage_running': '正在读你的笔记…',
2810 'social.triage_cost': '用 {model}、以你自己的密钥读取全部 {n} 条笔记:输入约 {in} 个词元,输出最多 {out} 个,所以最多 {usd},通常远低于此。',
2811 'social.triage_cost_unknown': '用 {model}、以你自己的密钥读取全部 {n} 条笔记:输入约 {in} 个词元,输出最多 {out} 个。这里没有该模型的价格,所以运行前无法知道费用。',
2812 'social.triage_cost_stop': '在你对草稿按下发送之前,不会有任何内容发往锻造台。',
2813 'social.triage_nomodel': '用笔记起草之前,先在 AI 里选一个模型。',
2814 'social.triage_nonotes': '没有可供起草的留存笔记。',
2815 'social.triage_unread': '模型给出的计划,这个面板读不了。什么都没有发出,你的笔记也没有改动。',
2816 'social.triage_failed': '起草没有完成:{why}',
2817 'social.triage_plan': '{model} 依你的笔记写出的 {n} 份草稿。逐份读过,写错就改,想发的再发。这里的内容都还没有离开这台设备。',
2818 'social.triage_dropped': '另有 {n} 份的返回格式这个面板读不了,未予显示。',
2819 'social.triage_left': '有 {n} 条笔记不在任何草稿里:',
2820 'social.triage_clear': '丢弃这份计划',
2821 'social.triage_clear_help': '把草稿从屏幕上撤下。不发送任何内容,也不改动任何笔记。',
2822 'social.triage_drop': '这份不要',
2823 'social.triage_drop_help': '把这份草稿从计划里撤下。不发送任何内容。',
2824 'social.triage_send_help': '只发送上面框里的字符,不附带别的东西。',
2825 'social.triage_kept': '什么都没有发出,也没有重试。你的笔记没有改动。',
2826 'social.triage_from': '出自 {n} 条笔记',
2827 'social.triage_from_one': '出自 1 条笔记',
2828 'social.triage_kind_new': '新提案',
2829 'social.triage_kind_comment': '对 #{n} 的评论',
2830 'social.triage_kind_revision': '#{n} 的修订',
2831 'social.triage_opened': '已立为提案 #{n}。',
2832 'social.triage_said': '已在提案 #{n} 留言。',
2833 'social.triage_revised': '提案 #{n} 已修订。',
2834 'trash.nothing': '没有删除过任何东西。',
2835 'trash.kept_days': '保留 {days} 天,之后彻底删除。',
2836 'trash.holding.one': '{n} 项,{bytes}',
2837 'trash.holding.other': '{n} 项,{bytes}',
2838 'trash.until': '到 {date}',
2839 'trash.deleted_why': '已删除。只在这里。',
2840 'trash.expired_why': '它的时间到了。只在这里。',
2841 'trash.kind_chat': '聊天',
2842 'trash.kind_diamond': 'Diamond',
2843 'trash.unnamed_chat': '未命名聊天',
2844 'trash.keep': '保留',
2845 'trash.keep_help': '把这场聊天做成一个 Diamond,整段对话作为它的第一件产物。',
2846 'trash.keep_named': '把“{name}”保留为 Diamond',
2847 'trash.restore': '恢复',
2848 'trash.restore_named': '恢复“{name}”',
2849 'trash.restore_all': '全部恢复',
2850 'trash.purge': '彻底删除',
2851 'trash.purge_named': '彻底删除“{name}”',
2852 'trash.purge_ask': '彻底删除“{name}”?它会从你所有设备上消失,无法找回。',
2853 'trash.purge_ok': '彻底删除',
2854 'trash.empty': '清空回收站',
2855 'trash.empty_ask.one': '彻底销毁回收站里的 {n} 项?它会从你所有设备上消失,无法找回。',
2856 'trash.empty_ask.other': '彻底销毁回收站里的全部 {n} 项?它们会从你所有设备上消失,无法找回。',
2857 'trash.empty_ok': '清空回收站',
2858 'trash.moved': '已把“{name}”移到回收站。',
2859 'trash.moved_n.one': '已把 {n} 项移到回收站。',
2860 'trash.moved_n.other': '已把 {n} 项移到回收站。',
2861 'trash.swept.one': '有 1 项在回收站里放了 {days} 天,已被彻底删除。',
2862 'trash.swept.other': '有 {n} 项在回收站里放了 {days} 天,已被彻底删除。',
2863
2864 // Added 2026-08-12: a worker's consent question parked on the Pending
2865 // panel, the Agents panel's own controls, and the rewritten Tools panel.
2866 'pending.consent.click_head': '一个代理想在 {host} 上点击某处',
2867 'pending.consent.type_head': '一个代理想向 {host} 发送文字',
2868 'pending.consent.reach_head': '一个代理想访问 {host}',
2869 'pending.consent.why': '它提问时这个页面并不在你眼前,所以这个问题等在这里,而不是弹出一个没人会看到的对话框。',
2870 'pending.consent.agent': '这个代理是 {name}。它的任务:{task}',
2871 'pending.consent.waiting': '代理仍在等这个回答。',
2872 'pending.consent.expired': '提问的那个代理已经不在了——这是在应用上次重新载入之前提出的。现在说“可以”也无法让那个动作发生。',
2873 'pending.consent.allowed': '已允许。已告诉代理可以继续。',
2874 'pending.consent.gone': '已经没有东西在等这一项了,所以没有什么可允许的。',
2875 'pending.consent.nochat': '已拒绝。没有可以带去的对话:当时有两个代理在跑,Daimond 无法判断是哪一个提的问。',
2876 'agents.act_pause': '暂停',
2877 'agents.act_pause_help': '让这个代理挂起,保留它到目前为止的工作;之后可以继续。',
2878 'agents.act_stop': '停止',
2879 'agents.act_stop_help': '彻底停止这个代理。它已经完成的部分会保留。',
2880 'agents.act_resume': '继续',
2881 'agents.act_resume_help': '让这个代理从中断处继续。',
2882 'agents.act_discard_help': '丢弃这个已暂停的代理。',
2883 'agents.tally_running': '{n} 个在跑',
2884 'agents.tally_paused': '{n} 个暂停',
2885 'agents.tally_queued': '{n} 个排队',
2886 'agents.live': '{n} 个活动中',
2887 'agents.dropped.one': '有 1 次较早的运行未被保留。',
2888 'agents.dropped.other': '有 {n} 次较早的运行未被保留。',
2889 'agents.status_queued': '排队中',
2890 'agents.status_running': '运行中',
2891 'agents.status_paused': '已暂停',
2892 'agents.status_done': '已完成',
2893 'agents.status_error': '失败',
2894 'agents.status_stopped': '已停止',
2895 'agents.status_interrupted': '被中断',
2896 'tools.intro': 'Daimond 能为你做的事。大部分都已包含。加装包开辟新的领域,用美元一次性购买,不从你的额度里扣。',
2897 'tools.count': '本账户可用 <b>{all} 项中的 {have} 项</b>。',
2898 'tools.sec_included': '已包含',
2899 'tools.sec_packs': '加装包',
2900 'tools.packs_none': '暂时还没有加装包在售。有了就会显示在这里。',
2901 'tools.packs_fine': '加装包买一次就一直有。它用美元支付,走的是和 Pro 相同的结账通道,绝不从额度里扣——所以无论你用额度还是用自己的 API 密钥运行 Daimond,加装包的价格都一样。',
2902 'tools.status_included': '已包含',
2903 'tools.status_owned': '已拥有',
2904 'tools.locked_why': '本账户未购买:这属于 {pack} 加装包。Daimond 会直接拒绝并说明,而不是做一半。',
2905 'tools.expand': '它能做什么({n})',
2906 'tools.collapse': '收起它能做什么',
2907 'tools.fn_pack': '在 {pack} 加装包中',
2908 'tools.cap.files.name': '你的文件',
2909 'tools.cap.files.blurb': 'Daimond 读写和修改你工作区里的文件 —— 包括表格里的单元格和文档里的文字 —— 一次在所有文件里查找,并且收拾好自己留下的东西。',
2910 'tools.cap.cloud.name': '存在云端的文件',
2911 'tools.cap.cloud.blurb': '本机没有的文件,会在 Daimond 需要读取的那一刻从你的云存储取回,而不是把所有东西都留在所有地方。',
2912 'tools.cap.work.name': '把一件工作聚在一起',
2913 'tools.cap.work.blurb': 'Daimond 记录哪些文件属于哪件工作,所以你自己做的东西会和它一起列出来,而不是无人问津地躺在某个文件夹里。',
2914 'tools.cap.asking.name': '向你提问',
2915 'tools.cap.asking.blurb': 'Daimond 一次只把一项决定交给你,答案可以直接点选:每个选项都说明它具体意味着什么,其中一项会连同理由被指名为推荐,你也随时可以用自己的话作答。',
2916 'tools.cap.show.name': '把文件放到你眼前',
2917 'tools.cap.show.blurb': 'Daimond 会把文件放在对话旁边给你看——PDF 按排版好的页面显示,图片画出来,表格就是表格——而不是只用文字描述给你听。',
2918 'tools.cap.checking.name': '核对自己的工作',
2919 'tools.cap.checking.blurb': 'Daimond 会运行本项目自带的一项检查,并报告哪些通过、哪些失败,以及哪些破坏测试什么也没能证明。',
2920 'tools.cap.social.name': '与他人谈论 Daimond',
2921 'tools.cap.social.blurb': 'Daimond 会读取别人对 Daimond 本身的报告和请求,并在每次都征得你同意、把要发出去的内容原样给你看之后,以你的名义报告或支持某件事。',
2922 'tools.cap.machine.name': '你的电脑',
2923 'tools.cap.machine.blurb': '装上 Daimond 的机器手之后,Daimond 会在你授予的那个文件夹里构建、测试并运行命令行工具,除此之外哪里都不去。',
2924 'tools.cap.reading.name': '阅读网页',
2925 'tools.cap.reading.blurb': 'Daimond 用你选定的搜索引擎查找,并读出页面实际说了什么,你们谁都不必离开 Daimond。',
2926 'tools.cap.browsing.name': '使用一个网站',
2927 'tools.cap.browsing.blurb': 'Daimond 在对话旁边打开页面并操作它——点击、输入、滚动——你可以看着它做。',
2928 'tools.cap.typeset.name': '排版一份文档',
2929 'tools.cap.typeset.blurb': 'Daimond 就在浏览器里,把 Typst 源文件排成一份排版妥当的 PDF。',
2930 'tools.cap.dispatch.name': '派出工作代理',
2931 'tools.cap.dispatch.blurb': 'Daimond 把一件大活拆成界限清楚的任务,每个任务派一个代理,同时跑好几个,再把它们带回来的东西合成一个答案。',
2932 'tools.cap.graph.name': '你的工作如何关联',
2933 'tools.cap.graph.blurb': 'Daimond 读取并记录你的 Diamond、文件、页面和对话之间的关系——什么取代了什么,什么产生了什么。',
2934 'tools.cap.other.name': '尚未描述',
2935 'tools.cap.other.blurb': 'Daimond 具备这些能力,但还没人告诉这个面板该怎么称呼它们。打开它看看是什么。',
2936 'legal.terms': '服务条款',
2937 'legal.privacy': '隐私政策',
2938 'legal.draft_note': '自 2026 年 8 月 13 日起生效。标有 [TO CONFIRM] 的条目仍在确定中。',
2939 'lapse.hide': '隐藏到明天',
2940 'lapse.read_clause': '条款里是怎么写的',
2941 'lapse.storage_head': '超出免费额度存放的文件将于 {date} 删除。',
2942 'lapse.storage_head_undated': '超出免费额度存放的文件将在宽限期结束时删除。',
2943 'lapse.storage_why': '你的额度不够支付正占用的云端存储,所以计量已经暂停。不会倒扣补收,已经存好的内容你现在仍然读得到。',
2944 'lapse.storage_size': '超出免费额度约存放了 {size}。',
2945 'lapse.storage_what': '如果到那时余额仍未恢复,超出免费额度存放的数据会被删除。这台设备上的文件不受影响。',
2946 'lapse.top_up': '充值额度',
2947 'lapse.credits_pitch': '充值可以避免超出免费额度存放的数据被删除。',
2948 'lapse.lic_head': '你的 Pro 授权将于 {date} 结束。',
2949 'lapse.lic_head_past': '你的 Pro 授权已于 {date} 结束。',
2950 'lapse.lic_off': '到那时,跨设备同步、云端存储和 Daimond Email 会关闭,因为这三样都是我们这边要一直运行的服务。',
2951 'lapse.lic_off_past': '跨设备同步、云端存储和 Daimond Email 已经关闭,因为这三样都是我们这边要一直运行的服务。',
2952 'lapse.lic_keep': '这台设备上的一切照旧:你的文件、你的对话、你的 Diamond、你的身份,以及你自己的服务商密钥。什么都不会被删除,什么都不会被锁住,你做出来的东西也不会变得读不了。',
2953 'lapse.lic_pull': '取回已经存好的内容永远不会停止,你的额度也不受影响。',
2954 });
2955})();