diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd.ts index e7c7be4f8..e5a138949 100644 --- a/packages/ui/certd-client/src/locales/langs/en-US/certd.ts +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd.ts @@ -1,873 +1,46 @@ -//注意: @符号是保留字符,需要用{'@'}替换, AI请务必提醒我修改 +import common from "./certd/common"; +import navigation from "./certd/navigation"; +import dashboard from "./certd/dashboard"; +import pipeline from "./certd/pipeline"; +import history from "./certd/history"; +import monitor from "./certd/monitor"; +import certdomain from "./certd/cert-domain"; +import cname from "./certd/cname"; +import access from "./certd/access"; +import open from "./certd/open"; +import mine from "./certd/mine"; +import notification from "./certd/notification"; +import addon from "./certd/addon"; +import suite from "./certd/suite"; +import project from "./certd/project"; +import syssettings from "./certd/sys-settings"; +import sysplugin from "./certd/sys-plugin"; +import sysauthority from "./certd/sys-authority"; +import syscname from "./certd/sys-cname"; +import tutorial from "./certd/tutorial"; +import cron from "./certd/cron"; + +// Note: @ is reserved in locale messages; use {'@'} when needed. export default { - app: { - crud: { - i18n: { - name: "name", - city: "city", - status: "status", - }, - }, - }, - fs: { - rowHandle: { - title: "Operation", - }, - }, - pipelinePage: { - addMore: "Add More Pipelines", - aliyunSubscriptionPipeline: "Aliyun Subscription Pipeline", - legoCertPipeline: "Lego Certificate Pipeline", - customPipeline: "Custom Pipeline", - batchAddPipeline: "Add Pipeline Use Template", - myPipelinesDesc: "Pipeline Mode: Apply -> Deploy -> Schedule", - }, - order: { - confirmTitle: "Order Confirmation", - package: "Package", - description: "Description", - specifications: "Specifications", - pipeline: "Pipeline", - domain: "Domain", - deployTimes: "Deployments", - monitorCount: "DomainMonitors", - duration: "Duration", - price: "Price", - paymentMethod: "Payment Method", - free: "Free", - unit: { - pieces: "pieces", - count: "count", - times: "times", - }, - }, - framework: { - title: "Framework", - home: "Home", - }, - helpDocLink: "Help Docs", - title: "Certificate Automation", - pipeline: "Pipeline", - pipelineEdit: "Edit Pipeline", - history: "Execution History", - certStore: "Certificate Repository", - siteMonitor: "Site Certificate Monitor", - settings: "Settings", - accessManager: "Access Management", - cnameRecord: "CNAME Record Management", - subDomain: "Subdomain Delegation Settings", - pipelineGroup: "Pipeline Group Management", - openKey: "Open API Key", - notification: "Notification Settings", - siteMonitorSetting: "Site Monitor Settings", - userSecurity: "Security Settings", - userProfile: "Account Info", - userGrant: "Grant Delegation", - suite: "Suite", - mySuite: "My Suite", - suiteBuy: "Suite Purchase", - myTrade: "My Orders", - paymentReturn: "Payment Return", - hasExpired: "Expired", - user: { - greeting: "Hello", - profile: "Account Info", - logout: "Logout", - setting: { - grantSetting: "Grant Settings", - saveSuccess: "Save Success", - allowAdminViewCerts: "Allow Admin view and download Certs", - allowAdminViewCertsHelper: "Allow admin view and download all certificates", - }, - }, - dashboard: { - greeting: "Hello, {name}, welcome to 【{site}】", - latestVersion: "Latest version: {version}", - validUntil: "Valid until:", - tutorialTooltip: "Click to view detailed tutorial", - tutorialText: "Only 3 steps to automatically apply and deploy certificates", - alertMessage: "Certificates and credentials are sensitive. Do not use untrusted online Certd services or images. Always self-host and use official release channels:", - helpDoc: "Help Docs", - pipelineCount: "Number of Certificate Pipelines", - noPipeline: "You have no certificate pipelines yet", - enabledCount: "Enabled", - disabledCount: "Disabled", - certCount: "Number of Certificates", - noCert: "You have no certificates yet", - manageCert: "View Certificates", - certExpiringCount: "Soon-to-Expire", - certExpiredCount: "Expired", - certNoExpireCount: "Not Expired", - createNow: "Create Now", - managePipeline: "Manage Pipelines", - pipelineStatus: "Pipeline Status", - recentRun: "Recent Run Statistics", - runCount: "Run Count", - expiringCerts: "Soon-to-Expire Certificates", - supportedTasks: "Overview of Supported Deployment Tasks", - changeLog: "Change Log", - }, - steps: { - createPipeline: "Create Certificate Pipeline", - addTask: "Add Deployment Task", - scheduledRun: "Scheduled Run", - }, - customPipeline: "Custom Pipeline", - createCertdPipeline: "Create Certificate Pipeline", - commercialCertHosting: "Commercial Certificate Hosting", - tooltip: { - manualUploadOwnCert: "Manually upload your own certificate for automatic deployment", - noAutoApplyCommercialCert: "Does not automatically apply for commercial certificates", - manualUploadOnUpdate: "Must manually upload once when the certificate is updated", - }, - table: { - confirmDeleteTitle: "Are you sure you want to delete?", - confirmDeleteMessage: "This will delete all data related to the pipeline, including execution history, certificate files, and certificate repository records.", - }, - play: { - runPipeline: "Run Pipeline", - confirm: "Confirm", - confirmTrigger: "Are you sure you want to trigger the run?", - pipelineStarted: "Pipeline has started running", - }, - actions: { - editPipeline: "Edit Pipeline", - editConfigGroup: "Modify Configuration/Group", - viewCertificate: "View Certificate", - downloadCertificate: "Download Certificate", - }, - fields: { - userId: "User ID", - pipelineName: "Pipeline Name", - keyword: "Keyword", - required: "This field is required", - pipelineContent: "Pipeline Content", - scheduledTaskCount: "Scheduled Task Count", - deployTaskCount: "Deployment Task Count", - remainingValidity: "Remaining Validity", - effectiveTime: "Effective time", - expiryTime: "Expiry Time", - status: "Status", - lastRun: "Last Run", - enabled: "Enabled", - enabledLabel: "Enabled", - disabledLabel: "Disabled", - group: "Group", - type: "Type", - order: "Order Number", - keepHistoryCount: "History Record Retention Count", - keepHistoryHelper: "Number of history records to keep; excess will be deleted", - createTime: "Creation Time", - updateTime: "Update Time", - triggerType: "Trigger Type", - pipelineId: "Pipeline Id", - nextRunTime: "Next Run Time", - projectName: "Project", - adminId: "Admin", - }, - - pi: { - validTime: "Piepline Valid Time", - validTimeHelper: "Not filled in means permanent validity", - }, - types: { - certApply: "Cert Apply", - certUpload: "Cert Upload", - custom: "Custom", - template: "Template", - }, - myPipelines: "My Pipelines", - selectedCount: "Selected {count} items", - batchDelete: "Batch Delete", - batchForceRerun: "Force Rerun", - batchRerun: "Rerun", - applyCertificate: "Apply for Certificate", - pipelineExecutionRecords: "Pipeline Execution Records", - confirm: "Confirm", - confirmBatchDeleteContent: "Are you sure you want to batch delete these {count} records?", - deleteSuccess: "Delete successful", - pleaseSelectRecords: "Please select records first", - triggerTypes: { - manual: "Manual Execution", - timer: "Scheduled Execution", - }, - sysResources: { - sysRoot: "System Management", - sysConsole: "Console", - sysSettings: "System Settings", - cnameSetting: "CNAME Service Settings", - emailSetting: "Email Server Settings", - siteSetting: "Site Personalization", - headerMenus: "Top Menu Settings", - sysAccess: "System-level Authorization", - sysPlugin: "Plugin Management", - sysPluginEdit: "Edit Plugin", - sysPluginConfig: "Certificate Plugin Configuration", - accountBind: "Account Binding", - permissionManager: "Permission Management", - roleManager: "Role Management", - userManager: "User Management", - suiteManager: "Suite Management", - suiteSetting: "Suite Settings", - orderManager: "Order Management", - userSuites: "User Suites", - netTest: "Network Test", - - enterpriseSetting: "Enterprise Settings", - projectManager: "Project Management", - projectUserManager: "Project User Management", - myProjectManager: "My Projects", - myProjectDetail: "Project Detail", - projectJoin: "Join Project", - currentProject: "Current Project", - projectMemberManager: "Project Member", - domainMonitorSetting: "Domain Monitor Settings", - }, - certificateRepo: { - title: "Certificate Repository", - sub: "Certificates generated from pipeline", - }, - - certificateNotGenerated: "Certificate not yet generated, please run the pipeline first", - viewCertificateTitle: "View Certificate", - close: "Close", - viewCert: { - title: "View Certificate", - }, - download: { - title: "Download Certificate", - }, - source: "Source Code", - github: "GitHub", - gitee: "Gitee", - cron: { - clearTip: "Clear Selection", - nextTrigger: "Next Trigger Time", - tip: "Please set a valid cron expression first", - }, - cronForm: { - title: "Scheduled Script", - helper: "Click the button above to select the time for daily execution.\nIt is recommended to run once a day. Tasks will be skipped if the certificate is not expiring.", - required: "This field is required", - }, - email: { - title: "Recipient Email", - helper: "Enter your recipient email addresses. Multiple addresses are supported.", - required: "This field is required", - }, - plugin: { - selectTitle: "Certificate Apply Plugin", - jsAcme: "JS-ACME: Easy to use, powerful features [Recommended]", - legoAcme: "Lego-ACME: Based on Lego, supports a wide range of DNS providers, suitable for users familiar with Lego", - aliyunOrder: "Aliyun-Order: Get certificate from Aliyun certificate order", - }, - pipelineForm: { - createTitle: "Create Certificate Pipeline", - moreParams: "More Parameters", - triggerCronTitle: "Scheduled Trigger", - triggerCronHelper: - "Click the button above to choose a daily execution time.\nIt is recommended to trigger once per day. The task will be skipped if the certificate has not expired and will not be executed repeatedly.", - notificationTitle: "Failure Notification", - notificationWhen: "Notification Timing", - notificationHelper: "Get real-time alerts when the task fails", - groupIdTitle: "Pipeline Group", - - addToMonitorEnabled: "Add to Cert Monitor", - addToMonitorDomains: "Add to Monitor Domains", - - webhookEnabled: "Webhook Enabled", - webhookEnabledHelper: "Support webhook trigger pipeline, please check webhook address in trigger source", - }, - notificationDefault: "Use Default Notification", - checkStatus: { - success: "Success", - checking: "Checking", - error: "Error", - }, - domainList: { - title: "Domain List", - helper: "Format: domain:port:name:remark, one per line. Port and name are optional.\nExamples:\nwww.baidu.com:443:Baidu:remarkText\nwww.taobao.com::Taobao\nwww.google.com", - required: "Please enter domains to import", - placeholder: "www.baidu.com:443:Baidu\nwww.taobao.com::Taobao\nwww.google.com\n", - }, - accountInfo: "Account Information", - securitySettings: "Security & Settings", - confirmDisable2FA: "Are you sure you want to disable two-factor authentication login?", - disabledSuccess: "Disabled successfully", - saveSuccess: "Saved successfully", - twoFactorAuth: "2FA Two-Factor Authentication Login", - rebind: "Rebind", - twoFactorAuthHelper: "Enable or disable two-factor authentication login", - bindDevice: "Bind Device", - step1: "1. Install any authenticator app, for example:", - tooltipGoogleServiceError: "If you get a Google service not found error, you can install KK Google Assistant", - step2: "2. Scan the QR code to add the account", - step3: "3. Enter the verification code", - inputVerifyCode: "Please enter the verification code", - cancel: "Cancel", - authorizationManagement: "Authorization Management", - manageThirdPartyAuth: "Manage third-party system authorization information", - name: "Name", - pleaseEnterName: "Please enter the name", - nameHelper: "Fill in as you like, useful to distinguish when multiple authorizations of the same type exist", - level: "Level", - system: "System", - usera: "User", - nickName: "Nickname", - max50Chars: "Maximum 50 characters", - myInfo: "My Information", - save: "Save", - editSchedule: "Edit Schedule", - timerTrigger: "Timer Trigger", - schedule: "Schedule", - selectCron: "Please select a schedule Cron", - batchEditSchedule: "Batch Edit Schedule", - editTrigger: "Edit Trigger", - triggerName: "Trigger Name", - requiredField: "This field is required", - type: "Type", - enterName: "Please enter a name", - confirmDeleteTrigger: "Are you sure you want to delete this trigger?", - notificationType: "Notification Type", - selectNotificationType: "Please select a notification type", - notificationName: "Notification Name", - helperNotificationName: "Fill freely, helps to distinguish when multiple notifications of the same type exist", - isDefault: "Is Default", - yes: "Yes", - no: "No", - selectIsDefault: "Please select if default", - prompt: "Prompt", - confirmSetDefaultNotification: "Are you sure to set as default notification?", - test: "Test", - scope: "Scope", - scopeOpenApiOnly: "Open API Only", - scopeFullAccount: "Full Account Permissions", - required: "This field is required", - scopeHelper: "Open API only allows access to open APIs; full account permissions allow access to all APIs", - add: "Generate New Key", - gen: { - text: "API Test", - title: "x-certd-token", - okText: "Confirm", - contentPart1: "Test the x-certd-token below, you can use it within 3 minutes to test ", - openApi: "Open API", - contentPart2: " request testing", - }, - pending_cname_setup: "Pending CNAME setup", - validating: "Validating", - validation_successful: "Validation successful", - validation_failed: "Validation failed", - validation_timed_out: "Validation timed out", - proxied_domain: "Proxied Domain", - host_record: "Host Record", - please_set_cname: "Please set CNAME", - cname_service: "CNAME Service", - default_public_cname: "Default public CNAME service, you can also ", - customize_cname: "Customize CNAME Service", - public_cname: "Public CNAME", - custom_cname: "Custom CNAME", - validate: "Validate", - validation_started: "Validation started, please wait patiently", - click_to_validate: "Click to Validate", - all: "All", - cname_feature_guide: "CNAME feature principle and usage guide", - batch_delete: "Batch Delete", - confirm_delete_count: "Are you sure to delete these {count} records in batch?", - delete_successful: "Delete successful", - please_select_records: "Please select records first", - edit_notification: "Edit Notification", - other_notification_method: "Other Notification Method", - trigger_time: "Trigger Time", - start_time: "At Start", - success_time: "On Success", - fail_to_success_time: "Fail to Success", - fail_time: "On Failure", - helper_suggest_fail_only: "It is recommended to select only 'On Failure' and 'Fail to Success'", - notification_config: "Notification Configuration", - please_select_notification: "Please select a notification method", - please_select_type: "Please select type", - please_select_trigger_time: "Please select notification trigger time", - please_select_notification_config: "Please select notification configuration", - confirm_delete_trigger: "Are you sure you want to delete this trigger?", - gift_package: "Gift Package", - package_name: "Package Name", - click_to_select: "Click to select", - please_select_package: "Please select a package", - package: "Package", - addon_package: "Addon Package", - domain_count: "Domain Count", - unit_count: "pcs", - field_required: "This field is required", - pipeline_count: "Pipeline Count", - unit_item: "items", - deploy_count: "Deploy Count", - unit_times: "times", - monitor_count: "Certificate Monitor Count", - duration: "Duration", - status: "Status", - active_time: "Activation Time", - expires_time: "Expiration Time", - is_present: "Is Present", - is_present_yes: "Yes", - is_present_no: "No", - basicInfo: "Basic Information", - titlea: "Title", - disabled: "Disabled", - ordera: "Order", - supportBuy: "Support Purchase", - intro: "Introduction", - packageContent: "Package Content", - maxDomainCount: "Max Domain Count", - maxPipelineCount: "Max Pipeline Count", - maxDeployCount: "Max Deploy Count", - maxMonitorCount: "Max Monitor Count", - price: "Price", - durationPrices: "Duration Prices", - packageName: "Package Name", - addon: "Addon", - typeHelper: "Suite: Only the most recently purchased one is active at a time\nAddon: Multiple can be purchased, effective immediately without affecting the suite\nThe quantities of suite and addon can be accumulated", - domainCount: "Domain Count", - pipelineCount: "Pipeline Count", - unitPipeline: "pipelines", - deployCount: "Deployment Count", - unitDeploy: "times", - monitorCount: "Certificate Monitor Count", - unitCount: "pcs", - durationPriceTitle: "Duration and Price", - selectDuration: "Select Duration", - supportPurchase: "Support Purchase", - cannotPurchase: "Cannot Purchase", - shelfStatus: "Shelf Status", - onShelf: "On Shelf", - offShelf: "Off Shelf", - orderHelper: "Smaller values appear first", - description: "Description", - createTime: "Creation Time", - updateTime: "Update Time", - mainDomain: "Main Domain", - edit: "Edit", - groupName: "Group Name", - enterGroupName: "Please enter group name", - subdomainHosting: "Subdomain Hosting", - subdomainHostingHint: "When your domain has subdomain hosting set, you need to create records here, otherwise certificate application will fail", - batchDeleteConfirm: "Are you sure to batch delete these {count} records?", - selectRecordFirst: "Please select records first", - subdomainHosted: "Hosted Subdomain", - subdomainHelpText: "If you don't understand what subdomain hosting is,Do not set it randomly, as it may result in the inability to apply for the certificate. please refer to the documentation ", - subdomainHelpSupportStart: "Supports * wildcard, indicating that all subdomains of the domain are hosted (free subdomains)", - subdomainManagement: "Subdomain Management", - isDisabled: "Is Disabled", - enabled: "Enabled", - uploadCustomCert: "Upload Custom Certificate", - sourcee: "Source", - sourcePipeline: "Cert Apply Pipeline", - sourceManualUpload: "Hosted Pipeline", - domains: "Domains", - enterDomain: "Please enter domain", - validDays: "Valid Days", - expires: " expires", - days: " days", - effectiveTime: "Effective Time", - expireTime: "Expiration Time", - certIssuer: "Certificate Issuer", - applyTime: "Application Time", - relatedPipeline: "Related Pipeline", - statusSuccess: "Success", - statusChecking: "Checking", - statusError: "Error", - actionImportBatch: "Batch Import", - actionSyncIp: "Sync IP", - modalTitleSyncIp: "Sync IP", - modalContentSyncIp: "Are you sure to sync IP?", - notificationSyncComplete: "Sync Complete", - actionCheckAll: "Check All", - modalTitleConfirm: "Confirm", - modalContentCheckAll: "Confirm to trigger checking all IP site's certificates?", - notificationCheckSubmitted: "Check task submitted", - notificationCheckDescription: "Please refresh later to see results", - tooltipCheckNow: "Check Now", - notificationCheckSubmittedPleaseRefresh: "Check task submitted, please refresh later", - columnId: "ID", - columnIp: "IP", - helperIpCname: "Supports entering CNAME domain name or source site domain name", - ruleIpRequired: "Please enter IP", - columnCertDomains: "Certificate Domains", - columnCertProvider: "Issuer", - columnCertStatus: "Certificate Status", - statusNormal: "Normal", - statusExpired: "Expired", - columnCertExpiresTime: "Certificate Expiration Time", - expired: "expired", - columnCheckStatus: "Check Status", - columnLastCheckTime: "Last Check Time", - columnSource: "Source", - sourceSync: "Sync", - sourceManual: "Manual", - sourceImport: "Import", - columnDisabled: "Enabled/Disabled", - columnRemark: "Remark", - pluginFile: "Plugin File", - selectPluginFile: "Select plugin file", - overrideSameName: "Override same name", - override: "Override", - noOverride: "No override", - overrideHelper: "If a plugin with the same name exists, override it directly", - importPlugin: "Import Plugin", - operationSuccess: "Operation successful", - customPlugin: "Custom Plugin", - import: "Import", - export: "Export", - pluginType: "Plugin Type", - auth: "Authorization", - dns: "DNS", - deployPlugin: "Deploy Plugin", - icon: "Icon", - pluginName: "Plugin Name", - pluginNameHelper: "Must be English letters or digits, camelCase with type prefix\nExample: AliyunDeployToCDN\nDo not modify name once plugin is used", - pluginNameRuleMsg: "Must be English letters or digits, camelCase with type prefix", - author: "Author", - authorHelper: "Used as prefix when uploading to plugin store, e.g., greper/pluginName", - authorRuleMsg: "Must be English letters or digits", - titleHelper: "Plugin name in Chinese", - descriptionHelper: "Description of the plugin", - builtIn: "Built-in", - custom: "Custom", - store: "Store", - version: "Version", - pluginDependencies: "Plugin Dependencies", - pluginDependenciesHelper: "Dependencies to install first in format: [author/]pluginName[:version]", - editableRunStrategy: "Editable Run Strategy", - editable: "Editable", - notEditable: "Not Editable", - runStrategy: "Run Strategy", - normalRun: "Normal Run", - skipOnSuccess: "Skip on success (Deploy task)", - defaultRunStrategyHelper: "Default run strategy", - enableDisable: "Enable/Disable", - clickToToggle: "Click to toggle enable/disable", - confirmToggle: "Are you sure to", - disable: "disable", - enable: "enable", - pluginGroup: "Plugin Group", - icpRegistrationNumber: "ICP Registration Number", - icpPlaceholder: "Guangdong ICP xxxxxxx Number", - publicSecurityRegistrationNumber: "Public Security Registration Number", - publicSecurityPlaceholder: "Beijing Public Security xxxxxxx Number", - enableAssistant: "Enable Assistant", - allowCrawlers: "Allow Crawlers", - httpProxy: "HTTP Proxy", - httpProxyPlaceholder: "http://192.168.1.2:18010/", - httpProxyHelper: "Configure when some websites are blocked", - httpsProxy: "HTTPS Proxy", - httpsProxyPlaceholder: "http://192.168.1.2:18010/", - saveThenTestTitle: "Save first, then click test", - testButton: "Test", - httpsProxyHelper: "Usually both proxies are the same, save first then test", - dualStackNetwork: "Dual Stack Network", - default: "Default", - ipv4Priority: "IPv4 Priority", - ipv6Priority: "IPv6 Priority", - dualStackNetworkHelper: "If IPv6 priority is selected, enable IPv6 in docker-compose.yaml", - enableCommonCnameService: "Enable Public CNAME Service", - commonCnameHelper: "Allow use of public CNAME service. If disabled and no custom CNAME service is set, CNAME proxy certificate application will not work.", - enableCommonSelfServicePasswordRetrieval: "Enable self-service password recovery", - saveButton: "Save", - stopSuccess: "Stopped successfully", - google: "Google", - baidu: "Baidu", - success: "Success", - testFailed: "Test Failed", - testCompleted: "Test Completed", - manageOtherUserPipeline: "Manage other users' pipelines", - limitUserPipelineCount: "Limit user pipeline count", - limitUserPipelineCountHelper: "0 means no limit", - enableSelfRegistration: "Enable self-registration", - enableUserValidityPeriod: "Enable user validity period", - userValidityPeriodHelper: "Users can use normally within validity; pipelines disabled after expiry", - enableUsernameRegistration: "Enable username registration", - enableEmailRegistration: "Enable email registration", - proFeature: "Pro feature", - emailServerSetup: "Set up email server", - enableSmsLoginRegister: "Enable SMS login and registration", - commFeature: "Commercial feature", - smsProvider: "SMS provider", - aliyunSms: "Aliyun SMS", - tencentSms: "Tencent SMS", - yfySms: "YFY SMS", - smsTest: "SMS test", - testMobilePlaceholder: "Enter test mobile number", - saveThenTest: "Save first then test", - enterTestMobile: "Please enter test mobile number", - sendSuccess: "Sent successfully", - atLeastOneLoginRequired: "At least one of password login or SMS login must be enabled", - fieldRequired: "This field is required", - siteHide: "Site Hide", - enableSiteHide: "Enable Site Hide", - siteHideDescription: "You can disable site accessibility normally and enable it when needed to enhance site security", - helpDoc: "Help Document", - randomAddress: "Random Address", - siteHideUrlHelper: "After the site is hidden, you need to visit this URL to unlock to access normally", - fullUnlockUrl: "Full Unlock URL", - saveThisUrl: "Please save this URL carefully", - unlockPassword: "Unlock Password", - unlockPasswordHelper: "Password needed to unlock the hide; set on first time or reset when filled", - autoHideTime: "Auto Hide Time", - autoHideTimeHelper: "Minutes without requests before auto hiding", - hideOpenApi: "Hide Open API", - hideOpenApiHelper: "Whether to hide open APIs; whether to hide /api/v1 prefixed endpoints", - hideSiteImmediately: "Hide Site Immediately", - hideImmediately: "Hide Immediately", - confirmHideSiteTitle: "Are you sure to hide the site immediately?", - confirmHideSiteContent: "After hiding, the site will be inaccessible. Please operate cautiously.", - siteHiddenSuccess: "Site has been hidden", - emailServerSettings: "Email Server Settings", - setEmailSendingServer: "Set the email sending server", - useCustomEmailServer: "Use Custom Email Server", - smtpDomain: "SMTP Domain", - pleaseEnterSmtpDomain: "Please enter SMTP domain or IP", - smtpPort: "SMTP Port", - pleaseEnterSmtpPort: "Please enter SMTP port", - username: "Username", - pleaseEnterUsername: "Please enter username", - password: "Password", - pleaseEnterPassword: "Please enter password", - qqEmailAuthCodeHelper: "If using QQ email, get an authorization code in QQ email settings as the password", - senderEmailHelper: "You can use the format: Name to set the sender name, e.g.: autossl", - senderEmail: "Sender Email", - pleaseEnterSenderEmail: "Please enter sender email", - useSsl: "Use SSL", - sslPortNote: "SSL and non-SSL SMTP ports are different, please adjust port accordingly", - ignoreCertValidation: "Ignore Certificate Validation", - useOfficialEmailServer: "Use Official Email Server", - useOfficialEmailServerHelper: "Send emails directly using the official server to avoid complicated setup", - testReceiverEmail: "Test Receiver Email", - pleaseEnterTestReceiverEmail: "Please enter test receiver email", - saveBeforeTest: "Save before testing", - sendFailHelpDoc: "Failed to send??? ", - emailConfigHelpDoc: "Email configuration help document", - tryOfficialEmailServer: "You can also try using the official email server ↗↗↗↗↗↗↗↗", - pluginManagement: "Plugin Management", - pluginBetaWarning: "Custom plugins are in BETA and may have breaking changes in future", - pleaseSelectRecord: "Please select records first", - permissionManagement: "Permission Management", - adda: "Add", - rootNode: "Root Node", - permissionName: "Permission Name", - enterPermissionName: "Please enter permission name", - permissionCode: "Permission Code", - enterPermissionCode: "Please enter permission code", - max100Chars: "Maximum 100 characters", - examplePermissionCode: "e.g.: sys:user:view", - sortOrder: "Sort Order", - sortRequired: "Sort order is required", - parentNode: "Parent Node", - roleManagement: "Role Management", - assignPermissions: "Assign Permissions", - roleName: "Role Name", - enterRoleName: "Please enter role name", - unlockLogin: "Unlock Login", - notice: "Notice", - confirmUnlock: "Are you sure you want to unlock this user's login?", - unlockSuccess: "Unlock successful", - enterUsername: "Please enter username", - modifyPasswordIfFilled: "Fill in to change the password", - emaila: "Email", - mobile: "Mobile", - avatar: "Avatar", - validTime: "Valid Time", - remark: "Remark", - roles: "Roles", - cnameTitle: "CNAME Service Configuration", - cnameDescription: - "The domain name configured here serves as a proxy for verifying other domains. When other domains apply for certificates, they map to this domain via CNAME for ownership verification. The advantage is that any domain can apply for a certificate this way without providing an AccessSecret.", - cnameLinkText: "CNAME principle and usage instructions", - confirmTitle: "Confirm", - confirmDeleteBatch: "Are you sure you want to delete these {count} records?", - selectRecordsFirst: "Please select records first", - cnameDomain: "CNAME Domain", - cnameDomainPlaceholder: "cname.handsfree.work", - cnameDomainHelper: - "Requires a domain registered with a DNS provider on the right (or you can transfer other domain DNS servers here).\nOnce the CNAME domain is set, it cannot be changed. It is recommended to use a first-level subdomain.", - cnameDomainPattern: "Domain name cannot contain *", - dnsProvider: "DNS Provider", - dnsProviderAuthorization: "DNS Provider Authorization", - setDefault: "Set Default", - confirmSetDefault: "Are you sure to set as default?", - setAsDefault: "Set as Default", - disabledLabel: "Disabled", - confirmToggleStatus: "Are you sure to {action}?", - template: { - title: "Pipeline Template", - edit: "Pipeline Template Edit", - importCreate: "Pipeline Batch Create", - // intro: "可根据模版批量创建流水线", - intro: "Batch create pipeline based on template", - createTemplate: "Create Template", - useTemplate: "Use This Template", - batchCreate: "Batch Create Pipeline", - singleCreate: "Create Single Pipeline", - templateName: "Template Name", - enterTemplateName: "Please enter template name", - copyPipelineConfig: "Copy this pipeline configuration as template source", - pipeline: "Pipeline", - }, - - addonType: "Type", - addonName: "Name", - addonNameHelper: "Fill freely, helps to distinguish when multiple same type exist", - addonTypeSelect: "Select type", - dates: { - years: "{count} years", - months: "{count} months", - }, - sys: { - setting: { - baseSetting: "Base Settings", - registerSetting: "Register Settings", - safeSetting: "Safe Settings", - paymentSetting: "Payment Settings", - captchaSetting: "Captcha Setting", - pipelineSetting: "Pipeline Settings", - oauthSetting: "Login Settings", - networkSetting: "Network Settings", - adminModeSetting: "Admin Mode Settings", - adminModeHelper: "enterprise mode : allow to create and manage pipelines, roles, users, etc.\n saas mode : only allow to create and manage pipelines", - enterpriseMode: "Enterprise Mode", - saasMode: "SaaS Mode", - - showRunStrategy: "Show RunStrategy", - showRunStrategyHelper: "Allow modify the run strategy of the task", - - captchaEnabled: "Enable Login Captcha", - captchaHelper: "Whether to enable captcha verification for login", - captchaType: "Captcha Setting", - captchaTest: "Captcha Test", - // 保存后再点击测试,请务必测试通过了,再开启登录验证码 - captchaTestHelper: "Save and click test, please make sure the test is passed before enabling login captcha", - - pipelineValidTimeEnabled: "Enable Pipeline Valid Time", - pipelineValidTimeEnabledHelper: "Whether to enable the valid time of the pipeline", - certDomainAddToMonitorEnabled: "Add Domain to Certificate Monitor", - certDomainAddToMonitorEnabledHelper: "Whether to add the domain to the certificate monitor", - - defaultCertRenewDays: "Default Certificate Renew Days", - defaultCertRenewDaysHelper: "Default certificate renewal days, helpful for table list progress bar display", - defaultCertRenewDaysRecommend: "Recommend 15", - - pipelineMaxRunningCount: "Max Running Count", - pipelineMaxRunningCountHelper: "Max running count of the pipeline", - pipelineMaxRunningCountRecommend: "Recommend 5-15, default 10", - - acmeWalkFromAuthoritative: "Check TXT Record from Authoritative NS", - acmeWalkFromAuthoritativeHelper: "Apply certificate when whether to check the TXT record from authoritative NS server first", - - fixedCertExpireDays: "Fixed Cert Expire Days", - fixedCertExpireDaysHelper: "Fixed cert expiration days, helpful for table list progress bar display", - fixedCertExpireDaysRecommend: "Recommend 90", - - enableOauth: "Enable OAuth2 Login", - oauthEnabledHelper: "Whether to enable OAuth2 login", - oauthProviders: "OAuth2 Login Providers", - oauthType: "OAuth2 Login Type", - oauthConfig: "OAuth2 Login Config", - oauthProviderSelectorPlaceholder: "Not Configured", - oauthCallback: "Callback URL", - oauthCallbackHelper: "Copy this URL to the callback address of the OAuth2 login provider", - oauthCallbackCopy: "Copy Callback URL", - oauthAutoRegister: "Auto Register User", - oauthAutoRegisterCheckedText: "Auto Register", - oauthAutoRegisterUnCheckedText: "User Select", - oauthAutoRegisterHelper: "Whether to auto register user when login", - oauthAutoRedirect: "Auto Redirect to OAuth2 Login", - oauthAutoRedirectHelper: "Whether to auto redirect to OAuth2 login when login (using the first enabled OAuth2 login type)", - oauthOnly: "OAuth2 Login Only", - oauthOnlyHelper: "Whether to only allow OAuth2 login, disable password login", - enablePasskey: "Enable Passkey Login", - passkeyHostnameNotSame: "Passkey hostname must be the same as the main domain", - passkeyEnabledHelper: - "1、Site must enable https \n2、Domain name must not change, otherwise the registered passkey will be invalid \n3、Domain name must be the same as the main domain, otherwise the registered passkey will be invalid", - - email: { - templates: "Email Templates", - templateType: "Template Type", - templateProvider: "Template Config", - - templateSetting: "Email Template Setting", - serverSetting: "Email Server Setting", - sendTest: "Send Test", - - templateProviderSelectorPlaceholder: "Not Configured", - }, - notice: "System Notice", - noticeHelper: "System notice, will be displayed on the login page", - noticePlaceholder: "System notice", - - reverseProxy: "Reverse Proxy List", - reverseProxyHelper: "Reverse proxy for ACME address, used when applying for certificate", - reverseProxyPlaceholder: "http://le.px.handfree.work", - reverseProxyEmpty: "No reverse proxy list configured", - environmentVars: "Environment Variables", - environmentVarsHelper: "configure the runtime environment variables, one per line, format: KEY=VALUE", - - bindUrl: "Bind URL", - }, - }, - modal: { - close: "Close", - viewCertificateTitle: "View Certificate", - }, - domain: { - domainManager: "Domain Manager", - domainDescription: "used to auto apply for certificate", //管理域名的校验方式,用于申请证书时自动选择验证方式 - domain: "Domain", - challengeType: "Challenge Type", - dnsProviderType: "DNS Provider Type", - dnsProviderAccess: "DNS Provider Access", - httpUploaderType: "HTTP Uploader Type", - httpUploaderAccess: "HTTP Uploader Access", - httpUploadRootDir: "HTTP Upload Root Dir", - disabled: "Disabled", - challengeSetting: "Challenge Setting", - gotoCnameTip: "Please go to CNAME Record Page", - fromType: "From Type", - expirationDate: "Expiration Date", - }, - ent: { - projectName: "Project Name", - projectDescription: "Project Description", - projectDetailManager: "Project Detail", - projectDetailDescription: "Manage Project Members", - projectPermission: "Permission", - permission: { - read: "Read", - write: "Write", - admin: "Admin", - }, - projectMemberStatus: "Member Status", - - isSystem: "Is System Project", - isSystemHelper: "System-level projects allow running admin plugins", - }, - project: { - noProjectJoined: "You haven't joined any projects yet", - applyToJoin: "Please apply to join a project to start using", - systemProjects: "System Project List", - createdAt: "Created At", - applyJoin: "Apply to Join", - noSystemProjects: "No system projects available", - fetchFailed: "Failed to fetch project list", - applySuccess: "Application successful, waiting for admin approval", - applyFailed: "Application failed, please try again later", - leave: "Leave Project", - leaveSuccess: "Leave project successful", - leaveFailed: "Leave project failed, please try again later", - applyJoinConfirm: "Are you sure you want to apply to join this project?", - leaveConfirm: "Are you sure you want to leave this project?", - viewDetail: "View Detail", - projectManage: "Project Manage", - }, - addonSelector: { - select: "Select", - placeholder: "select please", - }, + ...common, + ...navigation, + ...dashboard, + ...pipeline, + ...history, + ...monitor, + ...certdomain, + ...cname, + ...access, + ...open, + ...mine, + ...notification, + ...addon, + ...suite, + ...project, + ...syssettings, + ...sysplugin, + ...sysauthority, + ...syscname, + ...tutorial, + ...cron, }; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/access.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/access.ts new file mode 100644 index 000000000..349e39424 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/access.ts @@ -0,0 +1,7 @@ +export default { + authorizationManagement: "Authorization Management", + manageThirdPartyAuth: "Manage third-party system authorization information", + nameHelper: "Fill in as you like, useful to distinguish when multiple authorizations of the same type exist", + level: "Level", + system: "System", +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/addon.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/addon.ts new file mode 100644 index 000000000..03636d598 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/addon.ts @@ -0,0 +1,10 @@ +export default { + addonType: "Type", + addonName: "Name", + addonNameHelper: "Fill freely, helps to distinguish when multiple same type exist", + addonTypeSelect: "Select type", + addonSelector: { + select: "Select", + placeholder: "select please", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/cert-domain.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/cert-domain.ts new file mode 100644 index 000000000..035310d33 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/cert-domain.ts @@ -0,0 +1,18 @@ +export default { + domain: { + domainManager: "Domain Manager", + domainDescription: "used to auto apply for certificate", //管理域名的校验方式,用于申请证书时自动选择验证方式 + domain: "Domain", + challengeType: "Challenge Type", + dnsProviderType: "DNS Provider Type", + dnsProviderAccess: "DNS Provider Access", + httpUploaderType: "HTTP Uploader Type", + httpUploaderAccess: "HTTP Uploader Access", + httpUploadRootDir: "HTTP Upload Root Dir", + disabled: "Disabled", + challengeSetting: "Challenge Setting", + gotoCnameTip: "Please go to CNAME Record Page", + fromType: "From Type", + expirationDate: "Expiration Date", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/cname.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/cname.ts new file mode 100644 index 000000000..2829f9faa --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/cname.ts @@ -0,0 +1,21 @@ +export default { + pending_cname_setup: "Pending CNAME setup", + validating: "Validating", + validation_successful: "Validation successful", + validation_failed: "Validation failed", + validation_timed_out: "Validation timed out", + proxied_domain: "Proxied Domain", + host_record: "Host Record", + please_set_cname: "Please set CNAME", + cname_service: "CNAME Service", + default_public_cname: "Default public CNAME service, you can also ", + customize_cname: "Customize CNAME Service", + public_cname: "Public CNAME", + custom_cname: "Custom CNAME", + validate: "Validate", + validation_started: "Validation started, please wait patiently", + click_to_validate: "Click to Validate", + cname_feature_guide: "CNAME feature principle and usage guide", + mainDomain: "Main Domain", + cnameRecord: "CNAME Record Management", +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/common.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/common.ts new file mode 100644 index 000000000..4df9ae4ec --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/common.ts @@ -0,0 +1,116 @@ +export default { + usera: "User", + disabledSuccess: "Disabled successfully", + app: { + crud: { + i18n: { + name: "name", + city: "city", + status: "status", + }, + }, + }, + fs: { + rowHandle: { + title: "Operation", + }, + }, + close: "Close", + confirm: "Confirm", + save: "Save", + add: "Generate New Key", + edit: "Edit", + deleteSuccess: "Delete successful", + saveSuccess: "Saved successfully", + cancel: "Cancel", + yes: "Yes", + no: "No", + all: "All", + required: "This field is required", + requiredField: "This field is required", + fieldRequired: "This field is required", + field_required: "This field is required", + name: "Name", + pleaseEnterName: "Please enter the name", + type: "Type", + status: "Status", + description: "Description", + createTime: "Creation Time", + updateTime: "Update Time", + basicInfo: "Basic Information", + disabled: "Disabled", + enabled: "Enabled", + default: "Default", + success: "Success", + test: "Test", + testButton: "Test", + operationSuccess: "Operation successful", + batch_delete: "Batch Delete", + confirm_delete_count: "Are you sure to delete these {count} records in batch?", + delete_successful: "Delete successful", + please_select_records: "Please select records first", + groupName: "Group Name", + enterGroupName: "Please enter group name", + batchDeleteConfirm: "Are you sure to batch delete these {count} records?", + selectRecordFirst: "Please select records first", + confirmTitle: "Confirm", + confirmDeleteBatch: "Are you sure you want to delete these {count} records?", + selectRecordsFirst: "Please select records first", + setDefault: "Set Default", + confirmSetDefault: "Are you sure to set as default?", + setAsDefault: "Set as Default", + disabledLabel: "Disabled", + confirmToggleStatus: "Are you sure to {action}?", + batchDelete: "Batch Delete", + sourcee: "Source", + clickToToggle: "Click to toggle enable/disable", + nickName: "Nickname", + avatar: "Avatar", + expires: " expires", + days: " days", + isDefault: "Is Default", + selectIsDefault: "Please select if default", + isDisabled: "Is Disabled", + fields: { + userId: "User ID", + pipelineName: "Pipeline Name", + keyword: "Keyword", + required: "This field is required", + pipelineContent: "Pipeline Content", + scheduledTaskCount: "Scheduled Task Count", + deployTaskCount: "Deployment Task Count", + remainingValidity: "Remaining Validity", + effectiveTime: "Effective time", + expiryTime: "Expiry Time", + status: "Status", + lastRun: "Last Run", + enabled: "Enabled", + enabledLabel: "Enabled", + disabledLabel: "Disabled", + group: "Group", + type: "Type", + order: "Order Number", + keepHistoryCount: "History Record Retention Count", + keepHistoryHelper: "Number of history records to keep; excess will be deleted", + createTime: "Creation Time", + updateTime: "Update Time", + triggerType: "Trigger Type", + pipelineId: "Pipeline Id", + nextRunTime: "Next Run Time", + projectName: "Project", + adminId: "Admin", + }, + enterName: "Please enter a name", + prompt: "Prompt", + domainCount: "Domain Count", + import: "Import", + export: "Export", + disable: "disable", + enable: "enable", + username: "Username", + password: "Password", + expired: "expired", + helpDocLink: "Help Docs", + suite: "Suite", + helpDoc: "Help Document", +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/cron.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/cron.ts new file mode 100644 index 000000000..3aae4ae35 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/cron.ts @@ -0,0 +1,7 @@ +export default { + cron: { + clearTip: "Clear Selection", + nextTrigger: "Next Trigger Time", + tip: "Please set a valid cron expression first", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/dashboard.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/dashboard.ts new file mode 100644 index 000000000..618e95a17 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/dashboard.ts @@ -0,0 +1,29 @@ +export default { + dashboard: { + greeting: "Hello, {name}, welcome to 【{site}】", + latestVersion: "Latest version: {version}", + validUntil: "Valid until:", + tutorialTooltip: "Click to view detailed tutorial", + tutorialText: "Only 3 steps to automatically apply and deploy certificates", + alertMessage: "Certificates and credentials are sensitive. Do not use untrusted online Certd services or images. Always self-host and use official release channels:", + helpDoc: "Help Docs", + pipelineCount: "Number of Certificate Pipelines", + noPipeline: "You have no certificate pipelines yet", + enabledCount: "Enabled", + disabledCount: "Disabled", + certCount: "Number of Certificates", + noCert: "You have no certificates yet", + manageCert: "View Certificates", + certExpiringCount: "Soon-to-Expire", + certExpiredCount: "Expired", + certNoExpireCount: "Not Expired", + createNow: "Create Now", + managePipeline: "Manage Pipelines", + pipelineStatus: "Pipeline Status", + recentRun: "Recent Run Statistics", + runCount: "Run Count", + expiringCerts: "Soon-to-Expire Certificates", + supportedTasks: "Overview of Supported Deployment Tasks", + changeLog: "Change Log", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/history.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/history.ts new file mode 100644 index 000000000..430ff44bc --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/history.ts @@ -0,0 +1,9 @@ +export default { + pipelineExecutionRecords: "Pipeline Execution Records", + confirmBatchDeleteContent: "Are you sure you want to batch delete these {count} records?", + pleaseSelectRecords: "Please select records first", + triggerTypes: { + manual: "Manual Execution", + timer: "Scheduled Execution", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/mine.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/mine.ts new file mode 100644 index 000000000..a66719dc0 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/mine.ts @@ -0,0 +1,26 @@ +export default { + accountInfo: "Account Information", + securitySettings: "Security & Settings", + confirmDisable2FA: "Are you sure you want to disable two-factor authentication login?", + twoFactorAuth: "2FA Two-Factor Authentication Login", + rebind: "Rebind", + twoFactorAuthHelper: "Enable or disable two-factor authentication login", + bindDevice: "Bind Device", + step1: "1. Install any authenticator app, for example:", + tooltipGoogleServiceError: "If you get a Google service not found error, you can install KK Google Assistant", + step2: "2. Scan the QR code to add the account", + step3: "3. Enter the verification code", + inputVerifyCode: "Please enter the verification code", + myInfo: "My Information", + user: { + greeting: "Hello", + profile: "Account Info", + logout: "Logout", + setting: { + grantSetting: "Grant Settings", + saveSuccess: "Save Success", + allowAdminViewCerts: "Allow Admin view and download Certs", + allowAdminViewCertsHelper: "Allow admin view and download all certificates", + }, + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/monitor.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/monitor.ts new file mode 100644 index 000000000..9e983ada8 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/monitor.ts @@ -0,0 +1,73 @@ +export default { + certificateRepo: { + title: "Certificate Repository", + sub: "Certificates generated from pipeline", + }, + actionImportBatch: "Batch Import", + actionSyncIp: "Sync IP", + modalTitleSyncIp: "Sync IP", + modalContentSyncIp: "Are you sure to sync IP?", + notificationSyncComplete: "Sync Complete", + actionCheckAll: "Check All", + modalTitleConfirm: "Confirm", + modalContentCheckAll: "Confirm to trigger checking all IP site's certificates?", + notificationCheckSubmitted: "Check task submitted", + notificationCheckDescription: "Please refresh later to see results", + tooltipCheckNow: "Check Now", + notificationCheckSubmittedPleaseRefresh: "Check task submitted, please refresh later", + columnId: "ID", + columnIp: "IP", + helperIpCname: "Supports entering CNAME domain name or source site domain name", + ruleIpRequired: "Please enter IP", + columnCertDomains: "Certificate Domains", + columnCertProvider: "Issuer", + columnCertStatus: "Certificate Status", + statusNormal: "Normal", + statusExpired: "Expired", + columnCertExpiresTime: "Certificate Expiration Time", + columnCheckStatus: "Check Status", + columnLastCheckTime: "Last Check Time", + columnSource: "Source", + sourceSync: "Sync", + sourceManual: "Manual", + sourceImport: "Import", + columnDisabled: "Enabled/Disabled", + columnRemark: "Remark", + certificateNotGenerated: "Certificate not yet generated, please run the pipeline first", + viewCertificateTitle: "View Certificate", + viewCert: { + title: "View Certificate", + }, + download: { + title: "Download Certificate", + }, + checkStatus: { + success: "Success", + checking: "Checking", + error: "Error", + }, + uploadCustomCert: "Upload Custom Certificate", + sourcePipeline: "Cert Apply Pipeline", + sourceManualUpload: "Hosted Pipeline", + domains: "Domains", + enterDomain: "Please enter domain", + validDays: "Valid Days", + effectiveTime: "Effective Time", + expireTime: "Expiration Time", + certIssuer: "Certificate Issuer", + applyTime: "Application Time", + relatedPipeline: "Related Pipeline", + statusSuccess: "Success", + statusChecking: "Checking", + statusError: "Error", + modal: { + close: "Close", + viewCertificateTitle: "View Certificate", + }, + domainList: { + title: "Domain List", + helper: "Format: domain:port:name:remark, one per line. Port and name are optional.\nExamples:\nwww.baidu.com:443:Baidu:remarkText\nwww.taobao.com::Taobao\nwww.google.com", + required: "Please enter domains to import", + placeholder: "www.baidu.com:443:Baidu\nwww.taobao.com::Taobao\nwww.google.com\n", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/navigation.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/navigation.ts new file mode 100644 index 000000000..e2f0c9ac3 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/navigation.ts @@ -0,0 +1,61 @@ +export default { + framework: { + title: "Framework", + home: "Home", + }, + title: "Certificate Automation", + pipeline: "Pipeline", + pipelineEdit: "Edit Pipeline", + history: "Execution History", + certStore: "Certificate Repository", + siteMonitor: "Site Certificate Monitor", + settings: "Settings", + accessManager: "Access Management", + subDomain: "Subdomain Delegation Settings", + pipelineGroup: "Pipeline Group Management", + openKey: "Open API Key", + notification: "Notification Settings", + siteMonitorSetting: "Site Monitor Settings", + userSecurity: "Security Settings", + userProfile: "Account Info", + userGrant: "Grant Delegation", + mySuite: "My Suite", + suiteBuy: "Suite Purchase", + myTrade: "My Orders", + paymentReturn: "Payment Return", + source: "Source Code", + github: "GitHub", + gitee: "Gitee", + sysResources: { + sysRoot: "System Management", + sysConsole: "Console", + sysSettings: "System Settings", + cnameSetting: "CNAME Service Settings", + emailSetting: "Email Server Settings", + siteSetting: "Site Personalization", + headerMenus: "Top Menu Settings", + sysAccess: "System-level Authorization", + sysPlugin: "Plugin Management", + sysPluginEdit: "Edit Plugin", + sysPluginConfig: "Certificate Plugin Configuration", + accountBind: "Account Binding", + permissionManager: "Permission Management", + roleManager: "Role Management", + userManager: "User Management", + suiteManager: "Suite Management", + suiteSetting: "Suite Settings", + orderManager: "Order Management", + userSuites: "User Suites", + netTest: "Network Test", + + enterpriseSetting: "Enterprise Settings", + projectManager: "Project Management", + projectUserManager: "Project User Management", + myProjectManager: "My Projects", + myProjectDetail: "Project Detail", + projectJoin: "Join Project", + currentProject: "Current Project", + projectMemberManager: "Project Member", + domainMonitorSetting: "Domain Monitor Settings", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/notification.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/notification.ts new file mode 100644 index 000000000..6f2ff6674 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/notification.ts @@ -0,0 +1,15 @@ +export default { + email: { + title: "Recipient Email", + helper: "Enter your recipient email addresses. Multiple addresses are supported.", + required: "This field is required", + }, + notificationDefault: "Use Default Notification", + notificationType: "Notification Type", + selectNotificationType: "Please select a notification type", + confirmSetDefaultNotification: "Are you sure to set as default notification?", + edit_notification: "Edit Notification", + other_notification_method: "Other Notification Method", + notificationName: "Notification Name", + helperNotificationName: "Fill freely, helps to distinguish when multiple notifications of the same type exist", +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/open.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/open.ts new file mode 100644 index 000000000..0629043fa --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/open.ts @@ -0,0 +1,14 @@ +export default { + scope: "Scope", + scopeOpenApiOnly: "Open API Only", + scopeFullAccount: "Full Account Permissions", + scopeHelper: "Open API only allows access to open APIs; full account permissions allow access to all APIs", + gen: { + text: "API Test", + title: "x-certd-token", + okText: "Confirm", + contentPart1: "Test the x-certd-token below, you can use it within 3 minutes to test ", + openApi: "Open API", + contentPart2: " request testing", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/pipeline.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/pipeline.ts new file mode 100644 index 000000000..51b7ab28a --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/pipeline.ts @@ -0,0 +1,123 @@ +export default { + hasExpired: "Expired", + subdomainHosting: "Subdomain Hosting", + subdomainHostingHint: "When your domain has subdomain hosting set, you need to create records here, otherwise certificate application will fail", + subdomainHosted: "Hosted Subdomain", + subdomainHelpText: "If you don't understand what subdomain hosting is,Do not set it randomly, as it may result in the inability to apply for the certificate. please refer to the documentation ", + subdomainHelpSupportStart: "Supports * wildcard, indicating that all subdomains of the domain are hosted (free subdomains)", + subdomainManagement: "Subdomain Management", + pipelinePage: { + addMore: "Add More Pipelines", + aliyunSubscriptionPipeline: "Aliyun Subscription Pipeline", + legoCertPipeline: "Lego Certificate Pipeline", + customPipeline: "Custom Pipeline", + batchAddPipeline: "Add Pipeline Use Template", + myPipelinesDesc: "Pipeline Mode: Apply -> Deploy -> Schedule", + }, + customPipeline: "Custom Pipeline", + createCertdPipeline: "Create Certificate Pipeline", + commercialCertHosting: "Commercial Certificate Hosting", + tooltip: { + manualUploadOwnCert: "Manually upload your own certificate for automatic deployment", + noAutoApplyCommercialCert: "Does not automatically apply for commercial certificates", + manualUploadOnUpdate: "Must manually upload once when the certificate is updated", + }, + table: { + confirmDeleteTitle: "Are you sure you want to delete?", + confirmDeleteMessage: "This will delete all data related to the pipeline, including execution history, certificate files, and certificate repository records.", + }, + play: { + runPipeline: "Run Pipeline", + confirm: "Confirm", + confirmTrigger: "Are you sure you want to trigger the run?", + pipelineStarted: "Pipeline has started running", + }, + actions: { + editPipeline: "Edit Pipeline", + editConfigGroup: "Modify Configuration/Group", + viewCertificate: "View Certificate", + downloadCertificate: "Download Certificate", + }, + pi: { + validTime: "Piepline Valid Time", + validTimeHelper: "Not filled in means permanent validity", + }, + types: { + certApply: "Cert Apply", + certUpload: "Cert Upload", + custom: "Custom", + template: "Template", + }, + myPipelines: "My Pipelines", + selectedCount: "Selected {count} items", + batchForceRerun: "Force Rerun", + batchRerun: "Rerun", + applyCertificate: "Apply for Certificate", + cronForm: { + title: "Scheduled Script", + helper: "Click the button above to select the time for daily execution.\nIt is recommended to run once a day. Tasks will be skipped if the certificate is not expiring.", + required: "This field is required", + }, + plugin: { + selectTitle: "Certificate Apply Plugin", + jsAcme: "JS-ACME: Easy to use, powerful features [Recommended]", + legoAcme: "Lego-ACME: Based on Lego, supports a wide range of DNS providers, suitable for users familiar with Lego", + aliyunOrder: "Aliyun-Order: Get certificate from Aliyun certificate order", + }, + pipelineForm: { + createTitle: "Create Certificate Pipeline", + moreParams: "More Parameters", + triggerCronTitle: "Scheduled Trigger", + triggerCronHelper: + "Click the button above to choose a daily execution time.\nIt is recommended to trigger once per day. The task will be skipped if the certificate has not expired and will not be executed repeatedly.", + notificationTitle: "Failure Notification", + notificationWhen: "Notification Timing", + notificationHelper: "Get real-time alerts when the task fails", + groupIdTitle: "Pipeline Group", + + addToMonitorEnabled: "Add to Cert Monitor", + addToMonitorDomains: "Add to Monitor Domains", + + webhookEnabled: "Webhook Enabled", + webhookEnabledHelper: "Support webhook trigger pipeline, please check webhook address in trigger source", + }, + template: { + title: "Pipeline Template", + edit: "Pipeline Template Edit", + importCreate: "Pipeline Batch Create", + // intro: "可根据模版批量创建流水线", + intro: "Batch create pipeline based on template", + createTemplate: "Create Template", + useTemplate: "Use This Template", + batchCreate: "Batch Create Pipeline", + singleCreate: "Create Single Pipeline", + templateName: "Template Name", + enterTemplateName: "Please enter template name", + copyPipelineConfig: "Copy this pipeline configuration as template source", + pipeline: "Pipeline", + }, + editSchedule: "Edit Schedule", + timerTrigger: "Timer Trigger", + schedule: "Schedule", + selectCron: "Please select a schedule Cron", + batchEditSchedule: "Batch Edit Schedule", + editTrigger: "Edit Trigger", + triggerName: "Trigger Name", + confirmDeleteTrigger: "Are you sure you want to delete this trigger?", + trigger_time: "Trigger Time", + start_time: "At Start", + success_time: "On Success", + fail_to_success_time: "Fail to Success", + fail_time: "On Failure", + helper_suggest_fail_only: "It is recommended to select only 'On Failure' and 'Fail to Success'", + notification_config: "Notification Configuration", + please_select_notification: "Please select a notification method", + please_select_type: "Please select type", + please_select_trigger_time: "Please select notification trigger time", + please_select_notification_config: "Please select notification configuration", + confirm_delete_trigger: "Are you sure you want to delete this trigger?", + dates: { + years: "{count} years", + months: "{count} months", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/project.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/project.ts new file mode 100644 index 000000000..3665d2efe --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/project.ts @@ -0,0 +1,36 @@ +export default { + ent: { + projectName: "Project Name", + projectDescription: "Project Description", + projectDetailManager: "Project Detail", + projectDetailDescription: "Manage Project Members", + projectPermission: "Permission", + permission: { + read: "Read", + write: "Write", + admin: "Admin", + }, + projectMemberStatus: "Member Status", + + isSystem: "Is System Project", + isSystemHelper: "System-level projects allow running admin plugins", + }, + project: { + noProjectJoined: "You haven't joined any projects yet", + applyToJoin: "Please apply to join a project to start using", + systemProjects: "System Project List", + createdAt: "Created At", + applyJoin: "Apply to Join", + noSystemProjects: "No system projects available", + fetchFailed: "Failed to fetch project list", + applySuccess: "Application successful, waiting for admin approval", + applyFailed: "Application failed, please try again later", + leave: "Leave Project", + leaveSuccess: "Leave project successful", + leaveFailed: "Leave project failed, please try again later", + applyJoinConfirm: "Are you sure you want to apply to join this project?", + leaveConfirm: "Are you sure you want to leave this project?", + viewDetail: "View Detail", + projectManage: "Project Manage", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/suite.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/suite.ts new file mode 100644 index 000000000..e1672107b --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/suite.ts @@ -0,0 +1,67 @@ +export default { + order: { + confirmTitle: "Order Confirmation", + package: "Package", + description: "Description", + specifications: "Specifications", + pipeline: "Pipeline", + domain: "Domain", + deployTimes: "Deployments", + monitorCount: "DomainMonitors", + duration: "Duration", + price: "Price", + paymentMethod: "Payment Method", + free: "Free", + unit: { + pieces: "pieces", + count: "count", + times: "times", + }, + }, + gift_package: "Gift Package", + package_name: "Package Name", + click_to_select: "Click to select", + please_select_package: "Please select a package", + package: "Package", + addon_package: "Addon Package", + domain_count: "Domain Count", + unit_count: "pcs", + pipeline_count: "Pipeline Count", + unit_item: "items", + deploy_count: "Deploy Count", + unit_times: "times", + monitor_count: "Certificate Monitor Count", + duration: "Duration", + active_time: "Activation Time", + expires_time: "Expiration Time", + is_present: "Is Present", + is_present_yes: "Yes", + is_present_no: "No", + ordera: "Order", + supportBuy: "Support Purchase", + intro: "Introduction", + packageContent: "Package Content", + maxDomainCount: "Max Domain Count", + maxPipelineCount: "Max Pipeline Count", + maxDeployCount: "Max Deploy Count", + maxMonitorCount: "Max Monitor Count", + price: "Price", + durationPrices: "Duration Prices", + packageName: "Package Name", + addon: "Addon", + typeHelper: "Suite: Only the most recently purchased one is active at a time\nAddon: Multiple can be purchased, effective immediately without affecting the suite\nThe quantities of suite and addon can be accumulated", + pipelineCount: "Pipeline Count", + unitPipeline: "pipelines", + deployCount: "Deployment Count", + unitDeploy: "times", + monitorCount: "Certificate Monitor Count", + unitCount: "pcs", + durationPriceTitle: "Duration and Price", + selectDuration: "Select Duration", + supportPurchase: "Support Purchase", + cannotPurchase: "Cannot Purchase", + shelfStatus: "Shelf Status", + onShelf: "On Shelf", + offShelf: "Off Shelf", + orderHelper: "Smaller values appear first", +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-authority.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-authority.ts new file mode 100644 index 000000000..7d101cd2e --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-authority.ts @@ -0,0 +1,30 @@ +export default { + max50Chars: "Maximum 50 characters", + permissionManagement: "Permission Management", + adda: "Add", + rootNode: "Root Node", + permissionName: "Permission Name", + enterPermissionName: "Please enter permission name", + permissionCode: "Permission Code", + enterPermissionCode: "Please enter permission code", + max100Chars: "Maximum 100 characters", + examplePermissionCode: "e.g.: sys:user:view", + sortOrder: "Sort Order", + sortRequired: "Sort order is required", + parentNode: "Parent Node", + roleManagement: "Role Management", + assignPermissions: "Assign Permissions", + roleName: "Role Name", + enterRoleName: "Please enter role name", + unlockLogin: "Unlock Login", + notice: "Notice", + confirmUnlock: "Are you sure you want to unlock this user's login?", + unlockSuccess: "Unlock successful", + enterUsername: "Please enter username", + modifyPasswordIfFilled: "Fill in to change the password", + emaila: "Email", + mobile: "Mobile", + validTime: "Valid Time", + remark: "Remark", + roles: "Roles", +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-cname.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-cname.ts new file mode 100644 index 000000000..66c1faaff --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-cname.ts @@ -0,0 +1,13 @@ +export default { + cnameTitle: "CNAME Service Configuration", + cnameDescription: + "The domain name configured here serves as a proxy for verifying other domains. When other domains apply for certificates, they map to this domain via CNAME for ownership verification. The advantage is that any domain can apply for a certificate this way without providing an AccessSecret.", + cnameLinkText: "CNAME principle and usage instructions", + cnameDomain: "CNAME Domain", + cnameDomainPlaceholder: "cname.handsfree.work", + cnameDomainHelper: + "Requires a domain registered with a DNS provider on the right (or you can transfer other domain DNS servers here).\nOnce the CNAME domain is set, it cannot be changed. It is recommended to use a first-level subdomain.", + cnameDomainPattern: "Domain name cannot contain *", + dnsProvider: "DNS Provider", + dnsProviderAuthorization: "DNS Provider Authorization", +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-plugin.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-plugin.ts new file mode 100644 index 000000000..a04d2ce9b --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-plugin.ts @@ -0,0 +1,43 @@ +export default { + titlea: "Title", + pluginFile: "Plugin File", + selectPluginFile: "Select plugin file", + overrideSameName: "Override same name", + override: "Override", + noOverride: "No override", + overrideHelper: "If a plugin with the same name exists, override it directly", + importPlugin: "Import Plugin", + customPlugin: "Custom Plugin", + pluginType: "Plugin Type", + auth: "Authorization", + dns: "DNS", + deployPlugin: "Deploy Plugin", + icon: "Icon", + pluginName: "Plugin Name", + pluginNameHelper: "Must be English letters or digits, camelCase with type prefix\nExample: AliyunDeployToCDN\nDo not modify name once plugin is used", + pluginNameRuleMsg: "Must be English letters or digits, camelCase with type prefix", + author: "Author", + authorHelper: "Used as prefix when uploading to plugin store, e.g., greper/pluginName", + authorRuleMsg: "Must be English letters or digits", + titleHelper: "Plugin name in Chinese", + descriptionHelper: "Description of the plugin", + builtIn: "Built-in", + custom: "Custom", + store: "Store", + version: "Version", + pluginDependencies: "Plugin Dependencies", + pluginDependenciesHelper: "Dependencies to install first in format: [author/]pluginName[:version]", + editableRunStrategy: "Editable Run Strategy", + editable: "Editable", + notEditable: "Not Editable", + runStrategy: "Run Strategy", + normalRun: "Normal Run", + skipOnSuccess: "Skip on success (Deploy task)", + defaultRunStrategyHelper: "Default run strategy", + enableDisable: "Enable/Disable", + confirmToggle: "Are you sure to", + pluginGroup: "Plugin Group", + pluginManagement: "Plugin Management", + pluginBetaWarning: "Custom plugins are in BETA and may have breaking changes in future", + pleaseSelectRecord: "Please select records first", +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-settings.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-settings.ts new file mode 100644 index 000000000..15b831e10 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/sys-settings.ts @@ -0,0 +1,184 @@ +export default { + sys: { + setting: { + baseSetting: "Base Settings", + registerSetting: "Register Settings", + safeSetting: "Safe Settings", + paymentSetting: "Payment Settings", + captchaSetting: "Captcha Setting", + pipelineSetting: "Pipeline Settings", + oauthSetting: "Login Settings", + networkSetting: "Network Settings", + adminModeSetting: "Admin Mode Settings", + adminModeHelper: "enterprise mode : allow to create and manage pipelines, roles, users, etc.\n saas mode : only allow to create and manage pipelines", + enterpriseMode: "Enterprise Mode", + saasMode: "SaaS Mode", + + showRunStrategy: "Show RunStrategy", + showRunStrategyHelper: "Allow modify the run strategy of the task", + + captchaEnabled: "Enable Login Captcha", + captchaHelper: "Whether to enable captcha verification for login", + captchaType: "Captcha Setting", + captchaTest: "Captcha Test", + // 保存后再点击测试,请务必测试通过了,再开启登录验证码 + captchaTestHelper: "Save and click test, please make sure the test is passed before enabling login captcha", + + pipelineValidTimeEnabled: "Enable Pipeline Valid Time", + pipelineValidTimeEnabledHelper: "Whether to enable the valid time of the pipeline", + certDomainAddToMonitorEnabled: "Add Domain to Certificate Monitor", + certDomainAddToMonitorEnabledHelper: "Whether to add the domain to the certificate monitor", + + defaultCertRenewDays: "Default Certificate Renew Days", + defaultCertRenewDaysHelper: "Default certificate renewal days, helpful for table list progress bar display", + defaultCertRenewDaysRecommend: "Recommend 15", + + pipelineMaxRunningCount: "Max Running Count", + pipelineMaxRunningCountHelper: "Max running count of the pipeline", + pipelineMaxRunningCountRecommend: "Recommend 5-15, default 10", + + acmeWalkFromAuthoritative: "Check TXT Record from Authoritative NS", + acmeWalkFromAuthoritativeHelper: "Apply certificate when whether to check the TXT record from authoritative NS server first", + + fixedCertExpireDays: "Fixed Cert Expire Days", + fixedCertExpireDaysHelper: "Fixed cert expiration days, helpful for table list progress bar display", + fixedCertExpireDaysRecommend: "Recommend 90", + + enableOauth: "Enable OAuth2 Login", + oauthEnabledHelper: "Whether to enable OAuth2 login", + oauthProviders: "OAuth2 Login Providers", + oauthType: "OAuth2 Login Type", + oauthConfig: "OAuth2 Login Config", + oauthProviderSelectorPlaceholder: "Not Configured", + oauthCallback: "Callback URL", + oauthCallbackHelper: "Copy this URL to the callback address of the OAuth2 login provider", + oauthCallbackCopy: "Copy Callback URL", + oauthAutoRegister: "Auto Register User", + oauthAutoRegisterCheckedText: "Auto Register", + oauthAutoRegisterUnCheckedText: "User Select", + oauthAutoRegisterHelper: "Whether to auto register user when login", + oauthAutoRedirect: "Auto Redirect to OAuth2 Login", + oauthAutoRedirectHelper: "Whether to auto redirect to OAuth2 login when login (using the first enabled OAuth2 login type)", + oauthOnly: "OAuth2 Login Only", + oauthOnlyHelper: "Whether to only allow OAuth2 login, disable password login", + enablePasskey: "Enable Passkey Login", + passkeyHostnameNotSame: "Passkey hostname must be the same as the main domain", + passkeyEnabledHelper: + "1、Site must enable https \n2、Domain name must not change, otherwise the registered passkey will be invalid \n3、Domain name must be the same as the main domain, otherwise the registered passkey will be invalid", + + email: { + templates: "Email Templates", + templateType: "Template Type", + templateProvider: "Template Config", + + templateSetting: "Email Template Setting", + serverSetting: "Email Server Setting", + sendTest: "Send Test", + + templateProviderSelectorPlaceholder: "Not Configured", + }, + notice: "System Notice", + noticeHelper: "System notice, will be displayed on the login page", + noticePlaceholder: "System notice", + + reverseProxy: "Reverse Proxy List", + reverseProxyHelper: "Reverse proxy for ACME address, used when applying for certificate", + reverseProxyPlaceholder: "http://le.px.handfree.work", + reverseProxyEmpty: "No reverse proxy list configured", + environmentVars: "Environment Variables", + environmentVarsHelper: "configure the runtime environment variables, one per line, format: KEY=VALUE", + + bindUrl: "Bind URL", + }, + }, + icpRegistrationNumber: "ICP Registration Number", + icpPlaceholder: "Guangdong ICP xxxxxxx Number", + publicSecurityRegistrationNumber: "Public Security Registration Number", + publicSecurityPlaceholder: "Beijing Public Security xxxxxxx Number", + enableAssistant: "Enable Assistant", + allowCrawlers: "Allow Crawlers", + httpProxy: "HTTP Proxy", + httpProxyPlaceholder: "http://192.168.1.2:18010/", + httpProxyHelper: "Configure when some websites are blocked", + httpsProxy: "HTTPS Proxy", + httpsProxyPlaceholder: "http://192.168.1.2:18010/", + saveThenTestTitle: "Save first, then click test", + httpsProxyHelper: "Usually both proxies are the same, save first then test", + dualStackNetwork: "Dual Stack Network", + ipv4Priority: "IPv4 Priority", + ipv6Priority: "IPv6 Priority", + dualStackNetworkHelper: "If IPv6 priority is selected, enable IPv6 in docker-compose.yaml", + enableCommonCnameService: "Enable Public CNAME Service", + commonCnameHelper: "Allow use of public CNAME service. If disabled and no custom CNAME service is set, CNAME proxy certificate application will not work.", + enableCommonSelfServicePasswordRetrieval: "Enable self-service password recovery", + saveButton: "Save", + stopSuccess: "Stopped successfully", + google: "Google", + baidu: "Baidu", + testFailed: "Test Failed", + testCompleted: "Test Completed", + manageOtherUserPipeline: "Manage other users' pipelines", + limitUserPipelineCount: "Limit user pipeline count", + limitUserPipelineCountHelper: "0 means no limit", + enableSelfRegistration: "Enable self-registration", + enableUserValidityPeriod: "Enable user validity period", + userValidityPeriodHelper: "Users can use normally within validity; pipelines disabled after expiry", + enableUsernameRegistration: "Enable username registration", + enableEmailRegistration: "Enable email registration", + proFeature: "Pro feature", + emailServerSetup: "Set up email server", + enableSmsLoginRegister: "Enable SMS login and registration", + commFeature: "Commercial feature", + smsProvider: "SMS provider", + aliyunSms: "Aliyun SMS", + tencentSms: "Tencent SMS", + yfySms: "YFY SMS", + smsTest: "SMS test", + testMobilePlaceholder: "Enter test mobile number", + saveThenTest: "Save first then test", + enterTestMobile: "Please enter test mobile number", + sendSuccess: "Sent successfully", + atLeastOneLoginRequired: "At least one of password login or SMS login must be enabled", + siteHide: "Site Hide", + enableSiteHide: "Enable Site Hide", + siteHideDescription: "You can disable site accessibility normally and enable it when needed to enhance site security", + randomAddress: "Random Address", + siteHideUrlHelper: "After the site is hidden, you need to visit this URL to unlock to access normally", + fullUnlockUrl: "Full Unlock URL", + saveThisUrl: "Please save this URL carefully", + unlockPassword: "Unlock Password", + unlockPasswordHelper: "Password needed to unlock the hide; set on first time or reset when filled", + autoHideTime: "Auto Hide Time", + autoHideTimeHelper: "Minutes without requests before auto hiding", + hideOpenApi: "Hide Open API", + hideOpenApiHelper: "Whether to hide open APIs; whether to hide /api/v1 prefixed endpoints", + hideSiteImmediately: "Hide Site Immediately", + hideImmediately: "Hide Immediately", + confirmHideSiteTitle: "Are you sure to hide the site immediately?", + confirmHideSiteContent: "After hiding, the site will be inaccessible. Please operate cautiously.", + siteHiddenSuccess: "Site has been hidden", + emailServerSettings: "Email Server Settings", + setEmailSendingServer: "Set the email sending server", + useCustomEmailServer: "Use Custom Email Server", + smtpDomain: "SMTP Domain", + pleaseEnterSmtpDomain: "Please enter SMTP domain or IP", + smtpPort: "SMTP Port", + pleaseEnterSmtpPort: "Please enter SMTP port", + pleaseEnterUsername: "Please enter username", + pleaseEnterPassword: "Please enter password", + qqEmailAuthCodeHelper: "If using QQ email, get an authorization code in QQ email settings as the password", + senderEmailHelper: "You can use the format: Name to set the sender name, e.g.: autossl", + senderEmail: "Sender Email", + pleaseEnterSenderEmail: "Please enter sender email", + useSsl: "Use SSL", + sslPortNote: "SSL and non-SSL SMTP ports are different, please adjust port accordingly", + ignoreCertValidation: "Ignore Certificate Validation", + useOfficialEmailServer: "Use Official Email Server", + useOfficialEmailServerHelper: "Send emails directly using the official server to avoid complicated setup", + testReceiverEmail: "Test Receiver Email", + pleaseEnterTestReceiverEmail: "Please enter test receiver email", + saveBeforeTest: "Save before testing", + sendFailHelpDoc: "Failed to send??? ", + emailConfigHelpDoc: "Email configuration help document", + tryOfficialEmailServer: "You can also try using the official email server ↗↗↗↗↗↗↗↗", +}; diff --git a/packages/ui/certd-client/src/locales/langs/en-US/certd/tutorial.ts b/packages/ui/certd-client/src/locales/langs/en-US/certd/tutorial.ts new file mode 100644 index 000000000..f23fc4a44 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/en-US/certd/tutorial.ts @@ -0,0 +1,7 @@ +export default { + steps: { + createPipeline: "Create Certificate Pipeline", + addTask: "Add Deployment Task", + scheduledRun: "Scheduled Run", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts index 7a12dfe30..e5a138949 100644 --- a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts @@ -1,873 +1,46 @@ -//注意: @符号是保留字符,需要用{'@'}替换, AI请务必提醒我修改 +import common from "./certd/common"; +import navigation from "./certd/navigation"; +import dashboard from "./certd/dashboard"; +import pipeline from "./certd/pipeline"; +import history from "./certd/history"; +import monitor from "./certd/monitor"; +import certdomain from "./certd/cert-domain"; +import cname from "./certd/cname"; +import access from "./certd/access"; +import open from "./certd/open"; +import mine from "./certd/mine"; +import notification from "./certd/notification"; +import addon from "./certd/addon"; +import suite from "./certd/suite"; +import project from "./certd/project"; +import syssettings from "./certd/sys-settings"; +import sysplugin from "./certd/sys-plugin"; +import sysauthority from "./certd/sys-authority"; +import syscname from "./certd/sys-cname"; +import tutorial from "./certd/tutorial"; +import cron from "./certd/cron"; + +// Note: @ is reserved in locale messages; use {'@'} when needed. export default { - app: { - crud: { - i18n: { - name: "姓名", - city: "城市", - status: "状态", - }, - }, - login: { - logoutTip: "确认", - logoutMessage: "确定要注销登录吗?", - }, - }, - fs: { - rowHandle: { - title: "操作列", - }, - }, - pipelinePage: { - addMore: "添加更多流水线", - aliyunSubscriptionPipeline: "阿里云订阅流水线", - legoCertPipeline: "Lego证书流水线", - customPipeline: "自定义流水线", - batchAddPipeline: "模版批量创建流水线", - myPipelinesDesc: "流水线模式:申请证书->部署证书->定时运行", - }, - order: { - confirmTitle: "订单确认", - package: "套餐", - description: "说明", - specifications: "规格", - pipeline: "流水线", - domain: "域名", - deployTimes: "部署次数", - monitorCount: "域名监控数", - duration: "时长", - price: "价格", - paymentMethod: "支付方式", - free: "免费", - unit: { - pieces: "条", - count: "个", - times: "次", - }, - }, - framework: { - title: "框架", - home: "首页", - }, - helpDocLink: "帮助文档", - title: "证书自动化", - pipeline: "证书自动化流水线", - pipelineEdit: "编辑流水线", - history: "执行历史记录", - certStore: "证书仓库", - siteMonitor: "站点证书监控", - settings: "设置", - accessManager: "授权管理", - cnameRecord: "CNAME记录管理", - subDomain: "子域名托管设置", - pipelineGroup: "流水线分组管理", - openKey: "开放接口密钥", - notification: "通知设置", - siteMonitorSetting: "站点监控设置", - userSecurity: "认证安全设置", - userProfile: "账号信息", - userGrant: "授权委托", - suite: "套餐", - mySuite: "我的套餐", - suiteBuy: "套餐购买", - myTrade: "我的订单", - paymentReturn: "支付返回", - hasExpired: "已过期", - - user: { - greeting: "您好", - profile: "账号信息", - logout: "注销登录", - - setting: { - grantSetting: "授权委托设置", - saveSuccess: "保存成功", - allowAdminViewCerts: "授权管理员查看和下载证书", - allowAdminViewCertsHelper: "允许管理员查看和下载我的所有证书", - }, - }, - dashboard: { - greeting: "您好,{name},欢迎使用 【{site}】", - latestVersion: "最新版本: {version}", - validUntil: "账户有效期:", - tutorialTooltip: "点击查看详细教程", - tutorialText: "仅需3步,全自动申请部署证书", - alertMessage: "证书和授权为敏感信息,不要使用来历不明的在线Certd服务和镜像,以免泄露;请务必私有化部署使用,认准官方版本发布渠道:", - helpDoc: "帮助文档", - pipelineCount: "证书流水线数量", - enabledCount: "已启用", - disabledCount: "已禁用", - noPipeline: "您还没有证书流水线", - certCount: "证书数量", - certExpiringCount: "即将过期", - certExpiredCount: "已过期", - certNoExpireCount: "未过期", - noCert: "还没有证书", - manageCert: "查看证书", - - createNow: "立即创建", - managePipeline: "管理流水线", - pipelineStatus: "流水线状态", - recentRun: "最近运行统计", - runCount: "运行次数", - expiringCerts: "最快到期证书", - supportedTasks: "已支持的部署任务总览", - changeLog: "更新日志", - }, - steps: { - createPipeline: "创建证书流水线", - addTask: "添加部署任务", - scheduledRun: "定时运行", - }, - customPipeline: "自定义流水线", - createCertdPipeline: "创建证书流水线", - commercialCertHosting: "已有证书托管", - tooltip: { - manualUploadOwnCert: "手动上传自有证书,执行自动部署", - noAutoApplyCommercialCert: "并不能自动申请商业证书", - manualUploadOnUpdate: "证书有更新时,都需要手动上传一次", - }, - table: { - confirmDeleteTitle: "确定要删除吗?", - confirmDeleteMessage: "将删除该流水线相关的所有数据,包括执行历史、证书文件、证书仓库记录等", - }, - play: { - runPipeline: "运行流水线", - confirm: "确认", - confirmTrigger: "确定要触发运行吗?", - pipelineStarted: "管道已经开始运行", - }, - actions: { - editPipeline: "编辑流水线", - editConfigGroup: "修改配置/分组", - viewCertificate: "查看证书", - downloadCertificate: "下载证书", - }, - fields: { - userId: "用户Id", - pipelineName: "流水线名称", - keyword: "关键字", - required: "此项必填", - pipelineContent: "流水线内容", - scheduledTaskCount: "定时任务数", - deployTaskCount: "部署任务数", - remainingValidity: "到期剩余", - effectiveTime: "生效时间", - expiryTime: "过期时间", - status: "状态", - lastRun: "最后运行", - enabled: "启用", - enabledLabel: "启用", - disabledLabel: "禁用", - group: "分组", - type: "类型", - order: "排序号", - keepHistoryCount: "历史记录保持数", - keepHistoryHelper: "历史记录保持条数,多余的会被删除", - createTime: "创建时间", - updateTime: "更新时间", - triggerType: "触发类型", - pipelineId: "流水线Id", - nextRunTime: "下次运行时间", - projectName: "项目", - adminId: "管理员", - }, - pi: { - validTime: "流水线有效期", - validTimeHelper: "不填则为永久有效", - }, - types: { - certApply: "证书申请", - certUpload: "证书上传", - custom: "自定义", - template: "模版", - }, - myPipelines: "我的流水线", - selectedCount: "已选择 {count} 项", - batchDelete: "批量删除", - batchForceRerun: "强制重新运行", - batchRerun: "重新运行", - applyCertificate: "申请证书", - pipelineExecutionRecords: "流水线执行记录", - confirm: "确认", - confirmBatchDeleteContent: "确定要批量删除这{count}条记录吗", - deleteSuccess: "删除成功", - pleaseSelectRecords: "请先勾选记录", - triggerTypes: { - manual: "手动执行", - timer: "定时执行", - }, - sysResources: { - sysRoot: "系统管理", - sysConsole: "控制台", - sysSettings: "系统设置", - cnameSetting: "CNAME服务设置", - emailSetting: "邮件服务器设置", - siteSetting: "站点个性化", - headerMenus: "顶部菜单设置", - sysAccess: "系统级授权", - sysPlugin: "插件管理", - sysPluginEdit: "编辑插件", - sysPluginConfig: "证书插件配置", - accountBind: "账号绑定", - permissionManager: "权限管理", - roleManager: "角色管理", - userManager: "用户管理", - suiteManager: "套餐管理", - suiteSetting: "套餐设置", - orderManager: "订单管理", - userSuites: "用户套餐", - netTest: "网络测试", - enterpriseManager: "企业管理设置", - projectManager: "项目管理", - enterpriseSetting: "企业设置", - myProjectManager: "我的项目", - myProjectDetail: "项目详情", - projectJoin: "加入项目", - currentProject: "当前项目", - projectMemberManager: "项目成员管理", - domainMonitorSetting: "域名监控设置", - jobHistory: "监控执行记录", - }, - certificateRepo: { - title: "证书仓库", - sub: "从流水线生成的证书", - }, - - certificateNotGenerated: "证书还未生成,请先运行流水线", - viewCertificateTitle: "查看证书", - close: "关闭", - viewCert: { - title: "查看证书", - }, - download: { - title: "下载证书", - }, - source: "源码", - github: "github", - gitee: "gitee", - cron: { - clearTip: "清除选择", - nextTrigger: "下次触发时间", - tip: "请先设置正确的cron表达式", - }, - cronForm: { - title: "定时脚本", - helper: "点击上面的按钮,选择每天几点定时执行。\n建议设置为每天触发一次,证书未到期之前任务会跳过,不会重复执行", - required: "此项必填", - }, - email: { - title: "收件邮箱", - helper: "输入你的收件邮箱地址,支持多个邮箱", - required: "此项必填", - }, - plugin: { - selectTitle: "证书申请插件", - jsAcme: "JS-ACME:使用简单方便,功能强大【推荐】", - legoAcme: "Lego-ACME:基于Lego实现,支持海量DNS提供商,熟悉LEGO的用户可以使用", - aliyunOrder: "Aliyun-Order:从阿里云证书订单中获取证书更新", - }, - pipelineForm: { - createTitle: "创建证书流水线", - moreParams: "更多参数", - triggerCronTitle: "定时触发", - triggerCronHelper: "点击上面的按钮,选择每天几点定时执行。\n建议设置为每天触发一次,证书未到期之前任务会跳过,不会重复执行", - notificationTitle: "失败通知", - notificationWhen: "通知时机", - notificationHelper: "任务执行失败实时提醒", - groupIdTitle: "流水线分组", - addToMonitorEnabled: "添加到证书监控", - addToMonitorDomains: "添加到监控域名", - webhookEnabled: "开启Webhook", - webhookEnabledHelper: "支持webhook触发流水线,请在触发源中查看webhook地址", - }, - notificationDefault: "使用默认通知", - checkStatus: { - success: "成功", - checking: "检查中", - error: "异常", - }, - domainList: { - title: "域名列表", - helper: "格式【域名:端口:名称:备注】,一行一个,其中端口、名称、备注可以省略\n比如:\nwww.baidu.com:443:百度:备注文本\nwww.taobao.com::淘宝\nwww.google.com", - required: "请输入要导入的域名", - placeholder: "www.baidu.com:443:百度:备注文本\nwww.taobao.com::淘宝\nwww.google.com\n", - }, - accountInfo: "账号信息", - securitySettings: "认证安全设置", - confirmDisable2FA: "确定要关闭多重验证登录吗?", - disabledSuccess: "关闭成功", - saveSuccess: "保存成功", - twoFactorAuth: "2FA多重验证登录", - rebind: "重新绑定", - twoFactorAuthHelper: "是否开启多重验证登录", - bindDevice: "绑定设备", - step1: "1. 安装任意一款支持Authenticator的验证APP,比如:", - tooltipGoogleServiceError: "如果报没有找到谷歌服务的错误,您可以安装KK谷歌助手", - step2: "2. 扫描二维码添加账号", - step3: "3. 输入验证码", - inputVerifyCode: "请输入验证码", - cancel: "取消", - authorizationManagement: "授权管理", - manageThirdPartyAuth: "管理第三方系统授权信息", - name: "名称", - pleaseEnterName: "请填写名称", - nameHelper: "随便填,当多个相同类型的授权时,便于区分", - level: "级别", - system: "系统", - usera: "用户", - nickName: "昵称", - max50Chars: "最大50个字符", - myInfo: "我的信息", - - save: "保存", - editSchedule: "修改定时", - timerTrigger: "定时触发", - schedule: "定时", - webhook: "Webhook", - selectCron: "请选择定时Cron", - batchEditSchedule: "批量修改定时", - editTrigger: "编辑触发器", - triggerName: "触发器名称", - requiredField: "此项必填", - type: "类型", - enterName: "请输入名称", - confirmDeleteTrigger: "确定要删除此触发器吗?", - notificationType: "通知类型", - selectNotificationType: "请选择通知类型", - notificationName: "通知名称", - helperNotificationName: "随便填,当多个相同类型的通知时,便于区分", - isDefault: "是否默认", - yes: "是", - no: "否", - selectIsDefault: "请选择是否默认", - prompt: "提示", - confirmSetDefaultNotification: "确定设置为默认通知?", - test: "测试", - scope: "权限范围", - scopeOpenApiOnly: "仅开放接口", - scopeFullAccount: "账户所有权限", - required: "此项必填", - scopeHelper: "仅开放接口只可以访问开放接口,账户所有权限可以访问所有接口", - add: "生成新的Key", - gen: { - text: "接口测试", - title: "x-certd-token", - okText: "确定", - contentPart1: "测试x-certd-token如下,您可以在3分钟内使用它进行", - openApi: "开放接口", - contentPart2: "请求测试", - }, - pending_cname_setup: "待设置CNAME", - validating: "验证中", - validation_successful: "验证成功", - validation_failed: "验证失败", - validation_timed_out: "验证超时", - proxied_domain: "被代理域名", - host_record: "主机记录", - please_set_cname: "请设置CNAME", - cname_service: "CNAME服务", - default_public_cname: "默认提供公共CNAME服务,您还可以", - customize_cname: "自定义CNAME服务", - public_cname: "公共CNAME", - custom_cname: "自定义CNAME", - validate: "验证", - validation_started: "开始验证,请耐心等待", - click_to_validate: "点击验证", - all: "全部", - cname_feature_guide: "CNAME功能原理及使用说明", - batch_delete: "批量删除", - confirm_delete_count: "确定要批量删除这{count}条记录吗", - delete_successful: "删除成功", - please_select_records: "请先勾选记录", - edit_notification: "编辑通知", - other_notification_method: "其他通知方式", - trigger_time: "触发时机", - start_time: "开始时", - success_time: "成功时", - fail_to_success_time: "失败转成功时", - fail_time: "失败时", - helper_suggest_fail_only: "建议仅选择'失败时'和'失败转成功'两种即可", - notification_config: "通知配置", - please_select_notification: "请选择通知方式", - please_select_type: "请选择类型", - please_select_trigger_time: "请选择通知时机", - please_select_notification_config: "请选择通知配置", - confirm_delete_trigger: "确定要删除此触发器吗?", - gift_package: "赠送套餐", - package_name: "套餐名称", - click_to_select: "点击选择", - please_select_package: "请选择套餐", - package: "套餐", - addon_package: "加量包", - domain_count: "域名数量", - unit_count: "个", - field_required: "此项必填", - pipeline_count: "流水线数量", - unit_item: "条", - deploy_count: "部署次数", - unit_times: "次", - monitor_count: "证书监控数量", - duration: "时长", - status: "状态", - active_time: "激活时间", - expires_time: "过期时间", - is_present: "是否赠送", - is_present_yes: "是", - is_present_no: "否", - basicInfo: "基础信息", - titlea: "名称", - disabled: "禁用", - ordera: "排序", - supportBuy: "支持购买", - intro: "介绍", - packageContent: "套餐内容", - maxDomainCount: "最大域名数", - maxPipelineCount: "最大流水线数", - maxDeployCount: "最大部署数", - maxMonitorCount: "最大监控数", - price: "价格", - durationPrices: "时长价格", - packageName: "套餐名称", - addon: "加量包", - typeHelper: "套餐:同一时间只有最新购买的一个生效\n加量包:可购买多个,购买后立即生效,不影响套餐\n套餐和加量包数量可叠加", - domainCount: "域名数量", - pipelineCount: "流水线数量", - unitPipeline: "条", - deployCount: "部署次数", - unitDeploy: "次", - monitorCount: "证书监控数量", - unitCount: "个", - durationPriceTitle: "时长及价格", - selectDuration: "选择时长", - supportPurchase: "支持购买", - cannotPurchase: "不能购买", - shelfStatus: "上下架", - onShelf: "上架", - offShelf: "下架", - orderHelper: "越小越靠前", - description: "说明", - createTime: "创建时间", - updateTime: "更新时间", - mainDomain: "主域名", - edit: "编辑", - groupName: "分组名称", - enterGroupName: "请输入分组名称", - subdomainHosting: "子域名托管", - subdomainHostingHint: "当你的域名设置了子域名托管,需要在此处创建记录,否则申请证书将失败", - batchDeleteConfirm: "确定要批量删除这{count}条记录吗", - selectRecordFirst: "请先勾选记录", - subdomainHosted: "托管的子域名", - subdomainHelpText: "如果您不理解什么是子域托管,请不要随意设置(可能导致证书无法申请,以前设置过的cname记录也需要重新配置),可以参考文档", - subdomainHelpSupportStart: "支持*号通配符,表示该域名下的子域名都是托管的(免费子域名)", - subdomainManagement: "子域管理", - isDisabled: "是否禁用", - enabled: "启用", - uploadCustomCert: "上传自定义证书", - sourcee: "来源", - sourcePipeline: "证书流水线", - sourceManualUpload: "托管流水线", - domains: "域名", - enterDomain: "请输入域名", - validDays: "有效天数", - expires: "过期", - days: "天", - effectiveTime: "生效时间", - expireTime: "过期时间", - certIssuer: "证书颁发机构", - applyTime: "申请时间", - relatedPipeline: "关联流水线", - statusSuccess: "成功", - statusChecking: "检查中", - statusError: "异常", - actionImportBatch: "批量导入", - actionSyncIp: "同步IP", - modalTitleSyncIp: "同步IP", - modalContentSyncIp: "确定要同步IP吗?", - notificationSyncComplete: "同步完成", - actionCheckAll: "检查全部", - modalTitleConfirm: "确认", - modalContentCheckAll: "确认触发检查全部IP站点的证书吗?", - notificationCheckSubmitted: "检查任务已提交", - notificationCheckDescription: "请稍后刷新页面查看结果", - tooltipCheckNow: "立即检查", - notificationCheckSubmittedPleaseRefresh: "检查任务已提交,请稍后刷新查看结果", - columnId: "ID", - columnIp: "IP", - helperIpCname: "也支持填写CNAME域名,源站域名", - ruleIpRequired: "请输入IP", - columnCertDomains: "证书域名", - columnCertProvider: "颁发机构", - columnCertStatus: "证书状态", - statusNormal: "正常", - statusExpired: "过期", - columnCertExpiresTime: "证书到期时间", - expired: "过期", - columnCheckStatus: "检查状态", - columnLastCheckTime: "上次检查时间", - columnSource: "来源", - sourceSync: "同步", - sourceManual: "手动", - sourceImport: "导入", - columnDisabled: "禁用启用", - columnRemark: "备注", - pluginFile: "插件文件", - selectPluginFile: "选择插件文件", - overrideSameName: "同名覆盖", - override: "覆盖", - noOverride: "不覆盖", - overrideHelper: "如果已有相同名称插件,直接覆盖", - importPlugin: "导入插件", - operationSuccess: "操作成功", - customPlugin: "自定义插件", - import: "导入", - export: "导出", - pluginType: "插件类型", - auth: "授权", - dns: "DNS", - deployPlugin: "部署插件", - icon: "图标", - pluginName: "插件名称", - pluginNameHelper: "必须为英文或数字,驼峰命名,类型作为前缀\n示例:AliyunDeployToCDN\n插件使用后,名称不可修改", - pluginNameRuleMsg: "必须为英文或数字,驼峰命名,类型作为前缀", - author: "作者", - authorHelper: "上传插件市场时作为前缀,如 greper/pluginName", - authorRuleMsg: "必须为英文或数字", - titleHelper: "插件中文名称", - descriptionHelper: "插件描述", - builtIn: "内置", - custom: "自定义", - store: "市场", - version: "版本", - pluginDependencies: "插件依赖", - pluginDependenciesHelper: "格式: [作者/]插件名[:版本],需先安装依赖插件", - editableRunStrategy: "可编辑运行策略", - editable: "可编辑", - notEditable: "不可编辑", - runStrategy: "运行策略", - normalRun: "正常运行", - skipOnSuccess: "成功跳过(部署任务)", - defaultRunStrategyHelper: "默认运行策略", - enableDisable: "启用/禁用", - clickToToggle: "点击切换启用/禁用", - confirmToggle: "确认要", - disable: "禁用", - enable: "启用", - pluginGroup: "插件分组", - icpRegistrationNumber: "ICP备案号", - icpPlaceholder: "粤ICP备xxxxxxx号", - publicSecurityRegistrationNumber: "网安备案号", - publicSecurityPlaceholder: "京公网安备xxxxxxx号", - enableAssistant: "开启小助手", - allowCrawlers: "允许爬虫", - httpProxy: "HTTP代理", - httpProxyPlaceholder: "http://192.168.1.2:18010/", - httpProxyHelper: "当某些网站被墙时可以配置", - httpsProxy: "HTTPS代理", - httpsProxyPlaceholder: "http://192.168.1.2:18010/", - saveThenTestTitle: "保存后,再点击测试", - testButton: "测试", - httpsProxyHelper: "一般这两个代理填一样的,保存后再测试", - dualStackNetwork: "双栈网络", - default: "默认", - ipv4Priority: "IPV4优先", - ipv6Priority: "IPV6优先", - dualStackNetworkHelper: "如果选择IPv6优先,需要在docker-compose.yaml中启用ipv6", - enableCommonCnameService: "启用公共CNAME服务", - commonCnameHelper: "是否可以使用公共CNAME服务,如果禁用,且没有设置自定义CNAME服务,则无法使用CNAME代理方式申请证书", - enableCommonSelfServicePasswordRetrieval: "启用自助找回密码", - saveButton: "保存", - stopSuccess: "停止成功", - google: "Google", - baidu: "百度", - success: "成功", - testFailed: "测试失败", - testCompleted: "测试完成", - manageOtherUserPipeline: "管理其他用户流水线", - limitUserPipelineCount: "限制用户流水线数量", - limitUserPipelineCountHelper: "0为不限制", - enableSelfRegistration: "开启自助注册", - enableUserValidityPeriod: "开启用户有效期", - userValidityPeriodHelper: "有效期内用户可正常使用,失效后用户的流水线将被停用", - enableUsernameRegistration: "开启用户名注册", - enableEmailRegistration: "开启邮箱注册", - proFeature: "Certd专业版功能", - emailServerSetup: "设置邮箱服务器", - enableSmsLoginRegister: "开启手机号登录、注册", - defaultLoginType: "默认登录方式", - commFeature: "Certd商业版功能", - smsProvider: "短信提供商", - aliyunSms: "阿里云短信", - tencentSms: "腾讯云短信", - yfySms: "易发云短信", - smsTest: "短信测试", - testMobilePlaceholder: "输入测试手机号", - saveThenTest: "保存后再点击测试", - enterTestMobile: "请输入测试手机号", - sendSuccess: "发送成功", - atLeastOneLoginRequired: "密码登录和手机号登录至少开启一个", - fieldRequired: "此项必填", - siteHide: "站点隐藏", - enableSiteHide: "启用站点隐藏", - siteHideDescription: "可以在平时关闭站点的可访问性,需要时再打开,增强站点安全性", - helpDoc: "帮助说明", - randomAddress: "随机地址", - siteHideUrlHelper: "站点被隐藏后,需要访问此URL解锁,才能正常访问", - fullUnlockUrl: "完整解除隐藏地址", - saveThisUrl: "请保存好此地址", - unlockPassword: "解除密码", - unlockPasswordHelper: "解除隐藏时需要输入密码,第一次需要设置密码,填写则重置密码", - autoHideTime: "自动隐藏时间", - autoHideTimeHelper: "多少分钟内无请求自动隐藏", - hideOpenApi: "隐藏开放接口", - hideOpenApiHelper: "是否隐藏开放接口,是否同时隐藏/api/v1开头的接口", - hideSiteImmediately: "立即隐藏站点", - hideImmediately: "立即隐藏", - confirmHideSiteTitle: "确定要立即隐藏站点吗?", - confirmHideSiteContent: "隐藏后,将无法访问站点,请谨慎操作", - siteHiddenSuccess: "站点已隐藏", - emailServerSettings: "邮件服务器设置", - setEmailSendingServer: "设置邮件发送服务器", - useCustomEmailServer: "使用自定义邮件服务器", - smtpDomain: "SMTP域名", - pleaseEnterSmtpDomain: "请输入smtp域名或ip", - smtpPort: "SMTP端口", - pleaseEnterSmtpPort: "请输入smtp端口号", - username: "用户名", - pleaseEnterUsername: "请输入用户名", - password: "密码", - pleaseEnterPassword: "请输入密码", - qqEmailAuthCodeHelper: "如果是qq邮箱,需要到qq邮箱的设置里面申请授权码作为密码", - senderEmailHelper: "您可以使用 名称<邮箱> 的格式,来修改发件人名称,例如: autossl", - senderEmail: "发件邮箱", - pleaseEnterSenderEmail: "请输入发件邮箱", - useSsl: "是否ssl", - sslPortNote: "ssl和非ssl的smtp端口是不一样的,注意修改端口", - ignoreCertValidation: "忽略证书校验", - useOfficialEmailServer: "使用官方邮件服务器", - useOfficialEmailServerHelper: "使用官方邮箱服务器直接发邮件,免除繁琐的配置", - testReceiverEmail: "测试收件邮箱", - pleaseEnterTestReceiverEmail: "请输入测试收件邮箱", - saveBeforeTest: "保存后再点击测试", - sendFailHelpDoc: "发送失败???", - emailConfigHelpDoc: "邮件配置帮助文档", - tryOfficialEmailServer: "您还可以试试使用官方邮件服务器↗↗↗↗↗↗↗↗", - pluginManagement: "插件管理", - pluginBetaWarning: "自定义插件处于BETA测试版,后续可能会有破坏性变更", - pleaseSelectRecord: "请先勾选记录", - permissionManagement: "权限管理", - adda: "添加", - rootNode: "根节点", - permissionName: "权限名称", - enterPermissionName: "请输入权限名称", - permissionCode: "权限代码", - enterPermissionCode: "请输入权限代码", - max100Chars: "最大100个字符", - examplePermissionCode: "例如:sys:user:view", - sortOrder: "排序", - sortRequired: "排序号必填", - parentNode: "父节点", - roleManagement: "角色管理", - assignPermissions: "分配权限", - roleName: "角色名称", - enterRoleName: "请输入角色名称", - unlockLogin: "解除登录锁定", - notice: "提示", - confirmUnlock: "确定要解除该用户的登录锁定吗?", - unlockSuccess: "解除成功", - enterUsername: "请输入用户名", - modifyPasswordIfFilled: "填写则修改密码", - emaila: "邮箱", - mobile: "手机号", - avatar: "头像", - validTime: "有效期", - remark: "备注", - roles: "角色", - cnameTitle: "CNAME服务配置", - cnameDescription: "此处配置的域名作为其他域名校验的代理,当别的域名需要申请证书时,通过CNAME映射到此域名上来验证所有权。好处是任何域名都可以通过此方式申请证书,也无需填写AccessSecret。", - cnameLinkText: "CNAME功能原理及使用说明", - confirmTitle: "确认", - confirmDeleteBatch: "确定要批量删除这{count}条记录吗", - selectRecordsFirst: "请先勾选记录", - cnameDomain: "CNAME域名", - cnameDomainPlaceholder: "cname.handsfree.work", - cnameDomainHelper: "需要一个右边DNS提供商注册的域名(也可以将其他域名的dns服务器转移到这几家来)。\nCNAME域名一旦确定不可修改,建议使用一级子域名", - cnameDomainPattern: "域名不能使用星号", - dnsProvider: "DNS提供商", - dnsProviderAuthorization: "DNS提供商授权", - setDefault: "设置默认", - confirmSetDefault: "确定要设置为默认吗?", - setAsDefault: "设为默认", - disabledLabel: "禁用", - confirmToggleStatus: "确定要{action}吗?", - addonType: "类型", - addonName: "名称", - addonNameHelper: "随意填写,相同类型助于区分即可", - addonTypeSelect: "请选择", - template: { - title: "流水线模版", - edit: "流水线模版编辑", - importCreate: "流水线模版批量创建", - intro: "可根据模版批量创建流水线", - createTemplate: "创建模版", - useTemplate: "使用此模板", - batchCreate: "批量创建流水线", - singleCreate: "创建单个流水线", - templateName: "模板名称", - enterTemplateName: "请输入模板名称", - copyPipelineConfig: "复制该流水线配置作为模板来源", - pipeline: "流水线", - }, - dates: { - years: "{count}年", - months: "{count}月", - }, - sys: { - setting: { - baseSetting: "基本设置", - registerSetting: "注册设置", - safeSetting: "安全设置", - paymentSetting: "支付设置", - captchaSetting: "验证码设置", - pipelineSetting: "流水线设置", - oauthSetting: "第三方登录", - networkSetting: "网络设置", - adminModeSetting: "管理模式", - adminModeHelper: "企业管理模式: 企业内部使用,通过项目来隔离权限,流水线、授权数据属于项目。\nsaas模式:供外部用户注册使用,各个用户之间数据隔离,流水线、授权数据属于用户。", - - adminMode: "管理模式", - enterpriseMode: "企业模式", - saasMode: "SaaS模式", - - showRunStrategy: "显示运行策略选择", - showRunStrategyHelper: "任务设置中是否允许选择运行策略", - - captchaEnabled: "启用登录验证码", - captchaHelper: "登录时是否启用验证码", - captchaType: "验证码配置", - captchaTest: "测试验证码", - captchaTestHelper: "保存后再点击测试,请务必测试通过了,再开启登录验证码", - - pipelineValidTimeEnabled: "启用流水线有效期", - pipelineValidTimeEnabledHelper: "是否启用流水线有效期", - certDomainAddToMonitorEnabled: "证书域名添加到证书监控", - certDomainAddToMonitorEnabledHelper: "创建证书流水线时是否可以选择将域名添加到证书监控", - - defaultCertRenewDays: "默认到期前更新天数", - defaultCertRenewDaysHelper: "创建证书流水线时,默认的证书到期前更新天数", - defaultCertRenewDaysRecommend: "默认值15", - - pipelineMaxRunningCount: "同时最大运行流水线数量", - pipelineMaxRunningCountHelper: "同一个用户同时运行的最大流水线数量,避免同时触发太多导致ACME账户被限制", - pipelineMaxRunningCountRecommend: "推荐5-15,默认10", - acmeWalkFromAuthoritative: "从权威NS检查TXT记录", - acmeWalkFromAuthoritativeHelper: "申请证书时,是否从权威NS服务器检查TXT记录,如果影响申请证书,可以关闭", - - fixedCertExpireDays: "固定证书有效期天数", - fixedCertExpireDaysHelper: "固定证书有效期天数,有助于列表进度条整齐显示", - fixedCertExpireDaysRecommend: "推荐90", - - enableOauth: "启用第三方登录", - oauthEnabledHelper: "是否启用第三方登录", - oauthProviders: "第三方登录提供商", - oauthType: "第三方登录类型", - oauthConfig: "第三方登录配置", - oauthProviderSelectorPlaceholder: "未配置", - oauthCallback: "回调地址", - oauthCallbackHelper: "复制回调地址,配置到对应提供商的回调地址中", - oauthCallbackCopy: "复制回调地址", - oauthAutoRegister: "自动注册用户", - oauthAutoRegisterHelper: "当第三方账户未绑定本站账号时,是否自动注册用户,默认由用户选择", - oauthAutoRegisterCheckedText: "自动注册", - oauthAutoRegisterUnCheckedText: "用户选择", - oauthAutoRedirect: "自动跳转第三方登录", - oauthAutoRedirectHelper: "是否自动跳转第三方登录(使用第一个已启用的第三方登录类型)", - oauthOnly: "仅使用第三方登录", - oauthOnlyHelper: "是否仅使用第三方登录,关闭密码登录(注意:请务必在测试第三方登录功能正常后再开启,否则会导致无法登录)\n 如果无法登录,请访问 http://你的certd地址/#/login?oauthOnly=false 来临时关闭此模式", - enablePasskey: "启用Passkey登录", - passkeyHostnameNotSame: "当前域名与主绑定域名不同", - passkeyEnabledHelper: "1、站点必须启用https \n2、passkey的rpId以主绑定域名为准,当前主域名:{0} \n3、站点域名不能变,否则会导致已注册的passkey失效。", - email: { - templates: "邮件模板", - templateType: "模板类型", - templateProvider: "模板配置", - - templateSetting: "邮件模板设置", - serverSetting: "邮件服务器设置", - sendTest: "发送测试", - - templateProviderSelectorPlaceholder: "未配置", - }, - notice: "系统公告", - noticeHelper: "系统公告,将在首页显示", - noticePlaceholder: "系统公告", - - reverseProxy: "反向代理列表", - reverseProxyHelper: "证书颁发机构ACME地址的反向代理,在申请证书时自动使用", - reverseProxyPlaceholder: "http://le.px.handfree.work", - reverseProxyEmpty: "未配置反向代理", - environmentVars: "环境变量", - environmentVarsHelper: "配置运行时环境变量,每行一个,格式:KEY=VALUE", - bindUrl: "绑定URL", - bindUrlHelper: "绑定URL,在各类通知中显示你的站点URL", - }, - }, - modal: { - close: "关闭", - viewCertificateTitle: "查看证书", - }, - domain: { - domainManager: "域名管理", - domainDescription: "流水线校验方式选择“自动选择”时此处配置才有用,支持自动导入;注意:这里只需要管理主域名即可,子域名不要填写(子域名托管和免费二级子域名除外)", - domain: "域名", - challengeType: "校验类型", - dnsProviderType: "DNS提供商类型", - dnsProviderAccess: "DNS提供商授权", - httpUploaderType: "上传方式", - httpUploaderAccess: "上传授权信息", - httpUploadRootDir: "网站根路径", - disabled: "禁用/启用", - challengeSetting: "校验配置", - gotoCnameTip: "CNAME域名配置请前往CNAME记录页面添加", - fromType: "来源类型", - expirationDate: "到期时间", - }, - addonSelector: { - select: "选择", - placeholder: "请选择", - }, - ent: { - projectName: "项目名称", - projectDescription: "项目描述", - projectDetailManager: "项目详情", - projectDetailDescription: "管理项目成员", - projectPermission: "权限", - permission: { - read: "查看", - write: "修改", - admin: "管理员", - }, - projectMemberStatus: "成员状态", - - isSystem: "是否系统项目", - isSystemHelper: "系统级项目允许运行管理员插件", - }, - project: { - noProjectJoined: "您还没有加入任何项目", - applyToJoin: "请申请加入项目以开始使用", - projectList: "项目列表", - createdAt: "创建时间", - applyJoin: "申请加入", - noProjects: "暂无项目", - fetchFailed: "获取项目列表失败", - applySuccess: "申请成功,等待管理员审核", - applyFailed: "申请失败,请稍后重试", - leave: "退出项目", - leaveSuccess: "退出项目成功", - leaveFailed: "退出项目失败,请稍后重试", - applyJoinConfirm: "确认加入项目?", - leaveConfirm: "确认退出项目?", - viewDetail: "查看详情", - projectManage: "项目管理", - }, + ...common, + ...navigation, + ...dashboard, + ...pipeline, + ...history, + ...monitor, + ...certdomain, + ...cname, + ...access, + ...open, + ...mine, + ...notification, + ...addon, + ...suite, + ...project, + ...syssettings, + ...sysplugin, + ...sysauthority, + ...syscname, + ...tutorial, + ...cron, }; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/access.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/access.ts new file mode 100644 index 000000000..3579eefa7 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/access.ts @@ -0,0 +1,7 @@ +export default { + authorizationManagement: "授权管理", + manageThirdPartyAuth: "管理第三方系统授权信息", + nameHelper: "随便填,当多个相同类型的授权时,便于区分", + level: "级别", + system: "系统", +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/addon.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/addon.ts new file mode 100644 index 000000000..bda6f19d6 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/addon.ts @@ -0,0 +1,10 @@ +export default { + addonType: "类型", + addonName: "名称", + addonNameHelper: "随意填写,相同类型助于区分即可", + addonTypeSelect: "请选择", + addonSelector: { + select: "选择", + placeholder: "请选择", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/cert-domain.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/cert-domain.ts new file mode 100644 index 000000000..ae3b7ef5f --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/cert-domain.ts @@ -0,0 +1,18 @@ +export default { + domain: { + domainManager: "域名管理", + domainDescription: "流水线校验方式选择“自动选择”时此处配置才有用,支持自动导入;注意:这里只需要管理主域名即可,子域名不要填写(子域名托管和免费二级子域名除外)", + domain: "域名", + challengeType: "校验类型", + dnsProviderType: "DNS提供商类型", + dnsProviderAccess: "DNS提供商授权", + httpUploaderType: "上传方式", + httpUploaderAccess: "上传授权信息", + httpUploadRootDir: "网站根路径", + disabled: "禁用/启用", + challengeSetting: "校验配置", + gotoCnameTip: "CNAME域名配置请前往CNAME记录页面添加", + fromType: "来源类型", + expirationDate: "到期时间", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/cname.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/cname.ts new file mode 100644 index 000000000..717a6a340 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/cname.ts @@ -0,0 +1,21 @@ +export default { + pending_cname_setup: "待设置CNAME", + validating: "验证中", + validation_successful: "验证成功", + validation_failed: "验证失败", + validation_timed_out: "验证超时", + proxied_domain: "被代理域名", + host_record: "主机记录", + please_set_cname: "请设置CNAME", + cname_service: "CNAME服务", + default_public_cname: "默认提供公共CNAME服务,您还可以", + customize_cname: "自定义CNAME服务", + public_cname: "公共CNAME", + custom_cname: "自定义CNAME", + validate: "验证", + validation_started: "开始验证,请耐心等待", + click_to_validate: "点击验证", + cname_feature_guide: "CNAME功能原理及使用说明", + mainDomain: "主域名", + cnameRecord: "CNAME记录管理", +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/common.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/common.ts new file mode 100644 index 000000000..0321218cb --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/common.ts @@ -0,0 +1,120 @@ +export default { + usera: "用户", + disabledSuccess: "关闭成功", + app: { + crud: { + i18n: { + name: "姓名", + city: "城市", + status: "状态", + }, + }, + login: { + logoutTip: "确认", + logoutMessage: "确定要注销登录吗?", + }, + }, + fs: { + rowHandle: { + title: "操作列", + }, + }, + close: "关闭", + confirm: "确认", + save: "保存", + add: "生成新的Key", + edit: "编辑", + deleteSuccess: "删除成功", + saveSuccess: "保存成功", + cancel: "取消", + yes: "是", + no: "否", + all: "全部", + required: "此项必填", + requiredField: "此项必填", + fieldRequired: "此项必填", + field_required: "此项必填", + name: "名称", + pleaseEnterName: "请填写名称", + type: "类型", + status: "状态", + description: "说明", + createTime: "创建时间", + updateTime: "更新时间", + basicInfo: "基础信息", + disabled: "禁用", + enabled: "启用", + default: "默认", + success: "成功", + test: "测试", + testButton: "测试", + operationSuccess: "操作成功", + batch_delete: "批量删除", + confirm_delete_count: "确定要批量删除这{count}条记录吗", + delete_successful: "删除成功", + please_select_records: "请先勾选记录", + groupName: "分组名称", + enterGroupName: "请输入分组名称", + batchDeleteConfirm: "确定要批量删除这{count}条记录吗", + selectRecordFirst: "请先勾选记录", + confirmTitle: "确认", + confirmDeleteBatch: "确定要批量删除这{count}条记录吗", + selectRecordsFirst: "请先勾选记录", + setDefault: "设置默认", + confirmSetDefault: "确定要设置为默认吗?", + setAsDefault: "设为默认", + disabledLabel: "禁用", + confirmToggleStatus: "确定要{action}吗?", + batchDelete: "批量删除", + sourcee: "来源", + clickToToggle: "点击切换启用/禁用", + nickName: "昵称", + avatar: "头像", + expires: "过期", + days: "天", + isDefault: "是否默认", + selectIsDefault: "请选择是否默认", + isDisabled: "是否禁用", + fields: { + userId: "用户Id", + pipelineName: "流水线名称", + keyword: "关键字", + required: "此项必填", + pipelineContent: "流水线内容", + scheduledTaskCount: "定时任务数", + deployTaskCount: "部署任务数", + remainingValidity: "到期剩余", + effectiveTime: "生效时间", + expiryTime: "过期时间", + status: "状态", + lastRun: "最后运行", + enabled: "启用", + enabledLabel: "启用", + disabledLabel: "禁用", + group: "分组", + type: "类型", + order: "排序号", + keepHistoryCount: "历史记录保持数", + keepHistoryHelper: "历史记录保持条数,多余的会被删除", + createTime: "创建时间", + updateTime: "更新时间", + triggerType: "触发类型", + pipelineId: "流水线Id", + nextRunTime: "下次运行时间", + projectName: "项目", + adminId: "管理员", + }, + enterName: "请输入名称", + prompt: "提示", + domainCount: "域名数量", + import: "导入", + export: "导出", + disable: "禁用", + enable: "启用", + username: "用户名", + password: "密码", + expired: "过期", + helpDocLink: "帮助文档", + suite: "套餐", + helpDoc: "帮助说明", +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/cron.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/cron.ts new file mode 100644 index 000000000..71be6b986 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/cron.ts @@ -0,0 +1,7 @@ +export default { + cron: { + clearTip: "清除选择", + nextTrigger: "下次触发时间", + tip: "请先设置正确的cron表达式", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/dashboard.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/dashboard.ts new file mode 100644 index 000000000..8e5271947 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/dashboard.ts @@ -0,0 +1,30 @@ +export default { + dashboard: { + greeting: "您好,{name},欢迎使用 【{site}】", + latestVersion: "最新版本: {version}", + validUntil: "账户有效期:", + tutorialTooltip: "点击查看详细教程", + tutorialText: "仅需3步,全自动申请部署证书", + alertMessage: "证书和授权为敏感信息,不要使用来历不明的在线Certd服务和镜像,以免泄露;请务必私有化部署使用,认准官方版本发布渠道:", + helpDoc: "帮助文档", + pipelineCount: "证书流水线数量", + enabledCount: "已启用", + disabledCount: "已禁用", + noPipeline: "您还没有证书流水线", + certCount: "证书数量", + certExpiringCount: "即将过期", + certExpiredCount: "已过期", + certNoExpireCount: "未过期", + noCert: "还没有证书", + manageCert: "查看证书", + + createNow: "立即创建", + managePipeline: "管理流水线", + pipelineStatus: "流水线状态", + recentRun: "最近运行统计", + runCount: "运行次数", + expiringCerts: "最快到期证书", + supportedTasks: "已支持的部署任务总览", + changeLog: "更新日志", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/history.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/history.ts new file mode 100644 index 000000000..ab8ea25cc --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/history.ts @@ -0,0 +1,9 @@ +export default { + pipelineExecutionRecords: "流水线执行记录", + confirmBatchDeleteContent: "确定要批量删除这{count}条记录吗", + pleaseSelectRecords: "请先勾选记录", + triggerTypes: { + manual: "手动执行", + timer: "定时执行", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/mine.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/mine.ts new file mode 100644 index 000000000..88afaa072 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/mine.ts @@ -0,0 +1,27 @@ +export default { + accountInfo: "账号信息", + securitySettings: "认证安全设置", + confirmDisable2FA: "确定要关闭多重验证登录吗?", + twoFactorAuth: "2FA多重验证登录", + rebind: "重新绑定", + twoFactorAuthHelper: "是否开启多重验证登录", + bindDevice: "绑定设备", + step1: "1. 安装任意一款支持Authenticator的验证APP,比如:", + tooltipGoogleServiceError: "如果报没有找到谷歌服务的错误,您可以安装KK谷歌助手", + step2: "2. 扫描二维码添加账号", + step3: "3. 输入验证码", + inputVerifyCode: "请输入验证码", + myInfo: "我的信息", + user: { + greeting: "您好", + profile: "账号信息", + logout: "注销登录", + + setting: { + grantSetting: "授权委托设置", + saveSuccess: "保存成功", + allowAdminViewCerts: "授权管理员查看和下载证书", + allowAdminViewCertsHelper: "允许管理员查看和下载我的所有证书", + }, + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/monitor.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/monitor.ts new file mode 100644 index 000000000..662278452 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/monitor.ts @@ -0,0 +1,73 @@ +export default { + certificateRepo: { + title: "证书仓库", + sub: "从流水线生成的证书", + }, + actionImportBatch: "批量导入", + actionSyncIp: "同步IP", + modalTitleSyncIp: "同步IP", + modalContentSyncIp: "确定要同步IP吗?", + notificationSyncComplete: "同步完成", + actionCheckAll: "检查全部", + modalTitleConfirm: "确认", + modalContentCheckAll: "确认触发检查全部IP站点的证书吗?", + notificationCheckSubmitted: "检查任务已提交", + notificationCheckDescription: "请稍后刷新页面查看结果", + tooltipCheckNow: "立即检查", + notificationCheckSubmittedPleaseRefresh: "检查任务已提交,请稍后刷新查看结果", + columnId: "ID", + columnIp: "IP", + helperIpCname: "也支持填写CNAME域名,源站域名", + ruleIpRequired: "请输入IP", + columnCertDomains: "证书域名", + columnCertProvider: "颁发机构", + columnCertStatus: "证书状态", + statusNormal: "正常", + statusExpired: "过期", + columnCertExpiresTime: "证书到期时间", + columnCheckStatus: "检查状态", + columnLastCheckTime: "上次检查时间", + columnSource: "来源", + sourceSync: "同步", + sourceManual: "手动", + sourceImport: "导入", + columnDisabled: "禁用启用", + columnRemark: "备注", + certificateNotGenerated: "证书还未生成,请先运行流水线", + viewCertificateTitle: "查看证书", + viewCert: { + title: "查看证书", + }, + download: { + title: "下载证书", + }, + checkStatus: { + success: "成功", + checking: "检查中", + error: "异常", + }, + uploadCustomCert: "上传自定义证书", + sourcePipeline: "证书流水线", + sourceManualUpload: "托管流水线", + domains: "域名", + enterDomain: "请输入域名", + validDays: "有效天数", + effectiveTime: "生效时间", + expireTime: "过期时间", + certIssuer: "证书颁发机构", + applyTime: "申请时间", + relatedPipeline: "关联流水线", + statusSuccess: "成功", + statusChecking: "检查中", + statusError: "异常", + modal: { + close: "关闭", + viewCertificateTitle: "查看证书", + }, + domainList: { + title: "域名列表", + helper: "格式【域名:端口:名称:备注】,一行一个,其中端口、名称、备注可以省略\n比如:\nwww.baidu.com:443:百度:备注文本\nwww.taobao.com::淘宝\nwww.google.com", + required: "请输入要导入的域名", + placeholder: "www.baidu.com:443:百度:备注文本\nwww.taobao.com::淘宝\nwww.google.com\n", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/navigation.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/navigation.ts new file mode 100644 index 000000000..e18e5cd5e --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/navigation.ts @@ -0,0 +1,61 @@ +export default { + framework: { + title: "框架", + home: "首页", + }, + title: "证书自动化", + pipeline: "证书自动化流水线", + pipelineEdit: "编辑流水线", + history: "执行历史记录", + certStore: "证书仓库", + siteMonitor: "站点证书监控", + settings: "设置", + accessManager: "授权管理", + subDomain: "子域名托管设置", + pipelineGroup: "流水线分组管理", + openKey: "开放接口密钥", + notification: "通知设置", + siteMonitorSetting: "站点监控设置", + userSecurity: "认证安全设置", + userProfile: "账号信息", + userGrant: "授权委托", + mySuite: "我的套餐", + suiteBuy: "套餐购买", + myTrade: "我的订单", + paymentReturn: "支付返回", + source: "源码", + github: "github", + gitee: "gitee", + sysResources: { + sysRoot: "系统管理", + sysConsole: "控制台", + sysSettings: "系统设置", + cnameSetting: "CNAME服务设置", + emailSetting: "邮件服务器设置", + siteSetting: "站点个性化", + headerMenus: "顶部菜单设置", + sysAccess: "系统级授权", + sysPlugin: "插件管理", + sysPluginEdit: "编辑插件", + sysPluginConfig: "证书插件配置", + accountBind: "账号绑定", + permissionManager: "权限管理", + roleManager: "角色管理", + userManager: "用户管理", + suiteManager: "套餐管理", + suiteSetting: "套餐设置", + orderManager: "订单管理", + userSuites: "用户套餐", + netTest: "网络测试", + enterpriseManager: "企业管理设置", + projectManager: "项目管理", + enterpriseSetting: "企业设置", + myProjectManager: "我的项目", + myProjectDetail: "项目详情", + projectJoin: "加入项目", + currentProject: "当前项目", + projectMemberManager: "项目成员管理", + domainMonitorSetting: "域名监控设置", + jobHistory: "监控执行记录", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/notification.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/notification.ts new file mode 100644 index 000000000..991971e9c --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/notification.ts @@ -0,0 +1,15 @@ +export default { + email: { + title: "收件邮箱", + helper: "输入你的收件邮箱地址,支持多个邮箱", + required: "此项必填", + }, + notificationDefault: "使用默认通知", + notificationType: "通知类型", + selectNotificationType: "请选择通知类型", + confirmSetDefaultNotification: "确定设置为默认通知?", + edit_notification: "编辑通知", + other_notification_method: "其他通知方式", + notificationName: "通知名称", + helperNotificationName: "随便填,当多个相同类型的通知时,便于区分", +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/open.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/open.ts new file mode 100644 index 000000000..42f1e372d --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/open.ts @@ -0,0 +1,14 @@ +export default { + scope: "权限范围", + scopeOpenApiOnly: "仅开放接口", + scopeFullAccount: "账户所有权限", + scopeHelper: "仅开放接口只可以访问开放接口,账户所有权限可以访问所有接口", + gen: { + text: "接口测试", + title: "x-certd-token", + okText: "确定", + contentPart1: "测试x-certd-token如下,您可以在3分钟内使用它进行", + openApi: "开放接口", + contentPart2: "请求测试", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/pipeline.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/pipeline.ts new file mode 100644 index 000000000..07469e892 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/pipeline.ts @@ -0,0 +1,120 @@ +export default { + hasExpired: "已过期", + subdomainHosting: "子域名托管", + subdomainHostingHint: "当你的域名设置了子域名托管,需要在此处创建记录,否则申请证书将失败", + subdomainHosted: "托管的子域名", + subdomainHelpText: "如果您不理解什么是子域托管,请不要随意设置(可能导致证书无法申请,以前设置过的cname记录也需要重新配置),可以参考文档", + subdomainHelpSupportStart: "支持*号通配符,表示该域名下的子域名都是托管的(免费子域名)", + subdomainManagement: "子域管理", + pipelinePage: { + addMore: "添加更多流水线", + aliyunSubscriptionPipeline: "阿里云订阅流水线", + legoCertPipeline: "Lego证书流水线", + customPipeline: "自定义流水线", + batchAddPipeline: "模版批量创建流水线", + myPipelinesDesc: "流水线模式:申请证书->部署证书->定时运行", + }, + customPipeline: "自定义流水线", + createCertdPipeline: "创建证书流水线", + commercialCertHosting: "已有证书托管", + tooltip: { + manualUploadOwnCert: "手动上传自有证书,执行自动部署", + noAutoApplyCommercialCert: "并不能自动申请商业证书", + manualUploadOnUpdate: "证书有更新时,都需要手动上传一次", + }, + table: { + confirmDeleteTitle: "确定要删除吗?", + confirmDeleteMessage: "将删除该流水线相关的所有数据,包括执行历史、证书文件、证书仓库记录等", + }, + play: { + runPipeline: "运行流水线", + confirm: "确认", + confirmTrigger: "确定要触发运行吗?", + pipelineStarted: "管道已经开始运行", + }, + actions: { + editPipeline: "编辑流水线", + editConfigGroup: "修改配置/分组", + viewCertificate: "查看证书", + downloadCertificate: "下载证书", + }, + pi: { + validTime: "流水线有效期", + validTimeHelper: "不填则为永久有效", + }, + types: { + certApply: "证书申请", + certUpload: "证书上传", + custom: "自定义", + template: "模版", + }, + myPipelines: "我的流水线", + selectedCount: "已选择 {count} 项", + batchForceRerun: "强制重新运行", + batchRerun: "重新运行", + applyCertificate: "申请证书", + cronForm: { + title: "定时脚本", + helper: "点击上面的按钮,选择每天几点定时执行。\n建议设置为每天触发一次,证书未到期之前任务会跳过,不会重复执行", + required: "此项必填", + }, + plugin: { + selectTitle: "证书申请插件", + jsAcme: "JS-ACME:使用简单方便,功能强大【推荐】", + legoAcme: "Lego-ACME:基于Lego实现,支持海量DNS提供商,熟悉LEGO的用户可以使用", + aliyunOrder: "Aliyun-Order:从阿里云证书订单中获取证书更新", + }, + pipelineForm: { + createTitle: "创建证书流水线", + moreParams: "更多参数", + triggerCronTitle: "定时触发", + triggerCronHelper: "点击上面的按钮,选择每天几点定时执行。\n建议设置为每天触发一次,证书未到期之前任务会跳过,不会重复执行", + notificationTitle: "失败通知", + notificationWhen: "通知时机", + notificationHelper: "任务执行失败实时提醒", + groupIdTitle: "流水线分组", + addToMonitorEnabled: "添加到证书监控", + addToMonitorDomains: "添加到监控域名", + webhookEnabled: "开启Webhook", + webhookEnabledHelper: "支持webhook触发流水线,请在触发源中查看webhook地址", + }, + template: { + title: "流水线模版", + edit: "流水线模版编辑", + importCreate: "流水线模版批量创建", + intro: "可根据模版批量创建流水线", + createTemplate: "创建模版", + useTemplate: "使用此模板", + batchCreate: "批量创建流水线", + singleCreate: "创建单个流水线", + templateName: "模板名称", + enterTemplateName: "请输入模板名称", + copyPipelineConfig: "复制该流水线配置作为模板来源", + pipeline: "流水线", + }, + editSchedule: "修改定时", + timerTrigger: "定时触发", + schedule: "定时", + webhook: "Webhook", + selectCron: "请选择定时Cron", + batchEditSchedule: "批量修改定时", + editTrigger: "编辑触发器", + triggerName: "触发器名称", + confirmDeleteTrigger: "确定要删除此触发器吗?", + trigger_time: "触发时机", + start_time: "开始时", + success_time: "成功时", + fail_to_success_time: "失败转成功时", + fail_time: "失败时", + helper_suggest_fail_only: "建议仅选择'失败时'和'失败转成功'两种即可", + notification_config: "通知配置", + please_select_notification: "请选择通知方式", + please_select_type: "请选择类型", + please_select_trigger_time: "请选择通知时机", + please_select_notification_config: "请选择通知配置", + confirm_delete_trigger: "确定要删除此触发器吗?", + dates: { + years: "{count}年", + months: "{count}月", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/project.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/project.ts new file mode 100644 index 000000000..6b10e1dc0 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/project.ts @@ -0,0 +1,36 @@ +export default { + ent: { + projectName: "项目名称", + projectDescription: "项目描述", + projectDetailManager: "项目详情", + projectDetailDescription: "管理项目成员", + projectPermission: "权限", + permission: { + read: "查看", + write: "修改", + admin: "管理员", + }, + projectMemberStatus: "成员状态", + + isSystem: "是否系统项目", + isSystemHelper: "系统级项目允许运行管理员插件", + }, + project: { + noProjectJoined: "您还没有加入任何项目", + applyToJoin: "请申请加入项目以开始使用", + projectList: "项目列表", + createdAt: "创建时间", + applyJoin: "申请加入", + noProjects: "暂无项目", + fetchFailed: "获取项目列表失败", + applySuccess: "申请成功,等待管理员审核", + applyFailed: "申请失败,请稍后重试", + leave: "退出项目", + leaveSuccess: "退出项目成功", + leaveFailed: "退出项目失败,请稍后重试", + applyJoinConfirm: "确认加入项目?", + leaveConfirm: "确认退出项目?", + viewDetail: "查看详情", + projectManage: "项目管理", + }, +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/suite.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/suite.ts new file mode 100644 index 000000000..37b2d43d5 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/suite.ts @@ -0,0 +1,67 @@ +export default { + order: { + confirmTitle: "订单确认", + package: "套餐", + description: "说明", + specifications: "规格", + pipeline: "流水线", + domain: "域名", + deployTimes: "部署次数", + monitorCount: "域名监控数", + duration: "时长", + price: "价格", + paymentMethod: "支付方式", + free: "免费", + unit: { + pieces: "条", + count: "个", + times: "次", + }, + }, + gift_package: "赠送套餐", + package_name: "套餐名称", + click_to_select: "点击选择", + please_select_package: "请选择套餐", + package: "套餐", + addon_package: "加量包", + domain_count: "域名数量", + unit_count: "个", + pipeline_count: "流水线数量", + unit_item: "条", + deploy_count: "部署次数", + unit_times: "次", + monitor_count: "证书监控数量", + duration: "时长", + active_time: "激活时间", + expires_time: "过期时间", + is_present: "是否赠送", + is_present_yes: "是", + is_present_no: "否", + ordera: "排序", + supportBuy: "支持购买", + intro: "介绍", + packageContent: "套餐内容", + maxDomainCount: "最大域名数", + maxPipelineCount: "最大流水线数", + maxDeployCount: "最大部署数", + maxMonitorCount: "最大监控数", + price: "价格", + durationPrices: "时长价格", + packageName: "套餐名称", + addon: "加量包", + typeHelper: "套餐:同一时间只有最新购买的一个生效\n加量包:可购买多个,购买后立即生效,不影响套餐\n套餐和加量包数量可叠加", + pipelineCount: "流水线数量", + unitPipeline: "条", + deployCount: "部署次数", + unitDeploy: "次", + monitorCount: "证书监控数量", + unitCount: "个", + durationPriceTitle: "时长及价格", + selectDuration: "选择时长", + supportPurchase: "支持购买", + cannotPurchase: "不能购买", + shelfStatus: "上下架", + onShelf: "上架", + offShelf: "下架", + orderHelper: "越小越靠前", +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-authority.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-authority.ts new file mode 100644 index 000000000..dfa9fde2d --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-authority.ts @@ -0,0 +1,30 @@ +export default { + max50Chars: "最大50个字符", + permissionManagement: "权限管理", + adda: "添加", + rootNode: "根节点", + permissionName: "权限名称", + enterPermissionName: "请输入权限名称", + permissionCode: "权限代码", + enterPermissionCode: "请输入权限代码", + max100Chars: "最大100个字符", + examplePermissionCode: "例如:sys:user:view", + sortOrder: "排序", + sortRequired: "排序号必填", + parentNode: "父节点", + roleManagement: "角色管理", + assignPermissions: "分配权限", + roleName: "角色名称", + enterRoleName: "请输入角色名称", + unlockLogin: "解除登录锁定", + notice: "提示", + confirmUnlock: "确定要解除该用户的登录锁定吗?", + unlockSuccess: "解除成功", + enterUsername: "请输入用户名", + modifyPasswordIfFilled: "填写则修改密码", + emaila: "邮箱", + mobile: "手机号", + validTime: "有效期", + remark: "备注", + roles: "角色", +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-cname.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-cname.ts new file mode 100644 index 000000000..0da608a2b --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-cname.ts @@ -0,0 +1,11 @@ +export default { + cnameTitle: "CNAME服务配置", + cnameDescription: "此处配置的域名作为其他域名校验的代理,当别的域名需要申请证书时,通过CNAME映射到此域名上来验证所有权。好处是任何域名都可以通过此方式申请证书,也无需填写AccessSecret。", + cnameLinkText: "CNAME功能原理及使用说明", + cnameDomain: "CNAME域名", + cnameDomainPlaceholder: "cname.handsfree.work", + cnameDomainHelper: "需要一个右边DNS提供商注册的域名(也可以将其他域名的dns服务器转移到这几家来)。\nCNAME域名一旦确定不可修改,建议使用一级子域名", + cnameDomainPattern: "域名不能使用星号", + dnsProvider: "DNS提供商", + dnsProviderAuthorization: "DNS提供商授权", +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-plugin.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-plugin.ts new file mode 100644 index 000000000..d201bd5e9 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-plugin.ts @@ -0,0 +1,43 @@ +export default { + titlea: "名称", + pluginFile: "插件文件", + selectPluginFile: "选择插件文件", + overrideSameName: "同名覆盖", + override: "覆盖", + noOverride: "不覆盖", + overrideHelper: "如果已有相同名称插件,直接覆盖", + importPlugin: "导入插件", + customPlugin: "自定义插件", + pluginType: "插件类型", + auth: "授权", + dns: "DNS", + deployPlugin: "部署插件", + icon: "图标", + pluginName: "插件名称", + pluginNameHelper: "必须为英文或数字,驼峰命名,类型作为前缀\n示例:AliyunDeployToCDN\n插件使用后,名称不可修改", + pluginNameRuleMsg: "必须为英文或数字,驼峰命名,类型作为前缀", + author: "作者", + authorHelper: "上传插件市场时作为前缀,如 greper/pluginName", + authorRuleMsg: "必须为英文或数字", + titleHelper: "插件中文名称", + descriptionHelper: "插件描述", + builtIn: "内置", + custom: "自定义", + store: "市场", + version: "版本", + pluginDependencies: "插件依赖", + pluginDependenciesHelper: "格式: [作者/]插件名[:版本],需先安装依赖插件", + editableRunStrategy: "可编辑运行策略", + editable: "可编辑", + notEditable: "不可编辑", + runStrategy: "运行策略", + normalRun: "正常运行", + skipOnSuccess: "成功跳过(部署任务)", + defaultRunStrategyHelper: "默认运行策略", + enableDisable: "启用/禁用", + confirmToggle: "确认要", + pluginGroup: "插件分组", + pluginManagement: "插件管理", + pluginBetaWarning: "自定义插件处于BETA测试版,后续可能会有破坏性变更", + pleaseSelectRecord: "请先勾选记录", +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-settings.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-settings.ts new file mode 100644 index 000000000..cdaac04f1 --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/sys-settings.ts @@ -0,0 +1,183 @@ +export default { + sys: { + setting: { + baseSetting: "基本设置", + registerSetting: "注册设置", + safeSetting: "安全设置", + paymentSetting: "支付设置", + captchaSetting: "验证码设置", + pipelineSetting: "流水线设置", + oauthSetting: "第三方登录", + networkSetting: "网络设置", + adminModeSetting: "管理模式", + adminModeHelper: "企业管理模式: 企业内部使用,通过项目来隔离权限,流水线、授权数据属于项目。\nsaas模式:供外部用户注册使用,各个用户之间数据隔离,流水线、授权数据属于用户。", + + adminMode: "管理模式", + enterpriseMode: "企业模式", + saasMode: "SaaS模式", + + showRunStrategy: "显示运行策略选择", + showRunStrategyHelper: "任务设置中是否允许选择运行策略", + + captchaEnabled: "启用登录验证码", + captchaHelper: "登录时是否启用验证码", + captchaType: "验证码配置", + captchaTest: "测试验证码", + captchaTestHelper: "保存后再点击测试,请务必测试通过了,再开启登录验证码", + + pipelineValidTimeEnabled: "启用流水线有效期", + pipelineValidTimeEnabledHelper: "是否启用流水线有效期", + certDomainAddToMonitorEnabled: "证书域名添加到证书监控", + certDomainAddToMonitorEnabledHelper: "创建证书流水线时是否可以选择将域名添加到证书监控", + + defaultCertRenewDays: "默认到期前更新天数", + defaultCertRenewDaysHelper: "创建证书流水线时,默认的证书到期前更新天数", + defaultCertRenewDaysRecommend: "默认值15", + + pipelineMaxRunningCount: "同时最大运行流水线数量", + pipelineMaxRunningCountHelper: "同一个用户同时运行的最大流水线数量,避免同时触发太多导致ACME账户被限制", + pipelineMaxRunningCountRecommend: "推荐5-15,默认10", + acmeWalkFromAuthoritative: "从权威NS检查TXT记录", + acmeWalkFromAuthoritativeHelper: "申请证书时,是否从权威NS服务器检查TXT记录,如果影响申请证书,可以关闭", + + fixedCertExpireDays: "固定证书有效期天数", + fixedCertExpireDaysHelper: "固定证书有效期天数,有助于列表进度条整齐显示", + fixedCertExpireDaysRecommend: "推荐90", + + enableOauth: "启用第三方登录", + oauthEnabledHelper: "是否启用第三方登录", + oauthProviders: "第三方登录提供商", + oauthType: "第三方登录类型", + oauthConfig: "第三方登录配置", + oauthProviderSelectorPlaceholder: "未配置", + oauthCallback: "回调地址", + oauthCallbackHelper: "复制回调地址,配置到对应提供商的回调地址中", + oauthCallbackCopy: "复制回调地址", + oauthAutoRegister: "自动注册用户", + oauthAutoRegisterHelper: "当第三方账户未绑定本站账号时,是否自动注册用户,默认由用户选择", + oauthAutoRegisterCheckedText: "自动注册", + oauthAutoRegisterUnCheckedText: "用户选择", + oauthAutoRedirect: "自动跳转第三方登录", + oauthAutoRedirectHelper: "是否自动跳转第三方登录(使用第一个已启用的第三方登录类型)", + oauthOnly: "仅使用第三方登录", + oauthOnlyHelper: "是否仅使用第三方登录,关闭密码登录(注意:请务必在测试第三方登录功能正常后再开启,否则会导致无法登录)\n 如果无法登录,请访问 http://你的certd地址/#/login?oauthOnly=false 来临时关闭此模式", + enablePasskey: "启用Passkey登录", + passkeyHostnameNotSame: "当前域名与主绑定域名不同", + passkeyEnabledHelper: "1、站点必须启用https \n2、passkey的rpId以主绑定域名为准,当前主域名:{0} \n3、站点域名不能变,否则会导致已注册的passkey失效。", + email: { + templates: "邮件模板", + templateType: "模板类型", + templateProvider: "模板配置", + + templateSetting: "邮件模板设置", + serverSetting: "邮件服务器设置", + sendTest: "发送测试", + + templateProviderSelectorPlaceholder: "未配置", + }, + notice: "系统公告", + noticeHelper: "系统公告,将在首页显示", + noticePlaceholder: "系统公告", + + reverseProxy: "反向代理列表", + reverseProxyHelper: "证书颁发机构ACME地址的反向代理,在申请证书时自动使用", + reverseProxyPlaceholder: "http://le.px.handfree.work", + reverseProxyEmpty: "未配置反向代理", + environmentVars: "环境变量", + environmentVarsHelper: "配置运行时环境变量,每行一个,格式:KEY=VALUE", + bindUrl: "绑定URL", + bindUrlHelper: "绑定URL,在各类通知中显示你的站点URL", + }, + }, + icpRegistrationNumber: "ICP备案号", + icpPlaceholder: "粤ICP备xxxxxxx号", + publicSecurityRegistrationNumber: "网安备案号", + publicSecurityPlaceholder: "京公网安备xxxxxxx号", + enableAssistant: "开启小助手", + allowCrawlers: "允许爬虫", + httpProxy: "HTTP代理", + httpProxyPlaceholder: "http://192.168.1.2:18010/", + httpProxyHelper: "当某些网站被墙时可以配置", + httpsProxy: "HTTPS代理", + httpsProxyPlaceholder: "http://192.168.1.2:18010/", + saveThenTestTitle: "保存后,再点击测试", + httpsProxyHelper: "一般这两个代理填一样的,保存后再测试", + dualStackNetwork: "双栈网络", + ipv4Priority: "IPV4优先", + ipv6Priority: "IPV6优先", + dualStackNetworkHelper: "如果选择IPv6优先,需要在docker-compose.yaml中启用ipv6", + enableCommonCnameService: "启用公共CNAME服务", + commonCnameHelper: "是否可以使用公共CNAME服务,如果禁用,且没有设置自定义CNAME服务,则无法使用CNAME代理方式申请证书", + enableCommonSelfServicePasswordRetrieval: "启用自助找回密码", + saveButton: "保存", + stopSuccess: "停止成功", + google: "Google", + baidu: "百度", + testFailed: "测试失败", + testCompleted: "测试完成", + manageOtherUserPipeline: "管理其他用户流水线", + limitUserPipelineCount: "限制用户流水线数量", + limitUserPipelineCountHelper: "0为不限制", + enableSelfRegistration: "开启自助注册", + enableUserValidityPeriod: "开启用户有效期", + userValidityPeriodHelper: "有效期内用户可正常使用,失效后用户的流水线将被停用", + enableUsernameRegistration: "开启用户名注册", + enableEmailRegistration: "开启邮箱注册", + proFeature: "Certd专业版功能", + emailServerSetup: "设置邮箱服务器", + enableSmsLoginRegister: "开启手机号登录、注册", + defaultLoginType: "默认登录方式", + commFeature: "Certd商业版功能", + smsProvider: "短信提供商", + aliyunSms: "阿里云短信", + tencentSms: "腾讯云短信", + yfySms: "易发云短信", + smsTest: "短信测试", + testMobilePlaceholder: "输入测试手机号", + saveThenTest: "保存后再点击测试", + enterTestMobile: "请输入测试手机号", + sendSuccess: "发送成功", + atLeastOneLoginRequired: "密码登录和手机号登录至少开启一个", + siteHide: "站点隐藏", + enableSiteHide: "启用站点隐藏", + siteHideDescription: "可以在平时关闭站点的可访问性,需要时再打开,增强站点安全性", + randomAddress: "随机地址", + siteHideUrlHelper: "站点被隐藏后,需要访问此URL解锁,才能正常访问", + fullUnlockUrl: "完整解除隐藏地址", + saveThisUrl: "请保存好此地址", + unlockPassword: "解除密码", + unlockPasswordHelper: "解除隐藏时需要输入密码,第一次需要设置密码,填写则重置密码", + autoHideTime: "自动隐藏时间", + autoHideTimeHelper: "多少分钟内无请求自动隐藏", + hideOpenApi: "隐藏开放接口", + hideOpenApiHelper: "是否隐藏开放接口,是否同时隐藏/api/v1开头的接口", + hideSiteImmediately: "立即隐藏站点", + hideImmediately: "立即隐藏", + confirmHideSiteTitle: "确定要立即隐藏站点吗?", + confirmHideSiteContent: "隐藏后,将无法访问站点,请谨慎操作", + siteHiddenSuccess: "站点已隐藏", + emailServerSettings: "邮件服务器设置", + setEmailSendingServer: "设置邮件发送服务器", + useCustomEmailServer: "使用自定义邮件服务器", + smtpDomain: "SMTP域名", + pleaseEnterSmtpDomain: "请输入smtp域名或ip", + smtpPort: "SMTP端口", + pleaseEnterSmtpPort: "请输入smtp端口号", + pleaseEnterUsername: "请输入用户名", + pleaseEnterPassword: "请输入密码", + qqEmailAuthCodeHelper: "如果是qq邮箱,需要到qq邮箱的设置里面申请授权码作为密码", + senderEmailHelper: "您可以使用 名称<邮箱> 的格式,来修改发件人名称,例如: autossl", + senderEmail: "发件邮箱", + pleaseEnterSenderEmail: "请输入发件邮箱", + useSsl: "是否ssl", + sslPortNote: "ssl和非ssl的smtp端口是不一样的,注意修改端口", + ignoreCertValidation: "忽略证书校验", + useOfficialEmailServer: "使用官方邮件服务器", + useOfficialEmailServerHelper: "使用官方邮箱服务器直接发邮件,免除繁琐的配置", + testReceiverEmail: "测试收件邮箱", + pleaseEnterTestReceiverEmail: "请输入测试收件邮箱", + saveBeforeTest: "保存后再点击测试", + sendFailHelpDoc: "发送失败???", + emailConfigHelpDoc: "邮件配置帮助文档", + tryOfficialEmailServer: "您还可以试试使用官方邮件服务器↗↗↗↗↗↗↗↗", +}; diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd/tutorial.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/tutorial.ts new file mode 100644 index 000000000..29572bfac --- /dev/null +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd/tutorial.ts @@ -0,0 +1,7 @@ +export default { + steps: { + createPipeline: "创建证书流水线", + addTask: "添加部署任务", + scheduledRun: "定时运行", + }, +};