{
"nav": {
"home": "主页",
"login": "登录",
"register": "注册",
"dashboard": "概览",
"wizard": "向导",
"drafts": "草稿",
"configSets": "配置",
"settings": "设置",
"docs": "文档 Wiki",
"logs": "日志",
"users": "用户",
"account": "个人中心"
},
"common": {
"preview": "预览",
"openPreview": "放大预览",
"close": "关闭",
"download": "下载",
"copy": "复制",
"copied": "已复制",
"continue": "继续",
"duplicate": "复制",
"rename": "重命名",
"delete": "删除",
"loading": "加载中",
"newDraft": "新建草稿",
"logout": "退出登录",
"cancel": "取消",
"confirmLogout": "确定要退出登录吗?",
"noDrafts": "还没有草稿",
"noLogs": "还没有日志",
"previous": "上一步",
"next": "下一步",
"collapse": "收起",
"expand": "展开",
"forbidden": "无权限",
"confirmDeleteConfigSet": "确认删除这份配置吗?",
"promptRenameDraft": "请输入新的草稿名称",
"promptRenameConfigSet": "请输入新的配置名称",
"themeLight": "亮色",
"themeDark": "暗色",
"themeSystem": "跟随系统",
"themeCurrent": "当前主题:{mode}",
"themeSwitchTo": "切换到{mode}",
"help": "帮助",
"notifications": "通知",
"more": "更多",
"workspace": "工作区",
"system": "系统",
"support": "支持",
"accountActions": "账户",
"disclaimer": "免责声明",
"openMenu": "打开菜单",
"closeMenu": "关闭菜单",
"collapseSidebar": "收起侧栏",
"expandSidebar": "展开侧栏",
"language": "语言",
"private": "私人",
"adminOnly": "仅管理员",
"routeHint": "当前为骨架页,后续接入真实 API"
},
"auth": {
"storyLabel": "EmbyStream",
"wallTitle": "部署配置,按流程完成",
"wallBody": "从草稿到产物,流程清楚,进度可续",
"panelTitle": "面向真实部署",
"panelBody": "保留恢复能力、明确反馈和可检查的产物",
"signals": ["分步向导", "自动草稿", "五类产物", "管理员日志"],
"login": {
"eyebrow": "EmbyStream",
"title": "继续配置工作区",
"body": "登录后继续编辑草稿、查看结果并生成配置",
"loginLabel": "用户名或邮箱",
"passwordLabel": "密码",
"helper": "使用已有账号继续当前工作",
"submit": "进入工作区",
"switch": "没有账号?去注册",
"backgroundCount": "已加载 {count} 张背景"
},
"register": {
"eyebrow": "First Run",
"title": "创建本地账号",
"body": "新账号只管理自己的草稿和产物,管理员账号仍由系统初始化",
"usernameLabel": "用户名",
"emailLabel": "邮箱",
"passwordLabel": "密码",
"helper": "建议使用长期邮箱,便于识别和排查",
"submit": "创建账号",
"switch": "已有账号?去登录"
},
"registerClosedToast": "当前未开放注册"
},
"wizard": {
"eyebrow": "Guided Flow",
"title": "按阶段补齐真实部署配置,最后统一校验再生成",
"body": "向导不再只停留在入口参数,会把前后端路由、节点、代理方式、限速和测试流程一起补齐",
"stepRailTitle": "阶段",
"chooseMode": "先选运行方式",
"backToConfigs": "返回配置",
"saveDraft": "保存草稿",
"generateFiles": "生成文件",
"saving": "保存中",
"generating": "生成中",
"autosaving": "自动保存中",
"deferDraftCreation": "当前为本地草稿,点击最终生成时才会创建并保存到服务端",
"nameLabel": "名称",
"nameHint": "只是给自己看,后面列表页会按这个名字展示",
"embyUrlLabel": "Emby 地址",
"embyUrlHint": "填真实 Emby 的基础地址,不带最后的斜杠",
"embyPortLabel": "Emby 端口",
"embyPortHint": "默认通常是 8096,你改过再填实际值",
"embyTokenLabel": "Emby Token",
"embyTokenHint": "用于让前端代理安全访问 Emby API",
"logRootLabel": "日志目录",
"logRootHint": "出问题时先看这里,管理员日志页也会从这里读取运行日志",
"logLevelLabel": "日志级别",
"logLevelHint": "调试期间可以开到 debug,正式环境一般保持 info",
"logPrefixLabel": "日志前缀",
"logPrefixHint": "多实例共用日志目录时,用前缀区分来源",
"memoryModeLabel": "缓存倾向",
"memoryModeHint": "低内存更省资源,中等更均衡,高内存更偏性能",
"encipherKeyLabel": "签名密钥",
"encipherKeyHint": "不要继续用模板默认值,正式环境必须替换",
"encipherIvLabel": "签名 IV",
"encipherIvHint": "和签名密钥成对修改,避免默认值直接上线",
"frontendPortLabel": "前端端口",
"frontendPortHint": "用户先打到这里,它负责代理 Emby 和改写入口流量",
"backendPortLabel": "后端端口",
"backendPortHint": "真实流媒体文件从这里出去,双端模式下不能和前端端口重复",
"backendBaseUrlLabel": "后端对外地址",
"backendBaseUrlHint": "填写客户端最终访问到的后端基础地址,而不是节点源站地址",
"backendPublicPortLabel": "后端对外端口",
"backendPublicPortHint": "如果外部访问不是 80/443,就在这里明确写出来",
"backendPathLabel": "后端对外路径",
"backendPathHint": "最终播放链路挂载到哪个路径段,留空表示根路径",
"problematicClientsLabel": "特殊客户端名单",
"problematicClientsHint": "一行一个关键字,用于关闭特定客户端上的激进优化",
"userAgentModeLabel": "UA 策略",
"userAgentModeHint": "先决定白名单还是黑名单,再填写匹配项",
"userAgentRulesLabel": "UA 规则",
"userAgentRulesHint": "一行一个关键词,命中就按上面的模式处理",
"fallbackPathLabel": "缺片回退视频",
"fallbackPathHint": "可选,用户请求的文件缺失时,用这个视频兜底",
"sslCertLabel": "SSL 证书",
"sslCertHint": "仅后端 HTTPS 有意义,留空时沿用默认发现路径",
"sslKeyLabel": "SSL 私钥",
"sslKeyHint": "和证书成对出现,留空时沿用默认发现路径",
"deployNginxTitle": "Nginx 产物设置",
"deployNginxBody": "这里控制生成的 nginx.conf 中域名、TLS 路径和 DNS 解析器,不影响运行时的 HTTP2 配置",
"nginxFrontendServerNameLabel": "前端 server_name",
"nginxFrontendServerNameHint": "生成前端或双端 nginx.conf 时写入的对外域名",
"nginxFrontendSslCertLabel": "前端证书路径",
"nginxFrontendSslCertHint": "留空时只输出注释提示,等你按实际证书路径填写",
"nginxFrontendSslKeyLabel": "前端私钥路径",
"nginxFrontendSslKeyHint": "留空时只输出注释提示,和证书路径配对填写",
"nginxBackendServerNameLabel": "后端 server_name",
"nginxBackendServerNameHint": "生成后端 nginx.conf 时写入的流媒体出口域名",
"nginxBackendSslCertLabel": "后端证书路径",
"nginxBackendSslCertHint": "留空时只输出注释提示,等你按实际证书路径填写",
"nginxBackendSslKeyLabel": "后端私钥路径",
"nginxBackendSslKeyHint": "留空时只输出注释提示,和证书路径配对填写",
"nginxResolverProviderLabel": "DNS 解析商",
"nginxResolverProviderHint": "只有后端 nginx 反代上游 HTTPS 时才需要 resolver,默认不预填",
"nginxCustomResolversLabel": "自定义 DNS",
"nginxCustomResolversHint": "按 nginx resolver 语法填写,多个地址用空格分隔",
"resolverProvidernone": "不预填",
"resolverProvidercloudflare": "Cloudflare",
"resolverProviderdnspod": "DNSPod",
"resolverProvidergoogle": "Google",
"resolverProvideraliyun": "阿里云",
"resolverProvidertencent": "腾讯",
"resolverProvidercustom": "自定义",
"deployRuntimeTitle": "运行脚本路径",
"deployRuntimeBody": "这里控制生成的 systemd.service 和 pm2.config.cjs,避免默认路径里出现无关项目名",
"systemdBinaryPathLabel": "systemd 二进制路径",
"systemdBinaryPathHint": "默认是 /usr/bin/embystream,如果不同可先执行 which embystream 再回填",
"systemdWorkingDirectoryLabel": "systemd 工作目录",
"systemdWorkingDirectoryHint": "默认 /opt/stream,可按你的部署目录改掉",
"systemdConfigPathLabel": "systemd 配置路径",
"systemdConfigPathHint": "默认 /opt/stream/config.toml,和实际挂载位置保持一致",
"pm2BinaryPathLabel": "PM2 二进制路径",
"pm2BinaryPathHint": "默认是 /usr/bin/embystream,如果不同可先执行 which embystream 再回填",
"pm2WorkingDirectoryLabel": "PM2 工作目录",
"pm2WorkingDirectoryHint": "默认按模式写到 /opt/stream、/opt/stream-frontend 或 /opt/stream-backend",
"pm2ConfigPathLabel": "PM2 配置路径",
"pm2ConfigPathHint": "默认写到工作目录下的 config.toml,也可以单独改成别的路径",
"pm2OutFileLabel": "PM2 标准输出日志",
"pm2OutFileHint": "默认写到工作目录下的 logs/pm2.out.log",
"pm2ErrorFileLabel": "PM2 错误日志",
"pm2ErrorFileHint": "默认写到工作目录下的 logs/pm2.err.log",
"frontendAntiReverseLabel": "前端反代校验",
"frontendAntiReverseHint": "前端入口暴露公网时,建议开启 Host 校验",
"frontendAntiHostLabel": "前端可信 Host",
"frontendAntiHostHint": "只填域名或域名:端口,不要再带协议头",
"enableProtection": "启用保护",
"frontendRewriteTitle": "前端路径重写",
"frontendRewriteBody": "这里控制用户入口路径如何在前端层先被重写,再转发给 Emby 或后端",
"addRewrite": "新增重写",
"rewriteEnabled": "启用这一条",
"rewritePatternLabel": "匹配正则",
"rewritePatternHint": "按 Rust/JS 兼容正则写法填写,建议先从具体路径开始",
"rewriteReplacementLabel": "替换结果",
"rewriteReplacementHint": "支持 $1 这类捕获组引用",
"rewriteRegexInvalid": "正则错误",
"rewriteRegexMatched": "已命中,结果 {output}",
"rewriteRegexNoMatch": "当前样例未命中",
"noRewriteRules": "当前还没有可用的重写规则",
"routeTestHint": "用一个真实媒体路径做样例,先在向导里确认改写结果",
"routeTestInputLabel": "测试路径",
"routeTestResultLabel": "测试结果",
"routeTestNoMatch": "没有命中任何启用中的重写规则",
"routeChecklistTitle": "重写测试流程",
"routeChecklistItem1": "先在这里拿真实路径样例验证改写结果,再保存草稿",
"routeChecklistItem2": "生成后直接检查 config.toml 中 Frontend.PathRewrite 和 BackendNode.PathRewrite 是否符合预期",
"routeChecklistItem3": "上线前用真实客户端访问一条媒体链接,确认入口路径、节点命中和返回方式一致",
"nodeFlowTitle": "后端节点编排",
"nodeFlowBody": "每个节点都要明确自己的匹配范围、代理策略、限速和节点级路径重写,避免后端只剩一个空壳",
"addNode": "新增节点",
"nodeLabel": "节点",
"nodeNameLabel": "节点名称",
"nodeNameHint": "只用于配置可读性和后续排障识别",
"nodePatternLabel": "匹配路径",
"nodePatternHint": "通常直接匹配解密后的媒体路径前缀或正则",
"nodeBaseUrlLabel": "节点源地址",
"nodeBaseUrlHint": "这里填的才是节点真实上游,例如 NAS、OpenList 或 WebDAV",
"nodePortLabel": "节点端口",
"nodePortHint": "如果上游地址不是默认端口,就明确填这里",
"nodePathLabel": "节点路径前缀",
"nodePathHint": "当上游服务不在根路径时,用这个字段补齐",
"nodePriorityLabel": "节点优先级",
"nodePriorityHint": "数字越小越先匹配;并行节点较多时必须明确顺序",
"nodeProxyModeLabel": "代理方式",
"nodeProxyModeHint": "redirect、proxy、accel_redirect 都会直接影响安全性和带宽消耗",
"nodeSpeedLimitLabel": "限速 KB/s",
"nodeSpeedLimitHint": "0 表示不限速,按设备维度生效",
"nodeBurstLimitLabel": "突发 KB/s",
"nodeBurstLimitHint": "为播放器预留短时间突发,避免一开播就被卡住",
"nodeAntiReverseLabel": "节点反代校验",
"nodeAntiReverseHint": "只在该节点需要额外 Host 校验时开启",
"nodeAntiHostLabel": "节点可信 Host",
"nodeAntiHostHint": "节点单独暴露时再填写;否则保持为空",
"nodeRewriteTitle": "节点路径重写与测试",
"nodeRouteTestHint": "这里测试的是命中该节点之后的路径改写结果",
"nodeSettingsTitle": "节点专属配置",
"backendNodeRequired": "至少添加一个后端节点后才能继续下一步",
"diskDescriptionLabel": "磁盘备注",
"diskDescriptionHint": "用于记录挂载点或磁盘说明,便于维护",
"openListBaseUrlLabel": "OpenList 地址",
"openListBaseUrlHint": "填写 OpenList/Alist 的真实访问地址",
"openListPortLabel": "OpenList 端口",
"openListPortHint": "如果地址里已经包含端口,这里可以留空",
"openListTokenLabel": "OpenList Token",
"openListTokenHint": "节点直接调用 OpenList API 时使用",
"directLinkUserAgentLabel": "直链 UA",
"directLinkUserAgentHint": "某些上游 CDN 只接受固定 User-Agent",
"googleNodeUuidLabel": "Google 节点 UUID",
"googleNodeUuidHint": "缓存和 token 刷新都依赖这个稳定 ID",
"googleClientIdLabel": "Google Client ID",
"googleClientIdHint": "OAuth 桌面应用或 Web 应用对应的客户端 ID",
"googleClientSecretLabel": "Google Client Secret",
"googleClientSecretHint": "与 Client ID 配套使用,缺失时无法刷新 token",
"googleDriveIdLabel": "共享盘 ID",
"googleDriveIdHint": "有 drive_id 时优先用它,没有再回退 drive_name",
"googleDriveNameLabel": "共享盘名称",
"googleDriveNameHint": "当没有 drive_id 时,用它做共享盘匹配",
"googleAccessTokenLabel": "访问令牌",
"googleAccessTokenHint": "可先留空,运行时也会按 refresh token 自动刷新",
"googleRefreshTokenLabel": "刷新令牌",
"googleRefreshTokenHint": "这是 GoogleDrive 节点真正必需的长期凭据",
"webdavNodeUuidLabel": "WebDAV 节点 UUID",
"webdavNodeUuidHint": "使用 accel_redirect 时必须稳定且唯一",
"webdavUrlModeLabel": "WebDAV URL 模式",
"webdavUrlModeHint": "决定最终文件路径如何拼接到上游请求",
"webdavQueryParamLabel": "查询参数名",
"webdavQueryParamHint": "当 URL 模式为 query_path 时使用",
"webdavUrlTemplateLabel": "URL 模板",
"webdavUrlTemplateHint": "只有 url_template 模式需要,记得包含 {file_path}",
"webdavUsernameLabel": "WebDAV 用户名",
"webdavUsernameHint": "上游需要 Basic Auth 时填写",
"webdavPasswordLabel": "WebDAV 密码",
"webdavPasswordHint": "与用户名配对使用",
"webdavUserAgentLabel": "WebDAV UA",
"webdavUserAgentHint": "某些 WebDAV 服务会对 UA 做限制",
"savedAt": "已保存于 {timestamp}",
"generatedCount": "已生成 {count} 个文件",
"restoreBanner": "已恢复草稿 {name}",
"reviewTitle": "最终确认",
"reviewBody": "这里不是走形式,而是把端口、节点、重写和测试动作再过一遍,确认后再输出部署文件",
"reviewName": "草稿",
"reviewMode": "模式",
"reviewFrontendPort": "前端端口",
"reviewBackendPort": "后端端口",
"reviewNodes": "后端节点数",
"reviewRewrites": "已启用重写数(前端/节点)",
"reviewArtifacts": "文件",
"reviewChecklistTitle": "生成前检查",
"reviewChecklistItem1": "确认对外端口、对外地址和路径段都符合最终部署环境",
"reviewChecklistItem2": "确认每个后端节点都有自己的匹配规则、代理方式和必要凭据",
"reviewChecklistItem3": "确认所有启用的路径重写都经过样例测试,没有错误替换",
"reviewChecklistItem4": "确认限速、反代校验和回退策略符合线上要求,再执行生成",
"purposeLabel": "这一步在做什么",
"effectLabel": "会带来什么效果",
"questionLabel": "当前问题",
"helperLabel": "填写后会如何影响生成结果",
"modeFrontendBody": "适合你只想在 Emby 前面放一个代理入口",
"modeBackendBody": "适合你把流媒体出口单独部署到另一台机器",
"modeDualBody": "适合你想先完整跑通,一台服务同时承担前后两端",
"memoryLow": "低内存",
"memoryMiddle": "均衡",
"memoryHigh": "高性能",
"uaAllow": "只允许命中项",
"uaDeny": "拦截命中项",
"steps": [
"选模式",
"通用设置",
"连接入口",
"保护策略",
"路径重写",
"后端节点",
"生成确认"
],
"stepCards": [
{
"title": "先决定运行方式",
"purpose": "这一步决定你是只做代理、只做流媒体出口,还是两端一起跑",
"effect": "模式一旦确定,后面需要填写的端口和部署方式也会跟着变化"
},
{
"title": "先补齐通用设置",
"purpose": "这一页放草稿名称、日志目录和缓存倾向,不和 Emby 连接信息混在一起",
"effect": "它会影响列表展示、排障位置和运行时资源倾向"
},
{
"title": "把入口地址和对外监听信息一次补齐",
"purpose": "这一页同时处理 Emby 真实地址、前端监听端口、后端对外地址和特殊客户端名单",
"effect": "它直接决定客户端最终怎么进来,以及生成的部署产物对外暴露什么入口"
},
{
"title": "补上保护策略和兜底行为",
"purpose": "这里处理 UA 策略、前端 Host 校验、TLS 路径和缺片回退",
"effect": "它会影响被滥用风险、HTTPS 落地方式和异常时给用户返回什么内容"
},
{
"title": "先把路径重写和测试流程跑通",
"purpose": "不要把路径重写只写在配置里不验证,这一页先做样例改写确认",
"effect": "能提前发现正则写错、替换错位、入口路径和真实文件路径不一致的问题"
},
{
"title": "为后端逐个创建并完善节点",
"purpose": "每个后端节点都需要自己的匹配规则、代理方式、限速、重写和专属凭据",
"effect": "节点配置完整后,后端才是真正可部署、可排障、可扩展的结构,而不是只有一个监听端口"
},
{
"title": "最后确认再生成",
"purpose": "把关键部署值、节点数和测试动作再过一遍,确认这次输出就是你要上线的版本",
"effect": "确认后会一次性生成部署产物,并保留到你的列表里"
}
],
"noBackendNodesNeeded": "当前模式没有后端服务,这一步可以跳过",
"previewTitle": "生成结果",
"previewBody": "每份文件都可以展开查看、收起和单独下载"
},
"drafts": {
"eyebrow": "Workspace",
"title": "草稿和进度都留在这里",
"body": "继续编辑、重命名或清理草稿,不必重来",
"backToConfigs": "返回配置",
"queueLabel": "当前队列",
"queueTitle": "先处理进行中的配置",
"queueBody": "草稿继续编辑,已生成结果进入配置",
"statsDrafts": "草稿总数",
"statsGenerated": "已生成",
"statsConfigs": "配置集",
"loadingTitle": "正在同步草稿列表",
"loadingBody": "草稿和配置集准备好后再显示结果",
"errorTitle": "草稿列表暂时不可用",
"emptyTitle": "还没有进行中的配置",
"emptyBody": "从新草稿开始,后续可随时回来继续",
"updatedAt": "最近更新于 {time}",
"statusDraft": "草稿",
"statusGenerated": "已生成"
},
"account": {
"eyebrow": "Profile",
"title": "账号与工作入口",
"body": "查看当前账号、角色和常用入口",
"username": "用户名",
"email": "邮箱",
"role": "角色",
"roleAdmin": "管理员",
"roleUser": "普通用户",
"roleAdminBody": "可访问日志和完整工作台,最终权限仍以后端校验为准",
"roleUserBody": "仅处理自己的草稿和产物",
"emailFallback": "未填写邮箱",
"aboutOpen": "关于 EmbyStream",
"aboutLabel": "About",
"aboutTitle": "关于 EmbyStream",
"aboutBody": "查看项目链接、版本号和更新日志",
"aboutVersion": "当前版本 {version}",
"aboutGithub": "GitHub 项目",
"aboutChangelog": "更新日志",
"fontsLabel": "字体设置",
"fontsTitle": "按自己的阅读习惯调整中英文字体",
"fontsBody": "中文和英文分别保存到本地偏好,切换后会立即作用到整个工作区",
"fontZhLabel": "中文字体",
"fontEnLabel": "英文字体",
"fontCodeLabel": "代码字体",
"fontPreviewZh": "在这里预览中文段落的气质、密度和阅读节奏",
"fontPreviewEn": "Preview the Latin font pairing across labels, headings, and mixed-language content",
"fontPreviewCode": "stream_mode = \"proxy\"\nfont_family = \"Fira Code\"\ntheme = \"catppuccin\"",
"fontZhSourceHanSans": "思源黑体",
"fontZhWenkai": "霞鹜文楷",
"fontZhPingfang": "苹方",
"fontEnSourceSerif": "Source Serif 4",
"fontEnSourceSans": "Source Sans 3",
"fontEnInter": "Inter",
"fontEnPlusJakartaSans": "Plus Jakarta Sans",
"fontEnSourceCodePro": "Source Code Pro",
"fontCodeMenlo": "Menlo",
"fontCodeFiraCode": "Fira Code",
"quickLinks": "快捷入口",
"quickLinksTitle": "快速返回常用操作",
"quickLinksBody": "把常用页面放在这里,减少来回切换",
"securityTitle": "权限边界仍在服务端",
"securityBody": "前端负责引导和反馈,访问边界仍由 API 决定",
"passwordCardTitle": "修改密码",
"passwordCardBody": "普通用户在这里仅能修改自己的登录密码,修改成功后会退出当前登录并要求重新登录",
"passwordDialogBody": "请输入旧密码,并设置新的登录密码,两次新密码必须完全一致",
"passwordCurrentLabel": "旧密码",
"passwordCurrentPlaceholder": "输入当前登录密码",
"passwordCurrentRequired": "请先输入旧密码",
"passwordNewLabel": "新密码",
"passwordNewPlaceholder": "输入新的登录密码",
"passwordNewRequired": "请输入新密码",
"passwordRepeatLabel": "重复新密码",
"passwordRepeatPlaceholder": "再次输入新密码",
"passwordRepeatMismatch": "两次输入的新密码不一致"
},
"settings": {
"eyebrow": "Preferences",
"title": "工作区设置",
"body": "统一管理界面语言和字体偏好",
"themeLabel": "主题模式",
"themeTitle": "亮暗主题",
"themeBody": "支持固定亮色、固定暗色,或跟随手机和电脑系统自动切换",
"themeCurrent": "当前生效:{mode}",
"languageLabel": "语言",
"languageTitle": "界面语言",
"languageBody": "切换后会立即更新界面文案和时间格式",
"registrationLabel": "注册开关",
"registrationTitle": "公开注册",
"registrationBody": "控制访客是否可以从登录页创建本地账号",
"registrationStateOpen": "已开放",
"registrationStateClosed": "未开放",
"registrationCurrent": "当前状态:{state}",
"registrationSaved": "注册状态已更新为:{state}",
"registrationLoadFailed": "加载注册设置失败",
"registrationSaveFailed": "更新注册设置失败",
"renderFontLabel": "网页渲染字体",
"renderWeightLabel": "网页字重",
"renderWeightNormal": "细体",
"renderFontMenlo": "Menlo",
"renderFontSans": "Source Sans 3",
"renderFontSerif": "Source Serif 4",
"renderWeightRegular": "常规",
"renderWeightSemibold": "中粗",
"renderWeightBold": "粗体",
"zhWeightLabel": "中文字重",
"enWeightLabel": "英文字重",
"codeWeightLabel": "代码字重",
"localeZhCn": "简体中文",
"localeZhTw": "繁體中文",
"localeEn": "English"
},
"dashboard": {
"eyebrow": "Overview",
"title": "运行概览",
"body": "查看当前磁盘、CPU、内存和运行时间",
"statusLabel": "状态",
"refreshTitle": "系统指标会自动刷新",
"refreshBody": "最近更新于 {time}",
"refreshHint": "以上数据基于 EmbyStream 主进程和相关文件路径统计,不代表整机实时状态",
"refreshAction": "立即刷新",
"loadingTitle": "正在读取系统指标",
"loadingBody": "系统指标准备好后会显示在这里",
"errorTitle": "系统指标暂时不可用",
"errorBody": "系统指标加载失败",
"cpu": "CPU 占用",
"memory": "内存占用",
"disk": "磁盘占用",
"uptime": "运行时间",
"cpuMeta": "{count} 核心",
"memoryMeta": "总内存 {total}",
"diskMeta": "总磁盘 {total}"
},
"more": {
"eyebrow": "More",
"title": "更多",
"body": "按功能分组查看更多入口,像系统页面一样进入不同功能"
},
"docs": {
"eyebrow": "Wiki",
"title": "文档 Wiki",
"body": "集中查看主程序文档与 Web 管理页部署说明",
"readmeLabel": "README",
"readmeTitle": "主程序使用说明",
"readmeBody": "查看项目的主程序使用说明与参数说明",
"nginxLabel": "Nginx",
"nginxTitle": "Web 管理页反向代理示例",
"nginxBody": "通过反向代理将域名请求转发到 Web 管理页面,再用域名访问 EmbyStream 管理页",
"openLink": "打开文档",
"issueLink": "提交 Issue 反馈文档问题"
},
"configSets": {
"eyebrow": "Artifacts",
"title": "配置",
"body": "查看、复制和下载已生成的配置",
"libraryLabel": "产物总览",
"libraryTitle": "生成结果应随时可查",
"libraryBody": "先在列表中浏览配置,再按需进入详情查看生成文件",
"createAction": "添加配置",
"draftsAction": "草稿",
"detailAction": "详情",
"detailEyebrow": "配置详情",
"detailTitle": "配置详情",
"detailBody": "查看这份配置生成的文件列表,按需展开每个文件内容",
"backToList": "返回配置列表",
"loadingTitle": "正在读取配置集",
"loadingBody": "加载完成后会显示最新结果列表",
"detailLoadingTitle": "正在读取配置详情",
"detailLoadingBody": "配置文件准备好后会显示在这里",
"detailMissingTitle": "这份配置暂时不可用",
"detailMissingBody": "请求的配置不存在,或暂时无法加载",
"errorTitle": "配置库暂时不可用",
"emptyTitle": "还没有可预览的产物",
"emptyBody": "先从向导生成配置,之后可在这里统一查看和下载",
"updatedAt": "最近更新于 {time}",
"countLabel": "{count} 份配置"
},
"logs": {
"eyebrow": "Restricted",
"title": "运行日志仅对管理员开放",
"body": "前端会提示权限状态,最终访问控制仍在服务端",
"consoleLabel": "运行控制台",
"consoleTitle": "集中查看最近日志",
"consoleBody": "按来源、等级和关键词过滤最近记录,便于定位问题",
"levelLabel": "日志等级",
"levelAll": "全部等级",
"keywordLabel": "关键词",
"keywordPlaceholder": "搜索 message / source / level",
"filteredLabel": "筛选结果",
"filteredTitle": "没有匹配的日志",
"filteredBody": "放宽等级或关键词后再试",
"securityNote": "前端守卫只是体验层,真正的边界在 API",
"forbiddenTitle": "这个页面已锁定",
"forbiddenBody": "后端仍然会拒绝你",
"errorTitle": "日志暂时不可用",
"emptyTitle": "还没有日志记录",
"emptyBody": "服务开始写入日志后,这里会按来源聚合展示",
"sourceLabel": "来源说明",
"filterAll": "全部",
"filterStream": "主程序日志",
"filterRuntime": "运行日志",
"filterAudit": "审计日志",
"filterAllHint": "聚合显示主程序日志、Web 管理端运行日志和操作审计记录,方便快速总览最近问题。",
"filterStreamHint": "记录 EmbyStream 主程序自身的网关、代理、转发和流媒体处理相关运行信息。",
"filterRuntimeHint": "记录 Web Studio 自身的启动、监听、初始化和接口运行状态,不等同于主程序流量日志。",
"filterAuditHint": "记录登录、用户管理、配置变更等管理操作,便于追踪谁在什么时间做了什么。",
"statusConnecting": "连接中",
"statusConnectingBody": "正在建立实时日志连接。",
"statusLive": "实时连接中",
"statusLiveBody": "新的日志会自动追加显示。",
"statusReconnecting": "重连中",
"statusReconnectingBody": "正在尝试恢复实时日志连接。",
"statusOffline": "已离线",
"statusOfflineBody": "实时更新已暂停,等待页面重新连接。",
"followLive": "正在自动追踪最新日志",
"followLiveBody": "控制台会始终停留在最新日志位置。",
"followPaused": "自动追踪已暂停",
"followPausedBody": "回到顶部或恢复追踪后,新的日志会继续自动跟随。",
"followPausedCount": "上方有 {count} 条新日志等待查看。",
"pauseFollow": "暂停自动追踪",
"resumeFollow": "回到最新日志",
"reconnectNow": "立即重连"
},
"users": {
"eyebrow": "Admin",
"title": "用户",
"body": "查看已注册用户并管理权限、状态和密码",
"filterLabel": "筛选",
"filterTitle": "按用户名或邮箱查找用户",
"keywordLabel": "关键词",
"keywordPlaceholder": "搜索用户名 / 邮箱 / 角色",
"statusLabel": "状态",
"loadingTitle": "正在加载用户列表",
"loadingBody": "用户数据准备好后会显示在这里",
"errorTitle": "用户列表暂时不可用",
"errorBody": "用户列表加载失败",
"emptyLabel": "空结果",
"emptyTitle": "没有符合条件的用户",
"emptyBody": "调整关键词后再试",
"disabled": "已禁用",
"promote": "提升权限",
"demote": "降为普通用户",
"enable": "启用",
"disable": "禁用",
"changePassword": "修改密码",
"passwordPrompt": "输入新密码,至少 8 位",
"passwordLabel": "新密码",
"passwordDialogTitle": "修改用户密码",
"passwordDialogBody": "为 {username} 设置新密码,保存后该用户需要重新登录",
"deleteDialogTitle": "删除用户",
"deleteConfirm": "确认删除用户 {username} 吗?",
"updatedAt": "最近更新于 {time}"
},
"disclaimer": {
"title": "免责声明",
"body": "网页样式灵感来自 Claude Code,代码编写来自 OpenAI Codex。如有侵权,请通过 GitHub Issue 反馈",
"claude": "Claude Code",
"codex": "OpenAI Codex",
"github": "GitHub"
},
"errors": {
"signInFailed": "登录失败",
"registerFailed": "注册失败",
"draftsLoadFailed": "草稿加载失败",
"configsLoadFailed": "配置列表加载失败",
"logsLoadFailed": "日志加载失败",
"templateLoadFailed": "配置模板加载失败",
"draftCreateFailed": "草稿创建失败",
"draftSaveFailed": "草稿保存失败",
"generationFailed": "生成失败"
},
"modes": {
"frontend": "前端",
"backend": "后端",
"dual": "双端"
}
}