Files
LokiStack/frontend/src/i18n/locales/en/settings.ts
T
opsx f3733f0bfc 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 未翻译、词典双逗号等
2026-10-27 17:11:38 +08:00

142 lines
5.8 KiB
TypeScript

// settings namespace — Settings page (general/password/about, notifications, LDAP, image registry), English copy.
// Note: theme & language card titles and ThemeSection copy are owned elsewhere and are not in this dictionary.
export default {
title: 'Settings',
description: 'General settings, alert notifications, LDAP integration, and the default image registry',
tabs: {
general: 'General',
notify: 'Alert Notifications',
ldap: 'LDAP Integration',
registry: 'Default Image Registry',
},
// Action labels shared across sections
actions: {
cancel: 'Cancel',
saving: 'Saving...',
testing: 'Testing...',
},
password: {
title: 'Change Password',
oldLabel: 'Current password',
oldPlaceholder: 'Enter current password',
newLabel: 'New password',
newPlaceholder: 'Enter new password (at least 6 characters)',
confirmLabel: 'Confirm new password',
confirmPlaceholder: 'Re-enter new password',
submit: 'Change password',
submitting: 'Changing...',
errMismatch: 'Passwords do not match',
errTooShort: 'New password must be at least 6 characters',
errFailed: 'Failed to change password',
},
about: {
title: 'About LokiStack',
versionLabel: 'Version',
backendLabel: 'Backend',
frontendLabel: 'Frontend',
k8sLabel: 'Kubernetes Access',
summaryLabel: 'Overview',
backendValue: 'Go + Gin + JSON file storage',
frontendValue: 'React 19 + TypeScript + Tailwind CSS',
k8sValue: 'client-go, direct API Server access',
summaryValue: 'Lightweight Loki log management platform',
},
notify: {
cardTitle: 'Alert Channels — Feishu (Lark)',
create: 'New channel',
// Empty state is assembled as "prefix + link + suffix" (link points to the Alerts page)
emptyBefore: 'No channels yet — create one per alert group (e.g. "App alerts", "Nginx alerts"), then link rules to it on the ',
emptyLink: 'Alerts',
emptyAfter: ' page',
webhookConfigured: 'Webhook configured',
webhookMissing: 'Not configured',
secretConfigured: ' · Signing secret configured',
testAria: 'Test {{name}}',
editAria: 'Edit {{name}}',
deleteAria: 'Delete {{name}}',
editTitle: 'Edit Channel · {{name}}',
createTitle: 'New Notification Channel',
nameLabel: 'Channel name *',
namePlaceholder: 'e.g. App alerts / Nginx alerts',
webhookLabel: 'Webhook URL',
webhookKeepHint: ' (leave blank to keep current)',
webhookSavedPlaceholder: 'Saved — enter a new URL to replace it',
signingLabel: 'Signing secret (optional)',
signingSavedPlaceholder: 'Saved — leave blank to keep current',
signingPlaceholder: 'Feishu (Lark) bot signing secret',
enable: 'Enable channel',
saveChanges: 'Save changes',
createChannel: 'Create channel',
deleteTitle: 'Delete Notification Channel',
testSent: 'Test card sent to "{{name}}"',
errLoad: 'Failed to load notification channels',
errNameRequired: 'Channel name is required',
errWebhookRequired: 'A Webhook URL is required for a new channel',
errSave: 'Save failed',
errSend: 'Send failed',
errToggle: 'Failed to toggle',
errDelete: 'Delete failed',
},
ldap: {
cardTitle: 'LDAP Integration',
headerHint: 'Enables LDAP sign-in and bulk user import',
errLoad: 'Failed to load LDAP configuration',
disabledHint:
'LDAP is disabled — turn it on and fill in the directory details (server / Bind DN / Base DN). After saving, "Import from LDAP" appears on the Users page.',
hostLabel: 'Server address *',
portLabel: 'Port',
ldapsLabel: 'LDAPS',
bindDnLabel: 'Bind DN *',
bindPasswordLabel: 'Bind password *',
bindPasswordSavedPlaceholder: 'Saved — enter a new password to replace it',
bindPasswordPlaceholder: 'Administrator password',
baseDnLabel: 'Base DN *',
userFilterLabel: 'User filter',
usernameLabel: 'Username',
nameLabel: 'Full name',
emailLabel: 'Email',
noEmail: 'No email',
testButton: 'Test connection',
saveButton: 'Save configuration',
errMissingFields: 'Fill in the server address / Bind DN / Base DN first',
errTest: 'Test failed',
savedToast: 'LDAP configuration saved',
},
registry: {
cardTitle: 'Image Registry',
modeOverseasLabel: 'Official (overseas)',
modeOverseasDesc: 'docker.io, for overseas networks',
modeCnLabel: 'China mirror',
modeCnDesc: 'docker.m.daocloud.io mirror, for networks in China',
modeCustomLabel: 'Private registry',
modeCustomDesc: 'Your own registry prefix (e.g. Huawei Cloud SWR)',
errLoad: 'Failed to load image registry configuration',
savedToast: 'Image registry saved. Future deployments and collectors will use the new image addresses.',
customPrefixLabel: 'Private registry prefix *',
customPrefixHint: 'The platform prepends this prefix to image names, e.g. {{example}}/grafana/loki:3.4.0',
imagesLabel: 'Per-service images (repository / tag can be overridden)',
tagFollowVersion: 'Follows deployment version',
repoAria: '{{label}} image repository',
tagAria: '{{label}} image tag',
// The images hint is assembled as "prefix + <code>grafana/loki</code> + suffix"
imagesHintBefore: 'Repository is the image path (e.g. ',
imagesHintAfter: '); when Tag is empty, Loki / Grafana follow the deployment version and Promtail / Fluent Bit use built-in defaults.',
previewTitle: 'Effective image preview',
saveButton: 'Save image registry',
},
themeCard: {
title: 'Theme',
light: 'Light',
dark: 'Dark',
system: 'Follow System',
auto: 'Scheduled',
timezone: 'Timezone',
timezoneAria: 'Theme schedule timezone',
browser: 'Follow browser (local)',
autoHint: 'Light from {{start}}:00 to {{end}}:00 in the selected timezone, dark otherwise; the sun/moon toggle overrides anytime.',
},
prefsCard: {
title: 'Appearance & Language',
},
}