feat: 优化英文翻译 (#5662)

This commit is contained in:
zhengkunwang 2024-07-03 18:03:31 +08:00 committed by GitHub
parent 80f78548fd
commit 0872374fe4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 182 additions and 208 deletions

View file

@ -12,7 +12,7 @@ const message = {
false: 'false',
example: 'e.g.:',
button: {
create: 'Create ',
create: 'Create',
add: 'Add ',
save: 'Save ',
set: 'Setting',
@ -149,7 +149,7 @@ const message = {
creatingInfo: 'Creating, no need for this operation',
},
login: {
username: 'UserName',
username: 'Username',
password: 'Password',
welcome: 'Welcome back, please enter your username and password to log in!',
errorAuthInfo: 'The user name or password you entered is incorrect, please re-enter!',
@ -332,7 +332,7 @@ const message = {
overview: 'Overview',
entranceHelper:
'Enabling a secure entrance can help improve system security. If necessary, go to the Control Panel settings, select Security, and enable the secure entrance.',
appInstalled: 'App installed',
appInstalled: 'App',
systemInfo: 'System info',
hostname: 'Hostname',
platformVersion: 'Platform version',
@ -387,11 +387,11 @@ const message = {
database: {
all: 'All',
manage: 'Management',
database: 'database',
database: 'Database',
deleteBackupHelper: 'Delete database backups simultaneously',
delete: 'Delete operation cannot be rolled back, please input "',
deleteHelper: '" to delete this database',
create: 'Create database',
create: 'Create',
noMysql: 'Database service (MySQL or MariaDB)',
noPostgresql: 'Database service Postgresql',
goUpgrade: 'Go for upgrade',
@ -407,7 +407,7 @@ const message = {
serviceNameHelper: 'Access between containers in the same network.',
backupList: 'Backup',
loadBackup: 'Import',
remoteAccess: 'Remote access',
remoteAccess: 'Remote Access',
remoteHelper: 'Multiple IP comma-delimited, example: 172.16.10.111, 172.16.10.112',
remoteConnHelper:
'Remote connection to mysql as user root may have security risks. Therefore, perform this operation with caution.',
@ -415,7 +415,7 @@ const message = {
changePasswordHelper:
'The database has been associated with an application. Changing the password will change the database password of the application at the same time. The change takes effect after the application restarts.',
confChange: 'Configuration change',
confChange: 'Configuration',
confNotFound:
'The configuration file could not be found. Please upgrade the application to the latest version in the app store and try again!',
@ -455,7 +455,7 @@ const message = {
supportUpType: 'Only sql, sql.gz, and tar.gz files are supported',
zipFormat: 'tar.gz compressed package structure: test.tar.gz compressed package must contain test.sql',
currentStatus: 'Current state',
currentStatus: 'Current State',
baseParam: 'Basic parameter',
performanceParam: 'Performance parameter',
runTime: 'Startup time',
@ -487,7 +487,7 @@ const message = {
tableLocksWaited: 'Lock table number',
tableLocksWaitedHelper: 'If the value is too large, consider increasing your database performance',
performanceTuning: 'Performance tuning',
performanceTuning: 'Performance Tuning',
optimizationScheme: 'Optimization scheme',
keyBufferSizeHelper: 'Buffer size for index',
queryCacheSizeHelper: 'Query cache. If this function is disabled, set this parameter to 0',
@ -564,7 +564,7 @@ const message = {
localIP: 'Local IP',
},
container: {
create: 'Create container',
create: 'Create',
edit: 'Edit container',
updateContainerHelper:
'Container editing requires rebuilding the container. Any data that has not been persisted will be lost. Do you want to continue?',
@ -581,21 +581,21 @@ const message = {
rename: 'Rename',
remove: 'Remove',
removeAll: 'Remove All',
containerPrune: 'Container prune',
containerPrune: 'Prune',
containerPruneHelper1: 'Cleaning containers will delete all containers that are in a stopped state.',
containerPruneHelper2:
'If the containers are from the app store, after performing the cleanup, you need to go to the [Installed] list in the [App Store] and click the [Rebuild] button to reinstall them.',
containerPruneHelper3: 'This operation cannot be rolled back. Do you want to continue?',
imagePrune: 'Image prune',
imagePrune: 'Prune',
imagePruneSome: 'Clean unlabeled',
imagePruneSomeEmpty: 'No image with the "none" tag is to be cleared',
imagePruneSomeHelper: 'Clean the images with the tag "none" that are not used by any containers.',
imagePruneAll: 'Clean unused',
imagePruneAllEmpty: 'No unused images to be cleared',
imagePruneAllHelper: 'Clean the images that are not used by any containers.',
networkPrune: 'Network prune',
networkPrune: 'Prune',
networkPruneHelper: 'Remove all unused networks. Do you want to continue?',
volumePrune: 'Volume prune',
volumePrune: 'Prune',
volumePruneHelper: 'Remove all unused local volumes. Do you want to continue?',
cleanSuccess: 'The operation is successful, the number of this cleanup: {0}!',
cleanSuccessWithSpace:
@ -617,7 +617,7 @@ const message = {
cleanLogHelper:
'Clearing logs requires restarting the container, and this operation cannot be rolled back. Do you want to continue?',
newName: 'New name',
source: 'Resource rate',
source: 'Resource Rate',
cpuUsage: 'CPU Usage',
cpuTotal: 'CPU Total',
core: 'Core',
@ -689,8 +689,8 @@ const message = {
cache: 'Cache',
image: 'Image',
imagePull: 'Image pull',
imagePush: 'Image push',
imagePull: 'Pull',
imagePush: 'Push',
imageDelete: 'Image delete',
imageDeleteTag: 'Image tag delete',
imageTagDeleteHelper: 'Remove other tags associated with this image ID',
@ -698,9 +698,9 @@ const message = {
imageName: 'Image name',
pull: 'Pull',
path: 'Path',
importImage: 'Image import',
importImage: 'Import',
build: 'Build',
imageBuild: 'Image build',
imageBuild: 'Build',
pathSelect: 'Path',
label: 'Label',
imageTag: 'Image Tag',
@ -719,7 +719,7 @@ const message = {
'Cleaning the build cache will delete all cached artifacts generated during builds. This action cannot be undone. Continue?',
network: 'Network',
createNetwork: 'Create network',
createNetwork: 'Create',
networkName: 'Name',
driver: 'Driver',
option: 'Option',
@ -736,10 +736,10 @@ const message = {
mountpoint: 'Mountpoint',
mountpointNFSHelper: 'e.g. /nfs, /nfs-share',
options: 'Options',
createVolume: 'Create volume',
createVolume: 'Create',
repo: 'Repo',
createRepo: 'Add repo',
createRepo: 'Add',
httpRepo: 'The http repository needs to restart the docker service to add credit',
delInsecure: 'Deletion of credit',
delInsecureHelper: 'docker service needs to be restarted to delete the credit. Do you want to delete it?',
@ -763,10 +763,10 @@ const message = {
deleteCompose: '" Delete this composition.',
apps: 'Apps',
local: 'Local',
createCompose: 'Create compose',
createCompose: 'Create',
template: 'Template',
composeTemplate: 'Compose template',
createComposeTemplate: 'Create compose template',
createComposeTemplate: 'Create',
description: 'Description',
content: 'Content',
contentEmpty: 'Compose content cannot be empty, please enter and try again!',
@ -815,7 +815,7 @@ const message = {
sockPathMsg:
'Saving the Socket Path setting may result in Docker service being unavailable. Do you want to continue?',
sockPathErr: 'Please select or enter the correct Docker sock file path',
related: 'Related resources',
related: 'Related',
includeAppstore: 'Show app store container',
cleanDockerDiskZone: 'Clean up disk space used by Docker',
@ -839,38 +839,38 @@ const message = {
'Stopping the scheduled task will result in the task no longer automatically executing. Do you want to continue?',
enableMsg:
'Enabling the scheduled task will allow the task to automatically execute on a regular basis. Do you want to continue?',
taskType: 'Cronjob type',
taskType: 'Type',
record: 'Records',
shell: 'Shell script',
log: 'Backup logs',
logHelper: 'Backup system log',
shell: 'Shell',
log: 'Backup Logs',
logHelper: 'Backup System Log',
ogHelper1: '1.1Panel System log ',
logHelper2: '2. SSH login log of the server ',
logHelper3: '3. All site logs ',
containerCheckBox: 'In container (no need to enter the container command)',
containerName: 'Container name',
ntp: 'Time synchronization',
containerName: 'Container Name',
ntp: 'Time Synchronization',
ntp_helper: 'You can configure the NTP server on the Quick Setup page of the Toolbox.',
app: 'Backup app',
website: 'Backup website',
app: 'Backup App',
website: 'Backup Website',
rulesHelper:
'When there are multiple compression exclusion rules, they need to be displayed with line breaks. For example: \n*.log \n*.sql',
lastRecordTime: 'Last execution time',
lastRecordTime: 'Last Execution Time',
all: 'All',
failedRecord: 'Failed records',
successRecord: 'Successful records',
database: 'Backup database',
failedRecord: 'Failed Records',
successRecord: 'Successful Records',
database: 'Backup Database',
missBackupAccount: 'The backup account could not be found',
syncDate: 'Synchronization time ',
clean: 'Cache Clean',
curl: 'Access URL',
taskName: 'Cronjob name',
taskName: 'Name',
cronSpec: 'Lifecycle',
cronSpecHelper: 'Enter the correct execution period',
cleanHelper:
'This operation records all job execution records, backup files, and log files. Do you want to continue?',
directory: 'Backup directory',
sourceDir: 'Backup directory',
directory: 'Backup Directory',
sourceDir: 'Backup Directory',
snapshot: 'System Snapshot',
allOptionHelper:
'The current task plan is to back up all [{0}]. Direct download is not supported at the moment. You can check the backup list of [{0}] menu.',
@ -880,7 +880,7 @@ const message = {
saveLocal: 'Retain local backups (the same as the number of cloud storage copies)',
url: 'URL Address',
targetHelper: 'Backup accounts are maintained in panel settings.',
retainCopies: 'Retain copies',
retainCopies: 'Retain Copies',
retainCopiesHelper: 'Number of copies to retain for execution records and logs',
retainCopiesHelper1: 'Number of copies to retain for backup files',
retainCopiesUnit: ' copies (View)',
@ -903,7 +903,7 @@ const message = {
friday: 'Friday',
saturday: 'Saturday',
sunday: 'Sunday',
shellContent: 'Script content',
shellContent: 'Script',
errRecord: 'Incorrect logging',
errHandle: 'Cronjob execution failure',
noRecord: 'The execution did not generate any logs',
@ -911,7 +911,7 @@ const message = {
cleanDataHelper: 'Delete the backup file generated during this task.',
noLogs: 'No task output yet...',
errPath: 'Backup path [{0}] error, cannot download!',
cutWebsiteLog: 'cut website log',
cutWebsiteLog: 'Cut Website Log',
cutWebsiteLogHelper: 'The cut log files will be backed up to the backup directory of 1Panel',
},
monitor: {
@ -962,12 +962,12 @@ const message = {
expand: 'Expand all',
fold: 'All contract',
batchInput: 'Batch input',
quickCommand: 'Quick command',
quickCommand: 'Quick Command',
quickCommandHelper: 'Frequently used command list for quick selection at the bottom of the terminal interface',
groupDeleteHelper:
'After the group is removed, all connections in the group will be migrated to the default group. Do you want to continue?',
command: 'Command',
quickCmd: 'Quick command',
quickCmd: 'Quick Command',
addHost: 'Add Host',
localhost: 'Localhost',
ip: 'Address',
@ -1103,14 +1103,14 @@ const message = {
},
},
logs: {
panelLog: 'Panel logs',
operation: 'Operation logs',
login: 'Login logs',
panelLog: 'Panel Logs',
operation: 'Operation Logs',
login: 'Login Logs',
loginIP: 'Login IP',
loginAddress: 'Login address',
loginAgent: 'Login agent',
loginStatus: 'Login status',
system: 'System logs',
loginAddress: 'Login Address',
loginAgent: 'Login Agent',
loginStatus: 'Status',
system: 'System Logs',
deleteLogs: 'Clearing Logs',
resource: 'Resource',
operate: 'Operate',
@ -1129,7 +1129,7 @@ const message = {
cronjobs: 'Cronjob',
databases: 'Database',
},
websiteLog: 'Website Log',
websiteLog: 'Website Logs',
runLog: 'Run Log',
errLog: 'Err Log',
},
@ -1142,7 +1142,7 @@ const message = {
mode: 'Permission',
owner: 'Owner',
file: 'File',
remoteFile: 'Remote download',
remoteFile: 'Remote Download',
share: 'Share',
sync: 'Data Synchronization',
size: 'Size',
@ -1155,7 +1155,7 @@ const message = {
terminal: 'Terminal',
shareList: 'Share list',
zip: 'Compressed',
group: 'User group',
group: 'Group',
path: 'Path',
public: 'Public',
setRole: 'Set permissions',
@ -1211,7 +1211,7 @@ const message = {
'Are you sure you want to delete the following files? By default, it will enter the recycle bin after deletion',
fileHeper: 'Note: 1. Search results do not support sorting. 2. Folders cannot be sorted by size.',
forceDeleteHelper: 'Permanently delete the file (without entering the recycle bin, delete it directly)',
recycleBin: 'Recycle bin',
recycleBin: 'Recycle Bin',
sourcePath: 'Original path',
deleteTime: 'Delete time',
confirmReduce: 'Are you sure you want to restore the following files?',
@ -1219,17 +1219,17 @@ const message = {
reduce: 'Reduction',
reduceHelper:
'If a file or directory with the same name exists in the original path, it will be overwritten. Do you want to continue?',
clearRecycleBin: 'Clear the recycle bin',
clearRecycleBinHelper: 'Do you want to clear the recycle bin?',
favorite: 'favorites',
removeFavorite: 'Remove from favorites?',
addFavorite: 'Add to favorites',
clearRecycleBin: 'Clear',
clearRecycleBinHelper: 'Do you want to clear the Recycle Bin?',
favorite: 'Favorites',
removeFavorite: 'Remove from Favorites?',
addFavorite: 'Add to Davorites',
clearList: 'Clear list',
deleteRecycleHelper: 'Are you sure you want to permanently delete the following files?',
typeErrOrEmpty: '[{0}] file type is wrong or empty folder',
dropHelper: 'Drag the files you want to upload here',
fileRecycleBin: 'File Recycle Bin',
fileRecycleBinMsg: '{0} recycle bin',
fileRecycleBin: 'Enable Recycle Bin',
fileRecycleBinMsg: '{0} recycle Bin',
wordWrap: 'Automatically wrap',
deleteHelper2:
'Are you sure you want to delete the selected file? The deletion operation cannot be rolled back',
@ -1299,8 +1299,8 @@ const message = {
noAddrWarning: 'No [{0}] addresses are currently selected. Please check and try again!',
successful: 'Success',
failed: 'Failed',
loginLogs: 'SSH login log',
loginMode: 'Login mode',
loginLogs: 'Login Logs',
loginMode: 'Mode',
authenticating: 'Key',
publickey: 'Key',
belong: 'Belong',
@ -1377,10 +1377,10 @@ const message = {
developerMode: 'Preview Experience Program',
developerModeHelper: 'Get a preview version of 1Panel to provide feedback on new features and updates',
thirdParty: 'Third-party account',
thirdParty: 'Third-party Account',
createBackupAccount: 'Add {0}',
noTypeForCreate: 'No backup type is currently created',
LOCAL: 'Server disks',
LOCAL: 'Server Disks',
OSS: 'Ali OSS',
S3: 'Amazon S3',
MINIO: 'MINIO',
@ -1396,7 +1396,7 @@ const message = {
onedrive_helper: 'Custom configuration can be referred to in the official documentation',
refreshTime: 'Token Refresh Time',
refreshStatus: 'Token Refresh Status',
backupDir: 'Backup dir',
backupDir: 'Backup Dir',
codeWarning: 'The current authorization code format is incorrect, please confirm again!',
code: 'Auth code',
codeHelper:
@ -1426,7 +1426,7 @@ const message = {
sa_saopaulo: 'Sao Paulo',
eu_frankfurt: 'Frankfurt',
KODO: 'Qiniu Kodo',
scType: ' Storage type',
scType: ' Storage Type',
typeStandard: 'Standard',
typeStandard_IA: 'Standard_IA',
typeArchive: 'Archive',
@ -1442,7 +1442,7 @@ const message = {
backupAlert:
"In theory, as long as the cloud provider is compatible with the S3 protocol, existing Amazon S3 cloud storage can be used for backup. For specific configurations, please refer to the <a target=“_blank” href='https://1panel.cn/docs/user_manual/settings/#3'>official documentation.</a> ",
domain: 'Accelerate domain',
backupAccount: 'Backup account',
backupAccount: 'Backup Account',
loadBucket: 'Get bucket',
accountName: 'Account name',
accountKey: 'Account key',
@ -1463,7 +1463,7 @@ const message = {
'Please enter a secure login entry point of 5-116 characters, only numbers or letters are supported.',
entranceInputHelper: 'When the security entry is set to blank, the security entry is cancelled.',
randomGenerate: 'Random',
expirationTime: 'Expiration Time',
expirationTime: 'Expiry Date',
unSetting: 'Unset',
noneSetting:
'Set the expiration time for the panel password. After the expiration, you need to reset the password',
@ -1555,11 +1555,11 @@ const message = {
appData: 'Backup installed apps from 1Panel',
panelData: 'Backup 1Panel data directory',
backupData: 'Backup local backup directory for 1Panel',
compress: 'Create snapshot file',
compress: 'Create Snapshot file',
upload: 'Upload snapshot file',
recoverDetail: 'Recover detail',
createSnapshot: 'Create snapshot',
importSnapshot: 'Sync snapshot',
createSnapshot: 'Create Snapshot',
importSnapshot: 'Sync Snapshot',
recover: 'Recover',
lastRecoverAt: 'Last recovery time',
lastRollbackAt: 'Last rollback time',
@ -1622,7 +1622,7 @@ const message = {
trialInfo: 'Version',
authorizationId: 'Subscription Authorization ID',
authorizedUser: 'Authorized User',
expiresAt: 'Expiration Time',
expiresAt: 'Expiry Date',
productName: 'Product Name',
productStatus: 'Product Status',
Lost01: 'Lost * 1',
@ -1836,11 +1836,12 @@ const message = {
supportUpType: 'Only .tar.gz files are supported',
zipFormat: '.tar.gz compressed package structure: test.tar.gz compressed package must contain {0} file',
proxy: 'Reverse Proxy',
alias: 'Path Name',
alias: 'Alias',
enableFtp: 'FTP',
ftpUser: 'FTP Account',
ftpPassword: 'FTP Password',
ftpHelper:
'Create an FTP account corresponding to the site while creating the site, and the FTP directory points to the directory where the site is located.',
"When creating a site, simultaneously create a corresponding FTP account for the site, with the FTP directory pointing to the site's directory.",
remark: 'Remark',
group: 'Group',
groupSetting: 'Group Management',
@ -1848,15 +1849,15 @@ const message = {
app: 'Application',
appNew: 'New Application',
appInstalled: 'Installed Application',
create: 'Create Website',
create: 'Create',
delete: 'Delete Website',
deleteApp: 'Delete Application',
deleteBackup: 'Delete Backup',
domain: 'Domain',
domainHelper: 'One domain per line, support * and IP address, support domain name: port',
addDomain: 'Add Domain',
domainConfig: 'Domain Settings',
defaultDoc: 'Default Document',
addDomain: 'Add',
domainConfig: 'Domains',
defaultDoc: 'Document',
perserver: 'Concurrency',
perserverHelper: 'Limit the maximum concurrency of the current site',
perip: 'Single IP',
@ -1876,11 +1877,10 @@ const message = {
check: 'View',
acmeAccountManage: 'Acme Account',
email: 'Email',
addAccount: 'Add new account',
acmeAccount: 'Acme Account',
provider: 'Verification method',
dnsManual: 'Manual resolution',
expireDate: 'Expiration Time',
provider: 'Verification Method',
dnsManual: 'Manual Resolution',
expireDate: 'Expiry Date',
brand: 'Organization',
deploySSL: 'Deployment',
deploySSLHelper: 'Are you sure to deploy the certificate? ',
@ -1890,8 +1890,8 @@ const message = {
renewHelper: 'Are you sure to renew the certificate? ',
renewSuccess: 'Renew Certificate',
config: 'Configuration',
enableHTTPS: 'Enable HTTPS',
aliasHelper: 'Path Name is the folder name of the website directory',
enableHTTPS: 'Enable',
aliasHelper: 'Alias is the folder name of the website directory',
lastBackupAt: 'last backup time',
null: 'none',
nginxConfig: 'Nginx configuration',
@ -1934,22 +1934,22 @@ const message = {
qiteSite: 'Enterprise',
videoSite: 'Video',
errLog: 'Error Log',
accessLog: 'Website Log',
accessLog: 'Website Logs',
stopHelper:
'After stopping the site, it will not be able to access normally, and the user will display the stop page of the current site when visiting. Do you want to continue? ',
startHelper:
'After enabling the site, users can access the content of the site normally, do you want to continue? ',
sitePath: 'Website Directory',
sitePath: 'Directory',
siteAlias: 'Site Alias',
primaryPath: 'Root directory',
primaryPath: 'Root Directory',
folderTitle: 'The website mainly contains the following folders',
wafFolder: 'Firewall Rules',
indexFolder: 'Website root directory',
logFolder: 'website log',
sslFolder: 'Website certificate',
indexFolder: 'Website Root Directory',
logFolder: 'Website Logs',
sslFolder: 'Website Certificate',
enableOrNot: 'Enable',
oldSSL: 'Select an existing certificate',
manualSSL: 'manually import certificate',
oldSSL: 'Existing certificate',
manualSSL: 'Import certificate',
select: 'Select',
selectSSL: 'Select Certificate',
privateKey: 'Key (KEY)',
@ -1965,8 +1965,8 @@ const message = {
SSLHelper:
'Note: Do not use SSL certificates for illegal websites \n If HTTPS access cannot be used after opening, please check whether the security group has correctly released port 443',
SSLConfig: 'Certificate Settings',
SSLProConfig: 'SSL protocol settings',
supportProtocol: 'Supported protocol version',
SSLProConfig: 'Protocol Settings',
supportProtocol: 'Protocol Version',
encryptionAlgorithm: 'Rncryption Algorithm',
notSecurity: '(not safe)',
encryptHelper:
@ -1986,12 +1986,12 @@ const message = {
websiteDeploymentHelper: 'Create a website using an application deployed from 1Panel',
websiteStatictHelper: 'Create a website directory on the host',
websiteProxyHelper:
'The proxy has existing services, for example, the machine has installed the halo service using port 8080, then the proxy address is http://127.0.0.1:8080',
'Proxying Existing Service: For example, if there is a Halo service installed and running on the local machine using port 8080, then the proxy address would be http://127.0.0.1:8080',
runtimeProxyHelper: 'Use runtime created from 1Panel',
runtime: 'Runtime',
deleteRuntimeHelper:
'The Runtime application needs to be deleted together with the website, please handle it with caution',
proxyType: 'Listening Network Type',
proxyType: 'Network Type',
unix: 'Unix Network',
tcp: 'TCP/IP Network',
phpFPM: 'FPM Config',
@ -1999,11 +1999,11 @@ const message = {
updateConfig: 'Update Config',
isOn: 'On',
isOff: 'Off',
rewrite: 'Pseudo Static',
rewrite: 'Pseudo-static',
rewriteMode: 'Scheme',
current: 'Current',
rewriteHelper:
'If the website cannot be accessed normally after setting pseudo-static, please try to set it back to default',
'If setting pseudo-static causes the website to become inaccessible, please try reverting to the default settings',
runDir: 'Run Directory',
runUserHelper:
'For websites deployed through the PHP container runtime environment, you need to set the owner and user group of all files and folders under index and subdirectories to 1000. For the local PHP environment, refer to the local PHP-FPM user and user group settings',
@ -2012,37 +2012,35 @@ const message = {
proxyPath: 'Proxy Path',
proxyPass: 'Target URL',
cache: 'Cache',
createProxy: 'Create reverse proxy',
editProxy: 'Edit reverse proxy',
cacheTime: 'Cache time',
enableCache: 'Open cache',
proxyHost: 'Send domain name',
cacheTime: 'Cache Duration',
enableCache: 'Cache',
proxyHost: 'ProxyHost',
disabled: 'Stopped',
startProxy: 'Start Reverse proxy',
stopProxy: 'Stop the Reverse proxy',
proxyFile: 'Source',
proxyHelper1: 'When accessing this directory, the content of the target URL will be returned and displayed',
proxyPassHelper: 'The proxy site must be a URL that can be accessed normally',
proxyHostHelper: 'Add the domain name to the request header and pass it to the proxy server',
proxyPassHelper: 'The proxied site must be a valid and accessible URL',
proxyHostHelper: 'Pass the domain name in the request header to the proxy server',
replacementHelper: 'Up to 5 replacements can be added, please leave blank if no replacement is required',
modifier: 'Matching rules',
modifier: 'Matching Rules',
modifierHelper: 'Example: = exact match, ~ regular match, ^~ match the beginning of the path, etc',
replace: 'Text Replacement',
addReplace: 'Add text replacement',
replaced: 'Search string (cannot be empty)',
addReplace: 'Add',
replaced: 'Search String (cannot be empty)',
replaceText: 'Replace with string',
replacedErr: 'The search string cannot be empty',
replacedErr2: 'The search string cannot be repeated',
basicAuth: 'Password Access',
replacedErr: 'The Search String cannot be empty',
replacedErr2: 'The Search String cannot be repeated',
basicAuth: 'Basic Authentication',
editBasicAuthHelper:
'The password is asymmetrically encrypted and cannot be echoed. Editing needs to reset the password',
antiLeech: 'Anti-leech',
extends: 'Extension',
browserCache: 'Cache',
leechLog: 'Record anti-leech log',
accessDomain: 'Allowed domains',
leechReturn: 'Response resource',
noneRef: 'Allow empty source',
accessDomain: 'Allowed Domains',
leechReturn: 'Response Resource',
noneRef: 'Allow Rmpty Referrer',
disable: 'not enabled',
disableLeechHelper: 'Whether to disable the anti-leech',
disableLeech: 'Disable anti-leech',
@ -2056,9 +2054,9 @@ const message = {
privateKeyPath: 'Private key file',
certificatePath: 'Certificate file',
ipWhiteListHelper: 'The role of IP whitelist: all rules are invalid for IP whitelist',
redirect: 'redirect',
sourceDomain: 'Source domain',
targetURL: 'Target URL address',
redirect: 'Redirect',
sourceDomain: 'Source Domain',
targetURL: 'Target URL Address',
keepPath: 'URI params',
path: 'path',
redirectType: 'redirection type',
@ -2076,11 +2074,11 @@ const message = {
'OpenResty default HTTP port: {0} HTTPS port: {1}, which may affect website domain name access and HTTPS forced redirect',
primaryDomainHelper: 'Support domain name: port',
acmeAccountType: 'Account Type',
keyType: 'Key algorithm',
keyType: 'Key Algorithm',
tencentCloud: 'Tencent Cloud',
containWarn: 'The domain name contains the main domain, please re-enter',
rewriteHelper2:
'Applications such as WordPress installed from the app store have pseudo-static configuration by default. Repeated configuration may result in errors',
'Applications like WordPress installed from the app store typically come with pseudo-static configurations pre-set. Reconfiguring them unnecessarily may lead to errors',
websiteBackupWarn:
'Only supports importing local backups, importing backups from other machines may cause recovery failure',
ipWebsiteWarn: 'Websites with IP as domain names need to be set as default sites to be accessed normally',
@ -2091,7 +2089,7 @@ const message = {
indexHtml: 'Static website default page',
stopHtml: 'Website stop page',
indexPHP: 'PHP website default page',
sslExpireDate: 'Certificate expiration date',
sslExpireDate: 'Certificate Expiry Date',
website404Helper: 'Website 404 error page only supports PHP runtime environment websites and static websites',
},
php: {
@ -2121,18 +2119,18 @@ const message = {
nginx: {
serverNamesHashBucketSizeHelper: 'The hash table size of the server name',
clientHeaderBufferSizeHelper: 'The header buffer size requested by the client',
clientMaxBodySizeHelper: 'Maximum upload file',
keepaliveTimeoutHelper: 'Connection timeout',
gzipMinLengthHelper: 'minimum compressed file',
gzipCompLevelHelper: 'compression rate',
gzipHelper: 'Whether to enable compressed transmission',
clientMaxBodySizeHelper: 'Maximum Upload File',
keepaliveTimeoutHelper: 'Connection Timeout',
gzipMinLengthHelper: 'Minimum Compressed File',
gzipCompLevelHelper: 'Compression Rate',
gzipHelper: 'Enable compression for transmission',
connections: 'Active connections',
accepts: 'Total connections (accepts)',
handled: 'Total number of handshakes (handled)',
requests: 'Total number of handshakes (requests)',
reading: 'Number of requests (Reading)',
writing: 'Number of Responses (Writing)',
waiting: 'resident process (Waiting)',
accepts: 'Accepts',
handled: 'Handled',
requests: 'Requests',
reading: 'Reading',
writing: 'Writing',
waiting: 'Waiting',
status: 'Current Status',
nginxConfig: 'Settings',
configResource: 'Configuration',
@ -2142,9 +2140,9 @@ const message = {
'Clearing the reverse proxy cache will affect all websites configured with cache and requires restarting OpenResty. Do you want to continue? ',
},
ssl: {
create: 'Apply Certificate',
create: 'Apply',
provider: 'Type',
manualCreate: 'manually created',
manualCreate: 'Manually Created',
acmeAccount: 'Acme Account',
resolveDomain: 'Resolve domain name',
err: 'Error',
@ -2157,21 +2155,20 @@ const message = {
startDate: 'Effective Time',
organization: 'issuing organization',
renewConfirm: 'Are you sure you want to apply for a certificate for domain name {0}? ',
autoRenew: 'Automatic renewal',
autoRenew: 'Automatic Renewal',
autoRenewHelper: 'Automatically renew 30 days before expiration',
renewSuccess: 'Renewal successful',
renewWebsite:
'This certificate has been associated with the following websites, and the application will be applied to these websites simultaneously',
createAcme: 'Create Account',
acmeHelper: 'Acme account is used to apply for free certificates',
upload: 'Upload Certificate',
applyType: 'Application method',
acmeHelper: 'Acme Account is used to apply for free certificates',
upload: 'Upload',
applyType: 'Application Method',
apply: 'Apply',
applyStart: 'Certificate application starts',
getDnsResolve: 'Getting DNS resolution value, please wait...',
selfSigned: 'Self-signed certificate',
ca: 'Certification Authority',
createCA: 'Create institution',
commonName: 'Certificate subject name (CN)',
caName: 'Institution name',
company: 'company/organization',
@ -2180,7 +2177,7 @@ const message = {
province: 'province',
country: 'country code',
commonNameHelper: 'For example:',
selfSign: 'Issue certificate',
selfSign: 'Issue Certificate',
days: 'validity period',
domainHelper: 'One domain name per line, supports * and IP address',
pushDir: 'Push the certificate to the local directory',
@ -2213,7 +2210,7 @@ const message = {
'The default execution directory of the script is the 1Panel installation directory. If a certificate is pushed, the execution directory is the certificate push directory. The default timeout is 30 minutes',
},
firewall: {
create: 'Create rule',
create: 'Create Rule',
edit: 'Edit rule',
notSupport:
'No system firewall detected (firewalld or ufw). Please refer to the official documentation for installation.',
@ -2273,9 +2270,9 @@ const message = {
addressHelper1: 'Supports input of single IPs or IP ranges: 172.16.10.11 or 172.16.0.0/24',
addressHelper2: 'For multiple IPs or IP ranges, separate with commas: 172.16.10.11, 172.16.0.0/24',
allIP: 'All IP',
portRule: 'Port rule',
portRule: 'Port Rule',
forwardRule: 'Forwarding',
ipRule: 'IP rule',
ipRule: 'IP Rule',
userAgent: 'User-Agent filter',
sourcePort: 'Source Port',
targetIP: 'Destination IP',
@ -2287,7 +2284,7 @@ const message = {
runtime: 'Runtime',
image: 'Image',
workDir: 'Working directory',
create: 'Create runtime',
create: 'Create',
resource: 'Source',
appstore: 'App Store',
local: 'Local',
@ -2342,15 +2339,15 @@ const message = {
},
process: {
pid: 'Process ID',
ppid: 'Parent process ID',
ppid: 'Parent Process ID',
numThreads: 'Threads',
memory: 'Memory',
diskRead: 'Disk read',
diskWrite: 'Disk write',
diskRead: 'Disk Read',
diskWrite: 'Disk Write',
netSent: 'uplink',
netRecv: 'downstream',
numConnections: 'Connections',
startTime: 'Start time',
startTime: 'Start Time',
status: 'Status',
running: 'Running',
sleep: 'sleep',
@ -2360,19 +2357,19 @@ const message = {
wait: 'waiting',
lock: 'lock',
blocked: 'blocked',
cmdLine: 'Start command',
basic: 'Basic information',
mem: 'Memory information',
cmdLine: 'Start Command',
basic: 'Basic Info',
mem: 'Memory Info',
openFiles: 'File Open',
file: 'File',
env: 'Environment variable',
env: 'Environment',
noenv: 'None',
net: 'Network connection',
net: 'Network Connection',
laddr: 'Source address/port',
raddr: 'Destination address/port',
stopProcess: 'End',
stopProcessWarn: 'Are you sure you want to end this process (PID:{0})? ',
processName: 'ProcessName',
processName: 'Processname',
},
tool: {
supervisor: {

View file

@ -1746,7 +1746,6 @@ const message = {
check: '查看',
acmeAccountManage: 'Acme 賬戶',
email: '郵箱',
addAccount: '創建賬戶',
acmeAccount: 'Acme 賬戶',
provider: '驗證方式',
dnsManual: '手動解析',
@ -1874,8 +1873,6 @@ const message = {
proxyPath: '前端請求路徑',
proxyPass: '後端代理地址',
cache: '緩存',
createProxy: '創建反向代理',
editProxy: '編輯反向代理',
cacheTime: '緩存時間',
enableCache: '開啟緩存',
proxyHost: '後端域名',
@ -2025,7 +2022,6 @@ const message = {
getDnsResolve: '正在取得 DNS 解析值,請稍後 ...',
selfSigned: '自簽證書',
ca: '證書頒發機構',
createCA: '創建機構',
commonName: '憑證主體名稱(CN)',
caName: '機構名稱',
company: '公司/組織',

View file

@ -1747,7 +1747,6 @@ const message = {
check: '查看',
acmeAccountManage: 'Acme 账户',
email: '邮箱',
addAccount: '创建账户',
acmeAccount: 'Acme 账户',
provider: '验证方式',
dnsManual: '手动解析',
@ -1875,8 +1874,6 @@ const message = {
proxyPath: '前端请求路径',
proxyPass: '后端代理地址',
cache: '缓存',
createProxy: '创建反向代理',
editProxy: '编辑反向代理',
cacheTime: '缓存时间',
enableCache: '开启缓存',
proxyHost: '后端域名',
@ -2026,7 +2023,6 @@ const message = {
getDnsResolve: '正在获取 DNS 解析值,请稍后 ...',
selfSigned: '自签证书',
ca: '证书颁发机构',
createCA: '创建机构',
commonName: '证书主体名称(CN)',
caName: '机构名称',
company: '公司/组织',

View file

@ -117,7 +117,7 @@
:label="$t('container.source')"
show-overflow-tooltip
prop="resource"
min-width="100"
min-width="120"
>
<template #default="{ row }">
<div v-if="row.hasLoad">

View file

@ -60,7 +60,7 @@
>
<template #default="{ row }">
<el-tag
style="margin-left: 5px"
class="ml-2.5"
v-for="(item, index) of row.tags"
:key="index"
:title="item"
@ -78,7 +78,7 @@
:formatter="dateFormat"
/>
<fu-table-operations
width="200px"
width="250px"
:ellipsis="10"
:buttons="buttons"
:label="$t('commons.table.operate')"

View file

@ -13,7 +13,7 @@
<el-row>
<el-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
<el-button type="primary" @click="onOpenDialog('create')">
{{ $t('commons.button.create') }}{{ $t('cronjob.cronTask') }}
{{ $t('commons.button.create') }} {{ $t('cronjob.cronTask') }}
</el-button>
<el-button-group class="ml-4">
<el-button plain :disabled="selects.length === 0" @click="onBatchChangeStatus('enable')">

View file

@ -10,7 +10,7 @@
</div>
</el-card>
</div>
<LayoutContent :title="(currentDB?.type === 'mysql' ? 'MySQL ' : 'MariaDB ') + $t('menu.database')">
<LayoutContent :title="currentDB?.type === 'mysql' ? 'MySQL ' : 'MariaDB '">
<template #app v-if="currentDB?.from === 'local'">
<AppStatus
:app-key="appKey"

View file

@ -8,7 +8,7 @@
</div>
</el-card>
</div>
<LayoutContent :title="'PostgreSQL ' + $t('menu.database')">
<LayoutContent :title="'PostgreSQL'">
<template #app v-if="currentDB?.from === 'local'">
<AppStatus
:app-key="appKey"

View file

@ -284,6 +284,7 @@
:label="$t('commons.table.operate')"
:min-width="mobile ? 'auto' : 200"
:fixed="mobile ? false : 'right'"
width="300"
fix
/>
</ComplexTable>

View file

@ -22,7 +22,7 @@
<el-row>
<el-col :span="16">
<el-button type="primary" @click="onOpenDialog('create')">
{{ $t('commons.button.create') }}{{ $t('firewall.forwardRule') }}
{{ $t('commons.button.create') }} {{ $t('firewall.forwardRule') }}
</el-button>
<el-button @click="onDelete(null)" plain :disabled="selects.length === 0">
{{ $t('commons.button.delete') }}

View file

@ -43,13 +43,7 @@
<el-option :label="$t('firewall.unUsed')" value="free"></el-option>
<el-option :label="$t('firewall.used')" value="used"></el-option>
</el-select>
<el-select
v-model="searchStrategy"
style="margin-left: 10px"
@change="search()"
clearable
class="p-w-200"
>
<el-select v-model="searchStrategy" @change="search()" clearable class="p-w-200 ml-2.5">
<template #prefix>{{ $t('firewall.strategy') }}</template>
<el-option :label="$t('commons.table.all')" value=""></el-option>
<el-option :label="$t('firewall.accept')" value="accept"></el-option>
@ -61,7 +55,7 @@
<el-row>
<el-col :span="16">
<el-button type="primary" @click="onOpenDialog('create')">
{{ $t('commons.button.create') }}{{ $t('firewall.portRule') }}
{{ $t('commons.button.create') }} {{ $t('firewall.portRule') }}
</el-button>
<el-button @click="onDelete(null)" plain :disabled="selects.length === 0">
{{ $t('commons.button.delete') }}

View file

@ -6,7 +6,7 @@
</template>
<template #toolbar>
<el-button type="primary" @click="onCreate()">
{{ $t('commons.button.create') }}{{ $t('terminal.quickCommand') }}
{{ $t('commons.button.create') }} {{ $t('terminal.quickCommand') }}
</el-button>
<el-button type="primary" plain @click="onOpenGroupDialog()">
{{ $t('terminal.group') }}

View file

@ -82,7 +82,7 @@
/>
<fu-table-operations
:ellipsis="10"
width="300px"
width="350px"
:buttons="buttons"
:label="$t('commons.table.operate')"
fixed="right"

View file

@ -1,7 +1,7 @@
<template>
<el-dialog
v-model="open"
:title="$t('website.addAccount')"
:title="$t('commons.button.create')"
:close-on-click-modal="false"
width="30%"
:before-close="handleClose"

View file

@ -8,7 +8,7 @@
</div>
<ComplexTable :data="data" :pagination-config="paginationConfig" @search="search()" v-loading="loading">
<template #toolbar>
<el-button type="primary" @click="openCreate">{{ $t('website.addAccount') }}</el-button>
<el-button type="primary" @click="openCreate">{{ $t('commons.button.create') }}</el-button>
</template>
<el-table-column
:label="$t('website.email')"

View file

@ -1,7 +1,7 @@
<template>
<el-dialog
v-model="open"
:title="$t('ssl.createCA')"
:title="$t('commons.button.create')"
:close-on-click-modal="false"
width="40%"
:before-close="handleClose"

View file

@ -11,7 +11,7 @@
</template>
<ComplexTable :data="data" :pagination-config="paginationConfig" @search="search()" v-loading="loading">
<template #toolbar>
<el-button type="primary" @click="openCreate">{{ $t('ssl.createCA') }}</el-button>
<el-button type="primary" @click="openCreate">{{ $t('commons.button.create') }}</el-button>
</template>
<el-table-column :label="$t('commons.table.name')" show-overflow-tooltip prop="name"></el-table-column>
<el-table-column :label="$t('website.keyType')" show-overflow-tooltip prop="keyType">

View file

@ -1,7 +1,7 @@
<template>
<el-dialog
v-model="open"
:title="$t('website.addAccount')"
:title="$t('commons.button.create')"
:destroy-on-close="true"
:close-on-click-modal="false"
width="40%"

View file

@ -6,7 +6,7 @@
<ComplexTable :data="data" :pagination-config="paginationConfig" @search="search()">
<template #toolbar>
<el-button type="primary" @click="openCreate">
{{ $t('website.addAccount') }}
{{ $t('commons.button.create') }}
</el-button>
</template>
<el-table-column :label="$t('commons.table.name')" fix show-overflow-tooltip prop="name"></el-table-column>

View file

@ -44,13 +44,7 @@
show-overflow-tooltip
prop="domains"
></el-table-column>
<el-table-column
:label="$t('ssl.applyType')"
fix
show-overflow-tooltip
prop="provider"
width="100px"
>
<el-table-column :label="$t('ssl.applyType')" fix show-overflow-tooltip prop="provider">
<template #default="{ row }">{{ getProvider(row.provider) }}</template>
</el-table-column>
<el-table-column
@ -114,7 +108,7 @@
</fu-read-write-switch>
</template>
</el-table-column>
<el-table-column :label="$t('ssl.autoRenew')" fix width="100px">
<el-table-column :label="$t('ssl.autoRenew')" fix>
<template #default="{ row }">
<el-switch
:disabled="row.provider === 'dnsManual' || row.provider === 'manual'"
@ -128,12 +122,14 @@
:label="$t('website.expireDate')"
:formatter="dateFormat"
show-overflow-tooltip
width="200px"
/>
<fu-table-operations
:ellipsis="3"
:buttons="buttons"
:label="$t('commons.table.operate')"
:fixed="mobile ? false : 'right'"
width="300px"
fix
/>
</ComplexTable>

View file

@ -7,10 +7,7 @@
:before-close="handleClose"
>
<template #header>
<DrawerHeader
:header="$t('commons.button.' + authBasic.operate) + $t('website.basicAuth')"
:back="handleClose"
/>
<DrawerHeader :header="$t('commons.button.' + authBasic.operate)" :back="handleClose" />
</template>
<el-row v-loading="loading">
<el-col :span="22" :offset="1">

View file

@ -5,7 +5,7 @@
<ComplexTable :data="data" @search="search" v-loading="loading">
<template #toolbar>
<el-button type="primary" plain @click="openCreate">
{{ $t('commons.button.create') + $t('website.basicAuth') }}
{{ $t('commons.button.create') }}
</el-button>
</template>
<el-table-column :label="$t('commons.login.username')" prop="username"></el-table-column>

View file

@ -23,7 +23,7 @@
</el-select>
</el-form-item>
<el-form-item :label="'HSTS'" prop="hsts">
<el-checkbox v-model="form.hsts">{{ $t('commons.button.start') }}</el-checkbox>
<el-checkbox v-model="form.hsts">{{ $t('commons.button.enable') }}</el-checkbox>
<span class="input-help">{{ $t('website.hstsHelper') }}</span>
</el-form-item>
<el-form-item :label="$t('website.sslConfig')" prop="type">

View file

@ -7,7 +7,7 @@
:before-close="handleClose"
>
<template #header>
<DrawerHeader :header="$t('website.' + proxy.operate + 'Proxy')" :back="handleClose" />
<DrawerHeader :header="$t('commons.button.' + proxy.operate)" :back="handleClose" />
</template>
<el-row v-loading="loading">
<el-col :span="22" :offset="1">

View file

@ -1,7 +1,7 @@
<template>
<ComplexTable :data="data" @search="search" v-loading="loading">
<template #toolbar>
<el-button type="primary" plain @click="openCreate">{{ $t('website.createProxy') }}</el-button>
<el-button type="primary" plain @click="openCreate">{{ $t('commons.button.create') }}</el-button>
</template>
<el-table-column :label="$t('commons.table.name')" prop="name"></el-table-column>
<el-table-column :label="$t('website.proxyPath')" prop="match"></el-table-column>

View file

@ -7,10 +7,7 @@
:before-close="handleClose"
>
<template #header>
<DrawerHeader
:header="$t('commons.button.' + redirect.operate) + $t('website.redirect')"
:back="handleClose"
/>
<DrawerHeader :header="$t('commons.button.' + redirect.operate)" :back="handleClose" />
</template>
<el-row v-loading="loading">
<el-col :span="22" :offset="1">

View file

@ -2,7 +2,7 @@
<ComplexTable :data="data" @search="search" v-loading="loading">
<template #toolbar>
<el-button type="primary" plain @click="openCreate">
{{ $t('commons.button.create') + $t('website.redirect') }}
{{ $t('commons.button.create') }}
</el-button>
</template>
<el-table-column :label="$t('commons.table.name')" prop="name" min-width="60px" show-overflow-tooltip />