feat: 品牌统一 LokiStack + 全站中英 i18n + 用户批量删除 + 主题定时切换与浅色侧栏
- 品牌: Go 模块/数据文件/二进制/构建部署资产全部 opsx→lokistack;前端 localStorage 命名空间迁移(读旧写新,含按用户 id 前缀迁移);修复 nginx upstream 与 Makefile 引用已改名服务的断裂 - i18n: react-i18next 落地,common + 11 个页面域命名空间全站中英(菜单/顶栏/登录/列表页/表单/确认弹窗/状态徽章);设置页语言即时切换;修复词典自注册导致的循环导入白屏 - 用户管理: 批量删除(POST /users/batch-delete,不删自己/最后管理员,部分失败不阻断)+ 行复选/全选/批量工具条 - 主题: 浅色侧栏(中性灰激活态)、四态模式(浅色/深色/跟随系统/定时切换,按时区判定)、顶栏太阳月亮二态、设置页紧凑分段选择器 - UI: 登录记住用户名、CardActionButton 统一五页卡片操作钮、shadcn Badge 替换手写徽章、语义色修正 - 清理: 移除主机 Web 终端(前后端)、k8s-helm/Helm 遗留代码与字段、README 重写精简 - 修复: 侧栏与日志告警 order 重复、路由标题 i18n key 未翻译、词典双逗号等
This commit is contained in:
1 parent
02d1bd87a7
commit
f3733f0bfc
201 files changed
+5438
-2388
No files matched your search
@@ -0,0 +1,88 @@
|
||||
// clusters 命名空间 — 集群管理页中文文案
|
||||
// 富文本(含 <code>/<strong>)配合 react-i18next <Trans> 渲染,勿删标签
|
||||
export default {
|
||||
title: '集群管理',
|
||||
description: '管理用于 Loki 部署的 Kubernetes 集群',
|
||||
actions: {
|
||||
add: '添加集群',
|
||||
detail: '详情',
|
||||
editAria: '编辑集群 {{name}}',
|
||||
validateAria: '验证集群 {{name}}',
|
||||
deleteAria: '删除集群 {{name}}',
|
||||
},
|
||||
fields: {
|
||||
accessType: '接入方式',
|
||||
apiServer: 'API Server',
|
||||
version: '版本',
|
||||
nodes: '节点数',
|
||||
unknown: '未知',
|
||||
},
|
||||
empty: {
|
||||
title: '暂无集群',
|
||||
description: '添加第一个 Kubernetes 集群开始使用',
|
||||
},
|
||||
delete: {
|
||||
warning:
|
||||
'确定要删除「{{name}}」吗?警告:仍有 {{dep}} 个部署、{{col}} 个采集策略引用该集群,删除后它们将无法工作。',
|
||||
},
|
||||
toast: {
|
||||
deleteFailed: '删除集群失败',
|
||||
validateFailed: '验证失败',
|
||||
createFailed: '创建集群失败',
|
||||
},
|
||||
form: {
|
||||
addTitle: '添加 Kubernetes 集群',
|
||||
editTitle: '编辑集群',
|
||||
editTitleWithName: '编辑集群 · {{name}}',
|
||||
nameLabel: '集群名称 *',
|
||||
descriptionLabel: '描述',
|
||||
descriptionPlaceholder: '生产环境日志集群',
|
||||
accessTypeLabel: '接入方式',
|
||||
kubeconfigLabel: 'Kubeconfig 内容 *',
|
||||
kubeconfigLabelEdit: 'Kubeconfig 内容(留空保持不变)',
|
||||
kubeconfigPlaceholder: '粘贴 kubeconfig YAML(自动识别 API Server)...',
|
||||
apiServerDetected: '已识别 API Server:{{server}}',
|
||||
apiServerLabel: 'API Server *',
|
||||
tokenLabel: 'Token *',
|
||||
tokenLabelEdit: 'Token(留空保持不变)',
|
||||
tokenPlaceholder: '粘贴 Service Account Token...',
|
||||
tokenInsecureHint: '采用 insecure 模式,便于内网/自签证书集群接入',
|
||||
rbacSummary: '最小授权建议(点击展开)',
|
||||
rbacScope:
|
||||
'只授予 <code>log</code> 命名空间权限,Token 泄露也不会影响其他命名空间;<strong>不要使用 cluster-admin</strong>。',
|
||||
rbacScriptIntro:
|
||||
'一次性创建 <code>log</code> 命名空间、ServiceAccount、命名空间级 Role 和长期 Token(在集群里执行一次,Token 粘贴到下方输入框):',
|
||||
rbacScriptComment1: '# 1) 一次创建:命名空间 + SA + 命名空间级 Role + 长期 Token',
|
||||
rbacScriptComment2: '# 2) 取出长期 Token(不自动过期),粘贴到 Token 输入框',
|
||||
rbacNamespaceNote:
|
||||
'上面的 Namespace 由管理员创建,平台 Token 本身没有任何集群级权限。只有确实需要平台自建命名空间时,才额外授予 <code>namespaces: create/get</code> 的 ClusterRole;注意 namespace 的 create 无法按名称限制,所以预建 <code>log</code> 更安全。',
|
||||
rbacTokenNote:
|
||||
'Token 长期有效,但只绑定 <code>log</code> 命名空间的 Role(仅能操作该命名空间的 Pod / 工作负载),泄露影响面仅限于 <code>log</code>;服务端会转成 kubeconfig 并用 <code>ENCRYPTION_KEY</code> 加密存储,数据库里只有 <code>ENC:</code> 密文,接口不返回明文。轮换时删除该 Secret 重建即可,旧 Token 立即失效。',
|
||||
contextLabel: '上下文(可选)',
|
||||
contextPlaceholder: '留空则使用默认上下文',
|
||||
submitAdd: '添加集群',
|
||||
submitSave: '保存修改',
|
||||
submittingAdd: '添加中...',
|
||||
submittingSave: '保存中...',
|
||||
validation: {
|
||||
nameRequired: '请输入集群名称',
|
||||
kubeconfigRequired: '请填写 kubeconfig 内容',
|
||||
apiServerRequired: '请填写 API Server 地址',
|
||||
tokenRequired: '请填写 Token',
|
||||
},
|
||||
},
|
||||
detail: {
|
||||
loadError: '加载集群详情失败',
|
||||
version: '版本',
|
||||
unknown: '未知',
|
||||
currentContext: '当前上下文',
|
||||
defaultContext: '默认',
|
||||
nodesCount: '节点({{count}})',
|
||||
nodeReady: '就绪',
|
||||
nodeNotReady: '未就绪',
|
||||
nodeIp: 'IP:{{value}}',
|
||||
nodeOs: '系统:{{os}}/{{arch}}',
|
||||
nodeVersion: '版本:{{version}}',
|
||||
namespaces: '命名空间',
|
||||
},
|
||||
}
|
||||
Reference in new issue
Block a user