{
    "apps": {
        "title": "My Apps",
        "noApps": {
            "title": "No apps installed yet!",
            "description": "How about installing some? Check out the <a href=\"{{ appStoreLink }}\">App Store</a>."
        },
        "noAccess": {
            "title": "You don't have access to any apps yet.",
            "description": "Once you do, they will show up here."
        },
        "searchPlaceholder": "Search Apps",
        "auth": {
            "sso": "Log in with Cloudron credentials",
            "nosso": "Log in with dedicated account",
            "email": "Log in with email address",
            "openid": "Log in with Cloudron OpenID"
        },
        "noMatchesPlaceholder": "No matching apps"
    },
    "main": {
        "offline": "Cloudron is offline. Reconnecting…",
        "logout": "Log out",
        "dialog": {
            "cancel": "Cancel",
            "save": "Save",
            "close": "Close",
            "no": "No",
            "yes": "Yes",
            "delete": "Delete",
            "edit": "Edit",
            "done": "Done"
        },
        "username": "Username",
        "displayName": "Display name",
        "actions": "Actions",
        "table": {
            "version": "Version",
            "created": "Created"
        },
        "action": {
            "reboot": "Reboot",
            "logs": "Logs",
            "remove": "Remove",
            "edit": "Edit",
            "add": "Add",
            "next": "Next",
            "configure": "Configure",
            "restart": "Restart",
            "reset": "Reset",
            "loadMore": "Load more",
            "setup": "Set up",
            "disable": "Disable"
        },
        "rebootDialog": {
            "title": "Reboot Server",
            "description": "All apps and services will restart automatically.<br/><br/>Reboot the server now?",
            "rebootAction": "Reboot now"
        },
        "searchPlaceholder": "Search",
        "multiselect": {
            "selected": "{{ n }} selected",
            "select": "Select"
        },
        "navbar": {
            "users": "Users",
            "groups": "Groups"
        },
        "statusEnabled": "Enabled",
        "loadingPlaceholder": "Loading",
        "platform": {
            "startupFailed": "Platform startup failed"
        },
        "sidebar": {
            "collapseAction": "Collapse sidebar"
        }
    },
    "appstore": {
        "title": "App Store",
        "category": {
            "all": "All",
            "popular": "Popular",
            "newApps": "New Apps"
        },
        "searchPlaceholder": "Search for alternatives like GitHub, Dropbox, Slack, Trello, …",
        "unstable": "Unstable",
        "installDialog": {
            "lastUpdated": "Last updated {{ date }}",
            "memoryRequirement": "Requires at least {{ size }} memory",
            "location": "Location",
            "locationPlaceholder": "Leave empty to use bare domain",
            "manualWarning": "Manually set up A (IPv4) and AAAA (IPv6) DNS records for <b>{{ location }}</b> pointing to this server",
            "userManagement": "User management",
            "userManagementNone": "This app has its own user management.",
            "userManagementMailbox": "Users with a <a href=\"/#/mailboxes\">mailbox</a> can log in with their mailbox email and Cloudron password.",
            "userManagementLeaveToApp": "Leave user management to the app",
            "userManagementAllUsers": "Allow all users on this Cloudron",
            "userManagementSelectUsers": "Only allow the following users and groups",
            "errorUserManagementSelectAtLeastOne": "Select at least one user or group",
            "users": "Users",
            "groups": "Groups",
            "configuredForCloudronEmail": "This app is pre-configured for use with <a href=\"{{ emailDocsLink }}\" target=\"_blank\">Cloudron Email</a>.",
            "cloudflarePortWarning": "Cloudflare proxying must be disabled for the app's domain to access this port",
            "portReadOnly": "read-only",
            "ephemeralPortWarning": "Using ephemeral ports can cause unpredictable conflicts."
        },
        "appNotFoundDialog": {
            "title": "App not found",
            "description": "There is no such app <b>{{ appId }}</b> with version <b>{{ version }}</b>."
        },
        "action": {
            "addCustomApp": "Add custom app"
        }
    },
    "users": {
        "users": {
            "user": "User",
            "groups": "Groups",
            "empty": "No users found",
            "superadminTooltip": "This user is a superadmin",
            "adminTooltip": "This user is an admin",
            "usermanagerTooltip": "This user can manage groups and other users",
            "inactiveTooltip": "User is inactive",
            "externalLdapTooltip": "From external LDAP directory",
            "resetPasswordTooltip": "Reset password",
            "invitationTooltip": "Invite",
            "setGhostTooltip": "Impersonate",
            "mailmanagerTooltip": "This user can manage users and mailboxes",
            "noMatchesPlaceholder": "No matching user",
            "emptyPlaceholder": "No users"
        },
        "groups": {
            "name": "Name",
            "users": "Users",
            "externalLdapTooltip": "From external LDAP directory",
            "emptyPlaceholder": "No groups",
            "noMatchesPlaceholder": "No matching group"
        },
        "settings": {
            "allowProfileEditCheckbox": "Allow users to edit their name and email",
            "require2FACheckbox": "Require users to set up 2FA",
            "saveAction": "Save",
            "title": "Settings"
        },
        "externalLdap": {
            "title": "Connect an External Directory",
            "description": "Synchronize and authenticate users and groups from an external LDAP or Active Directory server. Synchronization runs periodically every 4 hours.",
            "noopInfo": "No external directory configured",
            "provider": "Provider",
            "server": "Server URL",
            "acceptSelfSignedCert": "Accept self-signed certificate",
            "baseDn": "Base DN",
            "filter": "Filter",
            "usernameField": "Username field",
            "syncGroups": "Sync groups",
            "groupBaseDn": "Group Base DN",
            "groupFilter": "Group Filter",
            "groupnameField": "Groupname Field",
            "auth": "Auth",
            "autocreateUsersOnLogin": "Auto-create users on login",
            "syncAction": "Sync now",
            "configureAction": "Configure",
            "bindUsername": "Bind DN/Username (optional)",
            "bindPassword": "Bind password (optional)",
            "errorSelfSignedCert": "Server is using an invalid or self-signed certificate.",
            "disableWarning": "The authentication source of all existing users will be reset to authenticate against the local password database."
        },
        "addUserDialog": {
            "title": "Add User",
            "sendInviteCheckbox": "Send invitation email",
            "addUserAction": "Add"
        },
        "user": {
            "fullName": "Full name",
            "username": "Username",
            "role": "Role",
            "groups": "Groups",
            "noGroups": "No groups available",
            "usernamePlaceholder": "Optional. If not provided, user can pick during sign up.",
            "displayName": "Display name",
            "primaryEmail": "Primary email",
            "recoveryEmail": "Password recovery email",
            "activeCheckbox": "User is active",
            "displayNamePlaceholder": "Optional. If not provided, user can provide during sign up.",
            "fallbackEmailPlaceholder": "If not specified, primary email will be used"
        },
        "deleteUserDialog": {
            "title": "Delete User",
            "description": "After deletion, the user will not be able to access the dashboard or login to any of the apps. Note that any user data inside the apps is not removed.<br/><br/>Delete user \"{{ username }}\" ?",
            "deleteAction": "Delete"
        },
        "editUserDialog": {
            "title": "Edit User",
            "externalLdapWarning": "This user is synced from the external LDAP directory."
        },
        "addGroupDialog": {
            "title": "Add Group"
        },
        "group": {
            "name": "Name",
            "users": "Users",
            "addGroupAction": "Add",
            "allowedApps": "Allowed apps"
        },
        "editGroupDialog": {
            "title": "Edit Group",
            "externalLdapWarning": "This group is synced from the external LDAP directory."
        },
        "deleteGroupDialog": {
            "title": "Delete Group",
            "description": "This group has {{ memberCount }} member(s). <br/><br/>Delete group \"{{ name }}\"?",
            "deleteAction": "Delete"
        },
        "passwordResetDialog": {
            "title": "Reset password for {{ username }}",
            "description": "The following password reset link was sent to {{ email }}:",
            "reset2FAAction": "Reset 2FA",
            "sendAction": "Send mail",
            "descriptionLink": "Copy password reset link",
            "descriptionEmail": "Send password reset link"
        },
        "externalLdapDialog": {
            "title": "Configure LDAP"
        },
        "role": {
            "user": "User",
            "usermanager": "User Manager",
            "admin": "Administrator",
            "owner": "Superadmin",
            "mailmanager": "User & Email Manager"
        },
        "invitationDialog": {
            "title": "Invite User",
            "description": "The following invite link was sent to {{ email }}:",
            "sendAction": "Send mail",
            "descriptionLink": "Invite link",
            "descriptionEmail": "Email invite link",
            "context": "Invite user \"{{ username }}\""
        },
        "setGhostDialog": {
            "title": "Impersonate User",
            "description": "Set a temporary password to log in on behalf of this user to apps or the dashboard. This password is valid for 6 hours.",
            "password": "Temporary password",
            "setPassword": "Set password",
            "generatePassword": "Generate Password",
            "context": "Impersonate user \"{{ username }}\""
        },
        "invitationNotification": {
            "body": "Email sent to {{ email }}"
        },
        "exposedLdap": {
            "description": "The LDAP server lets external apps authenticate users against the Cloudron user directory.",
            "ipRestriction": {
                "description": "Limit Directory Server access to specific IPs or ranges",
                "placeholder": "Line-separated IP addresses or subnets. Lines starting with <code>#</code> are treated as comments.",
                "label": "Allowed IPs & ranges"
            },
            "secret": {
                "label": "Bind password",
                "description": "Authenticate queries with the user DN <i>{{ userDN }}</i> and this secret",
                "url": "Server URL"
            },
            "cloudflarePortWarning": "Cloudflare proxying must be disabled on the dashboard domain to access the LDAP server",
            "enable": "Enable LDAP server",
            "title": "LDAP Server",
            "enabled": "Enable LDAP server"
        },
        "title": "Users",
        "2FAResetDialog": {
            "title": "Reset User 2FA",
            "description": "Remove the existing 2FA setup for user “{{ username }}”?"
        }
    },
    "profile": {
        "title": "Profile",
        "primaryEmail": "Primary email",
        "passwordRecoveryEmail": "Password recovery email",
        "language": "Language",
        "changePassword": {
            "title": "Change Password",
            "currentPassword": "Current password",
            "newPassword": "New password",
            "newPasswordRepeat": "Repeat new password",
            "errorPasswordsDontMatch": "Passwords don't match"
        },
        "disable2FA": {
            "title": "Disable Two-Factor Authentication",
            "password": "Password",
            "disable": "Disable"
        },
        "enable2FA": {
            "title": "Enable Two-Factor Authentication",
            "authenticatorAppDescription": "Use Google Authenticator (<a href=\"{{ googleAuthenticatorPlayStoreLink }}\" target=\"_blank\">Android</a>, <a href=\"{{ googleAuthenticatorITunesLink }}\" target=\"_blank\">iOS</a>), FreeOTP authenticator (<a href=\"{{ freeOTPPlayStoreLink }}\" target=\"_blank\">Android</a>, <a href=\"{{ freeOTPITunesLink }}\" target=\"_blank\">iOS</a>) or a similar TOTP app to scan the secret.",
            "token": "Token",
            "enable": "Enable",
            "mandatorySetup": "2FA is required to access the dashboard. Please complete the setup to continue.",
            "passkeyOption": "Passkey",
            "totpOption": "TOTP",
            "registerPasskey": "Set up passkey",
            "passkeyDescription": "The browser will prompt you to create a passkey using your device's biometrics or a password manager."
        },
        "appPasswords": {
            "title": "App Passwords",
            "app": "App",
            "name": "Name",
            "noPasswordsPlaceholder": "No app passwords",
            "description": "App passwords are a security measure to protect your Cloudron user account. If you need to access a Cloudron app from an untrusted mobile app or client, you can log in with your username and the alternate password generated here.",
            "expires": "Expires"
        },
        "apiTokens": {
            "title": "API Tokens",
            "name": "Name",
            "description": "Use these personal access tokens to authenticate with the <a target=\"_blank\" href=\"{{ apiDocsLink }}\">Cloudron API</a>.",
            "noTokensPlaceholder": "No API tokens",
            "lastUsed": "Last used",
            "neverUsed": "never",
            "scope": "Scope",
            "readonly": "Readonly",
            "readwrite": "Read and Write",
            "allowedIpRangesPlaceholder": "Comma-separated IPs or Subnets",
            "allowedIpRanges": "Allowed IPs"
        },
        "loginTokens": {
            "title": "Login Tokens",
            "description": "You have {{ webadminTokenCount}} active web token(s) and {{ cliTokenCount }} CLI token(s).",
            "logoutAll": "Log out from all"
        },
        "changeEmail": {
            "title": "Change Primary Email",
            "email": "New Email",
            "password": "Confirm with Password"
        },
        "changeFallbackEmail": {
            "title": "Change Password Recovery Email"
        },
        "createAppPassword": {
            "title": "Add App Password",
            "name": "Password name",
            "app": "App",
            "description": "Use the following password to authenticate against the app:",
            "copyNow": "Please copy the password now. It won't be shown again for security purposes.",
            "expiresAt": "Expiry date"
        },
        "createApiToken": {
            "title": "Add API Token",
            "name": "API token name",
            "description": "New API token:",
            "copyNow": "Please copy the API token now. It won't be shown again for security purposes.",
            "access": "API access",
            "allowedIpRanges": "Allowed IP range(s)"
        },
        "changePasswordAction": "Change password",
        "passwordResetNotification": {
            "body": "Email sent to {{ email }}"
        },
        "removeApiToken": {
            "title": "Remove API Token",
            "description": "Remove API token \"{{ name }}\" ?"
        },
        "removeAppPassword": {
            "title": "Remove App Password",
            "description": "Remove app password \"{{ name }}\" ?"
        },
        "twoFactorAuth": {
            "title": "Two-factor authentication",
            "totpEnabled": "Enabled",
            "passkeyEnabled": "Enabled",
            "totpTitle": "TOTP",
            "passkeyTitle": "Passkey"
        },
        "notSet": "Not set",
        "enablePasskey": {
            "title": "Enable passkey"
        },
        "enableTotp": {
            "title": "Enable TOTP"
        },
        "disableTotp": {
            "title": "Disable TOTP"
        },
        "disablePasskey": {
            "title": "Disable Passkey"
        }
    },
    "backups": {
        "title": "Backups",
        "location": {
            "remount": "Remount Storage"
        },
        "schedule": {
            "title": "Schedule & retention",
            "schedule": "Schedule",
            "retentionPolicy": "Retention Policy"
        },
        "listing": {
            "title": "System Backups",
            "noBackups": "No backups",
            "contents": "Contents",
            "version": "Version",
            "noApps": "No apps",
            "appCount": "{{ appCount }} App(s)",
            "tooltipDownloadBackupConfig": "Download config",
            "cleanupBackups": "Cleanup backups",
            "backupNow": "Backup now",
            "tooltipPreservedBackup": "This backup will be preserved",
            "description": "System backups contain Cloudron configuration and app installation metadata. They can be used to <a href=\"{{restoreLink}}\" target=\"_blank\">restore</a> or <a href=\"{{migrateLink}}\" target=\"_blank\">migrate</a> the entire Cloudron installation to another server."
        },
        "backupDetails": {
            "title": "Backup Details",
            "id": "Backup ID",
            "date": "Created",
            "version": "Package version",
            "size": "Size",
            "duration": "Backup duration",
            "lastIntegrityCheck": "Last integrity check",
            "integrityNever": "never",
            "integrityInProgress": "In progress"
        },
        "configureBackupSchedule": {
            "title": "Configure Backup Schedule & Retention",
            "schedule": {
                "context": "Configure schedule & retention of backup site \"{{ name }}\"",
                "description": "Set the days and times for backups. Make sure this schedule does not overlap with the <a href=\"/#/system-update\">update schedule</a>.",
                "title": "Backup schedule"
            },
            "days": "Days",
            "hours": "Hours",
            "retentionPolicy": "Retention policy",
            "disable": "Disable automatic backups",
            "enable": "Enable automatic backups"
        },
        "configureBackupStorage": {
            "title": "Configure Backup Site",
            "provider": "Storage provider",
            "mountPoint": "Mount point",
            "mountPointDescription": "The mount point has to be set up manually. See <a href=\"{{ providerDocsLink }}\" target=\"_blank\">docs</a>.",
            "localDirectory": "Local backup directory",
            "hardlinksLabel": "Use hardlinks",
            "s3Endpoint": "Endpoint",
            "acceptSelfSignedCerts": "Accept self-signed certificate",
            "bucketName": "Bucket name",
            "prefix": "Prefix",
            "region": "Region",
            "s3AccessKeyId": "Access key ID",
            "s3SecretAccessKey": "Secret access key",
            "gcsServiceKey": "Service account key",
            "format": "Storage format",
            "s3LikeNote": "Please remove any object expiration lifecycle rules since it will corrupt rsync backups.",
            "encryptionPassword": "Encryption password",
            "encryptionDescription": "Save this passphrase in a safe place. Cloudron does not store this password. Backups cannot be decrypted without the passphrase.",
            "memoryLimit": "Memory limit",
            "memoryLimitDescription": "Memory limit for the backup task",
            "uploadPartSize": "Upload part size",
            "uploadPartSizeDescription": "Multi-part upload part size. Up to 3 parts are uploaded in parallel and requires as much memory.",
            "downloadConcurrency": "Download concurrency",
            "downloadConcurrencyDescription": "Number of files downloaded in parallel",
            "uploadConcurrency": "Upload concurrency",
            "uploadConcurrencyDescription": "Number of files uploaded in parallel",
            "copyConcurrency": "Copy concurrency",
            "copyConcurrencyDescription": "Number of remote file copied in parallel",
            "encryptionPasswordPlaceholder": "Passphrase used to encrypt the backups",
            "encryptionPasswordRepeat": "Repeat password",
            "server": "Server IP / Hostname",
            "remoteDirectory": "Remote directory",
            "username": "Username",
            "password": "Password",
            "port": "Port",
            "user": "User",
            "privateKey": "Private Key",
            "diskPath": "Disk path",
            "cifsSealSupport": "Use seal encryption (requires at least SMB v3)",
            "chown": "Remote file system supports chown",
            "encryptFilenames": "Encrypt filenames",
            "preserveAttributesLabel": "Preserve file attributes",
            "name": "Name",
            "encryptionHint": "Encryption password hint",
            "usesEncryption": "Backup is encrypted",
            "useForUpdates": "Store automatic-update backups here",
            "backupContents": {
                "title": "Backup contents",
                "description": "Choose what to back up to this site.",
                "everything": "Everything",
                "excludeSelected": "Exclude selected",
                "includeOnlySelected": "Include only selected",
                "context": "Configure contents of backup site \"{{ name }}\""
            },
            "automaticUpdates": {
                "title": "Backups of automatic updates",
                "description": "A backup is always created before automatic updates. Select this option to store those backups on this site."
            },
            "useEncryption": "Encrypt backups",
            "regionHelperText": "Defaults to \"us-east-1\" if left empty",
            "prefixHelperText": "Backups are stored inside this subfolder"
        },
        "backupEdit": {
            "title": "Edit Backup",
            "label": "Label",
            "preserved": {
                "description": "Keep backup permanently (excluded from retention policy)",
                "tooltip": "This will also preserve the mail and {{ appsLength }} app backup(s)."
            },
            "remotePath": "Remote path"
        },
        "archives": {
            "title": "App Archive",
            "info": "Info"
        },
        "deleteArchiveDialog": {
            "title": "Delete Archive",
            "description": "After deletion, the archive is cleaned up based on the backup policy.<br/><br/>Delete \"{{ appTitle }} ({{ appFqdn }})\"?"
        },
        "deleteArchive": {
            "deleteAction": "Delete"
        },
        "restoreArchiveDialog": {
            "title": "Restore from Archive",
            "description": "Restore \"{{appId}}\" to the specified location using the backup from {{creationTime}}",
            "restoreAction": "Restore",
            "restoreActionOverwrite": "Restore and overwrite DNS"
        },
        "sites": {
            "title": "Sites"
        },
        "site": {
            "addDialog": {
                "title": "Add Backup Site"
            }
        },
        "configAction": "Config",
        "contentAction": "Content",
        "configureContent": {
            "title": "Configure Backup Content"
        },
        "useFileAndFileNameEncryption": "File and filename encryption used",
        "useFileEncryption": "File encryption used",
        "checkIntegrity": "Check integrity",
        "stopIntegrity": "Stop integrity check"
    },
    "branding": {
        "title": "Branding",
        "cloudronName": "Cloudron name",
        "logo": "Logo",
        "footer": {
            "title": "Footer"
        },
        "backgroundImage": "Login page background"
    },
    "emails": {
        "title": "Email",
        "domains": {
            "title": "Domains",
            "outbound": "Outbound only",
            "disabled": "Disabled",
            "stats": "Mailboxes: {{ mailboxCount }} / Usage: {{ usage }}",
            "testEmailTooltip": "Send test email",
            "inbound": "Inbound & Outbound"
        },
        "settings": {
            "title": "Settings",
            "location": "Mail Server Location",
            "maxMailSize": "Maximum email size",
            "spamFilter": "Spam filtering",
            "spamFilterOverview": "{{ blacklistCount }} address(es) on the blocklist",
            "solrFts": "Full-text search",
            "acl": "Mail ACL",
            "aclOverview": "{{ dnsblZonesCount }} DNSBL zone(s)",
            "virtualAllMail": "\"All Mail\" folder"
        },
        "eventlog": {
            "title": "Event Log",
            "time": "Time",
            "details": "Details",
            "type": {
                "outgoing": "Outgoing",
                "deferred": "Deferred",
                "incoming": "Incoming",
                "queued": "Queued",
                "denied": "Denied",
                "bounce": "Bounce",
                "spamFilterTrained": "Spam filter trained",
                "bounceInfo": "Sending bounce",
                "deferredInfo": "Delivery failure, will retry in {{ delay }}s.",
                "inboundInfo": "Queued for inbound delivery",
                "outboundInfo": "Queued for outbound delivery",
                "deniedInfo": "Connection denied",
                "spamFilterTrainedInfo": "Spam filter trained using mailbox content",
                "overQuotaInfo": "Mailbox {{ mailbox }} is {{ quotaPercent }}% full",
                "underQuotaInfo": "Mailbox {{ mailbox }} has fallen below {{ quotaPercent }}% quota",
                "quota": "Mailbox Quota",
                "savedInfo": "Saved",
                "sentInfo": "Sent"
            },
            "mailFrom": "From",
            "rcptTo": "To"
        },
        "changeDomainDialog": {
            "description": "Set IMAP and SMTP server to the specified location",
            "setAction": "Set location"
        },
        "changeMailSizeDialog": {
            "description": "Incoming emails larger than this size are rejected"
        },
        "spamFilterDialog": {
            "title": "Spam Filtering",
            "blacklisteAddresses": "Email address blocklist",
            "blacklisteAddressesInfo": "Matched addresses will end up in the user's Spam folder. '*' and '?' glob patterns are supported.",
            "customRules": "Custom Spamassassin rules",
            "blacklisteAddressesPlaceholder": "Line separated email address patterns",
            "customRulesPlaceholder": "Custom Spamassassin Rules"
        },
        "testMailDialog": {
            "title": "Send test email",
            "description": "Sends a test email from <b>no-reply@{{ domain }}</b> to the specified address.",
            "sendAction": "Send"
        },
        "solrConfig": {
            "description": "Solr &amp; Tika can be used to provide fast full-text search for emails and attachments. Solr is only run if the <a href=\"/#/services\" target=\"_blank\">mail service</a> has been allocated at least 3GB RAM."
        },
        "typeFilterHeader": "All Events",
        "aclDialog": {
            "dnsblZones": "DNSBL zones",
            "dnsblZonesInfo": "Connecting IP address is looked up in these IP blocklists",
            "dnsblZonesPlaceholder": "Line separated zone names",
            "title": "Change Email ACL"
        },
        "mailboxSharing": {
            "title": "Mailbox sharing",
            "description": "When enabled, users can share their IMAP folders with other users"
        },
        "changeVirtualAllMailDialog": {
            "description": "The “All Mail” folder is a single folder that contains all emails. It can be useful in mail clients that do not support recursive folder search."
        }
    },
    "network": {
        "title": "Network",
        "ip": {
            "title": "IPv4",
            "description": "The IPv4 address used for DNS A records.",
            "provider": "Provider",
            "interface": "Network interface name",
            "configure": "Configure",
            "interfaceDescription": "List available devices on the server with:",
            "detected": "detected",
            "address": "IP address"
        },
        "firewall": {
            "title": "Firewall",
            "blockedIpRanges": "Blocked IPs & ranges",
            "blocklist": "{{ blockCount }} IP(s) blocked",
            "configure": {
                "title": "Firewall Configuration",
                "description": "Matched IP addresses will be blocked from accessing the server, including the mail server, the dashboard, and all apps. Make sure not to block your own IP.",
                "blocklistPlaceholder": "Line separated IP addresses or subnets"
            }
        },
        "dyndns": {
            "title": "Dynamic DNS",
            "description": "Keep DNS records in sync with a changing public IP address. Useful when Cloudron runs on a network with a frequently changing IP, such as a home connection."
        },
        "configureIp": {
            "title": "Configure IPv4",
            "providerGenericDescription": "The Public IP address of the server will be automatically detected."
        },
        "ipv4": {
            "address": "IPv4 address"
        },
        "ipv6": {
            "address": "IPv6 address",
            "title": "IPv6",
            "description": "The IPv6 address used for DNS AAAA records."
        },
        "configureIpv6": {
            "title": "Configure IPv6"
        },
        "trustedIps": {
            "description": "HTTP headers from matching IP addresses will be trusted.",
            "title": "Configure Trusted IPs",
            "summary": "{{ trustCount }} IPs trusted"
        },
        "trustedIpRanges": "Trusted IPs & ranges "
    },
    "services": {
        "title": "Services",
        "description": "Services provide functionality such as databases, email and authentication.",
        "service": "Service",
        "memoryUsage": "Memory usage",
        "memoryLimit": "Memory limit",
        "restartActionTooltip": "Restart",
        "configure": {
            "title": "Configure Service",
            "resetToDefaults": "Reset to default",
            "enableRecoveryMode": "Enable recovery mode",
            "description": "Configure service \"{{ name }}\""
        }
    },
    "settings": {
        "title": "Settings",
        "appstoreAccount": {
            "title": "Cloudron.io Account",
            "description": "A Cloudron.io account is used to manage your subscription.",
            "setupAction": "Set up account",
            "subscription": "Subscription",
            "cloudronId": "Cloudron ID",
            "subscriptionChangeAction": "Manage subscription",
            "subscriptionReactivateAction": "Reactivate Subscription",
            "emailNotVerified": "Email not yet verified",
            "account": "Account",
            "unlinkAction": "Unlink account",
            "unlinkDialog": {
                "title": "Unlink Cloudron.io Account",
                "description": "Unlink this Cloudron from the current Cloudron.io account. It can then be <a href=\"https://docs.cloudron.io/appstore/#account-change\" target=\"_blank\">linked</a> to another account."
            }
        },
        "timezone": {
            "title": "System time zone",
            "description": "Used to schedule backups and updates. UI timestamps always follow the browser’s time zone."
        },
        "updates": {
            "title": "Updates",
            "checkForUpdatesAction": "Check for updates",
            "updateAvailableAction": "Update available",
            "stopUpdateAction": "Stop update",
            "disabled": "Disabled",
            "description": "Updates are applied on the configured schedule, using the <a href=\"/#/system-settings\">System time zone</a>.",
            "onLatest": "latest",
            "config": "Automatic updates",
            "appsOnly": "Apps only",
            "platformAndApps": "Platform & apps"
        },
        "updateScheduleDialog": {
            "disableCheckbox": "Disable automatic updates",
            "enableCheckbox": "Enable automatic updates",
            "selectOne": "Select at least one day and time",
            "description": "Set the days and times for automatic platform and app updates. Ensure this schedule doesn’t overlap with backup schedules."
        },
        "updateDialog": {
            "title": "Update Cloudron",
            "blockingApps": "The apps below are blocking the update because they have pending actions:",
            "blockingAppsInfo": "Please wait for the above operations to finish.",
            "unstableWarning": "This update is a pre-release and not considered stable yet. Please update at your own risk.",
            "changes": "Changes",
            "skipBackupCheckbox": "Skip backup",
            "updateAction": "Update",
            "updateAvailable": "Cloudron {{  newVersion }} is available"
        },
        "language": {
            "title": "Language",
            "description": "The default language for Cloudron and system emails (e.g. invitations, password resets). Users can override the dashboard language in their profile."
        },
        "registryConfig": {
            "provider": "Docker registry provider",
            "providerOther": "Other"
        },
        "configureUpdates": {
            "title": "Configure Automatic Updates",
            "policy": "Policy",
            "policyDescription": "Choose what gets updated automatically",
            "days": "Days",
            "hours": "Hours",
            "schedule": "Schedule"
        }
    },
    "support": {
        "help": {
            "title": "Help",
            "description": "Please use the following resources for help and support:\n\n* [Cloudron Forum]({{ forumLink }}) - Please use the Support and App specific categories for questions.\n* [Documentation]({{ docsLink }})\n* [App Packaging]({{ packagingLink }})\n* [API]({{ apiLink }})"
        }
    },
    "system": {
        "diskUsage": {
            "title": "Disk Usage"
        },
        "systemMemory": {
            "title": "System Memory"
        },
        "cpuUsage": {
            "title": "CPU"
        },
        "info": {
            "vendor": "Vendor",
            "product": "Product",
            "memory": "Memory",
            "uptime": "Uptime",
            "activationTime": "Cloudron creation time",
            "cloudronVersion": "Cloudron version",
            "ubuntuVersion": "Ubuntu version"
        },
        "graphs": {
            "title": "Graphs"
        },
        "locale": {
            "title": "Locale"
        },
        "title": "System",
        "settings": {
            "title": "Settings"
        }
    },
    "eventlog": {
        "title": "Event Log",
        "time": "Time",
        "source": "Source",
        "details": "Details",
        "filterAllEvents": "All Events"
    },
    "domains": {
        "title": "Domains",
        "domain": "Domain",
        "provider": "Provider",
        "renewCerts": {
            "title": "Renew Certificates",
            "description": "Let’s Encrypt certificates renew automatically. You can renew them manually if needed.",
            "renewAllAction": "Renew all certs"
        },
        "changeDashboardDomain": {
            "title": "Dashboard Domain",
            "description": "Change the dashboard to the “my” subdomain of the selected domain",
            "changeAction": "Change domain",
            "confirmMessage": "This will invalidate all passkeys for users.",
            "confirmTitle": "Really change dashboard domain?"
        },
        "domainDialog": {
            "addTitle": "Add Domain",
            "editTitle": "Edit Domain",
            "domain": "Domain",
            "provider": "DNS provider",
            "route53AccessKeyId": "Access key ID",
            "route53SecretAccessKey": "Secret access key",
            "gcdnsServiceAccountKey": "Service account key",
            "digitalOceanToken": "DigitalOcean token",
            "gandiApiKey": "Gandi API key",
            "goDaddyApiKey": "GoDaddy API key",
            "goDaddyApiSecret": "GoDaddy API secret",
            "cloudflareTokenType": "Token type",
            "cloudflareTokenTypeGlobalApiKey": "Global API key",
            "cloudflareTokenTypeApiToken": "API token",
            "cloudflareEmail": "Cloudflare Email",
            "linodeToken": "Linode token",
            "nameComUsername": "Name.com username",
            "nameComApiToken": "API token",
            "namecheapUsername": "Namecheap username",
            "namecheapApiKey": "Namecheap API Key",
            "namecheapInfo": "The server’s IP address must be added to the allowlist for this API key",
            "manualInfo": "All DNS records must be set up manually before installing an app",
            "wildcardInfo": "Manually set up A (IPv4) and AAAA (IPv6) DNS records for <b>*.{{ domain }}.</b> and <b>{{ domain }}.</b> pointing to this server",
            "letsEncryptInfo": "Let's Encrypt requires your server to be reachable on port 80",
            "advancedAction": "Advanced settings…",
            "zoneName": "Zone name",
            "fallbackCert": "Fallback Certificate (optional)",
            "fallbackCertCustomCert": "Custom Certificate",
            "fallbackCertCustomCertInfo": "Provide a <a href=\"{{ customCertLink }}\" target=\"_blank\">wildcard certificate</a> to use for all apps on this domain. If not provided, a self-signed certificate is automatically generated.",
            "fallbackCertKeyPlaceholder": "Key",
            "fallbackCertCertificatePlaceholder": "Certificate",
            "matrixHostname": "Matrix server location",
            "mastodonHostname": "Mastodon server location",
            "netcupCustomerNumber": "Netcup customer number",
            "netcupApiKey": "Netcup API key",
            "netcupApiPassword": "Netcup API password",
            "vultrToken": "Vultr token",
            "jitsiHostname": "Jitsi location",
            "hetznerToken": "Hetzner token",
            "cloudflareDefaultProxyStatus": "Enable proxying for new DNS records",
            "porkbunApikey": "Porkbun API key",
            "porkbunSecretapikey": "Porkbun secret API key",
            "bunnyAccessKey": "Bunny access key",
            "dnsimpleAccessToken": "Access token",
            "ovhEndpoint": "OVH endpoint",
            "ovhConsumerKey": "OVH consumer key",
            "ovhAppKey": "OVH application key",
            "ovhAppSecret": "OVH application secret",
            "deSecToken": "deSEC token",
            "gandiTokenType": "Token type",
            "gandiTokenTypeApiKey": "API key (Deprecated)",
            "gandiTokenTypePAT": "Personal Access Token (PAT)",
            "inwxUsername": "INWX username",
            "inwxPassword": "INWX password",
            "customNameservers": "Domain uses custom (vanity) nameservers",
            "zoneNamePlaceholder": "Optional. If not provided, defaults to the root domain.",
            "carddavLocation": "CardDAV server location",
            "caldavLocation": "CalDAV server location"
        },
        "removeDialog": {
            "title": "Remove Domain",
            "removeAction": "Remove",
            "description": "Remove domain \"{{ domain }}\" ?"
        },
        "syncDns": {
            "title": "Sync DNS",
            "description": "Updates app and email DNS records for all domains.",
            "syncAction": "Sync DNS"
        },
        "emptyPlaceholder": "No Domains",
        "noMatchesPlaceholder": "No matching domain",
        "description": "Adding a domain allows you to install apps on its subdomains.",
        "wellknown": {
            "editAction": "Well-known URIs",
            "title": "Well-known URIs",
            "context": "Configure responses to \"https://{{ domain }}/.well-known/\" URLs",
            "description": "This feature requires an app installed on the root domain \"{{ domain }}\".  See the <a href=\"{{docsLink}}\" target=\"_blank\">documentation</a> for details."
        }
    },
    "notifications": {
        "dismissTooltip": "Dismiss",
        "markAllAsRead": "Mark all as read",
        "settings": {
            "title": "Notification Settings",
            "backupFailed": "Backup failed",
            "certificateRenewalFailed": "Certificate renewal failed",
            "appOutOfMemory": "App ran out of memory",
            "appUp": "App is back online",
            "appDown": "App is down",
            "rebootRequired": "Server reboot required",
            "cloudronUpdateFailed": "Cloudron update failed",
            "diskSpace": "Low disk space",
            "appAutoUpdateFailed": "App automatic update failed"
        },
        "settingsDialog": {
            "description": "An email will be sent for the selected events to your primary email."
        },
        "allCaughtUp": "All caught up",
        "title": "Notifications",
        "showAll": "All",
        "showUnread": "Unread",
        "markUnread": "Mark as unread",
        "markRead": "Mark as read"
    },
    "logs": {
        "title": "Logs",
        "clear": "Clear view",
        "download": "Download full logs"
    },
    "terminal": {
        "title": "Terminal",
        "download": {
            "download": "Download file",
            "title": "Download File",
            "description": "Enter the path of a file or directory to download from the app’s file system."
        },
        "scheduler": "Scheduler/Cron",
        "downloadAction": "Download file",
        "uploadTo": "Upload to {{ path }}"
    },
    "filemanager": {
        "title": "File Manager",
        "removeDialog": {
            "reallyDelete": "Really delete?"
        },
        "newDirectoryDialog": {
            "title": "New folder",
            "create": "Create"
        },
        "newFileDialog": {
            "title": "New filename",
            "create": "Create"
        },
        "renameDialog": {
            "reallyOverwrite": "A file with that name already exists. Overwrite existing file?",
            "title": "Rename {{ fileName }}",
            "newName": "New Name",
            "rename": "Rename"
        },
        "toolbar": {
            "new": "New",
            "upload": "Upload",
            "newFile": "New file",
            "newFolder": "New folder",
            "uploadFile": "Upload file",
            "restartApp": "Restart App",
            "uploadFolder": "Upload folder",
            "openTerminal": "Open terminal",
            "openLogs": "Open logs",
            "refresh": "Refresh"
        },
        "extractionInProgress": "Extraction in progress",
        "pasteInProgress": "Pasting in progress",
        "deleteInProgress": "Deletion in progress",
        "chownDialog": {
            "title": "Change owner",
            "newOwner": "New owner",
            "change": "Change owner",
            "recursiveCheckbox": "Change owner recursively"
        },
        "uploadingDialog": {
            "title": "Uploading files ({{ countDone }}/{{ count }})",
            "errorAlreadyExists": "One or more files already exist.",
            "errorFailed": "Failed to upload one or more files. Please try again.",
            "closeWarning": "Do not refresh the page until upload has finished.",
            "retry": "Retry",
            "overwrite": "Overwrite"
        },
        "extractDialog": {
            "title": "Extracting {{ fileName }}",
            "closeWarning": "Do not refresh the page until extract has finished."
        },
        "textEditorCloseDialog": {
            "title": "File has unsaved changes",
            "details": "Your changes will be lost if you don't save them",
            "dontSave": "Don't Save"
        },
        "notFound": "Not found",
        "list": {
            "name": "Name",
            "size": "Size",
            "owner": "Owner",
            "empty": "No files",
            "symlink": "symlink to {{ target }}",
            "menu": {
                "rename": "Rename",
                "chown": "Change ownership",
                "extract": "Extract Here",
                "download": "Download",
                "delete": "Delete",
                "edit": "Edit",
                "cut": "Cut",
                "copy": "Copy",
                "paste": "Paste",
                "selectAll": "Select all",
                "open": "Open"
            },
            "mtime": "Modified"
        },
        "extract": {
            "error": "Failed to extract: {{ message }}"
        },
        "newDirectory": {
            "errorAlreadyExists": "Already exists"
        },
        "newFile": {
            "errorAlreadyExists": "Already exists"
        },
        "status": {
            "restartingApp": "restarting app"
        },
        "uploader": {
            "uploading": "Uploading",
            "exitWarning": "Upload still in progress. Really close this page?"
        },
        "textEditor": {
            "undo": "Undo",
            "redo": "Redo",
            "save": "Save"
        }
    },
    "email": {
        "config": {
            "title": "Email Configuration  {{ domain }}",
            "clientConfiguration": "Configuring Email Clients",
            "sending": {
                "title": "Sending"
            },
            "receiving": {
                "title": "Receiving"
            }
        },
        "incoming": {
            "title": "Incoming Email",
            "outgointServerInfo": "Outgoing Mail (SMTP)",
            "sieveServerInfo": "ManageSieve",
            "server": "Server",
            "port": "Port",
            "mailboxes": {
                "title": "Mailboxes",
                "addAction": "Add",
                "name": "Name",
                "owner": "Owner",
                "aliases": "Aliases",
                "usage": "Usage",
                "emptyPlaceholder": "No mailboxes",
                "noMatchesPlaceholder": "No matching mailboxes",
                "stats": "Count: {{ mailboxCount }} / Usage: {{ usage }}"
            },
            "mailinglists": {
                "title": "Mailing Lists",
                "name": "Name",
                "members": "Members",
                "everyoneTooltip": "Posting allowed by non-members",
                "membersOnlyTooltip": "Posting restricted to members only",
                "emptyPlaceholder": "No mailing lists",
                "noMatchesPlaceholder": "No matching mailing lists"
            },
            "catchall": {
                "title": "Catch-all",
                "description": "Emails sent to non-existing addresses will be forwarded to the following mailboxes",
                "saveAction": "Save"
            },
            "incomingServerInfo": "Incoming Mail (IMAP)",
            "howToConnectDescription": "Use the settings below to configure email clients.",
            "incomingUserInfo": "Username",
            "incomingPasswordInfo": "Password",
            "incomingPasswordUsage": "Password of the owner of the mailbox",
            "description": "Receive incoming emails for this domain"
        },
        "outbound": {
            "title": "Email Relay",
            "description": "Configure outbound mail delivery for this domain",
            "noopAdminDomainWarning": "Cloudron cannot send user invites, password reset and other notifications when outbound email is disabled on the primary domain",
            "noopNonAdminDomainWarning": "No email will be sent from this domain",
            "mailRelay": {
                "host": "SMTP host",
                "port": "SMTP port (STARTTLS)",
                "selfsignedCheckbox": "Accept self-signed certificate",
                "apiTokenOrKey": "API Token/Key",
                "username": "Username",
                "password": "Password",
                "spfDocInfo": "Cloudron does not automatically set up SPF record. Set it up manually by following the <a href=\"{{ spfDocsLink }}\" target=\"_blank\">{{ name }} docs</a>."
            }
        },
        "signature": {
            "title": "Email Signature",
            "description": "The text here will be attached to all outbound mail from this domain.",
            "plainTextFormat": "Text format",
            "htmlFormat": "HTML format",
            "customSignatureSet": "Custom signature configured",
            "noSignatureSet": "No signature configured"
        },
        "dnsStatus": {
            "description": "Status of DNS Records may show an error while DNS is propagating (~5 minutes). See the <a href=\"{{ emailDnsDocsLink }}\" target=\"_blank\">troubleshooting</a> docs for help.",
            "namecheapInfo": "Namecheap requires manual steps for MX records",
            "ptrInfo": "The PTR record is set by your VPS provider and not by your DNS provider.",
            "hostname": "Hostname",
            "domain": "Domain",
            "expected": "Expected value",
            "current": "Current value",
            "type": "Record type",
            "recordNotSet": "not set"
        },
        "smtpStatus": {
            "blacklisted": "This server's IP {{ ip }} is on a blocklist.",
            "notBlacklisted": "This server's IP {{ ip }} is <b>not</b> on a blocklist.",
            "outboundSmtp": "Outbound SMTP",
            "rblCheck": "DNS Blacklist Check"
        },
        "enableEmailDialog": {
            "title": "Enable Incoming Email",
            "description": "Cloudron will start receiving email for \"{{ domain }}\". See the documentation for the  <a href=\"{{ requiredPortsDocsLink }}\" target=\"_blank\">required ports</a>.",
            "noProviderInfo": "No DNS provider is set up. The DNS records listed in the Status tab have to be set up manually.",
            "setupDnsCheckbox": "Set up Mail DNS records now",
            "setupDnsInfo": "Automatically set up mail DNS records. You can also <a href=\"/#/domains\">sync DNS</a> later if you need to  <a href=\"{{ importEmailDocsLink }}\">import</a> mailboxes first.",
            "enableAction": "Enable"
        },
        "disableEmailDialog": {
            "title": "Disable Incoming Email",
            "description": "Cloudron will stop receiving emails for \"{{ domain }}\". Mailboxes and mailing lists on this domain will not be deleted.",
            "disableAction": "Disable"
        },
        "addMailboxDialog": {
            "title": "Add Mailbox",
            "name": "Mailbox name",
            "incomingDisabledWarning": "Incoming email for this domain is not enabled"
        },
        "editMailboxDialog": {
            "title": "Edit Mailbox",
            "owner": "Mailbox owner",
            "aliases": "Aliases",
            "noAliases": "No aliases",
            "addAliasAction": "Add an alias",
            "addAnotherAliasAction": "Add another alias",
            "enableStorageQuota": "Storage quota"
        },
        "deleteMailboxDialog": {
            "title": "Delete Mailbox",
            "description": "After deletion, emails sent to this mailbox will bounce. You can choose to not delete existing emails for archival purposes. Archived emails are located at \"/home/yellowtent/boxdata/mail/vmail\" on the server.<br/><br/>Delete \"{{ name }}@{{ domain }}\"?",
            "purgeMailboxCheckbox": "Delete all mail and filters in this mailbox",
            "deleteAction": "Delete"
        },
        "addMailinglistDialog": {
            "title": "Add Mailing List",
            "members": "Mailing list members",
            "membersOnlyCheckbox": "Restrict posting to members",
            "name": "Mailing list name"
        },
        "editMailinglistDialog": {
            "title": "Edit Mailing List"
        },
        "deleteMailinglistDialog": {
            "title": "Delete Mailing List",
            "description": "Delete mailing list\"{{ name }}@{{ domain }}\"?",
            "deleteAction": "Delete"
        },
        "updateMailinglistDialog": {
            "activeCheckbox": "Mailing list is active"
        },
        "updateMailboxDialog": {
            "activeCheckbox": "Mailbox is active",
            "enablePop3": "POP3 access"
        },
        "howToConnectInfoModal": "Configuring Email Clients",
        "customFrom": {
            "title": "Allow custom from address",
            "description": "Let authenticated users and apps use any from address"
        }
    },
    "app": {
        "logsActionTooltip": "Logs",
        "terminalActionTooltip": "Terminal",
        "filemanagerActionTooltip": "File manager",
        "docsActionTooltip": "Documentation",
        "firstTimeSetupAction": "First Time Setup",
        "docsAction": "Documentation",
        "adminPageAction": "Admin Page",
        "projectWebsiteAction": "Project website",
        "displayTabTitle": "Display",
        "locationTabTitle": "Location",
        "accessControlTabTitle": "Access Control",
        "resourcesTabTitle": "Resources",
        "storageTabTitle": "Storage",
        "graphsTabTitle": "Graphs",
        "securityTabTitle": "Security",
        "emailTabTitle": "Email",
        "updatesTabTitle": "Updates",
        "backupsTabTitle": "Backups",
        "repairTabTitle": "Repair",
        "uninstallTabTitle": "Uninstall",
        "display": {
            "label": "Label",
            "tags": "Tags",
            "icon": "Icon",
            "tagsPlaceholder": "Use space to separate tags",
            "tagsTooltip": "For grouping in the dashboard",
            "saveAction": "Save"
        },
        "location": {
            "location": "Location",
            "locationPlaceholder": "Leave empty to use bare domain",
            "redirections": "Redirections",
            "noRedirections": "No redirect domains",
            "addRedirectionAction": "Add a redirection",
            "saveAction": "Save",
            "aliases": "Aliases",
            "addAliasAction": "Add an alias",
            "noAliases": "No alias domains",
            "dnsoverwrite": "Some DNS records already exist. Agree to overwrite."
        },
        "accessControl": {
            "userManagement": {
                "description": "Configure who can log in and use the app",
                "descriptionSftp": "This setting also controls SFTP access.",
                "dashboardVisibility": "Dashboard visibility",
                "visibleForAllUsers": "Visible to all users on this Cloudron",
                "visibleForSelected": "Only visible to the following users and groups"
            },
            "sftp": {
                "title": "SFTP",
                "server": "Server",
                "port": "Port",
                "username": "Username"
            },
            "operators": {
                "title": "Operators",
                "description": "Configure who can maintain the app"
            },
            "dashboardVisibility": {
                "description": "Configure who can see this app on the dashboard."
            }
        },
        "resources": {
            "memory": {
                "title": "Memory limit",
                "description": "Maximum memory the app can use",
                "resizeAction": "Resize"
            },
            "cpu": {
                "setAction": "Scale",
                "title": "CPU limit",
                "description": "Maximum percent of CPU the app can use"
            },
            "devices": {
                "label": "Devices",
                "description": "Comma-separated list of devices attached to the app"
            }
        },
        "storage": {
            "appdata": {
                "title": "Data directory",
                "description": "Move the app’s data to a <a href=\"/#/volumes\">volume</a>. Any data here is included in the app’s backup.",
                "moveAction": "Move data",
                "mountTypeWarning": "The destination file system must support file permissions and ownership for the move to work"
            },
            "mounts": {
                "title": "Volume mounts",
                "volume": "Volume",
                "noMounts": "No volumes mounted",
                "addMountAction": "Add a volume mount",
                "saveAction": "Save",
                "permissions": {
                    "readOnly": "Read Only",
                    "readWrite": "Read and Write",
                    "label": "Permissions"
                }
            }
        },
        "graphs": {
            "period": {
                "12h": "12 hours",
                "24h": "24 hours",
                "7d": "7 days",
                "30d": "30 days",
                "6h": "6 hours",
                "live": "Live",
                "1h": "1 hour"
            },
            "diskIOTotal": "Total read: {{ read }}  Total write: {{ write }}",
            "networkIOTotal": "Total inbound: {{ inbound }} Total outbound: {{ outbound }}"
        },
        "email": {
            "from": {
                "title": "Mail from address",
                "mailboxPlaceholder": "Mailbox name",
                "saveAction": "Save",
                "enable": "Use Cloudron Mail to send email",
                "disable": "Do not configure the app's mail delivery settings",
                "enableDescription": "Configure the app to send email using the address below and <a href=\"{{ domainConfigLink }}\">outbound email</a> settings.",
                "disableDescription": "The app's mail delivery settings remain unchanged. You can configure them inside the app.",
                "displayName": "From name"
            },
            "inbox": {
                "disable": "Do not configure inbox",
                "disableDescription": "The app's incoming mail settings remain unchanged. You can configure them inside the app. Select this option if the domain’s email is not hosted on Cloudron.",
                "title": "Incoming mail",
                "enable": "Use Cloudron Mail to receive emails",
                "enableDescription": "Configure the app to receive email using the address below. Select this option if {{ domain }}'s email is hosted on this server."
            },
            "configuration": {
                "title": "Outbound mail"
            }
        },
        "security": {
            "csp": {
                "description": "Override any CSP headers defined by the app",
                "title": "Content Security Policy",
                "saveAction": "Save",
                "insertCommonCsp": "Insert common CSP",
                "commonPattern": {
                    "allowEmbedding": "Allow embedding",
                    "sameOriginEmbedding": "Allow embedding (only subdomains)",
                    "allowCdnAssets": "Allow CDN assets",
                    "reportOnly": "Report CSP violations",
                    "strictBaseline": "Strict baseline"
                }
            },
            "robots": {
                "title": "Robots.txt",
                "description": "By default, bots can index this app",
                "commonPattern": {
                    "allowAll": "Allow all (default)",
                    "disallowAll": "Disallow all",
                    "disallowCommonBots": "Disallow common bots",
                    "disallowAdminPaths": "Disallow admin paths",
                    "disallowApiPaths": "Disallow API paths"
                },
                "insertCommonRobotsTxt": "Insert common robots.txt"
            },
            "hstsPreload": "Enable HSTS Preload (including subdomains)"
        },
        "updates": {
            "info": {
                "description": "App title & version",
                "appId": "App ID",
                "packageVersion": "Package version",
                "lastUpdated": "Last updated",
                "customAppUpdateInfo": "Auto-update is not available for custom apps.",
                "installedAt": "Installed",
                "packager": "Packager"
            },
            "auto": {
                "description": "App updates are applied periodically based on the <a href=\"/#/system-update\">update schedule</a>",
                "title": "Automatic updates"
            },
            "updates": {
                "description": "Cloudron automatically checks for app updates. You can also check manually."
            }
        },
        "backups": {
            "backups": {
                "title": "Backups",
                "description": "Create a complete snapshot of the app",
                "downloadConfigTooltip": "Download config",
                "cloneTooltip": "Clone",
                "restoreTooltip": "Restore",
                "createBackupAction": "Create backup",
                "importAction": "Import backup",
                "downloadBackupTooltip": "Download",
                "checkIntegrity": "Check Integrity"
            },
            "import": {
                "title": "Import",
                "description": "Import app from an external backup"
            },
            "auto": {
                "title": "Automatic backups",
                "description": "Back up the app periodically to the configured <a href=\"/#/backup-sites\">Backup Sites</a>"
            }
        },
        "repair": {
            "recovery": {
                "title": "Recovery mode",
                "description": "To fix broken plugins or misconfiguration, place the app in recovery mode.",
                "restartAction": "Restart",
                "disableAction": "Disable recovery mode",
                "enableAction": "Enable recovery mode"
            },
            "taskError": {
                "title": "Task error",
                "description": "Retry a failed installation, configuration, update, restore, or backup task.",
                "retryAction": "Retry {{ task }} task"
            },
            "restart": {
                "title": "Restart",
                "description": "If the app is not responding, try restarting the app."
            }
        },
        "uninstall": {
            "uninstall": {
                "title": "Uninstall",
                "description": "Uninstall the app and delete its data. Backups are cleaned up according to the backup policy.",
                "uninstallAction": "Uninstall"
            }
        },
        "appInfo": {
            "package": "Package",
            "openAction": "Open {{ app }}",
            "checklist": "Admin Checklist",
            "checklistShow": "Show Checklist",
            "checklistHide": "Hide Checklist"
        },
        "uninstallDialog": {
            "title": "Uninstall App",
            "description": "Uninstall \"{{ app }}\" and remove all its data?",
            "uninstallAction": "Uninstall"
        },
        "importBackupDialog": {
            "title": "Import Backup",
            "uploadAction": "upload a Backup Config",
            "importAction": "Import",
            "remotePath": "Backup path",
            "provideBackupInfo": "Provide the backup information to restore from, or",
            "warning": "Any data created since the last backup will be permanently lost. It’s recommended to create a new backup before importing.",
            "versionMustMatchInfo": "The backup must have been created using the same package version and access control settings as this app."
        },
        "updateDialog": {
            "title": "Update {{ app }}",
            "unstableWarning": "This update is a pre-release and not considered stable yet. Please update at your own risk.",
            "changelogHeader": "Changes for new package version {{ version}}:",
            "subscriptionExpired": "Your Cloudron subscription has expired. Please set up a subscription to update the app.",
            "skipBackupCheckbox": "Skip backup",
            "setupSubscriptionAction": "Set up Subscription",
            "updateAction": "Update"
        },
        "restoreDialog": {
            "title": "Restore App",
            "description": "Restore \"{{ fqdn }}\" from the backup created on {{ creationTime }} ?",
            "warning": "Any data created since the last backup will be permanently lost. It’s recommended to create a new backup before restoring.",
            "restoreAction": "Restore",
            "cloneAction": "Clone",
            "cloneActionOverwrite": "Clone and overwrite DNS"
        },
        "cloneDialog": {
            "title": "Clone App",
            "description": "Clone using the backup from <b>{{ creationTime }}</b> (version <b>{{ packageVersion }}</b>).",
            "location": "Location"
        },
        "eventlogTabTitle": "Event Log",
        "sftpInfoAction": "SFTP Access",
        "cronTabTitle": "Cron",
        "cron": {
            "title": "Crontab",
            "saveAction": "Save",
            "addCommonPattern": "Insert common pattern",
            "commonPattern": {
                "everyMinute": "Every Minute",
                "everyHour": "Every Hour",
                "twicePerHour": "Twice per Hour",
                "everyDay": "Every Day",
                "twicePerDay": "Twice per Day",
                "everySunday": "Every Sunday",
                "daily": "Daily",
                "hourly": "Hourly",
                "service": "Service (runs once)"
            },
            "description": "Cron jobs required for the app to function are already integrated into the app package. Only add additional jobs specific to your setup here."
        },
        "forumUrlAction": "Need help? Ask in the forum",
        "addApplinkDialog": {
            "title": "Add External Link"
        },
        "editApplinkDialog": {
            "title": "Edit External Link"
        },
        "applinks": {
            "upstreamUri": "External URL",
            "label": "Label"
        },
        "servicesTabTitle": "Services",
        "turn": {
            "title": "TURN autoconfiguration",
            "info": "Use the built-in TURN server. When disabled, the app’s TURN settings remain unchanged."
        },
        "redis": {
            "title": "Redis autoconfiguration",
            "info": "Use the built-in Redis service. When disabled, the app’s Redis settings remain unchanged."
        },
        "infoTabTitle": "Info",
        "info": {
            "notes": {
                "title": "Admin notes"
            }
        },
        "archive": {
            "title": "Archive",
            "description": "Add the latest app backup to the <a href=\"/#/app-archive\">App Archive</a> and uninstall the app.",
            "action": "Archive",
            "latestBackupInfo": "The last backup was created on {{siteName}} at {{date}}.",
            "noBackup": "This app has no backup. Archiving requires a recent backup."
        },
        "archiveDialog": {
            "title": "Archive App",
            "description": "Uninstall the app \"{{ app }}\" and move its latest backup (created on {{ date }}) to the app archive?"
        },
        "updateAvailableTooltip": "Update available",
        "configureTooltip": "Configure",
        "forumAction": "Forum",
        "appLink": {
            "title": "External Link"
        },
        "start": {
            "title": "Start",
            "description": "Start the app to make it available again.",
            "action": "Start"
        },
        "stop": {
            "action": "Stop",
            "title": "Stop",
            "description": "Stop the app to conserve resources. Back up before stopping to preserve recent changes."
        }
    },
    "login": {
        "errorIncorrectCredentials": "Incorrect username or password",
        "username": "Username",
        "password": "Password",
        "2faToken": "2FA Token",
        "resetPasswordAction": "Reset password",
        "errorIncorrect2FAToken": "2FA token is invalid",
        "errorInternal": "Internal error, try again later",
        "loginAction": "Log in",
        "usePasskeyAction": "Use passkey",
        "errorPasskeyFailed": "Failed to login with passkey",
        "passkeyAction": "Log in with a passkey"
    },
    "passwordReset": {
        "title": "Password reset",
        "usernameOrEmail": "Username or email",
        "resetAction": "Reset",
        "backToLoginAction": "Back to login",
        "emailSent": {
            "title": "Password reset email sent"
        },
        "newPassword": {
            "title": "Set new password",
            "password": "New password",
            "passwordRepeat": "Repeat password"
        },
        "passwordChanged": {
            "submitAction": "Submit"
        },
        "success": {
            "title": "Password changed",
            "openDashboardAction": "Open dashboard"
        }
    },
    "setupAccount": {
        "description": "Please set up your account",
        "username": "Username",
        "fullName": "Full name",
        "password": "New password",
        "passwordRepeat": "Repeat password",
        "errorPassword": "Password must be at least 8 characters",
        "errorPasswordNoMatch": "Passwords don't match",
        "setupAction": "Set up",
        "invalidToken": {
            "title": "Invalid or expired invite link",
            "description": "Contact your server admin to get a new invite link."
        },
        "success": {
            "title": "Your account is ready",
            "openDashboardAction": "Open dashboard"
        },
        "noUsername": {
            "title": "Cannot set up account",
            "description": "Account cannot be set up without a username. Please contact the administrator."
        },
        "welcome": "Welcome"
    },
    "welcomeEmail": {
        "welcomeTo": "Welcome to <%= cloudronName %>!",
        "salutation": "Hi <%= user %>,",
        "inviteLinkAction": "Get started",
        "invitor": "You are receiving this email because you were invited by <%= invitor %>.",
        "inviteLinkActionText": "Follow the link to get started: <%- inviteLink %>",
        "subject": "Welcome to <%= cloudron %>"
    },
    "passwordResetEmail": {
        "salutation": "Hi <%= user %>,",
        "description": "Someone, hopefully you, has requested your account's password be reset. If you did not request this reset, please ignore this message.",
        "resetAction": "Click to reset your password",
        "expireNote": "Please note that the password reset link will expire in 24 hours.",
        "resetActionText": "To reset your password, please visit the following page: <%- resetLink %>",
        "subject": "[<%= cloudron %>] Password Reset"
    },
    "volumes": {
        "title": "Volumes",
        "name": "Name",
        "openFileManagerActionTooltip": "File manager",
        "addVolumeDialog": {
            "title": "Add Volume",
            "server": "Server IP / Hostname",
            "remoteDirectory": "Remote directory",
            "username": "Username",
            "password": "Password",
            "diskPath": "Disk path",
            "port": "Port",
            "user": "User",
            "privateKey": "Private SSH key"
        },
        "removeVolumeDialog": {
            "removeAction": "Remove",
            "title": "Remove Volume",
            "description": "Remove volume \"{{ volumeName }}\"?"
        },
        "description": "Volumes are local or remote file systems. They can be used for an app’s primary data storage or shared between apps.",
        "mountType": "Mount type",
        "localDirectory": "Local directory",
        "remountActionTooltip": "Remount",
        "editVolumeDialog": {
            "title": "Edit Volume"
        },
        "emptyPlaceholder": "No volumes"
    },
    "newLoginEmail": {
        "subject": "[<%= cloudron %>] New login on your account",
        "topic": "We've noticed a new login on your Cloudron account.",
        "salutation": "Hi <%= user %>,",
        "notice": "We noticed a login on your Cloudron account from a new device.",
        "action": "If this was you, you can safely disregard this email. If this wasn't you, you should change your password immediately."
    },
    "storage": {
        "mounts": {
            "description": "Mounted volumes can be accessed at \"/media/(volume name)\". Mounted data is not included in the app's backup."
        }
    },
    "oidc": {
        "newClientDialog": {
            "title": "Add OIDC Client",
            "createAction": "Add"
        },
        "client": {
            "name": "Client name",
            "id": "Client ID",
            "secret": "Client secret",
            "signingAlgorithm": "Signing algorithm",
            "loginRedirectUri": "Login callback URLs",
            "loginRedirectUriPlaceholder": "Comma-separated URLs"
        },
        "description": "Cloudron’s OpenID provider can be used for single sign-on with external applications.",
        "editClientDialog": {
            "title": "Edit Client"
        },
        "deleteClientDialog": {
            "title": "Delete Client",
            "description": "After deletion, any access tokens issued by this client will be invalidated. Apps using it will no longer be able to authenticate.<br/><br/>Delete client \"{{ clientName }}\"?"
        },
        "env": {
            "discoveryUrl": "Discovery URL"
        },
        "clients": {
            "title": "OpenID Clients",
            "empty": "No OpenID clients"
        },
        "clientCredentials": {
            "title": "Client credentials",
            "description": "Copy the credentials for client \"{{ clientName }}\""
        }
    },
    "userdirectory": {
        "settings": {
            "title": "Settings"
        }
    },
    "archives": {
        "listing": {
            "placeholder": "No archived apps"
        },
        "description": "Archived apps preserve the latest backup when an app was archived. These backups are kept permanently and can be restored."
    },
    "backup": {
        "target": {
            "label": "Site",
            "size": "Size",
            "fileCount": "Files"
        },
        "sites": {
            "title": "Backup Sites",
            "emptyPlaceholder": "No backup sites",
            "lastRun": "Last run",
            "description": "Backup sites specify where system and app backups are stored. App backups can be restored individually.",
            "noAutomaticUpdateBackupWarning": "No backup site is configured to store backups for automatic updates. Enable \"Store automatic-update backups here\" on at least one backup site to allow automatic updates."
        },
        "site": {
            "removeDialog": {
                "description": "Removing a backup site deletes its backup entries from Cloudron. Backup files stored on the remote destination are not removed.<br/></br>Remove the backup site \"{{ name }}\" ?",
                "title": "Remove Backup Site"
            }
        }
    },
    "dockerRegistries": {
        "server": "Server address",
        "provider": "Provider",
        "username": "Username",
        "title": "Docker Registries",
        "description": "Configure access to private Docker registries for installing custom apps.",
        "removeDialog": {
            "title": "Remove Docker Registry"
        },
        "email": "Email",
        "passwordToken": "Password/Token",
        "emptyPlaceholder": "No docker registries",
        "dialog": {
            "addTitle": "Add Docker Registry",
            "editTitle": "Edit Docker Registry"
        }
    },
    "dockerRegistres": {
        "removeDialog": {
            "description": "Remove Docker registry \"{{ serverAddress }}\"?"
        }
    },
    "appearance": {
        "title": "Appearance"
    },
    "dashboard": {
        "title": "Dashboard"
    },
    "server": {
        "title": "Server"
    },
    "communityapp": {
        "installwarning": "Community apps are not reviewed by Cloudron. Only install apps from trusted developers. Third-party code can compromise your system.",
        "unstablewarning": "This app is marked as unstable by its developer."
    }
}
