Localize the admin all-applications page.

Move the final dashboard page (admin all-apps) onto a
dashboard.adminApps dictionary: status-count cards, search, table/cards,
lifecycle & migration statuses, plan/expiry, and the migrate modal —
completing full fa-IR/en-US coverage across the entire app.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
keyhan
2026-06-12 01:06:33 +03:30
parent e43274e9a2
commit d31d93f6b8
4 changed files with 170 additions and 110 deletions
+33
View File
@@ -1017,6 +1017,39 @@ const en: Dictionary = {
insufficientRenew: 'Insufficient wallet balance. Top up your wallet or pay via invoice.',
cycles: { hourly: 'Hourly', monthly: 'Monthly', yearly: 'Yearly' },
},
adminApps: {
title: 'All Applications',
count: '{n} application(s)',
matching: ' matching "{q}"',
lifecycle: { active: 'Active', suspended: 'Suspended — Unpaid', pending_deletion: 'Pending Deletion', deleted: 'Deleted' },
cycles: { hourly: 'Hourly', monthly: 'Monthly', yearly: 'Yearly' },
expired: 'Expired', dayShort: 'd', hourShort: 'h', minShort: 'm',
countRunning: 'Running', countDeploying: 'Deploying', countPending: 'Pending',
countStopped: 'Stopped', countFailed: 'Failed', countSuspended: 'Suspended', countPendingDel: 'Pending Del.',
searchPlaceholder: 'Search by app name, user name, email, or user ID…',
noAppsFound: 'No applications found', noResultsFor: 'No results for "{q}". Try a different search.',
noAppsYet: 'No applications yet', noAppsByUser: 'No applications have been created by any user.',
colApplication: 'Application', colOwner: 'Owner', colStatus: 'Status', colService: 'Service', colCluster: 'Cluster',
colMigration: 'Migration', colPlanExpiry: 'Plan / Expiry', colActions: 'Actions',
unknownCluster: 'Unknown cluster', notAssigned: 'Not assigned', noPlan: 'No plan', deletePrefix: 'Delete: {date}',
cluster: 'Cluster', plan: 'Plan', unknown: 'Unknown', na: 'N/A',
view: 'View', migrate: 'Migrate', notAssignedTooltip: 'Application is not assigned to a cluster',
deleteAppTitle: 'Delete Application', deleteAppConfirm: 'Are you sure you want to delete "{name}"?',
replicas: '{n} replica(s)',
migrateApplication: 'Migrate Application',
moveTo: 'Move {name} to a healthy target cluster with logs, retry, and rollback.',
targetCluster: 'Target Cluster', currentCluster: 'Current cluster',
unknownClusterShort: 'Unknown cluster ({id})',
selectHealthyCluster: 'Select healthy cluster',
currentExcludedNote: 'The current cluster is excluded. Migration is blocked for unhealthy, inactive, or maintenance clusters.',
noOtherCluster: 'No other cluster is available as a migration target.',
latestMigration: 'Latest migration', queued: 'queued', attempts: 'attempts',
noEvents: 'No events yet.', retryMigration: 'Retry migration',
startMigration: 'Start Migration', queueing: 'Queueing...',
appDeleted: 'Application deleted', migrationQueued: 'Migration job queued', migrationQueueFailed: 'Failed to queue migration',
migrationRetryQueued: 'Migration retry queued', migrationRetryFailed: 'Failed to retry migration',
migrationStatus: { completed: 'completed', failed: 'failed', rolled_back: 'rolled back', running: 'running', rolling_back: 'rolling back', queued: 'queued' },
},
appDetail: {
productTypeApp: 'Application',
cycles: { hourly: 'Hourly', monthly: 'Monthly', yearly: 'Yearly' },