fix(i18n): hardkodierte Strings in Cluster/Users/Backups/Alerts bereinigen
- Cluster: statusTag() bekommt t-Parameter; Status-Labels (online/offline/
joining/leaving/unknown) → cluster.status.* Keys
- Users: 'You'-Tag → t('users.you') / de: 'Ich'
- Backups: 'OK'-Status-Tag → t('backups.okTag')
- Alerts: Kanal-Kind-Labels + alle SMTP-Formular-Labels in t() überführt
- en/de: cluster.status.*, users.you, backups.okTag, alerts.smtp.*,
alerts.kindWebhook/kindEmail ergänzt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -82,13 +82,13 @@ interface CertStatus {
|
||||
peer?: CertInfo
|
||||
}
|
||||
|
||||
function statusTag(s: HANode['status']) {
|
||||
function statusTag(s: HANode['status'], t: (k: string) => string) {
|
||||
switch (s) {
|
||||
case 'online': return <Tag color="green">online</Tag>
|
||||
case 'offline': return <Tag color="red">offline</Tag>
|
||||
case 'joining': return <Tag color="blue">joining</Tag>
|
||||
case 'leaving': return <Tag color="orange">leaving</Tag>
|
||||
default: return <Tag>unknown</Tag>
|
||||
case 'online': return <Tag color="green">{t('cluster.status.online')}</Tag>
|
||||
case 'offline': return <Tag color="red">{t('cluster.status.offline')}</Tag>
|
||||
case 'joining': return <Tag color="blue">{t('cluster.status.joining')}</Tag>
|
||||
case 'leaving': return <Tag color="orange">{t('cluster.status.leaving')}</Tag>
|
||||
default: return <Tag>{t('cluster.status.unknown')}</Tag>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,7 +208,7 @@ export default function ClusterPage() {
|
||||
},
|
||||
{
|
||||
title: t('cluster.col.status'), dataIndex: 'status', width: 110,
|
||||
render: (s: HANode['status']) => statusTag(s),
|
||||
render: (s: HANode['status']) => statusTag(s, t),
|
||||
},
|
||||
{ title: t('cluster.col.role'), dataIndex: 'role', width: 110,
|
||||
render: (v: string) => <Tag color={v === 'primary' ? 'gold' : 'default'}>{v}</Tag> },
|
||||
@@ -324,7 +324,7 @@ export default function ClusterPage() {
|
||||
</Space>
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={t('cluster.col.status')}>
|
||||
{statusTag(data.local_node.status)}
|
||||
{statusTag(data.local_node.status, t)}
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item label={t('cluster.col.role')}>
|
||||
<Tag color={data.local_node.role === 'primary' ? 'gold' : 'default'}>
|
||||
|
||||
Reference in New Issue
Block a user