From 4c14e5250f7149b46d15be6a57120e46a27b4171 Mon Sep 17 00:00:00 2001 From: Francesco Torchia Date: Mon, 29 Apr 2024 20:50:58 +0200 Subject: [PATCH] Add Single product home; add labels Signed-off-by: Francesco Torchia --- pkg/harvester/config/harvester.ts | 1 + pkg/harvester/l10n/en-us.yaml | 1431 +++++++++++++++++++++++++++++ pkg/harvester/l10n/zh-hans.yaml | 1431 +++++++++++++++++++++++++++++ pkg/harvester/product.ts | 19 +- 4 files changed, 2881 insertions(+), 1 deletion(-) create mode 100644 pkg/harvester/l10n/en-us.yaml create mode 100644 pkg/harvester/l10n/zh-hans.yaml diff --git a/pkg/harvester/config/harvester.ts b/pkg/harvester/config/harvester.ts index 5127c2dc..0c641c1b 100644 --- a/pkg/harvester/config/harvester.ts +++ b/pkg/harvester/config/harvester.ts @@ -1,2 +1,3 @@ export const PRODUCT_NAME = 'harvester'; export const BLANK_CLUSTER = '_'; +export const LOGO = require(`@shell/assets/images/providers/harvester.svg`); diff --git a/pkg/harvester/l10n/en-us.yaml b/pkg/harvester/l10n/en-us.yaml new file mode 100644 index 00000000..d0abafad --- /dev/null +++ b/pkg/harvester/l10n/en-us.yaml @@ -0,0 +1,1431 @@ +generic: + tip: Tip + resourceExternalLinkTips: 'External Link' + namespace: Namespace + notReady: Not Ready + labels: Labels + inProgress: In Progress + basic: Basic + +nav: + group: + networks: Networks + backupAndSnapshot: Backup & Snapshot + Monitoring: Monitoring + Logging: Logging + 'Monitoring & Logging': Monitoring & Logging + +resourceTable: + groupBy: + device: Group by Device + +validation: + arrayCountRequired: "At least {count} {key} {count, plural, =1 {is} other {are}} required, and {key} can not be empty." + +members: + clusterMemebership: Cluster Membership + projectMembership: Project Membership + +asyncButton: + restart: + action: Save & Restart + success: Restarted + waiting: Restarting… + +harvester: + productLabel: 'Harvester' + modal: + backup: + success: 'Backup { backUpName } has been initiated.' + addBackup: Add Backup + restore: + success: 'Restore { name } created successfully.' + title: Backup and restore + selectBackup: Select Backup + message: + backup: Please select the backup that needs to be restored. + createTemplate: + title: 'Generate Template' + name: 'Name' + description: 'Description' + message: + tip: Please enter a template name! + success: 'Template { templateName } created successfully.' + failed: 'Failed generated template!' + cloneVM: + title: Clone VM + name: New VM Name + type: clone volume data + action: + create: Create + clone: Clone + message: + tip: Please enter a VM name! + success: 'VM { name } cloned successfully.' + failed: 'Failed clone VM!' + exportImage: + title: Export to Image + name: Name + namespace: Namespace + message: + success: 'Image { name } created successfully.' + migration: + failedMessage: Latest migration failed! + title: Migration + fields: + nodeName: + label: Target Node + placeholder: Choose Target Node + ejectCDROM: + title: Eject CDROM + warnTip: Eject volume will restart the virtual machine. + operationTip: 'Select the volume you want to delete:' + delete: Delete + bundle: + title: Generate Support Bundle + url: Issue URL + description: Description + requiredDesc: Description is required! + titleDescription: Collect system-related log in Harvester, to help with troubleshooting and support. + hotplug: + success: 'Volume { diskName } is mounted to the VM { vm }.' + title: Add Volume + hotunplug: + success: 'Volume { name } is detach successfully.' + snapshot: + title: Take Snapshot + name: Name + message: + success: 'Take Snapshot { name } successfully.' + volumeClone: + title: Clone Volume + name: Name + message: + success: 'New Volume { name } cloned successfully.' + restoreSnapshot: + title: Restore Snapshot + name: 'New Volume Name' + success: 'New Volume { name } restored successfully.' + vmSnapshot: + title: Take VM Snapshot + name: Name + success: 'Take VM Snapshot { name } successfully.' + restart: + title: Restart VM + tip: Restart the Virtual Machine now for configuration changes to take effect. + cancel: Save + notification: + title: + succeed: Succeed + info: Info + warning: Warning + error: Error + action: + createVM: Create a Virtual Machine + start: Start + restart: Restart + softreboot: Soft Reboot + stop: Stop + pause: Pause + deepClone: Clone + shallowClone: Clone Template + unpause: Unpause + ejectCDROM: Eject CDROM + launchFormTemplate: Launch instance from template + modifyTemplate: Modify template (Create new version) + setDefaultVersion: Set default version + addTemplateVersion: Add templateVersion + backup: Take Backup + restore: Restore + restoreNewVM: Restore New + restoreExistingVM: Replace Existing + migrate: Migrate + abortMigration: Abort Migration + createTemplate: Generate Template + enableMaintenance: Enable Maintenance Mode + disableMaintenance: Disable Maintenance Mode + cordon: Cordon + uncordon: Uncordon + addHotplug: Add Volume + exportImage: Export Image + viewlogs: View Logs + cancelExpand: Cancel Expand + snapshot: Take Snapshot + pvcClone: Clone Volume + vmSnapshot: Take VM Snapshot + shutdown: Shut Down + powerOn: Power On + reboot: Reboot + forceStop: Force Stop + tableHeaders: + size: Size + progress: Progress + message: Message + phase: Phase + attachedVM: Attached VM + fingerprint: Fingerprint + value: Value + actions: Actions + readyToUse: Ready To Use + backupTarget: Backup Target + targetVm: Target VM + hostIp: Host IP + vm: + ipAddress: IP Address + node: Node + defaultVersion: Default Version + network: + type: Type + vlan: Vlan ID + snapshotTargetVolume: Original Volume + volumeSnapshotCounts: Snapshot Counts + networkState: Network State + storageClass: Storage Class + tab: + volume: Volumes + network: Networks + advanced: Advanced Options + accessCredentials: Access Credentials + pciDevices: PCI Devices + vmScheduling: VM Scheduling + instanceLabel: Instance Labels + fields: + version: Version + name: Name + type: Type + image: Image + size: Size + volume: Volume + network: Network + model: Model + macAddress: Mac Address + port: Port + protocol: Protocol + remove: REMOVE + PhysicalNic: Physical NIC + cpu: Cpu + memory: Memory + virtualName: Virtual machine name + promiscuous: Promiscuous + ipv4Address: IPv4 Address + filterLabels: Filter Labels + storageClass: Storage Class + dockerImage: Docker Image + pci: + available: Available Devices + compatibleNodes: Compatible Nodes + impossibleSelection: 'There are no hosts with all of the selected devices.' + howToUseDevice: 'Use the table below to enable PCI passthrough on each device you want to use in this VM.' + deviceInTheSameHost: 'You can only select devices on the same host.' + oldFormatDevices: + help: |- +

+ The following PCI devices are using the old naming convention and need to be updated in the YAML file: +

+ +

+ Please use the following instructions to update the VM: +

+
    +
  1. Stop the VM, edit the VM YAML, and remove the hostDevices section, and save VM the changes to the YAML file.
  2. +
  3. Edit the VM, and add the already enabled PCIDevice from the list of available PCIDevices, and save and start VM.
  4. +
+ showCompatibility: Show device compatibility matrix + hideCompatibility: Hide device compatibility matrix + claimError: Error enabling passthrough on {name} + unclaimError: Error disabling passthrough on {name} + cantUnclaim: You cannot disable passthrough on a device claimed by another user. + enableGroup: Enable Group + disableGroup: Disable Group + labelRequired: "This rule should not be manually altered: it ensures that the PCI devices selected for this virtual machine are available on the VM's host." + goSetting: + prefix: The pcidevices-controller addon is not enabled, click + middle: here + suffix: to enable it to manage your PCI devices. + noPCIPermission: Please contact system admin to enable the PCI devices first. + enablePassthroughWarning: Please be careful not to use host-owned PCI devices (e.g., management and VLAN NICs). Incorrect device allocation may cause damage to your cluster, including node failure. + matrixHostName: Host Name + matrixDeviceClaimName: Device Claim Name + generic: + close: Close + open: Open + showMore: Show More + hideMore: Hide More + memory: Memory + cpu: CPU + storage: Storage + noFileChosen: No file chosen + noSchema: "Can not find the custom resource definition: {schema}." + + validation: + custom: + tooLongName: '"Name" cannot be more than {max} characters.' + generic: + hasDelete: '{type} "{name}" has been deleted.' + maxLength: '"{key}" cannot be more than {max} characters' + tabError: '{prefix}: {message}' + maximumSize: "Exceed maximum size {max}!" + regex: 'Invalid {lowerType} "{name}": {upperType} must match the regex "{regex}"' + vm: + name: 'name is required!' + memory: '"Memory" is required!' + duplicatedName: 'duplicate {type} name: "{name}"' + network: + macFormat: 'Invalid MAC address format.' + upperType: Network name + lowerType: network name + volume: + upperType: Volume name + lowerType: volume name + needImageOrExisting: 'At least an image volume or an existing root-disk volume is required!' + image: + ruleTip: 'The URL you have entered ends in an extension that we do not support. We only accept image files that end in .img, .iso, .qcow, .qcow2, .raw.' + ruleFileTip: 'The file you have chosen ends in an extension that we do not support. We only accept image files that end in .img, .iso, .qcow, .qcow2, .raw.' + + dashboard: + label: Dashboard + header: "Harvester Cluster: {cluster}" + hardwareResourceGauge: + cpu: CPU + memory: Memory + storage: Storage + sections: + events: + label: Events + vmMetrics: + label: VM Metrics + + version: Version + host: + console: Console + label: Hosts + inconsistentIP: "Host IP is inconsistent, current IP: { currentIP }, initial IP: { initIP }" + promote: + none: ' ' + running: promoting + failed: promote failed + unknown: promote halted + promoteRestart: restarting + promoteSucceed: promote completed + tabs: + network: Network + overview: Overview + basics: Basics + instance: Virtual Machines + monitor: Monitor Data + storage: Storage + labels: Labels + ksmtuned: Ksmtuned + seeder: Out-of-Band Access + detail: + kvm: + disableMessage: Hardware-based virtualization is disabled or not supported. Hardware-based virtualization must be enabled before creating any Virtual Machines. + title: + network: Network Configuration + hostIP: Host IP + role: Role + os: Operating System + create: Creation Time + update: Last Update Time + customName: Custom Name + consoleUrl: Console URL + more: More Information + uuid: UUID + containerRuntime: Container Runtime + kernel: Kernel + management: Management Node + compute: Compute Node + storage: Storage + nic: Physical NIC + notRecommended: 'Not recommended' + networkType: Type + manufacturer: Manufacturer + serialNumber: Serial Number + model: Model + enableMaintenance: + title: Enable Maintenance Mode + protip: The operation will migrate all virtual machines on this node to other nodes. + force: Force + cordon: + title: Cordon + protip: This operation will mark the node { node } as unschedulable. + ksmtuned: + run: Run Strategy + configure: Configure + mode: Mode + modeLink: Mode + thresCoef: Threshold Coefficient + enableMergeNodes: Enable Merge Across Nodes + enable: Enable + disable: Disable + ksmStatus: KSM Status + modeOption: + standard: Standard + high: High-Perfomanace + customized: Customized + parameters: + title: Ksmtuned Parameters + boost: Boost + decay: Decay + sleepMsec: Sleep Time (Millisecond) + minPages: Minimum Pages + maxPages: Maximum Pages + description: + boost: The number of scanned pages is incremented each time if the available memory is less than the threshold coefficient. + decay: The number of scanned pages is decremented each time if the available memory is greater than the threshold coefficient. + sleepMsec: The interval between two scans (the minimum value is 10ms), which is calculated by the formula (Sleep Milliseconds * 16 * 1024 * 1024/Total Memory). + minPages: The minimum number of pages per scan, also the configuration for the first run. + maxPages: Maximum number of pages per scan. + statistics: + title: Statistics + sharing: Sharing + shared: Shared + unshared: Unshared + volatile: Volatile + fullScans: Full Scans + stableNodeChains: Stable Node Chains + stableNodeDups: Stable Node Dups + disk: + add: Add Disk + path: + label: Path + storageReserved: + label: Storage Reserved + allowScheduling: + label: Scheduling + evictionRequested: + label: Eviction Requested + forceFormatted: + label: Force Formatted + toolTip: Force formatted will cleanup disk data, make sure you backup all available data to prevent data loss. + yes: Yes (Ext4 File System) + description: + label: Description + lastFormattedAt: + info: The disk has already been force-formatted. + notification: + success: 'Update host "{name}" storage configurations successfully.' + error: Host has unready or unschedulable disks. + fileSystem: + info: Current file system is {system}, You can format it manually. + formatting: Disk is formatting, please wait. + tags: + label: Disk Tags + addLabel: Add Disk Tag + conditions: Conditions + storageAvailable: + label: Storage Available + storageScheduled: + label: Storage Scheduled + storageMaximum: + label: Storage Maximum + tags: + label: Host Tags + addLabel: Add Host Tag + powerAction: + message: + success: 'Perform host { name } { operation } successfully.' + ntp: + label: NTP Server Addresses + tips: You can configure multiple IPv4 addresses or host addresses. + placeholder: e.g. IPv4 + ntpSyncStatus: + isDisabled: 'The NTP is disabled. Please check the NTP service is active.' + isUnsynced: 'The NTP is not synced with the NTP server {current}' + ntpConfigSyncStatus: + isUnsynced: 'The NTP config is not synced. Current: {current}, Wanted: {wanted} ' + + virtualMachine: + label: Virtual Machines + osType: OS Type + instance: + singleInstance: + multipleInstance: + single: + label: Single Instance + nameLabel: Name + host: + label: Hostname + placeholder: default to the virtual machine name. + multiple: + label: Multiple Instance + nameNsDescription: Name prefix for each instance + count: Count + countTip: Count should be between 1 and 10 + nameLabel: Name Prefix + host: + label: Host Prefix Name + placeholder: default to the virtual machine name. + useTemplate: + label: "Use VM Template:" + template: + label: Template + version: + label: Version + console: + novnc: Open in Web VNC + serial: Open in Serial Console + promptRemove: + title: 'Select the volume you want to delete:' + deleteAll: Delete All + tips: "Warn: The snapshots of vm will be deleted with VM and the snapshots of volume will be deleted with volume." + unplug: + title: 'Are you sure that you want to detach volume {name} ?' + actionLabel: Detach + detachVolume: + Detach Volume + restartTip: |- + {restart, select, + true {Restart} + other {Start} + } the virtual machine now to take effect of the configuration changes. + runStrategy: Run Strategy + restartNow: |- + {restart, select, + true {Restart} + other {Start} + } Now + createSSHKey: Create a New... + installAgent: Install guest agent + enableUsb: Enable USB Tablet + advancedOptions: + tpm: Enable TPM + usbTip: Provides an absolute pointer device which often helps with getting a consistent mouse cursor position in VNC. + sshTitle: Add Public SSH Key + imageTip: An external URL to the .iso, .img, .qcow2 or .raw that the virtual machine should be created from. + efiEnabled: Booting in EFI mode + secureBoot: Secure Boot + volume: + dragTip: Drag and drop volumes, or use the volume's arrows, to change the boot order. + volumeTip: The VM only contains a cd-rom volume. You may want to add additional disk volumes. + macTip: "MAC address as seen inside the guest system." + volumeUpdate: 'Set volume { name } successfully' + type: Type + size: Size + edit: Edit + bus: Bus + bootOrder: Boot Order + volume: Volume + dockerImage: Docker Image + addVolume: Add Volume + addExistingVolume: Add Existing Volume + addVmImage: Add VM Image + addContainer: Add Container + setFirst: Set as root volume + saveVolume: Update Volume + title: + vmImage: Image Volume + existingVolume: Existing Volume + volume: Volume + container: Container + unmount: + title: Are you sure? + message: Are you sure you want to unmount this volume? + network: + title: Network + addNetwork: Add Network + addPort: Add Port + cloudConfig: + title: Cloud Config + createTemplateTitle: 'Create {name}.' + createNew: Create new... + cloudInit: + label: Cloud Init + placeholder: Select a template + user: + label: User Data Template + title: "User Data:" + tip: "You can specify user data to configure an instance or run a configuration script during launch. If you launch more than one instance at a time, the user data is available to all the instances in that reservation. Learn more" + network: + label: Network Data Template + title: "Network Data:" + tip: "The network-data configuration allows you to customize the instance’s networking interfaces by assigning subnet configuration, virtual device creation (bonds, bridges, vlans) routes and DNS configuration. Learn more" + scheduling: + affinity: + anyNode: 'Run VM on any available node' + schedulingRules: 'Run VM on node(s) matching scheduling rules' + specificNode: Run VM on specific node - (Live migration is not supported) + networkNotSupport: Network not support schedule + accessCredentials: + resetPwd: + label: Add Basic Auth + injectSSH: + label: Add SSHKey + users: Select Users + addUser: Add User + tips: qemu-guest-agent must be installed to enable Access Credentials, the VM should be restarted after credentials added. Need to enter the VM to edit password or remove SSH-Key after deleting the credentials. + userTips: The user to be added must already exist; otherwise, the credentials will not take effect. + duplicatedUser: User already exist. + invalidUser: Invalid Username. + input: + name: Name + memory: Memory + image: Image + sshKey: SSHKey + sshKeyValue: SSH-Key + MachineType: Machine Type + username: Username + password: Password + reservedMemory: Reserved Memory + machineTypeTip: 'Specify a processor architecture to emulate. To see a list of supported architectures, run: qemu-system-x86_64 -cpu ?' + detail: + tabs: + overview: Overview + details: Details + environment: Environment + events: Events + migration: Migration + console: Console + networkInterfaces: Network Interfaces + disks: Disks + networks: Networks + basics: Basics + configurations: Configurations + inventory: Inventory + hostBasic: Basic Attributes + instance: Virtual Machines + monitor: Monitor Data + keypairs: SSH Keys + cloudConfig: Cloud Config + metrics: VM Metrics + details: + title: + vmDetails: Virtual Machine Details + requirements: Scheduling and resources requirements + services: Services + users: Logged in users + name: Name + namespace: Namespace + created: Created + hostname: Hostname + node: Node + ipAddress: IP Address + status: Status + pod: Pod + labels: Labels + bootOrder: Boot Order + annotations: Annotations + CDROMs: CD-ROMs + description: Description + operatingSystem: Operating System + template: Template + kernelRelease: Kernel Release + owner: Owner + workloadProfile: Workload Profile + nodeSelector: Node Selector + flavor: Flavor + tolerations: Tolerations + dedicatedResources: Dedicated Resources + down: VM not running + affinityRules: Affinity Rules + sourceNode: Source Node + targetNode: Target Node + started: Started + ended: Ended + notAvailable: Not available + GuestAgentNotInstalled: Guest agent required + noOwner: No Owner + events: + from: Generated from + down: No events in the past hour + console: + down: This Virtual Machine is down. Please start it to access its console. + shortcutKeys: Shortcut Keys + customShortcutKeys: Custom Shortcut Keys + management: Management Shortcut Keys + record: + start: Record + recording: Recording + stop: Stop Recording + tips: Pressing the record button will capture your keyboard inputs. + send: Send + preferredKeys: Preferred Custom Shortcut Keys + terminationGracePeriodSeconds: + label: Termination Grace Period + affinity: + thisPodNamespace: This VM's namespace + matchExpressions: + inNamespaces: "Workloads in these namespaces" + namespaces: + label: Namespaces + + volume: + label: Volumes + tabs: + basics: Basics + snapshots: Snapshots + datasource: Data Source + details: Details + size: Size + source: Source + kind: Kind + sourceOptions: + new: New + vmImage: VM Image + image: Image + frontend: Frontend + blockdev: Block Device + attachedNode: Attached Node + endpoint: Endpoint + diskTags: Disk Tags + nodeTags: Node Tags + lastBackup: Last Backup + lastBackupAt: Last Backup At + replicasNumber: Replicas Number + promptRemove: + tips: "Warn: The snapshots of volume will be deleted with volume." + externalLink: + tips: Check volume details + rebuildingMessage: 'Rebuilding: {percentage}%' + + image: + label: Images + tabs: + basics: Basics + url: URL + size: Size + urlTip: 'supports the raw and qcow2 image formats which are supported by qemu. Bootable ISO images can also be used and are treated like raw images.' + fileName: File Name + uploadFile: Upload File + source: Source + sourceType: + download: URL + upload: File + warning: + uploading: |- + {count, plural, + =1 {1 image is uploading, please do not refresh or close the page.} + other {{count} images are uploading, please do not refresh or close the page.} + } + + vmTemplate: + label: Templates + tabs: + basics: Basics + nameNsDescription: + name: Template Name + tips: + notExistImage: + title: Image {name} does not exist! + message: Please select a new Image. + notExistNode: + title: Node {name} does not exist! + message: Please select a new Node. + + upgradePage: + upgradeApp: Upgrade Software + upgrade: Upgrade + upgradeTip: Please select the version you want to upgrade to + currentVersion: CURRENT VERSION + versionLabel: AVAILABLE COMPATIBLE VERSIONS + enableLogging: Enable Logging + upgradeNode: Upgrading Node + upgradeSysService: Upgrading System Service + upgradeImage: Download Upgrade Image + osUpgrade: OS Upgrade + uploadNew: Upload New Image + selectExisting: Select Existing Image + createRepository: Creating Upgrade Repository + succeeded: Succeeded + releaseTip: Please read the upgrade documentation carefully. You can view details on the Harvester Release Note. + checkReady: I have read and understood the upgrade content related to this Harvester version. + pending: Pending + repoInfo: + upgradeStatus: Upgrade Status + os: OS + kubernetes: Kubernetes + monitoringChart: Monitoring Chart + harvesterChart: Harvester Chart + success: Success + fail: Fail + ongoing: on-going + downloadLog: Download Log + logStatus: Log Download Status + dismissMessage: Dismiss it + upgradeInfo: + warning: WARNING + doc: Before you upgrade to the newer Harvester version, you must perform the required pre-upgrade checks for your cluster. Complete only those tasks that apply to your environment. + tip: Failure to perform these checks may result in a failed upgrade or hitting known issues that require a manual workaround fix. + moreNotes: For more details about the release notes, please visit - + + backup: + label: VM Backups + createText: Restore Backup + title: Restore Virtual Machine + backupTargetTip: The endpoint used to access the backupstore. NFS and S3 are supported. + message: + noSetting: + prefix: You must configure the backup target in + middle: 'setting' + suffix: before creating a new backup. + errorTip: + prefix: Backup Target value in + middle: Setting + suffix: "is invalid, error: " + viewSetting: + prefix: Click + middle: here + suffix: to view the backup config. + testConnect: + actionLabel: Test connection + waitingLabel: Testing connection... + successLabel: Connection tested + successMessage: 'Harvester can successfully connect to the endpoint {endpoint}' + restore: + backup: Backup + deletePreviousVolumes: Delete Previous Volumes + createNew: Create new + replaceExisting: Replace existing + virtualMachineName: Virtual Machine Name + matchTarget: The current backup target does not match the existing one. + + network: + label: VM Networks + tabs: + basics: Basics + layer3Network: Route + clusterNetwork: + label: Cluster Network + create: Create a New Cluster Network + toolTip: Define your custom cluster scope network name + createPlaceholder: Input a new Cluster Network name + selectOrCreatePlaceholder: Select or Create a new Cluster Network + selectPlaceholder: Select a Cluster Network + layer3Network: + mode: + label: Mode + auto: Auto(DHCP) + manual: Manual + serverIPAddr: + label: DHCP Server IP + gateway: + label: Gateway + placeholder: e.g. 172.16.0.1 + cidr: + label: CIDR + placeholder: e.g. 172.16.0.1/24 + sshKey: + label: SSH Keys + keypair: SSH Key + tabs: + basics: Basics + + setting: + label: Settings + tabs: + advanced: Advanced + ui: UI + validation: + physicalNIC: DefaultPhysicalNIC + placeholder: + accessKeyId: specify your access key id + secretAccessKey: specify your secret access key + cert: upload a self-signed SSL certificate + vlanChangeTip: The newly modified default network interface only applies to newly added nodes, not existing ones. + defaultPhysicalNIC: Default Network Interface + percentTip: The value in parentheses represents the distribution percentage of the network interface on all hosts. If an interface less than 100% is selected, the user needs to manually specify the network interface on the host where the vlan network configuration fails. + message: + ca: + prefix: 'Click' + middle: 'here' + suffix: 'to add a custom certificate.' + sslCertificates: + publicCertificate: Public Certificate + privateKey: Private Key + ca: CA + storageNetwork: + range: + placeholder: e.g. 172.16.0.0/24 + label: IP Range + invalid: '"Range" is invalid.' + clusterNetwork: Cluster Network + vlan: VLAN ID + exclude: + label: Exclude + placeholder: e.g. 172.16.0.1/32 + invalid: '"Exclude list" is invalid.' + addIp: Add Exclude IP + warning: 'WARNING:
Any change to storage-network requires shutting down all VMs before applying this setting.
Users have to ensure the Cluster Network is configured and VLAN Config will cover all nodes and ensure the network connectivity is working and expected in all nodes.' + tip: 'IP Range should be in IPV4 format. Number of IPs Required = Number of Nodes * 4 + Number of Disks * 2 + Number of Images to Download/Upload . See doc for more details.' + vmForceDeletionPolicy: + period: Period + httpProxy: + warning: 'WARNING:
If you configure "http-proxy" and "https-proxy", you must also put Harvester node's CIDR into "no-proxy", otherwise the Harvester cluster will be broken.' + supportBundleImage: + imagePullPolicy: Pull Policy + repo: Repository + tag: Tag + csiDriverConfig: + provisioner: Provisioner + volumeSnapshotClassName: Volume Snapshot Class Name + backupVolumeSnapshotClassName: Backup Volume Snapshot Class Name + containerdRegistry: + mirrors: + mirrors: Mirrors + registryName: Registry Name + endpoints: Endpoints + rewrite: + rewrite: Rewrite + addRewrite: Add Rewrite + addMirror: Add Mirror + configs: + configs: Configs + registryEDQNorIP: Registry FDQN or IP + registryPlaceholder: myregistry.local:5000 + username: Username + password: Password + auth: Auth + identityToken: Identity Token + insecureSkipVerify: InsecureSkipVerify + addConfig: Add Config + + upgrade: + selectExitImage: Please select the OS image to upgrade. + imageUrl: Please input a valid image url. + chooseFile: Please select to upload an image. + checksum: Checksum + harvesterMonitoring: + label: Harvester Monitoring + section: + prometheus: Prometheus + prometheusNodeExporter: Prometheus Node Exporter + grafana: Grafana + alertmanager: Alertmanager + tips: + scrape: Interval between consecutive scrapes + evaluation: Interval between consecutive evaluations + retention: How long to retain metrics + retentionSize: Maximum size of metrics + clusterRegistrationUrl: + message: To completely unset the imported Harvester cluster, please also remove it on the Rancher dashboard UI via the Virtualization Management page. + ntpServers: + isNotIPV4: The address you entered is not IPv4 or host. Please enter a valid IPv4 address or a host address. + isDuplicate: There are duplicate NTP server configurations. + cloudTemplate: + label: Cloud Config Templates + templateType: Template Type + userData: User Data + networkData: Network Data + + support: + title: Harvester Support + kubeconfig: + title: Download KubeConfig + titleDescription: Download kubeconfig for debugging. + internal: + rancher: + title: Access Embedded Rancher UI + titleDescription: We only support to use the embedded Rancher dashboard for debugging and validation purpose. For Rancher's multi-cluster and multi-tenant integration, please refer to the docs here. + longhorn: + title: Access Embedded Longhorn UI + titleDescription: We only support to use the embedded Longhorn UI for debugging and validation purpose. + community: + learnMore: Find out more about SUSE Harvester support + pricing: Contact us for pricing + + namespace: + label: Namespaces + + projectNamespace: + label: Projects/Namespaces + + vip: + namespace: + label: Namespace + cidr: + label: CIDR/IP Range + invalid: '"CIDR/IP Range" is invalid.' + toolTip: "We can apply multiple pools or ranges by seperating them with commas. i.e. 192.168.0.200/30,192.168.0.200/29 or 192.168.0.10-192.168.0.11" + add: + label: Add IP Pools + + sslParameters: + protocols: + label: Protocols + ciphers: + label: Ciphers + + monitoring: + configuration: + label: Configuration + alertmanagerConfig: + label: Alertmanager Configs + diabledMonitoringTips: + prefix: 'You must enable' + middle: 'Monitoring' + suffix: 'addon at first.' + diabledAlertingTips: + prefix: 'You must enable' + middle: 'Alertmanager' + suffix: 'for configs to take effect.' + disabledAddon: + prefix: 'Monitoring Addon is disabled now, click' + middle: 'here' + suffix: 'to enable it.' + + logging: + configuration: + section: + fluentbit: Fluentbit + fluentd: Fluentd + clusterFlow: + label: Cluster Flow + clusterOutput: + label: Cluster Output + flow: + label: Flow + output: + label: Output + diabledTips: + prefix: 'You must enable' + middle: 'Logging' + suffix: 'for configs to take effect.' + + snapshot: + label: Volume Snapshots + targetVolume: Original Volume + size: Size + image: Image + + vmSnapshot: + label: VM Snapshots + createText: Restore Snapshot + snapshot: Snapshot + + storage: + label: Storage + useDefault: Use the default storage + migratable: + label: Migratable + numberOfReplicas: + label: Number Of Replicas + staleReplicaTimeout: + label: Stale Replica Timeout + nodeSelector: + label: Host Selector + diskSelector: + label: Disk Selector + storageClass: + label: Storage Class + title: Storage Classes + customize: + volumeBindingMode: + later: Bind and provision a persistent volume once a VM using the PersistentVolumeClaim is created + parameters: + numberOfReplicas: + label: Number Of Replicas + staleReplicaTimeout: + label: Stale Replica Timeout + diskSelector: + label: Disk Selector + no-options: No available tags, please add in the `Host > Storage` page + nodeSelector: + label: Node Selector + no-options: No available tags, please add in the `Host > Storage` page + migratable: + label: Migratable + allowedTopologies: + title: Allowed Topologies + tooltip: Allowed Topologies helps scheduling VMs on hosts which match all of below expressions. + + vlanConfig: + title: Network Configs + createNetworkConfig: Create Network Config + action: + migrate: Migrate + titles: + nodeSelector: Node Selector + uplink: Uplink + bondOptions: Bond Options + attributes: Attributes + host: Selected Hosts + scheduling: + affinity: + allNodes: Select all nodes + specificNode: Select specific node + schedulingRules: Select node(s) matching rules + uplink: + nics: + label: NICs + addLabel: Add NIC + placeholder: Select a NIC that is available on all the selected nodes + validate: + available: NIC "{nic}" is not available on the selected nodes + linkAttributes: + mtu: + label: MTU + bondOptions: + mode: + label: Mode + miimon: + label: Miimon + tooltip: -1 means to keep the original value + nodeSelector: + matchingNodes: + matchesSome: |- + {matched, plural, + =0 {Matches 0 of {total, number} Nodes.} + =1 {Matches 1 of {total, number} Nodes: "{sample}"} + other {Matches {matched, number} of {total, number} existing Nodes, including "{sample}"} + } + + vlanStatus: + vlanConfig: + label: Network Config + + clusterNetwork: + title: Cluster Networks/Configs + create: + button: + label: Create Cluster Network + clusterNetwork: There are no network configs defined. + mgmt: mgmt is a built-in cluster management network and does not support any additional network configurations. + notExist: 'Cluster Network "{ clusterNetwork }" does not exist' + notReady: 'Cluster Network "{ clusterNetwork }" is not ready' + + addons: + descriptions: + 'harvester-system/vm-import-controller': vm-import-controller is an addon to help migrate VM workloads from other source clusters to an existing Harvester cluster. + 'harvester-system/pcidevices-controller': pcidevices-controller is an addon to help discover PCI devices for nodes in your cluster and allow users to prepare devices for PCI Passthrough, for use with Harvester VM and guest Clusters. + 'cattle-logging-system/rancher-logging': rancher-logging is an addon to collect versatile logs, events and audits from the Harvester cluster and route them to many kinds of servers based on flows. + 'harvester-system/rancher-vcluster': rancher-vcluster deploys a vcluster with rancher installed. + 'cattle-monitoring-system/rancher-monitoring': rancher-monitoring is an addon to collect Harvester cluster and VM metrics, view them on the embedded dashboard, and send alert(s) to remote servers. + 'vm-import-controller': vm-import-controller is an addon to help migrate VM workloads from other source clusters to an existing Harvester cluster. + 'pcidevices-controller': pcidevices-controller is an addon to help discover PCI devices for nodes in your cluster and allow users to prepare devices for PCI Passthrough, for use with Harvester VM and guest Clusters. + 'rancher-logging': rancher-logging is an addon to collect versatile logs, events and audits from the Harvester cluster and route them to many kinds of servers based on flows. + 'rancher-monitoring': rancher-monitoring is an addon to collect Harvester cluster and VM metrics, view them on the embedded dashboard, and send alert(s) to remote servers. + 'rancher-vcluster': rancher-vcluster deploys a vcluster with rancher installed. + 'harvester-seeder': harvester-seeder is an addon that uses ipmi and redfish to discover hardware information and perform out-of-band operations. + 'harvester-system/harvester-seeder': harvester-seeder is an addon that uses ipmi and redfish to discover hardware information and perform out-of-band operations. + vmImport: + titles: + basic: Basic + pvc: Volume + rancherVcluster: + accessRancher: Access Rancher Dashboard + hostname: Hostname + rancherVersion: Rancher Version + password: Bootstrap Password + switchFailed: "{action} {name} failed!" + + + + loadBalancer: + label: Load Balancers + tabs: + basic: Basic + listeners: Listeners + healthCheck: Health Check + backendServer: Backend Server Selector + workloadType: + label: Workload Type + options: + cluster: Guest Kubernetes Cluster + vm: Virtual Machine + ipam: + label: IPAM + options: + dhcp: DHCP + pool: Pool + ipPool: + label: IP Pool + options: + none: Auto (Select IP Pool automatically) + listeners: + name: + label: Name + protocol: + label: Protocol + port: + label: Port + backendPort: + label: Backend Port + placeholder: e.g. 80 + backendServerSelector: + matchingVMs: + matchesSome: |- + {matched, plural, + =0 {Matches 0 of {total, number} virtual machines in the namespace where the load balancer is.} + =1 {Matches 1 of {total, number} virtual machines in the namespace where the load balancer is: "{sample}"} + other {Matches {matched, number} of {total, number} existing virtual machines in the namespace where the load balancer is, including "{sample}"} + } + backendServers: + label: Backend Servers + + ipPool: + label: IP Pools + network: + label: VM Network + tabs: + range: Range + scope: Scope + selector: Selector + subnet: + label: Subnet + startIP: + label: Start IP + endIP: + label: End IP + gateway: + label: Gateway + namespace: + label: Namespace + project: + label: Project + guestCluster: + label: Guest Kubernetes Cluster + availableIP: + label: Available IP Count + scope: + label: Scope + addLabel: Add Scope + priority: + label: Priority + cidr: + addLabel: Add CIDR + range: + addLabel: Add Range + + service: + healthCheckPort: + label: Health Check Port + healthCheckSuccessThreshold: + label: Health Check Success Threshold + description: If the number of times the prober continuously detects an address successfully reaches the success threshold, then the backend server can start to forward traffic. + healthCheckFailureThreshold: + label: Health Check Failure Threshold + description: The backend server will stop forwarding traffic if the number of health check failures reaches the failure threshold. + healthCheckPeriod: + label: Health Check Period + healthCheckTimeout: + label: Health Check Timeout + healthCheckEnabled: + label: Health Check + + secret: + label: Secrets + + sriov: + label: SR-IOV Network Devices + nodeName: Node + numVFs: Number Of Virtual Functions + vfAddresses: Virtual Functions Addresses + showMore: Show More + parentSriov: Filter By Parent SR-IOV + + harvesterVlanConfigMigrateDialog: + targetClusterNetwork: + label: Target Cluster Network + placeholder: Choose Target Cluster Network + + seeder: + banner: + enable: + prefix: Addon "harvester-seeder" is disabled now, + middle: click here + suffix: to enable it. + noAccess: Please contact system admin to enable the Out-of-Band Access first. + noAddon: Addon "harvester-seeder" is not exist, please check if it is installed. + noInventory: Waiting for "inventories.metal.harvesterhci.io" to be ready. + inventory: + host: + label: Host + placeholder: e.g. 172.16.1.1 + port: + label: Port + placeholder: e.g. 623 + insecureTLS: + label: Insecure TLS + secret: + label: Secret + create: + title: Add Secret + event: + label: Event + pollingInterval: + label: Polling Interval + + affinity: + thisPodNamespace: This VM's namespace + matchExpressions: + inNamespaces: "Workloads in these namespaces" + vmAffinityTitle: VM Scheduling + namespaces: + placeholder: e.g. default,system,base + label: Namespaces + addLabel: Add Workload Selector + topologyKey: + placeholder: 'topology.kubernetes.io/zone' + +advancedSettings: + descriptions: + 'harv-vlan': Default Network Interface name of the VLAN network. + 'harv-backup-target': Custom backup target to store VM backups. + 'branding': Branding allows administrators to globally re-brand the UI by customizing the Harvester product name, logos and color scheme. + 'harv-csi-driver-config': Configure additional information for csi drivers. + 'harv-containerd-registry': Containerd Registry Configuration to connect private registries. + 'harv-log-level': Configure Harvester server log level. Default to info. + 'harv-server-version': Harvester server version. + 'harv-upgrade-checker-enabled': Specify whether to enable Harvester upgrade check or not. Default is true. + 'harv-upgrade-checker-url': Default Harvester upgrade check url. Only used when the upgrade-checker-enabled is equal to true. + 'harv-ui-source': Config how to load the UI source. + 'harv-ui-index': 'HTML index location for the UI.' + 'harv-ui-plugin-index': 'JS index location for the harvester plugin UI.' + 'harv-cluster-registration-url': Registration URL for mutil-cluster management. + 'harv-http-proxy': 'HTTP proxy for Harvester to access external services.' + 'harv-additional-ca': 'Custom CA root certificates for TLS validation.' + 'harv-overcommit-config': 'Resource overcommit configuration.' + 'harv-support-bundle-timeout': 'Support Bundle timeout config in minutes, use 0 to disable the timeout.' + 'harv-vm-force-reset-policy': Config the force-reset action when a VM is stuck on a node that is down. + 'harv-ssl-parameters': Custom SSL Parameters for TLS validation. + 'harv-storage-network': 'Longhorn storage-network setting.' + 'harv-support-bundle-namespaces': Specify resources in other namespaces to be collected by the support package. + 'harv-auto-disk-provision-paths': Specify the disks(using glob pattern) that Harvester will automatically add as VM storage. + 'harv-support-bundle-image': Support bundle image configuration. Find different versions in rancher/support-bundle-kit. + 'harv-release-download-url': This setting allows you to configure the upgrade release download URL address. Harvester will get the ISO URL and checksum value from the ($URL/$VERSION/version.yaml) file hosted by the configured URL. + 'harv-default-vm-termination-grace-period-seconds': Config the VM termination grace period for VM stop. + 'harv-ntp-servers': Configure NTP server. You can configure multiple IPv4 addresses or host addresses. + +typeLabel: + kubevirt.io.virtualmachine: |- + {count, plural, + one { Virtual Machine } + other { Virtual Machines } + } + harvesterhci.io.virtualmachineimage: |- + {count, plural, + one { Image } + other { Images } + } + harvesterhci.io.keypair: |- + {count, plural, + one { SSH Key } + other { SSH Keys } + } + harvesterhci.io.host: |- + {count, plural, + one { Host } + other { Hosts } + } + harvesterhci.io.networkattachmentdefinition: |- + {count, plural, + one { VM Network } + other { VM Networks } + } + harvesterhci.io.volume: |- + {count, plural, + one { Volume } + other { Volumes } + } + harvesterhci.io.user: |- + {count, plural, + one { User } + other { Users } + } + harvesterhci.io.setting: |- + {count, plural, + one { Setting } + other { Settings } + } + harvesterhci.io.virtualmachinetemplateversion: |- + {count, plural, + one { Template } + other { Templates } + } + harvesterhci.io.virtualmachinebackup: |- + {count, plural, + one { VM Backup } + other { VM Backups } + } + harvesterhci.io.cloudtemplate: |- + {count, plural, + one { Cloud Config Template } + other { Cloud Config Templates } + } + harvesterhci.io.volumesnapshot: |- + {count, plural, + one { Volume Snapshot } + other { Volume Snapshots } + } + harvesterhci.io.vmsnapshot: |- + {count, plural, + one { VM Snapshot } + other { VM Snapshots } + } + network.harvesterhci.io.vlanconfig: |- + {count, plural, + one { Network Config } + other { Network Configs } + } + harvesterhci.io.monitoring.alertmanagerconfig: |- + {count, plural, + one { Alertmanager Config } + other { Alertmanager Configs } + } + harvesterhci.io.logging.clusterflow: |- + {count, plural, + one { Cluster Flow } + other { Cluster Flows } + } + harvesterhci.io.logging.clusteroutput: |- + {count, plural, + one { Cluster Output } + other { Cluster Outputs } + } + harvesterhci.io.logging.flow: |- + {count, plural, + one { Flow } + other { Flows } + } + harvesterhci.io.logging.output: |- + {count, plural, + one { Output } + other { Outputs } + } + harvesterhci.io.storage: |- + {count, plural, + one { Storage Class } + other { Storage Classes } + } + devices.harvesterhci.io.pcidevice: |- + {count, plural, + one { PCI Device } + other { PCI Devices } + } + persistentvolumeclaim: |- + {count, plural, + one { Volume } + other { Volumes } + } + network.harvesterhci.io.clusternetwork: |- + {count, plural, + one { Cluster Network } + other { Cluster Networks } + } + devices.harvesterhci.io.sriovnetworkdevice: |- + {count, plural, + one { SR-IOV Network Device } + other { SR-IOV Network Devices } + } + harvesterhci.io.secret: |- + {count, plural, + one { Secret } + other { Secrets } + } + harvesterhci.io.blockdevice: |- + {count, plural, + one { Disk } + other { Disks } + } + loadbalancer.harvesterhci.io.loadbalancer: |- + {count, plural, + one { Load Balancer } + other { Load Balancers } + } + loadbalancer.harvesterhci.io.ippool: |- + {count, plural, + one { IP Pool } + other { IP Pools } + } diff --git a/pkg/harvester/l10n/zh-hans.yaml b/pkg/harvester/l10n/zh-hans.yaml new file mode 100644 index 00000000..c30cadab --- /dev/null +++ b/pkg/harvester/l10n/zh-hans.yaml @@ -0,0 +1,1431 @@ +generic: + tip: 提示 + resourceExternalLinkTips: '外部链接' + namespace: 命名空间 + notReady: 未就绪 + labels: 标签 + inProgress: 进行中 + basic: 基本信息 + +nav: + group: + networks: 网络 + backupAndSnapshot: 备份 & 快照 + Monitoring: 监控 + Logging: 日志 + 'Monitoring & Logging': 监控 & 日志 + +resourceTable: + groupBy: + device: 按设备分组 + +validation: + arrayCountRequired: "至少需要 {count} 个 {key},而且 {key} 不能为空。" + +members: + clusterMemebership: 集群成员 + projectMembership: 项目成员 + +asyncButton: + restart: + action: 保存并重启 + success: 已重启 + waiting: 正在重启… + +harvester: + productLabel: 'Harvester' + modal: + backup: + success: '已启动备份 { backUpName }。' + addBackup: 添加备份 + restore: + success: '{ name } 还原创建成功。' + title: 备份还原 + selectBackup: 选择备份 + message: + backup: 请选择需要还原的备份。 + createTemplate: + title: '生成模板' + name: '名称' + description: '描述' + message: + tip: 请输入模板名称。 + success: '模板 { templateName } 创建成功。' + failed: '生成模板失败。' + cloneVM: + title: 克隆虚拟机 + name: 新虚拟机名称 + type: 克隆数据卷 + action: + create: 创建 + clone: 克隆 + message: + tip: 请输入虚拟机名称。 + success: '虚拟机 { name } 克隆成功。' + failed: '虚拟机克隆失败!' + exportImage: + title: 导出镜像 + name: 名称 + namespace: 命名空间 + message: + success: '镜像 { name } 创建成功。' + migration: + failedMessage: 最新迁移失败。 + title: 迁移 + fields: + nodeName: + label: 目标节点 + placeholder: 选择目标节点 + ejectCDROM: + title: 弹出 CDROM + warnTip: 如果你弹出卷,虚拟机将重启。 + operationTip: '选择要删除的卷:' + delete: 删除 + bundle: + title: 生成 Support Bundle + url: Issue URL + description: 描述 + requiredDesc: 描述是必填项。 + titleDescription: 收集 Harvester 系统日志,用于定位问题和获取支持。 + hotplug: + success: '卷 { diskName } 已挂载到 { vm }。' + title: 添加卷 + hotunplug: + success: '卷 { name } 拔出成功。' + snapshot: + title: 生成快照 + name: 名称 + message: + success: '快照 { name } 生成成功。' + volumeClone: + title: 克隆卷 + name: 名称 + message: + success: '{ name } 克隆成功。' + restoreSnapshot: + title: 还原快照 + name: '新卷名称' + success: '{ name } 已成功还原。' + vmSnapshot: + title: 生成 VM 快照 + name: 名称 + success: 'VM 快照 { name } 生成成功。' + restart: + title: 重启 VM + tip: 立即重启 VM 以使配置更改生效。 + cancel: 保存 + notification: + title: + succeed: 成功 + info: 信息 + warning: 警告 + error: 错误 + action: + createVM: 创建虚拟机 + start: 启动 + restart: 重启 + softreboot: 安全重启 + stop: 停止 + pause: 暂停 + deepClone: 克隆 + shallowClone: 克隆模板 + unpause: 取消暂停 + ejectCDROM: 弹出 CDROM + launchFormTemplate: 从模板启动实例 + modifyTemplate: 修改模板(创建新版本) + setDefaultVersion: 设置默认版本 + addTemplateVersion: 添加模板版本 + backup: 备份 + restore: 还原 + restoreNewVM: 还原新的虚拟机 + restoreExistingVM: 替换现有虚拟机 + migrate: 迁移 + abortMigration: 中止迁移 + createTemplate: 生成模板 + enableMaintenance: 开启维护模式 + disableMaintenance: 关闭维护模式 + cordon: 封锁 + uncordon: 解除封锁 + addHotplug: 添加卷 + exportImage: 导出镜像 + viewlogs: 查看日志 + cancelExpand: 取消展开 + snapshot: 生成快照 + pvcClone: 克隆卷 + vmSnapshot: 生成 VM 快照 + shutdown: 关机 + powerOn: 开机 + reboot: 重启 + forceStop: 强制停止 + tableHeaders: + size: 大小 + progress: 进度 + message: 消息 + phase: 阶段 + attachedVM: 挂载的虚拟机 + fingerprint: 唯一标识 + value: 值 + actions: 操作 + readyToUse: 可用 + backupTarget: 备份路径 + targetVm: 目标虚拟机 + hostIp: 主机 IP + vm: + ipAddress: IP 地址 + node: 节点 + defaultVersion: 默认版本 + network: + type: 类型 + vlan: Vlan ID + snapshotTargetVolume: 原始卷 + volumeSnapshotCounts: 快照数量 + networkState: 网络状态 + storageClass: 存储类 + tab: + volume: 卷 + network: 网络 + advanced: 高级选项 + accessCredentials: 凭证管理 + pciDevices: PCI 设备 + vmScheduling: 虚拟机调度 + instanceLabel: 实例标签 + fields: + version: 版本 + name: 名称 + type: 类型 + image: 镜像 + size: 大小 + volume: 卷 + network: 网络 + model: 模式 + macAddress: MAC 地址 + port: 端口 + protocol: 协议 + remove: 删除 + PhysicalNic: 物理网卡 + cpu: CPU + memory: 内存 + virtualName: 虚拟机名称 + promiscuous: Promiscuous + ipv4Address: IPv4 地址 + filterLabels: 标签过滤 + storageClass: 存储类 + dockerImage: Docker 镜像 + pci: + available: 可用设备 + compatibleNodes: 兼容节点 + impossibleSelection: '没有具有所选设备的主机。' + howToUseDevice: '使用下表,在你想在这个 VM 中使用的每个设备上启用 PCI 透传' + deviceInTheSameHost: '你只能选择同一主机上的设备。' + oldFormatDevices: + help: |- +

+ 以下 PCI 设备使用旧的命名方式,需要在 YAML 文件中更新: +

+
    + {oldFormatDevicesHTML} +
+

+ 请根据以下说明更新虚拟机: +

+
    +
  1. 停止虚拟机,编辑虚拟机 YAML 文件,删除 hostDevices 部分,并将更改保存到 YAML 文件中。
  2. +
  3. 编辑虚拟机,从可用的 PCI Device 列表中添加已启用的 PCI Device,然后保存并启动虚拟机。
  4. +
+ showCompatibility: 显示设备兼容性矩阵 + hideCompatibility: 隐藏设备兼容性矩阵 + claimError: 在 {name} 上启用透传时出错 + unclaimError: 在 {name} 上禁用透传时出错 + cantUnclaim: 不能在其他用户声明的设备上禁用透传。 + enableGroup: 启用组 + disableGroup: 禁用组 + labelRequired: "不要手动更改此规则:此规则确保为该虚拟机选择的 PCI 设备在 VM 的主机上可用。" + goSetting: + prefix: pcidevices-controller 插件未启用,单击 + middle: 此处 + suffix: 使它能够管理你的 PCI 设备。 + noPCIPermission: 请联系系统管理员启用 PCI 设备。 + enablePassthroughWarning: 请不要使用宿主机专用的 PCI 设备(例如,管理网络和 VLAN 网络的网卡)。错误的设备分配可能会损坏你的集群(包括节点故障)。 + matrixHostName: 主机名 + matrixDeviceClaimName: 设备声明名称 + generic: + close: 关闭 + open: 打开 + showMore: 显示更多 + hideMore: 隐藏更多 + memory: 内存 + cpu: CPU + storage: 存储 + noFileChosen: 没有选择任何文件 + noSchema: "找不到自定义资源定义:{schema}。" + + validation: + custom: + tooLongName: '"Name" 的长度不能超过 {max} 个字符。' + generic: + hasDelete: '{type} "{name}" 已删除。' + maxLength: '"{key}" 的长度不能超过 {max} 个字符' + tabError: '{prefix}: {message}' + maximumSize: "超过最大大小 {max}!" + regex: '无效的 {lowerType} "{name}":{upperType} 必须匹配正则表达式 "{regex}"' + vm: + name: '"名称"是必填项。' + memory: '"内存"是必填项。' + duplicatedName: '{type} 名称重复:"{name}"' + network: + macFormat: 'MAC 地址格式不正确。' + upperType: 网络名称 + lowerType: 网络名称 + volume: + upperType: 卷名称 + lowerType: 卷名称 + needImageOrExisting: '至少需要一个镜像卷或已存在的根磁盘卷。' + image: + ruleTip: 'URL 后缀不支持。仅支持后缀为 .img,.iso,.qcow,.qcow2或.raw的镜像文件。' + ruleFileTip: '文件后缀不支持。仅支持后缀为 .img,.iso,.qcow,.qcow2或.raw的镜像文件。' + + dashboard: + label: 仪表板 + header: "Harvester 集群:{cluster}" + hardwareResourceGauge: + cpu: CPU + memory: 内存 + storage: 存储 + sections: + events: + label: 事件 + vmMetrics: + label: 虚拟机指标 + + version: 版本 + host: + console: 控制台 + label: 主机 + inconsistentIP: "主机 IP 不一致,当前 IP:{currentIP},初始 IP:{initIP}" + promote: + none: ' ' + running: 角色升级中 + failed: 角色升级失败 + unknown: 角色升级中断 + promoteRestart: 角色升级重启中 + promoteSucceed: 角色升级完成 + tabs: + network: 网络 + overview: 概述 + basics: 基本信息 + instance: 虚拟机 + monitor: 监控数据 + storage: 存储 + labels: 标签 + ksmtuned: Ksmtuned + seeder: 外部访问 + detail: + kvm: + disableMessage: 基于硬件的虚拟化已禁用或不受支持。在创建虚拟机之前必须先启用基于硬件的虚拟化。 + title: + network: 网络配置 + hostIP: 主机 IP + role: 角色 + os: 操作系统 + create: 创建时间 + update: 上次更新时间 + customName: 自定义名称 + consoleUrl: 控制台地址 + more: 更多信息 + uuid: UUID + containerRuntime: 容器运行时 + kernel: 内核 + management: 管理节点 + compute: 计算节点 + storage: 存储 + nic: 物理网卡 + notRecommended: '不推荐' + networkType: 类型 + manufacturer: 制造商 + serialNumber: 序列号 + model: 模式 + enableMaintenance: + title: 开启维护模式 + protip: 该操作会将此节点上的所有虚拟机迁移到其他节点。 + force: 强制 + cordon: + title: 封锁 + protip: 此操作会将节点 { node } 标记为不可调度。 + ksmtuned: + run: 运行策略 + configure: 配置 + mode: 模式 + modeLink: 模式 + thresCoef: 阈值系数 + enableMergeNodes: 启用跨节点合并 + enable: 启用 + disable: 禁用 + ksmStatus: KSM 状态 + modeOption: + standard: 标准 + high: 高性能 + customized: 自定义 + parameters: + title: Ksmtuned 参数 + boost: Boost + decay: Decay + sleepMsec: 睡眠时间(毫秒) + minPages: 最小页数 + maxPages: 最大页数 + description: + boost: 如果可用内存小于阈值系数,那么每次扫描的页数会递增。 + decay: 如果可用内存大于阈值系数,那么每次扫描的页数会递减。 + sleepMsec: 两次扫描之间的间隔(最小值为 10ms),由公式(睡眠毫秒 * 16 * 1024 * 1024/总内存)计算得出。 + minPages: 每次扫描的最小页数,也是第一次运行的配置。 + maxPages: 每次扫描的最大页数。 + statistics: + title: 统计 + sharing: 共享 + shared: 共享 + unshared: 未共享 + volatile: 易失 + fullScans: 全量扫描 + stableNodeChains: 稳定的节点链 + stableNodeDups: 稳定节点重复 + disk: + add: 添加磁盘 + path: + label: 路径 + storageReserved: + label: 预留存储空间 + allowScheduling: + label: 调度 + evictionRequested: + label: 驱逐请求 + forceFormatted: + label: 强制格式化 + toolTip: 强制格式化将会清空磁盘数据。请确保你已对对数据进行备份,以免丢失。 + yes: 是(Ext4 文件系统) + description: + label: 描述 + lastFormattedAt: + info: 此磁盘已被强制格式化。 + notification: + success: '已更新主机 {name} 存储配置。' + error: 主机有未就绪或不可调度的磁盘。 + fileSystem: + info: 当前文件系统为 {system},你可以手动格式化。 + formatting: 正在格式化磁盘,请稍候。 + tags: + label: 磁盘标签 + addLabel: 添加磁盘标签 + conditions: 状态 + storageAvailable: + label: 可用存储 + storageScheduled: + label: 已调度存储 + storageMaximum: + label: 最大存储 + tags: + label: 主机标签 + addLabel: 添加主机标签 + powerAction: + message: + success: '主机 { name } { operation } 成功。' + ntp: + label: Ntp 服务器地址 + tips: 你可以配置多个 IPv4 地址或主机地址。 + placeholder: 例如:IPv4 + ntpSyncStatus: + isDisabled: 'NTP 已禁用。请检查 NTP 服务是否处于活动状态。' + isUnsynced: 'NTP 未同步 NTP 服务器 {current}' + ntpConfigSyncStatus: + isUnsynced: 'NTP 配置未同步。当前:{current},需求:{wanted} ' + + virtualMachine: + label: 虚拟机 + osType: 操作系统类型 + instance: + singleInstance: + multipleInstance: + single: + label: 单个实例 + nameLabel: 名称 + host: + label: 主机名 + placeholder: 默认为虚拟机名称。 + multiple: + label: 多个实例 + nameNsDescription: 每个实例的名称前缀 + count: 数量 + countTip: 范围:1-10 + nameLabel: 名称前缀 + host: + label: 主机名前缀 + placeholder: 默认为虚拟机名称。 + useTemplate: + label: "使用虚拟机模板:" + template: + label: 模板 + version: + label: 版本 + console: + novnc: 在 Web VNC 中打开 + serial: 在串行控制台中打开 + promptRemove: + title: '选择要删除的卷:' + deleteAll: 删除全部 + tips: "警告:删除 VM 将同时删除 VM 快照,而删除卷则会同时删除卷快照。" + unplug: + title: '是否确认要拔出卷 {name} ?' + actionLabel: 拔出 + detachVolume: + 拔出卷 + restartTip: |- + {restart, select, + true {重启} + other {启动} + }虚拟机以使配置更改生效。 + runStrategy: 运行策略 + restartNow: |- + {restart, select, + true {现在重启} + other {现在启动} + } + createSSHKey: 创建 SSH 密钥 + installAgent: 安装访客代理 + enableUsb: 启用 USB Tablet + advancedOptions: + tpm: 启用 TPM + usbTip: 提供绝对指针设备,有助于在 VNC 中获得一致的鼠标光标位置。 + sshTitle: 添加 SSH 公钥 + imageTip: 创建虚拟机所需的.iso,.img,.qcow2或.raw外部镜像地址 + efiEnabled: EFI 模式下启动 + secureBoot: 安全启动 + volume: + dragTip: 拖放卷或使用卷的箭头来更改引导顺序。 + volumeTip: 虚拟机仅包含一个 cd-rom 卷。你可能想要添加额外的磁盘卷。 + macTip: "访客系统内显示的 MAC 地址" + volumeUpdate: '卷 { name } 设置成功。' + type: 类型 + size: 大小 + edit: 编辑 + bus: Bus + bootOrder: 引导顺序 + volume: 卷 + dockerImage: Docker 镜像 + addVolume: 添加卷 + addExistingVolume: 添加现有卷 + addVmImage: 添加虚拟机镜像 + addContainer: 添加容器 + setFirst: 设置为根卷 + saveVolume: 更新卷 + title: + vmImage: 镜像卷 + existingVolume: 现有卷 + volume: 卷 + container: 容器 + unmount: + title: 是否确认? + message: 是否确认卸载此卷? + network: + title: 网络 + addNetwork: 添加网络 + addPort: 添加端口 + cloudConfig: + title: Cloud Config + createTemplateTitle: '创建 { name }。' + createNew: 创建... + cloudInit: + label: Cloud Init + placeholder: 选择模板 + user: + label: 用户数据模板 + title: "用户数据:" + tip: "你可以指定用户数据,以在启动时配置实例或运行配置脚本。如果一次启动多个实例,所有预留实均能使用用户数据。了解更多" + network: + label: 网络数据模板 + title: "网络数据:" + tip: "通过分配子网配置,创建虚拟设备(bonds,bridges,Vlan)路由和 DNS 配置,来自定义实例的网络接口。了解更多" + scheduling: + affinity: + anyNode: '在任何可用节点上运行虚拟机' + schedulingRules: '在匹配调度规则的节点上运行虚拟机' + specificNode: 在指定节点上运行虚拟机 -(不支持热迁移) + networkNotSupport: 网络不支持调度 + accessCredentials: + resetPwd: + label: 添加密码凭证 + injectSSH: + label: 添加 SSH 密钥凭证 + users: 选择用户 + addUser: 添加用户 + tips: 要启用访问凭证,你需要安装 qemu-guest-agent。更新凭证内容后无需重启,而添加凭证后需要重启虚拟机。删除凭证后,需要进入虚拟机手动修改密码/删除 SSH 密钥。 + userTips: 添加的用户需要存在,否则凭证不会生效。 + duplicatedUser: 用户已存在。 + invalidUser: 无效的用户名 + input: + name: 名称 + memory: 内存 + image: 镜像 + sshKey: SSH 密钥 + sshKeyValue: SSH 密钥 + MachineType: 主机类型 + username: 用户名 + password: 密码 + reservedMemory: 预留内存 + machineTypeTip: '指定要模拟的处理器架构。要查看支持的体系结构列表,请运行:qemu-system-x86_64 -cpu ?' + detail: + tabs: + overview: 概述 + details: 详情 + environment: 环境 + events: 事件 + migration: 迁移 + console: 控制台 + networkInterfaces: 网络接口 + disks: 磁盘 + networks: 网络 + basics: 基本信息 + configurations: 配置 + inventory: 清单 + hostBasic: 基本属性 + instance: 虚拟机 + monitor: 监控数据 + keypairs: SSH 密钥 + cloudConfig: Cloud Config + metrics: 虚拟机指标 + details: + title: + vmDetails: 虚拟机详情 + requirements: 调度和资源要求 + services: 服务 + users: 已登录用户 + name: 名称 + namespace: 命名空间 + created: 创建时间 + hostname: 主机名 + node: 节点 + ipAddress: IP 地址 + status: 状态 + pod: Pod + labels: 标签 + bootOrder: 引导顺序 + annotations: 注释 + CDROMs: CD-ROM + description: 描述 + operatingSystem: 操作系统 + template: 模板 + kernelRelease: 内核版本 + owner: 所有者 + workloadProfile: 工作负载配置文件 + nodeSelector: 节点选择器 + flavor: 规格 + tolerations: 容忍 + dedicatedResources: 专用资源 + down: 虚拟机未启动 + affinityRules: 亲和性规则 + sourceNode: 源节点 + targetNode: 目标节点 + started: 开始时间 + ended: 结束时间 + notAvailable: 不可用 + GuestAgentNotInstalled: 未安装 GuestAgent + noOwner: 没有所有者 + events: + from: 生成自 + down: 过去一小时没有事件 + console: + down: 此虚拟机已关闭。请启动虚拟机以访问其控制台。 + shortcutKeys: 快捷键 + customShortcutKeys: 自定义快捷键 + management: 管理快捷键 + record: + start: 记录 + recording: 记录中 + stop: 停止记录 + tips: 按下记录按钮后将捕获你的键盘输入。 + send: 发送 + preferredKeys: 首选自定义快捷键 + terminationGracePeriodSeconds: + label: 终止宽限期 + affinity: + thisPodNamespace: 此虚拟机的命名空间 + matchExpressions: + inNamespaces: "命名空间中的工作负载" + namespaces: + label: 命名空间 + + volume: + label: 卷 + tabs: + basics: 基本信息 + snapshots: 快照 + datasource: 数据源 + details: 详情 + size: 大小 + source: 源 + kind: 类型 + sourceOptions: + new: 创建 + vmImage: 虚拟机镜像 + image: 镜像 + frontend: 前端 + blockdev: 块设备 + attachedNode: 连接的节点 + endpoint: 端点 + diskTags: 磁盘标签 + nodeTags: 节点标签 + lastBackup: 上次备份 + lastBackupAt: 上次备份时间 + replicasNumber: 副本数 + promptRemove: + tips: "警告:卷的快照将随卷一起删除。" + externalLink: + tips: 查看卷详细信息 + rebuildingMessage: '重建进度:{percentage}%' + + image: + label: 镜像 + tabs: + basics: 基本信息 + url: URL + size: 大小 + urlTip: '支持被 qemu 支持的 rawqcow2 镜像格式。可引导的 ISO 镜像也是类似 raw 格式的镜像。' + fileName: 文件名称 + uploadFile: 上传文件 + source: 源 + sourceType: + download: URL + upload: 文件 + warning: + uploading: |- + {count, plural, + =1 {正在上传一个镜像。请不要刷新或关闭前页面。} + other {正在上传{count}个镜像。请不要刷新或关闭前页面。} + } + + vmTemplate: + label: 模板 + tabs: + basics: 基本信息 + nameNsDescription: + name: 模板名称 + tips: + notExistImage: + title: 镜像 {name} 不存在。 + message: 请选择一个新的镜像。 + notExistNode: + title: 节点 {name} 不存在。 + message: 请选择一个新的节点。 + + upgradePage: + upgradeApp: 升级软件 + upgrade: 升级 + upgradeTip: 请选择目标升级版本 + currentVersion: 当前版本 + versionLabel: 可用的兼容版本 + enableLogging: 启用 Logging + upgradeNode: 升级节点 + upgradeSysService: 升级系统服务 + upgradeImage: 下载升级镜像 + osUpgrade: 操作系统升级 + uploadNew: 上传新镜像 + selectExisting: 选择现有镜像 + createRepository: 创建升级仓库 + succeeded: 成功 + releaseTip: 请仔细阅读升级文档。你可以在 Harvester Release Note 上查看详细信息。 + checkReady: 我已阅读并理解与此 Harvester 版本相关的升级内容。 + pending: 等待 + repoInfo: + upgradeStatus: 升级状态 + os: 操作系统 + kubernetes: Kubernetes + monitoringChart: Monitoring Chart + harvesterChart: Harvester Chart + success: 成功 + fail: 失败 + ongoing: 进行中 + downloadLog: 下载日志 + logStatus: 日志下载状态 + dismissMessage: 忽略 + upgradeInfo: + warning: 警告 + doc: 在升级到新 Harvester 版本之前,你必须为集群执行所需的升级前检查。仅完成适用于环境的任务即可。 + tip: 如果没有执行这些检查,升级可能会失败,而且你可能会遇到需要手动修复的已知问题。 + moreNotes: 有关发行说明的详情,请访问 - + + backup: + label: 虚拟机备份 + createText: 还原备份 + title: 还原虚拟机 + backupTargetTip: 用于访问备份存储的端点。支持 NFS 和 S3。 + message: + noSetting: + prefix: 在创建新备份之前, 必须在 + middle: '设置' + suffix: 中配置备份目标。 + errorTip: + prefix: 非法的备份目标 + middle: 设置 + suffix: "。错误信息: " + viewSetting: + prefix: 点击 + middle: 此处 + suffix: 查看备份配置。 + testConnect: + actionLabel: 测试连接 + waitingLabel: 正在测试连接... + successLabel: 连接已测试 + successMessage: 'Harvester 可以成功连接到端点 {endpoint}' + restore: + backup: 备份 + deletePreviousVolumes: 删除先前的卷 + createNew: 创建 + replaceExisting: 替换现有 + virtualMachineName: 虚拟机名称 + matchTarget: 当前备份目标与现有目标不匹配。 + + network: + label: 虚拟机网络 + tabs: + basics: 基本信息 + layer3Network: 路由 + clusterNetwork: + label: 集群网络 + create: 创建新的集群网络 + toolTip: 定义你的自定义集群网络名称 + createPlaceholder: 输入新的集群网络名称 + selectOrCreatePlaceholder: 选择或创建新的集群网络 + selectPlaceholder: 选择集群网络 + layer3Network: + mode: + label: 模式 + auto: 自动(DHCP) + manual: 手动 + serverIPAddr: + label: DHCP 服务器 IP + gateway: + label: 网关 + placeholder: 例如:172.16.0.1 + cidr: + label: CIDR + placeholder: 例如:172.16.0.1/24 + sshKey: + label: SSH 密钥 + keypair: SSH 密钥 + tabs: + basics: 基本信息 + + setting: + label: 设置 + tabs: + advanced: 高级选项 + ui: UI + validation: + physicalNIC: 默认物理网卡 + placeholder: + accessKeyId: 指定你的访问密钥 ID + secretAccessKey: 指定你的密文访问密钥 + cert: 上传自签名 SSL 证书 + vlanChangeTip: 新修改的默认网络接口仅在新增节点生效,不在现有节点生效。 + defaultPhysicalNIC: 默认网络接口 + percentTip: 括号内的数值代表所有主机上的网络接口的分布比例。如果选择了一个小于100%的接口,用户需要手动指定 VLAN 网络配置失败的主机上的网络接口。 + message: + ca: + prefix: '点击' + middle: '此处' + suffix: '添加自定义证书。' + sslCertificates: + publicCertificate: 公共证书 + privateKey: 私钥 + ca: CA + storageNetwork: + range: + placeholder: 例如:172.16.0.0/24 + label: IP 范围 + invalid: '范围无效。' + clusterNetwork: 集群网络 + vlan: VLAN ID + exclude: + label: 排除 + placeholder: 例如:172.16.0.1/32 + invalid: '"排除列表"无效。' + addIp: 添加排除 IP + warning: '警告:
如果要更改存储网络,你需要在应用此设置之前关闭所有虚拟机。
用户必须确保配置了集群网络,VLAN 配置能覆盖所有节点,而且所有节点的网络正常。' + tip: IP 范围应为 IPV4 格式。所需 IP 数量 = 节点数量 * 4 + 磁盘数量 * 2 + 要下载/上传的镜像数量。详见此文档。 + vmForceDeletionPolicy: + period: 周期 + httpProxy: + warning: '警告:
如果你配置了 "http-proxy" 和 "https-proxy",那么你必须同时将 Harvester 节点的 CIDR 填入 "no-proxy",否则 Harvester 集群将会崩溃。' + supportBundleImage: + imagePullPolicy: 镜像拉取策略 + repo: 仓库 + tag: 标签 + csiDriverConfig: + provisioner: 提供商 + volumeSnapshotClassName: 卷快照类名 + backupVolumeSnapshotClassName: 备份卷快照类名 + containerdRegistry: + mirrors: + mirrors: Mirror + registryName: 镜像仓库名称 + endpoints: 端点 + rewrite: + rewrite: 重写 + addRewrite: 添加重写 + addMirror: 添加 Mirror + configs: + configs: Configs + registryEDQNorIP: 镜像仓库 FDQN 或 IP + registryPlaceholder: myregistry.local:5000 + username: 用户名 + password: 密码 + auth: 认证 + identityToken: 身份令牌 + insecureSkipVerify: InsecureSkipVerify + addConfig: 添加配置 + + upgrade: + selectExitImage: 请选择要升级的操作系统镜像。 + imageUrl: 请输入有效的图片网址。 + chooseFile: 请选择上传图片。 + checksum: 校验和 + harvesterMonitoring: + label: Harvester Monitoring + section: + prometheus: Prometheus + prometheusNodeExporter: Prometheus Node Exporter + grafana: Grafana + alertmanager: Alertmanager + tips: + scrape: 每次采集数据的间隔时间 + evaluation: 每次评估规则的间隔时间 + retention: 监控数据保留时间 + retentionSize: 监控数据最大占用存储 + clusterRegistrationUrl: + message: 要完全取消导入的 Harvester 集群,也请通过虚拟化管理页面在 Rancher 仪表板 UI 上删除它。 + ntpServers: + isNotIPV4: 你输入的不是 IPv4 或主机地址。请输入有效的 IPv4 地址或主机地址。 + isDuplicate: 存在重复的 NTP 服务器配置。 + cloudTemplate: + label: Cloud Config 模板 + templateType: 模板类型 + userData: 用户数据 + networkData: 网络数据 + + support: + title: Harvester 支持 + kubeconfig: + title: 下载 KubeConfig + titleDescription: 下载 Kubeconfig 用于调试。 + internal: + rancher: + title: 访问内嵌的 Rancher UI + titleDescription: 仅支持使用内嵌的 Rancher 仪表板来进行调试和验证。有关 Rancher 的多集群和多租户集成,请参阅此文档。 + longhorn: + title: 访问内嵌的 Longhorn UI + titleDescription: 仅支持使用内嵌的 Longhorn UI 来进行调试和验证。 + community: + learnMore: 进一步了解 SUSE Harvester 支持 + pricing: 联系我们获取价格。 + + namespace: + label: 命名空间 + + projectNamespace: + label: 项目/命名空间 + + vip: + namespace: + label: 命名空间 + cidr: + label: CIDR/IP 范围 + invalid: '"CIDR/IP 范围" 无效。' + toolTip: "可以使用逗号分隔来应用多个池或范围。即 192.168.0.200/30,192.168.0.200/29 或 192.168.0.10-192.168.0.11" + add: + label: 添加 IP 池 + + sslParameters: + protocols: + label: 协议 + ciphers: + label: 密码 + + monitoring: + configuration: + label: 配置 + alertmanagerConfig: + label: Alertmanager 配置 + diabledMonitoringTips: + prefix: '你必须先启用' + middle: 'Monitoring' + suffix: 'Addon。' + diabledAlertingTips: + prefix: '你必须先启用' + middle: 'Alertmanager' + suffix: '然后配置才能生效' + disabledAddon: + prefix: 'Monitoring Addon 已禁用。单击' + middle: '此处' + suffix: '启用它。' + + logging: + configuration: + section: + fluentbit: Fluentbit + fluentd: Fluentd + clusterFlow: + label: Cluster Flow + clusterOutput: + label: Cluster Output + flow: + label: Flow + output: + label: Output + diabledTips: + prefix: '你必须先启用' + middle: 'Logging' + suffix: '然后配置才能生效' + + snapshot: + label: 卷快照 + targetVolume: 原始卷 + size: 大小 + image: 镜像 + + vmSnapshot: + label: VM 快照 + createText: 还原快照 + snapshot: 快照 + + storage: + label: 存储 + useDefault: 使用默认存储 + migratable: + label: 可迁移 + numberOfReplicas: + label: 副本数量 + staleReplicaTimeout: + label: 过时副本超时 + nodeSelector: + label: 主机选择器 + diskSelector: + label: 磁盘选择器 + storageClass: + label: 存储类 + title: 存储类 + customize: + volumeBindingMode: + later: 创建了使用 PVC 的 VM 之后,再绑定并配置一个持久卷 + parameters: + numberOfReplicas: + label: 副本数量 + staleReplicaTimeout: + label: 过时副本超时 + diskSelector: + label: 磁盘选择器 + no-options: 没有可用的标签,请前往 `主机 > 存储` 页面进行添加。 + nodeSelector: + label: 节点选择器 + no-options: 没有可用的标签,请前往 `主机 > 存储` 页面进行添加。 + migratable: + label: 可迁移 + allowedTopologies: + title: 允许的拓扑 + tooltip: 用于在匹配以下所有表达式的主机上调度虚拟机。 + + vlanConfig: + title: 网络配置 + createNetworkConfig: 创建网络配置 + action: + migrate: 迁移 + titles: + nodeSelector: 节点选择器 + uplink: Uplink + bondOptions: Bond 选项 + attributes: 属性 + host: 选定的主机 + scheduling: + affinity: + allNodes: 选择所有节点 + specificNode: 选择特定节点 + schedulingRules: 选择节点匹配规则 + uplink: + nics: + label: NIC + addLabel: 添加 NIC + placeholder: 选择在所有选定节点上都可用的 NIC + validate: + available: NIC "{nic}" 在所选节点上不可用 + linkAttributes: + mtu: + label: MTU + bondOptions: + mode: + label: 模式 + miimon: + label: Miimon + tooltip: -1 指保持原有值。 + nodeSelector: + matchingNodes: + matchesSome: |- + {matched, plural, + =0 {匹配 {total, number} 个节点中的 0 个} + =1 {匹配 {total, number} 个节点中的 1 个:"{sample}"} + other {匹配 {total, number} 个节点中的 {matched, number} 个,包括 "{sample}"} + } + + vlanStatus: + vlanConfig: + label: 网络配置 + + clusterNetwork: + title: 集群网络/配置 + create: + button: + label: 创建集群网络 + clusterNetwork: 没有定义的网络配置。 + mgmt: mgmt 是一个内置的集群管理网络,它不支持其它网络配置。 + notExist: '集群网络 "{ clusterNetwork }" 不存在' + notReady: '集群网络 "{ clusterNetwork }" 未就绪' + + addons: + descriptions: + 'harvester-system/vm-import-controller': vm-import-controller 是一个插件,用于将其他集群的 VM 工作负载迁移到现有的 Harvester 集群。 + 'harvester-system/pcidevices-controller': pcidevices-controller 是一个插件,用于发现集群中节点的 PCI 设备,能让用户为 PCI 透传准备设备,以便与 Harvester VM 和 Guest 集群一起使用。 + 'cattle-logging-system/rancher-logging': rancher-logging 是一个插件,用于从 Harvester 集群收集多功能日志、事件和审计,并根据流将它们路由到多种服务器。 + 'harvester-system/rancher-vcluster': rancher-vcluster 用于部署安装了 Rancher 的 vcluster。 + 'cattle-monitoring-system/rancher-monitoring': rancher-monitoring 是一个插件,用于收集 Harvester 集群和 VM 的指标。你可以在嵌入式仪表板上查看指标,并向远程服务器发送告警。 + 'vm-import-controller': vm-import-controller 是一个插件,用于将其他集群的 VM 工作负载迁移到现有的 Harvester 集群。 + 'pcidevices-controller': pcidevices-controller 是一个插件,用于发现集群中节点的 PCI 设备,能让用户为 PCI 透传准备设备,以便与 Harvester VM 和 Guest 集群一起使用。 + 'rancher-logging': rancher-logging 是一个插件,用于从 Harvester 集群收集多功能日志、事件和审计,并根据流将它们路由到多种服务器。 + 'rancher-monitoring': rancher-monitoring 是一个插件,用于收集 Harvester 集群和 VM 的指标。你可以在嵌入式仪表板上查看指标,并向远程服务器发送告警。 + 'rancher-vcluster': rancher-vcluster 用于部署安装了 Rancher 的 vcluster。 + 'harvester-seeder': Harvester-seeder 是一个插件,使用 ipmi 和 redfish 来发现硬件信息并执行外部操作。 + 'harvester-system/harvester-seeder': Harvester-seeder 是一个插件,使用 ipmi 和 redfish 来发现硬件信息并执行外部操作。 + vmImport: + titles: + basic: 基本信息 + pvc: 卷 + rancherVcluster: + accessRancher: 访问 Rancher 仪表板 + hostname: 主机名 + rancherVersion: Rancher 版本 + password: Bootstrap 密码 + switchFailed: "{action} {name} 失败" + + + + loadBalancer: + label: 负载均衡器 + tabs: + basic: 基本信息 + listeners: 监听器 + healthCheck: 健康检查 + backendServer: 后端服务器选择器 + workloadType: + label: 工作负载类型 + options: + cluster: 来宾 Kubernetes 集群 + vm: 虚拟机 + ipam: + label: IPAM + options: + dhcp: DHCP + pool: 池 + ipPool: + label: IP 池 + options: + none: 自动(自动选择 IP 池) + listeners: + name: + label: 名称 + protocol: + label: 协议 + port: + label: 端口 + backendPort: + label: 后端端口 + placeholder: 例如:80 + backendServerSelector: + matchingVMs: + matchesSome: |- + {matched, plural, + =0 { 在负载均衡器所在的命名空间中匹配 0 个虚拟机,共 {total, number} 个。} + =1 {在负载均衡器所在的命名空间中匹配 1 个虚拟机 "{sample}",共 {total, number} 个。 } + other { 在负载均衡器所在的命名空间中匹配的 {matched, number} 个现有虚拟机(共 {total, number} 个),包括 "{sample}"} + } + backendServers: + label: 后端服务器 + + ipPool: + label: IP 池 + network: + label: 虚拟机网络 + tabs: + range: 范围 + scope: 范围 + selector: 选择器 + subnet: + label: 子网 + startIP: + label: 起始 IP + endIP: + label: 终止 IP + gateway: + label: 网关 + namespace: + label: 命名空间 + project: + label: 项目 + guestCluster: + label: 来宾 Kubernetes 集群 + availableIP: + label: 可用 IP 数 + scope: + label: 范围 + addLabel: 添加范围 + priority: + label: 优先级 + cidr: + addLabel: 添加 CIDR + range: + addLabel: 添加范围 + + service: + healthCheckPort: + label: 健康检查端口 + healthCheckSuccessThreshold: + label: 健康检查成功阙值 + description: 如果探针连续检测到某个地址的成功次数达到成功阈值,后端服务器就可以开始转发流量。 + healthCheckFailureThreshold: + label: 健康检查失败阈值 + description: 如果健康检查失败的数量达到失败阈值,后端服务器将停止转发流量。 + healthCheckPeriod: + label: 健康检查周期 + healthCheckTimeout: + label: 健康检查超时 + healthCheckEnabled: + label: 健康检查 + + secret: + label: 密文 + + sriov: + label: SR-IOV 网络设备 + nodeName: 节点 + numVFs: 虚拟数量 + vfAddresses: 虚拟地址 + showMore: 显示更多 + parentSriov: 按父级 SR-IOV 过滤 + + harvesterVlanConfigMigrateDialog: + targetClusterNetwork: + label: 目标集群网络 + placeholder: 选择目标集群网络 + + seeder: + banner: + enable: + prefix: harvester-seeder 插件已被禁用, + middle: 单击此处 + suffix: 启用它。 + noAccess: 请联系管理员启用外部访问。 + noAddon: harvester-seeder 插件不存在,请检查是否已安装。 + noInventory: 正在等待 "inventories.metal.harvesterhci.io" 就绪。 + inventory: + host: + label: 主机 + placeholder: 例如:172.16.1.1 + port: + label: 端口 + placeholder: 例如:623 + insecureTLS: + label: 不安全的 TLS + secret: + label: 密文 + create: + title: 添加密文 + event: + label: 事件 + pollingInterval: + label: 轮询间隔 + + affinity: + thisPodNamespace: 此虚拟机的命名空间 + matchExpressions: + inNamespaces: "命名空间中的工作负载" + vmAffinityTitle: 虚拟机调度 + namespaces: + placeholder: 例如:default,system,base + label: 命名空间 + addLabel: 添加工作负载选择器 + topologyKey: + placeholder: 'topology.kubernetes.io/zone' + +advancedSettings: + descriptions: + 'harv-vlan': VLAN 网络的默认网络接口名称。 + 'harv-backup-target': 用于存储虚拟机备份的自定义备份目标。 + 'branding': 管理员可以修改 Harvester 产品名称、Logo 和配色方案来全局自定义 UI 界面。 + 'harv-csi-driver-config': 为 CSI 设备配置其他信息。 + 'harv-containerd-registry': 连接到私有镜像仓库的 Containerd 仓库配置。 + 'harv-log-level': 配置 Harvester server 日志级别。默认级别为 info。 + 'harv-server-version': Harvester server 版本。 + 'harv-upgrade-checker-enabled': 是否启用 Harvester 升级检查。默认值为 true。 + 'harv-upgrade-checker-url': 默认 Harvester 升级检查 URL。只有当 upgrade-checker-enabled 设置为 true 时可使用。 + 'harv-ui-source': 配置加载 UI 资源方式。 + 'harv-ui-index': 'UI 的 HTML 索引位置。' + 'harv-ui-plugin-index': 'Harvester 插件的 JS 文件索引位置' + 'harv-cluster-registration-url': 用于多集群管理的注册 URL。 + 'harv-http-proxy': '用于 Harvester 访问外部服务的 HTTP 代理。' + 'harv-additional-ca': '用于 TLS 验证的自定义 CA 根证书。' + 'harv-overcommit-config': '资源超额配置。' + 'harv-support-bundle-timeout': 'Support Bundle 超时配置(单位:分钟),你可以使用 0 来禁用超时。' + 'harv-vm-force-reset-policy': 配置当虚拟机卡在停机的节点上时的强制重置动作。 + 'harv-ssl-parameters': 用于 TLS 验证的自定义 SSL 参数。 + 'harv-storage-network': 'Longhorn 存储网络设置。' + 'harv-support-bundle-namespaces': 指定支持包要收集的其他命名空间中的资源。 + 'harv-auto-disk-provision-paths': 指定 Harvester 将自动添加为虚拟机存储的磁盘(使用 glob 模式)。 + 'harv-support-bundle-image': Support Bundle 镜像配置。前往 rancher/support-bundle-kit 查看更多版本。 + 'harv-release-download-url': 此设置用于配置升级版本下载的 URL 地址。Harvester 将从该 URL 托管的 ($URL/$VERSION/version.yaml) 文件中获取 ISO URL 和校验和值。 + 'harv-default-vm-termination-grace-period-seconds': 配置停止虚拟机的终止宽限期。 + 'harv-ntp-servers': 配置 NTP 服务器。你可以配置多个 IPv4 地址或主机地址。 + +typeLabel: + kubevirt.io.virtualmachine: |- + {count, plural, + one { 虚拟机 } + other { 虚拟机 } + } + harvesterhci.io.virtualmachineimage: |- + {count, plural, + one { 镜像 } + other { 镜像 } + } + harvesterhci.io.keypair: |- + {count, plural, + one { SSH 密钥 } + other { SSH 密钥 } + } + harvesterhci.io.host: |- + {count, plural, + one { 主机 } + other { 主机 } + } + harvesterhci.io.networkattachmentdefinition: |- + {count, plural, + one { 虚拟机网络 } + other { 虚拟机网络 } + } + harvesterhci.io.volume: |- + {count, plural, + one { 卷 } + other { 卷 } + } + harvesterhci.io.user: |- + {count, plural, + one { 用户 } + other { 用户 } + } + harvesterhci.io.setting: |- + {count, plural, + one { 设置 } + other { 设置 } + } + harvesterhci.io.virtualmachinetemplateversion: |- + {count, plural, + one { 模板 } + other { 模板 } + } + harvesterhci.io.virtualmachinebackup: |- + {count, plural, + one { 虚拟机备份 } + other { 虚拟机备份 } + } + harvesterhci.io.cloudtemplate: |- + {count, plural, + one { Cloud Config 模板 } + other { Cloud Config 模板 } + } + harvesterhci.io.volumesnapshot: |- + {count, plural, + one { 卷快照 } + other { 卷快照 } + } + harvesterhci.io.vmsnapshot: |- + {count, plural, + one { VM 快照 } + other { VM 快照 } + } + network.harvesterhci.io.vlanconfig: |- + {count, plural, + one { 网络配置 } + other { 网络配置 } + } + harvesterhci.io.monitoring.alertmanagerconfig: |- + {count, plural, + one { Alertmanager 配置 } + other { Alertmanager 配置 } + } + harvesterhci.io.logging.clusterflow: |- + {count, plural, + one { Cluster Flow } + other { Cluster Flow } + } + harvesterhci.io.logging.clusteroutput: |- + {count, plural, + one { Cluster Output } + other { Cluster Output } + } + harvesterhci.io.logging.flow: |- + {count, plural, + one { Flow } + other { Flow } + } + harvesterhci.io.logging.output: |- + {count, plural, + one { Output } + other { Output } + } + harvesterhci.io.storage: |- + {count, plural, + one { 存储类 } + other { 存储类 } + } + devices.harvesterhci.io.pcidevice: |- + {count, plural, + one { PCI 设备 } + other { PCI 设备 } + } + persistentvolumeclaim: |- + {count, plural, + one { 卷 } + other { 卷 } + } + network.harvesterhci.io.clusternetwork: |- + {count, plural, + one { 集群网络 } + other { 集群网络 } + } + devices.harvesterhci.io.sriovnetworkdevice: |- + {count, plural, + one { SR-IOV 网络设备 } + other { SR-IOV 网络设备 } + } + harvesterhci.io.secret: |- + {count, plural, + one { 密文 } + other { 密文 } + } + harvesterhci.io.blockdevice: |- + {count, plural, + one { 磁盘 } + other { 磁盘 } + } + loadbalancer.harvesterhci.io.loadbalancer: |- + {count, plural, + one { 负载均衡器 } + other { 负载均衡器 } + } + loadbalancer.harvesterhci.io.ippool: |- + {count, plural, + one { IP 池 } + other { IP 池 } + } diff --git a/pkg/harvester/product.ts b/pkg/harvester/product.ts index 154550b4..7cfe4907 100644 --- a/pkg/harvester/product.ts +++ b/pkg/harvester/product.ts @@ -1,11 +1,28 @@ import { IPlugin } from '@shell/core/types'; -import { PRODUCT_NAME, BLANK_CLUSTER } from './config/harvester'; +import { PRODUCT_NAME, BLANK_CLUSTER, LOGO as logo } from './config/harvester'; +import { HCI } from './config/types'; export function init($plugin: IPlugin, store: any) { const { product } = $plugin.DSL(store, PRODUCT_NAME); const isSingleProduct = process.env.rancherEnv === PRODUCT_NAME; + if (isSingleProduct) { + const home = { + name: `${ PRODUCT_NAME }-c-cluster`, + path: `/${ PRODUCT_NAME }/c/:cluster` + }; + + store.dispatch('setIsSingleProduct', { + productNameKey: 'harvester.productLabel', + getVersionInfo: (store: any) => store.getters[`${ PRODUCT_NAME }/byId`]?.(HCI.SETTING, 'server-version')?.value || 'unknown', + afterLoginRoute: home, + logoRoute: home, + supportCustomLogo: true, + logo, + }); + } + product({ inStore: 'management', showNamespaceFilter: true,