From e41e74d730b5a5ff74dd4ed52c6cb7edb0bdad38 Mon Sep 17 00:00:00 2001 From: John Niang Date: Sun, 1 Dec 2024 22:14:44 +0800 Subject: [PATCH] Refine English translation (#7232) --- backend/i18n/lang/en.yaml | 16 +- frontend/src/components/app-status/index.vue | 14 +- frontend/src/lang/modules/en.ts | 155 +++++++++--------- frontend/src/lang/modules/tw.ts | 4 +- frontend/src/lang/modules/zh.ts | 4 +- .../views/app-store/detail/install/index.vue | 2 +- .../views/website/website/create/index.vue | 4 +- 7 files changed, 102 insertions(+), 97 deletions(-) diff --git a/backend/i18n/lang/en.yaml b/backend/i18n/lang/en.yaml index f3e3774dc..f6f3d5306 100644 --- a/backend/i18n/lang/en.yaml +++ b/backend/i18n/lang/en.yaml @@ -16,7 +16,7 @@ ErrApiConfigDisable: "This interface prohibits the use of API Interface calls: { #common ErrNameIsExist: "Name is already exist" ErrDemoEnvironment: "Demo server, prohibit this operation!" -ErrCmdTimeout: "Command execution timed out!" +ErrCmdTimeout: "Command execution timed out!" ErrCmdIllegal: "The command contains illegal characters. Please modify and try again!" ErrPortExist: '{{ .port }} port is already occupied by {{ .type }} [{{ .name }}]' TYPE_APP: "Application" @@ -34,13 +34,13 @@ ErrAppLimit: "App exceeds install limit" ErrAppRequired: "{{ .detail }} app is required" ErrNotInstall: "App not installed" ErrPortInOtherApp: "{{ .port }} port already in use by app {{ .apps }}" -ErrDbUserNotValid: "Stock database, username and password do not match!" +ErrDbUserNotValid: "Stock database, username and password do not match!" ErrDockerComposeNotValid: "docker-compose file format error!" ErrUpdateBuWebsite: 'The application was updated successfully, but the modification of the website configuration file failed, please check the configuration!' Err1PanelNetworkFailed: 'Default container network creation failed! {{ .detail }}' ErrFileParse: 'Application docker-compose file parsing failed!' ErrInstallDirNotFound: 'installation directory does not exist' -AppStoreIsUpToDate: 'The app store is already up to date!' +AppStoreIsUpToDate: 'Up to date' LocalAppVersionNull: 'The {{.name}} app is not synced to version! Could not add to application list' LocalAppVersionErr: '{{.name}} failed to sync version {{.version}}! {{.err}}' ErrFileNotFound: '{{.name}} file does not exist' @@ -95,7 +95,7 @@ ErrAppDelete: 'Other Website use this App' ErrGroupIsUsed: 'The group is in use and cannot be deleted' ErrBackupMatch: 'the backup file does not match the current partial data of the website: {{ .detail}}' ErrBackupExist: 'the backup file corresponds to a portion of the original data that does not exist: {{ .detail}}' -ErrPHPResource: 'The local runtime does not support switching!' +ErrPHPResource: 'The local runtime does not support switching!' ErrPathPermission: 'A folder with non-1000:1000 permissions was detected in the index directory, which may cause an Access denied error when accessing the website. Please click the save button above' ErrDomainIsUsed: "Domain is already used by website {{ .name }}" ErrDomainFormat: "{{ .name }} domain format error" @@ -105,7 +105,7 @@ ErrImageNotExist: "Running environment {{.name}} image does not exist, please re #ssl ErrSSLCannotDelete: "The certificate {{ .name }} is being used by the website and cannot be removed" ErrAccountCannotDelete: "The certificate associated with the account cannot be deleted" -ErrSSLApply: "The certificate continues to be signed successfully, but openresty reload fails, please check the configuration!" +ErrSSLApply: "The certificate continues to be signed successfully, but openresty reload fails, please check the configuration!" ErrEmailIsExist: 'Email is already exist' ErrSSLKeyNotFound: 'The private key file does not exist' ErrSSLCertificateNotFound: 'The certificate file does not exist' @@ -147,10 +147,10 @@ ErrPortRules: "The number of ports does not match, please re-enter!" ErrPgImagePull: "Image pull timeout. Please configure image acceleration or manually pull the postgres:16.0-alpine image and try again" #runtime -ErrDirNotFound: "The build folder does not exist! Please check file integrity!" -ErrFileNotExist: "{{ .detail }} file does not exist! Please check source file integrity!" +ErrDirNotFound: "The build folder does not exist! Please check file integrity!" +ErrFileNotExist: "{{ .detail }} file does not exist! Please check source file integrity!" ErrImageBuildErr: "Image build failed" -ErrImageExist: "Image is already exist!" +ErrImageExist: "Image is already exist!" ErrDelWithWebsite: "The operating environment has been associated with a website and cannot be deleted" ErrRuntimeStart: "Failed to start" ErrPackageJsonNotFound: "package.json file does not exist" diff --git a/frontend/src/components/app-status/index.vue b/frontend/src/components/app-status/index.vue index ae7c6bc68..c40f4c4b3 100644 --- a/frontend/src/components/app-status/index.vue +++ b/frontend/src/components/app-status/index.vue @@ -189,15 +189,11 @@ const clear = () => { const onOperate = async (operation: string) => { em('update:maskShow', false); operateReq.operate = operation; - ElMessageBox.confirm( - i18n.global.t('app.operatorHelper', [i18n.global.t('app.' + operation)]), - i18n.global.t('app.' + operation), - { - confirmButtonText: i18n.global.t('commons.button.confirm'), - cancelButtonText: i18n.global.t('commons.button.cancel'), - type: 'info', - }, - ) + ElMessageBox.confirm(i18n.global.t(`app.${operation}OperatorHelper`), i18n.global.t('app.' + operation), { + confirmButtonText: i18n.global.t('commons.button.confirm'), + cancelButtonText: i18n.global.t('commons.button.cancel'), + type: 'info', + }) .then(() => { em('update:maskShow', true); em('update:loading', true); diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index e3193eaa7..3d5c961bd 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -10,7 +10,7 @@ const message = { commons: { true: 'true', false: 'false', - example: 'e.g.:', + example: 'For example, ', fit2cloud: 'FIT2CLOUD', button: { create: 'Create ', @@ -70,7 +70,7 @@ const message = { createNewFolder: 'Create new folder', createNewFile: 'Create new file', helpDoc: 'Help Document', - unbind: 'UnBind', + unbind: 'Unbind', }, search: { timeStart: 'Time start', @@ -120,22 +120,22 @@ const message = { delete: 'This operation delete cannot be rolled back. Do you want to continue?', clean: 'This operation clean cannot be rolled back. Do you want to continue?', deleteTitle: 'Delete', - deleteSuccess: 'Delete Success', - loginSuccess: 'Login Success', - operationSuccess: 'Successful operation', - copySuccess: 'Copy Successful', - notSupportOperation: 'This operation is not supported', + deleteSuccess: 'Deleted successfully', + loginSuccess: 'Logged in successfully', + operationSuccess: 'Done successfully', + copySuccess: 'Copied successfully', + notSupportOperation: `This operation isn't supported`, requestTimeout: 'The request timed out, please try again later', infoTitle: 'Hint', notRecords: 'No execution record is generated for the current task', sureLogOut: 'Are you sure you want to log out?', - createSuccess: 'Create Success', - updateSuccess: 'Update Success', - uploadSuccess: 'Update Success', + createSuccess: 'Created successfully', + updateSuccess: 'Updated successfully', + uploadSuccess: 'Uploaded successfully', operate: 'Operate', operateConfirm: 'If you are sure about the operation, please input it manually', inputOrSelect: 'Please select or enter', - copyFailed: 'Copy failed', + copyFailed: 'Failed to copy', operatorHelper: 'Would you like to continue performing {1} operation on {0}?', notFound: 'Sorry, the page you requested does not exist.', unSupportType: 'Current file type is not supported!', @@ -183,7 +183,7 @@ const message = { username: 'Please enter a username', password: 'Please enter a password', rePassword: 'The passwords are inconsistent. Please check and re-enter the password', - requiredInput: 'Please enter the required fields', + requiredInput: 'This field is required.', requiredSelect: 'Please select the required fields', illegalInput: 'There are illegal characters in the input box.', commonName: @@ -198,7 +198,7 @@ const message = { complexityPassword: 'Please enter a password combination with a length of 8-30 characters, including letters, numbers, and at least two special characters.', commonPassword: 'Please enter a password with more than 6 characters', - linuxName: 'Length 1-128, the name cannot contain symbols such as {0}', + linuxName: `The field length must be between 1 and 128. The field mustn't contain these special characters: "{0}".`, email: 'Email format error', number: 'Please enter the correct number', integer: 'Please enter the correct positive integer', @@ -207,7 +207,7 @@ const message = { hostHelper: 'Support input of IP address or domain', port: 'Please enter the correct port', selectHelper: 'Please select the correct {0} file', - domain: 'domain name format error', + domain: 'Primary domain should be like: example.com or example.com:8080.', databaseName: 'Support English, numbers, _, length 1-30', ipErr: 'IP [{0}] format error, please check', numberRange: 'Number range: {0} - {1}', @@ -236,7 +236,7 @@ const message = { commonError: 'The request failed', }, service: { - serviceNotStarted: 'The {0} service is not currently started', + serviceNotStarted: `The {0} service isn't started`, }, status: { running: 'Running', @@ -683,9 +683,9 @@ const message = { cmdHelper: 'e.g. nginx -g "daemon off;"', entrypointHelper: 'e.g. docker-entrypoint.sh', autoRemove: 'Auto remove', - cpuQuota: 'NacosCPU', + cpuQuota: 'Number of CPU cores', memoryLimit: 'Memory', - limitHelper: 'If you limit it to 0, then the limitation is turned off, and the maximum available is {0}.', + limitHelper: `If set to 0, it means that there is no limitation. The maximum value is {0}.`, mount: 'Mount', volumeOption: 'Volume', hostOption: 'Host', @@ -732,7 +732,7 @@ const message = { tag: 'Tag', tagHelper: 'one in a row, for example, \nkey1=value1\nkey2=value2', imageNameHelper: 'Image name and Tag, for example: nginx:latest', - cleanBuildCache: 'Clean Build Cache', + cleanBuildCache: 'Clean build cache', delBuildCacheHelper: 'Cleaning the build cache will delete all cached artifacts generated during builds. This action cannot be undone. Continue?', urlWarning: 'The URL prefix does not need to include http:// or https://. Please modify.', @@ -1537,7 +1537,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: 'Expiry Date', + expirationTime: 'Expiration Date', unSetting: 'Unset', noneSetting: 'Set the expiration time for the panel password. After the expiration, you need to reset the password', @@ -1698,7 +1698,7 @@ const message = { trialInfo: 'Version', authorizationId: 'Subscription Authorization ID', authorizedUser: 'Authorized User', - expiresAt: 'Expiry Date', + expiresAt: 'Expiration Date', productName: 'Product Name', productStatus: 'Product Status', Lost: 'Lost', @@ -1793,7 +1793,7 @@ const message = { buildCache: 'Container Build Cache', }, app: { - app: 'Application', + app: 'Applications', installName: 'Name', installed: 'Installed', all: 'All', @@ -1814,14 +1814,18 @@ const message = { description: 'Description', deleteWarn: 'The delete operation will delete all data and backups together. This operation cannot be rolled back. Do you want to continue? ', - syncSuccess: 'Sync successfully', - canUpgrade: 'Upgrade', + syncSuccess: 'Synchronized successfully', + canUpgrade: 'Updates', backupName: 'File Name', backupPath: 'File Path', backupdate: 'Backup time', update: 'update', versionSelect: 'Please select a version', - operatorHelper: 'Operation {0} will be performed on the selected application, Do you want to continue? ', + operatorHelper: 'Operation {0} will be performed on the selected application. Do you want to continue?', + startOperatorHelper: 'The application will be started. Do you want to continue?', + stopOperatorHelper: 'The application will be stopped. Do you want to continue?', + restartOperatorHelper: 'The application will be restarted. Do you want to continue?', + reloadOperatorHelper: 'The application will be reloaded. Do you want to continue?', checkInstalledWarn: '{0} is not detected, please enter the app store and click to install!', gotoInstalled: 'Go to install', search: 'Search', @@ -1848,20 +1852,19 @@ const message = { appOfficeWebsite: 'Office website', github: 'Github', document: 'Document', - updatePrompt: 'The current application is the latest version', + updatePrompt: 'No updates available', installPrompt: 'No apps installed yet', updateHelper: 'Updating parameters may cause the application to fail to start, please operate with caution', updateWarn: 'Update parameters need to rebuild the application, Do you want to continue? ', busPort: 'Service Port', syncStart: 'Start syncing! Please refresh the app store later', advanced: 'Advanced Settings', - cpuCore: 'Number of cores', + cpuCore: 'core(s)', containerName: 'Container Name', - containerNameHelper: 'can be empty, it will be automatically generated', + containerNameHelper: 'The container name will be automatically generated when not set', allowPort: 'Port external access', allowPortHelper: 'Allowing external port access will release the firewall port', - appInstallWarn: - 'The application does not release the external access port by default, you can choose to release it in the advanced settings', + appInstallWarn: `The application dosn't expose the external access port by default. Click "Advanced Settings" to expose it.`, upgradeStart: 'Start upgrading! Please refresh the page later', toFolder: 'Open the installation directory', editCompose: 'Edit compose file', @@ -1869,15 +1872,19 @@ const message = { composeNullErr: 'compose cannot be empty', takeDown: 'TakeDown', allReadyInstalled: 'Installed', - installHelper: 'Configuring image acceleration can solve the problem of image pull failure', + // installHelper: 'Configuring image acceleration can solve the problem of image pull failure', + installHelper: 'Configure image acceleration if you have image pull issues.', + // upgradeHelper: + // 'Abnormal applications need to be synchronized to normal status first. If the upgrade fails, please check the failure reason in the log audit-system log', upgradeHelper: - 'Abnormal applications need to be synchronized to normal status first. If the upgrade fails, please check the failure reason in the log audit-system log', + 'Bring abnormal applications back to normal status before upgrading. If the upgrade fails, go to "Log" > "System Logs" to check the failure reason.', installWarn: 'Currently, if the port external access is not checked, it will not be able to access through the external network IP: port. Do you want to continue?', - showIgnore: 'View ignore application', + showIgnore: 'View ignored applications', cancelIgnore: 'Cancel ignore', - ignoreList: 'ignore list', - appHelper: 'Please view the installation instructions of some applications on the application details page', + ignoreList: 'Ignored applications', + // appHelper: 'Please view the installation instructions of some applications on the application details page', + appHelper: 'Go to application details page to learn installation instruction for some special applications.', backupApp: 'Backup application before upgrade', backupAppHelper: 'If the upgrade fails, the backup will be automatically rolled back. Please check the failure reason in the log audit-system log. The backup will retain the latest 3 copies by default', @@ -1887,7 +1894,7 @@ const message = { downloadLogHelper1: 'All logs of {0} application are about to be downloaded. Do you want to continue? ', downloadLogHelper2: 'The latest {1} logs of {0} application are about to be downloaded. Do you want to continue? ', - syncAllAppHelper: 'All applications are about to be synchronized. Do you want to continue? ', + syncAllAppHelper: 'All applications will be synchronized. Do you want to continue? ', hostModeHelper: 'The current application network mode is host mode. If you need to open the port, please open it manually on the firewall page.', showLocal: 'Show Local Application', @@ -1910,8 +1917,8 @@ const message = { }, website: { website: 'Website', - primaryDomain: 'Primary Domain', - otherDomains: 'Other Domains', + primaryDomain: 'Primary domain', + otherDomains: 'Other domains', static: 'Static', deployment: 'Deployment', supportUpType: 'Only .tar.gz files are supported', @@ -1921,21 +1928,24 @@ const message = { enableFtp: 'FTP', ftpUser: 'FTP Account', ftpPassword: 'FTP Password', + // ftpHelper: + // "When creating a site, simultaneously create a corresponding FTP account for the site, with the FTP directory pointing to the site's directory.", ftpHelper: - "When creating a site, simultaneously create a corresponding FTP account for the site, with the FTP directory pointing to the site's directory.", + 'After creating a website, a corresponding FTP account will be created and the FTP directory will link to the website directory.', remark: 'Remark', group: 'Group', groupSetting: 'Group Management', - createGroup: 'Create Group', + createGroup: 'Create group', app: 'Application', appNew: 'New Application', - appInstalled: 'Installed Application', + appInstalled: 'Installed application', 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', + // domainHelper: 'One domain per line, support * and IP address, support domain name:port', + domainHelper: 'One domain per line.\nSupport wildcard "*" and IP address.\nSupport adding port.', addDomain: 'Add', domainConfig: 'Domains', defaultDoc: 'Document', @@ -1948,32 +1958,32 @@ const message = { limitHelper: 'Enable flow control', other: 'Other', currentSSL: 'Current Certificate', - dnsAccount: 'DNS Account', + dnsAccount: 'DNS account', applySSL: 'Certificate Application', SSLList: 'Certificate List', - createDnsAccount: 'DNS Account', + createDnsAccount: 'DNS account', aliyun: 'Aliyun', volcengine: 'Volcengine', manual: 'Manual parsing', key: 'Key', check: 'View', - acmeAccountManage: 'Acme Account', + acmeAccountManage: 'View ACME accounts', email: 'Email', - acmeAccount: 'Acme Account', - provider: 'Verification Method', + acmeAccount: 'ACME account', + provider: 'Verification method', dnsManual: 'Manual Resolution', expireDate: 'Expiry Date', brand: 'Organization', deploySSL: 'Deployment', deploySSLHelper: 'Are you sure to deploy the certificate? ', ssl: 'Certificate', - dnsAccountManage: 'DNS Account', + dnsAccountManage: 'View DNS provider accounts', renewSSL: 'Renew', renewHelper: 'Are you sure to renew the certificate? ', renewSuccess: 'Renew Certificate', config: 'Configuration', enableHTTPS: 'Enable', - aliasHelper: 'Alias is the folder name of the website directory', + aliasHelper: 'Alias is the directory name of the website', lastBackupAt: 'last backup time', null: 'none', nginxConfig: 'Nginx configuration', @@ -2004,9 +2014,8 @@ const message = { 'Forced deletion will ignore errors generated during the deletion process and eventually delete metadata', deleteAppHelper: 'Delete associated applications and application backups at the same time', deleteBackupHelper: 'Also delete website backup', - deleteConfirmHelper: - 'The delete operation cannot be rolled back, please enter "{0}" to delete', - staticPath: 'Corresponding main directory:', + deleteConfirmHelper: `The delete operation can't be undone, please enter "{0}" to delete`, + staticPath: 'The corresponding main directory is ', limit: 'Scheme', blog: 'Forum/Blog', imageSite: 'Picture Site', @@ -2060,16 +2069,16 @@ const message = { ever: 'permanent', nextYear: 'One year later', noLog: 'There are currently no logs...', - defaultServer: 'Default Site', + defaultServer: 'Default site', noDefaultServer: 'Not set', defaultServerHelper: 'After setting the default site, all unbound domain names and IPs are directed to the default site\n which can effectively prevent malicious analysis', restoreHelper: 'Are you sure to restore using this backup?', - websiteDeploymentHelper: 'Create a website using an application deployed from 1Panel', - websiteStatictHelper: 'Create a website directory on the host', + websiteDeploymentHelper: 'Use an installed application or create a new application to create a website.', + websiteStatictHelper: 'Create a website directory on the host.', websiteProxyHelper: - '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', + 'Use reverse proxy to proxy existing service. For example, if a service is installed and running on port 8080, the proxy address will be "http://127.0.0.1:8080".', + runtimeProxyHelper: 'Use a website runtime to create a website.', runtime: 'Runtime', deleteRuntimeHelper: 'The Runtime application needs to be deleted together with the website, please handle it with caution', @@ -2126,7 +2135,7 @@ const message = { disable: 'not enabled', disableLeechHelper: 'Whether to disable the anti-leech', disableLeech: 'Disable anti-leech', - ipv6: 'Listen IPV6', + ipv6: 'Listen IPv6', leechReturnError: 'Please fill in the HTTP status code', selectAcme: 'Select Acme account', imported: 'Manually Created', @@ -2154,9 +2163,9 @@ const message = { runDirHelper2: 'Please ensure that the secondary running directory is under the index directory', openrestyHelper: 'OpenResty default HTTP port: {0} HTTPS port: {1}, which may affect website domain name access and HTTPS forced redirect', - primaryDomainHelper: 'Support domain name: port', + primaryDomainHelper: 'Exmaple: example.com or example.com:8080', acmeAccountType: 'Account Type', - keyType: 'Key Algorithm', + keyType: 'Key algorithm', tencentCloud: 'Tencent Cloud', containWarn: 'The domain name contains the main domain, please re-enter', rewriteHelper2: @@ -2171,7 +2180,7 @@ const message = { indexHtml: 'Static website default page', stopHtml: 'Website stop page', indexPHP: 'PHP website default page', - sslExpireDate: 'Certificate Expiry Date', + sslExpireDate: 'Certificate Expiration Date', website404Helper: 'Website 404 error page only supports PHP runtime environment websites and static websites', sni: 'Origin SNI', sniHelper: @@ -2223,10 +2232,10 @@ const message = { saveAndReload: 'Save and Reload', clearProxyCache: 'Clear reverse proxy cache', clearProxyCacheWarn: - 'Clearing the reverse proxy cache will affect all websites configured with cache and requires restarting OpenResty. Do you want to continue? ', + 'All websites that have configured with cache will be affected and "OpenResty" will be restarted. Do you want to continue?', }, ssl: { - create: 'Apply', + create: 'Request', provider: 'Type', manualCreate: 'Manually Created', acmeAccount: 'Acme Account', @@ -2241,7 +2250,7 @@ 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: @@ -2253,7 +2262,7 @@ const message = { apply: 'Apply', applyStart: 'Certificate application starts', getDnsResolve: 'Getting DNS resolution value, please wait...', - selfSigned: 'Self-signed certificate', + selfSigned: 'View Self-signed certificates', ca: 'Certification Authority', commonName: 'Certificate subject name (CN)', caName: 'Institution name', @@ -2267,11 +2276,11 @@ const message = { days: 'validity period', domainHelper: 'One domain name per line, supports * and IP address', pushDir: 'Push the certificate to the local directory', - dir: 'directory', + dir: 'Directory', pushDirHelper: - 'Two files will be generated in this directory, the certificate file: fullchain.pem and the key file: privkey.pem', + 'Certificate file "fullchain.pem" and key file "privkey.pem" will be generated in this directory.', organizationDetail: 'Organization Details', - fromWebsite: 'From Websites', + fromWebsite: 'From websites', dnsMauanlHelper: 'In manual resolution mode, you need to click the apply button after creation to obtain the DNS resolution value', httpHelper: 'HTTP mode requires OpenResty to be installed', @@ -2280,20 +2289,20 @@ const message = { googleCloudHelper: 'Google Cloud API is not accessible in most parts of mainland China', httpHelper2: 'Unable to apply for a generic domain name certificate in HTTP mode', skipDNSCheck: 'Skip DNS check', - skipDNSCheckHelper: 'If there is an application timeout problem, please check here, otherwise do not check it', + skipDNSCheckHelper: 'Check here only if you encounter a timeout issue during certification request.', cfHelper: 'Do not use Global API Key', deprecated: 'will be deprecated', deprecatedHelper: 'Maintenance has been stopped and may be abandoned in a future version. Please use Tencent Cloud method for analysis', disableCNAME: 'Disable CNAME', - disableCNAMEHelper: 'Domain name with CNAME configuration, if the application fails, you can check here', + disableCNAMEHelper: 'Check here if the domain name has a CNAME record and the request fails.', nameserver: 'DNS server', - nameserverHelper: 'Use a custom DNS server to verify domain names', + nameserverHelper: 'Use a custom DNS server to verify domain names.', edit: 'Edit certificate', - execShell: 'Execute the script after applying for the certificate', + execShell: 'Execute the script after certification request.', shell: 'Script content', shellHelper: - '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', + 'The default execution directory of the script is the 1Panel installation directory. If a certificate is pushed into local directory, the execution directory will be the certificate push directory. The default execution timeout is 30 minutes.', }, firewall: { create: 'Create Rule', @@ -2313,7 +2322,7 @@ const message = { firewall: 'Firewall', dockerHelper: 'Linux firewall {0} cannot disable Docker port mapping, the application can edit the parameters on the [Installed] page to control whether the port is released', - quickJump: 'Quick jump', + quickJump: 'Go to now', used: 'Used', unUsed: 'Unused', firewallHelper: '{0} System firewall', diff --git a/frontend/src/lang/modules/tw.ts b/frontend/src/lang/modules/tw.ts index b0726afbe..db94cf225 100644 --- a/frontend/src/lang/modules/tw.ts +++ b/frontend/src/lang/modules/tw.ts @@ -9,8 +9,8 @@ const message = { commons: { true: '是', false: '否', - example: '例:', - fit2cloud: '飛致雲', + example: '例如:', + fit2cloud: '飞致云', button: { create: '創建', add: '添加', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 2eeda99ac..041ec8ac2 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -1792,7 +1792,7 @@ const message = { deleteApp: '删除应用', deleteBackup: '删除备份', domain: '域名', - domainHelper: '一行一个域名,支持*和IP地址,支持域名:端口', + domainHelper: '一行一个域名,支持*和IP地址,支持"域名:端口"', addDomain: '新增域名', domainConfig: '域名设置', defaultDoc: '默认文档', @@ -1916,7 +1916,7 @@ const message = { websiteDeploymentHelper: '使用从 1Panel 部署的应用创建网站', websiteStatictHelper: '在主机上创建网站目录', websiteProxyHelper: - '代理已有服务,例如本机已安装使用 8080 端口的 halo 服务,那么代理地址为 http://127.0.0.1:8080', + '代理已有服务。例如本机已安装使用 8080 端口的 halo 服务,那么代理地址为 http://127.0.0.1:8080', restoreHelper: '确认使用此备份恢复?', wafValueHelper: '值', wafRemarkHelper: '描述', diff --git a/frontend/src/views/app-store/detail/install/index.vue b/frontend/src/views/app-store/detail/install/index.vue index 847b2bef2..e3f7d3f7c 100644 --- a/frontend/src/views/app-store/detail/install/index.vue +++ b/frontend/src/views/app-store/detail/install/index.vue @@ -16,7 +16,7 @@ :title="$t('app.appInstallWarn')" class="common-prompt" :closable="false" - type="error" + type="warning" v-if="!isHostMode" /> - {{ $t('container.limitHelper') }} + {{ $t('container.limitHelper', [99999]) }} @@ -265,7 +265,7 @@ - {{ $t('container.limitHelper') }} + {{ $t('container.limitHelper', ['9999999999']) }}