{
    "title": {
        "setup": "Initial Setup",
        "login": "Login",
        "share_login": "Share Login",
        "profile": "Profile",
        "change_password": "Change password",
        "files": "Files",
        "shares": "Shares",
        "add_share": "Add share",
        "update_share": "Update share",
        "two_factor_auth": "Two-factor authentication",
        "two_factor_auth_short": "2FA",
        "edit_file": "Edit file",
        "view_file": "View file",
        "recovery_password": "Password recovery",
        "reset_password": "Password reset",
        "shared_files": "Shared files",
        "upload_to_share": "Upload to share",
        "download_shared_file": "Download shared file",
        "share_access_error": "Unable to access the share",
        "invalid_auth_request": "Invalid authentication request",
        "error400": "Bad Request",
        "error403": "Forbidden",
        "error404": "Not Found",
        "error416": "Requested Range Not Satisfiable",
        "error429": "Too Many Requests",
        "error500": "Internal Server Error",
        "errorPDF": "Unable to show PDF file",
        "error_editor": "Cannot open file editor",
        "users": "Users",
        "groups": "Groups",
        "folders": "Virtual folders",
        "connections": "Active connections",
        "event_manager": "Event Manager",
        "event_rules": "Rules",
        "event_actions": "Actions",
        "ip_manager": "IP Manager",
        "ip_lists": "IP Lists",
        "defender": "Auto Block List",
        "admins": "Admins",
        "roles": "Roles",
        "server_manager": "Server Manager",
        "configs": "Configurations",
        "logs": "Logs",
        "maintenance": "Maintenance",
        "status": "Status",
        "add_user": "Add user",
        "update_user": "Update user",
        "template_user": "User template",
        "template_admin": "Admin template",
        "add_group": "Add group",
        "update_group": "Update group",
        "add_folder": "Add virtual folder",
        "update_folder": "Update virtual folder",
        "template_folder": "Virtual folder template",
        "oauth2_error": "Unable to complete OAuth2 flow",
        "oauth2_success": "OAuth2 flow completed",
        "add_role": "Add role",
        "update_role": "Update role",
        "add_admin": "Add admin",
        "update_admin": "Update admin",
        "add_ip_list": "Add IP list entry",
        "update_ip_list": "Update IP list entry",
        "add_action": "Add action",
        "update_action": "Update action",
        "add_rule": "Add rule",
        "update_rule": "Update rule"
    },
    "setup": {
        "desc": "To start using SFTPGo you need to create an administrator user",
        "submit": "Create admin and Sign in",
        "install_code_mismatch": "The installation code does not match",
        "help_text": "SFTPGo needs your help"
    },
    "login": {
        "username": "Username",
        "password": "Password",
        "your_username": "Your username",
        "forgot_password": "Forgot Password?",
        "forgot_password_msg": "Enter your account username below, you will receive a password reset code by email.",
        "send_reset_code": "Send Reset Code",
        "signin": "Sign in",
        "signin_openid": "Sign in with OpenID",
        "signout": "Sign out",
        "auth_code": "Authentication code",
        "two_factor_help": "Open the two-factor authentication app on your device to view your authentication code and verify your identity.",
        "two_factor_msg": "Enter a two-factor recovery code",
        "recovery_code": "Recovery code",
        "recovery_code_msg": "You can enter one of your recovery codes in case you lost access to your mobile device.",
        "reset_password": "Reset Password",
        "reset_pwd_msg": "Check your email for the confirmation code",
        "reset_submit": "Update Password and Sign in",
        "confirm_code": "Confirmation code",
        "reset_pwd_forbidden": "You are not allowed to reset your password",
        "reset_pwd_no_email": "Your account does not have an email address, it is not possible to reset your password by sending an email verification code",
        "reset_pwd_send_email_err": "Unable to send confirmation code via email",
        "reset_pwd_err_generic": "Unexpected error while resetting password",
        "reset_ok_login_error": "The password reset completed successfully but an unexpected error occurred while signing in",
        "ip_not_allowed": "Login is not allowed from this IP address",
        "two_factor_required": "Set up two-factor authentication, it is required for the following protocols: {{val}}",
        "two_factor_required_generic": "Set up two-factor authentication, it is mandatory for your account",
        "link": "Go to {{link}}"
    },
    "theme": {
        "light": "Light",
        "dark": "Dark",
        "system": "Auto"
    },
    "general": {
        "invalid_auth_request": "The authentication request does not meet security requirements",
        "error400": "The received request is not valid",
        "error403": "You do not have the required permissions",
        "error404": "The requested resource does not exist",
        "error416": "The requested file fragment could not be returned",
        "error429": "Rate limit exceeded",
        "error500": "The server is unable to fulfill your request",
        "errorPDF": "This file does not look like a PDF",
        "error_edit_dir": "Cannot edit a directory",
        "error_edit_size": "The file size exceeds the maximum allowed size",
        "invalid_form": "Invalid form",
        "invalid_credentials": "Invalid credentials, please retry",
        "invalid_csrf": "The form token is not valid",
        "invalid_token": "Invalid permissions",
        "confirm_logout": "Are you sure you want to sign out?",
        "wait": "Please wait...",
        "ok": "OK",
        "failed": "Failed",
        "cancel": "No, back",
        "submit": "Save",
        "back": "Back",
        "add": "Add",
        "enable": "Enable",
        "disable": "Disable",
        "disable_confirm_btn": "Yes, disable",
        "close": "Close",
        "search": "Search",
        "configuration": "Configuration",
        "config_saved": "Configuration saved",
        "rename": "Rename",
        "confirm": "Yes, proceed",
        "edit": "Edit",
        "delete": "Delete",
        "delete_confirm_btn": "Yes, delete",
        "delete_confirm": "Do you want to delete \"{{- name}}\"? This action is irreversible",
        "delete_confirm_generic": "Do you want to delete the selected item? This action is irreversible",
        "delete_multi_confirm": "Do you want to delete the selected items? This action is irreversible",
        "delete_error_generic": "Unable to delete the selected item",
        "delete_error_403": "$t(general.delete_error_generic). $t(general.error403)",
        "delete_error_404": "$t(general.delete_error_generic). $t(general.error404)",
        "loading": "Loading...",
        "name": "Name",
        "size": "Size",
        "last_modified": "Last Modified",
        "info": "Info",
        "datetime": "{{- val, datetime}}",
        "selected_items_one": "{{count}} item selected",
        "selected_items_other": "{{count}} items selected",
        "name_required": "Name is required",
        "name_different": "The new name must be different from the current name",
        "html5_media_not_supported": "Your browser does not support HTML5 audio/video.",
        "choose_target_folder": "Choose target folder",
        "source_name": "Source name",
        "target_folder": "Target folder",
        "dest_name": "Destination name",
        "my_profile": "My profile",
        "description": "Description",
        "email": "Email",
        "api_key_auth": "API key authentication",
        "api_key_auth_help": "Allow to impersonate yourself, in REST API, using an API key",
        "pub_keys": "Public keys",
        "pub_key_placeholder": "Paste a public key here",
        "pub_keys_help": "Public keys can be used for SFTP authentication",
        "verify": "Verify",
        "problems": "Having problems?",
        "allowed_ip_mask": "Allowed IP/Mask",
        "denied_ip_mask": "Denied IP/Mask",
        "ip_mask_help": "Comma separated IP/Mask in CIDR format, for example \"192.168.1.0/24,10.8.0.100/32\"",
        "allowed_ip_mask_invalid": "Invalid allowed IP/Mask",
        "username_required": "The username is required",
        "password_required": "The password is required",
        "foldername_required": "The folder name is required",
        "err_user": "Unable to validate your user",
        "err_protocol_forbidden": "HTTP protocol is not allowed for your user",
        "pwd_login_forbidden": "The password login method is not allowed for your user",
        "ip_forbidden": "Login not allowed from this IP address",
        "email_invalid": "The email address is invalid",
        "err_password_complexity": "The password provided does not meet the complexity requirements",
        "no_oidc_feature": "This feature is not available if you are logged in with OpenID",
        "connection_forbidden": "You are not allowed to connect",
        "no_permissions": "You are not allowed to change anything",
        "path_invalid": "Invalid path",
        "err_quota_read": "Read denied due to quota limit",
        "profile_updated": "Your profile has been successfully updated",
        "share_ok": "Share access successful, you can now use your link",
        "qr_code": "QR Code",
        "copy_link": "Copy link",
        "copied": "Copied",
        "active": "Active",
        "inactive": "Inactive",
        "colvis": "Column visibility",
        "actions": "Actions",
        "template": "Use as a template",
        "quota_scan": "Quota scan",
        "quota_scan_started": "Quota scan started. It can take a while depending on the number of files to check",
        "quota_scan_conflit": "Another scan is already in progress",
        "quota_scan_error": "Unable to start quota scan",
        "role": "Role",
        "role_placeholder": "Select a role",
        "group_placeholder": "Select a group",
        "folder_placeholder": "Select a folder",
        "blank_default_help": "Leave blank for default",
        "skip_tls_verify": "Skip TLS verify. This should be used only for testing",
        "advanced_settings": "Advanced settings",
        "default": "Default",
        "private_key": "Private key",
        "acls": "ACLs",
        "quota_limits": "Disk quota and bandwidth limits",
        "expiration": "Expiration",
        "expiration_help": "Pick an expiration date",
        "additional_info": "Additional info",
        "permissions": "Permissions",
        "visible": "Visible",
        "hidden": "Hidden",
        "allowed": "Allowed",
        "denied": "Denied",
        "zero_no_limit_help": "0 means no limit",
        "global_settings": "Global settings",
        "mandatory_encryption": "Mandatory encryption",
        "name_invalid": "The specified name is not valid, the following characters are allowed: a-zA-Z0-9-_.~",
        "associations": "Associations",
        "template_placeholders": "The following placeholders are supported",
        "duplicated_username": "The specified username already exists",
        "duplicated_name": "The specified name already exists",
        "permissions_required": "Permissions are required",
        "configs_saved": "Configurations has been successfully updated",
        "protocol": "Protocol",
        "refresh": "Refresh",
        "members": "Members",
        "members_summary": "Users: {{users}}. Admins: {{admins}}",
        "status": "Status",
        "last_login": "Last login",
        "previous": "Previous",
        "next": "Next",
        "type": "Type",
        "issuer": "Issuer",
        "data_provider": "Database",
        "driver": "Driver",
        "mode": "Mode",
        "port": "Port",
        "domain": "Domain",
        "test": "Test",
        "get": "Get",
        "export": "Export",
        "value": "Value",
        "method": "Method",
        "timeout": "Timeout",
        "env_vars": "Environment variables",
        "hours": "Hours",
        "paths": "Paths",
        "hour": "Hour",
        "day_of_week": "Day of week",
        "day_of_month": "Day of month",
        "month": "Month",
        "options": "Options",
        "expired": "Expired",
        "unsupported": "Feature no longer supported",
        "start": "Start (HH:MM)",
        "end": "End (HH:MM)",
        "monday": "Monday",
        "tuesday": "Tuesday",
        "wednesday": "Wednesday",
        "thursday": "Thursday",
        "friday": "Friday",
        "saturday": "Saturday",
        "sunday": "Sunday"
    },
    "fs": {
        "view_file": "View file \"{{- path}}\"",
        "edit_file": "Edit file \"{{- path}}\"",
        "new_folder": "New Folder",
        "select_across_pages": "Select across pages",
        "download": "Download",
        "download_ready": "Your download is ready",
        "move_copy": "Move or copy",
        "share": "Share",
        "home": "Home",
        "create_folder_msg": "Folder name",
        "no_more_subfolders": "No more subfolders in here",
        "no_files_folders": "No files or folders",
        "invalid_name": "File or folder names cannot contain \"/\"",
        "folder_name_required": "Folder name is required",
        "deleting": "Delete {{idx}}/{{total}}: {{- name}}",
        "copying": "Copy {{idx}}/{{total}}: {{- name}}",
        "moving": "Move {{idx}}/{{total}}: {{- name}}",
        "uploading": "Upload {{idx}}/{{total}}: {{- name}}",
        "err_403": "Permission denied",
        "err_429": "Too many concurrent requests",
        "err_generic": "Unable to access the requested resource",
        "err_validation": "Invalid filesystem configuration",
        "err_exists": "The destination already exists",
        "dir_list": {
            "err_generic": "Failed to get directory listing",
            "err_403": "$t(fs.dir_list.err_generic). $t(fs.err_403)",
            "err_429": "$t(fs.dir_list.err_generic). $t(fs.err_429)",
            "err_user": "$t(fs.dir_list.err_generic). $t(general.err_user)"
        },
        "create_dir": {
            "err_generic": "Error creating new folder",
            "err_403": "$t(fs.create_dir.err_generic). $t(fs.err_403)",
            "err_429": "$t(fs.create_dir.err_generic). $t(fs.err_429)"
        },
        "save": {
            "err_generic": "Error saving file",
            "err_403": "$t(fs.create_dir.err_generic). $t(fs.err_403)",
            "err_429": "$t(fs.create_dir.err_generic). $t(fs.err_429)"
        },
        "delete": {
            "err_generic": "Unable to delete \"{{- name}}\"",
            "err_403": "$t(fs.delete.err_generic). $t(fs.err_403)",
            "err_429": "$t(fs.delete.err_generic). $t(fs.err_429)"
        },
        "delete_multi": {
            "err_generic_partial": "Not all the selected items have been deleted, please reload the page",
            "err_generic": "Unable to delete the selected items",
            "err_403_partial": "$t(fs.delete_multi.err_generic_partial). $t(fs.err_403)",
            "err_429_partial": "$t(fs.delete_multi.err_generic_partial). $t(fs.err_429)",
            "err_403": "$t(fs.delete_multi.err_generic). $t(fs.err_403)",
            "err_429": "$t(fs.delete_multi.err_generic). $t(fs.err_429)"
        },
        "copy": {
            "msg": "Copy",
            "err_generic": "Error copying files/directories",
            "err_403": "$t(fs.copy.err_generic). $t(fs.err_403)",
            "err_429": "$t(fs.copy.err_generic). $t(fs.err_429)",
            "err_exists": "$t(fs.copy.err_generic). $t(fs.err_exists)"
        },
        "move": {
            "msg": "Move",
            "err_generic": "Error moving files/directories",
            "err_403": "$t(fs.move.err_generic). $t(fs.err_403)",
            "err_429": "$t(fs.move.err_generic). $t(fs.err_429)",
            "err_exists": "$t(fs.move.err_generic). $t(fs.err_exists)",
            "err_unsupported": "Unsupported: if you want to move a directory make sure it is empty"
        },
        "rename": {
            "title": "Rename \"{{- name}}\"",
            "new_name": "New name",
            "err_generic": "Unable to rename \"{{- name}}\"",
            "err_403": "$t(fs.rename.err_generic). $t(fs.err_403)",
            "err_429": "$t(fs.rename.err_generic). $t(fs.err_429)",
            "err_exists": "$t(fs.rename.err_generic). $t(fs.err_exists)",
            "err_unsupported": "Unsupported: if you want to rename a directory make sure it is empty"
        },
        "upload": {
            "text": "Upload Files",
            "success": "Files uploaded successfully",
            "message": "Drop files here or click to upload.",
            "message_empty": "This directory is empty. $t(fs.upload.message)",
            "err_generic": "Error uploading files",
            "err_403": "$t(fs.upload.err_generic). $t(fs.err_403)",
            "err_429": "$t(fs.upload.err_generic). $t(fs.err_429)",
            "err_dir_overwrite": "$t(fs.upload.err_generic). There are directories with the same name as the files: {{- val}}",
            "overwrite_text": "Conflict detected. Do you want to overwrite the following files/directories?"
        },
        "quota_usage": {
            "title": "Quota usage",
            "disk": "Disk quota",
            "size": "Size: {{- val}}",
            "size_percentage": "Size: {{- val}} ({{percentage}}%)",
            "files": "Files: {{- val}}",
            "files_percentage": "Files: {{- val}} ({{percentage}}%)",
            "transfer": "Transfer quota",
            "total": "Total: {{- val}}",
            "total_percentage": "Total: {{- val}} ({{percentage}}%)",
            "uploads": "Uploads: {{- val}}",
            "uploads_percentage": "Uploads: {{- val}} ({{percentage}}%)",
            "downloads": "Downloads: {{- val}}",
            "downloads_percentage": "Downloads: {{- val}} ({{percentage}}%)"
        }
    },
    "datatable": {
        "info": "Showing _START_ to _END_ of _TOTAL_ records",
        "info_empty": "Showing no record",
        "info_filtered": "(filtered from _MAX_ total records)",
        "processing": "Processing...",
        "no_records": "No records found"
    },
    "editor": {
        "keybinding": "Editor keybindings",
        "search": "Open search panel",
        "goto": "Jump to line",
        "indent_more": "Indent more",
        "indent_less": "Indent less"
    },
    "2fa": {
        "title": "Two-factor authentication using Authenticator apps",
        "msg_enabled": "Two-factor authentication is enabled",
        "msg_disabled": "Secure Your Account",
        "msg_info": "Two-factor authentication adds an extra layer of security to your account. To log in you'll need to provide an additional authentication code.",
        "require": "Two-factor authentication is required for this account",
        "require_for": "Require 2FA for",
        "generate": "Generate new secret key",
        "recovery_codes": "Recovery codes",
        "new_recovery_codes": "New recovery codes",
        "recovery_codes_msg1": "Recovery codes are a set of one time use codes that can be used in place of the authentication code to login to the web UI. You can use them if you lose access to your phone to login to your account and disable or regenerate two-factor auth configuration.",
        "recovery_codes_msg2": "To keep your account secure, don't share or distribute your recovery codes. We recommend saving them with a secure password manager.",
        "recovery_codes_msg3": "If you generate new recovery codes, you automatically invalidate old ones.",
        "info_title": "Learn about two-factor authentication",
        "info1": "SSH protocol (SFTP/SCP/SSH commands) will ask for the passcode if the client uses keyboard interactive authentication.",
        "info2": "HTTP protocol means Web UI and REST APIs. Web UI will ask for the passcode using a specific page. For REST API you have to add the passcode using an HTTP header.",
        "info3": "FTP has no standard way to support two-factor authentication, if you enable the FTP support, you have to add the TOTP passcode after the password. For example if your password is \"password\" and your one time passcode is \"123456\" you have to use \"password123456\" as password.",
        "info4": "WebDAV is not supported since each single request must be authenticated and a passcode cannot be reused.",
        "setup_title": "Set up two-factor authentication",
        "setup_msg": "Use your preferred Authenticator App (e.g. Microsoft Authenticator, Google Authenticator, Authy, 1Password etc. ) to scan the QR code. It will generate an authentication code for you to enter below.",
        "setup_help": "If you have trouble using the QR code, select manual entry on your app, and enter the code:",
        "disable_msg": "Disable 2FA",
        "disable_confirm": "Do you want to disable two-factor authentication for the selected user? This action is generally only required if the user has lost access to the second authentication factor",
        "disable_question": "Do you want to disable two-factor authentication?",
        "generate_question": "Do you want to generate a new secret key and invalidate the previous one? Any registered Authenticator App will stop working",
        "disabled": "Two-factor authentication is disabled",
        "recovery_codes_gen_err": "Failed to generate new recovery codes",
        "recovery_codes_get_err": "Unable to obtain recovery codes",
        "auth_code_invalid": "Failed to validate the provided authentication code",
        "auth_secret_gen_err": "Failed to generate authentication secret",
        "save_err": "Failed to save two-factor authentication configuration",
        "auth_code_required": "The authentication code is required",
        "no_protocol": "Please select at least a protocol",
        "required_protocols": "Unable to disable two-factor authentication. The security policy configured for your account requires two-factor authentication for the following protocols: {{val}}",
        "recovery_codes_generate": "Generate new recovery codes",
        "recovery_codes_view": "View recovery codes"
    },
    "share": {
        "scope": "Scope",
        "scope_read": "Read",
        "scope_write": "Write",
        "scope_read_write": "Read/Write",
        "scope_help": "For scope \"Write\" and \"Read/Write\" you have to define a single path and it must be a directory",
        "path_help": "file or directory path, i.e. /dir or /dir/file.txt",
        "password_help": "If set the share will be password-protected",
        "max_tokens": "Max tokens",
        "max_tokens_help": "Maximum number of times this share can be accessed. 0 means no limit",
        "view_manage": "View and manage shares",
        "no_share": "No sharing",
        "password_protected": "Password protected.",
        "expiration_date": "Expiration: {{- val, datetime}}. ",
        "last_use": "Last use: {{- val, datetime}}. ",
        "usage": "Usage: {{used}}/{{total}}. ",
        "used_tokens": "Used token: {{used}}. ",
        "scope_invalid": "Invalid scope",
        "max_tokens_invalid": "Invalid max tokens",
        "expiration_invalid": "Invalid expiration",
        "err_no_password": "You are not allowed to share files/folders without password",
        "expiration_out_of_range": "Set an expiration date and make sure it is less than or equal to {{- val, datetime}}",
        "generic": "Unexpected error saving share",
        "path_required": "At least a path is required",
        "path_write_scope": "The write scope requires exactly one path",
        "nested_paths": "Paths cannot be nested",
        "expiration_past": "The expiration date must be in the future",
        "usage_exceed": "Maximum sharing usage exceeded",
        "expired": "Sharing has expired",
        "browsable_multiple_paths": "A share with multiple paths is not browsable",
        "browsable_non_dir": "The share is not a directory so it is not browsable",
        "go": "Go to share",
        "access_links_title": "Share access links",
        "link_single_title": "Single zip file",
        "link_single_desc": "You can download the shared content as a single zip file",
        "link_dir_title": "Single directory",
        "link_dir_desc": "If the share consists of a single directory, you can browse and download files",
        "link_uncompressed_title": "Uncompressed file",
        "link_uncompressed_desc": "If the share consists of a single file, it can also be downloaded uncompressed",
        "upload_desc": "You can upload one or more files to the shared directory",
        "expired_desc": "This share is no longer accessible because it has expired",
        "invalid_path": "The shared directory is missing or not accessible"
    },
    "select2": {
        "no_results": "No results found",
        "searching": "Searching...",
        "removeall": "Remove all items",
        "remove": "Remove item"
    },
    "change_pwd": {
        "info": "Enter your current password, for security reasons, and then your new password twice, to verify that you have written it correctly. You will be logged out after changing your password",
        "current": "Current password",
        "new": "New password",
        "confirm": "Confirm password",
        "save": "Change my password",
        "required_fields": "Please provide the current password and the new one two times",
        "no_match": "The two password fields do not match",
        "no_different": "The new password must be different from the current one",
        "current_no_match": "Current password does not match",
        "generic": "Unexpected error while changing password",
        "required": "Password change is required. Set a new password to continue using your account"
    },
    "user": {
        "view_manage": "View and manage users",
        "username_reserved": "The specified username is reserved",
        "username_invalid": "The specified username is not valid, the following characters are allowed: a-zA-Z0-9-_.~",
        "home_required": "The home directory is mandatory",
        "home_invalid": "The home directory must be an absolute path",
        "pub_key_invalid": "Invalid public key",
        "priv_key_invalid": "Invalid private key",
        "key_invalid_size": "Invalid RSA key: the minimum supported size is 2048",
        "err_primary_group": "Only one primary group is allowed",
        "err_duplicate_group": "Duplicate groups detected",
        "no_permissions": "Directories permissions are mandatory",
        "no_root_permissions": "Home directory permissions are required",
        "err_permissions_generic": "Invalid permissions: Make sure you use valid absolute paths",
        "2fa_invalid": "Invalid configuration for two-factor authentication",
        "recovery_codes_invalid": "Invalid recovery codes",
        "folder_path_required": "The virtual folder mount path is required",
        "folder_duplicated": "Duplicated virtual folders detected",
        "folder_overlapped": "Overlapping virtual folders detected",
        "folder_quota_size_invalid": "The quota as size of virtual folders must be greater than or equal to -1",
        "folder_quota_file_invalid": "The quota as files of virtual folders must be greater than or equal to -1",
        "folder_quota_invalid": "Quotas as size and as number of files of virtual folders must be both -1 or greater or equal than 0",
        "ip_filters_invalid": "Invalid IP filters, make sure they respect CIDR notation, for example 192.168.1.0/24",
        "src_bw_limits_invalid": "Invalid per-source bandwidth speed limits",
        "share_expiration_invalid": "The expiration for shares must be greater than or equal to the defined default value",
        "file_pattern_path_invalid": "File name pattern filter paths must be absolute",
        "file_pattern_duplicated": "Duplicated file name pattern filters detected",
        "file_pattern_invalid": "Invalid file name pattern filters",
        "disable_active_2fa": "Two-factor authentication cannot be disabled for a user with an active configuration",
        "pwd_change_conflict": "It is not possible to request a password change and at the same time prevent the password from being changed",
        "two_factor_conflict": "You can't require two-factor authentication and at the same time prevent it from being set up",
        "role_help": "Users with a role can be managed by global administrators and administrators with the same role",
        "require_pwd_change": "Require password change",
        "require_pwd_change_help": "The user will need to change the password from WebClient to activate the account",
        "groups_help": "Groups membership impart the groups settings with the exception of membership only groups",
        "primary_group": "Primary group",
        "secondary_groups": "Secondary groups",
        "membership_groups": "Membership groups",
        "template_help": "For each user set the username and at least one of the password and public key",
        "virtual_folders_help": "Quota size/files -1 means included within user quota, 0 unlimited. Don't set -1 for shared folders. You can use MB/GB/TB suffix. Without suffix we assume bytes",
        "disconnect": "Disconnect the user after the update",
        "disconnect_help": "This way you force the user to login again, if connected, and so to use the new configuration",
        "submit_generate": "Generate and save users",
        "submit_export": "Generate and export users",
        "invalid_quota_size": "Invalid quota size",
        "expires_in": "Expires in",
        "expires_in_help": "Account expiration as number of days from the creation. 0 means no expiration",
        "tls_certs": "TLS certificates",
        "tls_certs_help": "TLS certificates can be used for FTP and/or WebDAV authentication",
        "tls_cert_help": "Paste a PEM encoded TLS certificate here",
        "tls_cert_invalid": "Invalid TLS certificate",
        "template_title": "Create one or more new users from this template",
        "template_username_placeholder": "replaced with the specified username",
        "template_password_placeholder": "replaced with the specified password",
        "template_help1": "Placeholders will be replaced in paths and credentials of the configured storage backend.",
        "template_help2": "The generated users can be saved or exported. Exported users can be imported from the \"Maintenance\" section of this SFTPGo instance or another.",
        "template_no_user": "No valid user defined, unable to complete the requested action",
        "time_of_day_invalid": "Invalid time of day. Supported format HH:MM",
        "time_of_day_conflict": "Invalid time of day. The end time cannot be earlier than the start time"
    },
    "group": {
        "view_manage": "View and manage groups",
        "err_delete_referenced": "Cannot delete a group with associated users, remove associations first",
        "help": "The %username% placeholder will be replaced with the username of the associated users, %role% with their role"
    },
    "virtual_folders": {
        "view_manage": "View and manage virtual folders",
        "mount_path": "mount path, i.e. /vfolder",
        "quota_size": "Quota size",
        "quota_size_help": "0 means no limit. You can use MB/GB/TB suffix",
        "quota_files": "Quota files",
        "associations_summary": "Users: {{users}}. Groups: {{groups}}",
        "template_title": "Create one or more new virtual folders from this template",
        "template_name_placeholder": "replaced with the name of the specified virtual folder",
        "template_help": "The generated virtual folders can be saved or exported. Exported folders can be imported from the \"Maintenance\" section of this SFTPGo instance or another.",
        "name": "Virtual folder name",
        "submit_generate": "Generate and save folders",
        "submit_export": "Generate and export folder",
        "template_no_folder": "No valid virtual folder defined, unable to complete the requested action"
    },
    "storage": {
        "title": "File system",
        "label": "Storage",
        "local": "Local disk",
        "s3": "S3 (Compatible)",
        "gcs": "GCS",
        "azblob": "Azure Blob",
        "encrypted": "Encrypted local disk",
        "sftp": "SFTP",
        "http": "HTTP",
        "home_dir": "Root directory",
        "home_dir_placeholder": "Absolute path to a directory on local disk",
        "home_dir_help1": "Leave blank for an appropriate default",
        "home_dir_help2": "Leave blank and storage to \"Local disk\" to not override the root directory",
        "home_dir_help3": "Required for local disk storage providers. For other storage providers this folder will be used for temporary files, you can leave it blank for an appropriate default",
        "home_dir_invalid": "Invalid root directory, make sure it is an absolute path",
        "sftp_home_dir": "SFTP root directory",
        "sftp_home_help": "Restrict access to this SFTP path. Example: \"/somedir/subdir\"",
        "os_read_buffer": "Download buffer (MB)",
        "os_buffer_help": "0 means no buffer",
        "os_write_buffer": "Upload buffer (MB)",
        "bucket": "Bucket",
        "region": "Region",
        "access_key": "Access Key",
        "access_secret": "Access Secret",
        "endpoint": "Endpoint",
        "endpoint_help": "For AWS S3, leave blank to use the default endpoint for the specified region",
        "sftp_endpoint_help": "Endpoint as host:port. The port is always required",
        "ul_part_size": "Upload Part Size (MB)",
        "part_size_help": "0 means the default (5 MB). Minimum is 5",
        "gcs_part_size_help": "0 means the default (16 MB)",
        "ul_concurrency": "Upload Concurrency",
        "ul_concurrency_help": "How many parts are uploaded in parallel. 0 means the default (5)",
        "dl_part_size": "Download Part Size (MB)",
        "dl_concurrency": "Download Concurrency",
        "dl_concurrency_help": "How many parts are downloaded in parallel. 0 means the default (5)",
        "ul_part_timeout": "Upload Part timeout",
        "ul_part_timeout_help": "Max time limit, in seconds, to upload a single part. 0 means no limit",
        "gcs_ul_part_timeout_help": "Max time limit, in seconds, to upload a single part. 0 means the default (32)",
        "dl_part_timeout": "Download Part timeout",
        "dl_part_timeout_help": "Max time limit, in seconds, to download a single part. 0 means no limit",
        "key_prefix": "Key Prefix",
        "key_prefix_help": "Restrict access to keys with the specified prefix. Example: \"somedir/subdir/\"",
        "class": "Storage class",
        "acl": "ACL",
        "role_arn": "Role ARN",
        "role_arn_help": "Optional IAM Role ARN to assume",
        "s3_path_style": "Use path-style addressing, i.e. \"endpoint/BUCKET/KEY\"",
        "credentials_file": "Credentials file",
        "credentials_file_help": "Add or update credentials from a JSON file",
        "auto_credentials": "Automatic credentials",
        "auto_credentials_help": "Use default application credentials or credentials from environment variables",
        "container": "Container",
        "account_name": "Account Name",
        "account_key": "Account Key",
        "sas_url": "SAS URL",
        "sas_url_help": "Shared Access Signature URL can be used instead of account name/key",
        "emulator": "Use emulator",
        "passphrase": "Passphrase",
        "passphrase_help": "Passphrase used to derive the per-object encryption key",
        "passphrase_key_help": "Passphrase used to protect your private key, if any",
        "fingerprints": "Fingerprints",
        "fingerprints_help": "SHA256 fingerprints to be validated when connecting to the external SFTP server, one per line. If empty any host key will be accepted: this is a security risk!",
        "sftp_buffer": "Buffer size (MB)",
        "sftp_buffer_help": "A buffer size greater than 0 enables concurrent transfers",
        "sftp_concurrent_reads": "Disable concurrent reads",
        "relaxed_equality_check": "Relaxed equality check",
        "relaxed_equality_check_help": "Enable to consider only the endpoint to determine if different configurations point to the same server. By default, both the endpoint and username must match",
        "api_key": "API key",
        "fs_error": "Filesystem configuration error",
        "bucket_required": "$t(storage.fs_error): bucket is required",
        "region_required": "$t(storage.fs_error): region is required",
        "key_prefix_invalid": "$t(storage.fs_error): invalid key prefix, cannot start with \"/\"",
        "ul_part_size_invalid": "$t(storage.fs_error): invalid upload part size",
        "ul_concurrency_invalid": "$t(storage.fs_error): invalid upload concurrency",
        "dl_part_size_invalid": "$t(storage.fs_error): invalid download part size",
        "dl_concurrency_invalid": "$t(storage.fs_error): invalid download concurrency",
        "access_key_required": "$t(storage.fs_error): access Key is required",
        "access_secret_required": "$t(storage.fs_error): access Secret is required",
        "credentials_required": "$t(storage.fs_error): credentials are required",
        "container_required": "$t(storage.fs_error): container is required",
        "account_name_required": "$t(storage.fs_error): account name is required",
        "sas_url_invalid": "$t(storage.fs_error): invalid SAS URL",
        "passphrase_required": "$t(storage.fs_error): passphrase is required",
        "endpoint_invalid": "$t(storage.fs_error): endpoint is invalid",
        "endpoint_required": "$t(storage.fs_error): endpoint is required",
        "username_required": "$t(storage.fs_error): username is required"
    },
    "oidc": {
        "token_expired": "Your OpenID token has expired, please log in again",
        "token_invalid_webadmin": "Your OpenID token is not valid for the WebAdmin UI. Log out of your OpenID server and log in to WebAdmin",
        "token_invalid_webclient": "Your OpenID token is not valid for the WebClient UI. Log out of your OpenID server and log in to the WebClient",
        "token_exchange_err": "Failed to exchange OpenID token",
        "token_invalid": "Invalid OpenID token",
        "role_admin_err": "Incorrect OpenID role, logged in user is not an administrator",
        "role_user_err": "Incorrect OpenID role, logged in user is an administrator",
        "get_user_err": "Failed to get user associated with OpenID token"
    },
    "oauth2": {
        "auth_verify_error": "Unable to verify OAuth2 code",
        "auth_validation_error": "Unable to verify OAuth2 code",
        "auth_invalid": "Invalid OAuth2 code",
        "token_exchange_err": "Unable to get OAuth2 token from authorization code",
        "no_refresh_token": "The OAuth2 provider returned an empty token. Some providers only return the token when the user first authorizes. If you have already registered SFTPGo with this user in the past, revoke access and try again. This way you will invalidate the previous token",
        "success": "Copy the following string, without the quotes, into SMTP OAuth2 Token configuration field:"
    },
    "filters": {
        "password_strength": "Password strength",
        "password_strength_help": "Values in the 50-70 range are suggested for common use cases. 0 means disabled, any password will be accepted",
        "password_expiration": "Password expiration",
        "password_expiration_help": "Password expiration as number of days. 0 means no expiration",
        "default_shares_expiration": "Default shares expiration",
        "default_shares_expiration_help": "Default expiration for new shares as number of days",
        "max_shares_expiration": "Maximum shares expiration",
        "max_shares_expiration_help": "Maximum allowed expiration, as number of days, when a user creates or updates a share",
        "directory_permissions": "Per-directory permissions",
        "directory_permissions_help": "Wildcards are supported in paths, for example \"/incoming/*\" matches any directory within \"/incoming\"",
        "directory_path_help": "directory path, i.e. /dir",
        "directory_patterns": "Per-directory name patterns restrictions",
        "directory_patterns_help": "Comma separated denied or allowed files/directories, based on shell patterns. The match is case insensitive",
        "max_sessions": "Max sessions",
        "max_sessions_help": "Maximun number of concurrent sessions. 0 means no limit",
        "denied_protocols": "Denied protocols",
        "denied_login_methods": "Denied login methods",
        "denied_login_methods_help": "\"password\" is valid for all supported protocols, \"password-over-SSH\" only for SSH/SFTP/SCP",
        "web_client_options": "Web client/REST API",
        "max_upload_size": "Max upload size",
        "max_upload_size_help": "Maximum upload size for a single file. 0 means no limit. You can use MB/GB/TB suffix",
        "max_upload_size_invalid": "Invalid maximum upload file size",
        "upload_bandwidth": "Bandwidth UL (KB/s)",
        "download_bandwidth": "Bandwidth DL (KB/s)",
        "upload_bandwidth_help": "UL (KB/s). 0 means no limit",
        "download_bandwidth_help": "DL (KB/s). 0 means no limit",
        "src_bandwidth_limit": "Per-source bandwidth speed limits",
        "upload_data_transfer": "Upload data transfer (MB)",
        "upload_data_transfer_help": "Maximum data transfer allowed for uploads. 0 means no limit",
        "download_data_transfer": "Download data transfer (MB)",
        "download_data_transfer_help": "Maximum data transfer allowed for downloads. 0 means no limit",
        "total_data_transfer": "Total data transfer (MB)",
        "total_data_transfer_help": "Maximum data transfer allowed for uploads + downloads. Replace the individual limits. 0 means no limit",
        "start_directory": "Initial directory",
        "start_directory_help": "Alternate initial directory to use instead of \"/\". Supported for SFTP/FTP/HTTP",
        "tls_username": "TLS username",
        "tls_username_help": "Defines the TLS certificate field to use as username. Ignored if mutual TLS is disabled",
        "ftp_security": "FTP security",
        "ftp_security_help": "Ignored if TLS is already globally required for all FTP users",
        "hooks": "Hooks",
        "hook_ext_auth_disabled": "External auth disabled",
        "hook_pre_login_disabled": "Pre-login disabled",
        "hook_check_password_disabled": "Check password disabled",
        "is_anonymous": "Anonymous user",
        "is_anonymous_help": "Anonymous users are supported for FTP and WebDAV protocols and have read-only access",
        "disable_fs_checks": "Disable filesystem checks",
        "disable_fs_checks_help": "Disable checks for existence and automatic creation of home directory and virtual folders",
        "api_key_auth_help": "Allow to impersonate the user, in REST API, with an API key",
        "external_auth_cache_time": "External auth cache time",
        "external_auth_cache_time_help": "Cache time, in seconds, for users authenticated using an external auth hook. 0 means no cache",
        "access_time": "Access time restrictions",
        "access_time_help": "No restrictions means access is always allowed, the time must be set in the format HH:MM. Use UTC time"
    },
    "admin": {
        "role_permissions": "A role admin cannot have the following permissions: {{val}}",
        "view_manage": "View and manage admins",
        "self_delete": "You cannot delete yourself",
        "self_permissions": "You cannot remove these permissions to yourself",
        "self_disable": "You cannot disable yourself",
        "self_role": "You cannot add/change your role",
        "password_help": "If blank the current password will not be changed",
        "role_help": "Setting a role limit the administrator to only manage users with the same role. Administrators with a role cannot have the following permissions: \"manage_admins\", \"manage_roles\", \"manage_event_rules\", \"manage_apikeys\", \"manage_system\", \"manage_ip_lists\"",
        "users_groups": "Groups for users",
        "users_groups_help": "Groups automatically selected for new users created by this admin. The admin will still be able to choose different groups. These settings are only used for this admin UI and they will be ignored in REST API/hooks",
        "group_membership": "Add as membership",
        "group_primary": "Add as primary",
        "group_secondary": "Add as secondary",
        "user_page_pref": "User page preferences",
        "user_page_pref_help": "You can hide some sections from the user page. These are not security settings and are not enforced server side in any way. They are only intended to simplify the add/update user page",
        "hide_sections": "Hide sections",
        "default_users_expiration": "Default users expiration",
        "default_users_expiration_help": "Default expiration for new users as number of days",
        "require_pwd_change_help": "A password change is required at the next login"
    },
    "connections": {
        "view_manage": "View and manage connections",
        "started": "Started",
        "remote_address": "Remote address",
        "last_activity": "Last activity",
        "disconnect_confirm_btn": "Yes, disconnect",
        "disconnect_confirm": "Do you want to disconnect the selected connection? This action is irreversible",
        "disconnect_ko": "Unable to disconnect the selected connection",
        "upload": "UL: \"{{- path}}\"",
        "download": "DL: \"{{- path}}\"",
        "upload_info": "$t(connections.upload). Size: {{- size}}. Speed: {{- speed}}",
        "download_info": "$t(connections.download). Size: {{- size}}. Speed: {{- speed}}",
        "client": "Client: {{- val}}"
    },
    "role": {
        "view_manage": "View and manage roles",
        "err_delete_referenced": "Cannot delete a role with associated admins, remove associations first"
    },
    "ip_list": {
        "view_manage": "View and manage IP lists",
        "defender_list": "Defender",
        "allow_list": "Allow list",
        "ratelimiters_safe_list": "Rate limiters safe list",
        "ip_net": "IP/Network",
        "protocols": "Protocols",
        "any": "Any",
        "allow": "Allow",
        "deny": "Deny",
        "ip_net_help": "IP address or network in CIDR format, example: \"192.168.1.1 or 10.8.0.100/32 or 2001:db8:1234::/48\"",
        "ip_invalid": "Invalid IP address",
        "net_invalid": "Invalid network",
        "duplicated": "The specified IP/network already exists",
        "search": "IP/Network or initial part",
        "defender_disabled": "Defender disabled in your configuration",
        "allow_list_disabled": "Allow list disabled in your configuration",
        "ratelimiters_disabled": "Rate limiters disabled in your configuration"
    },
    "defender": {
        "view_manage": "View and manage auto blocklist",
        "ip": "IP address",
        "ban_time": "Blocked until",
        "score": "Score"
    },
    "status": {
        "desc": "Server status",
        "ssh": "SSH/SFTP server",
        "active": "Status: active",
        "disabled": "Status: disabled",
        "error": "Status: error",
        "proxy_on": "PROXY protocol enabled",
        "address": "Address",
        "ssh_auths": "Authentication methods",
        "ssh_commands": "Accepted commands",
        "host_key": "Host key",
        "fingeprint": "Fingerprint",
        "algorithms": "Algorithms",
        "algorithm": "Algorithm",
        "ssh_pub_key_algo": "Public key authentication algorithms",
        "ssh_mac_algo": "Message authentication code (MAC) algorithms",
        "ssh_kex_algo": "Key exchange (KEX) algorithms",
        "ssh_cipher_algo": "Ciphers",
        "ftp": "FTP server",
        "ftp_passive_range": "Passive mode port range",
        "ftp_passive_ip": "Passive IP",
        "tls": "TLS",
        "tls_disabled": "Disabled",
        "tls_explicit": "Explicit mode required (FTPES)",
        "tls_implicit": "Implicit mode (FTPS), deprecated, prefer FTPES",
        "tls_mixed": "Plain and explicit (FTPES) mode",
        "webdav": "WebDAV server",
        "rate_limiters": "Rate limiters"
    },
    "maintenance": {
        "backup": "Backup",
        "backup_do": "Backup your data",
        "backup_ok": "Backup successfully restored",
        "backup_invalid_file": "Invalid backup file, make sure it is a JSON file with valid content",
        "restore_error": "Unable to restore your backup, check the server logs for more details",
        "restore": "Restore",
        "backup_file": "Backup file",
        "backup_file_help": "Import data from a JSON backup file",
        "restore_mode0": "Add and update",
        "restore_mode1": "Add only",
        "restore_mode2": "Add, update and disconnect",
        "after_restore": "After restore",
        "quota_mode0": "No quota update",
        "quota_mode1": "Update quota",
        "quota_mode2": "Update quota for users with quota limits"
    },
    "acme": {
        "title": "ACME",
        "generic_error": "Unable to obtain TLS certificates, check the server logs for more details",
        "help": "From this section you can request free TLS certificates for your SFTPGo services using the ACME protocol and the HTTP-01 challenge type. You must create a DNS entry under a custom domain that you own which resolves to your SFTPGo public IP address and the port 80 must be publicly reachable. You can set the configuration options for the most common use cases and single node setups here, for advanced configurations refer to the SFTPGo docs. A service restart is required to apply changes",
        "domain_help": "Multiple domains can be specified comma or space separated. They will be included in the same certificate",
        "email_help": "Email used for registration and recovery contact",
        "port_help": "If different from 80 you have to configure a reverse proxy",
        "protocols_help": "Use the obtained certificates for the specified protocols"
    },
    "smtp": {
        "title": "SMTP",
        "err_required_fields": "From address and Username cannot be both empty",
        "client_id_required": "Client ID is required",
        "client_secret_required": "Client Secret is required",
        "refresh_token_required": "Refresh Token is required",
        "help": "Set the SMTP configuration replacing the one defined using env vars or config file if any",
        "host": "Server name",
        "host_help": "If blank the configuration is disabled",
        "auth": "Authentication",
        "encryption": "Encryption",
        "sender": "Sender",
        "debug": "Debug logs",
        "domain_help": "HELO domain. Leave blank to use the server hostname",
        "test_recipient": "Address to send test emails to",
        "oauth2_provider": "OAuth2 provider",
        "oauth2_provider_help": "URI to redirect to after user authentication",
        "oauth2_tenant": "OAuth2 Tenant",
        "oauth2_tenant_help": "Azure tenant. Typical values are \"common\", \"organizations\", \"consumers\" or the tenant identifier",
        "oauth2_client_id": "OAuth2 Client ID",
        "oauth2_client_secret": "OAuth2 Client Secret",
        "oauth2_token": "OAuth2 Token",
        "recipient_required": "Specify a recipient to send a test email",
        "test_error": "Unable to send test email, check server logs for more details",
        "test_ok": "No errors were reported while sending the test email. Please check your inbox to make sure",
        "oauth2_flow_error": "Unable to get the URI to start OAuth2 flow",
        "oauth2_question": "Do you want to start the OAuth2 flow to get a token?"
    },
    "sftp": {
        "help": "From this section you can enable algorithms disabled by default. You don't need to set values already defined using env vars or config file. A service restart is required to apply changes",
        "host_key_algos": "Host Key Algorithms"
    },
    "events": {
        "search": "Search logs",
        "fs_events": "Filesystem events",
        "provider_events": "Provider events",
        "other_events": "Other events",
        "quota_exceeded": "Quota exceeded",
        "date_range": "Date range",
        "upload": "Upload",
        "download": "Download",
        "mkdir": "Create dir",
        "rmdir": "Remove dir",
        "rename": "Rename",
        "delete": "Removal",
        "first_upload": "First upload",
        "first_download": "First download",
        "ssh_cmd": "SSH command",
        "add": "Addition",
        "update": "Update",
        "login_failed": "Login failed",
        "login_ok": "Login succeeded",
        "login_missing_user": "Login with non-existent user",
        "no_login_tried": "No login tried",
        "algo_negotiation_failed": "Algorithm negotiation failed",
        "datetime": "Date and time",
        "action": "Action",
        "path": "Path",
        "object": "Object",
        "event": "Event"
    },
    "provider_objects": {
        "user": "User",
        "folder": "Folder",
        "group": "Group",
        "admin": "Admin",
        "api_key": "API key",
        "share": "Share",
        "event_action": "Action",
        "event_rule": "Rule",
        "role": "role",
        "ip_list_entry": "IP list entry",
        "configs": "Configurations"
    },
    "actions": {
        "view_manage": "View and manage rule actions for events",
        "err_delete_referenced": "Cannot delete an action with associated rules, remove associations first",
        "http_url": "Server URL",
        "http_url_help": "i.e https://host:port/path. Placeholders are supported within the URL path",
        "http_url_required": "URL is required",
        "http_url_invalid": "The URL is invalid, http and https schemes are supported",
        "http_part_name_required": "HTTP part name is required",
        "http_part_body_required": "HTTP part body is required if no file path is provided",
        "http_multipart_body_error": "Multipart requests require no body. The request body is build from the specified parts",
        "http_multipart_ctype_error": "Content-Type is automatically set for multipart requests",
        "path_duplicated": "Path duplicated",
        "command_required": "Command is required",
        "command_invalid": "Invalid command, it must be an absolute path",
        "email_recipient_required": "At least one email recipient is required",
        "email_subject_required": "Email subject is required",
        "email_body_required": "Email body is required",
        "retention_directory_required": "At least one directory to check is required",
        "path_required": "At least a path is required",
        "source_dest_different": "Source and target path must be different",
        "root_not_allowed": "The root path (/) is not allowed",
        "archive_name_required": "Compressed archive name is required",
        "idp_template_required": "A user or admin template is required",
        "threshold": "Threshold",
        "threshold_help": "An email notification will be generated for users whose password expires in a number of days less than or equal to this threshold",
        "disable_threshold": "Disable threshold",
        "disable_threshold_help": "Inactivity in days, since last login or creation before disabling users",
        "delete_threshold": "Delete threshold",
        "delete_threshold_help": "Inactivity in days, since last login or creation before deleting users",
        "inactivity_threshold_required": "At least one inactivity threshold must be defined",
        "inactivity_thresholds_invalid": "The deletion threshold must be greater than the deactivation threshold",
        "idp_mode_add_update": "Create or update",
        "idp_mode_add": "Create if it doesn't exist",
        "template_user_help": "Template for SFTPGo users in JSON format. Placeholders are supported",
        "template_admin_help": "Template for SFTPGo admins in JSON format. Placeholders are supported",
        "placeholders_help": "Placeholders are supported",
        "http_headers": "HTTP headers",
        "query_parameters": "Query string parameters",
        "http_timeout_help": "Ignored for multipart requests with files as attachments",
        "body": "Body",
        "http_body_help": "Placeholders are supported. Ignored for HTTP get requested. Leave empty for multipart requests",
        "multipart_body": "Multipart body",
        "multipart_body_help": "HTTP Multipart requests allow to combine one or more sets of data into a single body. For each part, you can set a file path or a body as text. Placeholders are supported in file path, body, header values",
        "http_part_name": "Part name",
        "http_part_file": "File path",
        "http_part_headers": "Additional part headers one per line as \"key: value\"",
        "command_help": "Absolute path of the command to execute",
        "command_args": "Arguments",
        "command_args_help": "Comma separated command arguments. Placeholders are supported",
        "command_env_vars_help": "Placeholders are supported in values. Setting the name to \"$\" without quotes means retrieving the value from the environment",
        "email_recipients": "To",
        "email_recipients_help": "Comma separated recipients. Placeholders are supported",
        "email_bcc": "Bcc",
        "email_bcc_help": "Comma separated Bcc addresses. Placeholders are supported",
        "email_subject": "Subject",
        "content_type": "Content Type",
        "attachments": "Attachments",
        "attachments_help": "Comma separated paths to attach. Placeholders are supported. The total size is limited to 10 MB",
        "data_retention": "Data retention",
        "data_retention_help": "Set the data retention, as hours, per path. Retention applies recursively. Setting 0 as retention means excluding the specified path. \"Ignore user permissions\" defines whether to delete files even if the user does not have the \"delete\" permission, by default files will be skipped if the user does not have the \"delete\" permission",
        "delete_empty_dirs": "Delete empty dirs",
        "fs_action": "Filesystem action",
        "paths_src_dst_help": "Paths as seen by SFTPGo users. Placeholders are supported. The required permissions are granted automatically",
        "source_path": "Source",
        "target_path": "Target",
        "paths_help": "Comma separated paths as seen by SFTPGo users. Placeholders are supported. The required permissions are granted automatically",
        "archive_path": "Archive path",
        "archive_path_help": "Full path, as seen by SFTPGo users, to the zip archive to create. Placeholders are supported. If the specified file already exists, it is overwritten",
        "placeholders_modal_title": "Supported placeholders",
        "types": {
            "http": "HTTP",
            "email": "Email",
            "backup": "Backup",
            "user_quota_reset": "User quota reset",
            "folder_quota_reset": "Folder quota reset",
            "transfer_quota_reset": "Transfer quota reset",
            "data_retention_check": "Data retention check",
            "filesystem": "Filesystem",
            "password_expiration_check": "Password expiration check",
            "user_expiration_check": "User expiration check",
            "user_inactivity_check": "User inactivity check",
            "idp_check": "Identity Provider account check",
            "command": "Command"
        },
        "fs_types": {
            "rename": "Rename",
            "delete": "Delete",
            "path_exists": "Paths exis",
            "compress": "Compress",
            "copy": "Copy",
            "create_dirs": "Create directories"
        },
        "placeholders_modal": {
            "name": "Username, virtual folder name, admin username for provider events, domain name for TLS certificate events",
            "event": "Event name, for example \"upload\", \"download\" for filesystem events or \"add\", \"update\" for provider events",
            "status": "Status for filesystem events. 1 means no error, 2 means a generic error occurred, 3 means quota exceeded error",
            "status_string": "Status as string. Possible values \"OK\", \"KO\"",
            "error_string": "Error details. Replaced with an empty string if no errors occur",
            "virtual_path": "Path seen by SFTPGo users, for example \"/adir/afile.txt\"",
            "virtual_dir_path": "Parent directory for \"VirtualPath\", for example if \"VirtualPath\" is \"/adir/afile.txt\", \"VirtualDirPath\" is \"/adir\"",
            "fs_path": "Full filesystem path, for example \"/user/homedir/adir/afile.txt\" or \"C:/data/user/homedir/adir/afile.txt\" on Windows",
            "ext": "File extension, for example \".txt\" if the filename is \"afile.txt\"",
            "object_name": "File/directory name, for example \"afile.txt\" or provider object name",
            "object_type": "Object type for provider events: \"user\", \"group\", \"admin\", etc",
            "virtual_target_path": "Virtual target path for rename and copy operations",
            "virtual_target_dir_path": "Parent directory for \"VirtualTargetPath\"",
            "target_name": "Target object name for rename and copy operations",
            "fs_target_path": "Full filesystem target path for rename and copy operations",
            "file_size": "File size (bytes)",
            "elapsed": "Elapsed time as milliseconds for filesystem events",
            "protocol": "Protocol, for example \"SFTP\", \"FTP\"",
            "ip": "Client IP address",
            "role": "User or admin role",
            "timestamp": "Event timestamp as nanoseconds since epoch",
            "email": "For filesystem events, this is the email associated with the user performing the action. For the provider events, this is the email associated with the affected user or admin. Blank in all other cases",
            "object_data": "Provider object data serialized as JSON with sensitive fields removed",
            "object_data_string": "Provider object data as JSON escaped string with sensitive fields removed",
            "retention_reports": "Data retention reports as zip compressed CSV files. Supported as email attachment, file path for multipart HTTP request and as single parameter for HTTP requests body",
            "idp_field": "Identity Provider custom fields containing a string",
            "metadata": "Cloud storage metadata for the downloaded file serialized as JSON",
            "metadata_string": "Cloud storage metadata for the downloaded file as JSON escaped string",
            "uid": "Unique ID"
        }
    },
    "rules": {
        "view_manage": "View and manage rules for events",
        "trigger": "Trigger",
        "run_confirm": "Do you want to execute the selected rule?",
        "run_confirm_btn": "Yes, run",
        "run_error_generic": "Unable to run the selected rule",
        "run_ok": "Rule actions started",
        "run": "Run",
        "invalid_fs_min_size": "Invalid min size",
        "invalid_fs_max_size": "Invalid max size",
        "action_required": "At least one action is required",
        "fs_event_required": "At least one filesystem event is required",
        "provider_event_required": "At least one provider event is required",
        "schedule_required": "At least one schedule is required",
        "schedule_invalid": "Invalid schedule",
        "duplicate_actions": "Duplicate actions detected",
        "sync_failure_actions": "Synchronous execution is not supported for failure actions",
        "sync_unsupported": "Synchronous execution is only supported for some filesystem events and Identity Provider logins",
        "sync_unsupported_fs_event": "Synchronous execution is only supported for upload and pre-* filesystem events",
        "only_failure_actions": "At least a non-failure action is required",
        "sync_action_required": "Event \"{{val}}\" requires at least a synchronous action",
        "scheduler_help": "The scheduler uses UTC time. Hours: 0-23. Day of week: 0-6 (Sun-Sat). Day of month: 1-31. Month: 1-12. Asterisk (*) indicates a match for all the values of the field. e.g. every day of week, every day of month and so on",
        "concurrent_run": "Allow concurrent execution from multiple instances",
        "protocol_filters": "Protocol filters",
        "object_filters": "Object filters",
        "name_filters": "Name filters",
        "name_filters_help": "Shell-like pattern filters for usernames, folder names. For example \"user*\"\" will match names starting with \"user\". For provider events, this filter is applied to the username of the admin executing the event",
        "inverse_match": "Inverse match",
        "group_name_filters": "Group name filters",
        "group_name_filters_help": "Shell-like pattern filters for group names. For example \"group*\"\" will match group names starting with \"group\"",
        "role_name_filters": "Role name filters",
        "role_name_filters_help": "Shell-like pattern filters for role names. For example \"role*\"\" will match role names starting with \"role\"",
        "path_filters": "Path filters",
        "path_filters_help": "Shell-like pattern filters on filesystem event paths. For example \"/adir/*.txt\"\" will match paths in the \"/adir\" directory ending with \".txt\". Double asterisk is supported, for example \"/**/*.txt\" will match any file ending with \".txt\". \"/mydir/**\" will match any entry in \"/mydir\"",
        "file_size_limits": "File size limits",
        "file_size_limits_help": "0 means no limit. You can use MB/GB suffix",
        "min_size": "Minimum size",
        "max_size": "Maximum size",
        "actions_help": "One or more actions to execute. The \"Execute sync\" option is supported for \"upload\" events and required for \"pre-*\" events and Identity provider login events if the action checks the account",
        "option_failure_action": "Failure action",
        "option_stop_on_failure": "Stop on failure",
        "option_execute_sync": "Synchronous execution",
        "no_filter": "No filter means always triggering events",
        "action_placeholder": "Select an action",
        "triggers": {
            "fs_event": "Filesystem events",
            "provider_event": "Provider events",
            "ip_blocked": "IP blocked",
            "certificate_renewal": "Certificate renewal",
            "on_demand": "On demand",
            "idp_login": "Identity Provider logins",
            "schedule": "Schedules"
        },
        "idp_logins": {
            "user": "User login",
            "admin": "Admin login"
        }
    }
}