{
"cli.bundle.add.adding": "正在添加 pack 到 bundle...",
"cli.bundle.add.bundle": " Bundle:{}",
"cli.bundle.add.created_structure": "已创建 bundle 结构于 {}",
"cli.bundle.add.dry_run": "[试运行] 将添加 pack 到 bundle",
"cli.bundle.add.env": " 环境:{}",
"cli.bundle.add.pack_ref": " Pack 引用:{}",
"cli.bundle.add.resolved": " 已解析的 pack:{}",
"cli.bundle.add.success": "Pack 已成功添加到 bundle。",
"cli.bundle.add.team": " 团队:{}",
"cli.bundle.add.tenant": " 租户:{}",
"cli.bundle.add.version_warning": "警告:版本 {} 验证失败:{}",
"cli.bundle.build.building": "正在构建可移植 bundle...",
"cli.bundle.build.output": " 输出:{}",
"cli.bundle.build.running_doctor": "正在运行 doctor 验证...",
"cli.bundle.build.success": "Bundle 已成功构建于 {}",
"cli.bundle.init.created": "Bundle 已创建于 {}",
"cli.bundle.init.creating": "正在创建 bundle 于 {}...",
"cli.bundle.init.exists": "Bundle 已存在于 {}",
"cli.bundle.init.next_steps": "后续步骤:",
"cli.bundle.init.step_add": " 1. greentic-setup bundle add <pack.gtpack> --bundle {}",
"cli.bundle.init.step_setup": " 2. greentic-setup bundle setup --bundle {} --answers answers.yaml",
"cli.bundle.list.bundle": "Bundle:{}",
"cli.bundle.list.domain": "域:{}",
"cli.bundle.list.packs_found": "已找到 pack:{}",
"cli.bundle.remove.cancelled": "移除已取消 - 使用 --force 确认",
"cli.bundle.remove.complete": "Provider 已移除:{}",
"cli.bundle.remove.confirm": "这将移除 provider 配置。",
"cli.bundle.remove.removing": "正在移除 provider...",
"cli.bundle.remove.use_force": "使用 --force 确认。",
"cli.bundle.setup.complete": "Provider 设置完成:{}",
"cli.bundle.setup.domain": " 域:{}",
"cli.bundle.setup.dry_run": "[试运行] 将设置 provider:{}",
"cli.bundle.setup.emit_usage": "编辑后使用:greentic-setup bundle setup --answers {}",
"cli.bundle.setup.emit_written": "答案模板已写入:{}",
"cli.bundle.setup.env_bootstrap_created": "已在 {} 引导 `local` 环境并设置默认能力绑定。",
"cli.bundle.setup.interactive_not_impl": "交互式设置尚未实现。",
"cli.bundle.setup.provider": " Provider:{}",
"cli.bundle.setup.setting_up": "正在设置 provider...",
"cli.bundle.setup.use_answers": "使用 --answers <file> 提供设置答案。",
"cli.bundle.setup.use_emit_answers": "或使用 --emit-answers <file> 生成答案模板。",
"cli.bundle.status.bundle_label": "Bundle:{}",
"cli.bundle.status.not_found": "未找到 Bundle:{}",
"cli.bundle.status.packs": "Pack:{} 已安装",
"cli.bundle.status.tenants": "租户:{}",
"cli.bundle.status.valid_no": "否(缺少 greentic.demo.yaml)",
"cli.bundle.status.valid_yes": "是",
"cli.bundle.update.complete": "Provider 更新完成:{}",
"cli.bundle.update.dry_run": "[试运行] 将更新 provider:{}",
"cli.bundle.update.emit_usage": "编辑后使用:greentic-setup bundle update --answers {}",
"cli.bundle.update.updating": "正在更新 provider 配置...",
"cli.error.answers_required": "非交互模式下需要 --answers",
"cli.error.failed_build_plan": "构建计划失败",
"cli.error.failed_create_bundle": "创建 bundle 结构失败",
"cli.error.failed_emit_answers": "生成答案模板失败",
"cli.error.failed_execute_plan": "执行计划失败",
"cli.error.failed_read_answers": "读取答案文件失败",
"cli.error.interactive_required": "交互式设置需要 --answers 文件",
"cli.error.invalid_bundle": "无效的 bundle 目录",
"cli.help.for_help": "获取帮助:greentic-setup --help",
"cli.simple.bundle_required": "需要 Bundle 路径。用法:greentic-setup [OPTIONS] <BUNDLE>",
"cli.simple.dry_run": "[试运行] 将设置 bundle:{}",
"cli.simple.emit_usage": "编辑后使用:greentic-setup --answers {} {}",
"cli.simple.expected_bundle_format": "预期为目录或 .gtbundle 文件:{}",
"cli.simple.extracted_to": " 已解压到:{}",
"cli.simple.extracting": "正在解压 .gtbundle 归档...",
"cli.simple.header": "Greentic 设置",
"cli.simple.interactive_mode": "交互式向导模式",
"cli.simple.wizard_not_impl": "交互式向导尚未实现 - 使用 --answers <file>",
"env_wizard.basic_mode": "基本模式 — 传入 --advanced 还可设置客户 id、配置覆盖、路由主机、欢迎流程和端点密钥引用。",
"env_wizard.dry_run_secrets_note": "注意:--dry-run 仅预览 — 你输入的 {} 个粘贴密钥值不会写入存储。请不带 --dry-run 重新运行并确认计划以持久化它们。",
"env_wizard.form.desc": "创建 `greentic.env-manifest.v1` 清单 — 一个环境的持久、可重新应用的期望状态文档。",
"env_wizard.form.title": "环境设置",
"env_wizard.list.bundles.item_label": "包",
"env_wizard.list.messaging_endpoints.item_label": "消息端点",
"env_wizard.list.secrets.item_label": "密钥",
"env_wizard.manifest_prompt": "清单文件 [{}]: ",
"env_wizard.q.bundle_id.desc": "自然键 — 在清单内唯一。",
"env_wizard.q.bundle_id.title": "包 id",
"env_wizard.q.bundle_path.desc": "本地 `.gtbundle`。相对路径按清单文件所在目录解析。",
"env_wizard.q.bundle_path.title": "包路径",
"env_wizard.q.bundles.desc": "此环境的包部署。",
"env_wizard.q.bundles.title": "包",
"env_wizard.q.config_overrides.desc": "JSON 对象 `{\"<pack_id>\": {\"<key>\": <value>}}`。留空 = 保持不变;`{}` = 显式清除。",
"env_wizard.q.config_overrides.title": "配置覆盖 (JSON)",
"env_wizard.q.customer_id.desc": "计费主体 — apply 在非 `local` 环境中需要。",
"env_wizard.q.customer_id.title": "客户 id",
"env_wizard.q.environment_id.desc": "要应用到的环境。`local` 会使用默认 env-pack 绑定进行引导;任何其他 id 必须已存在(apply 会对其进行协调;非本地环境创建保留给操作员存储)。",
"env_wizard.q.environment_id.title": "环境 id",
"env_wizard.q.from_env.desc": "保存密钥值的变量名称(例如 TELEGRAM_BOT_TOKEN)— 是名称,不是值。当来源为 `env` 时必填。",
"env_wizard.q.from_env.title": "环境变量名称",
"env_wizard.q.links.desc": "此端点接收的逗号分隔 `bundle_id` 列表。",
"env_wizard.q.links.title": "已链接的包 id",
"env_wizard.q.messaging_endpoints.desc": "消息端点及其包链接。",
"env_wizard.q.messaging_endpoints.title": "消息端点",
"env_wizard.q.name.desc": "清单内句柄和显示名称。与提供方类型一起作为 upsert 键。",
"env_wizard.q.name.title": "端点名称",
"env_wizard.q.path.desc": "`<tenant>/<team>/<pack>/<name>`,例如 default/_/messaging-telegram/telegram_bot_token",
"env_wizard.q.path.title": "密钥路径",
"env_wizard.q.provider_type.desc": "提供方类,例如 messaging.telegram.bot。",
"env_wizard.q.provider_type.title": "提供方类型",
"env_wizard.q.public_base_url.desc": "持久化到环境的仅来源 URL(例如 https://bots.example.com)。留空以保留当前值。",
"env_wizard.q.public_base_url.title": "公共基础 URL",
"env_wizard.q.route_hosts.desc": "路由绑定的逗号分隔主机名。",
"env_wizard.q.route_hosts.title": "路由主机",
"env_wizard.q.route_path_prefixes.desc": "逗号分隔的 HTTP 路径前缀,每个都以 `/` 开头(例如 /legal)。",
"env_wizard.q.route_path_prefixes.title": "路由路径前缀",
"env_wizard.q.route_team.desc": "路由绑定租户选择器的团队 — 与 `route_tenant` 一起设置。",
"env_wizard.q.route_team.title": "路由团队",
"env_wizard.q.route_tenant.desc": "路由绑定租户选择器的租户 — 与 `route_team` 一起设置。",
"env_wizard.q.route_tenant.title": "路由租户",
"env_wizard.q.secret_refs.desc": "创建端点时转发的逗号分隔密钥引用。",
"env_wizard.q.secret_refs.title": "密钥引用",
"env_wizard.q.secrets.desc": "开发存储密钥条目。每个密钥的值来自具名环境变量或你粘贴输入的值 — 值绝不会进入清单。",
"env_wizard.q.secrets.title": "密钥",
"env_wizard.q.source.desc": "`env` 会在 apply 时从具名环境变量读取值;`paste` 允许你交互式输入值 — 它会存储在环境的密钥存储中,绝不会存入清单。",
"env_wizard.q.source.title": "密钥来源",
"env_wizard.q.trust_root_bootstrap.desc": "用本地操作员密钥植入环境信任根(幂等;在包可以暂存前需要执行一次)。",
"env_wizard.q.trust_root_bootstrap.title": "初始化信任根?",
"env_wizard.q.webchat_gui.desc": "提供内置的网页聊天控制台,这样你就可以在浏览器中打开其 URL 来与此环境聊天。对 `local` 默认开启;聊天路径仅限回环访问且未经身份验证,因此除非你确实需要,否则请在暴露于公共 URL 的环境中保持关闭。",
"env_wizard.q.webchat_gui.title": "添加网页聊天 GUI?",
"env_wizard.q.welcome_bundle_id.desc": "同时设置三个 welcome_* 字段(或都不设置)。",
"env_wizard.q.welcome_bundle_id.title": "欢迎流程:bundle id",
"env_wizard.q.welcome_flow_id.desc": "同时设置三个 welcome_* 字段(或都不设置)。",
"env_wizard.q.welcome_flow_id.title": "欢迎流程:flow id",
"env_wizard.q.welcome_pack_id.desc": "同时设置三个 welcome_* 字段(或都不设置)。",
"env_wizard.q.welcome_pack_id.title": "欢迎流程:pack id",
"env_wizard.secrets.choose": "对于每一项,选择值的来源:具名环境\n变量,或现在粘贴。粘贴的值会存储在该\n环境的密钥存储中——绝不会写入清单。",
"env_wizard.secrets.entry": "{} — {}(bundle:{}){}",
"env_wizard.secrets.envvar_prompt": "环境变量名称 [{}]:",
"env_wizard.secrets.envvar_required": "必须提供环境变量名称。",
"env_wizard.secrets.keep_env_note": "注意:保留现有密钥 `{}`(bundle 未重新构建)",
"env_wizard.secrets.keep_paste_note": "注意:保留现有粘贴的密钥 `{}`(bundle 未重新构建)",
"env_wizard.secrets.need": "密钥——已配置的 bundle 需要 {} 个密钥。",
"env_wizard.secrets.none": "密钥——已配置的 bundle 未声明密钥;无需输入。",
"env_wizard.secrets.optional_suffix": " [可选]",
"env_wizard.secrets.paste_prompt": "粘贴值(隐藏,单行):",
"env_wizard.secrets.paste_prompt_keep": "粘贴值(隐藏,单行;留空则保留已存储的值):",
"env_wizard.secrets.paste_required": "必须提供一个值。",
"env_wizard.secrets.path": "密钥路径:{}",
"env_wizard.secrets.source_invalid": "输入 1(环境变量)或 2(粘贴)。",
"env_wizard.secrets.source_prompt": "值来自 [1] 环境变量,还是 [2] 现在粘贴?[{}]:",
"env_wizard.wrote_manifest": "已写入 `{}`——清单是持久化产物;请将其纳入版本控制。",
"setup.answers.emitted": "答案模板已写入 {}",
"setup.answers.loaded": "已从 {} 加载答案",
"setup.capability.not_found": "未找到能力 '{}'",
"setup.capability.resolved": "已解析能力:pack_id={} stable_id={}",
"setup.discovering_packs": "正在发现 bundle 中的 pack...",
"setup.dry_run.header": "设置计划(试运行):",
"setup.error.bundle_not_found": "未找到 Bundle:{}",
"setup.error.protocol_not_supported": "尚不支持该协议:{}",
"setup.error.version_mismatch": "标签版本({})与 crate 版本({})不匹配",
"setup.execute.failed": "设置失败:{}",
"setup.execute.success": "设置完成:{}",
"setup.found_packs": "已找到 {} 个 pack:{}",
"setup.plan.header": "设置计划:",
"setup.plan.step.collect_answers": "收集 {} 的答案",
"setup.plan.step.discover": "发现 pack",
"setup.plan.step.resolve": "生成解析后的清单",
"setup.plan.step.run_setup": "为 {} 运行设置流程",
"setup.plan.step.seed_secrets": "为 {} 初始化密钥",
"setup.plan.step.validate": "验证 bundle",
"setup.plan.step.webhooks": "为 {} 注册 webhook",
"setup.plan.step.write_config": "为 {} 写入配置",
"setup.qa.invalid_choice": "选择无效。选项:{}",
"setup.qa.list.add_first": "添加 {}?[y/N] ",
"setup.qa.list.add_more": "再添加一个 {}?[y/N] ",
"setup.qa.list.field_required_row": "此字段为必填项——至少需要一行。",
"setup.qa.list.max_reached": "(已达到最多 {} 行)",
"setup.qa.list.min_required": "至少需要 {} 行——当前为 {}。输入 'y' 添加另一行。",
"setup.qa.list.row_dropped": "(行已丢弃——必填列为空)",
"setup.qa.list.row_header": "第 #{} 行:",
"setup.qa.prompt.configuring": "正在配置 {}:{}",
"setup.qa.prompt.default": "(默认:{})",
"setup.qa.prompt.field_required": "此字段为必填项。",
"setup.qa.prompt.invalid_choice": "选择无效。选项:{}",
"setup.qa.prompt.invalid_format": "格式无效。预期模式:{}",
"setup.qa.prompt.mode_advanced": "(高级)",
"setup.qa.prompt.optional_marker": "(可选)",
"setup.qa.prompt.required_marker": "(必填)",
"setup.qa.question_prompt": "{}",
"setup.qa.required_field": "此字段为必填项",
"setup.qa.secret_input": "输入密钥值(已隐藏):",
"setup.secrets.failed": "为 provider={} tenant={} 初始化密钥失败:{}",
"setup.secrets.seeded": "已为 provider={} tenant={} 初始化 {} 个密钥",
"setup.state_store.fallback": "使用内存状态存储(无可用的 Redis URL)",
"setup.state_store.upgraded": "状态存储已升级到 Redis:{}",
"ui.back": "返回",
"ui.close": "关闭",
"ui.configure": "配置 {}",
"ui.continue": "继续",
"ui.dashboard.add_scope": "添加范围",
"ui.dashboard.back": "返回仪表板",
"ui.dashboard.configured": "已配置",
"ui.dashboard.delete": "删除",
"ui.dashboard.description": "在 {} 中配置 {} 个提供程序。为不同的租户/环境创建多个范围。",
"ui.dashboard.executed": "已执行",
"ui.dashboard.export": "导出答案",
"ui.description": "在 {} 中配置 {} 个提供程序",
"ui.discovering": "正在发现提供程序...",
"ui.discovering_sub": "正在读取 bundle 配置",
"ui.done": "完成",
"ui.execute_setup": "执行设置",
"ui.executing.sub": "正在将配置应用到 bundle",
"ui.executing.title": "正在运行设置...",
"ui.export.description": "将配置下载为与 --answers 模式兼容的 JSON 答案文件。",
"ui.export.download": "下载 answers.json",
"ui.export.password": "加密密码",
"ui.export.password_help": "如果设置,机密值将使用 AES-256-GCM 加密。使用 --answers --key 时需要此密码。",
"ui.export.password_hint": "留空表示不加密",
"ui.export.title": "导出答案",
"ui.field.required": "必须填写 {}。",
"ui.import.decrypt_failed": "解密失败",
"ui.import.dropzone": "将 answers.json 拖放到此处或点击导入",
"ui.import.no_scopes": "文件中未找到有效范围。",
"ui.import.parse_error": "解析文件失败",
"ui.import.password_prompt": "此文件包含加密的机密。请输入解密密码:",
"ui.new_setup": "新建设置",
"ui.no_providers": "在 bundle 中未找到提供程序。",
"ui.nothing_to_configure": "没有可配置的内容。",
"ui.pending": "待处理",
"ui.provider.configure": "配置 {}",
"ui.q.api_base_url": "API 基础 URL",
"ui.q.base_url": "基础 URL",
"ui.q.channel_id": "频道 ID",
"ui.q.default_channel": "默认频道",
"ui.q.default_room_id": "默认房间 ID",
"ui.q.default_to_person_email": "默认人员邮箱",
"ui.q.enabled": "启用提供商",
"ui.q.jwt_signing_key": "JWT 签名密钥",
"ui.q.jwt_signing_key.help": "用于签署 Direct Line 令牌的密钥。可使用任意随机字符串(例如 openssl rand -hex 32)。",
"ui.q.mode": "模式",
"ui.q.ms_bot_app_id": "机器人应用 ID",
"ui.q.ms_bot_app_id.help": "来自 Azure Bot Service 注册的 Microsoft Bot 应用 ID",
"ui.q.ms_bot_app_password": "机器人应用密码",
"ui.q.oauth_custom_auth_url": "授权 URL",
"ui.q.oauth_custom_client_id": "客户端 ID",
"ui.q.oauth_custom_label": "提供商显示名称",
"ui.q.oauth_custom_scopes": "作用域",
"ui.q.oauth_custom_token_url": "令牌 URL",
"ui.q.oauth_enable_custom": "启用自定义 OIDC 提供商",
"ui.q.oauth_enable_github": "启用 GitHub 登录",
"ui.q.oauth_enable_google": "启用 Google 登录",
"ui.q.oauth_enable_microsoft": "启用 Microsoft 登录",
"ui.q.oauth_enabled": "启用 OAuth 登录",
"ui.q.oauth_enabled.help": "要求用户在访问聊天前先登录",
"ui.q.oauth_github_client_id": "GitHub 客户端 ID",
"ui.q.oauth_github_client_secret": "GitHub 客户端密钥",
"ui.q.oauth_google_client_id": "Google 客户端 ID",
"ui.q.oauth_google_client_secret": "Google 客户端密钥",
"ui.q.oauth_microsoft_client_id": "Microsoft 客户端 ID",
"ui.q.oauth_microsoft_client_secret": "Microsoft 客户端密钥",
"ui.q.public_base_url": "公开基础 URL",
"ui.q.public_base_url.help": "用于 webhook 回调的对外公开 URL(例如 https://xxxx.trycloudflare.com)",
"ui.q.route": "路由",
"ui.q.slack_app_id": "Slack 应用 ID",
"ui.q.slack_bot_token": "Slack 机器人令牌",
"ui.q.slack_configuration_token": "Slack 配置令牌",
"ui.q.team_id": "团队 ID",
"ui.q.tenant_channel_id": "租户频道 ID",
"ui.q.webex_bot_token": "Webex 机器人令牌",
"ui.questions": "个问题",
"ui.result.closed": "设置已关闭。",
"ui.result.closed_sub": "您可以关闭此标签页。",
"ui.result.fail.description": "设置过程中出现问题。",
"ui.result.fail.title": "设置失败",
"ui.result.log": "日志",
"ui.result.manual_steps": "需要手动步骤",
"ui.result.output": "输出",
"ui.result.success.description": "Bundle 配置成功。",
"ui.result.success.title": "设置完成",
"ui.review.description": "在应用到 bundle 之前检查配置。",
"ui.review.no": "否",
"ui.review.secret_mask": "********",
"ui.review.title": "检查并执行",
"ui.review.yes": "是",
"ui.review_execute": "检查并执行",
"ui.scope.description": "为此设置配置目标租户、环境和团队。",
"ui.scope.detected_tenant": "从包中检测到:{}",
"ui.scope.env": "环境",
"ui.scope.env_help": "必须与运行时使用的 GREENTIC_ENV 匹配(dev、local、test)。",
"ui.scope.hint": "这些值决定机密和配置的存储位置。请确保它们与运行时设置匹配。",
"ui.scope.team": "团队",
"ui.scope.team_help": "留空表示默认。用于按团队限定机密范围。",
"ui.scope.tenant": "租户",
"ui.scope.title": "设置范围",
"ui.select_action": "选择一个操作以开始。",
"ui.shared.description": "这些问题适用于所有提供程序。",
"ui.shared.title": "共享配置",
"ui.start_config": "开始配置",
"ui.title": "Greentic 设置"
}