{
  "app": {
    "name": "Docker Watcher",
    "version": "v0.1"
  },
  "health": {
    "connected": "connected",
    "disconnected": "disconnected",
    "rawError": "Technical details",
    "retryNow": "Retry now"
  },
  "nav": {
    "dashboard": "Dashboard",
    "projects": "Projects",
    "deploy": "Deploy",
    "proxies": "Proxies",
    "events": "Events",
    "settings": "Settings",
    "logout": "Log out",
    "dns": "DNS Records"
  },
  "dashboard": {
    "title": "Dashboard",
    "quickDeploy": "Quick Deploy",
    "totalProjects": "Total Projects",
    "runningInstances": "Running Instances",
    "failedInstances": "Failed Instances",
    "projects": "Projects",
    "retry": "Retry",
    "noProjects": "No projects yet.",
    "addFirst": "Add your first project",
    "loadFailed": "Failed to load dashboard",
    "staleContainers": "Stale Containers"
  },
  "projects": {
    "title": "Projects",
    "addProject": "Add Project",
    "cancel": "Cancel",
    "newProject": "New Project",
    "name": "Name",
    "image": "Image",
    "port": "Port",
    "registry": "Registry",
    "created": "Created",
    "view": "View",
    "noProjects": "No projects configured yet.",
    "getStarted": "Click \"Add Project\" to get started.",
    "createProject": "Create Project",
    "creating": "Creating...",
    "healthcheck": "Healthcheck Path",
    "nameRequired": "Name and image are required.",
    "loadFailed": "Failed to load projects",
    "createFailed": "Failed to create project",
    "browseImages": "Browse Images",
    "selectImage": "Select an image",
    "noImages": "No images found",
    "loadingImages": "Loading images...",
    "imageLoadFailed": "Failed to load images"
  },
  "projectDetail": {
    "deleteProject": "Delete Project",
    "envVars": "Environment Variables",
    "volumes": "Volume Mounts",
    "stages": "Stages",
    "noStages": "No stages configured for this project.",
    "pattern": "Pattern",
    "autoDeploy": "auto-deploy",
    "requiresConfirm": "requires confirm",
    "instances": "instances",
    "deployNewVersion": "Deploy new version",
    "selectTag": "Select tag to deploy",
    "loadingTags": "Loading tags...",
    "chooseTag": "Choose a tag...",
    "enterTag": "Enter image tag (e.g., dev-abc123)",
    "deploy": "Deploy",
    "deploying": "Deploying...",
    "recentDeploys": "Recent Deploys",
    "noDeployHistory": "No deploy history for this project.",
    "tag": "Tag",
    "status": "Status",
    "started": "Started",
    "finished": "Finished",
    "error": "Error",
    "noInstancesRunning": "No instances running",
    "deleteConfirmTitle": "Delete Project",
    "deleteConfirmMessage": "This will permanently delete the project '{name}' and all its stages, instances, and deploy history. This cannot be undone.",
    "loadFailed": "Failed to load project",
    "deleteFailed": "Failed to delete project",
    "deployFailed": "Deploy failed"
  },
  "envEditor": {
    "title": "Environment Variables",
    "description": "Manage per-stage environment variable overrides. Stage-level values override project-level defaults.",
    "stage": "Stage",
    "projectDefaults": "Project-Level Defaults",
    "stageOverrides": "Stage Overrides",
    "key": "Key",
    "value": "Value",
    "secret": "Secret",
    "source": "Source",
    "actions": "Actions",
    "overridden": "overridden",
    "inherited": "inherited",
    "overridesProject": "overrides project",
    "stageOnly": "stage only",
    "edit": "Edit",
    "change": "Change",
    "delete": "Delete",
    "save": "Save",
    "add": "Add",
    "adding": "Adding...",
    "noStages": "No stages configured. Add stages to the project first.",
    "loadFailed": "Failed to load project",
    "envAdded": "Environment variable added",
    "envUpdated": "Environment variable updated",
    "envDeleted": "Environment variable deleted",
    "addFailed": "Failed to add env var",
    "updateFailed": "Failed to update env var",
    "deleteFailed": "Failed to delete env var",
    "loadEnvFailed": "Failed to load env vars"
  },
  "volumeEditor": {
    "title": "Volume Mounts",
    "description": "Configure volume mounts for containers. Choose a scope to control how volumes are shared between deploys.",
    "sourceHost": "Source (Host)",
    "targetContainer": "Target (Container)",
    "scope": "Scope",
    "nameColumn": "Name",
    "namePlaceholder": "e.g. shared-db",
    "requiresName": "requires name",
    "noHostPath": "no host path",
    "tmpfs": "tmpfs (in-memory)",
    "actions": "Actions",
    "edit": "Edit",
    "delete": "Delete",
    "save": "Save",
    "add": "Add",
    "adding": "Adding...",
    "noVolumes": "No volumes configured yet. Add one above.",
    "volumeAdded": "Volume added",
    "volumeUpdated": "Volume updated",
    "volumeDeleted": "Volume deleted",
    "loadFailed": "Failed to load volumes",
    "addFailed": "Failed to add volume",
    "updateFailed": "Failed to update volume",
    "deleteFailed": "Failed to delete volume"
  },
  "volumeBrowser": {
    "title": "Volume Browser",
    "loadFailed": "Failed to load directory",
    "empty": "This directory is empty.",
    "name": "Name",
    "size": "Size",
    "modified": "Modified",
    "downloadAll": "Download volume as ZIP",
    "downloadFolder": "Download folder as ZIP",
    "upload": "Upload files",
    "uploaded": "Uploaded",
    "files": "file(s)",
    "uploadFailed": "Failed to upload files",
    "browse": "Browse",
    "download": "Download"
  },
  "quickDeploy": {
    "title": "Quick Deploy",
    "description": "Deploy a container image with zero configuration. Paste an image URL, review the defaults, and deploy.",
    "step1": "1. Enter Image URL",
    "imageUrl": "Image URL",
    "imageUrlHelp": "Full image URL including tag (e.g., git.example.com/user/app:dev-abc123)",
    "inspect": "Inspect",
    "inspecting": "Inspecting...",
    "step2": "2. Review Configuration",
    "reviewDesc": "These defaults were detected from the image. Adjust as needed before deploying.",
    "projectName": "Project Name",
    "port": "Port",
    "portHelp": "Container port to expose (1-65535)",
    "healthCheckPath": "Health Check Path",
    "healthCheckHelp": "Optional HTTP path for health verification",
    "stage": "Stage",
    "development": "Development",
    "release": "Release",
    "production": "Production",
    "stageHelp": "Deployment stage for this image",
    "subdomainOverride": "Subdomain Override",
    "subdomainHelp": "Leave empty to use the default subdomain pattern",
    "envVars": "Environment Variables",
    "envVarsHelp": "One per line, KEY=VALUE format",
    "step3": "3. Deploy",
    "deployDesc": "A new project will be created and the container will be deployed immediately.",
    "deployBtn": "Deploy",
    "inspectedSuccess": "Image inspected successfully",
    "deployedSuccess": "Deployed {name} successfully!",
    "inspectFailed": "Failed to inspect image",
    "deployFailed": "Deployment failed",
    "browseImages": "Browse",
    "selectImage": "Select an image from a registry",
    "noImages": "No images found",
    "loadingImages": "Loading...",
    "imageLoadFailed": "Failed to load images"
  },
  "settings": {
    "title": "Settings",
    "general": "General",
    "registries": "Registries",
    "credentials": "Credentials",
    "authentication": "Authentication",
    "appearance": "Appearance",
    "staleThreshold": "Stale threshold (days)",
    "staleThresholdHelp": "Containers inactive for longer than this will be flagged as stale."
  },
  "settingsGeneral": {
    "title": "General Settings",
    "globalConfig": "Global Configuration",
    "domain": "Domain",
    "domainHelp": "Base domain for subdomain routing",
    "serverIp": "Server IP",
    "serverIpHelp": "Public IP address of the server",
    "dockerNetwork": "Docker Network",
    "dockerNetworkHelp": "Docker network for deployed containers",
    "subdomainPattern": "Subdomain Pattern",
    "subdomainPatternHelp": "Pattern for auto-generated subdomains",
    "pollingInterval": "Polling Interval (seconds)",
    "pollingIntervalHelp": "How often to check registries for new tags (10-86400)",
    "notificationUrl": "Notification URL",
    "notificationUrlHelp": "Webhook URL for deploy notifications",
    "saveSettings": "Save Settings",
    "saving": "Saving...",
    "saved": "Settings saved successfully",
    "saveFailed": "Failed to save settings",
    "loadFailed": "Failed to load settings",
    "webhookUrl": "Webhook URL",
    "webhookDesc": "This secret URL receives image push notifications from your CI pipeline.",
    "noWebhookUrl": "No webhook URL configured",
    "copy": "Copy",
    "copied": "Webhook URL copied to clipboard",
    "regenerateUrl": "Regenerate URL",
    "regenerating": "Regenerating...",
    "regenerated": "Webhook URL regenerated",
    "regenerateFailed": "Failed to regenerate webhook URL",
    "regenerateWarning": "Warning: regenerating will invalidate the current URL. Update your CI pipelines.",
    "sslCertificate": "SSL Certificate",
    "sslCertificateHelp": "Wildcard certificate from NPM for auto-SSL on proxy hosts",
    "selectCertificate": "Select Certificate",
    "noCertificate": "None (no SSL)",
    "clearCertificate": "Clear",
    "loadingCertificates": "Loading certificates...",
    "noCertificatesFound": "No wildcard certificates found in NPM",
    "dnsConfig": "DNS Configuration",
    "wildcardDns": "Wildcard DNS is configured",
    "wildcardDnsHelp": "When enabled, all subdomains resolve to your server via a wildcard DNS rule. Disable to manage DNS records per service.",
    "dnsProvider": "DNS Provider",
    "dnsProviderHelp": "Select a DNS provider for automatic record management",
    "cloudflareApiToken": "Cloudflare API Token",
    "cloudflareApiTokenHelp": "API token with DNS edit permissions for your zone",
    "cloudflareApiTokenPlaceholder": "Enter Cloudflare API token",
    "cloudflareApiTokenConfigured": "API token is configured",
    "cloudflareZone": "Cloudflare Zone",
    "cloudflareZoneHelp": "Select the DNS zone to manage records in",
    "selectZone": "Select Zone",
    "noZone": "No zone selected",
    "loadingZones": "Loading zones...",
    "noZonesFound": "No zones found for this token",
    "testConnection": "Test Connection",
    "testingConnection": "Testing...",
    "connectionSuccess": "Connection successful",
    "connectionFailed": "Connection failed"
  },
  "settingsRegistries": {
    "title": "Container Registries",
    "description": "Manage your container registries for image detection.",
    "addRegistry": "Add Registry",
    "editRegistry": "Edit Registry",
    "addNewRegistry": "Add New Registry",
    "name": "Name",
    "nameHelp": "A friendly name for this registry",
    "url": "URL",
    "urlHelp": "Registry base URL",
    "type": "Type",
    "typeHelp": "Registry type for API compatibility",
    "token": "Token",
    "tokenHelpNew": "API token for authentication",
    "tokenHelpEdit": "Leave empty to keep the existing token",
    "owner": "Owner",
    "ownerHelp": "Package owners, comma-separated (e.g., alexei,my-org)",
    "save": "Save",
    "saving": "Saving...",
    "update": "Update",
    "test": "Test",
    "testing": "Testing...",
    "edit": "Edit",
    "delete": "Delete",
    "noRegistries": "No registries configured yet.",
    "addFirst": "Add your first registry",
    "registryUpdated": "Registry updated",
    "registryAdded": "Registry added",
    "registryDeleted": "Registry \"{name}\" deleted",
    "testSuccess": "Connection to \"{name}\" successful",
    "saveFailed": "Failed to save registry",
    "deleteFailed": "Failed to delete registry",
    "testFailed": "Connection test failed",
    "loadFailed": "Failed to load registries",
    "deleteConfirm": "Delete registry \"{name}\"? This cannot be undone."
  },
  "settingsCredentials": {
    "title": "Credentials",
    "description": "Manage credentials for Nginx Proxy Manager and registry tokens. All values are encrypted at rest.",
    "npm": "Nginx Proxy Manager",
    "npmDesc": "Credentials for managing proxy hosts via NPM API",
    "configured": "Configured",
    "npmUrl": "NPM URL",
    "npmUrlHelp": "Nginx Proxy Manager API URL",
    "email": "Email",
    "emailHelp": "NPM admin email",
    "password": "Password",
    "passwordHelpNew": "NPM admin password (will be encrypted)",
    "passwordHelpEdit": "Enter the new password to replace the existing one",
    "changeCredentials": "Change Credentials",
    "save": "Save",
    "saving": "Saving...",
    "saved": "NPM credentials saved",
    "saveFailed": "Failed to save NPM credentials",
    "loadFailed": "Failed to load credentials",
    "registryTokens": "Registry Tokens",
    "registryTokensDesc": "Registry authentication tokens are managed per-registry in the",
    "registriesLink": "Registries",
    "registryTokensSuffix": "section. Each registry stores its token encrypted in the database."
  },
  "settingsAuth": {
    "title": "Authentication Settings",
    "description": "Configure authentication mode and manage users.",
    "authMode": "Authentication Mode",
    "local": "Local (username/password)",
    "oidc": "OIDC (SSO)",
    "oidcConfig": "OIDC Provider Configuration",
    "issuerUrl": "Issuer URL",
    "clientId": "Client ID",
    "clientSecret": "Client Secret",
    "redirectUrl": "Redirect URL",
    "saveSettings": "Save Settings",
    "saving": "Saving...",
    "saved": "Settings saved",
    "saveFailed": "Failed to save",
    "loadFailed": "Failed to load settings",
    "localUsers": "Local Users",
    "username": "Username",
    "email": "Email",
    "role": "Role",
    "created": "Created",
    "noUsers": "No users found.",
    "addUser": "Add User",
    "viewer": "Viewer",
    "admin": "Admin",
    "userCreated": "User created",
    "userDeleted": "User deleted",
    "createFailed": "Failed to create user",
    "deleteFailed": "Failed to delete user",
    "deleteConfirm": "Are you sure you want to delete this user?",
    "usernameRequired": "Username and password are required",
    "password": "Password"
  },
  "login": {
    "title": "Docker Watcher",
    "subtitle": "Sign in to your account",
    "username": "Username",
    "password": "Password",
    "signIn": "Sign in",
    "signingIn": "Signing in...",
    "or": "or",
    "ssoButton": "Sign in with SSO (OIDC)",
    "loginFailed": "Login failed",
    "networkError": "Network error"
  },
  "proxies": {
    "title": "Proxy Manager",
    "create": "Create Proxy",
    "standalone": "Standalone Proxies",
    "managed": "Managed Proxies",
    "noProxies": "No proxies found",
    "noProxiesDesc": "Create a standalone proxy or deploy a project with proxy enabled.",
    "filter": {
      "search": "Search by domain or destination...",
      "health": "Health",
      "type": "Type",
      "all": "All",
      "clear": "Clear filters"
    },
    "health": {
      "healthy": "Healthy",
      "unhealthy": "Unhealthy",
      "unknown": "Unknown"
    },
    "lastChecked": "Last checked"
  },
  "common": {
    "cancel": "Cancel",
    "confirm": "Confirm",
    "delete": "Delete",
    "edit": "Edit",
    "save": "Save",
    "retry": "Retry",
    "loading": "Loading...",
    "noData": "No data",
    "project": "Project",
    "back": "Back",
    "actions": "Actions",
    "stop": "Stop",
    "start": "Start",
    "restart": "Restart",
    "remove": "Remove",
    "instance": "instance",
    "instances": "instances"
  },
  "instance": {
    "stopConfirm": "This will stop the running container. The instance can be started again later.",
    "restartConfirm": "This will restart the container, causing brief downtime.",
    "removeConfirm": "This will permanently remove the container and its proxy configuration. This cannot be undone.",
    "actionFailed": "Action failed"
  },
  "empty": {
    "noProjects": "No projects yet",
    "noProjectsDesc": "Get started by creating your first project or use Quick Deploy.",
    "createProject": "Create Project",
    "noInstances": "No instances",
    "noInstancesDesc": "Deploy a new version to see instances here.",
    "noDeploys": "No deploy history",
    "noDeploysDesc": "Deploy history will appear here after your first deployment.",
    "noRegistries": "No registries",
    "noRegistriesDesc": "Add a container registry to enable image detection.",
    "noVolumes": "No volumes",
    "noVolumesDesc": "Configure volume mounts for persistent data.",
    "noUsers": "No users",
    "noUsersDesc": "Add local users to manage access."
  },
  "validation": {
    "required": "{field} is required",
    "invalidUrl": "Invalid URL format",
    "invalidDomain": "Invalid domain format",
    "invalidIp": "Invalid IP format",
    "invalidEmail": "Invalid email format",
    "invalidPort": "Port must be between 1 and 65535",
    "invalidPollingInterval": "Polling interval must be between 10 and 86400 seconds",
    "invalidProjectName": "Only lowercase letters, numbers, and hyphens allowed",
    "requiredWhenUpdating": "{field} is required when updating credentials",
    "requiredForNew": "{field} is required for new registries"
  },
  "confirm": {
    "stopInstance": "Stop Instance",
    "startInstance": "Start Instance",
    "restartInstance": "Restart Instance",
    "removeInstance": "Remove Instance"
  },
  "theme": {
    "light": "Light",
    "dark": "Dark",
    "system": "System"
  },
  "entityPicker": {
    "search": "Search...",
    "noResults": "No results found"
  },
  "stale": {
    "title": "Stale Containers",
    "noStale": "No stale containers",
    "noStaleDesc": "All containers are healthy and running.",
    "cleanup": "Clean up",
    "cleanupAll": "Clean up all",
    "confirmCleanup": "This will stop and remove the container. Continue?",
    "confirmBulkCleanup": "This will stop and remove all stale containers. Continue?",
    "daysStale": "days stale",
    "lastAlive": "Last alive",
    "count": "Stale",
    "cleanedUp": "Container cleaned up",
    "bulkCleanedUp": "{count} containers cleaned up",
    "cleanupFailed": "Cleanup failed",
    "loadFailed": "Failed to load stale containers"
  },
  "proxies": {
    "title": "Proxies",
    "create": "Create Proxy",
    "noProxies": "No proxies configured yet.",
    "noProxiesDesc": "Create a standalone proxy or deploy a project to see proxies here.",
    "standalone": "Standalone Proxies",
    "managed": "Managed",
    "lastChecked": "Last checked",
    "health": {
      "healthy": "Healthy",
      "unhealthy": "Unhealthy",
      "unknown": "Unknown"
    },
    "filter": {
      "search": "Search proxies...",
      "health": "Health",
      "type": "Type",
      "all": "All",
      "clear": "Clear filters"
    },
    "form": {
      "title": "Create Proxy",
      "editTitle": "Edit Proxy",
      "destination": "Destination URL / IP",
      "port": "Port",
      "domain": "Domain",
      "domainHelp": "The public domain for this proxy.",
      "validate": "Validate",
      "validating": "Validating...",
      "create": "Create Proxy",
      "save": "Save Changes",
      "cancel": "Cancel",
      "delete": "Delete",
      "deleteConfirm": "Delete this proxy? This cannot be undone."
    },
    "validation": {
      "title": "Destination Validation",
      "syntax": "URL syntax",
      "dns": "DNS resolution",
      "tcp": "TCP connection",
      "http": "HTTP response",
      "checking": "Checking...",
      "skipped": "Skipped"
    }
  },
  "events": {
    "title": "Event Log",
    "noEvents": "No events found",
    "noEventsDesc": "Events will appear here as they occur.",
    "loadMore": "Load more",
    "newEvents": "new events",
    "filter": {
      "severity": "Severity",
      "source": "Source",
      "dateRange": "Date range",
      "search": "Search events...",
      "lastHour": "Last hour",
      "last24h": "Last 24 hours",
      "last7d": "Last 7 days",
      "allTime": "All time",
      "clear": "Clear filters"
    },
    "severity": {
      "info": "Info",
      "warn": "Warning",
      "error": "Error"
    },
    "source": {
      "deploy": "Deploy",
      "container": "Container",
      "proxy": "Proxy",
      "system": "System"
    },
    "metadata": "Details"
  },
  "stats": {
    "cpu": "CPU",
    "mem": "MEM",
    "unavailable": "Stats unavailable"
  },
  "systemHealth": {
    "title": "System Health",
    "containers": "Containers",
    "proxies": "Proxies",
    "recentErrors": "Recent Errors"
  },
  "dns": {
    "title": "DNS Records",
    "description": "View and manage DNS records created by Docker Watcher.",
    "wildcardActive": "Wildcard DNS Mode Active",
    "wildcardActiveDesc": "DNS records are managed externally via wildcard DNS. Disable wildcard DNS in Settings to manage records individually.",
    "refresh": "Refresh",
    "syncNow": "Sync Now",
    "syncing": "Syncing...",
    "syncComplete": "Sync complete: {created} created, {deleted} deleted, {synced} already synced",
    "syncFailed": "DNS sync failed",
    "searchPlaceholder": "Search by FQDN...",
    "allConsumers": "All consumers",
    "managed": "Managed (instances)",
    "standalone": "Standalone proxies",
    "orphaned": "Orphaned",
    "allStatuses": "All statuses",
    "statusSynced": "Synced",
    "statusMissing": "Missing",
    "statusOrphaned": "Orphaned",
    "columnFqdn": "FQDN",
    "columnType": "Type",
    "columnValue": "Value",
    "columnConsumer": "Consumer",
    "columnStatus": "Status",
    "columnActions": "Actions",
    "noConsumer": "No consumer",
    "noRecords": "No DNS records found. Records will appear here when services are deployed.",
    "noMatchingRecords": "No records match the current filters.",
    "deleteRecord": "Delete record",
    "recordDeleted": "DNS record {fqdn} deleted",
    "deleteFailed": "Failed to delete DNS record",
    "loadFailed": "Failed to load DNS records",
    "totalRecords": "Total: {count}",
    "syncedCount": "Synced: {count}",
    "missingCount": "Missing: {count}",
    "orphanedCount": "Orphaned: {count}"
  },
  "language": {
    "en": "English",
    "ru": "Russian"
  }
}
