294 lines
18 KiB
JSON
294 lines
18 KiB
JSON
{
|
||
"title": "管理",
|
||
"subtitle": "服务器与内容管理",
|
||
"servers": "服务器",
|
||
"images": "镜像",
|
||
"images_title": "镜像",
|
||
"images_subtitle": "平台镜像白名单。仅已启用的镜像可用于创建服务器。您可以添加外部镜像,或将不需要的镜像从白名单中删除。",
|
||
"add_image_title": "添加外部镜像",
|
||
"add_image_btn": "添加镜像",
|
||
"image_ref_placeholder": "例如: registry.felis.svc:5000/image:tag",
|
||
"delete_image_tooltip": "删除白名单镜像",
|
||
"image_source_built": "平台构建",
|
||
"image_source_external": "外部",
|
||
"image_source_recommended": "推荐",
|
||
"delete_image_title": "从白名单移除这个镜像?",
|
||
"delete_image_desc": "移除后,新服务器将不能再选用",
|
||
"delete_image_confirm": "移除镜像",
|
||
"cancel_build_title": "停止这次构建?",
|
||
"cancel_build_desc": "构建会立即停止,不会推送任何镜像:",
|
||
"cancel_build_keep": "继续构建",
|
||
"cancel_build_confirm": "停止构建",
|
||
"delete_btn": "删除",
|
||
"builds_title": "构建流水线",
|
||
"builds_subtitle": "平台镜像构建任务历史及触发终端。构建 Pod 运行在隔离沙箱中,完成构建后将自动运行安全扫描。",
|
||
"trigger_build_title": "触发新镜像构建",
|
||
"trigger_build_btn": "开始构建",
|
||
"dockerfile_label": "Dockerfile 内容",
|
||
"dockerfile_placeholder": "FROM library/postgres:15\nRUN echo 'setup'",
|
||
"dockerfile_audit_hint": "仅存档到构建记录用于审计。实际执行的是构建上下文压缩包内的 `Dockerfile`——此处内容不会被执行。",
|
||
"context_ref_label": "构建上下文引用",
|
||
"context_ref_placeholder": "例如: minio/contexts/my-modpack.tar.gz",
|
||
"download_context_btn": "下载上下文",
|
||
"download_context_hint": "下载上传的构建上下文 (.tar.gz)——其中包含将被实际执行的 Dockerfile。",
|
||
"context_sha256_label": "上下文 SHA-256",
|
||
"context_sha256_hint": "通过会绑定这个摘要:提交者之后再上传,构建会拒绝执行。离线审阅时请用 sha256sum 核对下载的文件。",
|
||
"context_sha256_missing": "尚未上传构建上下文,或上传早于摘要记录,需要提交者重新上传。",
|
||
"context_sha256_downloaded": "与你刚下载的文件一致,通过会绑定这份内容。",
|
||
"context_sha256_stale": "你下载的版本({{digest}}…)已被新的上传替换,请重新下载审阅。",
|
||
"approve_needs_context": "没有可通过的上下文:提交者尚未上传或需要重新上传",
|
||
"base_image_label": "基础镜像",
|
||
"base_image_placeholder": "例如: library/postgres:15",
|
||
"build_status_pending": "排队中",
|
||
"build_status_building": "构建中",
|
||
"build_status_succeeded": "成功",
|
||
"build_status_failed": "失败",
|
||
"build_status_cancelled": "已取消",
|
||
"build_queued_hint": "同时运行的构建已达上限([registry] max_concurrent_builds),这个构建会在前面的构建结束后自动开始。",
|
||
"view_logs_btn": "扫描与日志",
|
||
"cancel_build_btn": "取消",
|
||
"no_builds_title": "暂无构建任务",
|
||
"no_builds_hint": "您可以使用右上角表单触发第一个镜像构建任务。",
|
||
"no_images_title": "无白名单镜像",
|
||
"no_images_hint": "白名单为空——平台管理员需通过 CLI 添加镜像。",
|
||
"enabled": "已启用",
|
||
"disabled": "已禁用",
|
||
"table_ref": "镜像名称",
|
||
"table_source": "来源",
|
||
"table_status": "状态",
|
||
"table_action": "操作",
|
||
"table_build_id": "构建 ID",
|
||
"table_requester": "发起人",
|
||
"table_created_at": "创建时间",
|
||
"table_duration": "耗时",
|
||
"build_duration_seconds": "{{s}}秒",
|
||
"build_duration_minutes": "{{m}}分{{s}}秒",
|
||
"filter_all": "全部",
|
||
"filter_enabled": "已启用",
|
||
"filter_disabled": "已禁用",
|
||
"image_ref_label": "镜像引用",
|
||
"submissions_title": "审核提交",
|
||
"submissions_subtitle": "用户模组包上传的审核队列。通过审核的任务将自动启动 Kaniko 构建并运行 Trivy 安全扫描。",
|
||
"table_submitted_by": "提交人",
|
||
"table_display_name": "名称",
|
||
"approve_btn": "通过",
|
||
"reject_btn": "驳回",
|
||
"delete_submission_btn": "删除提交",
|
||
"delete_submission_confirm": "确认删除",
|
||
"delete_submission_cancel": "取消",
|
||
"reject_reason_label": "驳回原因",
|
||
"reject_reason_placeholder": "请填写驳回原因(限 1000 字符)",
|
||
"reject_dialog_title": "驳回申请",
|
||
"reject_dialog_desc": "请提供驳回该模组包提交的详细原因,提交后该原因将展示给用户。",
|
||
"reject_dialog_submit": "确定驳回",
|
||
"status_pending_review": "待审核",
|
||
"status_approved": "已通过",
|
||
"status_rejected": "已驳回",
|
||
"no_submissions_title": "暂无审核任务",
|
||
"no_submissions_hint": "当前没有待审核或已审核的模组包提交。",
|
||
"reviewer": "审核人",
|
||
"reviewed_at": "审核时间",
|
||
"reject_reason": "驳回理由",
|
||
"updates_title": "维护与备份",
|
||
"updates_subtitle": "查看控制面数据库备份是否新鲜、哪些组件有新版本,并设置全局维护窗口。Felis 从不自行应用更新:宿主机上的 `felis update` 会显示这个窗口,在窗口外应用前给出警告。",
|
||
"updates_window_advisory": "维护窗口是提示性的。只有有人执行 `felis update` 打印的应用命令时才会更新;该命令会读取这个窗口,在窗口外运行时给出警告。",
|
||
"updates_current_unset": "当前未设置维护窗口。`felis update` 会提示这一点,何时应用由你决定。",
|
||
"updates_start_label": "开始时间",
|
||
"updates_end_label": "结束时间",
|
||
"updates_set_title": "配置维护窗口",
|
||
"updates_submit_btn": "保存维护窗口",
|
||
"updates_clear_btn": "清除维护窗口",
|
||
"updates_save_success": "维护窗口更新成功。",
|
||
"updates_clear_success": "维护窗口已清除。",
|
||
"updates_validation_both": "开始时间和结束时间必须同时设置,或同时清空。",
|
||
"updates_validation_order": "结束时间必须在开始时间之后。",
|
||
"updates_status_active": "当前生效中",
|
||
"updates_status_pending": "已计划(未来)",
|
||
"updates_status_expired": "已过期(过去)",
|
||
"updates_status_unset": "未设置",
|
||
"updates_timezone_hint": "时间以您的浏览器本地时区 ({{tz}}) 选择和显示。",
|
||
"updates_stat_status": "系统状态",
|
||
"updates_stat_start": "维护开始时间",
|
||
"updates_stat_end": "维护结束时间",
|
||
"updates_stat_timezone": "本地时区",
|
||
"dbbackup_title": "控制面数据库备份",
|
||
"dbbackup_subtitle": "用户、Passkey、服务器归属、配额、审计日志和世界存档索引都在这个数据库里。主机上的 felis-db-backup.timer 每天备份一次,每次升级迁移前也会先快照。",
|
||
"dbbackup_status_ok": "正常",
|
||
"dbbackup_status_stale": "已过期",
|
||
"dbbackup_status_never": "从未备份",
|
||
"dbbackup_refresh": "刷新",
|
||
"dbbackup_loading": "正在读取备份状态…",
|
||
"dbbackup_field_when": "最近一次备份",
|
||
"dbbackup_field_label": "类型",
|
||
"dbbackup_field_size": "大小",
|
||
"dbbackup_field_schema": "数据库版本",
|
||
"dbbackup_field_file": "备份文件(主机路径)",
|
||
"dbbackup_label_daily": "每日定时",
|
||
"dbbackup_label_pre_migrate": "升级前快照",
|
||
"dbbackup_label_pre_restore": "恢复前快照",
|
||
"dbbackup_label_manual": "手动",
|
||
"dbbackup_never_title": "还没有记录到任何数据库备份",
|
||
"dbbackup_stale_title": "最近一次备份已超过 {{hours}} 小时",
|
||
"dbbackup_fix_hint": "此时主机出故障,账号、服务器归属和存档索引都无法恢复。在主机上立即备份一次,再查看定时任务日志找出它没有运行的原因:",
|
||
"dbbackup_copy": "复制命令",
|
||
"dbbackup_offsite_note": "备份只保存在这台主机上,硬盘损坏或主机丢失时会一起丢失。请定期把备份目录复制到另一台机器;恢复与灾备步骤见故障排查文档 §16。",
|
||
"versions_title": "组件版本",
|
||
"versions_subtitle": "felis-update-check.timer 每天把本机运行的版本与上游最新发行版比对。Felis 不会自行应用任何更新。",
|
||
"versions_status_available_other": "{{count}} 个可用更新",
|
||
"versions_status_current": "已是最新",
|
||
"versions_status_stale": "检查已逾期",
|
||
"versions_status_never": "从未检查",
|
||
"versions_refresh": "刷新",
|
||
"versions_loading": "正在读取最近一次版本检查…",
|
||
"versions_checked": "{{when}}由 felis {{felis}} 检查",
|
||
"versions_none": "本次检查没有跟踪任何组件。",
|
||
"versions_col_component": "组件",
|
||
"versions_col_installed": "已安装",
|
||
"versions_col_latest": "更新版本",
|
||
"versions_col_status": "状态",
|
||
"versions_state_available": "有可用更新",
|
||
"versions_state_current": "已是最新",
|
||
"versions_state_unknown": "无法访问发行源",
|
||
"versions_state_unreadable": "读不到版本",
|
||
"versions_state_pinned": "已固定",
|
||
"versions_apply_hint": "要应用更新,请在主机上运行下面的命令;如果设置了维护窗口,请在窗口内运行。它会列出每个组件的确切命令,并在窗口外运行时发出警告:",
|
||
"versions_never_title": "还没有记录过版本检查",
|
||
"versions_stale_title": "最近一次版本检查已超过 {{hours}} 小时",
|
||
"versions_fix_hint": "下面的版本可能已过时。请先在主机上立即检查一次,再查看定时器日志找出它没有运行的原因:",
|
||
"build_import_submission_label": "从已有的审核提交导入参数",
|
||
"build_import_submission_placeholder": "选择一个用户提交...",
|
||
"build_import_submission_none": "无匹配的提交或暂未加载",
|
||
"build_import_submission_hint": "选择提交将自动填充镜像引用、构建上下文引用和对应的 Dockerfile 审计头。",
|
||
"build_import_submission_warning_title": "警告:该提交状态为「{{status}}」",
|
||
"build_import_submission_warning_desc": "手动触发构建不会自动将该提交标记为已同意,也不会更新其关联的构建状态。仅适用于紧急调试或测试。",
|
||
"_users_comment": "用户管理(仅管理员可见)。",
|
||
"users_title": "用户管理",
|
||
"users_subtitle": "管理平台用户账号、配额和会话。",
|
||
"users_create_btn": "创建用户",
|
||
"users_create_title": "创建新用户",
|
||
"users_create_desc": "创建一个新的平台账号。账号无密码——用户通过游戏内 /link 绑定码登录,绑定后也可使用邮箱验证码 / Passkey 登录。",
|
||
"users_create_username_placeholder": "例如: alice",
|
||
"users_create_validation_username": "用户名为必填项。",
|
||
"users_create_validation_username_taken": "该用户名已被使用。",
|
||
"users_search_placeholder": "搜索用户名或邮箱...",
|
||
"users_search_btn": "搜索",
|
||
"users_filter_role_all": "全部角色",
|
||
"users_filter_status_all": "全部状态",
|
||
"users_filter_role": "按角色筛选",
|
||
"users_filter_status": "按状态筛选",
|
||
"users_status_active": "正常",
|
||
"users_status_disabled": "已禁用",
|
||
"users_role_admin": "管理员",
|
||
"users_role_owner": "所有者",
|
||
"users_role_user": "普通用户",
|
||
"users_col_user": "用户",
|
||
"users_col_role": "角色",
|
||
"users_col_servers": "服务器数",
|
||
"users_col_status": "状态",
|
||
"users_col_created": "创建时间",
|
||
"users_view_detail": "详情",
|
||
"user_not_found_title": "用户不存在",
|
||
"user_not_found_body": "这个账户可能已被删除,请回到用户列表重新查找。",
|
||
"users_empty_title": "未找到用户",
|
||
"users_empty_hint": "没有匹配当前筛选条件的用户。",
|
||
"users_back_to_list": "返回用户列表",
|
||
"users_edit_profile": "编辑资料",
|
||
"users_field_username": "用户名",
|
||
"users_field_email": "邮箱",
|
||
"users_field_role": "角色",
|
||
"users_role_locked_self": "不能修改自己的角色。",
|
||
"users_role_locked_owner": "所有者的角色是固定的,只能在主机的应急控制台(sudo felis breakGlass)上管理。",
|
||
"users_save_btn": "保存更改",
|
||
"users_save_ok": "更改保存成功。",
|
||
"users_linked_accounts": "已关联的 Minecraft 账号",
|
||
"users_no_linked": "尚未关联任何 Minecraft 账号。",
|
||
"users_link_add": "关联账号",
|
||
"users_link_source": "验证源",
|
||
"users_link_source_mojang": "Mojang",
|
||
"users_link_source_thirdparty": "第三方 Yggdrasil",
|
||
"users_link_confirm": "关联",
|
||
"users_unlink_tooltip": "解除此 Minecraft 账号关联",
|
||
"users_unlink_dlg_title": "解除 Minecraft 关联",
|
||
"users_unlink_dlg_desc": "确定解除此 Minecraft 账号的关联吗?用户将失去该 UUID 绑定的游戏内身份。",
|
||
"users_unlink_btn": "解除关联",
|
||
"users_quotas": "配额",
|
||
"users_quota_servers": "最大服务器数",
|
||
"users_quota_cpu": "最大 CPU(毫核)",
|
||
"users_quota_memory": "最大内存(MiB)",
|
||
"users_quota_storage": "最大存储(GiB)",
|
||
"users_quota_unlimited": "无限制",
|
||
"users_sessions": "活跃会话",
|
||
"users_no_sessions": "无活跃会话。",
|
||
"users_session_expires": "过期时间",
|
||
"users_sessions_revoke_all": "全部撤销",
|
||
"users_session_revoke_device": "吊销 {{device}} 上的会话",
|
||
"users_sessions_revoked": "所有会话已撤销。",
|
||
"users_session_revoke_one_dlg_title": "撤销会话",
|
||
"users_session_revoke_one_dlg_desc": "确定撤销此会话吗?用户将立即从该设备登出。",
|
||
"users_session_revoke_all_dlg_title": "撤销所有会话",
|
||
"users_session_revoke_all_dlg_desc": "确定撤销所有活跃会话吗?用户将从所有设备登出。",
|
||
"users_session_revoke_confirm": "撤销",
|
||
"users_danger_zone": "危险操作区",
|
||
"users_protected_self": "不能禁用或删除当前登录的账号。",
|
||
"users_protected_owner": "所有者账号不能在面板里禁用或删除,只能在主机的应急控制台(sudo felis breakGlass)上管理。",
|
||
"users_danger_disable": "禁用用户",
|
||
"users_danger_disable_desc": "阻止此用户登录。所有活跃会话将被立即撤销。",
|
||
"users_danger_disable_btn": "禁用用户",
|
||
"users_danger_enable": "启用用户",
|
||
"users_danger_enable_desc": "允许此用户重新登录。",
|
||
"users_danger_enable_btn": "启用",
|
||
"users_danger_disable_dlg_title": "禁用用户",
|
||
"users_danger_disable_dlg_desc": "此用户将无法登录。所有活跃会话将被立即撤销。",
|
||
"users_danger_enable_dlg_title": "启用用户",
|
||
"users_danger_enable_dlg_desc": "此用户将可以重新登录。",
|
||
"users_danger_delete_dlg_title": "删除用户",
|
||
"users_danger_delete_dlg_desc": "此操作不可逆。该用户拥有的所有服务器将被释放,所有会话将被撤销,账号将被永久禁用。此操作无法通过面板撤销。",
|
||
"users_danger_delete": "删除用户",
|
||
"users_danger_delete_desc": "软删除此用户。其拥有的服务器将被释放,所有会话将被撤销,账号将被永久禁用。此操作无法通过面板撤销。",
|
||
"users_danger_delete_btn": "删除用户",
|
||
"users_danger_delete_yes": "是的,永久删除",
|
||
"users_danger_passkeys": "解绑通行密钥",
|
||
"users_danger_passkeys_desc": "解除该账号持有的全部通行密钥——密钥丢失或被盗用时的补救手段。其他登录方式(邮箱验证码、游戏内审批)不受影响。",
|
||
"users_danger_passkeys_btn": "解绑通行密钥",
|
||
"users_danger_passkeys_dlg_title": "解绑通行密钥",
|
||
"users_danger_passkeys_dlg_desc": "该账号的全部通行密钥将被永久移除。这不会锁死账号:用户可用其他方式登录后,在账户页重新注册密钥。",
|
||
"users_danger_passkeys_yes": "确认解绑",
|
||
"add_image_desc": "将外部 Docker 镜像引用录入白名单,供后续创建服务器使用。",
|
||
"images_search_placeholder": "搜索镜像名称或来源...",
|
||
"search_no_results": "无匹配结果",
|
||
"search_no_results_hint": "尝试更换搜索词或筛选条件。",
|
||
"submissions_search_placeholder": "搜索模组包名称或提交人...",
|
||
"trigger_build_desc": "输入镜像构建参数,在隔离命名空间中启动 Kaniko 流水线任务。",
|
||
"builds_search_placeholder": "搜索构建 ID、镜像引用或状态...",
|
||
"builds_refresh_failed": "构建列表刷新失败:{{reason}}",
|
||
"build_requested_by_you": "你",
|
||
"scan_title": "安全扫描",
|
||
"scan_blocked": "已拦截",
|
||
"scan_passed": "已通过",
|
||
"scan_loading": "正在读取安全扫描…",
|
||
"scan_none": "这次构建没有留存安全扫描:它在扫描步骤前就结束了,或者早于开始留存扫描的版本。",
|
||
"scan_load_failed": "读取安全扫描失败:{{reason}}",
|
||
"scan_meta_other": "扫描于 {{when}} · {{count}} 个软件包",
|
||
"scan_policy": "拦截级别 {{severities}};尚无修复版本的漏洞只列出",
|
||
"scan_policy_unfixed": "拦截级别 {{severities}},尚无修复版本的漏洞同样拦截",
|
||
"scan_counts_label": "按严重度统计的发现",
|
||
"scan_blocking_count_other": "其中 {{count}} 项拦截镜像",
|
||
"scan_clean": "Trivy 在这个镜像里没有发现任何问题。",
|
||
"scan_showing": "显示 {{total}} 项中的 {{shown}} 项,完整报告列出全部发现。",
|
||
"scan_col_id": "编号",
|
||
"scan_col_severity": "严重度",
|
||
"scan_col_package": "软件包",
|
||
"scan_col_version": "已装 → 修复版本",
|
||
"scan_col_target": "所在位置",
|
||
"scan_no_fix": "暂无修复",
|
||
"scan_blocks": "拦截",
|
||
"scan_policy_accepts_other": "{{count}} 个 ID 已作为已知风险接受",
|
||
"scan_accepted": "已接受",
|
||
"scan_accepted_title": "已列入 [registry] scan_accept 作为已知风险,不会拦截。",
|
||
"scan_secret": "密钥:{{title}}",
|
||
"scan_download_report": "Trivy 报告",
|
||
"scan_download_sbom": "SBOM",
|
||
"scan_not_kept": "这次构建未留存该文件:文件过大,或生成它的步骤失败。",
|
||
"scan_download_failed": "下载失败:{{reason}}"
|
||
}
|