{
  "errors":{
    "40036": "Default storage policy cannot be deleted.",
    "40037": "{{message}} file(s) are using this policy, please delete those files first.",
    "40038": "{{message}} group(s) are using this policy, please unlink those groups first.",
    "40040": "Cannot perform such action on system group.",
    "40041": "{{message}} users are still in this group, please delete or unlink those users first.",
    "40042": "Cannot change the group of system user group.",
    "40043": "Cannot perform such action on default user.",
    "40046": "Cannot perform such action on master node.",
    "40060": "Slave node cannot send callback request to master, please check master node setting: Basic - Site Information - Site URL, please make sure slave node can access this url. ({{message}})",
    "40061": "Mismatched Cloudreve version. ({{message}})",
    "50008": "Failed to update setting. ({{message}})",
    "50009": "Failed to add CORS policy."
  },
  "nav": {
    "summary": "Summary",
    "settings": "Settings",
    "basicSetting": "Basic",
    "publicAccess": "Public Access",
    "email": "Email",
    "transportation": "Transmission",
    "appearance": "Appearance",
    "image": "Images",
    "captcha": "Captcha",
    "storagePolicy": "Storage Policy",
    "nodes": "Nodes",
    "groups": "Groups",
    "users": "Users",
    "files": "Files",
    "shares": "Shares",
    "tasks": "Tasks",
    "remoteDownload": "Remote Download",
    "generalTasks": "General",
    "title": "Dashboard",
    "dashboard": "Cloudreve Dashboard"
  },
  "summary": {
    "newsletterError": "Failed to load newsletter.",
    "confirmSiteURLTitle": "Confirm site URL",
    "siteURLNotSet": "You have not set the site URL yet, do you want to set it to the current {{current}} ?",
    "siteURLNotMatch": "The site URL you set does not match the current one, do you want to set it to the {{current}} ?",
    "siteURLDescription": "This setting is very important, make sure it matches the actual URL of your site. You can change this setting in Settings - Basic.",
    "ignore": "Ignore",
    "changeIt": "Change it",
    "trend": "Trend",
    "summary": "Summary",
    "totalUsers": "Users",
    "totalFiles": "Files",
    "publicShares": "Public shares",
    "privateShares": "Private shares",
    "homepage": "Homepage",
    "documents": "Documents",
    "github": "Github repository",
    "forum": "Forum",
    "forumLink": "https://github.com/cloudreve/Cloudreve/discussions",
    "telegramGroup": "Telegram group",
    "telegramGroupLink": "https://t.me/cloudreve_global",
    "buyPro": "Donate to developers",
    "publishedAt": "published at <0></0>",
    "newsTag": "announcements"
  },
  "settings": {
    "saved": "Settings saved.",
    "save": "Save",
    "basicInformation": "Basic Information",
    "mainTitle": "Main title",
    "mainTitleDes": "Main title of the website.",
    "subTitle": "Subtitle",
    "subTitleDes": "Subtitle of the website.",
    "siteKeywords": "Site keywords",
    "siteKeywordsDes": "Keywords of the website, separated by commas.",
    "siteDescription": "Site description",
    "siteDescriptionDes": "Description of the website, which may be displayed in the shared page summary.",
    "siteURL": "Site URL",
    "siteURLDes": "Very important, please make sure it is consistent with the actual situation. When using cloud storage policy and payment platform, please fill in the address that can be accessed by WAN.",
    "customFooterHTML": "Custom footer HTML",
    "customFooterHTMLDes": "Custom HTML code inserted at the bottom of the page.",
    "announcement": "Announcement",
    "announcementDes": "Announcements displayed to logged-in users. Blank value will not be displayed. After this content is changed, all users will see the announcement again.",
    "supportHTML": "Enter HTML or plain text.",
    "pwa": "Progressive Web Application (PWA)",
    "smallIcon": "Small icon",
    "smallIconDes": "URL of the small icon with the ico as extension",
    "mediumIcon": "Medium icon",
    "mediumIconDes": "URL of the medium icon, prefer size at 192x192, png format.",
    "largeIcon": "Large icon",
    "largeIconDes": "URL of the medium icon, prefer size at 512x512, png format. This icon will also be shown while switching account in iOS app.",
    "displayMode": "Display mode",
    "displayModeDes": "The display mode of a PWA application after it's installed.",
    "themeColor": "Theme color",
    "themeColorDes": "CSS color value that affect the color of the status bar on the PWA launch screen, the status bar in the content page, and the address bar.",
    "backgroundColor": "Background color",
    "backgroundColorDes": "CSS color value.",
    "hint": "Hint",
    "webauthnNoHttps": "Web Authn requires your website to be HTTPS enabled, and please confirm that in Settings - Basic - Site URL also uses HTTPS.",
    "accountManagement": "Accounts",
    "allowNewRegistrations": "Accept new signups",
    "allowNewRegistrationsDes": "After disabled, no new users can be registered, unless manually added by admins.",
    "emailActivation": "Email activation",
    "emailActivationDes": "After enabled, new users need to click the activation link in the email to complete signups. Please make sure the email delivery settings are correct, otherwise the activation email will not be delivered.",
    "captchaForSignup": "Captcha for signups",
    "captchaForSignupDes": "Whether to enable the captcha for signups.",
    "captchaForLogin": "Captcha for logins",
    "captchaForLoginDes": "Whether to enable the captcha for logins.",
    "captchaForReset": "Captcha for resetting password",
    "captchaForResetDes": "Whether to enable the captcha for resetting password.",
    "webauthnDes": "Whether to allow users to log in using a hardware authenticator, the website must enable HTTPS for this to work.",
    "webauthn": "Hardware authenticator",
    "defaultGroup": "Default group",
    "defaultGroupDes": "The initial user group after user registration.",
    "testMailSent": "Test email is sent.",
    "testSMTPSettings": "Test SMTP settings",
    "testSMTPTooltip": "Before sending a test email, please save the changed SMTP settings; the email delivery results will not be fed back immediately, if you do not receive a test email for a long time, please check the error log output by Cloudreve in the terminal.",
    "recipient": "Recipient",
    "send": "Send",
    "smtp": "SMTP",
    "senderName": "Sender name",
    "senderNameDes": "The sender's name displayed in the email.",
    "senderAddress": "Sender address",
    "senderAddressDes": "Email address of the sender.",
    "smtpServer": "SMTP server",
    "smtpServerDes": "SMTP server address, without port number.",
    "smtpPort": "SMTP Port",
    "smtpPortDes": "Port of SMTP server.",
    "smtpUsername": "SMTP Username",
    "smtpUsernameDes": "SMTP username, generally the same as the sender address.",
    "smtpPassword": "SMTP Password",
    "smtpPasswordDes": "Password of the sender mailbox.",
    "replyToAddress": "Reply to address",
    "replyToAddressDes": "The mailbox used to receive reply emails when users reply to emails sent by the system.",
    "enforceSSL": "Enforce SSL connection",
    "enforceSSLDes": "Whether to enforce an SSL encrypted connection. If you cannot send emails, you can turn this off and Cloudreve will try to use STARTTLS and decide whether to use encrypted connections.",
    "smtpTTL": "SMTP connection TTL (seconds)",
    "smtpTTLDes": "SMTP connections established during the TTL period will be reused by new mail delivery requests.",
    "emailTemplates": "Email Templates",
    "activateNewUser": "Activate new user",
    "activateNewUserDes": "Template for activation email after new user registration.",
    "resetPassword": "Reset password",
    "resetPasswordDes": "Template reset password.",
    "sendTestEmail": "Send test email",
    "transportation": "Transmission",
    "workerNum": "Number of worker",
    "workerNumDes": "The maximum number of tasks to be executed in parallel by the master node task queue, restarting Cloudreve is needed to take effect.",
    "transitParallelNum": "Number of transfer in parallel",
    "transitParallelNumDes": "Maximum number of parallel co-processes for transfer tasks.",
    "tempFolder": "Temp folder",
    "tempFolderDes": "Used to store temporary files generated by tasks such as decompression, compression, etc.",
    "textEditMaxSize": "Max size of editable document files",
    "textEditMaxSizeDes": "The maximum size of a document file that can be edited online, files beyond this size cannot be edited online. This setting applies to plain text, code and Office documents (WOPI).",
    "failedChunkRetry": "Max chunk error retries",
    "failedChunkRetryDes": "Maximum number of retries after a failed chunk, only for server-side uploads or transferring.",
    "cacheChunks": "Cache chunk for retries",
    "cacheChunksDes": "If enabled, streaming chunk uploads will cache chunk data in a temporary directory for retrying after failed uploads.\n If disabled, streaming chunk uploads do not take up additional hard disk space, but the entire upload will fail immediately after a single chunk failure.",
    "resetConnection": "Reset connection after failed upload",
    "resetConnectionDes": "If enabled, the server will force to reset the connection if upload verification fails.",
    "expirationDuration": "Expire Durations (seconds)",
    "batchDownload": "Batch download",
    "downloadSession": "Download session",
    "previewURL": "Preview URL",
    "docPreviewURL": "Doc preview URL",
    "uploadSession": "Upload session",
    "uploadSessionDes": "For supported storage policy, user can resume uploads within upload session expiration. Max value various from third-party storage providers.",
    "downloadSessionForShared": "Download session in shares",
    "downloadSessionForSharedDes": "Repeated downloads of shared files within this set period of time will not be counted in the total number of downloads.",
    "onedriveMonitorInterval": "OneDrive upload monitor interval",
    "onedriveMonitorIntervalDes": "At set intervals, Cloudreve will request OneDrive to check client uploads to ensure they're under control.",
    "onedriveCallbackTolerance": "OneDrive callback timeout",
    "onedriveCallbackToleranceDes": "Maximum time to wait for the callback after the OneDrive client has finished uploading, if it exceeds it, the upload will be considered failed.",
    "onedriveDownloadURLCache": "OneDrive download cache",
    "onedriveDownloadURLCacheDes": "Cloudreve can cache the result after getting the file download URL to reduce the frequency of hot API requests.",
    "slaveAPIExpiration": "Slave API timeout (seconds)",
    "slaveAPIExpirationDes": "Timeout time for master to wait for slave API request responses.",
    "heartbeatInterval": "Node heartbeat interval (seconds)",
    "heartbeatIntervalDes": "The interval at which the master node sends heartbeats to slave nodes.",
    "heartbeatFailThreshold": "Heartbeat failure retry threshold",
    "heartbeatFailThresholdDes": "The maximum number of retries the master can make after sending a heartbeat to a slave that fails. After all failed retries, the node will enter recovery mode.",
    "heartbeatRecoverModeInterval": "Recover mode heartbeat interval (seconds)",
    "heartbeatRecoverModeIntervalDes": "Interval between master attempts to reconnect to a node after the node has been marked as recovery mode.",
    "slaveTransitExpiration": "Slave transfer timeout (seconds)",
    "slaveTransitExpirationDes": "Maximum time that can be consumed by a slave to execute a file transfer task.",
    "nodesCommunication": "Node Communication",
    "cannotDeleteDefaultTheme": "Cannot delete default theme.",
    "keepAtLeastOneTheme": "Please reserve at least one theme.",
    "duplicatedThemePrimaryColor": "Duplicated primart color.",
    "themes": "Themes",
    "colors": "Colors",
    "themeConfig": "Configs",
    "actions": "Actions",
    "wrongFormat": "Incorrect format.",
    "createNewTheme": "Create new theme",
    "themeConfigDoc": "https://v4.mui.com/customization/default-theme/",
    "themeConfigDes": "Full available configurations can be referred at <0>Default Theme - Material-UI</0>.",
    "defaultTheme": "Default theme",
    "defaultThemeDes": "The default them to use when the user does not specify a preferred one.",
    "appearance": "Appearance",
    "personalFileListView": "Default view for personal file list",
    "personalFileListViewDes": "The default display view to use when the user does not specify a preferred one.",
    "sharedFileListView": "Default view for shared file list",
    "sharedFileListViewDes": "The default display view to use when the user does not specify a preferred one.",
    "primaryColor": "Primary color",
    "primaryColorText": "Text on primary color",
    "secondaryColor": "Secondary color",
    "secondaryColorText": "Text on secondary color",
    "avatar": "Avatar",
    "gravatarServer": "Gravatar server",
    "gravatarServerDes": "URL of Gravatar mirror server.",
    "avatarFilePath": "Avatar file path",
    "avatarFilePathDes": "Path to save user's avatar files.",
    "avatarSize": "Max avatar file size",
    "avatarSizeDes": "Maximum size of avatar files that users can upload.",
    "smallAvatarSize": "Small avatar width",
    "mediumAvatarSize": "Medium avatar width",
    "largeAvatarSize": "Large avatar width",
    "filePreview": "File Preview",
    "officePreviewService": "Office preview service",
    "officePreviewServiceDes": "You can use following magic variables：",
    "officePreviewServiceSrcDes": "File URL",
    "officePreviewServiceSrcB64Des": " Base64 encoded file URL",
    "officePreviewServiceName": "File name",
    "thumbnails": "Thumbnails",
    "localOnlyInfo": "The following settings only apply to local storage policies.",
    "thumbnailDoc": "For more information about thumbnail, see the <0>document</0>.",
    "thumbnailDocLink":"https://docs.cloudreve.org/v/en/use/thumbnails",
    "thumbnailBasic": "Basic",
    "generators": "Generators",
    "thumbMaxSize": "Maximum original file size",
    "thumbMaxSizeDes": "The maximum original file size for which thumbnails can be generated, thumbnails will not be generated if files exceed this size.",
    "generatorProxyWarning": "By default, non-local storage policies will only use the \"Native in storage policy\" generator. You can extend the thumbnail capability of third-party storage policies by enabling the \"Generator proxy\" feature.",
    "policyBuiltin": "Native in storage policy",
    "policyBuiltinDes": "Use the native API from storage provider to process thumbnails. For local and S3 policy, this generator is not available and will automatically fallback to other generators. For other storage policies, please refer to the Cloudreve documentation for supported image formats.",
    "cloudreveBuiltin":"Cloudreve built-in",
    "cloudreveBuiltinDes": "Only images in PNG, JPEG, GIF formats are supported using Cloudreve's built-in image processing capabilities.",
    "libreOffice": "LibreOffice",
    "libreOfficeDes": "Use LibreOffice to generate thumbnails for Office documents. This generator depends on any other image thumbnail generator (Cloudreve built-in or VIPS).",
    "vips": "VIPS",
    "vipsDes": "Use libvips to process thumbnail images, support more image formats, and consume less resources.",
    "thumbDependencyWarning": "LibreOffice generators depend on Cloudreve built-in or VIPS generators, please enable either one.",
    "ffmpeg": "FFmpeg",
    "ffmpegDes": "Use FFmpeg to generate video thumbnails.",
    "executable": "Executable",
    "executableDes": "The address or command of the third-party generator executable.",
    "executableTest": "Test",
    "executableTestSuccess": "Generator works, version: {{version}}",
    "generatorExts": "Available extensions",
    "generatorExtsDes": "List of available file extensions for this generator, please use comma , to separate multiple ones.",
    "ffmpegSeek": "Thumbnail capture location",
    "ffmpegSeekDes": "Define the thumbnail interception time, it is recommended to choose a smaller value to speed up the generation process. If the actual length of the video is exceeded, the thumbnail generation will fail.",
    "generatorProxy": "Generator proxy",
    "enableThumbProxy": "Use generator proxy",
    "proxyPolicyList": "Enabled storage policy",
    "proxyPolicyListDes": "Multi-selectable. If enabled, files whose storage policy does not support native generation, its thumbnails will be proxy generated by the Cloudreve.",
    "thumbWidth": "Width",
    "thumbHeight": "Height",
    "thumbSuffix": "File suffix",
    "thumbConcurrent": "Concurrent count",
    "thumbConcurrentDes": "-1 means auto.",
    "thumbFormat": "Image format",
    "thumbFormatDes": "Available: png/jpg",
    "thumbQuality": "Quality",
    "thumbQualityDes": "Compression quality percentage, valid only for jpg encoding.",
    "thumbGC": "Run GC after thumb generated",
    "captcha": "Captcha",
    "captchaType": "Captcha type",
    "plainCaptcha": "Plain",
    "reCaptchaV2": "reCAPTCHA V2",
    "tencentCloudCaptcha": "Tencent Cloud Captcha",
    "captchaProvider": "Provider of the captcha service.",
    "plainCaptchaTitle": "Plain Captcha",
    "captchaWidth": "Width",
    "captchaHeight": "Height",
    "captchaLength": "Length",
    "captchaMode": "Mode",
    "captchaModeNumber": "Numbers",
    "captchaModeLetter": "Letters",
    "captchaModeMath": "Math",
    "captchaModeNumberLetter": "Numbers + Letters",
    "captchaElement": "Elements inside of the captcha image.",
    "complexOfNoiseText": "Complex of noise text",
    "complexOfNoiseDot": "Complex of noise dots",
    "showHollowLine": "Show hollow lines",
    "showNoiseDot": "Show noise dots",
    "showNoiseText": "Show noise text",
    "showSlimeLine": "Show slime lines",
    "showSineLine": "Show sine lines",
    "siteKey": "Site KEY",
    "siteKeyDes": "You can find it at <0>App Management Page</0>.",
    "siteSecret": "Secret",
    "siteSecretDes": "You can find it at <0>App Management Page</0>.",
    "secretID": "SecretId",
    "secretIDDes": "You can find it at <0>Access Management Page</0>.",
    "secretKey": "SecretKey",
    "secretKeyDes": "You can find it at <0>Access Management Page</0>.",
    "tCaptchaAppID": "APPID",
    "tCaptchaAppIDDes": "You can find it at <0>Captcha Management Page</0>.",
    "tCaptchaSecretKey": "App Secret Key",
    "tCaptchaSecretKeyDes": "You can find it at <0>Captcha Management Page</0>.",
    "staticResourceCache": "Public static resources cache",
    "staticResourceCacheDes": "Max age of cache for public accessible static resources (e.g. local policy source link, download link).",
    "wopiClient": "WOPI Client",
    "wopiClientDes": "Extend Cloudreve's document online preview and editing capabilities by interfacing with online document processing systems that support the WOPI protocol. For more information, please refer to <0>Official Documentation</0>.",
    "wopiDocLink": "https://docs.cloudreve.org/v/en/use/wopi",
    "enableWopi": "Enable WOPI",
    "wopiEndpoint": "WOPI Discovery Endpoint",
    "wopiEndpointDes": "Endpoint URL of WOPI Discovery API.",
    "wopiSessionTtl": "Edit session TTL (seconds)",
    "wopiSessionTtlDes": "The user opens an online editing document session with an expiration date, beyond which the session cannot continue to save new changes."
  },
  "policy": {
    "sharp": "#",
    "name": "Name",
    "type": "Type",
    "childFiles": "Chile files",
    "totalSize": "Total size",
    "actions": "Actions",
    "authSuccess": "Authorization granted.",
    "policyDeleted": "Policy deleted.",
    "newStoragePolicy": "New storage policy",
    "all": "All",
    "local": "Local",
    "remote": "Remote Node",
    "qiniu": "Qiniu",
    "upyun": "Upyun",
    "oss": "Alibaba Cloud OSS",
    "cos": "Tencent Cloud COS",
    "onedrive": "OneDrive",
    "s3": "AWS S3",
    "refresh": "Refresh",
    "delete": "Delete",
    "edit": "Edit",
    "editInProMode": "Edit in pro mode",
    "editInWizardMode": "Edit in wizard mode",
    "selectAStorageProvider": "Select a storage provider",
    "comparesStoragePolicies": "Compare storage policies",
    "comparesStoragePoliciesLink": "https://docs.cloudreve.org/v/en/use/policy/compare",
    "storagePathStep": "Storage path",
    "sourceLinkStep": "Source links",
    "uploadSettingStep": "Uploading",
    "finishStep": "Finish",
    "policyAdded": "Storage policy added.",
    "policySaved": "Storage policy saved.",
    "editLocalStoragePolicy": "Edit local storage policy",
    "addLocalStoragePolicy": "Add local storage policy",
    "optional": "Optional",
    "pathMagicVarDes": "Enter the physical path to the folder you want to store files. Either absolute or relative (relative to Cloudreve executable) path is supported. You can use magic variables in the path, which will be automatically replaced with the corresponding values when the file is uploaded; see <0>List of path magic variables</0> for available magic variables.",
    "pathOfFolderToStoreFiles": "Path of the folder",
    "filePathMagicVarDes": "Do you want to rename the physical files that are uploaded? The renaming here will not affect the final file name presented to the user. Magic variables can also be used for file names, see <0>List of Magic Variables for file names</0> for available magic variables.",
    "autoRenameStoredFile": "Enable auto-renaming",
    "keepOriginalFileName": "Use original file name",
    "renameRule": "Rename rule",
    "next": "Next",
    "enableGettingPermanentSourceLink": "Allow user to get permanent file source link?",
    "enableGettingPermanentSourceLinkDes": "When enabled, users can obtain a direct link to the contents of the file, for use in the Image Bed application or for your own use. You may also need to enable this feature in the user group settings to make it available for users.",
    "allowed": "Enable",
    "forbidden": "Disable",
    "useCDN": "Do you want to use CDN for download and source links?",
    "useCDNDes": "When enabled, the domain part of the URL which user uses to access files will be replaced with the CDN domain.",
    "use": "Enable",
    "notUse": "Disable",
    "cdnDomain": "Select a protocol and enter the CDN domain:",
    "cdnPrefix": "CDN domain",
    "back": "Back",
    "limitFileSize": "Do you want to limit the max size of one single file that can be uploaded?",
    "limit": "Yes",
    "notLimit": "No",
    "enterSizeLimit": "Enter the max file size:",
    "maxSizeOfSingleFile": "Max single file size",
    "limitFileExt": "Do you want to limit file extensions？",
    "enterFileExt": "Enter the file extensions allowed to be uploaded, separated by semi-colon commas:",
    "extList": "File extension list",
    "chunkSizeLabel": "Specify the chunk size for resumable uploads. A value of 0 means no resumable uploads are used.",
    "chunkSizeDes": "After enabling resumable upload, the files uploaded by users will be sliced into chunks and uploaded to the storage side one by one. After the upload is interrupted, users can choose to continue uploading from the last uploaded chunk.",
    "chunkSize": "Chunk size",
    "nameThePolicy": "Last step, name the storage policy:",
    "policyName": "Storage policy name",
    "finish": "Finish",
    "furtherActions": "To use this storage policy, go to the user group setting page and bind this storage policy for the appropriate user group.",
    "backToList": "Back to storage policy list",
    "magicVar": {
      "fileNameMagicVar": "File name magic variables",
      "pathMagicVar": "Path magic variables",
      "variable": "Variable",
      "description": "Description",
      "example": "Example",
      "16digitsRandomString": "16 digits random string",
      "8digitsRandomString": "8 digits random string",
      "secondTimestamp": "Timestamp",
      "nanoTimestamp": "Nano timestamp",
      "uid": "User ID",
      "originalFileName": "Original file name",
      "originFileNameNoext": "Original file name without ext",
      "extension": "File extension name",
      "uuidV4": "UUID V4",
      "date": "Date",
      "dateAndTime": "Date and time",
      "year": "Year",
      "month": "Month",
      "day": "Day",
      "hour": "Hour",
      "minute": "Minute",
      "second": "Second",
      "userUploadPath": "Upload path"
    },
    "storageNode": "Storage node",
    "communicationOK": "Communication successful.",
    "editRemoteStoragePolicy": "Edit remote storage policy",
    "addRemoteStoragePolicy": "Add remote storage policy",
    "remoteDescription": "The remote storage policy allows you to use a server that is also running Cloudreve as the slave storage node, and users' upload and download traffic are directly transmitted over HTTP.",
    "remoteCopyBinaryDescription": "Copy the Cloudreve executable with the same version as master to the server you want to use as a slave storage node.",
    "remoteSecretDescription": "The following is the randomly generated slave secret, usually no need to change. If you have customization requirement, you can fill in your own secret into the following field.",
    "remoteSecret": "Slave node secret",
    "modifyRemoteConfig": "Modify the Cloudreve config file on slave node.",
    "addRemoteConfigDes": " Create a new <0>conf.ini</0> file in the same directory as the slave Cloudreve, fill in the slave configuration, and start/restart the slave Cloudreve. The following is an example configuration for your slave Cloudreve, where the secret section is pre-filled in for you as generated in the previous step.",
    "remoteConfigDifference": "The configuration file format on the slave side is roughly the same as the master side, with the following differences:",
    "remoteConfigDifference1": "The <1>mode</1> field under the <0>System</0> section must be changed to <2>slave</2>.",
    "remoteConfigDifference2": "You must specify the <1>Secret</1> field under the <0>Slave</0> section, whose value is the secret filled in or generated in step 2.",
    "remoteConfigDifference3": "The cross-origin configuration, i.e. the contents of the <0>CORS</0> field, must be enabled, as described in the example above or in the official documentation. If the configuration is not correct, users will not be able to upload files to the slave node via the web browser.",
    "inputRemoteAddress": "Enter slave node address.",
    "inputRemoteAddressDes": "If HTTPS is enabled on the master, the slave also needs to enable it and fill in the address with HTTPS protocol below.",
    "remoteAddress": "Slave node address",
    "testCommunicationDes": "After completing the above steps, you can test if the communication is working by clicking the test button below.",
    "testCommunication": "Test slave communication",
    "pathMagicVarDesRemote": "Enter the physical path to the folder you want to store files. Either absolute or relative (relative to slave Cloudreve executable) path is supported. You can use magic variables in the path, which will be automatically replaced with the corresponding values when the file is uploaded; see <0>List of path magic variables</0> for available magic variables.",
    "storageBucket": "Storage bucket",
    "editQiniuStoragePolicy": "Edit Qiniu storage policy",
    "addQiniuStoragePolicy": "Add Qiniu storage policy",
    "wanSiteURLDes": "Before using this policy, please make sure that the address you entered in Basic Settings - Site Information - Site URL matches the actual address and <0>can be accessed properly by WAN</0>.",
    "createQiniuBucket": "Go to <0>Qiniu dashboard</0> to create a storage bucket.。",
    "enterQiniuBucket": "Enter the \"bucket name\" you just created:",
    "qiniuBucketName": "Bucket name",
    "bucketTypeDes": "Select the type of bucket you just created. We recommend selecting \"Private bucket\" for higher security.",
    "privateBucket": "Private bucket",
    "publicBucket": "Public bucket",
    "bucketCDNDes": "Fill in the CDN-accelerated domain name you have bound for the storage bucket.",
    "bucketCDNDomain": "CDN domain",
    "qiniuCredentialDes": "Go to Personal Center - Credential Management in the Qiniu dashboard and fill in the obtained AK, SK.",
    "ak": "AK",
    "sk": "SK",
    "cannotEnableForPrivateBucket": "If this feature is enabled for private bucket, you need to enable \"Use redirected source link\" for user groups.",
    "limitMimeType": "Do you want to limit MimeTypes of file that can be uploaded?",
    "mimeTypeDes": "Enter the MimeType of the allowed files, and separate multiple MimeTypes with a comma. Qiniu will detect the file content to determine the MimeType, and allow the upload if the MimeType is presented in your list.",
    "mimeTypeList": "MimeTypes list",
    "chunkSizeLabelQiniu": "Specify the chunk size for resumable uploads. Allowed range is 1 MB - 1 GB.",
    "createPlaceholderDes": "Do you want to create a placeholder file and deduct user capacity when users start uploading? If enabled, Cloudreve will prevent users from maliciously initiating multiple upload requests but not completing the upload.",
    "createPlaceholder": "Create placeholder files",
    "notCreatePlaceholder": "Don't create",
    "corsSettingStep": "CORS policy",
    "corsPolicyAdded": "CORS policy is added successfully.",
    "editOSSStoragePolicy": "Edit Alibaba Cloud OSS storage policy",
    "addOSSStoragePolicy": "Add Alibaba Cloud OSS storage policy",
    "createOSSBucketDes": "Go to <0>OSS Dashboard</0> to create a Bucket。Attention: You can only use bucket with SKU of <1>Standard storage</1> or <2>Low frequency storage</2>, <3>Archive storage</3> is not supported.",
    "ossBucketNameDes": "Enter the your specified <0>Bucket name</0>:",
    "bucketName": "Bucket name",
    "publicReadBucket": "Public read",
    "ossEndpointDes": "Go to Bucket summary page, enter the <2>Endpoint</2> under <1>External access</1> section, in <0>Access domain</0> page.",
    "endpoint": "EndPoint",
    "endpointDomainOnly": "Wrong format, just enter the hostname of the domain.",
    "ossLANEndpointDes": "If your Cloudreve is deployed in Alibaba Cloud compute related services which are under the same availability zone as the OSS bucket, you can additionally specify a intranet endpoint, Cloudreve will try to use this endpoint on server side to reduce traffic cost. Do you want to use the OSS intranet endpoint?",
    "intranetEndPoint": "Intranet endpoint",
    "ossCDNDes": "Do you want to use Alibaba Cloud CDN to speed up file access?",
    "createOSSCDNDes": "Go to <0>Alibaba Cloud CDN Dashboard</0> to create a CDN domain, the source of the CDN should be your OSS bucket. Enter the CDN domain and select if you want to use HTTPS:",
    "ossAKDes": "Obtain your AccessKey in <0>Security Information Management</0> page, fill in the AccessKey below:",
    "shouldNotContainSpace": "This cannot contain spaces.",
    "nameThePolicyFirst": "Name the storage policy:",
    "chunkSizeLabelOSS": "Specify the chunk size for resumable uploads. Allowed range is 100 KB - 5 GB.",
    "ossCORSDes": "This storage policy requires a CORS policy to enable uploading from browser. Cloudreve can set it up automatically for you, or you can set it up manually by following the steps in the documentation. If you have already set the CORS policy for this Bucket, this step can be skipped.",
    "letCloudreveHelpMe": "Let Cloudreve set it for me",
    "skip": "Skip",
    "editUpyunStoragePolicy": "Edit Upyun storage policy",
    "addUpyunStoragePolicy": "Add Upyun storage policy",
    "createUpyunBucketDes": "Go to <0>Upyun Dashboard</0> to create a storage service.",
    "storageServiceNameDes": "Enter the name of your storage service:",
    "storageServiceName": "Service name",
    "operatorNameDes": "Create an operators for this service, authorize the operators with read, write, and delete permissions, fill in the operator information below.",
    "operatorName": "Operator name",
    "operatorPassword": "Operator password",
    "upyunCDNDes": "Fill in the domain bound for the storage service, and choose whether to use HTTPS.",
    "upyunOptionalDes": "You can skip this step and keep it as default, but we strongly suggest you follow below instructions.",
    "upyunTokenDes": "Go to the Feature Configuration panel of the created storage service, go to the Access Configuration tab, enable Token Anti-Hotlinking and set a secret.",
    "tokenEnabled": "Enable Token Anti-Hotlinking",
    "tokenDisabled": "Not use Token Anti-Hotlinking",
    "upyunTokenSecretDes": "Enter the secret of the Token Anti-Hotlinking.",
    "upyunTokenSecret": "Token Anti-Hotlinking secret",
    "cannotEnableForTokenProtectedBucket": "This feature is not supported if you enable Token Anti-Hotlinking.",
    "callbackFunctionStep": "Serverless callback",
    "callbackFunctionAdded": "Callback function is added.",
    "editCOSStoragePolicy": "Edit COS storage policy",
    "addCOSStoragePolicy": "Add COS storage policy",
    "createCOSBucketDes": "Go to <0>COS Dashboard</0> to create a storage bucket.",
    "cosBucketNameDes": "Go to basic setting page of created bucket, enter <0>Bucket name</0> below:",
    "cosBucketFormatError": "Bucket name format is not correct, an example: ccc-1252109809",
    "cosBucketTypeDes": "Below you can select the type of access control for the bucket you created. We recommend selecting <0>Private Read/Write</0> for higher security, private bucket do not have the \"Get Source Link\" feature.",
    "cosPrivateRW": "Private Read/Write",
    "cosPublicRW": "Public Read and Private Write",
    "cosAccessDomainDes": "Go to the base configuration of the created Bucket and fill in the <1>Access Domain</1> given under the <0>Basic Information</0> section.",
    "accessDomain": "Access domain",
    "cosCDNDes": "Do you want to use Tencent Cloud CDN to speed up file access?",
    "cosCDNDomainDes": "Go to <0>Tencent Cloud CDN Management Console</0> to create a CDN acceleration domain and set the source site to the COS bucket you just created. Fill in the CDN domain name below and select whether to use HTTPS.",
    "cosCredentialDes": "Get a pair of access keys from the Tencent Cloud <0>Access Keys</0> page and fill them in below. Please make sure the pair of keys has access permission to COS and SCF services.",
    "secretId": "SecretId",
    "secretKey": "SecretKey",
    "cosCallbackDes": "COS Storage Bucket Client-side direct transfer requires the use of Tencent Cloud's <0>Cloud Functions</0> product to ensure controlled upload callbacks. This step can be skipped if you intend to use this storage policy on your own, or assign it to a trusted user group. If it is for public use, please make sure to create callback cloud functions.",
    "cosCallbackCreate": "Cloudreve can try to automatically create the callback cloud function for you, please select the region of the COS bucket and continue. It may take a few seconds to create, so please be patient. Please make sure your Tencent Cloud account has cloud function service enabled before creating.",
    "cosBucketRegion": "Bucket region",
    "ap-beijing": "ap-beijing",
    "ap-chengdu": "ap-chengdu",
    "ap-guangzhou": "ap-guangzhou",
    "ap-guangzhou-open": "ap-guangzhou-open",
    "ap-hongkong": "ap-hongkong",
    "ap-mumbai": "ap-mumbai",
    "ap-shanghai": "ap-shanghai",
    "na-siliconvalley": "na-siliconvalley",
    "na-toronto": "na-toronto",
    "applicationRegistration": "Application registration",
    "grantAccess": "Grant access",
    "warning": "Warning",
    "odHttpsWarning": "You must enable HTTPS to use OneDrive/SharePoint storage policies; after enabled, make sure to change Settings - Basic - Site Information - Site URL.",
    "editOdStoragePolicy": "Edit OneDrive/SharePoint storage policy",
    "addOdStoragePolicy": "Add OneDrive/SharePoint storage policy",
    "creatAadAppDes": "Go to <0>Azure Active Directory Dashboard (Worldwide cloud)</0> or <1>Azure Active Directory Dashboard (21V Chinese cloud)</1>, after logging in, go to the <2>Azure Active Directory</2> admin panel, you can optionally use an account different from the one used to store files to login.",
    "createAadAppDes2": "Go to the <0>App Registrations</0> menu on the left and click the <1>New registration</1> button.",
    "createAadAppDes3": "Fill out the application registration form. Makse sure <0>Supported account types</0> is selected as <1>\tAccounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)</1>; <2>Redirect URI (optional)</2> is selected as <3>Web</3> and fill in <4>{{url}}</4>; For other fields, just leave it as default.",
    "aadAppIDDes": "Once created, go to the <0>Overview</0> page in Application Management, copy the <1>Application (Client) ID</1> and fill in the following fields:",
    "aadAppID": "Application (Client) ID",
    "addAppSecretDes": "Go to the <0>Certificates & secrets</0> menu on the left side, click the <1>New client secret</1> button, and select <3>Never</3> for the <2>Expires</2>. After you are done creating the client secret, fill in the value of the client secret below:",
    "aadAppSecret": "Client secret",
    "aadAccountCloudDes": "Select your Microsoft 365 account type:",
    "multiTenant": "Worldwide public cloud",
    "gallatin": "21V Chinese cloud",
    "sharePointDes": "Do you want to store files in SharePoint?",
    "saveToSharePoint": "Store files to SharePoint",
    "saveToOneDrive": "Store files to default OneDrive",
    "spSiteURL": "SharePoint Site URL",
    "odReverseProxyURLDes": "Do you want to use custom reverse proxy server for file downloading？",
    "odReverseProxyURL": "URL of reverse proxy server",
    "chunkSizeLabelOd": "Specify the chunk size for resumable uploads. OneDrive requires it must be an integer multiple of 320 KiB (327,680 bytes).",
    "limitOdTPSDes": "Do you want to add a limit to the frequency of server-side OneDrive API requests?",
    "tps": "TPS limit",
    "tpsDes": "Limit this storage policy the maximum number of API requests sent to OneDrive per second. Requests that exceed this frequency will be rate-limited. When multiple Cloudreve nodes transferring files, they each use their own token bucket, so please scale this number down as appropriate in this condition.",
    "tpsBurst": "TPS burst",
    "tpsBurstDes": "When requested is idle, Cloudreve can reserve a specified number of slots for future bursts of traffic.",
    "odOauthDes": "However, you will need to click the button below and authorize with Microsoft account login to complete the initialization before you can use it. You can re-authorize later on the Storage Policy List page.",
    "gotoAuthPage": "Go to authorization page",
    "s3SelfHostWarning": "AWS S3 storage policies are currently only safe for your own use, or for trusted user groups.",
    "editS3StoragePolicy": "Edit AWS S3 storage policy",
    "addS3StoragePolicy": "Add AWS S3 storage policy",
    "s3BucketDes": "Go to AWS S3 dashboard to create a bucket, enter the <0>Bucket name</0> you just created:",
    "publicAccessDisabled": "Public read disabled",
    "publicAccessEnabled": "Public read enabled",
    "s3EndpointDes": "(Optional) Specify the EndPoint (geographical node) of the storage bucket in full URL format, e.g. <0>https://bucket.region.example.com</0>. Leaving it blank will use the system-generated default endpoint.",
    "selectRegionDes": "Select the region where the storage bucket is located or enter the region code manually.",
    "enterAccessCredentials": "Obtain a pair of access credential and fill in below:",
    "accessKey": "AccessKey",
    "chunkSizeLabelS3": "Specify the chunk size for resumable uploads. Allowed range is 5 MB - 5 GB.",
    "editPolicy": "Edit storage policy",
    "setting":"Setting name",
    "value": "Value",
    "description": "Description",
    "id": "ID",
    "policyID": "ID of storage policy.",
    "policyType": "Type of storage policy.",
    "server": "Server",
    "policyEndpoint": "Storage node endpoint.",
    "bucketID": "Identifier of storage bucket.",
    "yes": "Yes",
    "no": "No",
    "privateBucketDes": "Whether the storage bucket is private.",
    "resourceRootURL": "File resource root URL",
    "resourceRootURLDes": "Prefix of URL generated for previewing and downloading.",
    "akDes": "AccessKey / RefreshToken",
    "maxSizeBytes": "Max single file size (Bytes)",
    "maxSizeBytesDes": "Max file size can be uploaded, 0 means no limit.",
    "autoRename": "Auto rename",
    "autoRenameDes": "Whether to automatically rename files.",
    "storagePath": "Storage path",
    "storagePathDes": "Physical path of uploaded files.",
    "fileName": "File name",
    "fileNameDes": "Physical name of uploaded files.",
    "allowGetSourceLink": "Allow getting source link",
    "allowGetSourceLinkDes": "Whether to allow getting source links. Note that some storage policy types are not supported, and even if they are turned on here, the obtained source links will be invalid.",
    "upyunToken": "Upyun anti-hotlinking token",
    "upyunOnly": "Available only for Upyun policy.",
    "allowedFileExtension": "Allowed file extensions",
    "emptyIsNoLimit": "Blank means not limit.",
    "allowedMimetype": "Allowed MimeType",
    "qiniuOnly": "Available only for Qiniu policy.",
    "odRedirectURL": "OneDrive redirect URL",
    "noModificationNeeded": "Generally no modification is needed.",
    "odReverseProxy": "OneDrive reverse proxy server",
    "odOnly": "Available only for OneDrive policy.",
    "odDriverID": "OneDrive/SharePoint driver ID",
    "odDriverIDDes": "Available only for OneDrive policy, blank means use default OneDrive driver.",
    "s3Region": "Amazon S3 Region",
    "s3Only": "Available only for AWS S3 policy.",
    "lanEndpoint": "Intranet EndPoint.",
    "ossOnly": "Available only for OSS policy.",
    "chunkSizeBytes": "Chunk size (Bytes)",
    "chunkSizeBytesDes": "Size of chunk for resumable uploads. Only supported in partial storage policy.",
    "placeHolderWithSize": "Use placeholder before uploading",
    "placeHolderWithSizeDes": "Whether to create a placeholder file before uploading .Only supported in partial storage policy.",
    "saveChanges": "Save changes",
    "s3EndpointPathStyle": "Select the format of the S3 Endpoint address, or if you don't know what to select, just leave to the default. Some third-party S3-compatible storage policies may require this option to work. When turned on, we will force to use of path-like format addresses, such as <0>http://s3.amazonaws.com/BUCKET/KEY</0>.",
    "usePathEndpoint": "Force path style",
    "useHostnameEndpoint": "Use host name if possible",
    "thumbExt": "Extensions that supports thumbnails",
    "thumbExtDes": "Leave blank to indicate that the storage policy predefined set is used. Not valid for local, S3 storage policies."
  },
  "node": {
    "#": "#",
    "name": "Name",
    "status": "Status",
    "features": "Enabled features",
    "action": "Actions",
    "remoteDownload": "Remote download",
    "nodeDisabled": "Node is disabled.",
    "nodeEnabled": "Node is enabled.",
    "nodeDeleted": "Node is deleted.",
    "disabled": "Disabled",
    "online": "Online",
    "offline": "Offline",
    "addNewNode": "New node",
    "refresh": "Refresh",
    "enableNode": "Enable node",
    "disableNode": "Disable node",
    "edit": "Edit",
    "delete": "Delete",
    "slaveNodeDes": "You can add a server that is also running Cloudreve as a slave node. A slave node can share the load of certain asynchronous tasks (such as remote downloads) for the master. Please refer to the following wizard to deploy and configure a slave node. <0> If you have already deployed a remote node storage policy on the target server, you can skip some steps on this page and just fill in the slave secret and server address here, keep them as the same in the remote storage policy. </0> In subsequent releases, the configuration related to the remote storage policy will be merged into here.",
    "overwriteDes": "; The following settings are optional and correspond to the relevant parameters of the master node, <0></0>; which can be applied to the slave node via the configuration file, please adjust them according to <0></0>; the actual situation. Changing the following settings requires a restart of the slave node to take effect.",
    "workerNumDes": "Maximum number of tasks to be executed in parallel in the task queue.",
    "parallelTransferDes": "Maximum number of parallel goroutine when transferring files in the task queue",
    "chunkRetriesDes": "Maximum number of retries after a failed upload of a chunk.",
    "multipleMasterDes": "A slave Cloudreve instance can interface to multiple Cloudreve master nodes; simply add this slave node to all master nodes and keep the secret consistent.",
    "ariaSuccess": "Successfully connected, Aria2 version: {{version}}",
    "slave": "slave",
    "master": "master",
    "aria2Des": "Cloudreve's remote download functionality is powered by <0>Aria2</0>. To use it, start Aria2 as the same user running Cloudreve on the target node server, and enable the RPC service in the Aria2 config file, <1>Aria2 needs to share the same file system as the {{mode}} Cloudreve process. </1> For more information and guidelines, refer the <2>Offline Downloads</2> section of the documentation.",
    "slaveTakeOverRemoteDownload": "Do you need this node to take over remote download tasks?",
    "masterTakeOverRemoteDownload": "Do you need the master to take over the remote download task?",
    "routeTaskSlave": "After enabled, users' remote download requests can be scheduled to this node for processing.",
    "routeTaskMaster": "After enabled, users' remote download requests can be scheduled to master node for processing.",
    "enable": "Enable",
    "disable": "Disable",
    "slaveNodeTarget": "on slave node which shares the same file system with slave Cloudreve",
    "masterNodeTarget": "which shares the same file system with Cloudreve",
    "aria2ConfigDes": "Boot Aria2 {{target}} which shares the same file system with Cloudreve. When you start Aria2, you need to enable the RPC service in its config file and set the RPC Secret for future use. The following is a config example for reference.",
    "enableRPCComment": "Enable RPC service",
    "rpcPortComment": "RPC port to listen on",
    "rpcSecretComment": "RPC secret, you can change it on your own.",
    "rpcConfigDes": "It is recommended to start Aria2 before the node Cloudreve in the routine startup process, so that node Cloudreve can subscribe to event notifications to Aria2 and download status changes are handled in a more timely manner. Of course, if this process is not available, node Cloudreve will also track the task status via polling.",
    "rpcServerDes": "Fill in the address of the RPC service that {{mode}} Cloudreve uses to communicate with Aria2. This can be filled in as <0>http://127.0.0.1:6800/</0>, where the port number <1>6800</1> is consistent with <2>rpc-listen-port</2> in the config file above.",
    "rpcServer": "RPC Server",
    "rpcServerHelpDes": "RPC server address contain full port number, e.g. http://127.0.0.1:6800/, Leave blank to indicate that the Aria2 service is not enabled.",
    "rpcTokenDes": "RPC secret, consistent with <0>rpc-secret</0> in the Aria2 configuration file; leave blank if not set.",
    "aria2PathDes": "Fill in the <0>absolute path</0> on the node that Aria2 uses as a temporary download directory. The Cloudreve process on the node needs read, write, and execute permissions on this directory.",
    "aria2SettingDes": "Fill in some additional Aria2 parameter information below, as your need.",
    "refreshInterval": "Status refresh interval (seconds)",
    "refreshIntervalDes": "The interval at which Cloudreve requests a refresh of the task state from Aria2.",
    "rpcTimeout": "RPC timeouts (seconds)",
    "rpcTimeoutDes": "Maximum wait time when calling RPC services.",
    "globalOptions": "Global job options",
    "globalOptionsDes": "Additional settings carried when creating a download job, written in JSON encoded format, you can also write these settings in the Aria2 config file, see the Aria2 official documentation for available settings.",
    "testAria2Des": "Once you have completed these steps, you can click the Test button below to test that if {{mode}} Cloudreve is communicating properly to Aria2.",
    "testAria2DesSlaveAddition": "Please make sure you have performed and passed the \"Slave Communication Test\" on the previous page before performing the test.",
    "testAria2": "Testing Aria2 Communication",
    "aria2DocURL": "https://docs.cloudreve.org/v/en/use/aria2",
    "nameNode": "Enter the name of this node:",
    "loadBalancerRankDes": "Specify a load balancing weight for this node, the value is an integer. Some load balancing policies will weight the nodes based on this value.",
    "loadBalancerRank": "Load balancing weight",
    "nodeSaved": "Node saved successfully.",
    "nodeSavedFutureAction": "If you add a new node, you will also need to manually enable the node in the node list for it to work properly.",
    "backToNodeList": "Back to node list",
    "communication": "Communication",
    "otherSettings": "Other settings",
    "finish": "Finish",
    "nodeAdded": "Node added successfully.",
    "nodeSavedNow": "Node saved successfully.",
    "editNode": "Edit node",
    "addNode": "Add node"
  },
  "group": {
    "#": "#",
    "name": "Name",
    "type": "Storage policy",
    "count": "Child users",
    "size": "Storage quota",
    "action": "Actions",
    "deleted": "Group deleted.",
    "new": "New group",
    "aria2FormatError": "Aria2 options format error.",
    "atLeastOnePolicy": "At least one storage policy is required.",
    "added": "Group added successfully.",
    "saved": "Group saved successfully.",
    "editGroup": "Edit {{group}}",
    "nameOfGroup": "Name",
    "nameOfGroupDes": "Name of the group.",
    "storagePolicy": "Storage policy",
    "storageDes": "Select the storage policy that this group use.",
    "availablePolicies": "Available storage policies",
    "availablePoliciesDes": "Select the storage policies that this group can use.",
    "initialStorageQuota": "Initial storage quota",
    "initialStorageQuotaDes": "Max storage can used by single user under this group.",
    "downloadSpeedLimit": "Max download speed",
    "downloadSpeedLimitDes": "Fill in 0 to indicate no limit. When the restriction is turned on, the maximum download speed will be limited when users under this user group download all files under the storage policy that supports the speed limit.",
    "bathSourceLinkLimit": "Max size of batch source links",
    "bathSourceLinkLimitDes": "For the files under the supported storage policy, the maximum number of files allowed for users to obtain source links in a single batch, fill in 0 means no batch generation of source links is allowed.",
    "allowCreateShareLink": "Share files",
    "allowCreateShareLinkDes": "If disabled, users cannot create sharing links.",
    "allowDownloadShare": "Download shared files",
    "allowDownloadShareDes": "If disabled, user cannot download shared files.",
    "allowWabDAV": "WebDAV",
    "allowWabDAVDes": "If disabled, users cannot connect to the storage via the WebDAV protocol",
    "allowWabDAVProxy": "WebDAV Proxy",
    "allowWabDAVProxyDes": "If enabled, users can configure the WebDAV to proxy traffic when downloading files",
    "disableMultipleDownload": "Disable multiple download requests",
    "disableMultipleDownloadDes": "Valid only for local storage policies. When disabled, users cannot use the multi-threaded download tool.",
    "allowRemoteDownload": "Remote download",
    "allowRemoteDownloadDes": "Whether to allow users to create remote download tasks",
    "aria2Options": "Aria2 job options",
    "aria2OptionsDes": "The additional parameters that this user group carries when creating remote download tasks. Options are written in JSON encoded format, you can also write these settings in the Aria2 configuration file, see the official documentation for available parameters.",
    "aria2BatchSize": "Max size of batch Aria2 tasks",
    "aria2BatchSizeDes": "The number of simultaneous remote download tasks allowed for the user, fill in 0 or leave blank to indicate no limit.",
    "serverSideBatchDownload": "Serverside batch download",
    "serverSideBatchDownloadDes": "Whether to allow users to select multiple files to use the server-side relay batch download, after disabled, users can still use the pure browser based batch download feature.",
    "compressTask": "Compression/Decompression tasks",
    "compressTaskDes": "Whether allow the user to create the compression/decompression task",
    "compressSize": "Maximum file size to be compressed",
    "compressSizeDes": "The maximum total file size of compression jobs that can be created by the user, fill in 0 to indicate no limit.",
    "decompressSize": "Maximum file size to be decompressed",
    "decompressSizeDes": "The maximum total file size of decompression jobs that can be created by the user, fill in 0 to indicate no limit.",
    "migratePolicy": "Migrate storage policy",
    "migratePolicyDes": "Whether the user creates a storage policy migration task.",
    "allowSelectNode": "Allow select node",
    "allowSelectNodeDes": "When enabled, user can select preferred slave node before creating remote download task. When disabled, the node will be load-balanced by system.",
    "redirectedSource": "Use redirected source link",
    "redirectedSourceDes": "When enabled, the source link to the file obtained by the user will be redirected by Cloudreve with a shorter link. When disabled, the source link to the file obtained by the user becomes the original URL to the file. Some policies produce non-redirected source links that do not remain persistent, see <0>Comparing Storage Policies</0>.",
    "availableNodes": "Available nodes",
    "availableNodesDes": "Select the slave nodes that this group can use to create remote download tasks. Empty list means all nodes are available. Users can only select or be assigned nodes within this list by load balancer.",
    "advanceDelete": "Allow advanced file deletion options",
    "advanceDeleteDes": "Once enabled, users can choose whether to force deletion and whether to unlink only physical links when deleting files. These options are similar to the administration dashboard when deleting files."
  },
  "user": {
    "deleted": "User deleted.",
    "new": "New user",
    "filter": "Filter",
    "selectedObjects": "{{num}} objects selected.",
    "nick": "Nickname",
    "email": "Email",
    "group": "Group",
    "status": "Status",
    "usedStorage": "Used storage",
    "active": "Active",
    "notActivated": "Inactive",
    "banned": "Blocked",
    "bannedBySys": "Banned by system",
    "toggleBan": "Block/Unblock",
    "filterCondition": "Filter conditions",
    "all": "All",
    "userStatus": "User status",
    "searchNickUserName": "Search nickname / username",
    "apply": "Apply",
    "added": "User added.",
    "saved": "User saved.",
    "editUser": "Edit {{nick}}",
    "password": "Password",
    "passwordDes": "Leave blank means no modification.",
    "groupDes": "Group that the user belongs to.",
    "2FASecret": "2FA Secret",
    "2FASecretDes": "Secret of the 2FA authenticator, leave blank to disable 2FA."
  },
  "file": {
    "name": "File name",
    "deleteAsync": "Delete task will be executed in background.",
    "import": "Import external files",
    "forceDelete": "Force delete",
    "size": "Size",
    "uploader": "Uploader",
    "createdAt": "Created at",
    "uploading": "Uploading",
    "unknownUploader": "Unknown",
    "uploaderID": "Uploader ID",
    "searchFileName": "Search file name",
    "storagePolicy": "Storage policy",
    "selectTargetUser": "Select target user",
    "importTaskCreated": "Import task created, you can view its status in the Tasks - General.",
    "manuallyPathOnly": "The selected storage policy only supports manually inputting path.",
    "selectFolder": "Select folder",
    "importExternalFolder": "Import external folders",
    "importExternalFolderDes": "You can import existing files and directory structures from your storage policy into Cloudreve. The import operation will not take up additional physical storage, but will still deduct the user's used storage quota as normal. The import will be halted when there is not enough quota.",
    "storagePolicyDes": "Select the storage policy where the files to be imported are currently stored.",
    "targetUser": "Target user",
    "targetUserDes": "Select which user's file system you want to import the files to, you can search users by nickname or email.",
    "srcFolderPath": "Source folder path",
    "select": "Select",
    "selectSrcDes": "The path of the directory to be imported on the storage side.",
    "dstFolderPath": "Destination folder path",
    "dstFolderPathDes": "Path in the user's file system to hold all imported files.",
    "recursivelyImport": "Recursively import",
    "recursivelyImportDes": "Whether to import all subdirectories under the directory recursively.",
    "createImportTask": "Create import task",
    "unlink": "Unlink (Keep physical file)"
  },
  "share": {
    "deleted": "Share deleted.",
    "objectName": "Object name",
    "views": "Views",
    "downloads": "Downloads",
    "price": "Price",
    "autoExpire": "Auto expire",
    "owner": "Owner",
    "createdAt": "Created at",
    "public": "Public",
    "private": "Private",
    "afterNDownloads":"After {{num}} download(s).",
    "none": "None",
    "srcType": "Source object type",
    "folder": "Folder",
    "file": "File"
  },
  "task": {
    "taskDeleted": "Task deleted.",
    "howToConfigAria2": "How to configure remote download?",
    "srcURL": "Source URL",
    "node": "Distributed node",
    "createdBy": "Created by",
    "ready": "Ready",
    "downloading": "Downloading",
    "paused": "Paused",
    "seeding": "Seeding",
    "error": "Error",
    "finished": "Finished",
    "canceled": "Canceled/Stopped",
    "unknown": "Unknown",
    "aria2Des": "Cloudreve's remote download support a master-slave decentralized mode. You can configure multiple Cloudreve slave nodes that can be used to handle remote download tasks, spreading the pressure on the master node. Of course, you can also configure to handle remote downloads only on the master node, which is the easiest way.",
    "masterAria2Des": "If you only need to enable remote downloads on the master node, <0>click here</0> to edit the master node.",
    "slaveAria2Des": "If you want to distribute remote download tasks on slave nodes, <0>click here</0> to add and configure a new node.",
    "editGroupDes": "When you add multiple nodes that can be used for remote downloads, the master node will send remote download requests to these nodes in turn for processing. You may also need to <0>go here</0> to enable remote download permissions for the corresponding groups.",
    "lastProgress": "Last progress",
    "errorMsg": "Error message"
  },
  "vas": {
    "vas": "VAS",
    "reports": "Reports",
    "orders": "Orders",
    "initialFiles": "Initial files",
    "filterEmailProvider": "Filter email provider",
    "filterEmailProviderWhitelist": "Whitelist",
    "initialFilesDes": "Specify the files that the user initially owns after signups. Enter a file ID to search existing files.",
    "filterEmailProviderDisabled": "Disabled",
    "filterEmailProviderDes": "Filter signup email domains.",
    "appLinkDes": "Will be displayed in mobile client, leave empty to hide menu item, This setting will take effect only if VOL license is valid.",
    "filterEmailProviderBlacklist": "Blacklist",
    "filterEmailProviderRuleDes": "Separate multiple fields with a semi-colon comma.",
    "filterEmailProviderRule": "Email domain filter rules",
    "qqConnectHint": "When creating the application, please fill in the callback URL: {{url}}",
    "enableQQConnectDes": "Whether to allow binding QQ, use QQ to login website.",
    "loginWithoutBindingDes": "After enabled, if a user logs in using QQ but does not have a registered user that is bound to it, the system will create a user for them and log them in. Users created in this way will only be able to log in using QQ in the future.",
    "qqConnect": "QQ Connect",
    "enableQQConnect": "Enable QQ Connect",
    "appidDes": "The APP ID obtained from the application management page.",
    "appForum": "User forum URL",
    "loginWithoutBinding": "Login without registration",
    "appKeyDes": "The APP KEY obtained from the application management page.",
    "appid": "APP ID",
    "overuseReminderDes": "Reminder email template sent to users after their capacity exceeds the limit due to expired VAS.",
    "storagePack": "Storage packs",
    "giftCodes": "Gift codes",
    "appKey": "APP KEY",
    "overuseReminder": "Overuse reminder",
    "enable": "Enable",
    "appFeedback": "Feedback URL",
    "vasSetting": "VAS settings",
    "appIDDes": "APPID of payment application.",
    "purchasableGroups": "Memberships",
    "rsaPrivateDes": "The RSA2 (SHA256) private key for the payment application, typically generated by you. For details, refer to <0>Generating RSA Keys</0>.",
    "alipayPublicKeyDes": "Provided by Alipay, available in Application Management - Application Information - API Signing Method.",
    "applicationID": "Application ID",
    "alipay": "Alipay",
    "appID": "App- ID",
    "merchantID": "Merchant number",
    "customPaymentEndpointDes":"URL to be requested when creating a payment order.",
    "rsaPrivate": "RSA application private key",
    "apiV3Secret": "API v3 secret",
    "alipayPublicKey": "Alipay public key",
    "mcCertificateSerial": "Merchant certificate serial number",
    "mcAPISecret": "Merchant API Secrey",
    "payjs": "PAYJS",
    "wechatPay": "WeChat Pay",
    "applicationIDDes": "Public number or mobile application appid applied by merchants.",
    "mcNumber": "Merchant number",
    "customPaymentEndpoint":"Payment API URL",
    "merchantIDDes": "The merchant number generated and issued by WeChat Pay.",
    "communicationSecret": "Communication key",
    "apiV3SecretDes": "The merchant needs to set the secret in [Merchant Platform] - [API Security] before the request WeChat Pay. The length of the key is 32 bytes.",
    "banBufferPeriod": "Suspend buffer period (seconds)",
    "allowSellShares": "Allow pricing for shares",
    "creditPriceRatio": "Credit arrival rate (%)",
    "mcCertificateSerialDes": "Navigate to [API Security] - [API Certificate] - [View Certificate] to view the merchant API certificate serial number.",
    "mcAPISecretDes": "Content of the secret file apiclient_key.pem.",
    "creditPrice": "Credit price (penny)",
    "customPaymentSecretDes": "Secret key for signing payment requests.",
    "payjsWarning": "This service is provided by <0>PAYJS</0>, a third-party platform, and any disputes arising from it are not the responsibility of Cloudreve developers.",
    "add": "Add",
    "mcNumberDes": "Available in the PAYJS admin panel home page.",
    "price": "Price",
    "size": "Size",
    "orCredits": " Or {{num}} credits",
    "otherSettings": "Other Settings",
    "banBufferPeriodDes": "The maximum length of time that a user can maintain the capacity overage status, beyond which the user will be suspend by the system.",
    "yes": "Yes",
    "customPaymentNameDes": "Name of the payment method used to display to the user.",
    "allowSellSharesDes": "Once enabled users can set a credit price for sharing and credit will be deducted for downloading.",
    "productName": "Product name",
    "creditPriceRatioDes": "The rate of credits actually arriving to the sharer for the purchase of a share with a set price for download.",
    "code": "Code",
    "invalidProduct": "Invalid product",
    "notUsed": "Not used",
    "creditPriceDes": "Price when recharging credits",
    "allowReportShare": "Allow report sharing",
    "allowReportShareDes": "When enabled, any user can report sharing and there is a risk of the database filling up.",
    "name": "Name",
    "addStoragePack": "Add storage pack",
    "customPaymentName": "Payment method name",
    "duration": "Duration",
    "productNameDes": "Product display name",
    "actions": "Actions",
    "durationDay": "Duration (day)",
    "priceYuan": "Price (Yuan)",
    "priceCredits": "Price (Credits)",
    "highlight": "Highlight",
    "no": "No",
    "editMembership": "Edit membership",
    "customPaymentDocumentLink":"https://docs.cloudreve.org/v/en/use/pro/pay",
    "qyt": "Qyt.",
    "group": "Group",
    "status": "Status",
    "durationGroupDes": "The validity of the purchase time of the user group unit upgraded after the purchase.",
    "productDescription": "Product description (Once per line)",
    "highlightDes": "After enabled, it will be highlighted on the product selection page.",
    "used": "Used",
    "generatingResult": "Result",
    "numberOfCodes": "Number of codes",
    "customPaymentDes":"Bridge to other third party payment platforms by implementing Cloudreve compatible payment interfaces, please refer to <0>Official Documentation</0> for details.",
    "editStoragePack": "Edit storage pack",
    "linkedProduct": "Linked product",
    "packSizeDes": "Size of storage pack",
    "productQytDes": "For credit products, this is the number of points and other products are multiples of durations.",
    "freeDownloadDes": "After enabled, user can download paid shares for free.",
    "markSuccessful": "Marked successfully.",
    "durationDayDes": "Valid duration of each storage pack.",
    "packPriceDes": "Price of storage pack.",
    "reportedContent": "Reported content",
    "customPayment": "Custom payment provider",
    "priceCreditsDes": "The price when using credits to buy, fill in 0 means you can't use credits to buy.",
    "description": "Description",
    "addMembership": "Add membership",
    "invalid": "[Invalid]",
    "orderDeleted": "Order deleted.",
    "product": "Product",
    "groupDes": "User groups upgraded after purchase.",
    "groupPriceDes": "Membership price",
    "paidBy": "Paid with",
    "showAppPromotion": "Show app promotion page",
    "showAppPromotionDes": "After enabled, user can see the guidance page for mobile application in \"Connect & Mount\" page.",
    "productDescriptionDes": "Description of the product displayed on the purchase page.",
    "unpaid": "Unpaid",
    "generateGiftCode": "Generate gift codes",
    "shareLink": "Shared link",
    "iosVol": "iOS client volume license (VOL)",
    "syncLicense": "Sync License",
    "numberOfCodesDes": "Number of gift codes to generate.",
    "productQyt": "Product qyt.",
    "freeDownload": "Download shared files for free",
    "credits": "Credits",
    "markAsResolved": "Mark as resolved",
    "reason": "Reason",
    "reportTime": "Reported at",
    "deleteShare": "Delete share link",
    "orderName": "Name",
    "orderNumber": "Order No.",
    "orderOwner": "Created by",
    "paid": "Paid",
    "volPurchase": "The client VOL license needs to be purchased separately from the <0>License Management Dashboard</0>. The VOL license allows your users to connect to your site using the <1>Cloudreve iOS</1> for free, without the need for users to pay for a subscription for the iOS app itself. After purchasing a license, please click \"Sync License\" below.",
    "mobileApp": "Mobile application",
    "volSynced": "VOL synced."
  }
}
