Localize database-config, snapshots panel and new-service wizard.
Add components.dbConfig / components.snapshots and dashboard.servicesNew dictionaries; move the managed-database config (engine, credentials, dump upload, storage), the snapshots panel and the three-step new-service wizard onto them. validateDbDumpStorage now takes a localized template. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -252,6 +252,69 @@ const en: Dictionary = {
|
||||
mShort: 'm',
|
||||
sShort: 's',
|
||||
},
|
||||
dbConfig: {
|
||||
engine: 'Database engine',
|
||||
version: 'Version',
|
||||
credentials: 'Database credentials',
|
||||
credentialsOptional: '(optional — auto-generated if empty)',
|
||||
username: 'Username',
|
||||
usernamePlaceholder: 'appuser',
|
||||
password: 'Password',
|
||||
passwordPlaceholder: 'Auto-generated',
|
||||
generatePassword: 'Generate random password',
|
||||
credentialsNote: 'Used for internal cluster access. Use temporary or permanent external access below after deploy.',
|
||||
uploadDumpLabel: 'Optional: upload DB dump to restore at creation',
|
||||
remove: 'Remove',
|
||||
uploadHint: 'Upload a SQL dump to be restored after the database is created',
|
||||
uploadConstraints: 'Optional • Max 500MB • .sql, .gz, .dump',
|
||||
allowedFormats: 'Allowed: .sql, .gz, .dump',
|
||||
maxSize: 'Max 500MB',
|
||||
storageSize: 'Database storage size',
|
||||
suggestedFromDump: 'Suggested from dump ({gi} GiB min fit)',
|
||||
minimumGb: 'Minimum {n} GB',
|
||||
mustFitDump: ' (must fit the uploaded dump)',
|
||||
expansionOnly: ' • Only expansion allowed after creation',
|
||||
storageTooSmallTitle: 'Storage too small',
|
||||
ok: 'OK',
|
||||
storageTooSmallDetail: 'Your database dump is about {dumpGi} GiB. Database storage must be at least {need} GiB (you selected {selected} GiB). Increase database storage, then try again.',
|
||||
},
|
||||
snapshots: {
|
||||
title: 'Snapshots',
|
||||
newSnapshot: 'New Snapshot',
|
||||
creating: 'Creating…',
|
||||
hide: 'Hide',
|
||||
show: 'Show',
|
||||
deployFirst: 'Deploy the service first',
|
||||
waitCurrent: 'Wait for the current backup to finish',
|
||||
infoNote: 'Database snapshots store a SQL dump you can download later. When progress reaches 100%, use the download button. Up to 10 snapshots are kept; oldest are removed automatically.',
|
||||
loadingBackups: 'Loading backups…',
|
||||
noBackups: 'No backups yet',
|
||||
noBackupsHint: 'Click New backup to create your first database dump.',
|
||||
defaultLabel: 'Database backup',
|
||||
auto: 'Auto',
|
||||
manual: 'Manual',
|
||||
dumping: 'Dumping…',
|
||||
preparing: 'Preparing dump…',
|
||||
exporting: 'Exporting database…',
|
||||
finalizing: 'Finalizing…',
|
||||
creatingDump: 'Creating database dump…',
|
||||
dump: 'Dump',
|
||||
downloadTitle: 'Download database dump',
|
||||
deleteTitle: 'Delete backup',
|
||||
removeFailedTitle: 'Remove failed backup',
|
||||
maxKept: 'Maximum 10 backups are kept.',
|
||||
backupReady: 'Backup ready — you can download the dump now',
|
||||
backupFailed: 'Backup failed',
|
||||
backupStarted: 'Backup started — dump in progress',
|
||||
createFailed: 'Failed to create backup',
|
||||
backupDeleted: 'Backup deleted',
|
||||
deleteFailed: 'Failed to delete backup',
|
||||
downloadStarted: 'Download started',
|
||||
downloadFailed: 'Failed to download database dump',
|
||||
deleteConfirmTitle: 'Delete backup?',
|
||||
deleteConfirmMessage: 'Delete “{label}”? The dump file will be permanently removed.',
|
||||
snapStatus: { completed: 'completed', failed: 'failed' },
|
||||
},
|
||||
},
|
||||
|
||||
nav: {
|
||||
@@ -802,6 +865,46 @@ const en: Dictionary = {
|
||||
hours: 'hours',
|
||||
days: 'days',
|
||||
},
|
||||
servicesNew: {
|
||||
steps: ['Service type', 'Configuration', 'Review & pay'],
|
||||
title: 'New managed service',
|
||||
subtitle: 'Database, Redis, or RabbitMQ — billed like applications',
|
||||
typeDatabase: 'Database',
|
||||
typeDatabaseDesc: 'PostgreSQL, MySQL, MariaDB, MongoDB',
|
||||
typeRedis: 'Redis',
|
||||
typeRedisDesc: 'In-memory cache & store',
|
||||
typeRabbitmq: 'RabbitMQ',
|
||||
typeRabbitmqDesc: 'Message broker',
|
||||
serviceName: 'Service name',
|
||||
serviceNamePlaceholder: 'my-database',
|
||||
nameHint: 'Lowercase letters, numbers, and hyphens only',
|
||||
redisVersion: 'Redis version',
|
||||
rabbitmqVersion: 'RabbitMQ version',
|
||||
redisResources: 'Redis resources',
|
||||
rabbitmqResources: 'RabbitMQ resources',
|
||||
billingCycle: 'Billing cycle',
|
||||
cycles: { hourly: 'Hourly', monthly: 'Monthly', yearly: 'Yearly' },
|
||||
paymentMethod: 'Payment method',
|
||||
wallet: 'Wallet',
|
||||
insufficient: 'Insufficient',
|
||||
payNow: 'Pay now',
|
||||
pricingUnavailable: 'Pricing unavailable',
|
||||
back: 'Back',
|
||||
next: 'Next',
|
||||
payProvision: 'Pay & provision',
|
||||
provisioning: 'Provisioning service',
|
||||
creatingService: 'Creating service',
|
||||
uploadingDump: 'Uploading database dump',
|
||||
payment: 'Payment',
|
||||
deploying: 'Deploying',
|
||||
provisionedSuccess: 'Service provisioned successfully',
|
||||
deployFailed: 'Deploy failed',
|
||||
paySucceededDeployFailed: 'Payment succeeded but deployment failed',
|
||||
payProvisionFailed: 'Payment or provisioning failed',
|
||||
payFailed: 'Payment failed',
|
||||
insufficientBalance: 'Insufficient wallet balance',
|
||||
serviceDesc: 'Service: {name} ({cycle})',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user