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,99 @@
|
||||
// common namespace — app shell (menu / top bar / login / shared components / status)
|
||||
export default {
|
||||
appName: 'LokiStack',
|
||||
menu: {
|
||||
dashboard: 'Dashboard',
|
||||
wizard: 'Deploy Wizard',
|
||||
clusters: 'Clusters',
|
||||
hosts: 'Hosts',
|
||||
storage: 'Storage',
|
||||
deployments: 'Deploy Loki',
|
||||
collectors: 'Log Collectors',
|
||||
logs: 'Log Query',
|
||||
alerts: 'Alerts',
|
||||
settings: 'Settings',
|
||||
users: 'Users',
|
||||
login: 'Sign In',
|
||||
notFound: 'Page Not Found',
|
||||
},
|
||||
layout: {
|
||||
nav: 'Main navigation',
|
||||
sheetTitle: 'LokiStack Navigation',
|
||||
collapse: 'Collapse menu',
|
||||
expand: 'Expand menu',
|
||||
openNav: 'Open navigation menu',
|
||||
logout: 'Sign out',
|
||||
logoutShort: 'Sign out',
|
||||
toLight: 'Switch to light theme',
|
||||
toDark: 'Switch to dark theme',
|
||||
admin: 'Admin',
|
||||
loading: 'Loading page',
|
||||
},
|
||||
login: {
|
||||
subtitle: 'Loki Log Management Platform',
|
||||
heading: 'Sign In',
|
||||
username: 'Username',
|
||||
usernamePlaceholder: 'Enter username',
|
||||
password: 'Password',
|
||||
passwordPlaceholder: 'Enter password',
|
||||
remember: 'Remember username',
|
||||
submit: 'Sign In',
|
||||
submitting: 'Signing in...',
|
||||
errCredential: 'Invalid username or password',
|
||||
errConn: 'Cannot reach the backend. Make sure it is running on port 8080.',
|
||||
errFallback: 'Sign-in failed',
|
||||
backendDown: 'Backend is not running',
|
||||
backendDownHint: 'Cannot reach the API service. Start the backend first:',
|
||||
},
|
||||
dialog: {
|
||||
confirmTitle: 'Confirm Deletion',
|
||||
confirmText: 'Delete',
|
||||
cancel: 'Cancel',
|
||||
processing: 'Processing...',
|
||||
confirmIrreversible: 'Are you sure? This cannot be undone.',
|
||||
confirmDefault: 'Delete "{{name}}"? This cannot be undone.',
|
||||
},
|
||||
error: {
|
||||
title: 'Failed to load',
|
||||
hint: 'Check the network or backend service, then retry',
|
||||
retry: 'Retry',
|
||||
},
|
||||
pagination: {
|
||||
total: '{{count}} items',
|
||||
summary: '{{count}} items · Page {{page}} of {{pages}}',
|
||||
},
|
||||
status: {
|
||||
active: 'Running',
|
||||
running: 'Running',
|
||||
inactive: 'Stopped',
|
||||
stopped: 'Stopped',
|
||||
pending: 'Pending',
|
||||
deploying: 'Deploying',
|
||||
failed: 'Failed',
|
||||
error: 'Error',
|
||||
},
|
||||
notFound: {
|
||||
heading: 'Page Not Found',
|
||||
hint: 'The page does not exist or has been removed',
|
||||
backHome: 'Back to Home',
|
||||
},
|
||||
lang: {
|
||||
section: 'Language',
|
||||
zh: '中文',
|
||||
en: 'English',
|
||||
},
|
||||
boundary: {
|
||||
title: 'Rendering Error',
|
||||
hint: 'Something went wrong. Try refreshing; if it persists, report the details below.',
|
||||
unknown: 'Unknown error',
|
||||
reload: 'Reload Page',
|
||||
reset: 'Reset Component',
|
||||
},
|
||||
spinner: {
|
||||
default: 'Loading...',
|
||||
},
|
||||
password: {
|
||||
hide: 'Hide password',
|
||||
show: 'Show password',
|
||||
},
|
||||
}
|
||||
Reference in new issue
Block a user