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 | })(); |