{
  "title": "Switch to {{target}}",
  "subtitle": "Replace {{from}} with {{to}}. Only one SQL server is allowed on this host.",
  "confirm": "Confirm switch and migrate",
  "success": "SQL engine switched and data migrated",
  "bannerHint": "If the other engine is already installed, you must confirm an exclusive switch (uninstall",
  "flowAria": "SQL engine switch direction",
  "from": "Current",
  "to": "Target",
  "calloutTitle": "Hard to undo without backups",
  "calloutBody": "{{from}} packages are removed only after a successful export",
  "sectionImpact": "What will happen",
  "sectionLimits": "Limitations and risks",
  "dbListTitle": "Databases to migrate ({{count}})",
  "dbMigrateBadge": "{{count}} user database(s)",
  "dbEmptyBadge": "No user databases",
  "noUserDbs": "No user databases detected (system schemas only). The server engine will still be replaced.",
  "tableCount": "{{count}} table(s)",
  "ackLabel": "I understand the engines are exclusive. Uninstall {{from}} and migrate data to {{to}}.",
  "phraseLabel": "Type {{phrase}} to confirm",
  "phraseMismatch": "Phrase does not match. Type SWITCH exactly.",
  "warn": {
    "replace_engine": "Uninstall {{from}} and install {{to}}.",
    "exclusive": "MySQL and MariaDB cannot run together as servers on one host (exclusive).",
    "uninstall_packages": "Current SQL server packages will be removed from the system.",
    "logical_dump": "User databases are logical-exported then imported. System schemas are not copied as files.",
    "dialect_risk": "MariaDB- or MySQL-specific SQL may fail on import.",
    "no_replication": "Replication settings, plugins, and binary logs are not migrated.",
    "root_auth": "Root socket or password authentication may need reconfiguration after the switch.",
    "no_user_dbs": "No user databases detected — only engine packages will change.",
    "has_user_dbs": "{{count}} user database(s) will be exported and imported."
  },
  "note": {
    "needsSwitch": "This host already runs {{other}}. MySQL and MariaDB are exclusive — confirm switch (export → uninstall other → install → import).",
    "invalidTarget": "Invalid target (mysql or mariadb only).",
    "badConfirmPhrase": "Confirm phrase must be exactly SWITCH.",
    "needAck": "You must acknowledge exclusive switch (MySQL or MariaDB, not both).",
    "switchNotNeeded": "Switch not needed — use normal install.",
    "migrateDataRequired": "Data migration must be enabled when user databases exist.",
    "dumpFailed": "Export failed — source {{source}} left running. {{detail}}",
    "datadirBackupFailed": "Datadir backup failed — aborted before uninstall. Try starting the source service manually.",
    "waitFailed": "Target service did not become ready. Backup: {{dumpPath}}. Old datadir: {{datadir}}. Manual recovery required.",
    "incomplete": "Switch incomplete. Export retained at {{dumpPath}}. Old datadir at {{datadir}}. Do not purge again blindly.",
    "switched": "Switched {{from}} → {{to}}. Imported {{imported}}/{{total}} database(s).",
    "dumpPath": "Logical export path: {{path}}",
    "datadirBackup": "Old datadir backup: {{path}} (remove when satisfied: rm -rf {{path}})",
    "grantsExported": "Grants exported ({{detail}})",
    "frozenDetected": "MySQL/MariaDB is FROZEN (not an apt failure). Path {{path}} (mode: {{mode}}). The package may be installed but the daemon refuses to start after an engine switch or downgrade. Clear freeze and re-init empty datadir if safe. Snippet: {{snippet}}",
    "frozenCleared": "Removed freeze marker {{path}}.",
    "frozenClearFailed": "Could not remove freeze marker {{path}} — remove manually as root.",
    "datadirNotEmptySkipInit": "Data directory already has system tables — skipped re-initialize.",
    "datadirInitialized": "Initialized empty data directory for {{flavor}}.",
    "datadirInitFailed": "Failed to initialize data directory: {{detail}}",
    "unitNotActive": "Unit {{unit}} is {{active}} (expected active).",
    "nginxPortConflict": "Nginx unit not active — Apache may still bind public :80; rebind Apache to 127.0.0.1:8080, then restart Nginx.",
    "nginxConfigFailed": "nginx -t failed: {{detail}}",
    "frozenShort": "FROZEN ({{mode}}) — daemon blocked; unfreeze and repair required.",
    "unfreezeNeedsConfirm": "Confirm required to unfreeze (frozen={{frozen}}, emptyDatadir={{empty}}). POST with confirm:true.",
    "unfreezeOk": "Service {{unit}} is active after unfreeze repair.",
    "unfreezeStartFailed": "Still not active after unfreeze: {{detail}}",
    "unfreezePrompt": "Click “Unfreeze and repair” to clear FROZEN and re-init empty datadir.",
    "configSanitized": "SQL config aligned for {{flavor}} (my.cnf → {{target}}). MariaDB plugin remnants disabled when targeting MySQL.",
    "configSanitizeFailed": "Failed to sanitize SQL config: {{detail}}"
  },
  "step": {
    "dump": "Export {{db}}",
    "exportGrants": "Export grants",
    "stop": "Stop {{unit}}",
    "backupDatadir": "Backup datadir",
    "purge": "Uninstall {{pkg}}",
    "wait": "Wait for {{unit}}",
    "importDb": "Import {{db}}",
    "importGrants": "Import grants",
    "verify": "Verify",
    "preflight": "Preflight",
    "confirm": "Confirm",
    "clearFrozen": "Clear MySQL FROZEN",
    "initDatadir": "Initialize empty datadir",
    "startUnit": "Start {{unit}}",
    "sanitizeConfig": "Sanitize my.cnf / residual plugins"
  }
}
