Localize workload-logs and external-access panels.

Add components.workloadLogs, components.deployStatus and
components.externalAccess dictionaries; move the workload logs panel and
the service external-access panel onto them (tabs, live-refresh hints,
access modes, countdown units, toasts) with RTL-aware spacing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
keyhan
2026-06-11 18:25:45 +03:30
parent f64d341c80
commit 63e368f464
5 changed files with 183 additions and 50 deletions
+64
View File
@@ -188,6 +188,70 @@ const en: Dictionary = {
twoCores: '2 cores',
storageGb: 'Storage (GB)',
},
deployStatus: {
running: 'running',
pending: 'pending',
building: 'building',
deploying: 'deploying',
failed: 'failed',
build_failed: 'build_failed',
cancelled: 'cancelled',
stopped: 'stopped',
active: 'active',
suspended: 'suspended',
pending_deletion: 'pending_deletion',
},
workloadLogs: {
logs: 'Logs',
liveEvery3s: 'Live (every 3s)',
autoEvery5s: 'Auto-refresh (every 5s)',
hideLogs: 'Hide logs',
showLogs: 'Show logs',
podLogs: 'Pod logs',
buildLogs: 'Build logs',
noBuildNote: 'Workload pod output (no image build for this service).',
loadingLogs: 'Loading logs...',
serviceStopped: 'Service is stopped. Start it to see logs.',
waitingPods: 'Waiting for workload pods to be ready...',
buildInProgress: 'Build in progress... Logs will appear when complete.',
buildPending: 'Build is pending...',
noDeployments: 'No deployments yet. Deploy your app to see build logs.',
noBuildLogs: 'No build logs available for this deployment.',
},
externalAccess: {
title: 'External access',
warning: 'Opens a NodePort on the cluster node IP. Anyone who can reach that IP may connect until the session ends or you revoke it. Use short durations for temporary access; permanent keeps the port open until revoked.',
deployFirst: 'Deploy the service first to enable external access.',
service: 'Service',
accessMode: 'Access mode',
temporary: 'Temporary',
alwaysOpen: 'Always open',
duration: 'Duration',
persistentNote: 'The port stays exposed until you click Revoke. Only use this when you need a stable external endpoint.',
opening: 'Opening…',
openPermanently: 'Open port permanently',
enableAccess: 'Enable access',
noSessions: 'No active external access sessions.',
revoke: 'Revoke',
endpoint: 'Endpoint',
url: 'URL',
permanentUntilRevoked: 'Permanent (until revoked)',
expired: 'Expired',
targets: {
database: 'Database',
redis: 'Redis',
rabbitmq_amqp: 'RabbitMQ (AMQP)',
rabbitmq_management: 'RabbitMQ Management UI',
},
permanentEnabled: 'Permanent external access enabled',
temporaryEnabled: 'Temporary external access enabled',
enableFailed: 'Failed to enable access',
revoked: 'Access revoked',
revokeFailed: 'Failed to revoke access',
hShort: 'h',
mShort: 'm',
sShort: 's',
},
},
nav: {