{
  "common": {
    "buttons": {
      "save": "Save",
      "cancel": "Cancel",
      "close": "Close",
      "delete": "Delete",
      "create": "Create",
      "back": "Back",
      "retry": "Retry",
      "download": "Download",
      "confirm": "Confirm",
      "apply": "Apply",
      "reset": "Reset",
      "add": "Add",
      "edit": "Edit",
      "copy": "Copy",
      "clear": "Clear",
      "search": "Search",
      "select": "Select",
      "grant": "Grant",
      "start": "Start",
      "stop": "Stop",
      "enable": "Enable",
      "disable": "Disable",
      "import": "Import",
      "export": "Export",
      "refresh": "Refresh",
      "loading": "Loading...",
      "saveSettings": "Save Settings",
      "moreInfo": "More info",
      "downloading": "Downloading...",
      "minimize": "Minimize",
      "saving": "Saving…",
      "saved": "Saved",
      "copied": "Copied",
      "learnMore": "Learn more"
    },
    "status": {
      "active": "Active",
      "inactive": "Inactive",
      "running": "Running",
      "stopped": "Stopped",
      "enabled": "Enabled",
      "disabled": "Disabled",
      "granted": "Granted",
      "notGranted": "Not Granted",
      "connected": "Connected",
      "disconnected": "Disconnected",
      "synced": "Synced",
      "syncing": "Syncing",
      "pending": "Pending",
      "error": "Error"
    },
    "labels": {
      "name": "Name",
      "type": "Type",
      "status": "Status",
      "actions": "Actions",
      "description": "Description",
      "none": "None",
      "default": "Default",
      "custom": "Custom",
      "optional": "Optional",
      "required": "Required",
      "unknownProfile": "Unknown",
      "mode": "Mode",
      "never": "Never"
    },
    "time": {
      "days": "days",
      "hours": "hours",
      "minutes": "minutes",
      "seconds": "seconds",
      "remaining": "remaining"
    },
    "aria": {
      "selectAll": "Select all",
      "selectRow": "Select row",
      "selectProfile": "Select profile",
      "copy": "Copy to clipboard",
      "copied": "Copied",
      "showToken": "Show token",
      "hideToken": "Hide token"
    },
    "keys": {
      "escape": "Escape"
    },
    "errors": {
      "unknown": "Unknown error occurred"
    },
    "window": {
      "minimize": "Minimize",
      "maximize": "Maximize",
      "restore": "Restore",
      "close": "Close window"
    },
    "commandPalette": {
      "title": "Command Palette",
      "description": "Search for a command to run..."
    },
    "noResults": "No results found.",
    "srOnly": {
      "copy": "Copy",
      "copied": "Copied"
    },
    "placeholders": {
      "example": "e.g., {{value}}"
    }
  },
  "settings": {
    "title": "Settings",
    "appearance": {
      "title": "Appearance",
      "theme": "Theme",
      "themeDescription": "Choose your preferred theme or follow your system settings. Custom theme changes are applied only when you save.",
      "themePreset": "Theme Preset",
      "customColors": "Custom Colors",
      "selectTheme": "Select theme",
      "selectThemePreset": "Select a theme preset",
      "yourOwn": "Your Own",
      "light": "Light",
      "dark": "Dark",
      "system": "System"
    },
    "language": {
      "title": "Language",
      "description": "Choose your preferred language for the application interface.",
      "systemDefault": "System Default",
      "selectLanguage": "Select language",
      "interface": "Interface Language"
    },
    "defaultBrowser": {
      "title": "Default Browser",
      "setAsDefault": "Set as Default Browser",
      "alreadyDefault": "Already Default Browser",
      "description": "When set as default, Donut Browser will handle web links and allow you to choose which profile to use.",
      "setSuccess": "Donut Browser is now your default browser",
      "setFailed": "Could not set the default browser",
      "finishInSystemSettings": "Finish in Windows Settings",
      "finishInSystemSettingsDescription": "Donut Browser is registered. Windows Settings is open: choose Donut Browser under Web browser to finish."
    },
    "permissions": {
      "title": "System Permissions",
      "loading": "Loading permissions...",
      "description": "These permissions allow browsers launched from Donut Browser to access system resources. Each website will still ask for your permission individually.",
      "microphone": "Microphone",
      "microphoneDescription": "Access to microphone for browser applications",
      "camera": "Camera",
      "cameraDescription": "Access to camera for browser applications",
      "accessRequested": "{{permission}} access requested"
    },
    "integrations": {
      "title": "Integrations",
      "description": "Configure Local API and MCP (Model Context Protocol) for integrating with external tools and AI assistants.",
      "openSettings": "Open Integrations Settings"
    },
    "encryption": {
      "title": "Sync Encryption",
      "description": "Set a password to enable E2E encrypted sync. If you lose this password, encrypted profiles cannot be recovered.",
      "passwordSet": "Active",
      "passwordSetDescription": "E2E encryption password is set",
      "noPassword": "No password set",
      "passwordPlaceholder": "Password (min 8 characters)",
      "confirmPlaceholder": "Confirm password",
      "setPassword": "Set Password",
      "changePassword": "Change Password",
      "removePassword": "Remove Password",
      "removed": "Encryption password removed",
      "passwordSaved": "Encryption password set",
      "passwordMismatch": "Passwords do not match",
      "passwordTooShort": "Password must be at least 8 characters",
      "requiresProOrOwner": "Profile encryption is available for Pro users and team owners.",
      "validatePassword": "Validate",
      "validateDialog": {
        "title": "Validate Encryption Password",
        "description": "Enter your encryption password to verify it matches the one stored on this device.",
        "submit": "Validate",
        "matchToast": "Password is correct",
        "mismatchToast": "Password does not match"
      }
    },
    "commercial": {
      "title": "Commercial License",
      "trialActive": "Trial: {{days}} days, {{hours}} hours remaining",
      "trialActiveDescription": "Commercial use is free during the trial. When it ends, all features keep working — personal use stays free, only commercial use will require a license.",
      "trialExpired": "Trial expired",
      "trialExpiredDescription": "Personal use remains free. Commercial use requires a license.",
      "subscriptionActive": "Subscribed — {{plan}} plan",
      "subscriptionActiveDescription": "Your Donut Browser subscription is active. Commercial use is licensed for the duration of your plan."
    },
    "advanced": {
      "title": "Advanced",
      "clearCache": "Clear All Version Cache",
      "clearCacheDescription": "Clear all cached browser version data and refresh all browser versions from their sources. This will force a fresh download of version information for all browsers.",
      "clearCacheFailed": "Failed to clear cache",
      "copyLogs": "Copy logs",
      "openLogDir": "Open log folder",
      "copyLogsSuccess": "Logs copied to clipboard",
      "copyLogsDescription": "Copies a redacted bundle of recent logs (up to 5 MB). Review it before sharing because redaction cannot identify every kind of personal data."
    },
    "disableAutoUpdates": "Disable App Auto Updates",
    "disableAutoUpdatesDescription": "Prevent the app from automatically checking and installing Donut Browser updates. Browser updates are not affected.",
    "keepDecryptedProfilesInRam": "Keep Decrypted Profiles In RAM",
    "keepDecryptedProfilesInRamDescription": "Preserve the decrypted in-RAM copy of password-protected profiles between launches for faster startup. The on-disk copy stays encrypted regardless.",
    "privacy": {
      "consistencyWarning": "Block on fingerprint mismatch",
      "consistencyWarningDescription": "Stop the browser from starting when a profile's timezone or language doesn't match its proxy exit node. You can still choose to launch.",
      "clearTraffic": "Clear all traffic history",
      "clearTrafficDescription": "Securely erase recorded traffic statistics for every profile.",
      "clearTrafficSuccess": "Traffic history cleared",
      "vpnExtensionWarning": "VPN extension warning",
      "vpnExtensionWarningDescription": "Warn before launching when a profile contains an extension that can reroute the browser's traffic."
    }
  },
  "header": {
    "searchPlaceholder": "Search profiles...",
    "clearSearch": "Clear search",
    "moreActions": "More actions",
    "createProfile": "Create a new profile",
    "menu": {
      "settings": "Settings",
      "proxies": "Proxies & VPNs",
      "groups": "Groups",
      "syncService": "Account",
      "integrations": "Integrations",
      "importProfile": "Import Profile",
      "extensions": "Extensions"
    },
    "newProfile": "New",
    "donutLogo": "Donut Browser logo",
    "scrollGroupsLeft": "Scroll groups left",
    "scrollGroupsRight": "Scroll groups right"
  },
  "search": {
    "helpLabel": "Search syntax",
    "helpTitle": "Search syntax",
    "helpIntro": "Type words to search names, notes, tags and ids. Add fields to narrow it down.",
    "fieldsTitle": "Fields",
    "operatorsTitle": "Operators",
    "examplesTitle": "Examples",
    "fields": {
      "name": "Profile name",
      "tag": "Tag",
      "note": "Note",
      "id": "Profile id, matched from the start",
      "group": "Group name",
      "proxy": "Proxy name",
      "vpn": "VPN name",
      "ext": "Extension group name",
      "dns": "DNS blocklist",
      "os": "Operating system",
      "browser": "Browser",
      "status": "Running or not",
      "sync": "Sync mode",
      "email": "Owner email",
      "version": "Browser version",
      "locked": "Password protected",
      "ephemeral": "Ephemeral profile",
      "created": "Creation date",
      "launched": "Last launch date"
    },
    "operators": {
      "negate": "Excludes what matches",
      "quote": "Holds a value with spaces together",
      "or": "Matches either term",
      "comma": "Shorthand for either value",
      "exact": "Matches the whole value, not a part of it",
      "none": "Nothing set here; use any for the opposite",
      "compare": "Compares dates and versions; 7d, 3w and 6m count back from now"
    },
    "examples": {
      "a": "Running profiles in one group",
      "b": "Untagged profiles that have a proxy",
      "c": "Not launched for over 30 days, ignoring archived ones"
    }
  },
  "profiles": {
    "title": "Profiles",
    "empty": "No profiles yet",
    "emptyDescription": "Create your first browser profile to get started.",
    "createFirst": "Create Profile",
    "noResults": "No profiles found",
    "noResultsDescription": "No profiles match your search criteria.",
    "table": {
      "name": "Name",
      "none": "None",
      "browser": "Browser",
      "status": "Status",
      "actions": "Actions",
      "note": "Note",
      "group": "Group",
      "proxy": "Proxy / VPN",
      "lastLaunch": "Last Launch",
      "empty": "No profiles found.",
      "ext": "EXT",
      "dns": "DNS",
      "dnsLevel": "DNS blocklist: {{level}}",
      "extSearch": "Search groups…",
      "extEmpty": "No extension groups",
      "cantModifyRunning": "Can't modify running profile",
      "cantModifyLaunching": "Can't modify profile while launching",
      "cantModifyStopping": "Can't modify profile while stopping",
      "cantModifyUpdating": "Can't modify profile while browser is updating",
      "emptyTitle": "No profiles yet",
      "emptyHint": "Create your first profile or import existing ones from another browser.",
      "emptyCreate": "Create profile",
      "emptyImport": "Import profiles",
      "emptyFilteredTitle": "No profiles found",
      "emptyFilteredHint": "No profiles match this group or search. Try another filter or create a new one.",
      "bot": "Bot",
      "profileId": "ID"
    },
    "actions": {
      "launch": "Launch",
      "stop": "Stop",
      "edit": "Edit",
      "delete": "Delete",
      "copyCookies": "Copy Cookies",
      "configure": "Configure",
      "clone": "Clone Profile",
      "viewNetwork": "View Network",
      "syncSettings": "Sync Settings",
      "assignToGroup": "Assign to Group",
      "changeFingerprint": "Change Fingerprint",
      "copyCookiesToProfile": "Copy Cookies to Profile",
      "launchHook": "Launch Hook URL",
      "setPassword": "Set Password",
      "changePassword": "Change Password",
      "removePassword": "Remove Password"
    },
    "synchronizer": {
      "launchWithSync": "Launch with Synchronizer",
      "stopLeader": "Stop this profile and all its followers",
      "stopFollower": "Following actions of {{leaderName}}",
      "desyncedTooltip": "Synchronization failed at {{url}}",
      "paidFeature": "Synchronizer is a paid feature",
      "wayfernOnly": "Only Wayfern profiles can be synchronized",
      "selectFollowers": "Select Follower Profiles",
      "selectFollowersDesc": "Choose profiles that will mirror the actions of the leader profile. Only stopped Wayfern profiles can be selected.",
      "leader": "Leader",
      "follower": "Follower",
      "startSession": "Start Sync Session",
      "noFollowers": "Select at least one follower profile",
      "flakyBadge": "FLAKY",
      "flakyTooltip": "This profile has a different screen resolution than the leader. Page layouts may differ, causing clicks and interactions to hit the wrong elements."
    },
    "ephemeral": "Ephemeral",
    "ephemeralDescription": "The browser is forced to write profile data into memory instead of disk. Note that your operating system can swap parts of memory to disk under load, so traces of the session may still be recoverable.",
    "ephemeralBadge": "Ephemeral",
    "bulkDelete": {
      "title": "Delete Selected Profiles",
      "description": "This action cannot be undone. This will permanently delete {{count}} profile(s) and all associated data.",
      "confirmButton": "Delete {{count}} Profile(s)"
    },
    "note": {
      "empty": "No Note",
      "placeholder": "Add a note..."
    },
    "aria": {
      "profileInfo": "Profile info"
    },
    "delete": {
      "title": "Delete Profile",
      "description": "This action cannot be undone. This will permanently delete the profile \"{{profileName}}\" and all its associated data.",
      "confirmButton": "Delete Profile"
    },
    "actionBar": {
      "assignToGroup": "Assign to Group",
      "assignProxy": "Assign Proxy",
      "assignExtensionGroup": "Assign Extension Group",
      "copyCookies": "Copy Cookies",
      "runSelected": "Run selected",
      "stopSelected": "Stop selected",
      "proRequired": "Pro plan required for bulk run/stop"
    },
    "passwordProtectedBadge": "Password Protected",
    "launchHook": {
      "placeholder": "https://example.com/track-launch"
    },
    "bulkRun": {
      "confirmTitle": "Run {{count}} profiles?",
      "confirmDescription": "Launching {{count}} profiles at once can use a lot of system resources. Continue?",
      "confirmButton": "Run {{count}}",
      "noneToRun": "No selected profiles to run."
    },
    "bulkStop": {
      "confirmTitle": "Stop {{count}} profiles?",
      "confirmDescription": "Stop {{count}} running profiles?",
      "confirmButton": "Stop {{count}}",
      "noneToStop": "No selected profiles to stop."
    },
    "sort": {
      "nameAsc": "Name (A–Z)",
      "nameDesc": "Name (Z–A)",
      "newest": "Newest first",
      "oldest": "Oldest first"
    },
    "remote": {
      "runningTooltip": "Running on a remote machine. Stop it to bring the profile back here.",
      "pendingSyncTooltip": "Downloading what the remote session changed. Available again when it finishes."
    }
  },
  "createProfile": {
    "title": "Create New Profile",
    "configureTitle": "Create New {{browser}} Profile",
    "antiDetect": {
      "title": "Anti-Detect Browser",
      "description": "Choose a browser with anti-detection capabilities",
      "chromium": "Wayfern",
      "badge": "Anti-Detect Browser"
    },
    "regular": {
      "title": "Regular Browsers",
      "description": "Choose from supported regular browsers",
      "badge": "Regular Browser"
    },
    "profileName": "Profile Name",
    "profileNamePlaceholder": "Enter profile name",
    "proxy": {
      "title": "Proxy / VPN",
      "addProxy": "Add Proxy",
      "noProxy": "No proxy / VPN",
      "noProxiesAvailable": "No proxies or VPNs available. Add one to route this profile's traffic.",
      "search": "Search proxies or VPNs...",
      "notFound": "No proxies or VPNs found.",
      "searchWithCountries": "Search proxies, VPNs, or countries..."
    },
    "launchHook": {
      "label": "Launch Hook URL",
      "placeholder": "https://example.com/hooks/profile-launch"
    },
    "version": {
      "fetching": "Fetching available versions...",
      "fetchError": "Failed to fetch browser versions. Please check your internet connection and try again.",
      "needsDownload": "{{browser}} version ({{version}}) needs to be downloaded",
      "available": "{{browser}} version ({{version}}) is available",
      "downloading": "Downloading {{browser}} version ({{version}})...",
      "latestNeedsDownload": "Latest version ({{version}}) needs to be downloaded",
      "latestAvailable": "Latest version ({{version}}) is available",
      "latestDownloading": "Downloading version ({{version}})...",
      "upgradeAvailable": "A newer version ({{version}}) of {{browser}} is available."
    },
    "chromiumLabel": "Chromium",
    "chromiumSubtitle": "Powered by Wayfern",
    "platformUnavailable": "{{browser}} is not available on your platform yet.",
    "passwordProtect": {
      "label": "Password protect this profile",
      "description": "Encrypts the on-disk profile data. Required to launch."
    },
    "downloadingSubtitle": "Downloading…",
    "browsersDownloading": "Browsers are still downloading. Profile creation will be available once a download finishes."
  },
  "deleteDialog": {
    "title": "Delete Profile",
    "description": "Are you sure you want to delete this profile? This action cannot be undone.",
    "profilesTitle": "Delete Profiles",
    "profilesDescription": "Are you sure you want to delete the selected profiles? This action cannot be undone.",
    "profilesToDelete": "Profiles to be deleted:"
  },
  "proxies": {
    "title": "Proxies",
    "management": {
      "description": "Manage your proxy and VPN configurations for reuse across profiles",
      "tabProxies": "Proxies",
      "tabVpns": "VPNs",
      "create": "Create",
      "loading": "Loading proxies...",
      "noneCreated": "No proxies created yet. Create your first proxy using the button above.",
      "usage": "Usage",
      "syncCol": "Sync",
      "syncCannotDisable": "Sync cannot be disabled while this proxy is used by synced profiles",
      "enableSync": "Enable sync",
      "disableSync": "Disable sync",
      "editProxy": "Edit proxy",
      "deleteProxy": "Delete proxy",
      "cannotDelete_one": "Cannot delete: in use by {{count}} profile",
      "cannotDelete_other": "Cannot delete: in use by {{count}} profiles",
      "syncEnabled": "Sync enabled",
      "syncDisabled": "Sync disabled",
      "updateSyncFailed": "Failed to update sync",
      "deleteSuccess": "Proxy deleted successfully",
      "deleteFailed": "Failed to delete proxy",
      "deleteTitle": "Delete Proxy",
      "deleteDescription": "This action cannot be undone. This will permanently delete the proxy \"{{name}}\".",
      "newProxy": "New proxy",
      "newVpn": "New VPN",
      "protocolCol": "Protocol",
      "hostPort": "Host : port",
      "title": "Proxies & VPNs"
    },
    "add": "Add Proxy",
    "edit": "Edit Proxy",
    "delete": "Delete Proxy",
    "import": "Import",
    "export": "Export",
    "noProxies": "No proxies configured",
    "noProxiesDescription": "Add a proxy to route browser traffic through it.",
    "form": {
      "name": "Name",
      "namePlaceholder": "Enter proxy name",
      "type": "Type",
      "host": "Host",
      "hostPlaceholder": "proxy.example.com",
      "port": "Port",
      "portPlaceholder": "8080",
      "username": "Username",
      "usernamePlaceholder": "Optional",
      "password": "Password",
      "passwordPlaceholder": "Optional",
      "cipher": "Cipher",
      "cipherPlaceholder": "aes-256-gcm",
      "nameRequired": "Proxy name is required",
      "hostPortRequired": "Host and port are required",
      "ssCipherRequired": "Cipher and password are required for Shadowsocks",
      "selectType": "Select proxy type",
      "saveFailed": "Failed to save proxy: {{error}}",
      "vlessType": "VLESS",
      "vlessUri": "VLESS URI",
      "vlessUriPlaceholder": "vless://…",
      "vlessUriHint": "Requires XTLS Vision and REALITY.",
      "vlessUriRequired": "Enter a VLESS URI.",
      "vlessUriInvalid": "Enter a valid VLESS URI with a host and port."
    },
    "types": {
      "http": "HTTP",
      "https": "HTTPS",
      "socks4": "SOCKS4",
      "socks5": "SOCKS5",
      "ss": "Shadowsocks"
    },
    "tabs": {
      "regular": "Regular",
      "dynamic": "Dynamic"
    },
    "dynamic": {
      "description": "Dynamic proxy fetches connection details from a URL each time a profile is launched.",
      "url": "Proxy URL",
      "urlPlaceholder": "https://api.example.com/proxy",
      "urlRequired": "Dynamic proxy URL is required",
      "format": "Response Format",
      "formatJson": "JSON",
      "formatText": "Text",
      "formatJsonHint": "Expects JSON: {\"ip\": \"...\", \"port\": ..., \"username\": \"...\", \"password\": \"...\"}",
      "formatTextHint": "Expects text like: host:port:username:password or protocol://user:pass@host:port",
      "testUrl": "Test URL",
      "testing": "Testing...",
      "testSuccess": "Proxy working: {{host}}:{{port}}",
      "testFailed": "Proxy test failed: {{error}}",
      "fetchFailed": "Failed to fetch dynamic proxy: {{error}}"
    },
    "check": {
      "checking": "Checking proxy...",
      "valid": "Proxy is valid",
      "invalid": "Proxy is invalid",
      "lastChecked": "Last checked: {{time}}"
    },
    "sync": {
      "enabled": "Sync Enabled",
      "disabled": "Sync Disabled"
    },
    "exportDialog": {
      "title": "Export Proxies",
      "description": "Export your proxy configurations to a file",
      "format": "Export Format",
      "json": "JSON",
      "txt": "TXT (URL format)",
      "preview": "Preview",
      "noProxies": "No proxies to export",
      "downloaded": "Downloaded {{filename}}",
      "failed": "Failed to export proxies",
      "copied": "Copied"
    },
    "importDialog": {
      "title": "Import Proxies",
      "descDropzone": "Import proxies from a JSON or TXT file",
      "descPreview": "Review the proxies to import",
      "descAmbiguous": "Some proxies have ambiguous formats. Please select the correct format.",
      "descResult": "Import completed",
      "dropzonePrompt": "Drop a proxy config file",
      "dropzoneFormats": "(.json, .txt)",
      "pasteHint": "Paste from clipboard with {{modKey}}+V",
      "wrongFileType": "Please drop a .json or .txt file",
      "fileReadError": "Failed to read file",
      "fileProcessError": "Failed to process file",
      "noValidProxies": "No valid proxies found in the file",
      "namePrefix": "Name Prefix",
      "namePrefixDefault": "Imported",
      "namePrefixHint": "Proxies will be named \"{{prefix}} Proxy 1\", \"{{prefix}} Proxy 2\", etc.",
      "proxiesToImport": "Proxies to import ({{count}})",
      "invalidCount": "({{count}} invalid)",
      "ambiguousIntro": "The following proxies have an ambiguous format. Please select the correct interpretation for each.",
      "imported": "Imported:",
      "skippedDuplicates": "Skipped (duplicates):",
      "errors": "Errors",
      "importButton": "Import {{count}} Proxies",
      "continueButton": "Continue",
      "doneButton": "Done",
      "failed": "Failed to import proxies"
    },
    "bulkDelete": {
      "proxiesTitle": "Delete Selected Proxies",
      "proxiesDescription": "This action cannot be undone. This will permanently delete {{count}} proxy(s): {{names}}.",
      "vpnsTitle": "Delete Selected VPNs",
      "vpnsDescription": "This action cannot be undone. This will permanently delete {{count}} VPN(s): {{names}}.",
      "confirmButton": "Delete {{count}}"
    }
  },
  "groups": {
    "title": "Groups",
    "management": "Group Management",
    "add": "Add Group",
    "edit": "Edit Group",
    "delete": "Delete Group",
    "moveToDefault": "Remove profiles from group",
    "noGroupDescription": "Profiles without a group appear in the \"All\" filter.",
    "assignSuccess": "Successfully assigned {{count}} profile(s) to {{group}}",
    "noGroups": "No groups created",
    "noGroupsDescription": "Create a group to organize your profiles.",
    "form": {
      "name": "Name",
      "namePlaceholder": "Enter group name"
    },
    "profileCount": "{{count}} profile",
    "profileCount_plural": "{{count}} profiles",
    "assignProfiles": "Assign Profiles",
    "sync": {
      "enabled": "Sync Enabled",
      "disabled": "Sync Disabled"
    },
    "createTitle": "Create New Group",
    "createDescription": "Create a new group to organize your browser profiles.",
    "editTitle": "Edit Group",
    "editDescription": "Update the name of your group.",
    "createSuccess": "Group created successfully",
    "createFailed": "Failed to create group",
    "updateSuccess": "Group updated successfully",
    "updateFailed": "Failed to update group",
    "deleteTitle": "Delete Group",
    "deleteDescription": "This action cannot be undone. This will permanently delete the group.",
    "deleteSuccess": "Group deleted successfully",
    "deleteFailed": "Failed to delete group",
    "loadingProfiles": "Loading associated profiles...",
    "associatedProfiles": "Associated Profiles ({{count}})",
    "whatToDoWithProfiles": "What should happen to these profiles?",
    "deleteAlongWithGroup": "Delete profiles along with the group",
    "noAssociatedProfiles": "This group has no associated profiles.",
    "deleteGroup": "Delete Group",
    "deleteGroupAndProfiles": "Delete Group & Profiles",
    "loadProfilesFailed": "Failed to load profiles",
    "unknownGroup": "Unknown Group",
    "profileGroupsAriaLabel": "Profile groups",
    "loading": "Loading groups...",
    "all": "All",
    "noGroup": "No group",
    "pageTitle": "Profile groups",
    "pageDescription": "Profile groups let you organize browsers by client, environment, or use case. Sync groups across devices to share them."
  },
  "sync": {
    "mode": {
      "title": "Profile Sync",
      "description": "Manage sync settings for \"{{name}}\"",
      "disabled": "Disabled",
      "regular": "Regular Sync",
      "encrypted": "E2E Encrypted Sync",
      "disabledDescription": "No sync for this profile",
      "regularDescription": "Fast sync, unencrypted",
      "encryptedDescription": "Encrypted before upload. Server never sees plaintext data.",
      "noPasswordWarning": "E2E password not set. Please set a password in Settings.",
      "passwordRequired": "E2E password not set. Please set a password in Settings first.",
      "enabledToast": "Sync enabled",
      "disabledToast": "Sync disabled",
      "syncQueued": "Sync queued",
      "syncNow": "Sync Now",
      "lastSynced": "Last Synced",
      "notConfigured": "Sync service not configured.",
      "configureService": "Configure Sync Service"
    },
    "title": "Account",
    "config": {
      "serverUrlRequired": "Please enter a server URL",
      "connectionSuccess": "Connection successful!",
      "serverError": "Server responded with an error",
      "connectFailed": "Failed to connect to server",
      "storageEndpoint": "Storage: {{endpoint}}",
      "storageUnreachableStatus": "Storage unreachable",
      "storageUnreachable": "The server is reachable, but its storage address {{endpoint}} cannot be reached from this device. File transfers will fail. If you self-host, set S3_PUBLIC_ENDPOINT to an address this device can reach.",
      "settingsSaved": "Sync settings saved",
      "saveFailed": "Failed to save settings",
      "disconnected": "Sync disconnected",
      "disconnectFailed": "Failed to disconnect"
    },
    "serverUrl": "Server URL",
    "serverUrlPlaceholder": "https://sync.example.com",
    "token": "Sync Token",
    "tokenPlaceholder": "Enter your sync token",
    "status": {
      "connected": "Connected",
      "disconnected": "Disconnected",
      "syncing": "Syncing...",
      "error": "Sync Error"
    },
    "description": "Connect to a sync server to synchronize your profiles, proxies, and groups across devices.",
    "cloud": {
      "tabLabel": "Cloud",
      "selfHostedTabLabel": "Self-Hosted",
      "email": "Email",
      "deviceLinkInstructions": "Click \"Login\" to open the login page in your browser. Once signed in there, copy the code shown and paste it below.",
      "openLogin": "Login",
      "linkCodeLabel": "Login code",
      "linkCodePlaceholder": "Paste the code from the website",
      "signInTitle": "Sign in",
      "verifyAndLogin": "Verify & Log In",
      "loggingIn": "Logging in...",
      "connected": "Connected",
      "plan": "Plan",
      "profiles": "Profiles",
      "profileUsage": "{{used}} / {{limit}}",
      "manageAccount": "Manage Account",
      "logout": "Log Out",
      "logoutConfirm": "Are you sure you want to log out? Cloud sync will stop.",
      "loginSuccess": "Successfully logged in!",
      "logoutSuccess": "Successfully logged out."
    },
    "team": {
      "title": "Team",
      "name": "Team Name",
      "role": "Role",
      "roleOwner": "Owner",
      "roleAdmin": "Admin",
      "roleMember": "Member",
      "manageOnWeb": "Manage team on the web dashboard",
      "profileLocked": "In use by {{email}}",
      "profileLockedShort": "In use",
      "cannotLaunchLocked": "Cannot launch — profile is in use by {{email}}",
      "createdBy": "Created by {{email}}"
    },
    "disabled": "Disabled",
    "toast": {
      "profileSynced": "Profile '{{name}}' synced successfully",
      "profileSyncFailed": "Failed to sync profile '{{name}}'",
      "profileSyncFailedWithError": "Failed to sync profile '{{name}}': {{error}}"
    },
    "enabledToast": "Sync enabled",
    "disabledToast": "Sync disabled",
    "enabledDescription": "Profile sync has been enabled",
    "disabledDescription": "Profile sync has been disabled"
  },
  "integrations": {
    "title": "Integrations",
    "api": {
      "title": "Local API",
      "description": "Enable the local API server for external integrations.",
      "enabled": "API Enabled",
      "disabled": "API Disabled",
      "port": "Port",
      "token": "API Token",
      "copyToken": "Copy Token",
      "regenerateToken": "Regenerate Token"
    },
    "mcp": {
      "title": "MCP Server",
      "description": "Enable the MCP (Model Context Protocol) server for AI assistant integrations.",
      "enabled": "MCP Enabled",
      "disabled": "MCP Disabled",
      "port": "Port",
      "token": "Authentication Token",
      "tokenCopied": "Token copied",
      "url": "MCP Server URL",
      "urlCopied": "URL copied",
      "config": "MCP Configuration",
      "copyConfig": "Copy Configuration",
      "clientsLabel": "Clients",
      "connected": "Connected",
      "add": "Add",
      "addedToClient": "Added to {{name}}",
      "removedFromClient": "Removed from {{name}}",
      "removeAriaLabel": "Remove from {{name}}",
      "category": {
        "desktopApp": "Desktop app",
        "cli": "CLI",
        "editor": "Editor",
        "editorExt": "Editor ext"
      }
    },
    "tabApi": "Local API",
    "tabMcp": "MCP (AI Assistants)",
    "apiEnableLabel": "Enable Local API Server",
    "apiEnableDescription": "Allow managing profiles, groups, and proxies via REST API.",
    "apiPortLabel": "Port",
    "apiTokenLabel": "Authentication Token",
    "apiTokenHint": "Include in Authorization header: Bearer {{tokenSlot}}",
    "apiInvalidPort": "Invalid port",
    "apiInvalidPortDescription": "Port must be between 1 and 65535",
    "apiPortInUse": "Port {{port}} is already in use",
    "apiFallbackPort": "Server started on fallback port {{port}}",
    "apiStarted": "API server started on port {{port}}",
    "apiRunning": "API server running on port {{port}}",
    "apiStopped": "API server stopped",
    "apiToggleFailed": "Failed to toggle API server",
    "apiStartFailed": "Failed to start API server",
    "apiUnknownError": "Unknown error",
    "tokenCopied": "Token copied",
    "mcpEnableLabel": "Enable MCP Server (Model Context Protocol)",
    "mcpEnableDescription": "Allow AI assistants like Claude Desktop to control browsers.",
    "mcpAcceptTermsFirst": "(Accept Wayfern terms in Settings first)",
    "mcpStarted": "MCP server started on port {{port}}",
    "mcpStopped": "MCP server stopped",
    "mcpToggleFailed": "Failed to toggle MCP server",
    "openSettings": "Open Integrations Settings",
    "apiRunningOn": "Running on",
    "apiExampleRequest": "Example request"
  },
  "import": {
    "title": "Import Profile",
    "description": "Import an existing browser profile from your system.",
    "selectProfile": "Select a profile to import",
    "noProfiles": "No profiles detected",
    "noProfilesDescription": "No browser profiles were detected on your system.",
    "importing": "Importing profile...",
    "success": "Profile imported successfully",
    "error": "Failed to import profile"
  },
  "config": {
    "wayfern": {
      "title": "Wayfern Configuration",
      "fingerprint": {
        "title": "Fingerprint",
        "randomize": "Randomize on Launch",
        "randomizeDescription": "Generate a new fingerprint each time the browser is launched.",
        "platformPlaceholder": "e.g., Win32, MacIntel, Linux x86_64",
        "timezoneOffsetPlaceholder": "e.g., 300 for EST (UTC-5)",
        "webglRendererPlaceholder": "e.g., Intel(R) HD Graphics"
      },
      "os": {
        "title": "Operating System",
        "description": "The operating system to emulate for fingerprint generation.",
        "windows": "Windows",
        "macos": "macOS",
        "linux": "Linux",
        "android": "Android",
        "ios": "iOS"
      },
      "screen": {
        "title": "Screen Size",
        "minWidth": "Min Width",
        "maxWidth": "Max Width",
        "minHeight": "Min Height",
        "maxHeight": "Max Height"
      },
      "blocking": {
        "title": "Blocking",
        "webrtc": "Block WebRTC",
        "webgl": "Block WebGL"
      }
    },
    "shared": {
      "browserBehavior": "Browser Behavior",
      "allowAddonsOpenTabs": "Allow browser addons to open new tabs automatically"
    }
  },
  "cookies": {
    "title": "Cookies",
    "copy": {
      "title": "Copy Cookies",
      "description": "Select cookies to copy to other profiles.",
      "selectSource": "Select Source Profile",
      "selectTarget": "Select Target Profiles",
      "selectCookies": "Select Cookies",
      "allDomains": "All Domains",
      "selectedCount": "{{count}} cookie selected",
      "selectedCount_plural": "{{count}} cookies selected",
      "dialogDescription_one": "Copy cookies from a source profile to {{count}} selected profile.",
      "dialogDescription_other": "Copy cookies from a source profile to {{count}} selected profiles.",
      "sourceProfile": "Source Profile",
      "sourcePlaceholder": "Select a profile to copy cookies from",
      "running": "(running)",
      "targetProfiles": "Target Profiles ({{count}})",
      "noOtherTargets": "No other Wayfern profiles selected",
      "selectSourceFirst": "Select a source profile first",
      "selectionStatus": "({{selected}} of {{total}} selected)",
      "searchPlaceholder": "Search domains or cookies...",
      "noMatching": "No matching cookies found",
      "noFound": "No cookies found",
      "replaceNote": "Existing cookies with the same name and domain will be replaced. Other cookies will be kept.",
      "cannotCopyRunningOne": "Cannot copy cookies: {{names}} is still running",
      "cannotCopyRunningMany": "Cannot copy cookies: {{names}} are still running",
      "someErrors": "Some errors occurred: {{errors}}",
      "successMessage": "Successfully copied {{copied}} cookies ({{replaced}} replaced)",
      "failedMessage": "Failed to copy cookies: {{error}}",
      "copyButton_one": "Copy {{count}} Cookie",
      "copyButton_other": "Copy {{count}} Cookies",
      "copyButtonEmpty": "Copy Cookies"
    },
    "success": "Cookies copied successfully",
    "error": "Failed to copy cookies",
    "management": {
      "title": "Cookie Management",
      "menuItem": "Cookie Management",
      "tabImport": "Import",
      "tabExport": "Export",
      "importDescription": "Paste cookies copied from another browser or tool, or choose a file.",
      "fileReadError": "Failed to read file",
      "loadFailed": "Failed to load cookies: {{error}}",
      "cookiesLabel": "Cookies",
      "selectionStatus": "({{selected}} of {{total}} selected)",
      "selectAll": "Select all",
      "deselectAll": "Deselect all",
      "noCookies": "No cookies found in this profile",
      "doneButton": "Done",
      "exportButton": "Export"
    },
    "import": {
      "title": "Import Cookies",
      "description": "Import cookies from a Netscape or JSON format file.",
      "selectFile": "Choose File",
      "preview": "{{count}} cookies found",
      "success": "Successfully imported {{imported}} cookies ({{replaced}} replaced)",
      "error": "Failed to import cookies",
      "proFeature": "Cookie import is a Pro feature"
    },
    "export": {
      "title": "Export Cookies",
      "description": "Export cookies from this profile.",
      "formatLabel": "Format",
      "netscape": "Netscape TXT",
      "json": "JSON",
      "success": "Cookies exported successfully",
      "error": "Failed to export cookies"
    },
    "paste": {
      "label": "Cookies",
      "placeholder": "Paste cookies here. JSON (an array or a {cookies: [...]} object), a Netscape cookies.txt, or name=value; name2=value2",
      "chooseFile": "or choose a file",
      "analyzing": "Checking…",
      "formatJson": "JSON",
      "formatNetscape": "Netscape",
      "formatNameValue": "Name=Value",
      "formatUnknown": "Format not recognised",
      "siteLabel": "Site",
      "sitePlaceholder": "example.com or https://example.com",
      "siteHelp": "A name=value list carries no domain of its own, so name the site these cookies belong to.",
      "scopeSubdomains": "{{domain}}: this domain and all of its subdomains",
      "scopeHostOnly": "{{domain}}: this exact host only, no subdomains",
      "modeMerge": "Merge",
      "modeMergeDesc": "Update the stored cookies that a pasted one matches, add the rest, and delete nothing.",
      "modeReplace": "Replace matching sites",
      "modeReplaceDesc": "Delete this profile's stored cookies for the sites named in this paste, in both their dotted and undotted form, then write the paste. Cookies for every other site are kept.",
      "replaceDeleteCount": "Stored cookies this would delete: {{n}}",
      "unknownCount": "unknown",
      "includeExpired": "Also import cookies that have already expired",
      "expiredNote": "Already expired in this paste: {{n}}",
      "clearsOnCloseWarning": "This profile erases its browsing data when the browser closes, so these cookies will be deleted at the end of the next session.",
      "previewTitle": "Cookies to import: {{n}}",
      "colSite": "Site",
      "colName": "Name",
      "colPath": "Path",
      "colExpires": "Expires",
      "colSecure": "Secure",
      "colHttpOnly": "HttpOnly",
      "colSameSite": "SameSite",
      "session": "Session",
      "yes": "Yes",
      "no": "No",
      "sameSiteUnspecified": "Unspecified",
      "sameSiteNone": "None",
      "sameSiteLax": "Lax",
      "sameSiteStrict": "Strict",
      "issuesTitle": "Issues",
      "showAll": "Show all {{n}}",
      "showFewer": "Show fewer",
      "sourceLine": "Line {{n}}",
      "sourceCookie": "Cookie {{n}}",
      "disabledEmpty": "Paste cookies above to import them.",
      "disabledSite": "Name the site these cookies belong to.",
      "disabledNoCookies": "No cookies could be read from this paste.",
      "resultAdded": "Added",
      "resultOverwritten": "Overwritten",
      "resultDeleted": "Deleted",
      "resultSkipped": "Skipped",
      "issues": {
        "emptyInput": "Nothing has been pasted yet.",
        "siteInvalid": "\"{{site}}\" is not a usable site and was ignored.",
        "unrecognizedFormat": "This is not JSON, a Netscape cookies.txt, or a name=value list.",
        "siteRequired": "A name=value list carries no domain. Name the site these cookies belong to.",
        "noCookiesFound": "No cookies could be read from this paste.",
        "nameEmpty": "The cookie name is empty.",
        "nameInvalid": "\"{{name}}\" is not a usable cookie name.",
        "nameMissing": "This entry has no name.",
        "valueInvalid": "The value of \"{{name}}\" holds characters a cookie cannot carry.",
        "valueCoerced": "The value of \"{{name}}\" was not text, so it was converted to text.",
        "domainFromSite": "\"{{name}}\" carried no domain and was attached to {{domain}}.",
        "domainMissing": "\"{{name}}\" carries no domain and no site was given.",
        "domainInvalid": "\"{{name}}\" names a domain that cannot be used: {{domain}}.",
        "domainAttributeIgnored": "The Domain={{domain}} attribute was ignored in favour of the site you named, {{site}}.",
        "hostOnlyMismatch": "\"{{name}}\" says hostOnly={{hostOnly}} but its domain was {{domain}}. The flag was applied.",
        "pathRepaired": "The path of \"{{name}}\" was repaired from {{path}}.",
        "expiryMilliseconds": "The expiry of \"{{name}}\" ({{expires}}) was in milliseconds and was converted to seconds.",
        "expiryClamped": "An expiry was too far in the future to be real and was clamped to the maximum.",
        "expiryInvalid": "{{field}} is not a usable timestamp: {{value}}.",
        "expiresInvalid": "Expires is not a date that can be read: {{value}}.",
        "maxAgeInvalid": "Max-Age is not a number: {{value}}.",
        "maxAgeDeletion": "The Max-Age on \"{{name}}\" deletes it immediately.",
        "sameSiteNoneInsecure": "\"{{name}}\" on {{domain}} is SameSite=None but not Secure, so the browser will refuse to send it.",
        "sameSiteUnrecognized": "SameSite \"{{value}}\" was not recognised and was left unspecified.",
        "duplicateCookie": "\"{{name}}\" for {{domain}}{{path}} appears again later in the paste. The later copy wins.",
        "boolCoercedFromString": "{{field}} was the text \"{{value}}\" instead of true or false, and was read as a boolean.",
        "boolInvalid": "{{field}} is neither true nor false: {{value}}.",
        "quotedValue": "The quotes around the value of \"{{name}}\" were removed.",
        "jsonParseFailed": "The JSON could not be read: {{message}}",
        "jsonNotCookieList": "The JSON is neither an array of cookies nor an object holding a cookies array.",
        "jsonEntryNotObject": "This entry is not a JSON object.",
        "netscapePathOmitted": "This line has no path column, so / was used.",
        "netscapeFieldCount": "This line has {{actual}} columns; a Netscape cookie line has {{expected}}.",
        "netscapeIncludeSubdomainsInvalid": "The include-subdomains column is neither TRUE nor FALSE: {{value}}.",
        "netscapeSecureInvalid": "The secure column is neither TRUE nor FALSE: {{value}}.",
        "netscapeExpiryInvalid": "The expiry column is not a number: {{value}}. The line was dropped rather than turned into a live cookie.",
        "nameValueNoPair": "This part has no name=value pair and was ignored.",
        "pairTreatedAsAttribute": "\"{{name}}\" was read as a Set-Cookie attribute rather than a cookie, and its value was discarded.",
        "unknown": "{{code}}"
      }
    }
  },
  "toasts": {
    "success": {
      "profileCreated": "Profile created successfully",
      "profileDeleted": "Profile deleted successfully",
      "profileUpdated": "Profile updated successfully",
      "profileLaunched": "Profile launched successfully",
      "proxyCreated": "Proxy created successfully",
      "proxyDeleted": "Proxy deleted successfully",
      "proxyUpdated": "Proxy updated successfully",
      "groupCreated": "Group created successfully",
      "groupDeleted": "Group deleted successfully",
      "groupUpdated": "Group updated successfully",
      "settingsSaved": "Settings saved successfully",
      "copied": "Copied to clipboard",
      "permissionRequested": "{{permission}} access requested",
      "downloadComplete": "{{browser}} {{version}} downloaded successfully!",
      "importSuccess": "Successfully imported {{count}} items",
      "exportSuccess": "Successfully exported {{count}} items",
      "syncSuccess": "Sync completed successfully",
      "profileSynced": "Profile '{{name}}' synced successfully",
      "cacheCleared": "Cache cleared successfully"
    },
    "error": {
      "profileCreateFailed": "Failed to create profile",
      "profileDeleteFailed": "Failed to delete profile",
      "profileUpdateFailed": "Failed to update profile",
      "profileLaunchFailed": "Failed to launch profile",
      "proxyCreateFailed": "Failed to create proxy",
      "proxyDeleteFailed": "Failed to delete proxy",
      "proxyUpdateFailed": "Failed to update proxy",
      "groupCreateFailed": "Failed to create group",
      "groupDeleteFailed": "Failed to delete group",
      "groupUpdateFailed": "Failed to update group",
      "settingsSaveFailed": "Failed to save settings",
      "copyFailed": "Failed to copy to clipboard",
      "downloadFailed": "Failed to download {{browser}}",
      "importFailed": "Failed to import",
      "exportFailed": "Failed to export",
      "syncFailed": "Sync failed",
      "profileSyncFailed": "Failed to sync profile '{{name}}'",
      "cacheClearFailed": "Failed to clear cache",
      "unknown": "An unknown error occurred"
    },
    "loading": {
      "downloading": "Downloading {{browser}} {{version}}",
      "extracting": "Extracting {{browser}} {{version}}",
      "verifying": "Verifying {{browser}} {{version}}",
      "syncing": "Syncing...",
      "syncingProfile": "Syncing profile '{{name}}'...",
      "syncingProfileWithProgress": "{{count}} files ({{size}})",
      "updatingVersions": "Updating browser versions..."
    },
    "progress": {
      "remaining": "{{time}} remaining",
      "filesProgress": "{{completed}}/{{total}} files",
      "filesFailed": "{{count}} file(s) failed"
    }
  },
  "errors": {
    "required": "This field is required",
    "invalidUrl": "Please enter a valid URL",
    "invalidPort": "Please enter a valid port number (1-65535)",
    "invalidEmail": "Please enter a valid email address",
    "minLength": "Must be at least {{min}} characters",
    "maxLength": "Must be at most {{max}} characters",
    "networkError": "Network error. Please check your connection.",
    "serverError": "Server error. Please try again later.",
    "unknownError": "An unknown error occurred. Please try again.",
    "noProfilesForUrl": "No profiles available. Please create a profile first before opening URLs.",
    "updateWayfernConfigFailed": "Failed to update wayfern config: {{error}}",
    "createProfileFailed": "Failed to create profile: {{error}}",
    "launchBrowserFailed": "Failed to launch browser: {{error}}",
    "cannotDeleteRunningProfile": "Cannot delete profile while browser is running. Please stop the browser first.",
    "deleteProfileFailed": "Failed to delete profile: {{error}}",
    "renameProfileFailed": "Failed to rename profile: {{error}}",
    "killBrowserFailed": "Failed to kill browser: {{error}}",
    "deleteSelectedProfilesFailed": "Failed to delete selected profiles: {{error}}",
    "cookieCopyUnsupportedBrowser": "Cookie copy only works with Wayfern profiles",
    "updateSyncSettingsFailed": "Failed to update sync settings",
    "cloneProfileFailed": "Failed to clone profile: {{error}}",
    "loadSupportedBrowsersFailed": "Failed to load supported browsers",
    "setupExtensionListenersFailed": "Failed to setup extension event listeners: {{error}}",
    "loadGroupsFailed": "Failed to load groups: {{error}}",
    "setupGroupListenersFailed": "Failed to setup group event listeners: {{error}}",
    "loadProfilesFailed": "Failed to load profiles: {{error}}",
    "setupProfileListenersFailed": "Failed to setup profile event listeners: {{error}}",
    "loadProxiesFailed": "Failed to load proxies: {{error}}",
    "setupProxyListenersFailed": "Failed to setup proxy event listeners: {{error}}",
    "loadVpnConfigsFailed": "Failed to load VPN configs: {{error}}",
    "setupVpnListenersFailed": "Failed to setup VPN event listeners: {{error}}",
    "themeNotFound": "Tokyo Night theme not found",
    "setProfilePasswordFailed": "Failed to set profile password: {{error}}"
  },
  "browser": {
    "wayfern": "Wayfern"
  },
  "fingerprint": {
    "crossOsWarning": "Spoofing fingerprint for a different operating system is less reliable because it is impossible to perfectly mimic all underlying components. Use with caution.",
    "crossOsLimitations": "Cross-OS fingerprinting has limitations. System-level APIs may still reflect your actual operating system, and some features may have degraded performance.",
    "osLabel": "Operating System Fingerprint",
    "selectOSPlaceholder": "Select operating system",
    "generateRandomOnLaunch": "Generate random fingerprint on every launch",
    "generateRandomDescription": "When enabled, a new fingerprint will be generated each time the browser is launched.",
    "generateRandomDescriptionAuto": "When enabled, a new fingerprint will be generated each time the browser is launched. The generated fingerprint is saved for reference.",
    "autoLocationDescription": "Automatically configure location information based on proxy configuration or your connection if no proxy provided",
    "editingDisabledRunning": "Fingerprint editing is disabled because the profile is currently running. Stop the profile to make changes.",
    "editingDisabledRandomized": "Fingerprint editing is disabled because random fingerprint generation is enabled. Disable the option above to manually edit the fingerprint configuration.",
    "derivedFromIdentity": "Derived from this profile's identity and not editable.",
    "advancedWarning": "Warning: Only edit these parameters if you know what you're doing. Incorrect values may break websites, make them detect you, and lead to hard-to-debug bugs.",
    "basicWarning": "Warning: Only edit these parameters if you know what you're doing.",
    "automatic": "Automatic",
    "manual": "Manual",
    "blockingOptions": "Blocking Options",
    "blockImages": "Block Images",
    "blockWebRTC": "Block WebRTC",
    "blockWebGL": "Block WebGL",
    "navigatorProperties": "Navigator Properties",
    "userAgent": "User Agent",
    "userAgentAndPlatform": "User Agent & Platform",
    "platform": "Platform",
    "platformVersion": "Platform Version",
    "appVersion": "App Version",
    "osCpu": "OS CPU",
    "hardwareConcurrency": "Hardware Concurrency",
    "maxTouchPoints": "Max Touch Points",
    "doNotTrack": "Do Not Track",
    "selectDntPlaceholder": "Select DNT value",
    "dntAllowed": "0 (tracking allowed)",
    "dntNotAllowed": "1 (tracking not allowed)",
    "dntUnspecified": "unspecified",
    "language": "Language",
    "primaryLanguage": "Primary Language (navigator.language)",
    "languages": "Languages (JSON array)",
    "languageAndLocale": "Language & Locale",
    "screenProperties": "Screen Properties",
    "screenWidth": "Screen Width",
    "screenHeight": "Screen Height",
    "availableWidth": "Available Width",
    "availableHeight": "Available Height",
    "colorDepth": "Color Depth",
    "pixelDepth": "Pixel Depth",
    "devicePixelRatio": "Device Pixel Ratio",
    "windowProperties": "Window Properties",
    "outerWidth": "Outer Width",
    "outerHeight": "Outer Height",
    "innerWidth": "Inner Width",
    "innerHeight": "Inner Height",
    "screenX": "Screen X",
    "screenY": "Screen Y",
    "geolocation": "Geolocation",
    "timezoneAndGeolocation": "Timezone & Geolocation",
    "timezoneGeolocationDescription": "These values override the browser's timezone and geolocation APIs.",
    "latitude": "Latitude",
    "longitude": "Longitude",
    "timezone": "Timezone",
    "timezoneIana": "Timezone (IANA)",
    "timezoneOffset": "Offset (minutes from UTC)",
    "accuracy": "Accuracy (meters)",
    "locale": "Locale",
    "region": "Region",
    "script": "Script",
    "webglProperties": "WebGL Properties",
    "webglVendor": "WebGL Vendor",
    "webglRenderer": "WebGL Renderer",
    "webglParameters": "WebGL Parameters",
    "webglParametersJson": "WebGL Parameters (JSON)",
    "webgl2Parameters": "WebGL2 Parameters",
    "webglShaderPrecisionFormats": "WebGL Shader Precision Formats",
    "webgl2ShaderPrecisionFormats": "WebGL2 Shader Precision Formats",
    "canvasFingerprint": "Canvas Fingerprint",
    "canvasNoiseSeed": "Canvas Noise Seed",
    "canvasNoiseSeedDescription": "This seed is used to generate a consistent but unique canvas fingerprint. Each profile should have a different seed.",
    "fonts": "Fonts",
    "fontsJson": "Fonts (JSON array)",
    "battery": "Battery",
    "charging": "Charging",
    "chargingTime": "Charging Time",
    "dischargingTime": "Discharging Time",
    "batteryLevel": "Level (0-1)",
    "screenResolution": "Screen Resolution",
    "maxWidth": "Max Width",
    "maxHeight": "Max Height",
    "minWidth": "Min Width",
    "minHeight": "Min Height",
    "hardwareProperties": "Hardware Properties",
    "deviceMemory": "Device Memory (GB)",
    "audioProperties": "Audio Properties",
    "sampleRate": "Sample Rate",
    "maxChannelCount": "Max Channel Count",
    "vendorInfo": "Vendor Info",
    "vendor": "Vendor",
    "vendorSub": "Vendor Sub",
    "productSub": "Product Sub",
    "brand": "Brand",
    "brandVersion": "Brand Version",
    "proFeature": "This is a Pro feature",
    "generateFingerprint": "Generate Fingerprint",
    "regenerateFingerprint": "Regenerate Fingerprint",
    "regenerateConfirmTitle": "Regenerate this fingerprint?",
    "regenerateConfirmDescription": "The profile keeps its cookies and logins but will present a different device. Sites that already know this profile can ask you to sign in again, challenge you, or block the account. Only regenerate a profile you have not used yet, or one you are willing to lose. This cannot be undone.",
    "canvasNoiseSeedPlaceholder": "Enter a seed string for canvas fingerprint",
    "addFontsPlaceholder": "Add fonts...",
    "enterAsJson": "Enter {{title}} as JSON"
  },
  "warnings": {
    "windowResizeTitle": "Custom Window Dimensions",
    "windowResizeDescription": "Changing browser window dimensions may increase the chance of website detection that browser information is spoofed.",
    "dontShowAgain": "Don't show this again",
    "continue": "Continue",
    "cancel": "Cancel"
  },
  "syncAll": {
    "title": "Enable Sync for Existing Items",
    "description": "You have items that are not being synced. Would you like to enable sync for all of them?",
    "enableAll": "Enable All",
    "skip": "Skip",
    "success": "Sync enabled for all items",
    "labels": {
      "proxies": "Proxies",
      "vpns": "VPNs",
      "groups": "Groups",
      "extensions": "Extensions",
      "extensionGroups": "Extension Groups"
    }
  },
  "crossOs": {
    "viewOnly": "This profile was created on {{os}} and is not supported on this system",
    "cannotLaunch": "This profile was created on {{os}} and is not supported on this system",
    "cannotModify": "Cannot modify sync settings for a cross-OS profile"
  },
  "profileInfo": {
    "title": "Profile Details",
    "tabs": {
      "info": "Info",
      "settings": "Settings"
    },
    "fields": {
      "profileId": "Profile ID",
      "browser": "Browser",
      "releaseType": "Release Type",
      "proxyVpn": "Proxy / VPN",
      "launchHook": "Launch Hook",
      "group": "Group",
      "tags": "Tags",
      "note": "Note",
      "syncStatus": "Sync Status",
      "lastLaunched": "Last Launched",
      "hostOs": "Host OS",
      "ephemeral": "Ephemeral",
      "extensionGroup": "Extension Group",
      "totalSessions": "Total sessions",
      "syncMode": "Sync mode",
      "proxy": "PROXY",
      "vpn": "VPN",
      "cookieCount": "Cookies stored",
      "localDataTransfer": "Local data transfer",
      "created": "Created",
      "windowColor": "Window color"
    },
    "values": {
      "none": "None",
      "never": "Never",
      "copied": "Copied!",
      "yes": "Yes",
      "activeNow": "Active now",
      "direct": "Direct",
      "loading": "Loading…",
      "unknown": "Unknown"
    },
    "network": {
      "bypassRules": "Proxy Bypass Rules",
      "bypassRulesTitle": "Proxy Bypass Rules",
      "bypassRulesDescription": "Requests matching these rules will connect directly, bypassing the proxy.",
      "addRule": "Add Rule",
      "rulePlaceholder": "e.g. example.com, 192.168.1.*, .*\\.local",
      "noRules": "No bypass rules configured.",
      "ruleTypes": "Supports hostnames, IP addresses, and regex patterns.",
      "vpnLabel": "VPN: {{name}}",
      "proxyLabel": "Proxy: {{name}}"
    },
    "launchHook": {
      "title": "Launch Hook URL",
      "label": "Launch Hook URL",
      "description": "Donut Browser will send a GET request to this URL whenever the profile is launched.",
      "placeholder": "https://example.com/hooks/profile-launch",
      "invalidUrlHint": "Enter a valid http:// or https:// URL."
    },
    "actions": {
      "manageCookies": "Manage Cookies",
      "assignExtensionGroup": "Assign Extension Group"
    },
    "clone": {
      "title": "Clone Profile",
      "description": "Enter a name for the cloned profile",
      "namePlaceholder": "Profile name",
      "button": "Clone"
    },
    "duplicate": "Duplicate",
    "breadcrumbRoot": "Profile",
    "openDialog": "Open settings",
    "sections": {
      "overview": "Overview",
      "fingerprint": "Fingerprint",
      "network": "Network",
      "cookies": "Cookies",
      "extensions": "Extensions",
      "sync": "Sync",
      "automation": "Automation",
      "security": "Security",
      "delete": "Delete profile",
      "activity": "Activity",
      "launchHook": "Launch hook"
    },
    "sectionDesc": {
      "fingerprint": "Configure how this profile appears to fingerprinting scripts.",
      "network": "Manage the proxy or VPN this profile uses to reach the internet.",
      "cookies": "Import, copy, or wipe cookies for this profile.",
      "extensions": "Choose which extensions load when this profile launches.",
      "sync": "Configure how this profile is mirrored to your other devices.",
      "automation": "Run a command or script every time this profile launches.",
      "security": "Encrypt the profile data with a password.",
      "launchHook": "Send a GET request to this URL every time the profile launches."
    },
    "badges": {
      "locked": "LOCKED",
      "active": "ACTIVE"
    },
    "cookies": {
      "runningNotice": "Cookies can't be read while the browser is running. Close this profile first.",
      "domainsHeader": "Domains ({{count}})"
    },
    "security": {
      "protected": "This profile is encrypted with a password.",
      "unprotected": "This profile is not encrypted. Set a password to encrypt its data at rest.",
      "cannotWhileRunning": "Stop the profile before changing its password."
    },
    "fingerprint": {
      "notSupported": "Fingerprint editing is only available for Wayfern profiles.",
      "lockedTitle": "Viewing & editing the fingerprint is a Pro feature",
      "lockedDescription": "Your device information is protected in every profile. Viewing and editing a profile's fingerprint requires an active paid plan."
    },
    "syncStatusValue": {
      "waiting": "Waiting",
      "syncing": "Syncing",
      "synced": "Synced",
      "error": "Error"
    },
    "ephemeral": {
      "cookiesUnavailable": "Ephemeral profiles are discarded when the browser closes, so there are no cookies to manage here.",
      "extensionsUnavailable": "Ephemeral profiles are discarded when the browser closes, so extension groups cannot be assigned to them.",
      "syncUnavailable": "Ephemeral profiles are discarded when the browser closes, so there is nothing to sync to the cloud.",
      "hint": "Create a regular profile if you need this to persist."
    }
  },
  "extensions": {
    "title": "Extensions",
    "description": "Manage browser extensions and extension groups for your profiles.",
    "upload": "Upload",
    "delete": "Delete",
    "extensionsTab": "Extensions",
    "groupsTab": "Groups",
    "managedNotice": "Extensions managed here will replace any manually installed extensions in profiles when launched.",
    "proRequired": "Extension management is a Pro feature",
    "empty": "No extensions uploaded yet.",
    "noGroups": "No extension groups created yet.",
    "createGroup": "Create Group",
    "newGroup": "New group",
    "addToGroup": "Add extension...",
    "removeFromGroup": "Remove from group",
    "deleteGroup": "Delete group",
    "extensionGroup": "Extension Group",
    "compatibility": {
      "label": "Compatibility",
      "chromium": "Chromium"
    },
    "selectedFile": "Selected file",
    "namePlaceholder": "Extension name",
    "groupNamePlaceholder": "Group name",
    "uploadSuccess": "Extension uploaded successfully",
    "deleteSuccess": "Extension deleted successfully",
    "groupCreateSuccess": "Extension group created successfully",
    "groupUpdateSuccess": "Extension group updated successfully",
    "groupDeleteSuccess": "Extension group deleted successfully",
    "deleteConfirmTitle": "Delete Extension",
    "deleteConfirmDescription": "Are you sure you want to delete \"{{name}}\"? This action cannot be undone.",
    "deleteGroupConfirmTitle": "Delete Extension Group",
    "deleteGroupConfirmDescription": "Are you sure you want to delete the group \"{{name}}\"? This action cannot be undone.",
    "invalidFileType": "Invalid file type. Please choose a .crx or .zip file.",
    "readError": "Failed to read the extension file.",
    "assignTitle": "Assign Extension Group",
    "assignDescription": "Assign {{count}} selected profile(s) to an extension group.",
    "noGroup": "None (No Extension Group)",
    "assignSuccess": "Extension group assigned successfully",
    "editExtension": "Edit extension",
    "updateSuccess": "Extension updated successfully",
    "version": "Version",
    "author": "Author",
    "homepage": "Homepage",
    "editGroup": "Edit Group",
    "editGroupDescription": "Update the group name and manage which extensions are included.",
    "groupExtensions": "Extensions in this group",
    "noExtensionsInGroup": "No extensions added yet",
    "editExtensionDescription": "Update the extension name, view its metadata, or replace it with another archive or folder.",
    "metadata": "Metadata",
    "noMetadata": "No metadata available from manifest.",
    "selectFile": "Choose File",
    "loadUnpacked": "Load unpacked",
    "loadUnpackedTooltip": "Load an extension from a folder containing manifest.json",
    "selectFolderTitle": "Select Extension Folder",
    "selectedFolder": "Selected folder",
    "selectFolder": "Choose Folder",
    "linkFolder": "Load in place from this folder",
    "linkFolderOff": "The folder is copied into Donut. The extension is portable and syncs to your other devices.",
    "linkFolderOn": "Donut loads the extension straight from this folder on every launch. Your edits apply on the next browser start, but the extension stays on this machine and never syncs.",
    "replaceSource": "Replace source",
    "linkedNoSync": "Linked extensions stay on this machine and can't sync.",
    "uploadFailed": "Failed to add extension",
    "updateFailed": "Failed to update extension",
    "deleteFailed": "Failed to delete extension",
    "groupCreateFailed": "Failed to create extension group",
    "groupUpdateFailed": "Failed to update extension group",
    "groupDeleteFailed": "Failed to delete extension group",
    "syncEnabled": "Sync enabled",
    "syncDisabled": "Sync disabled",
    "syncEnableTooltip": "Enable sync",
    "syncDisableTooltip": "Disable sync",
    "loadGroupsFailed": "Failed to load extension groups",
    "assignGroupFailed": "Failed to assign extension group",
    "bulkDelete": {
      "extensionsTitle": "Delete extensions",
      "extensionsDescription": "Delete {{count}} extensions? {{names}}",
      "groupsTitle": "Delete extension groups",
      "groupsDescription": "Delete {{count}} extension groups? {{names}}",
      "confirmButton": "Delete"
    },
    "source": {
      "label": "Source",
      "archive": "Archive",
      "unpacked": "Unpacked folder",
      "linked": "Linked folder",
      "folderLabel": "Folder",
      "linkedTooltip": "Loaded in place from {{path}}"
    }
  },
  "pro": {
    "badge": "PRO",
    "fingerprintLocked": "Fingerprint editing is a Pro feature",
    "cookieCopyLocked": "Cookie copying is a Pro feature",
    "cookieImportLocked": "Cookie import is a Pro feature",
    "cookieExportLocked": "Cookie export is a Pro feature",
    "cookieManagementLocked": "Cookie management is a Pro feature"
  },
  "dnsBlocklist": {
    "title": "DNS Blocklist",
    "none": "None",
    "light": "Light",
    "normal": "Normal",
    "pro": "Pro",
    "proPlus": "Pro++",
    "ultimate": "Ultimate",
    "settingsDescription": "DNS blocklists block ads, trackers, and malware domains at the proxy level. Lists are automatically refreshed every 12 hours.",
    "manageLists": "Manage DNS Blocklists",
    "refreshAll": "Refresh All Lists",
    "refreshFailed": "Failed to refresh DNS blocklists",
    "domains": "domains",
    "fresh": "Fresh",
    "stale": "Stale",
    "notCached": "Not cached",
    "tabBlocklists": "Blocklists",
    "tabCustom": "Custom lists",
    "custom.description": "Build your own blocklist from source URLs and manual rules. Allowed domains always override blocked ones.",
    "custom.sourcesLabel": "Blocklist source URLs",
    "custom.sourcesPlaceholder": "One URL per line",
    "custom.blockLabel": "Blocked domains",
    "custom.blockPlaceholder": "One domain per line",
    "custom.allowLabel": "Allowed domains",
    "custom.allowPlaceholder": "One domain per line",
    "custom.allowHint": "Allowed domains are removed from the compiled blocklist, overriding any block rule.",
    "custom.saved": "Custom DNS rules saved",
    "custom.imported": "Custom DNS rules imported",
    "custom.exported": "Custom DNS rules exported",
    "custom.exportTxt": "Export TXT",
    "custom.exportJson": "Export JSON",
    "customLevel": "Custom",
    "custom.allowlistModeLabel": "Allowlist mode",
    "custom.allowlistModeOn": "Only the domains below are reachable; everything else is blocked.",
    "custom.allowlistModeOff": "Block listed domains; allow everything else.",
    "custom.allowedOnlyLabel": "Allowed domains (only these)",
    "custom.allowedOnlyHint": "Subdomains of a listed domain are allowed too. An empty list disables filtering."
  },
  "vpns": {
    "form": {
      "titleEdit": "Edit VPN",
      "titleCreate": "Create WireGuard VPN",
      "descEdit": "Update the name of your VPN configuration.",
      "descCreate": "Enter your WireGuard interface and peer details.",
      "name": "Name",
      "namePlaceholder": "e.g. Home WireGuard",
      "privateKey": "Private Key",
      "privateKeyPlaceholder": "Base64-encoded private key",
      "address": "Address",
      "addressPlaceholder": "e.g. 10.0.0.2/24",
      "dnsOptional": "DNS (optional)",
      "dnsPlaceholder": "e.g. 1.1.1.1",
      "mtuOptional": "MTU (optional)",
      "mtuPlaceholder": "e.g. 1420",
      "peerPublicKey": "Peer Public Key",
      "peerPublicKeyPlaceholder": "Base64-encoded peer public key",
      "peerEndpoint": "Peer Endpoint",
      "peerEndpointPlaceholder": "e.g. vpn.example.com:51820",
      "allowedIps": "Allowed IPs",
      "allowedIpsPlaceholder": "e.g. 0.0.0.0/0, ::/0",
      "keepaliveOptional": "Persistent Keepalive (optional)",
      "keepalivePlaceholder": "e.g. 25",
      "presharedKeyOptional": "Preshared Key (optional)",
      "presharedKeyPlaceholder": "Base64-encoded preshared key",
      "updateButton": "Update VPN",
      "createButton": "Create VPN",
      "nameRequired": "VPN name is required",
      "privateKeyRequired": "Private key is required",
      "addressRequired": "Address is required",
      "peerPublicKeyRequired": "Peer public key is required",
      "peerEndpointRequired": "Peer endpoint is required",
      "updated": "VPN updated successfully",
      "created": "WireGuard VPN created successfully",
      "updateFailed": "Failed to update VPN: {{error}}",
      "createFailed": "Failed to create VPN: {{error}}"
    },
    "import": {
      "title": "Import VPN Config",
      "descDropzone": "Import a WireGuard (.conf) configuration file",
      "descPreview": "Review the VPN configuration to import",
      "descResult": "VPN import completed",
      "dropzonePrompt": "Drop a WireGuard .conf file here or click to browse",
      "pasteHint": "Paste from clipboard with {{modKey}}+V",
      "invalidContent": "Content does not appear to be a valid VPN configuration",
      "fileReadError": "Failed to read file",
      "wrongFileType": "Please drop a WireGuard .conf file",
      "configurationLabel": "{{type}} Configuration",
      "endpointLabel": "Endpoint: {{endpoint}}",
      "vpnNameLabel": "VPN Name",
      "vpnNamePlaceholder": "My VPN",
      "configPreview": "Config Preview",
      "importedSuccess": "VPN Imported Successfully",
      "importFailed": "Import Failed",
      "importButton": "Import VPN",
      "doneButton": "Done",
      "failedGeneric": "Failed to import VPN config",
      "defaultName": "{{type}} VPN"
    },
    "management": {
      "loading": "Loading VPNs...",
      "noneCreated": "No VPN configs created yet. Import or create one using the buttons above.",
      "editVpn": "Edit VPN",
      "deleteVpn": "Delete VPN",
      "cannotDelete_one": "Cannot delete: in use by {{count}} profile",
      "cannotDelete_other": "Cannot delete: in use by {{count}} profiles",
      "syncCannotDisable": "Sync cannot be disabled while this VPN is used by synced profiles",
      "deleteSuccess": "VPN deleted successfully",
      "deleteFailed": "Failed to delete VPN",
      "deleteTitle": "Delete VPN",
      "deleteDescription": "This action cannot be undone. This will permanently delete the VPN \"{{name}}\"."
    }
  },
  "importProfile": {
    "title": "Import Browser Profile",
    "autoDetect": "Auto-Detect",
    "manualImport": "Manual Import",
    "detectedProfilesTitle": "Detected Browser Profiles",
    "scanning": "Scanning for browser profiles...",
    "noneFound": "No browser profiles found on your system.",
    "noneFoundHint": "Try the manual import option if you have profiles in custom locations.",
    "newProfileName": "New Profile Name:",
    "newProfileNamePlaceholder": "Enter a name for the imported profile",
    "manualTitle": "Manual Profile Import",
    "profileFolderPath": "Profile Folder Path:",
    "profileFolderPlaceholder": "Enter the full path to the profile folder",
    "browseFolderTitle": "Browse for folder",
    "examplePaths": "Example paths:",
    "selectFolderTitle": "Select Browser Profile Folder",
    "folderDialogFailed": "Failed to open folder dialog",
    "detectFailed": "Failed to detect existing browser profiles",
    "proxyOptional": "Proxy (Optional)",
    "noProxy": "No proxy",
    "nextButton": "Next",
    "importedAs": "This profile will be imported as a {{browser}} profile.",
    "selectAll": "Select all",
    "selectedCount": "{{count}} selected",
    "scanButton": "Scan",
    "manualHint": "Choose a profile folder, a browser user-data folder, a folder of exported profiles, or a ZIP archive.",
    "selectArchiveTitle": "Select ZIP archive",
    "noProfilesInLocation": "No profiles found in this location.",
    "selectAtLeastOne": "Select at least one profile to import",
    "emptyNames": "Every selected profile needs a name",
    "profilesToImport": "Profiles to import",
    "groupOptional": "Group (Optional)",
    "noGroup": "No group",
    "createNewGroup": "Create new group…",
    "newGroupNamePlaceholder": "New group name",
    "duplicateStrategyLabel": "If a profile name already exists",
    "duplicateRename": "Rename automatically",
    "duplicateSkip": "Skip",
    "proxyRoundRobin": "Distribute stored proxies (round-robin)",
    "importingTitle": "Importing profiles…",
    "importProgress": "{{completed}} of {{total}} processed",
    "resultsSummary": "{{imported}} imported, {{skipped}} skipped, {{failed}} failed",
    "statusImported": "Imported",
    "statusSkipped": "Skipped",
    "statusFailed": "Failed",
    "importButtonCount": "Import ({{count}})",
    "vpnOptional": "VPN (Optional)",
    "noVpn": "No VPN",
    "advancedOptions": "Advanced options",
    "configureFingerprint": "Configure fingerprint (optional)",
    "reportCookies": "Cookies",
    "reportPasswords": "Passwords",
    "reportAutofill": "Payment methods",
    "reportExtensions": "Extensions",
    "reportHistory": "History",
    "reportBookmarks": "Bookmarks",
    "reportLocalStorage": "Site data",
    "reportNothingCarried": "No readable data was carried over",
    "reportUnrecoverable": "Could not be decrypted: {{count}}",
    "closeSourceBrowserHint": "Close the source browser and try again for a complete copy, or import now and accept that site data may be incomplete.",
    "importAnyway": "Import anyway",
    "warnings": {
      "secretsNotMigrated": "Cookies and passwords could not be unlocked, so you will need to sign in again.",
      "appBoundEncrypted": "Chrome 127+ on Windows locks cookies to the browser itself; those cookies cannot be migrated by any other app.",
      "storeTooOld": "A database was too old for this browser to open and was skipped.",
      "storeTooNew": "A database came from a newer browser than this one and was skipped.",
      "sourceBrowserRunning": "The source browser was running, so site data may be incomplete.",
      "securePreferencesReset": "Protected settings such as the homepage and search engine reset to defaults.",
      "extensionsPartial": "Some extensions belonged to the source browser and were not carried over.",
      "storeUnreadable": "A database could not be read and was skipped rather than copied damaged."
    }
  },
  "syncTooltips": {
    "syncing": "Syncing...",
    "syncedAt": "Synced {{time}}",
    "synced": "Synced",
    "waiting": "Waiting to sync",
    "errorWith": "Sync error: {{error}}",
    "error": "Sync error",
    "notSynced": "Not synced",
    "enable": "Enable sync",
    "disable": "Disable sync",
    "lockedInUse": "Sync is locked while in use by a synced profile",
    "bulkToggle": "Toggle sync"
  },
  "groupManagement": {
    "description": "Manage your profile groups",
    "createGroup": "Create Group",
    "noGroups": "No groups created yet. Create your first group using the button above.",
    "loading": "Loading groups...",
    "profileCount_one": "{{count}} profile",
    "profileCount_other": "{{count}} profiles",
    "groupsLabel": "Groups",
    "profilesCol": "Profiles",
    "syncCannotDisable": "Sync cannot be disabled while this group is used by synced profiles",
    "editGroupTooltip": "Edit group",
    "deleteGroupTooltip": "Delete group",
    "loadFailed": "Failed to load groups",
    "bulkDelete": {
      "title": "Delete groups",
      "description": "Are you sure you want to delete {{count}} groups? {{names}}. Profiles will be moved to Default.",
      "description_one": "Are you sure you want to delete {{count}} group? {{names}}. Profiles will be moved to Default.",
      "confirmButton": "Delete groups"
    }
  },
  "proxyAssignment": {
    "title": "Assign Proxy / VPN",
    "description_one": "Assign a proxy or VPN to {{count}} selected profile.",
    "description_other": "Assign a proxy or VPN to {{count}} selected profiles.",
    "selectLabel": "Proxy / VPN",
    "placeholder": "Select a proxy or VPN",
    "noProxy": "No proxy / VPN",
    "searchPlaceholder": "Search proxies or VPNs...",
    "notFound": "No proxies or VPNs found.",
    "assignButton": "Assign",
    "success": "Successfully assigned proxy/VPN to {{count}} profile(s)",
    "failed": "Failed to assign proxy/VPN",
    "selectedProfilesLabel": "Selected Profiles:",
    "assignProxyVpnLabel": "Assign Proxy / VPN:",
    "noneOption": "None",
    "noValidProfiles": "No valid profiles selected.",
    "vpnGroupHeading": "VPNs",
    "failedFallback": "Failed to assign proxy/VPN to profiles"
  },
  "groupAssignment": {
    "title": "Assign Group",
    "description_one": "Assign a group to {{count}} selected profile.",
    "description_other": "Assign a group to {{count}} selected profiles.",
    "selectLabel": "Group",
    "placeholder": "Select a group",
    "noGroup": "No Group (Default)",
    "assignButton": "Assign",
    "success": "Successfully assigned group to {{count}} profile(s)",
    "failed": "Failed to assign group",
    "selectedProfilesLabel": "Selected Profiles:",
    "assignGroupLabel": "Assign to Group:",
    "noValidProfiles": "No valid profiles selected.",
    "failedFallback": "Failed to assign group to profiles"
  },
  "profileSelector": {
    "title": "Select Profile",
    "description": "Choose a profile to launch with this URL",
    "searchPlaceholder": "Search profiles...",
    "noProfiles": "No profiles available",
    "noResults": "No profiles match your search",
    "selectButton": "Select",
    "launching": "Launching...",
    "chooseProfileTitle": "Choose Profile",
    "openingUrl": "Opening URL:",
    "urlCopied": "URL copied to clipboard!",
    "selectProfileLabel": "Select Profile:",
    "noneAvailableShort": "No profiles available. Please create a profile first.",
    "noneAvailableLong": "Close this dialog and create a profile from the main window to get started.",
    "chooseAProfile": "Choose a profile",
    "badgeProxy": "Proxy",
    "badgeRunning": "Running",
    "badgeUnavailable": "Unavailable",
    "openButton": "Open"
  },
  "wayfernTerms": {
    "title": "Wayfern Terms and Conditions",
    "description": "Before using Donut Browser, you must read and agree to Wayfern's Terms and Conditions.",
    "reviewLabel": "Please review the Terms and Conditions at:",
    "agreeNotice": "By clicking \"I Accept\", you agree to be bound by these terms.",
    "acceptButton": "I Accept",
    "acceptSuccess": "Terms accepted successfully",
    "acceptFailed": "Failed to accept terms",
    "tryAgain": "Please try again"
  },
  "commercialTrial": {
    "title": "Commercial Trial Expired",
    "description": "Your 2-week commercial trial period has ended.",
    "body": "If you are using Donut Browser for business purposes, you need to purchase a commercial license to continue. You can still use it for personal use for free.",
    "understandButton": "I Understand",
    "failed": "Failed to save acknowledgment",
    "tryAgain": "Please try again"
  },
  "permissionDialog": {
    "titleMicrophone": "Microphone Access Required",
    "titleCamera": "Camera Access Required",
    "descMicrophone": "Donut Browser needs access to your microphone to enable microphone functionality in web browsers. Each website that wants to use your microphone will still ask for your permission individually.",
    "descCamera": "Donut Browser needs access to your camera to enable camera functionality in web browsers. Each website that wants to use your camera will still ask for your permission individually.",
    "grantedMicrophone": "Permission granted! Browsers launched from Donut Browser can now access your microphone.",
    "grantedCamera": "Permission granted! Browsers launched from Donut Browser can now access your camera.",
    "notGrantedMicrophone": "Permission not granted. Click the button below to request access to your microphone.",
    "notGrantedCamera": "Permission not granted. Click the button below to request access to your camera.",
    "doneButton": "Done",
    "cancelButton": "Cancel",
    "grantAccessButton": "Grant Access",
    "requestSuccessMicrophone": "Microphone Access permission requested",
    "requestSuccessCamera": "Camera Access permission requested",
    "requestFailed": "Failed to request permission",
    "stillNotGrantedMicrophone": "Microphone access still hasn't been granted. You may need to enable it manually in System Settings → Privacy & Security → Microphone.",
    "stillNotGrantedCamera": "Camera access still hasn't been granted. You may need to enable it manually in System Settings → Privacy & Security → Camera.",
    "grantedToastMicrophone": "Microphone access granted",
    "grantedToastCamera": "Camera access granted"
  },
  "traffic": {
    "title": "Traffic Details",
    "bandwidthOverTime": "Bandwidth Over Time",
    "timePeriodPlaceholder": "Time period",
    "last1m": "Last 1 min",
    "last5m": "Last 5 min",
    "last30m": "Last 30 min",
    "last1h": "Last 1 hour",
    "last2h": "Last 2 hours",
    "last4h": "Last 4 hours",
    "last1d": "Last 1 day",
    "last7d": "Last 7 days",
    "last30d": "Last 30 days",
    "allTime": "All time",
    "allTimeShort": "all time",
    "totalSuffix": "total",
    "sentLabel": "Sent ({{period}})",
    "receivedLabel": "Received ({{period}})",
    "requestsLabel": "Requests ({{period}})",
    "allTimeTraffic": "All-time traffic:",
    "allTimeRequests": "All-time requests:",
    "proxyDisclaimer": "Note: If you are using a proxy, VPN, or similar service, your provider may calculate traffic differently due to encryption overhead and protocol differences.",
    "topByTraffic": "Top Domains by Traffic ({{period}})",
    "topByRequests": "Top Domains by Requests ({{period}})",
    "columnDomain": "Domain",
    "columnRequests": "Requests",
    "columnSent": "Sent",
    "columnReceived": "Received",
    "columnTotal": "Total Traffic",
    "uniqueIps": "Unique IPs ({{count}})",
    "noData": "No traffic data available for this profile.",
    "noDataHint": "Traffic data will appear after you launch the profile.",
    "sentLegend": "Sent",
    "receivedLegend": "Received",
    "tooltipSent": "↑ Sent: ",
    "tooltipReceived": "↓ Received: ",
    "clearHistory": "Clear history",
    "clearHistoryTitle": "Clear traffic history",
    "clearHistoryDescription": "Permanently and securely erase all recorded traffic history for \"{{name}}\". This can't be undone.",
    "tabOverview": "Overview",
    "tabTopDomains": "Top domains",
    "searchDomains": "Search domains…",
    "noDomainMatch": "No domains match your search."
  },
  "proxyCheck": {
    "unknownLocation": "Unknown",
    "locationToast": "Your proxy location is:",
    "failed": "Proxy check failed: {{error}}",
    "tooltipChecking": "Checking proxy...",
    "tooltipIp": "IP: {{ip}}",
    "tooltipChecked": "Checked {{time}}",
    "tooltipFailed": "Failed {{time}}",
    "tooltipFailedTitle": "Proxy check failed",
    "tooltipDefault": "Check proxy validity"
  },
  "vpnCheck": {
    "valid": "VPN \"{{name}}\" configuration is valid",
    "invalid": "VPN \"{{name}}\" configuration is invalid",
    "failed": "VPN check failed: {{error}}",
    "tooltipChecking": "Checking VPN config...",
    "tooltipValid": "Configuration valid",
    "tooltipInvalid": "Configuration invalid",
    "tooltipChecked": "Checked {{time}}",
    "tooltipDefault": "Check VPN config validity"
  },
  "profileTable": {
    "syncTooltipDisabled": "Sync disabled",
    "syncTooltipSyncing": "Syncing...",
    "syncTooltipSyncedAt": "Synced {{time}}",
    "syncTooltipSynced": "Synced",
    "syncTooltipWaiting": "Waiting to sync",
    "syncTooltipErrorWith": "Sync error: {{error}}",
    "syncTooltipError": "Sync error",
    "syncTooltipNotSynced": "Not synced",
    "noTags": "No tags",
    "syncTooltipCloseToSync": "Close the profile to sync",
    "syncTooltipDisabledWithLast": "Sync disabled, last sync {{time}}",
    "addTagsPlaceholder": "Add tags",
    "tagsHeader": "Tags",
    "noteHeader": "Note",
    "vpnsHeading": "VPNs",
    "createByCountryHeading": "Create by country"
  },
  "dataTableActionBar": {
    "selected": "{{count}} selected",
    "clearSelection": "Clear selection"
  },
  "appUpdate": {
    "toast": {
      "updateFailed": "Failed to update Donut Browser",
      "restartFailed": "Failed to restart",
      "updateReady": "Update ready, restart to apply",
      "manualDownloadRequired": "Manual download required",
      "restartNow": "Restart Now",
      "viewRelease": "View Release",
      "later": "Later",
      "uploading": "Uploading",
      "downloading": "Downloading",
      "startingUpdate": "Starting update..."
    }
  },
  "browserDownload": {
    "toast": {
      "fetchVersionsFailed": "Failed to fetch {{browser}} versions",
      "foundNewVersions": "Found {{count}} new {{browser}} versions!",
      "totalAvailableVersions": "Total available: {{count}} versions",
      "downloadFailed": "Failed to download {{browser}} {{version}}",
      "calculating": "calculating...",
      "extractionFailed": "{{browser}} {{version}}: extraction failed",
      "extractionFailedDescription": "The corrupt file was deleted. It will be re-downloaded on next attempt.",
      "extracting": "Extracting browser files... Please do not close the app.",
      "verifying": "Verifying browser files...",
      "downloadingRolling": "Downloading rolling release build...",
      "geoipDownloading": "Downloading GeoIP database",
      "geoipDownloaded": "GeoIP database downloaded successfully!"
    }
  },
  "versionUpdater": {
    "toast": {
      "alreadyAvailable": "{{browser}} {{version}} already available",
      "updatingProfiles": "Updating profile configurations...",
      "updateCompleted": "{{browser}} update completed",
      "singleProfileUpdated": "Profile \"{{name}}\" has been updated to version {{version}}. You can now launch your browsers with the latest version.",
      "multipleProfilesUpdated": "{{count}} profiles have been updated to version {{version}}. You can now launch your browsers with the latest version.",
      "versionAvailable": "Version {{version}} is now available. Running profiles will use the new version when restarted.",
      "autoUpdateFailed": "Failed to auto-update {{browser}}",
      "updateWithErrors": "Update completed with some errors",
      "updateWithErrorsDescription": "{{newVersions}} new versions found, {{failedUpdates}} browsers failed to update",
      "updateSuccess": "Browser versions updated successfully",
      "updateSuccessDescription": "Found {{newVersions}} new versions across {{successfulUpdates}} browsers. Auto-downloads will start shortly.",
      "upToDate": "No new browser versions found",
      "upToDateDescription": "All browser versions are up to date",
      "updateAllFailed": "Failed to update browser versions",
      "updateStarted": "{{browser}} update started",
      "updateStartedDescription": "Version {{version}} download will begin shortly. Browser launch is disabled until update completes.",
      "downloadStarting": "Starting {{browser}} {{version}} download",
      "downloadProgressBelow": "Download progress will be shown below...",
      "autoDownloadStarted": "Downloading {{browser}} {{version}} automatically. Progress will be shown below.",
      "lookingForUpdates": "Looking for updates for {{browser}}"
    }
  },
  "profilePassword": {
    "set": {
      "title": "Set Profile Password",
      "description": "Encrypt the on-disk data for {{name}}. You will need this password every time you launch the profile.",
      "button": "Encrypt Profile"
    },
    "unlock": {
      "title": "Unlock Profile",
      "description": "Enter the password to unlock {{name}}.",
      "button": "Unlock"
    },
    "change": {
      "title": "Change Profile Password",
      "description": "Re-encrypt {{name}} with a new password.",
      "button": "Change Password"
    },
    "remove": {
      "title": "Remove Profile Password",
      "description": "Decrypt the on-disk data for {{name}}. The profile will no longer be password protected.",
      "button": "Remove Password"
    },
    "fields": {
      "password": "Password",
      "currentPassword": "Current password",
      "newPassword": "New password",
      "confirm": "Confirm password",
      "confirmPassword": "Confirm new password"
    },
    "errors": {
      "oldPasswordRequired": "Current password is required",
      "passwordRequired": "Password is required",
      "tooShort": "Password must be at least 8 characters",
      "mismatch": "Passwords do not match"
    },
    "toasts": {
      "set": "Profile is now password protected",
      "changed": "Profile password changed",
      "removed": "Profile password removed"
    },
    "warnings": {
      "forgetWarningTitle": "Important: this password is not recoverable",
      "forgetWarningBody": "Donut Browser cannot reset, recover, or bypass this password. If you forget it, you will permanently lose access to this profile's data."
    },
    "modes": {
      "set": "Set",
      "change": "Change",
      "remove": "Remove",
      "validate": "Validate"
    },
    "verifyDialog": {
      "title": "Validate Profile Password",
      "description": "Enter the profile password to confirm it matches the one stored on disk.",
      "submit": "Validate",
      "matchToast": "Password is correct"
    }
  },
  "backendErrors": {
    "incorrectPassword": "Incorrect password",
    "lockedOut": "Too many incorrect attempts. Try again in {{duration}}.",
    "lockedOutDuration": {
      "seconds": "{{seconds}}s",
      "minutes": "{{minutes}} min",
      "hours": "{{hours}} h"
    },
    "profileNotFound": "Profile not found",
    "profileNotProtected": "Profile is not password protected",
    "profileAlreadyProtected": "Profile is already password protected",
    "profileRunning": "Cannot perform this action while the profile is running",
    "profileEphemeral": "Ephemeral profiles cannot be password-protected — their data wipes on quit.",
    "profileMissingSalt": "Profile is missing its encryption salt",
    "profileLocked": "Profile is locked. Enter the password first.",
    "invalidProfileId": "Invalid profile id",
    "passwordTooShort": "Password must be at least {{min}} characters",
    "proxyNotFound": "Proxy not found",
    "groupNotFound": "Group not found",
    "groupAlreadyExists": "A group with this name already exists",
    "vpnNotFound": "VPN not found",
    "extensionNotFound": "Extension not found",
    "extensionGroupNotFound": "Extension group not found",
    "extensionUnsupportedFileType": "That file type isn't supported. An extension has to be a .crx or .zip archive, or a folder.",
    "extensionDirNotFound": "That folder no longer exists.",
    "extensionNotADirectory": "That path is not a folder.",
    "extensionManifestMissing": "There is no manifest.json in that folder. Choose the folder that holds the extension's manifest.json.",
    "extensionManifestInvalid": "The manifest.json in that folder could not be read.",
    "extensionDirTooLarge": "That folder is too large to copy into Donut (the limit is 256 MB and 20,000 files). Link it in place instead.",
    "extensionPathHasComma": "That folder's path contains a comma, which Chromium cannot load. Rename or move the folder.",
    "extensionLinkRequiresDirectory": "Only a folder can be loaded in place. Turn linking off to add an archive.",
    "extensionLinkedCannotSync": "This extension is loaded from a folder on this machine, so there is nothing to sync.",
    "cannotModifyCloudManagedProxy": "Cannot modify sync for a cloud-managed proxy",
    "syncLockedByProfile": "Sync cannot be disabled while this is used by synced profiles",
    "syncNotConfigured": "Sync is not configured. Sign in or configure a self-hosted server first.",
    "internal": "Something went wrong: {{detail}}",
    "invalidLaunchHookUrl": "Invalid launch hook URL. Use a full http:// or https:// URL.",
    "cookieDbLocked": "Could not read cookies — the database is locked. Close the browser and try again.",
    "cookieDbUnavailable": "Could not read cookies — the cookie store is unavailable.",
    "cookieImportBrowserRunning": "Cannot import cookies while the browser is running. Close it and try again.",
    "cookieImportProfileProtected": "Cannot import cookies into a password-protected profile. Remove the password first.",
    "cookieImportRemoteSession": "Cannot import cookies while a remote session owns this profile. Wait for it to finish syncing.",
    "cookieImportNoCookies": "No cookies were found in what you pasted.",
    "selfHostedRequiresLogout": "Sign out of your Donut account before configuring a self-hosted server.",
    "fingerprintRequiresPro": "Viewing or editing the fingerprint requires an active paid plan. Protection is included on all plans.",
    "proxyNotWorking": "The selected proxy isn't working, so the profile wasn't created.",
    "proxyPaymentRequired": "The selected proxy requires payment (402) — its subscription may have expired — so the profile wasn't created.",
    "vpnNotWorking": "The selected VPN isn't working, so the profile wasn't created.",
    "camoufoxImportDeprecated": "Importing this profile type is no longer supported. Please use Wayfern instead.",
    "updateChecksumsUnavailable": "The update {{version}} could not be verified because its checksum file could not be retrieved. The update was not installed; it will be retried later.",
    "updateChecksumMismatch": "The downloaded update file {{file}} failed checksum verification and was discarded. Please try again.",
    "browserChecksumUnavailable": "{{browser}} {{version}} could not be verified because its checksum file could not be retrieved. The download was stopped; it will be retried later.",
    "browserChecksumMismatch": "The downloaded {{browser}} {{version}} archive failed checksum verification and was discarded. Please try again.",
    "nameCannotBeEmpty": "Name cannot be empty",
    "wayfernVersionNotAvailable": "Wayfern version {{requested}} is not available for download. The current version is {{current}}.",
    "profileNameExists": "A profile named \"{{name}}\" already exists",
    "importSourceNotFound": "The source path does not exist",
    "importNoItems": "Nothing selected to import",
    "browserNotDownloaded": "No downloaded version of {{browser}} is available. Download it first, then retry the import.",
    "archiveExtractionFailed": "Failed to extract the archive: {{detail}}",
    "unsupportedArchiveFormat": "Unsupported archive format. Only ZIP archives are supported.",
    "clearOnCloseUnavailable": "Clear-on-close isn't available for ephemeral or password-protected profiles.",
    "proxyAndVpnMutuallyExclusive": "A profile can use either a proxy or a VPN, not both.",
    "invalidDnsRulesJson": "The selected file isn't valid DNS rules JSON.",
    "unsupportedDnsRulesFormat": "Unsupported rules format: {{format}}",
    "dnsRulesSaveFailed": "Failed to save the DNS rules.",
    "dnsRulesExportFailed": "Failed to export the DNS rules.",
    "fingerprintMatchFailed": "Couldn't match the fingerprint to the proxy.",
    "proxySidecarVersionMismatch": "Some Donut Browser files are from different versions. Reinstall the latest update; your profiles will stay safe.",
    "updateProfilesRunning": "Stop all running profiles before installing the update.",
    "updatePreparationFailed": "Donut Browser could not safely stop a background network process. Restart your computer, then try the update again.",
    "wayfernTermsRequired": "Accept the Wayfern Terms and Conditions before starting the MCP server.",
    "apiPortUnavailable": "The API server could not find an available port.",
    "mcpServerAlreadyRunning": "The MCP server is already running.",
    "mcpServerNotRunning": "The MCP server is not running.",
    "mcpPortUnavailable": "The MCP server could not find an available port.",
    "mcpConfigurationUnavailable": "The MCP server configuration is unavailable. Restart the server and try again.",
    "mcpAgentUnknown": "This MCP client is not supported.",
    "mcpAgentInstallFailed": "Could not add Donut Browser to the MCP client: {{detail}}",
    "mcpAgentRemoveFailed": "Could not remove Donut Browser from the MCP client: {{detail}}",
    "vlessConfigInvalid": "The VLESS URI is invalid.",
    "xrayUnavailable": "Xray-core is unavailable on this system.",
    "xrayUnsupportedOs": "VLESS requires macOS 12 or newer.",
    "xrayStartFailed": "Xray-core could not start.",
    "cloudNotSignedIn": "Sign in to your Donut Browser account to use this.",
    "cloudUnreachable": "Could not reach Donut Browser's servers. Check your connection and try again.",
    "cloudRequestFailed": "The request failed. Please try again in a moment.",
    "remoteRateLimited": "Too many requests. Wait a moment and try again.",
    "remoteNoCapacity": "No remote host is free right now. Try again in a few minutes.",
    "remoteNotEntitled": "Your plan does not include remote execution.",
    "remoteInteractiveNotEntitled": "Your plan includes remote hours for the Cookie Bot only, not for hands-on remote sessions.",
    "remoteRequiresRemoteExitNode": "This profile's proxy only works on this computer (for example 127.0.0.1 or a home network address). A remote session runs on our hosts, so it needs a proxy with a public address.",
    "remoteSessionRefused": "The remote host refused this session.",
    "remoteSessionNotFound": "That remote session no longer exists.",
    "remoteSessionConflict": "This profile is already open somewhere else.",
    "remoteSyncInProgress": "This profile is still uploading to cloud sync. Wait for the sync to finish, then try again.",
    "remoteHoursExhausted": "You have used all {{used}} of your {{granted}} remote hours this month.",
    "notTeamMember": "You are not a member of a team.",
    "cookieBotNotEntitled": "Your plan does not include the cookie bot.",
    "cookieBotNotEnrolled": "This profile is not set up for the cookie bot yet.",
    "cookieBotScheduleConflict": "{{email}} already warms this profile at {{time}}.",
    "cookieBotRunInProgress": "A run is already in progress for this profile.",
    "cookieBotRunNotFound": "That run no longer exists.",
    "cookieBotInvalidSchedule": "That schedule is not valid. Check the run time, days and duration.",
    "cookieBotInvalidTimezone": "{{timezone}} is not a time zone the server recognises.",
    "cookieBotInvalidPeriod": "That period is not valid. Use a month such as 2026-08.",
    "cookieBotSiteLimit": "Enter between {{min}} and {{max}} sites, each a full http or https address.",
    "cookieBotRequiresCloudSync": "Turn on cloud sync for this profile first — a remote host has no other way to obtain it.",
    "cookieBotEncryptedSyncUnsupported": "This profile uses end-to-end encrypted sync, which a remote host cannot decrypt. Switch it to Regular sync.",
    "cookieBotUnknownPlatform": "This profile has no recorded operating system, so it cannot be matched to a host.",
    "cookieBotUnsupportedPlatform": "The cookie bot cannot run {{platform}} profiles. Only Windows and macOS profiles are supported.",
    "cookieBotRequiresExitNode": "Attach a proxy or VPN first. Without one the run would come from a datacenter address, which damages the profile's identity.",
    "cookieBotRequiresRemoteExitNode": "This profile's proxy only works on this computer (for example 127.0.0.1 or a home network address). Cookie Bot runs on our hosts, so it needs a proxy with a public address.",
    "unknownCode": "Something went wrong: {{code}}",
    "cookieBotTouchFingerprintUnsupported": "This profile claims a touch device, which the bot cannot drive. Use a desktop fingerprint.",
    "profileRunningRemotely": "This profile is running on a remote machine. Stop the remote session first.",
    "profileRemoteSyncPending": "A remote session just finished. Waiting for its changes to download before this profile can open here.",
    "profileLockedByMember": "This profile is in use by {{email}}.",
    "profileLockedElsewhere": "This profile is in use on another device.",
    "profileLockUnavailable": "Could not check whether this profile is in use elsewhere. Check your connection and try again.",
    "fingerprintExitMismatch": "The proxy exit node doesn't match this profile's fingerprint.",
    "launchConsentExpired": "That confirmation is no longer valid. Try launching again.",
    "vpnWorkerStartFailed": "Couldn't start the VPN connection: {{detail}}",
    "exitProbeFailed": "Couldn't reach the proxy exit node to check its location.",
    "vlessUnsupported": {
      "security": "This VLESS server does not use REALITY. Donut supports VLESS with REALITY only.",
      "flow": "This VLESS server does not use XTLS Vision flow, which Donut requires.",
      "transport": "Donut supports VLESS over plain TCP only — this server uses a different transport (such as WebSocket or gRPC).",
      "encryption": "This VLESS server uses an encryption setting Donut does not support.",
      "headerType": "This VLESS server uses a header obfuscation Donut does not support.",
      "fingerprint": "This VLESS URI requests a TLS fingerprint Donut does not support.",
      "sni": "The VLESS URI is missing the SNI (sni) needed for REALITY.",
      "publicKey": "The VLESS URI is missing the REALITY public key (pbk).",
      "scheme": "That is not a VLESS link. It must start with vless://.",
      "parameter": "The VLESS URI contains an option Donut does not support.",
      "malformed": "The VLESS URI is invalid."
    },
    "camoufoxRemoved": "Camoufox is no longer supported. Recreate this profile with Wayfern.",
    "noE2ePasswordSet": "No end-to-end encryption password is set. Set one before syncing encrypted data.",
    "importSourceNotChromium": "This folder is not a Chromium browser profile",
    "importSourceNotChromiumNamed": "{{family}} profiles cannot be imported; only Chromium-based browsers are supported",
    "importSourceBrowserRunning": "Close {{browser}} first, or choose to import anyway",
    "wayfernFingerprintApplyFailed": "Could not apply this profile's fingerprint, so the browser was not started. {{detail}}",
    "wayfernFingerprintGenerationFailed": "Could not create a fingerprint for this profile. {{detail}}",
    "wayfernGenerationLimitReached": "The fingerprint generation limit for this account has been reached. Your existing profiles will keep launching normally — only new fingerprints are paused, and they become available again a little later.",
    "wayfernCrossOsRequiresPlan": "This profile claims {{detail}}, which needs a paid plan and an active sign-in. Sign in or switch the profile to your own operating system."
  },
  "rail": {
    "profiles": "Profiles",
    "extensions": "Extensions",
    "groups": "Groups",
    "settings": "Settings",
    "more": {
      "label": "More",
      "closeAriaLabel": "Close menu",
      "importProfile": "Import profile",
      "importProfileHint": "Bring profiles from another tool",
      "keyboardShortcuts": "Keyboard shortcuts",
      "keyboardShortcutsHint": "View all shortcuts",
      "about": "About Donut Browser",
      "aboutHint": "Version and app information"
    },
    "network": "Network",
    "integrations": "Integrations",
    "account": "Account",
    "cookieBot": "Cookie Bot",
    "cookieBotRunning": "Cookie Bot — running now"
  },
  "pageTitle": {
    "proxies": "Network",
    "extensions": "Extensions",
    "groups": "Groups",
    "vpns": "Network",
    "settings": "Settings",
    "integrations": "Integrations",
    "account": "Account",
    "import": "Import profile",
    "shortcuts": "Keyboard shortcuts",
    "cookieBot": "Cookie Bot"
  },
  "encryption": {
    "required": {
      "title": "Sync paused — password required",
      "description": "Encrypted data was downloaded but no E2E password is set on this device. Open Settings → Encryption and enter the password to resume sync.",
      "openSettings": "Open Settings"
    },
    "rollover": {
      "startedTitle": "Re-encrypting your data",
      "startedDescription": "We're re-uploading every synced item under the new password. Profiles first, then proxies, groups, VPNs, and extensions.",
      "progressTitle": "Re-encrypting {{stage}}",
      "progressDescription": "{{done}} of {{total}}",
      "completedTitle": "Re-encryption complete",
      "completedDescription": "All synced data is sealed under the new password.",
      "stage": {
        "profiles": "profiles",
        "proxies": "proxies",
        "groups": "groups",
        "vpns": "VPNs",
        "extensions": "extensions",
        "extension_groups": "extension groups"
      }
    }
  },
  "account": {
    "refreshed": "Account refreshed",
    "loggedOut": "Logged out",
    "signedOut": "Signed out",
    "signedOutDescription": "Sign in to enable cloud sync, encrypted profiles, and team features.",
    "plan": "Plan: {{plan}} · {{period}}",
    "refresh": "Refresh",
    "logout": "Sign out",
    "signIn": "Sign in",
    "fields": {
      "plan": "Plan",
      "status": "Status",
      "teamRole": "Team role",
      "period": "Billing period",
      "device": "Device"
    },
    "tabs": {
      "account": "Account",
      "selfHosted": "Self-hosted",
      "teamUsage": "Team usage"
    },
    "selfHosted": {
      "title": "Self-hosted sync server",
      "description": "Point Donut at your own donut-sync server to sync profiles, proxies, groups, and extensions without using the hosted cloud.",
      "disabledWhileLoggedIn": "Self-hosted sync is unavailable while you're signed into your Donut account. Sign out to use a custom server.",
      "connectionStatus": "Connection:",
      "statusUnknown": "Untested",
      "testConnection": "Test connection",
      "disconnect": "Disconnect"
    },
    "deviceOrdinal": "{{ordinal}} of {{count}}",
    "automationPrimaryOnly": "Browser automation runs only on your primary device (Device 1). Sign out there to use it here.",
    "automationActiveHere": "Browser automation is active on this device.",
    "viewTeamUsage": "View team usage"
  },
  "shortcutsPage": {
    "title": "Keyboard shortcuts",
    "description": "Speed up your workflow with these shortcuts."
  },
  "commandPalette": {
    "placeholder": "Type a command or search...",
    "empty": "No results found.",
    "groups": {
      "navigation": "Navigation",
      "profiles": "Profiles",
      "actions": "Actions",
      "profileGroups": "Profile groups"
    },
    "actions": {
      "launchProfile": "Launch {{name}}",
      "stopProfile": "Stop {{name}}",
      "profileInfo": "Info — {{name}}",
      "createProfile": "Create profile",
      "about": "About Donut Browser"
    }
  },
  "shortcuts": {
    "openPalette": "Open command palette",
    "openShortcuts": "View keyboard shortcuts",
    "importProfile": "Import profile",
    "goProfiles": "Go to Profiles",
    "goProxies": "Go to Network",
    "goExtensions": "Go to Extensions",
    "goGroups": "Go to Groups",
    "goIntegrations": "Go to Integrations",
    "goAccount": "Go to Account",
    "goSettings": "Go to Settings",
    "goCookieBot": "Cookie Bot"
  },
  "closeConfirm": {
    "title": "Close Donut Browser?",
    "description": "Would you like to send the app to the system tray or quit?",
    "minimize": "Minimize to Tray",
    "quit": "Quit"
  },
  "tray": {
    "show": "Show Donut Browser",
    "quit": "Quit"
  },
  "onboarding": {
    "steps": {
      "createProfile": {
        "title": "Create your first profile",
        "content": "Click here to create your first profile. Pick Wayfern as the browser — the recommended, fingerprint-protected Chromium."
      },
      "dnsBlocking": {
        "title": "DNS blocking",
        "content": "Use this dropdown to set a DNS blocklist level for the profile — it blocks ads, trackers, and malware at the network level. Higher levels block more."
      }
    },
    "buttons": {
      "skip": "Skip",
      "back": "Back",
      "next": "Next",
      "finish": "Finish"
    },
    "thankYou": {
      "title": "Thank you for choosing Donut Browser",
      "body": "Hopefully it helps make your browsing more private — every identity kept its own, and nothing leaving your machine. Enjoy.",
      "cta": "Start browsing"
    }
  },
  "welcome": {
    "title": "Welcome to Donut Browser",
    "tagline": "An open-source anti-detect browser for managing many identities at once.",
    "skip": "Skip",
    "next": "Next",
    "permissions": {
      "title": "Allow microphone & camera",
      "desc": "Grant access so sites that need a mic or camera work inside your browser profiles. macOS asks once; each site still asks you individually.",
      "skip": "Not now",
      "grant": "Allow access",
      "requesting": "Requesting…"
    },
    "ready": {
      "title": "Setting things up",
      "descDownloading": "Downloading your first browser (Wayfern). This one-time setup runs in the background — hang tight.",
      "descReady": "Your browser is ready. Let's create your first profile.",
      "cta": "Create my first profile",
      "downloading": "Downloading…",
      "extracting": "Extracting…",
      "stats": "{{downloaded}} of {{total}}",
      "speed": "{{speed}}/s",
      "timeLeft": "{{time}} left",
      "descExtracting": "Extracting your browser. This one-time setup runs in the background — hang tight.",
      "almostFinished": "Almost finished…",
      "errorTitle": "Setup failed",
      "errorDownload": "{{browser}} couldn't be downloaded. Check your connection and try again.",
      "errorExtraction": "{{browser}} couldn't be extracted. Please try again.",
      "errorGeneric": "Something went wrong while setting up {{browser}}. Please try again.",
      "retry": "Try again"
    },
    "features": {
      "title": "Features",
      "items": {
        "setDefault": "Set as Default Browser",
        "proxy": "Proxy Support (HTTP/SOCKS5)",
        "vpn": "VPN Support (WireGuard)",
        "profiles": "Unlimited Local Profiles",
        "api": "Profile Management API & MCP",
        "openSource": "Open Source",
        "groups": "Profile Groups",
        "cookies": "Cookie Import & Export"
      }
    },
    "license": {
      "title": "Licensing",
      "body": "Donut Browser is open source and free to use.",
      "agree": "I understand",
      "personalTitle": "Personal use",
      "personalDesc": "Free forever.",
      "commercialTitle": "Commercial use",
      "trialBadge": "2 weeks free",
      "commercialDesc": "Free for a 2-week evaluation. After that, a paid plan keeps the project maintained and thriving."
    }
  },
  "wayfernBlocked": {
    "title": "Browser automation paused",
    "description": "Browser automation runs on one device at a time, and another signed-in device is currently using it. Sign out there, then relaunch the profile."
  },
  "wayfernConfigDialog": {
    "titleView": "View Fingerprint Settings - {{name}} ({{browser}})",
    "titleConfigure": "Configure Fingerprint Settings - {{name}} ({{browser}})",
    "invalidFingerprint": "Invalid fingerprint configuration",
    "invalidFingerprintDescription": "The fingerprint configuration contains invalid JSON. Please check your advanced settings.",
    "saveFailed": "Failed to save configuration",
    "unknownError": "Unknown error occurred"
  },
  "cookieCopy": {
    "noOtherTargets": "No other Wayfern profiles selected"
  },
  "about": {
    "title": "About",
    "version": "Version {{version}}",
    "portableBadge": "portable",
    "licenseNotice": "Open-source anti-detect browser.",
    "website": "Website",
    "github": "GitHub",
    "licenses": "Licenses",
    "searchLicenses": "Search licenses…",
    "noMatchingLicenses": "No matching licenses.",
    "openSource": "View {{name}} source code"
  },
  "clearOnClose": {
    "label": "Clear data on close",
    "description": "Wipe cookies, history and cache when the browser closes. Extensions and bookmarks are kept."
  },
  "consistencyWarning": {
    "timezoneDetail": "Exit node is in {{exit}} but the fingerprint reports {{fingerprint}}.",
    "languageDetail": "Exit country is {{country}} but the fingerprint language is {{fingerprint}}.",
    "explainer": "A timezone or language that disagrees with your exit IP is a strong anti-bot signal, even though your real device never leaks. Align the fingerprint with the proxy location to reduce hostile treatment.",
    "matchToProxy": "Match fingerprint to proxy",
    "matching": "Matching…",
    "matchSuccess": "Fingerprint updated to match the proxy. Relaunch the profile to apply."
  },
  "cookieBot": {
    "title": "Cookie Bot",
    "description": "Overnight profile warming on a remote machine.",
    "tabs": {
      "overview": "Overview",
      "schedule": "Schedule",
      "activity": "Activity",
      "team": "Team"
    },
    "locked": {
      "title": "Cookie Bot",
      "hint": "Cookie Bot warms your profiles overnight on a remote machine, so they keep their cookies and their history without your computer being on."
    },
    "empty": {
      "title": "No profiles are enrolled",
      "hint": "Pick a profile and the bot warms it overnight on a remote machine. Your computer can be off.",
      "cta": "Enrol a profile"
    },
    "tonight": {
      "label": "Tonight",
      "nextRun": "Next run {{time}}",
      "dueCount_one": "{{count}} profile due",
      "dueCount_other": "{{count}} profiles due",
      "nothingScheduled": "Nothing scheduled"
    },
    "lastDay": {
      "label": "Last 24 hours",
      "none": "No runs yet",
      "ran_one": "{{count}} ran",
      "ran_other": "{{count}} ran",
      "partial_one": "{{count}} partial",
      "partial_other": "{{count}} partial",
      "failed_one": "{{count}} failed",
      "failed_other": "{{count}} failed"
    },
    "chart": {
      "machineTime": "Machine time per night",
      "minutes": "{{minutes}} min"
    },
    "hours": {
      "label": "Remote hours",
      "remaining": "{{remaining}} h left of {{total}}",
      "remainingOf": "of {{total}} h",
      "used": "{{used}} of {{total}} h used",
      "resets": "Resets {{date}}",
      "exhausted": "No remote hours left. Schedules stay enrolled and resume next cycle.",
      "exhaustedOn": "No remote hours left. Schedules stay enrolled and resume {{date}}.",
      "estimate": "About {{hours}} h per week · {{remaining}} h left this cycle",
      "estimateOverBudget": "Needs about {{hours}} h per week — only {{remaining}} h left",
      "estimateOnly": "About {{hours}} h per week"
    },
    "enrolled": {
      "columnProfile": "Profile",
      "columnCadence": "Cadence",
      "columnTime": "Time",
      "columnNextRun": "Next run",
      "columnLastRun": "Last run",
      "enrolProfiles": "Enrol profiles",
      "edit": "Edit schedule",
      "neverRun": "Never",
      "pausedNoHours": "Paused — out of hours",
      "profileMissing": "That profile is not on this computer."
    },
    "schedule": {
      "empty": "Nothing is scheduled yet.",
      "quietHours_one": "{{count}} quiet hour",
      "quietHours_other": "{{count}} quiet hours",
      "crowded_one": "{{count}} profile starts at once",
      "crowded_other": "{{count}} profiles start at once",
      "unenrol": "Remove from Cookie Bot",
      "unenrolTitle": "Remove {{name}} from Cookie Bot?",
      "unenrolDescription": "It stops warming tonight. Past runs stay in Activity.",
      "unenrolled": "Removed from Cookie Bot"
    },
    "status": {
      "provisioning": "Preparing a machine",
      "ready": "Loading profile",
      "warming": "Warming",
      "finished": "Finishing",
      "failed": "Failed"
    },
    "runStatus": {
      "pending": "Queued",
      "running": "Running",
      "succeeded": "Complete",
      "partial": "Partial",
      "failed": "Failed",
      "skipped": "Skipped",
      "cancelled": "Stopped"
    },
    "running": {
      "label": "Running now",
      "more": "+{{count}} more",
      "stop": "Stop run",
      "stopped": "Run stopped"
    },
    "live": {
      "idle": "Nothing is running right now",
      "streamOffline": "Live updates are offline",
      "streamOfflineDetail": "Live updates are offline — reconnecting. The runs below may be out of date.",
      "unnamedSession": "Remote session",
      "notStartedYet": "The machine has not reported a start time yet.",
      "sitesProgress": "{{visited}} of {{total}} sites",
      "sitesUnknown": "Sites not reported yet",
      "consentHandled_one": "{{count}} consent prompt handled",
      "consentHandled_other": "{{count}} consent prompts handled",
      "consentUnknown": "Consent prompts not reported yet",
      "billed": "{{duration}} billed",
      "billedUnknown": "Billed time not reported yet",
      "chunk": "Part {{index}} of {{total}}"
    },
    "history": {
      "title": "Runs",
      "allProfiles": "All profiles",
      "searchPlaceholder": "Search profiles…",
      "filterAll": "All runs",
      "filterComplete": "Complete",
      "filterPartial": "Partial",
      "filterFailed": "Failed",
      "columnStarted": "Started",
      "columnProfile": "Profile",
      "columnDuration": "Duration",
      "columnSites": "Sites",
      "columnStatus": "Status",
      "columnOperator": "Operator",
      "empty": "No runs yet.",
      "noMatch": "No runs match this filter.",
      "unknownProfile": "Unknown profile",
      "outcome": "Reason: {{reason}}",
      "sitesVisited": "{{visited}}/{{total}}",
      "sitesFailed_one": "{{count}} site could not be reached",
      "sitesFailed_other": "{{count}} sites could not be reached",
      "consentHandled_one": "{{count}} consent prompt handled",
      "consentHandled_other": "{{count}} consent prompts handled",
      "sitesUnknown": "Not reported"
    },
    "duration": {
      "hm": "{{hours}}h {{minutes}}m",
      "ms": "{{minutes}}m {{seconds}}s",
      "s": "{{seconds}}s"
    },
    "picker": {
      "title": "Enrol profiles",
      "description": "Pick the profiles the bot should warm overnight.",
      "searchPlaceholder": "Search profiles…",
      "noProfiles": "No profiles match.",
      "alreadyEnrolled": "Enrolled",
      "continue_one": "Continue with {{count}}",
      "continue_other": "Continue with {{count}}"
    },
    "enrol": {
      "titleOne": "Enrol {{name}}",
      "titleCount_one": "Enrol {{count}} profile",
      "titleCount_other": "Enrol {{count}} profiles",
      "editTitle": "Edit schedule",
      "description": "The bot opens the profile on a remote machine and browses the sites you list. Your computer can be off.",
      "summaryNightly": "Runs every night at {{time}}, up to {{minutes}} min each.",
      "summaryWeeknights": "Runs Monday to Friday at {{time}}, up to {{minutes}} min each.",
      "summaryAlternate": "Runs every other night at {{time}}, up to {{minutes}} min each.",
      "summaryCustom_one": "Runs {{count}} night a week at {{time}}, up to {{minutes}} min each.",
      "summaryCustom_other": "Runs {{count}} nights a week at {{time}}, up to {{minutes}} min each.",
      "confirm": "Enrol tonight",
      "confirmSome": "Enrol {{eligible}} of {{total}} tonight",
      "fixFirst": "Fix these first",
      "saving": "Enrolling…",
      "saved": "Schedule saved",
      "enrolled_one": "Enrolled {{count}} profile",
      "enrolled_other": "Enrolled {{count}} profiles",
      "adjust": "Adjust schedule",
      "cadenceLabel": "Cadence",
      "cadenceNightly": "Nightly",
      "cadenceWeeknights": "Weeknights",
      "cadenceAlternate": "Every other night",
      "cadenceCustom_one": "{{count}} night a week",
      "cadenceCustom_other": "{{count}} nights a week",
      "timeLabel": "Start time",
      "timeHint": "Local to each profile's fingerprint timezone.",
      "maxMinutesLabel": "Max minutes",
      "intensityLabel": "Depth",
      "sitesLabel": "Sites",
      "sitesPlaceholder": "One address per line",
      "sitesHint_one": "{{count}} site. Only pages you list here are visited.",
      "sitesHint_other": "{{count}} sites. Only pages you list here are visited.",
      "sitesTooMany": "At most {{max}} sites.",
      "presetsUnavailable": "Could not load the depth presets. Try again in a moment.",
      "confirmBulkTitle_one": "Enrol {{count}} profile in Cookie Bot?",
      "confirmBulkTitle_other": "Enrol {{count}} profiles in Cookie Bot?",
      "confirmBulkDescription_one": "It books a nightly run against your shared remote hours. You choose the time and the sites next.",
      "confirmBulkDescription_other": "They book {{count}} nightly runs against your shared remote hours. You choose the time and the sites next.",
      "confirmBulkButton_one": "Continue with {{count}} profile",
      "confirmBulkButton_other": "Continue with {{count}} profiles",
      "sitesRequired": "Add at least one site.",
      "addSitesFirst": "Add a site first",
      "presetsMissing": "Depth presets unavailable",
      "sourceOwn": "My own list",
      "sourceCurated": "Curated",
      "sourceSaved": "Saved",
      "curatedEmpty": "No curated lists are available right now.",
      "curatedNote": "A curated list we keep up to date. Every profile draws its own sample from it, so no two profiles browse the same set — which is what stops the list itself becoming a signature. The addresses stay on our side.",
      "savedEmpty": "Nothing saved yet. Type a list under My own list, then save it from there.",
      "savedNote": "The sites are copied onto the schedule when you save it, so editing a list later leaves existing schedules alone.",
      "savedUnavailable": "Could not load your saved lists.",
      "saveAsList": "Save as a list",
      "listNamePlaceholder": "Name this list",
      "listSaved": "List saved",
      "listRenamed": "List renamed",
      "listDeleted": "List deleted",
      "listRename": "Rename",
      "listDeleteConfirm": "Delete?",
      "templateMissing": "That saved list no longer exists. Pick another one.",
      "templateNameTaken": "You already have a list with that name.",
      "templateNameInvalid": "Give the list a name of {{max}} characters or fewer.",
      "calendarLabel": "When it runs",
      "daysLabel": "Days of the week",
      "addSlot": "Add a time",
      "slotsFull": "At most {{max}} start times.",
      "removeSlot": "Remove this time",
      "pickListFirst": "Pick a list first",
      "finishCalendarFirst": "Finish the schedule first",
      "duplicateSlot": "Two rows have the same days and time",
      "listSites_one": "{{count}} site",
      "listSites_other": "{{count}} sites",
      "summarySlots_one": "Runs {{count}} time a week, up to {{minutes}} min each.",
      "summarySlots_other": "Runs {{count}} times a week, up to {{minutes}} min each.",
      "templateNameInvalidNoMax": "That name can't be used for a saved list."
    },
    "preset": {
      "light": "Light",
      "balanced": "Standard",
      "deep": "Deep"
    },
    "template": {
      "lowIntentPurchaser": "Low-intent purchaser",
      "lowIntentPurchaserHint": "Positions the profile as a price-sensitive buyer: comparison, coupon, cashback and resale sites, reaching retailers through aggregators rather than directly."
    },
    "preflight": {
      "ineligible_one": "{{count}} profile can't run remotely",
      "ineligible_other": "{{count}} profiles can't run remotely",
      "reasonSync": "Sync is off",
      "reasonEncrypted": "End-to-end encrypted",
      "reasonNoFingerprint": "No recorded operating system",
      "reasonCrossOs": "Built for {{os}} — no remote machine matches",
      "reasonNoExitNode": "No proxy or VPN",
      "fixSync": "Turn on sync",
      "fixEncrypted": "Open sync settings",
      "fixProxy": "Attach a proxy",
      "fixFailed": "Could not apply that fix.",
      "exitNodeHint": "Without a proxy or VPN the run leaves from the fleet's own datacenter address. Hours of traffic from a hosting network damages the profile's identity more than not warming it at all."
    },
    "conflict": {
      "title": "{{email}} already warms this profile at {{time}}",
      "detail": "Two schedules on one profile spend hours twice and can collide mid-run.",
      "keepTheirs": "Use their schedule",
      "replace": "Replace with mine",
      "replaceForbidden": "Only a team owner or admin can change someone else's schedule.",
      "askThem": "Copy {{email}}",
      "emailCopied": "Email copied",
      "copyFailed": "Could not copy the address."
    },
    "actionBar": {
      "enrol": "Enrol in Cookie Bot",
      "proRequired": "Cookie Bot requires a paid plan",
      "noneEligible": "None of the selected profiles can be warmed remotely"
    },
    "actions": {
      "enrol": "Enrol in Cookie Bot",
      "editSchedule": "Edit schedule",
      "runNow": "Run now",
      "runStarted": "Run started",
      "viewActivity": "View activity",
      "runNotStarted": "The run did not start: {{reason}}"
    },
    "state": {
      "enrolled": "Enrolled",
      "notEnrolled": "Not enrolled",
      "paused": "Paused",
      "summary": "{{cadence}} at {{time}}",
      "rowMenu": "Cookie Bot options for {{name}}",
      "blocked": "Cannot run: {{reason}}"
    },
    "team": {
      "title": "Team usage",
      "pooled_one": "{{used}} of {{total}} h, {{count}} seat",
      "pooled_other": "{{used}} of {{total}} h pooled across {{count}} seats",
      "hours": "{{hours}} h",
      "legendBot": "Cookie Bot",
      "legendInteractive": "Interactive",
      "columnMember": "Member",
      "columnRuns": "Runs",
      "columnHours": "Hours",
      "columnShare": "Share",
      "noActivity": "No remote sessions in this period.",
      "soloNote": "Only your own usage so far. Invite teammates to see the pool split by member.",
      "runsFailed": "· {{n}} failed"
    },
    "closeReason": {
      "stoppedByUser": "Stopped by hand",
      "maxDuration": "Reached the time limit",
      "other": "Ended: {{reason}}"
    },
    "outcome": {
      "notEntitled": "Not included in your plan",
      "syncDisabled": "Cloud sync is off for this profile",
      "encryptedSync": "End-to-end encrypted sync is not supported",
      "proxyRequired": "No proxy or VPN attached",
      "touchFingerprint": "Touch fingerprints are not supported",
      "platformUnsupported": "No machine runs this profile's system",
      "noSites": "No sites to visit",
      "quotaExhausted": "Remote hours used up",
      "profileLocked": "The profile was open somewhere else",
      "noCapacity": "No machine was free",
      "managerError": "The fleet could not start the browser",
      "budgetExceeded": "The night's budget ran out",
      "cancelledByUser": "Stopped by hand",
      "unknown": "Unknown reason ({{code}})"
    }
  },
  "prelaunchGate": {
    "titleBlocked": "Launch blocked",
    "titleWarning": "Before you launch",
    "intro": "Review these issues with \"{{name}}\" before starting the browser.",
    "fingerprintHeading": "The measured exit doesn't match the fingerprint",
    "vpnExtensionHeading": "VPN or proxy extension detected",
    "vpnExtensionIntro": "Extensions in this profile that can reroute the browser's traffic:",
    "vpnExtensionConfirmed": "Known VPN or proxy tool",
    "vpnExtensionLikely": "Looks like a VPN or proxy tool",
    "vpnExtensionCapability": "Holds the proxy permission",
    "vpnExtensionExplainer": "If one of these routes your traffic elsewhere, the browser's real location will no longer match the timezone, language and geolocation this profile was created with, and Donut cannot detect that from the outside.",
    "proxyCapableHeading": "Extensions that can change the proxy",
    "proxyCapableIntro": "These don't look like VPNs, but they hold Chromium's proxy permission, which download managers and debugging tools need too. Donut cannot tell whether any of them is using it:",
    "sourceDonut": "Managed by Donut",
    "sourceBrowser": "Installed in the profile",
    "measurementUnreliable": "An extension in this profile holds the proxy permission, so the exit check may not describe the route the browser actually takes.",
    "scanIncompleteEncrypted": "This profile is encrypted, so only Donut-managed extensions could be checked.",
    "scanIncompleteEphemeral": "This profile has no data yet, so only Donut-managed extensions could be checked.",
    "scanIncompletePartial": "The extension scan was cut short, so some extensions may not be listed.",
    "probePending": "The proxy exit hasn't been measured yet. Donut will check it while starting and stop if it doesn't match.",
    "launchAnyway": "Launch anyway",
    "dontBlockAgain": "Don't block again for this exact mismatch",
    "dontWarnExtensions": "Don't warn again about these extensions",
    "applyToRemaining": "Apply this choice to the remaining profiles",
    "cancelledSummary": "{{cancelled}} of {{total}} launches cancelled",
    "vpnExtensionEntry": " {{version}} — {{capability}}, {{source}}",
    "vpnExtensionEntryNoVersion": " — {{capability}}, {{source}}",
    "scanIncompleteMissing": "This profile has not been launched yet, so only Donut-managed extensions could be checked."
  }
}
