Files
LokiStack/frontend/src/i18n/locales/en/settings.ts
T
opsx abe28964a1
CI / Backend (go vet + test) (push) Canceled after 0s
CI / Frontend (lint + build + test) (push) Canceled after 0s
fix(i18n): 全站文案书面化 + 中英翻译质量修复
中文(zh):约 40 处口语化改书面(「谁在什么时候改了什么」→「操作人、时间与变更前后对比」、
「找出最吵的业务」→「定位日志量最高的业务」、「点」→「点击」、创建你的第一个→创建首个等);
「副本 / Pod」统一为「Pod」。

英文(en)修复:
- 功能 bug:wizard openGrafana ({url}) 插值失效→({{url}});settings notify 空态链接词悬空破句
- 语义补齐:clusters/hosts 删除确认补 Warning 与后果句;tokenInsecureHint 补 Kubeconfig 建议
  (并删 en 死键 tokenRecommended);retention liveHint/costWarning/upgradeHint 补丢失半句
- 术语统一:data source / collection policy / log lines / Listen IP (internal) / Total deployments
- 复数:users confirmDesc、pagination total、range lastMinutes 补 _one;storage deleteWarning 两形态对齐
- 风格:Select filtered users、Delivery History、Log Scrape Jobs、App label source、
  Deployment Logs 连字符改间隔号;删除 zh 死键 liveTitle
2026-10-29 13:42:51 +08:00

149 lines
5.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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 {
retention: {
title: 'Log retention',
alertLabel: 'Alert history (days)',
auditLabel: 'Audit logs (days)',
save: 'Save',
saving: 'Saving…',
saved: 'Retention saved; expired records purged',
saveFailed: 'Save failed',
},
title: 'General',
tabs: {
general: 'General',
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, then open ',
emptyLink: 'Alerts',
emptyAfter: 'to link rules to their channels.',
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 disabled — enable it and fill in the directory info to show "Import from LDAP" 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 follows 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–{{end}}:00 in the chosen timezone, dark otherwise; the top bar toggle always works.',
},
prefsCard: {
title: 'Appearance & Language',
},
}