Update UI for 3.0.x

-Complete localization for all UI elements, in en and ja

-Hide logo/EULA for OSS version, when no eula.html is present

-Language select on login screen

-Misc. fixes

reviewed-by: jessica
This commit is contained in:
Brian Federle 2012-02-17 11:32:45 -08:00
parent aec1204eb2
commit 7921811f31
15 changed files with 1303 additions and 931 deletions

View File

@ -1,4 +1,74 @@
label.installWizard.title=Hello and Welcome to CloudStack&#8482.
#new labels (begin) **********************************************************************************************
message.migrate.instance.to.host=Please confirm that you want to migrate instance to another host.
label.migrate.instance.to.host=Migrate instance to another host
message.migrate.instance.to.ps=Please confirm that you want to migrate instance to another primary storage.
label.migrate.instance.to.ps=Migrate instance to another primary storage
label.corrections.saved=Corrections saved
message.installWizard.copy.whatIsSecondaryStorage=Secondary storage is associated with a zone, and it stores the following:<ul><li>Templates - OS images that can be used to boot VMs and can include additional configuration information, such as installed applications</li><li>ISO images - OS images that can be bootable or non-bootable</li><li>Disk volume snapshots - saved copies of VM data which can be used for data recovery or to create new templates</ul>
message.installWizard.copy.whatIsPrimaryStorage=A CloudStack&#8482; cloud infrastructure makes use of two types of storage: primary storage and secondary storage. Both of these can be iSCSI or NFS servers, or localdisk.<br/><br/><strong>Primary storage</strong> is associated with a cluster, and it stores the disk volumes of each guest VM for all the VMs running on hosts in that cluster. The primary storage server is typically located close to the hosts.
message.installWizard.copy.whatIsAHost=A host is a single computer. Hosts provide the computing resources that run the guest virtual machines. Each host has hypervisor software installed on it to manage the guest VMs (except for bare metal hosts, which are a special case discussed in the Advanced Installation Guide). For example, a Linux KVM-enabled server, a Citrix XenServer server, and an ESXi server are hosts. In a Basic Installation, we use a single host running XenServer.<br/><br/>The host is the smallest organizational unit within a CloudStack&#8482; deployment. Hosts are contained within clusters, clusters are contained within pods, and pods are contained within zones.
message.installWizard.copy.whatIsACluster=A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Virtual machine instances (VMs) can be live-migrated from one host to another within the same cluster, without interrupting service to the user. A cluster is the third-largest organizational unit within a CloudStack&#8482; deployment. Clusters are contained within pods, and pods are contained within zones.<br/><br/>CloudStack&#8482; allows multiple clusters in a cloud deployment, but for a Basic Installation, we only need one cluster.
message.installWizard.copy.whatIsAPod=A pod often represents a single rack. Hosts in the same pod are in the same subnet.<br/><br/>A pod is the second-largest organizational unit within a CloudStack&#8482; deployment. Pods are contained within zones. Each zone can contain one or more pods; in the Basic Installation, you will have just one pod in your zone
message.installWizard.copy.whatIsAZone=A zone is the largest organizational unit within a CloudStack&#8482; deployment. A zone typically corresponds to a single datacenter, although it is permissible to have multiple zones in a datacenter. The benefit of organizing infrastructure into zones is to provide physical isolation and redundancy. For example, each zone can have its own power supply and network uplink, and the zones can be widely separated geographically (though this is not required).
message.installWizard.copy.whatIsCloudStack=CloudStack&#8482 is a software platform that pools computing resources to build public, private, and hybrid Infrastructure as a Service (IaaS) clouds. CloudStack&#8482 manages the network, storage, and compute nodes that make up a cloud infrastructure. Use CloudStack&#8482 to deploy, manage, and configure cloud computing environments.<br/><br/>Extending beyond individual virtual machine images running on commodity hardware, CloudStack&#8482 provides a turnkey cloud infrastructure software stack for delivering virtual datacenters as a service - delivering all of the essential components to build, deploy, and manage multi-tier and multi-tenant cloud applications. Both open-source and Premium versions are available, with the open-source version offering nearly identical features.
message.installWizard.tooltip.addSecondaryStorage.path=The exported path, located on the server you specified above
message.installWizard.tooltip.addSecondaryStorage.nfsServer=The IP address of the NFS server hosting the secondary storage
message.installWizard.tooltip.addPrimaryStorage.path=(for NFS) In NFS this is the exported path from the server. Path (for SharedMountPoint). With KVM this is the path on each host that is where this primary storage is mounted. For example, "/mnt/primary".
message.installWizard.tooltip.addPrimaryStorage.server=(for NFS, iSCSI, or PreSetup) The IP address or DNS name of the storage device.
message.installWizard.tooltip.addPrimaryStorage.name=The name for the storage device.
message.installWizard.tooltip.addHost.password=This is the password for the user named above (from your XenServer install).
message.installWizard.tooltip.addHost.username=Usually root.
message.installWizard.tooltip.addHost.hostname=The DNS name or IP address of the host.
message.installWizard.tooltip.addCluster.name=A name for the cluster. This can be text of your choosing and is not used by CloudStack.
message.installWizard.tooltip.addPod.reservedSystemEndIp=This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.
message.installWizard.tooltip.addPod.reservedSystemStartIp=This is the IP range in the private network that the CloudStack uses to manage Secondary Storage VMs and Console Proxy VMs. These IP addresses are taken from the same subnet as computing servers.
message.installWizard.tooltip.addPod.reservedSystemNetmask=The netmask in use on the subnet the guests will use.
message.installWizard.tooltip.addPod.reservedSystemGateway=The gateway for the hosts in that pod.
message.installWizard.tooltip.addPod.name=A name for the pod
message.installWizard.tooltip.configureGuestTraffic.guestEndIp=The range of IP addresses that will be available for allocation to guests in this zone. If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.
message.installWizard.tooltip.configureGuestTraffic.guestStartIp=The range of IP addresses that will be available for allocation to guests in this zone. If one NIC is used, these IPs should be in the same CIDR as the pod CIDR.
message.installWizard.tooltip.configureGuestTraffic.guestNetmask=The netmask in use on the subnet that the guests should use
message.installWizard.tooltip.configureGuestTraffic.guestGateway=The gateway that the guests should use
message.installWizard.tooltip.configureGuestTraffic.description=A description for your network
message.installWizard.tooltip.configureGuestTraffic.name=A name for your network
message.installWizard.tooltip.addZone.internaldns2=These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.
message.installWizard.tooltip.addZone.internaldns1=These are DNS servers for use by system VMs in the zone. These DNS servers will be accessed via the private network interface of the System VMs. The private IP address you provide for the pods must have a route to the DNS server named here.
message.installWizard.tooltip.addZone.dns2=These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.
message.installWizard.tooltip.addZone.name=A name for the zone
message.installWizard.tooltip.addZone.dns1=These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.
message.setup.successful=Cloud setup successful!
label.may.continue=You may now continue.
error.installWizard.message=Something went wrong; you may go back and correct any errors
message.installWizard.now.building=Now building your cloud...
message.installWizard.click.retry=Click the button to retry launch.
label.launch=Launch
label.installWizard.click.launch=Click the launch button.
label.congratulations=Congratulations!
label.installWizard.addSecondaryStorageIntro.subtitle=What is secondary storage?
label.installWizard.addSecondaryStorageIntro.title=Let&rsquo;s add secondary storage
label.installWizard.addPrimaryStorageIntro.subtitle=What is primary storage?
label.installWizard.addPrimaryStorageIntro.title=Let&rsquo;s add primary storage
label.installWizard.addHostIntro.subtitle=What is a host?
label.installWizard.addHostIntro.title=Let&rsquo;s add a host
label.installWizard.addClusterIntro.subtitle=What is a cluster?
label.installWizard.addClusterIntro.title=Let&rsquo;s add a cluster
label.installWizard.addPodIntro.subtitle=What is a pod?
label.installWizard.addPodIntro.title=Let&rsquo;s add a pod
label.installWizard.addZone.title=Add zone
label.installWizard.addZoneIntro.subtitle=What is a zone?
label.installWizard.addZoneIntro.title=Let&rsquo;s add a zone
error.password.not.match=The password fields do not match
label.confirm.password=Confirm password
message.change.password=Please change your password.
label.save.and.continue=Save and continue
label.skip.guide=I have used CloudStack before, skip this guide
label.continue.basic.install=Continue with basic installation
label.introduction.to.cloudstack=Introduction to CloudStack&#8482
label.what.is.cloudstack=What is CloudStack&#8482?
label.hints=Hints
label.installWizard.subtitle=This tour will aid you in setting up your CloudStack&#8482 installation
label.continue=Continue
label.installWizard.title=Hello and Welcome to CloudStack&#8482
label.agree=Agree
label.license.agreement=License Agreement
label.license.agreement.subtitle=Please accept the CloudStack&#8482 EULA before installing.
@ -207,11 +277,176 @@ label.notifications=Notifications
label.default.view=Default View
label.project.view=Project View
#cloudstack 3.0 (end) **********************************************************************************************
message.add.system.service.offering=Please fill in the following data to add a new system service offering.
message.action.delete.system.service.offering=Please confirm that you want to delete this system service offering.
label.action.delete.system.service.offering=Delete System Service Offering
label.hypervisor.capabilities=Hypervisor capabilities
label.hypervisor.version=Hypervisor version
label.max.guest.limit=Max guest limit
label.add.network.offering=Add network offering
label.supported.services=Supported Services
label.service.capabilities=Service Capabilities
label.guest.type=Guest Type
label.specify.IP.ranges=Specify IP ranges
label.conserve.mode=Conserve mode
label.created.by.system=Created by system
label.menu.system.service.offerings=System Service Offerings
label.add.system.service.offering=Add System Service Offering
label.redundant.router.capability=Redundant router capability
label.supported.source.NAT.type=Supported Source NAT type
label.elastic.LB=Elastic LB
label.LB.isolation=LB isolation
label.elastic.IP=Elastic IP
label.network.label.display.for.blank.value=Use default gateway
label.xen.traffic.label=XenServer traffic label
label.kvm.traffic.label=KVM traffic label
label.vmware.traffic.label=VMware traffic label
label.start.IP=Start IP
label.end.IP=End IP
label.remove.ip.range=Remove IP range
label.ip.ranges=IP Ranges
label.start.vlan=Start Vlan
label.end.vlan=End Vlan
label.broadcast.domain.range=Broadcast domain range
label.compute=Compute
message.add.guest.network=Please confirm that you would like to add a guest network
label.subdomain.access=Subdomain Access
label.guest.start.ip=Guest start IP
label.guest.end.ip=Guest end IP
label.virtual.router=Virtual Router
label.physical.network.ID=Physical network ID
label.destination.physical.network.id=Destination physical network ID
label.dhcp=DHCP
label.destroy.router=Destroy router
message.confirm.destroy.router=Please confirm that you would like to destroy this router
label.change.service.offering=Change service offering
label.view.console=View console
label.redundant.state=Redundant state
label.enable.provider=Enable provider
message.confirm.enable.provider=Please confirm that you would like to enable this provider
label.disable.provider=Disable provider
message.confirm.disable.provider=Please confirm that you would like to disable this provider
label.shutdown.provider=Shutdown provider
message.confirm.shutdown.provider=Please confirm that you would like to shutdown this provider
label.netScaler=NetScaler
label.add.new.NetScaler=Add new NetScaler
label.capacity=Capacity
label.dedicated=Dedicated
label.f5=F5
label.add.new.F5=Add new F5
label.srx=SRX
label.providers=Providers
label.add.new.SRX=Add new SRX
label.timeout=Timeout
label.public.network=Public network
label.private.network=Private network
label.enable.swift=Enable Swift
confirm.enable.swift=Please fill in the following information to enable support for Swift
message.after.enable.swift=Swift configured. Note: When you leave this page, you will not be able to re-configure Swift again.
label.key=Key
label.delete.NetScaler=Delete NetScaler
message.confirm.delete.NetScaler=Please confirm that you would like to delete NetScaler
label.delete.F5=Delete F5
message.confirm.delete.F5=Please confirm that you would like to delete F5
label.delete.SRX=Delete SRX
message.confirm.delete.SRX=Please confirm that you would like to delete SRX
label.pods=Pods
label.pod.name=Pod name
label.reserved.system.gateway=Reserved system gateway
label.reserved.system.netmask=Reserved system netmask
label.start.reserved.system.IP=Start Reserved system IP
label.end.reserved.system.IP=End Reserved system IP
label.clusters=Clusters
label.cluster.name=Cluster Name
label.host.MAC=Host MAC
label.agent.username=Agent Username
label.agent.password=Agent Password
message.confirm.action.force.reconnect=Please confirm that you want to force reconnect this host.
label.resource.state=Resource state
label.LUN.number=LUN #
message.confirm.remove.IP.range=Please confirm that you would like to remove this IP range.
message.tooltip.zone.name=A name for the zone.
message.tooltip.dns.1=Name of a DNS server for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.
message.tooltip.dns.2=A second DNS server name for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.
message.tooltip.internal.dns.1=Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.
message.tooltip.internal.dns.2=Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.
message.tooltip.network.domain=A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.
message.tooltip.pod.name=A name for this pod.
message.tooltip.reserved.system.gateway=The gateway for the hosts in the pod.
message.tooltip.reserved.system.netmask=The network prefix that defines the pod subnet. Uses CIDR notation.
message.creating.zone=Creating zone
message.creating.physical.networks=Creating physical networks
message.configuring.physical.networks=Configuring physical networks
message.adding.Netscaler.device=Adding Netscaler device
message.creating.pod=Creating pod
message.configuring.public.traffic=Configuring public traffic
message.configuring.storage.traffic=Configuring storage traffic
message.configuring.guest.traffic=Configuring guest traffic
message.creating.cluster=Creating cluster
message.adding.host=Adding host
message.creating.primary.storage=Creating primary storage
message.creating.secondary.storage=Creating secondary storage
message.Zone.creation.complete=Zone creation complete
message.enabling.zone=Enabling zone
error.something.went.wrong.please.correct.the.following=Something went wrong; please correct the following
error.could.not.enable.zone=Could not enable zone
message.zone.creation.complete.would.you.like.to.enable.this.zone=Zone creation complete. Would you like to enable this zone?
message.please.add.at.lease.one.traffic.range=Please add at lease one traffic range.
message.you.must.have.at.least.one.physical.network=You must have at least one physical network
message.please.select.a.different.public.and.management.network.before.removing=Please select a different public and management network before removing
label.zone.type=Zone Type
label.setup.zone=Setup Zone
label.setup.network=Setup Network
label.add.resources=Add Resources
label.launch=Launch
label.set.up.zone.type=Set up zone type
message.please.select.a.configuration.for.your.zone=Please select a configuration for your zone.
message.desc.basic.zone=Provide a single network where each VM instance is assigned an IP directly from the network. Guest isolation can be provided through layer-3 means such as security groups (IP address source filtering)
label.basic=Basic
message.desc.advanced.zone=For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks and providing custom network offerings such as firewall, VPN, or load balancer support.
label.advanced=Advanced
message.desc.zone=A zone is the largest organizational unit in CloudStack, and it typically corresponds to a single datacenter. Zones provide physical isolation and redundancy. A zone consists of one or more pods (each of which contains hosts and primary storage servers) and a secondary storage server which is shared by all pods in the zone.
label.physical.network=Physical Network
label.public.traffic=Public traffic
label.guest.traffic=Guest Traffic
label.storage.traffic=Storage Traffic
message.setup.physical.network.during.zone.creation=When adding an advanced zone, you need to set up one or more physical networks. Each network corresponds to a NIC on the management server. Each physical network can carry one or more types of traffic, with certain restrictions on how they may be combined.<br/><br/><strong>Drag and drop one or more traffic types</strong> onto each physical network.
label.add.physical.network=Add physical network
label.traffic.types=Traffic Types
label.management=Management
label.guest=Guest
label.please.specify.netscaler.info=Please specify Netscaler info
message.public.traffic.in.advanced.zone=Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at lease one range of IP addresses for internet traffic.
message.public.traffic.in.basic.zone=Public traffic is generated when VMs in the cloud access the Internet or provide services to clients over the Internet. Publicly accessible IPs must be allocated for this purpose. When a instance is created, an IP from this set of Public IPs will be allocated to the instance in addition to the guest IP address. Static 1-1 NAT will be set up automatically between the public IP and the guest IP. End users can also use the CloudStack UI to acquire additional IPs to implement static NAT between their instances and the public IP.
message.add.pod.during.zone.creation=Each zone must contain in one or more pods, and we will add the first pod now. A pod contains hosts and primary storage servers, which you will add in a later step. First, configure a range of reserved IP addresses for CloudStack's internal management traffic. The reserved IP range must be unique for each zone in the cloud.
message.guest.traffic.in.advanced.zone=Guest network traffic is communication between end-user virtual machines. Specify a range of VLAN IDs to carry guest traffic for each physical network.
message.guest.traffic.in.basic.zone=Guest network traffic is communication between end-user virtual machines. Specify a range of IP addresses that CloudStack can assign to guest VMs. Make sure this range does not overlap the reserved system IP range.
message.storage.traffic=Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs. Please configure storage traffic here.
message.desc.cluster=Each pod must contain one or more clusters, and we will add the first cluster now. A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Each cluster consists of one or more hosts and one or more primary storage servers.
message.desc.host=Each cluster must contain at lease one host (computer) for guest VMs to run on, and we will add the first host now. For a host to function in CloudStack, you must install hypervisor software on the host, assign an IP address to the host, and ensure the host is connected to the CloudStack management server.<br/><br/>Give the host's DNS or IP address, the user name (usually root) and password, and any labels you use to categorize hosts.
message.desc.primary.storage=Each cluster must contain one or more primary storage servers, and we will add the first one now. Primary storage contains the disk volumes for all the VMs running on hosts in the cluster. Use any standards-compliant protocol that is supported by the underlying hypervisor.
message.desc.secondary.storage=Each zone must have at lease one NFS or secondary storage server, and we will add the first one now. Secondary storage stores VM templates, ISO images, and VM disk volume snapshots. This server must be available to all hosts in the zone.<br/><br/>Provide the IP address and exported path.
label.launch.zone=Launch zone
message.please.wait.while.zone.is.being.created=Please wait while your zone is being created; this may take a while...
label.load.balancing=Load Balancing
label.static.nat.enabled=Static NAT Enabled
label.zones=Zones
label.view.more=View more
label.number.of.zones=Number of Zones
label.number.of.pods=Number of Pods
label.number.of.clusters=Number of Clusters
label.number.of.hosts=Number of Hosts
label.total.hosts=Total Hosts
label.total.CPU=Total CPU
label.total.memory=Total Memory
label.total.storage=Total Storage
#new labels (end) **********************************************************************************************
#cloudstack 2.2.Y (begin) ******************************************************************************************
label.action.migrate.router=Migrate Router
label.action.migrate.router.processing=Migrating Router....
message.migrate.router.confirm=Please confirm the host you wish to migrate the router to:
@ -253,7 +488,7 @@ label.action.unmanage.cluster=Unmanage Cluster
message.action.unmanage.cluster=Please confirm that you want to unmanage the cluster.
label.action.unmanage.cluster.processing=Unmanaging Cluster....
allocation.state=Allocation State
label.allocation.state=Allocation State
managed.state=Managed State
label.default.use=Default Use
@ -760,7 +995,7 @@ label.no=No
label.none=None
label.not.found=Not Found
label.num.cpu.cores=# of CPU Cores
label.numretries = Number of Retries
label.numretries=Number of Retries
label.offer.ha=Offer HA
label.optional=Optional
label.os.preference=OS Preference
@ -1065,129 +1300,6 @@ error.mgmt.server.inaccessible=The Management Server is unaccessible. Please tr
error.session.expired=Your session has expired.
error.unresolved.internet.name=Your internet name cannot be resolved.
#Jes
message.add.system.service.offering=Please fill in the following data to add a new system service offering.
message.action.delete.system.service.offering=Please confirm that you want to delete this system service offering.
label.action.delete.system.service.offering=Delete System Service Offering
hypervisor.capabilities=Hypervisor capabilities
hypervisor.version=Hypervisor version
max.guest.limit=Max guest limit
security.group.enabled=Security group enabled
add.network.offering=Add network offering
supported.services=Supported Services
service.capabilities=Service Capabilities
guest.type=Guest Type
specify.IP.ranges=Specify IP ranges
conserve.mode=Conserve mode
created.by.system=Created by system
label.menu.system.service.offerings=System Service Offerings
label.add.system.service.offering=Add System Service Offering
redundant.router.capability=Redundant router capability
supported.source.NAT.type=Supported Source NAT type
elastic.LB=Elastic LB
LB.isolation=LB isolation
elastic.IP=Elastic IP
network.label.display.for.blank.value=Use default gateway
Xen.traffic.label=XenServer traffic label
KVM.traffic.label=KVM traffic label
VMware.traffic.label=VMware traffic label
start.IP=Start IP range
end.IP=End IP range
IP.range.is.added=IP range is added
remove.IP.range=Remove IP range
storage.traffic.type.is.updated=Storage traffic type is updated
management.traffic.type.is.updated=Management traffic type is updated
public.traffic.type.is.updated=Public traffic type is updated
guest.traffic.type.is.updated=Guest traffic type is updated
IP.ranges=IP Ranges
start.Vlan=Start Vlan
end.Vlan=End Vlan
broadcast.domain.range=Broadcast domain range
label.compute=Compute
message.add.guest.network=Please confirm that you would like to add a guest network
subdomain.access=Subdomain Access
guest.start.IP=Guest start IP
guest.end.IP=Guest end IP
restart.required=Restart required
virtual.router=Virtual Router
physical.network.ID=Physical network ID
destination.physical.network.ID=Destination physical network ID
DHCP=DHCP
destroy.router=Destroy router
confirm.destroy.router=Please confirm that you would like to destroy this router
change.service.offering=Change service offering
view.console=View console
redundant.state=Redundant state
enable.provider=Enable provider
confirm.enable.provider=Please confirm that you would like to enable this provider
disable.provider=Disable provider
confirm.disable.provider=Please confirm that you would like to disable this provider
shutdown.provider=Shutdown provider
confirm.shutdown.provider=Please confirm that you would like to shutdown this provider
NetScaler=NetScaler
add.new.NetScaler=Add new NetScaler
number.of.retries=Number of retries
capacity=Capacity
dedicated=Dedicated
F5=F5
add.new.F5=Add new F5
SRX=SRX
providers=Providers
add.new.SRX=Add new SRX
timeout=Timeout
public.network=Public network
private.network=Private network
public=Public
enable.swift=Enable Swift
confirm.enable.swift=Please fill in the following information to enable support for Swift
message.after.enable.swift=Swift configured. Note: When you leave this page, you will not be able to re-configure Swift again.
URL=URL
key=Key
domain=Domain
delete.NetScaler=Delete NetScaler
confirm.delete.NetScaler=Please confirm that you would like to delete NetScaler
delete.F5=Delete F5
confirm.delete.F5=Please confirm that you would like to delete F5
delete.SRX=Delete SRX
confirm.delete.SRX=Please confirm that you would like to delete SRX
label.pods=Pods
pod.name=Pod name
reserved.system.gateway=Reserved system gateway
reserved.system.netmask=Reserved system netmask
start.reserved.system.IP=Start Reserved system IP
end.reserved.system.IP=End Reserved system IP
label.clusters=Clusters
cluster.name=Cluster Name
host.MAC=Host MAC
agent.username=Agent Username
agent.password=Agent Password
confirm.action.force.reconnect=Please confirm that you want to force reconnect this host.
resource.state=Resource state
LUN.number=LUN #
confirm.remove.IP.range=Please confirm that you would like to remove this IP range.
tooltip.zone.name=A name for the zone.
tooltip.dns.1=Name of a DNS server for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.
tooltip.dns.2=A second DNS server name for use by VMs in the zone. The public IP addresses for the zone must have a route to this server.
tooltip.internal.dns.1=Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.
tooltip.internal.dns.2=Name of a DNS server for use by CloudStack internal system VMs in the zone. The private IP address for the pods must have a route to this server.
tooltip.network.domain=A DNS suffix that will create a custom domain name for the network that is accessed by guest VMs.
tooltip.pod.name=A name for this pod.
tooltip.reserved.system.gateway=The gateway for the hosts in the pod.
tooltip.reserved.system.netmask=The network prefix that defines the pod subnet. Uses CIDR notation.
creating.zone=Creating zone
creating.physical.networks=Creating physical networks
configuring.physical.networks=Configuring physical networks
adding.Netscaler.device=Adding Netscaler device
creating.pod=Creating pod
configuring.public.traffic=Configuring public traffic
configuring.storage.traffic=Configuring storage traffic
configuring.guest.traffic=Configuring guest traffic
creating.cluster=Creating cluster
adding.host=Adding host
creating.primary.storage=Creating primary storage
creating.secondary.storage=Creating secondary storage
Zone.creation.complete=Zone creation complete

View File

@ -1,4 +1,74 @@
label.installWizard.title=こんにちは、CloudStack&#8482 へようこそ。
#new labels (begin) **********************************************************************************************
message.migrate.instance.to.host=別のホストにインスタンスを移行することを確認してください。
label.migrate.instance.to.host=別のホストにインスタンスを移行する
message.migrate.instance.to.ps=別のプライマリ·ストレージにインスタンスを移行することを確認してください。
label.migrate.instance.to.ps=別のプライマリストレージにインスタンスを移行する
label.corrections.saved=修正が保存され
message.installWizard.copy.whatIsSecondaryStorage=セカンダリストレージは、ゾーンに関連付けられており、それは次のように格納されてい:<ul><li>テンプレート - OSイメージのVMを起動すると、インストール済みのアプリケーションなどの追加の構成情報を含めることができます使用することができます</li><li>ISOイメージ - ブートまたは非ブートできるOSイメージ</li><li>ディスクボリュームのスナップショット - データ復旧のために使用することができ、VMデータのコピーを保存したり、新しいテンプレートを作成する</ul>
message.installWizard.copy.whatIsPrimaryStorage=プライマリストレージとセカンダリストレージCloudStack™クラウド·インフラストラクチャは、ストレージの2つのタイプを使用しています。これらの両方は、iSCSIまたはNFSサーバー、またはlocaldiskすることができます。<br/><br/>プライマリ·ストレージは、クラスタに関連付けられており、そのクラスタ内のホスト上で実行されているすべてのVMの各ゲストVMのディスクボリュームに格納されています。プライマリ·ストレージ·サーバーは通常、ホストの近くに位置しています。
message.installWizard.copy.whatIsAHost=ホストは、単一のコンピュータです。ホストは、ゲスト仮想マシンを実行するコンピューティングリソースを提供しています。各ホストは、ゲストVMを高度なインストレーション·ガイドで説明する特殊なケースであるベアメタルホストを除くを管理するためにそれにインストールされているソフトウェアをハイパーバイザしています。たとえば、Linux KVM対応のサーバーは、Citrix XenServerサーバ、およびESXiサーバがホストです。基本インストールでは、我々は、XenServerを実行する単一ホストを使用します。<br/><br/>ホストはCloudStack™展開内で最小の組織単位です。ホストがクラスタ内に含まれている、クラスタは、ポッド内に含まれており、ポッドは、ゾーン内に含まれています。
message.installWizard.copy.whatIsACluster=クラスタは、グループのホストにする方法を提供します。クラスタ内のホストはすべて同一のハードウェアを持っている、同じハイパーバイザー実行したのと同じサブネット上にあり、同じ共有ストレージにアクセスすることができます。仮想マシン·インスタンスVMSは、ユーザーにサービスを中断することなく、同じクラスタ内の別のホストからのライブ移行することができます。クラスタは、CloudStack内サード最大の組織単位™展開です。クラスタは、ポッド内に含まれており、ポッドは、ゾーン内に含まれています。<br/><br/>CloudStack™は、クラウドの展開で複数のクラスタを使用できますが、基本的なインストールのために、私達は1つのクラスタのみを必要としています。
message.installWizard.copy.whatIsAPod=ポッドは、多くの場合、単一のラックを表しています。同じポッド内のホストが同じサブネット内にあります。<br/><br/>ポッドはCloudStack内で二番目に大きい組織単位™展開です。ポッドは、ゾーン内に含まれています。各ゾーンは、1つまたは複数のポッドを含めることができます。基本インストールでは、あなたのゾーンのひとつポッドを持っています。
message.installWizard.copy.whatIsAZone=ゾーンはCloudStack内で最大の組織単位™展開です。それはデータセンター内の複数のゾーンを持つことが許されているが、ゾーンは、通常、単一のデータセンターに対応しています。ゾーンにインフラを整理することの利点は、物理的な分離と冗長性を提供することです。たとえば、各ゾーンは独自の電源とネットワークのアップリンクを持つことができ、ゾーンが広くこれは必須ではありませんが地理的に分離することができます。
message.installWizard.copy.whatIsCloudStack=CloudStack™は、プール·コンピューティング·リソースがサービスIaaSの雲のように、パブリック、プライベート、ハイブリッドインフラストラクチャを構築することがソフトウェアプラットフォームです。 CloudStack™は、ネットワーク、ストレージ、クラウドインフラストラクチャを構成する計算ードを管理します。展開、管理、およびクラウドコンピューティング環境を構成するためにCloudStack™を使用しています。<br/><br/>コモディティ·ハードウェア上で実行されている個々の仮想マシンのイメージを超えて拡張すると、CloudStack™は、サービスとしての仮想データセンターを実現するためのターンキー·クラウド·インフラストラクチャ·ソフトウェア·スタックを提供します - マルチティアとマルチテナント型のクラウドを構築、デプロイ、および管理するために不可欠なすべてのコンポーネントを提供アプリケーション。オープンソースとプレミアムバージョンの両方がほぼ同じ機能を提供するオープンソースのバージョンでは、用意されています。
message.installWizard.tooltip.addSecondaryStorage.path=あなたは上記で指定したサーバー上にあるエクスポートされたパス、
message.installWizard.tooltip.addSecondaryStorage.nfsServer=セカンダリ·ストレージをホストしているNFSサーバのIPアドレス
message.installWizard.tooltip.addPrimaryStorage.path=NFSのNFSでは、これはサーバーからエクスポートされたパスです。パスSharedMountPoint用。 KVMでこれは、このプライマリ·ストレージがマウントされている場所は、各ホスト上のパスです。たとえば、 /mnt/primary。
message.installWizard.tooltip.addPrimaryStorage.server=NFS、iSCSI、またはPreSetupのIPアドレスまたはストレージデバイスのDNS名。
message.installWizard.tooltip.addPrimaryStorage.name=ストレージデバイスの名前を入力します。
message.installWizard.tooltip.addHost.password=これは上記の名前のユーザのパスワードXenServerのインストールからです。
message.installWizard.tooltip.addHost.username=通常ルート。
message.installWizard.tooltip.addHost.hostname=DNS名またはホストのIPアドレス。
message.installWizard.tooltip.addCluster.name=クラスタの名前。これは任意のテキストにすることができ、CloudStack使用されていません。
message.installWizard.tooltip.addPod.reservedSystemEndIp=これはCloudStackは、セカンダリストレージの仮想マシンとコンソールのプロキシ仮想マシンを管理するために使用するプライベートネットワーク内のIP範囲です。これらのIPアドレスは、コンピューティング·サーバーと同じサブネットから取得されます。
message.installWizard.tooltip.addPod.reservedSystemStartIp=これはCloudStackは、セカンダリストレージの仮想マシンとコンソールのプロキシ仮想マシンを管理するために使用するプライベートネットワーク内のIP範囲です。これらのIPアドレスは、コンピューティング·サーバーと同じサブネットから取得されます。
message.installWizard.tooltip.addPod.reservedSystemNetmask=お客様が使用されるサブネットで使用中のマスク。
message.installWizard.tooltip.addPod.reservedSystemGateway=そのポッド内のホストに対するゲートウェイ。
message.installWizard.tooltip.addPod.name=ポッドの名前
message.installWizard.tooltip.configureGuestTraffic.guestEndIp=このゾーンのゲストへの割り当てのために利用できるようになりますIPアドレスの範囲。つのNICが使用されている場合、これらのIPはポッドCIDR CIDRと同じである必要があります。
message.installWizard.tooltip.configureGuestTraffic.guestStartIp=このゾーンのゲストへの割り当てのために利用できるようになりますIPアドレスの範囲。つのNICが使用されている場合、これらのIPはポッドCIDR CIDRと同じである必要があります。
message.installWizard.tooltip.configureGuestTraffic.guestNetmask=ゲストが使用する必要があるサブネットで使用中のマスク
message.installWizard.tooltip.configureGuestTraffic.guestGateway=ゲストが使用するゲートウェイ
message.installWizard.tooltip.configureGuestTraffic.description=ネットワークの説明
message.installWizard.tooltip.configureGuestTraffic.name=あなたのネットワークの名前
message.installWizard.tooltip.addZone.internaldns2=これらは、ゾーン内のシステムのVMで使用するためのDNSサーバです。これらのDNSサーバーは、システムのVMのプライベート·ネットワーク·インタフェースを介してアクセスされます。あなたはポッドを提供するプライベートIPアドレスは、ここという名前のDNSサーバへのルートを持っている必要があります。
message.installWizard.tooltip.addZone.internaldns1=これらは、ゾーン内のシステムのVMで使用するためのDNSサーバです。これらのDNSサーバーは、システムのVMのプライベート·ネットワーク·インタフェースを介してアクセスされます。あなたはポッドを提供するプライベートIPアドレスは、ここという名前のDNSサーバへのルートを持っている必要があります。
message.installWizard.tooltip.addZone.dns2=これらは、ゾーン内のゲストVMで使用するためのDNSサーバです。これらのDNSサーバーは、後で追加され、パブリックネットワークを介してアクセスされます。ゾーンのパブリックIPアドレスは、ここで名前のDNSサーバへのルートを持っている必要があります。
message.installWizard.tooltip.addZone.name=ゾーンの名前
message.installWizard.tooltip.addZone.dns1=これらは、ゾーン内のゲストVMで使用するためのDNSサーバです。これらのDNSサーバーは、後で追加され、パブリックネットワークを介してアクセスされます。ゾーンのパブリックIPアドレスは、ここで名前のDNSサーバへのルートを持っている必要があります。
message.setup.successful=雲のセットアップに成功!
label.may.continue=あなたは今継続することができます。
error.installWizard.message=何かが間違っていた、元に戻ってすべてのエラーを訂正することができる
message.installWizard.now.building=今すぐあなたのクラウドを構築...
message.installWizard.click.retry=起動を再試行する]ボタンをクリックします。
label.launch=起動する
label.installWizard.click.launch=起動ボタンをクリックします。
label.congratulations=おめでとう!
label.installWizard.addSecondaryStorageIntro.subtitle=二次記憶装置とは何ですか?
label.installWizard.addSecondaryStorageIntro.title=のがセカンダリ·ストレージを追加してみましょう
label.installWizard.addPrimaryStorageIntro.subtitle=プライマリストレージとは何ですか?
label.installWizard.addPrimaryStorageIntro.title=のは、プライマリ·ストレージを追加してみましょう
label.installWizard.addHostIntro.subtitle=ホストとは何ですか?
label.installWizard.addHostIntro.title=のホストを追加してみましょう
label.installWizard.addClusterIntro.subtitle=クラスタとは何ですか?
label.installWizard.addClusterIntro.title=のクラスタを追加してみましょう
label.installWizard.addPodIntro.subtitle=ポッドとは何ですか?
label.installWizard.addPodIntro.title=のは、ポッドを追加してみましょう
label.installWizard.addZone.title=ゾーンを追加する
label.installWizard.addZoneIntro.subtitle=ゾーンとは何ですか?
label.installWizard.addZoneIntro.title=ゾーンを追加する
error.password.not.match=パスワードフィールドが一致しません
label.confirm.password=パスワードを確認
message.change.password=パスワードを変更してください。
label.save.and.continue=保存して続行
label.skip.guide=このガイドをスキップする前に、私はCloudStack使用している
label.continue.basic.install=基本的なインストールを続行し
label.introduction.to.cloudstack=CloudStack&#8482するために導入
label.what.is.cloudstack=CloudStack&#8482 は何ですか?
label.hints=ヒント
label.installWizard.subtitle=このツアーでは、あなたのCloudStack&#8482 のインストールを設定する際に役立ちます
label.continue=続ける
label.installWizard.title=こんにちは、CloudStack&#8482 へようこそ。
label.agree=同意する
label.license.agreement=ライセンス契約
label.license.agreement.subtitle=インストールする前に、CloudStack&#8482 ライセンスに同意してください。
@ -206,11 +276,178 @@ message.reset.password.warning.notStopped=インスタンスは、その現在
label.notifications=通知
label.default.view=デフォルトのビュー
label.project.view=プロジェクトビュー
#cloudstack 3.0 (end) **********************************************************************************************
message.add.system.service.offering=新しいシステム·サービスの提供を追加するには、次のデータを記入してください。
message.action.delete.system.service.offering=このシステムサービスの提供を削除することを確認してください。
label.action.delete.system.service.offering=削除システムサービスの提供
label.hypervisor.capabilities=機能をハイパーバイザ
label.hypervisor.version=のバージョンをハイパーバイザ
label.max.guest.limit=最大ゲストの制限
label.add.network.offering=ネットワークの提供を追加します。
label.supported.services=サポートされているサービス
label.service.capabilities=サービス機能
label.guest.type=ゲストの種類
label.specify.IP.ranges=指定したIPの範囲
label.conserve.mode=モードを節約
label.created.by.system=システムによって作成され
label.menu.system.service.offerings=システムサービスの提供
label.add.system.service.offering=システムサービスの提供を追加します。
label.redundant.router.capability=Redundant router capability
label.supported.source.NAT.type=Supported Source NAT type
label.elastic.LB=Elastic LB
label.LB.isolation=LB isolation
label.elastic.IP=Elastic IP
label.network.label.display.for.blank.value=デフォルトゲートウェイを使用する
label.xen.traffic.label=XenServerのトラフィックのラベル
label.kvm.traffic.label=KVMトラフィックのラベル
label.vmware.traffic.label=VMwareのトラフィックのラベル
label.start.IP=IPアドレスの範囲を起動します。
label.end.IP=終了IPアドレスの範囲
label.remove.ip.range=IPアドレス範囲を削除します。
label.ip.ranges=IP範囲
label.start.vlan=スタートVLAN
label.end.vlan=エンドVLAN
label.broadcast.domain.range=ドメインの範囲をブロードキャスト
label.compute=計算
message.add.guest.network=あなたがゲストネットワークを追加したいことを確認してください
label.subdomain.access=サブドメインアクセス
label.guest.start.ip=ゲストの開始IP
label.guest.end.ip=ゲストの終了IP
label.virtual.router=Virtual Router
label.physical.network.ID=物理的なネットワークID
label.destination.physical.network.id=先の物理的なネットワークID
label.dhcp=DHCP
label.destroy.router=ルータを破壊する
message.confirm.destroy.router=このルータを破壊することを確認してください
label.change.service.offering=サービス·オファリングを変更する
label.view.console=コンソールを表示する
label.redundant.state=冗長状態
label.enable.provider=プロバイダを有効にする
message.confirm.enable.provider=このプロバイダを有効にしたいことを確認してください
label.disable.provider=プロバイダを無効にする
message.confirm.disable.provider=このプロバイダを無効にしたいことを確認してください
label.shutdown.provider=シャットダウン·プロバイダー
message.confirm.shutdown.provider=このプロバイダをシャットダウンすることを確認してください
label.netScaler=NetScaler
label.add.new.NetScaler=新しいNetScalerを追加する
number.of.retries=再試行の回数
label.capacity=容量
label.dedicated=専用の
label.f5=F5
label.add.new.F5=新しいF5キーを追加する
label.srx=SRX
label.providers=プロバイダー
label.add.new.SRX=新しいSRXを追加します。
label.timeout=タイムアウト
label.public.network=パブリックネットワーク
label.private.network=プライベートネットワーク
label.enable.swift=スウィフトを有効にする
confirm.enable.swift=スウィフトのサポートを有効にするには、次の情報を入力してください。
message.after.enable.swift=スウィフトは、設定されています。注:このページを出るときは、もう一度再構成するスウィフトにはできません。
label.key=キー
label.delete.NetScaler=削除NetScalerは
message.confirm.delete.NetScaler=あなたがNetScalerを削除したいことを確認してください
label.delete.F5=削除F5
message.confirm.delete.F5=F5キーを削除したいことを確認してください
label.delete.SRX=削除SRX
message.confirm.delete.SRX=あなたはSRXを削除したいことを確認してください
label.pods=ポッド
label.pod.name=ポッド名
label.reserved.system.gateway=予約システムのゲートウェイ
label.reserved.system.netmask=予約システムのネットマスク
label.start.reserved.system.IP=予約システムのIPを起動します。
label.end.reserved.system.IP=最後の予約システムのIP
label.clusters=クラスタ
label.cluster.name=クラスタ名
label.host.MAC=ホストのMAC
label.agent.username=エージェントのユーザー名
label.agent.password=エージェントのパスワード
message.confirm.action.force.reconnect=このホストを再接続を強制することを確認してください。
label.resource.state=リソースの状態
label.LUN.number=LUN #
message.confirm.remove.IP.range=あなたがこのIPアドレス範囲の削除を希望することを確認してください。
message.tooltip.zone.name=ゾーンの名前を入力します。
message.tooltip.dns.1=ゾーン内のVMで使用するためにDNSサーバーの名前を指定します。ゾーンのパブリックIPアドレスは、このサーバへのルートを持っている必要があります。
message.tooltip.dns.2=ゾーン内のVMで使用するための二次DNSサーバー名を指定します。ゾーンのパブリックIPアドレスは、このサーバへのルートを持っている必要があります
message.tooltip.internal.dns.1=ゾーン内のCloudStack内部システムのVMによって使用されるDNSサーバーの名前を指定します。ポッド用のプライベートIPアドレスはこのサーバへのルートを持っている必要があります。
message.tooltip.internal.dns.2=ゾーン内のCloudStack内部システムのVMによって使用されるDNSサーバーの名前を指定します。ポッド用のプライベートIPアドレスはこのサーバへのルートを持っている必要があります。
message.tooltip.network.domain=ゲストVMによってアクセスされるネットワーク用のカスタムドメイン名を作成するDNSサフィックスです。
message.tooltip.pod.name=このポッドの名前を入力します。
message.tooltip.reserved.system.gateway=ポッド内のホストに対するゲートウェイ。
message.tooltip.reserved.system.netmask=ポッドサブネットを定義するネットワーク接頭辞。 CIDR表記を使用しています。
message.creating.zone=ゾーンを作成する
message.creating.physical.networks=物理的なネットワークを作成する
message.configuring.physical.networks=物理的なネットワークを構成する
message.adding.Netscaler.device=NetScalerのデバイスを追加する
message.creating.pod=ポッドを作成する
message.configuring.public.traffic=公共交通を構成する
message.configuring.storage.traffic=ストレージ·トラフィックの設定
message.configuring.guest.traffic=ゲストのトラフィックを設定する
message.creating.cluster=クラスタの作成
message.adding.host=ホストを追加する
message.creating.primary.storage=プライマリ·ストレージを作成する
message.creating.secondary.storage=セカンダリ·ストレージを作成する
message.Zone.creation.complete=完全なゾーンの作成
message.enabling.zone=Enabling zone
error.something.went.wrong.please.correct.the.following=Something went wrong; please correct the following
error.could.not.enable.zone=Could not enable zone
message.zone.creation.complete.would.you.like.to.enable.this.zone=Zone creation complete. Would you like to enable this zone?
message.please.add.at.lease.one.traffic.range=Please add at lease one traffic range.
message.you.must.have.at.least.one.physical.network=You must have at least one physical network
message.please.select.a.different.public.and.management.network.before.removing=Please select a different public and management network before removing
label.zone.type=Zone Type
label.setup.zone=Setup Zone
label.setup.network=Setup Network
label.add.resources=Add Resources
label.launch=Launch
label.set.up.zone.type=Set up zone type
message.please.select.a.configuration.for.your.zone=Please select a configuration for your zone.
message.desc.basic.zone=Provide a single network where each VM instance is assigned an IP directly from the network. Guest isolation can be provided through layer-3 means such as security groups (IP address source filtering)
label.basic=Basic
message.desc.advanced.zone=For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks and providing custom network offerings such as firewall, VPN, or load balancer support.
label.advanced=Advanced
message.desc.zone=A zone is the largest organizational unit in CloudStack, and it typically corresponds to a single datacenter. Zones provide physical isolation and redundancy. A zone consists of one or more pods (each of which contains hosts and primary storage servers) and a secondary storage server which is shared by all pods in the zone.
label.physical.network=Physical Network
label.public.traffic=Public traffic
label.guest.traffic=Guest Traffic
label.storage.traffic=Storage Traffic
message.setup.physical.network.during.zone.creation=When adding an advanced zone, you need to set up one or more physical networks. Each network corresponds to a NIC on the management server. Each physical network can carry one or more types of traffic, with certain restrictions on how they may be combined.<br/><br/><strong>Drag and drop one or more traffic types</strong> onto each physical network.
label.add.physical.network=Add physical network
label.traffic.types=Traffic Types
label.management=Management
label.guest=Guest
label.please.specify.netscaler.info=Please specify Netscaler info
message.public.traffic.in.advanced.zone=Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at lease one range of IP addresses for internet traffic.
message.public.traffic.in.basic.zone=Public traffic is generated when VMs in the cloud access the Internet or provide services to clients over the Internet. Publicly accessible IPs must be allocated for this purpose. When a instance is created, an IP from this set of Public IPs will be allocated to the instance in addition to the guest IP address. Static 1-1 NAT will be set up automatically between the public IP and the guest IP. End users can also use the CloudStack UI to acquire additional IPs to implement static NAT between their instances and the public IP.
message.add.pod.during.zone.creation=Each zone must contain in one or more pods, and we will add the first pod now. A pod contains hosts and primary storage servers, which you will add in a later step. First, configure a range of reserved IP addresses for CloudStack's internal management traffic. The reserved IP range must be unique for each zone in the cloud.
message.guest.traffic.in.advanced.zone=Guest network traffic is communication between end-user virtual machines. Specify a range of VLAN IDs to carry guest traffic for each physical network.
message.guest.traffic.in.basic.zone=Guest network traffic is communication between end-user virtual machines. Specify a range of IP addresses that CloudStack can assign to guest VMs. Make sure this range does not overlap the reserved system IP range.
message.storage.traffic=Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs. Please configure storage traffic here.
message.desc.cluster=Each pod must contain one or more clusters, and we will add the first cluster now. A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Each cluster consists of one or more hosts and one or more primary storage servers.
message.desc.host=Each cluster must contain at lease one host (computer) for guest VMs to run on, and we will add the first host now. For a host to function in CloudStack, you must install hypervisor software on the host, assign an IP address to the host, and ensure the host is connected to the CloudStack management server.<br/><br/>Give the host's DNS or IP address, the user name (usually root) and password, and any labels you use to categorize hosts.
message.desc.primary.storage=Each cluster must contain one or more primary storage servers, and we will add the first one now. Primary storage contains the disk volumes for all the VMs running on hosts in the cluster. Use any standards-compliant protocol that is supported by the underlying hypervisor.
message.desc.secondary.storage=Each zone must have at lease one NFS or secondary storage server, and we will add the first one now. Secondary storage stores VM templates, ISO images, and VM disk volume snapshots. This server must be available to all hosts in the zone.<br/><br/>Provide the IP address and exported path.
label.launch.zone=Launch zone
message.please.wait.while.zone.is.being.created=Please wait while your zone is being created; this may take a while...
label.load.balancing=Load Balancing
label.static.nat.enabled=Static NAT Enabled
label.zones=Zones
label.view.more=View more
label.number.of.zones=Number of Zones
label.number.of.pods=Number of Pods
label.number.of.clusters=Number of Clusters
label.number.of.hosts=Number of Hosts
label.total.hosts=Total Hosts
label.total.CPU=Total CPU
label.total.memory=Total Memory
label.total.storage=Total Storage
#new labels (end) **********************************************************************************************
#cloudstack 2.2.Y (begin) ******************************************************************************************
label.action.migrate.router=ルータを移行する
label.action.migrate.router.processing=ルータの移行....
message.migrate.router.confirm=あなたがするようにルータを移行したいホストを確認してください。
@ -252,7 +489,7 @@ label.action.unmanage.cluster=非管理対象クラスタ
message.action.unmanage.cluster=クラスタを非管理対象にしてもよろしいですか?
label.action.unmanage.cluster.processing=クラスタを非管理対象にしています....
allocation.state=アロケーション状態
label.allocation.state=アロケーション状態
managed.state=管理された状態
label.default.use=デフォルト使用
@ -1065,129 +1302,9 @@ error.menu.select=アイテムが選択されていないためアクション
error.mgmt.server.inaccessible=Management Serverにアクセスできません。後で、もう一度やり直してください
error.session.expired=セッション有効期限が切れています
error.unresolved.internet.name=名前解決に失敗しました
#cloudstack 2.2.Y (end) ********************************************************************************************
#Jes
message.add.system.service.offering=新しいシステム·サービスの提供を追加するには、次のデータを記入してください。
message.action.delete.system.service.offering=このシステムサービスの提供を削除することを確認してください。
label.action.delete.system.service.offering=削除システムサービスの提供
hypervisor.capabilities=機能をハイパーバイザ
hypervisor.version=のバージョンをハイパーバイザ
max.guest.limit=最大ゲストの制限
security.group.enabled=セキュリティグループが有効になって
add.network.offering=ネットワークの提供を追加します。
supported.services=サポートされているサービス
service.capabilities=サービス機能
guest.type=ゲストの種類
specify.IP.ranges=指定したIPの範囲
conserve.mode=モードを節約
created.by.system=システムによって作成され
label.menu.system.service.offerings=システムサービスの提供
label.add.system.service.offering=システムサービスの提供を追加します。
redundant.router.capability=Redundant router capability
supported.source.NAT.type=Supported Source NAT type
elastic.LB=Elastic LB
LB.isolation=LB isolation
elastic.IP=Elastic IP
network.label.display.for.blank.value=デフォルトゲートウェイを使用する
Xen.traffic.label=XenServerのトラフィックのラベル
KVM.traffic.label=KVMトラフィックのラベル
VMware.traffic.label=VMwareのトラフィックのラベル
start.IP=IPアドレスの範囲を起動します。
end.IP=終了IPアドレスの範囲
IP.range.is.added=IPアドレスの範囲が追加されました
remove.IP.range=IPアドレス範囲を削除します。
storage.traffic.type.is.updated=ストレージ·トラフィック·タイプが更新されます。
management.traffic.type.is.updated=管理トラフィックタイプが更新されます。
public.traffic.type.is.updated=公共交通の種類が更新されます。
guest.traffic.type.is.updated=ゲストのトラフィック·タイプが更新されます。
IP.ranges=IP範囲
start.Vlan=スタートVLAN
end.Vlan=エンドVLAN
broadcast.domain.range=ドメインの範囲をブロードキャスト
label.compute=計算
message.add.guest.network=あなたがゲストネットワークを追加したいことを確認してください
subdomain.access=サブドメインアクセス
guest.start.IP=ゲストの開始IP
guest.end.IP=ゲストの終了IP
restart.required=要な再起動
virtual.router=Virtual Router
physical.network.ID=物理的なネットワークID
destination.physical.network.ID=先の物理的なネットワークID
DHCP=DHCP
destroy.router=ルータを破壊する
confirm.destroy.router=このルータを破壊することを確認してください
change.service.offering=サービス·オファリングを変更する
view.console=コンソールを表示する
redundant.state=冗長状態
enable.provider=プロバイダを有効にする
confirm.enable.provider=このプロバイダを有効にしたいことを確認してください
disable.provider=プロバイダを無効にする
confirm.disable.provider=このプロバイダを無効にしたいことを確認してください
shutdown.provider=シャットダウン·プロバイダー
confirm.shutdown.provider=このプロバイダをシャットダウンすることを確認してください
NetScaler=NetScaler
add.new.NetScaler=新しいNetScalerを追加する
number.of.retries=再試行の回数
capacity=容量
dedicated=専用の
F5=F5
add.new.F5=新しいF5キーを追加する
SRX=SRX
providers=プロバイダー
add.new.SRX=新しいSRXを追加します。
timeout=タイムアウト
public.network=パブリックネットワーク
private.network=プライベートネットワーク
public=公共
enable.swift=スウィフトを有効にする
confirm.enable.swift=スウィフトのサポートを有効にするには、次の情報を入力してください。
message.after.enable.swift=スウィフトは、設定されています。注:このページを出るときは、もう一度再構成するスウィフトにはできません。
URL=URL
key=キー
domain=ドメイン
delete.NetScaler=削除NetScalerは
confirm.delete.NetScaler=あなたがNetScalerを削除したいことを確認してください
delete.F5=削除F5
confirm.delete.F5=F5キーを削除したいことを確認してください
delete.SRX=削除SRX
confirm.delete.SRX=あなたはSRXを削除したいことを確認してください
label.pods=ポッド
pod.name=ポッド名
reserved.system.gateway=予約システムのゲートウェイ
reserved.system.netmask=予約システムのネットマスク
start.reserved.system.IP=予約システムのIPを起動します。
end.reserved.system.IP=最後の予約システムのIP
label.clusters=クラスタ
cluster.name=クラスタ名
host.MAC=ホストのMAC
agent.username=エージェントのユーザー名
agent.password=エージェントのパスワード
confirm.action.force.reconnect=このホストを再接続を強制することを確認してください。
resource.state=リソースの状態
LUN.number=LUN #
confirm.remove.IP.range=あなたがこのIPアドレス範囲の削除を希望することを確認してください。
tooltip.zone.name=ゾーンの名前を入力します。
tooltip.dns.1=ゾーン内のVMで使用するためにDNSサーバーの名前を指定します。ゾーンのパブリックIPアドレスは、このサーバへのルートを持っている必要があります。
tooltip.dns.2=ゾーン内のVMで使用するための二次DNSサーバー名を指定します。ゾーンのパブリックIPアドレスは、このサーバへのルートを持っている必要があります
tooltip.internal.dns.1=ゾーン内のCloudStack内部システムのVMによって使用されるDNSサーバーの名前を指定します。ポッド用のプライベートIPアドレスはこのサーバへのルートを持っている必要があります。
tooltip.internal.dns.2=ゾーン内のCloudStack内部システムのVMによって使用されるDNSサーバーの名前を指定します。ポッド用のプライベートIPアドレスはこのサーバへのルートを持っている必要があります。
tooltip.network.domain=ゲストVMによってアクセスされるネットワーク用のカスタムドメイン名を作成するDNSサフィックスです。
tooltip.pod.name=このポッドの名前を入力します。
tooltip.reserved.system.gateway=ポッド内のホストに対するゲートウェイ。
tooltip.reserved.system.netmask=ポッドサブネットを定義するネットワーク接頭辞。 CIDR表記を使用しています。
creating.zone=ゾーンを作成する
creating.physical.networks=物理的なネットワークを作成する
configuring.physical.networks=物理的なネットワークを構成する
adding.Netscaler.device=NetScalerのデバイスを追加する
creating.pod=ポッドを作成する
configuring.public.traffic=公共交通を構成する
configuring.storage.traffic=ストレージ·トラフィックの設定
configuring.guest.traffic=ゲストのトラフィックを設定する
creating.cluster=クラスタの作成
adding.host=ホストを追加する
creating.primary.storage=プライマリ·ストレージを作成する
creating.secondary.storage=セカンダリ·ストレージを作成する
Zone.creation.complete=完全なゾーンの作成

View File

@ -236,6 +236,27 @@ body.login {
box-shadow: 0px 3px 5px #D5D5D5;
}
.login .select-language {
margin-top: 10px;
float: left;
}
.login .select-language select {
width: 125px;
border: 1px solid #808080;
/*+border-radius:4px;*/
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px 4px 4px 4px;
font-size: 12px;
/*+box-shadow:inset 0px 1px 1px #838383;*/
-moz-box-shadow: inset 0px 1px 1px #838383;
-webkit-box-shadow: inset 0px 1px 1px #838383;
-o-box-shadow: inset 0px 1px 1px #838383;
box-shadow: inset 0px 1px 1px #838383;
}
.login .fields {
width: 409px;
float: left;
@ -306,6 +327,10 @@ body.login {
background: url(../images/logo-login.png) no-repeat;
}
.login.nologo .logo {
background-image: url(../images/logo-login-oss.png);
}
.login form {
display: block;
width: 1000px;
@ -494,9 +519,8 @@ body.login {
/*** EULA*/
.install-wizard .eula-copy {
width: 645px;
width: 688px;
height: 480px;
overflow: auto;
background: #FFFFFF;
border: 1px solid #BCBCBC;
/*+box-shadow:0px 4px 10px #B9B9B9;*/
@ -504,12 +528,13 @@ body.login {
-webkit-box-shadow: 0px 4px 10px #B9B9B9;
-o-box-shadow: 0px 4px 10px #B9B9B9;
box-shadow: 0px 4px 10px #B9B9B9;
padding: 8px 20px;
padding: 5px;
/*+border-radius:4px;*/
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px 4px 4px 4px;
overflow: auto;
}
.install-wizard .eula-copy p {
@ -707,6 +732,12 @@ body.login {
.install-wizard .step.intro {
}
.install-wizard .step.intro iframe {
width: 99%;
height: 99%;
margin: 4px;
}
.install-wizard .step.intro .title {
color: #565454;
margin-left: 0;
@ -1619,6 +1650,10 @@ div.detail-group.actions td {
padding: 0 96px 0 0;
}
#header div.controls.nologo {
background-image: none;
}
.button {
float: left;
background: url(../images/buttons.png) no-repeat;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -50,6 +50,14 @@
<!-- Submit (login) -->
<input type="submit" value="" />
<!-- Select language -->
<div class="select-language">
<select name="language">
<option value="en"><fmt:message key="label.lang.english"/></option>
<option value="ja"><fmt:message key="label.lang.japanese"/></option>
</select>
</div>
</div>
</form>
</div>
@ -153,16 +161,6 @@
<div class="select-container">
</div>
</div>
<!--
<ul>
<li class="first last"><a href="#instance-wizard-all-isos">All ISOs</a></li>
</ul>
<div id="instance-wizard-all-isos">
<div class="select-container">
</div>
</div>
-->
</div>
</div>
</div>
@ -430,18 +428,18 @@
<div class="multi-wizard zone-wizard">
<div class="progress">
<ul>
<li class="first"><span class="number">1</span><span>Zone Type</span><span class="arrow"></span></li>
<li><span class="number">2</span><span>Setup Zone</span><span class="arrow"></span></li>
<li><span class="number">3</span><span>Setup Network</span><span class="arrow"></span></li>
<li class="first"><span class="number">1</span><span><fmt:message key="label.zone.type"/></span><span class="arrow"></span></li>
<li><span class="number">2</span><span><fmt:message key="label.setup.zone"/></span><span class="arrow"></span></li>
<li><span class="number">3</span><span><fmt:message key="label.setup.network"/></span><span class="arrow"></span></li>
<li style="display:none;"></li>
<li style="display:none;"></li>
<li style="display:none;"></li>
<li style="display:none;"></li>
<li><span class="number">4</span><span>Add Resources</span><span class="arrow"></span></li>
<li><span class="number">4</span><span><fmt:message key="label.add.resources"/></span><span class="arrow"></span></li>
<li style="display:none;"></li>
<li style="display:none;"></li>
<li style="display:none;"></li>
<li class="last"><span class="number">5</span><span>Launch</span></li>
<li class="last"><span class="number">5</span><span><fmt:message key="label.launch"/></span></li>
</ul>
</div>
<div class="steps">
@ -451,21 +449,21 @@
<div class="content">
<!-- Select template -->
<div class="section select-network-model">
<h3>Set up zone type</h3>
<p>Please select a configuration for your zone.</p>
<h3><fmt:message key="label.set.up.zone.type"/></h3>
<p><fmt:message key="message.please.select.a.configuration.for.your.zone"/></p>
<div class="select-area">
<div class="desc">
Provide a single network where each VM instance is assigned an IP directly from the network. Guest isolation can be provided through layer-3 means such as security groups (IP address source filtering)
<fmt:message key="message.desc.basic.zone"/>
</div>
<input type="radio" name="network-model" value="Basic" checked="checked" />
<label>Basic</label>
<label><fmt:message key="label.basic"/></label>
</div>
<div class="select-area">
<div class="desc">
For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks and providing custom network offerings such as firewall, VPN, or load balancer support.
</div>
<fmt:message key="message.desc.advanced.zone"/>
</div>
<input type="radio" name="network-model" value="Advanced" />
<label>Advanced</label>
<label><fmt:message key="label.advanced"/></label>
</div>
</div>
</div>
@ -476,8 +474,8 @@
<div class="setup-zone" zone-wizard-form="zone"
zone-wizard-step-id="addZone">
<div class="info-desc">
A zone is the largest organizational unit in CloudStack, and it typically corresponds to a single datacenter. Zones provide physical isolation and redundancy. A zone consists of one or more pods (each of which contains hosts and primary storage servers) and a secondary storage server which is shared by all pods in the zone.
</div>
<fmt:message key="message.desc.zone"/>
</div>
<div class="content input-area">
<div class="select-container"></div>
</div>
@ -488,20 +486,20 @@
zone-wizard-step-id="setupPhysicalNetwork"
zone-wizard-prefilter="setupPhysicalNetwork">
<ul class="subnav">
<li class="physical-network active">Physical Network</li>
<li class="public-network">Public traffic</li>
<li class="pod">Pod</li>
<li class="guest-traffic">Guest Traffic</li>
<li class="conditional storage-traffic">Storage Traffic</li>
<li class="physical-network active"><fmt:message key="label.physical.network"/></li>
<li class="public-network"><fmt:message key="label.public.traffic"/></li>
<li class="pod"><fmt:message key="label.pod"/></li>
<li class="guest-traffic"><fmt:message key="label.guest.traffic"/></li>
<li class="conditional storage-traffic"><fmt:message key="label.storage.traffic"/></li>
</ul>
<div class="info-desc">
When adding an advanced zone, you need to set up one or more physical networks. Each network corresponds to a NIC on the management server. Each physical network can carry one or more types of traffic, with certain restrictions on how they may be combined.<br/><br/><strong>Drag and drop one or more traffic types</strong> onto each physical network.
<fmt:message key="message.setup.physical.network.during.zone.creation"/>
</div>
<div class="button add new-physical-network"><span class="icon">&nbsp;</span><span>Add physical network</span></div>
<div class="button add new-physical-network"><span class="icon">&nbsp;</span><span><fmt:message key="label.add.physical.network"/></span></div>
<!-- Traffic types drag area -->
<div class="traffic-types-drag-area">
<div class="header">Traffic Types</div>
<div class="header"><fmt:message key="label.traffic.types"/></div>
<ul>
<li class="management">
<ul class="container">
@ -510,8 +508,8 @@
class="traffic-type-draggable management"></li>
</ul>
<div class="info">
<div class="title">Management</div>
<div class="desc">Set up the network for traffic between end-user VMs.</div>
<div class="title"><fmt:message key="label.management"/></div>
<div class="desc"></div>
</div>
</li>
<li class="public">
@ -521,8 +519,8 @@
class="traffic-type-draggable public"></li>
</ul>
<div class="info">
<div class="title">Public</div>
<div class="desc">Set up the network for traffic between end-user VMs.</div>
<div class="title"><fmt:message key="label.public"/></div>
<div class="desc"></div>
</div>
</li>
<li class="guest">
@ -532,8 +530,8 @@
class="traffic-type-draggable guest clone"></li>
</ul>
<div class="info">
<div class="title">Guest</div>
<div class="desc">Set up the network for traffic between end-user VMs.</div>
<div class="title"><fmt:message key="label.guest"/></div>
<div class="desc"></div>
</div>
</li>
<li class="storage">
@ -543,8 +541,8 @@
class="traffic-type-draggable storage"></li>
</ul>
<div class="info">
<div class="title">Storage</div>
<div class="desc">Set up the network for traffic between end-user VMs.</div>
<div class="title"><fmt:message key="label.storage"/></div>
<div class="desc"></div>
</div>
</li>
</ul>
@ -562,14 +560,14 @@
zone-wizard-form="basicPhysicalNetwork"
zone-wizard-prefilter="addNetscalerDevice">
<ul class="subnav">
<li class="conditional elb physical-network active">Netscaler</li>
<li class="public-network">Public traffic</li>
<li class="pod">Pod</li>
<li class="guest-traffic">Guest Traffic</li>
<li class="conditional storage-traffic">Storage Traffic</li>
<li class="conditional elb physical-network active"><fmt:message key="label.netScaler"/></li>
<li class="public-network"><fmt:message key="label.public.traffic"/></li>
<li class="pod"><fmt:message key="label.pod"/></li>
<li class="guest-traffic"><fmt:message key="label.guest.traffic"/></li>
<li class="conditional storage-traffic"><fmt:message key="label.storage.traffic"/></li>
</ul>
<div class="info-desc">Please specify Netscaler info</div>
<div class="info-desc"><fmt:message key="label.please.specify.netscaler.info"/></div>
<div class="content input-area">
<div class="select-container"></div>
</div>
@ -579,15 +577,16 @@
<div class="setup-public-traffic" zone-wizard-prefilter="addPublicNetwork"
zone-wizard-step-id="configurePublicTraffic">
<ul class="subnav">
<li class="conditional elb physical-network">Netscaler</li>
<li class="public-network active">Public traffic</li>
<li class="pod">Pod</li>
<li class="guest-traffic">Guest Traffic</li>
<li class="conditional storage-traffic">Storage Traffic</li>
<li class="conditional elb physical-network"><fmt:message key="label.netScaler"/></li>
<li class="public-network active"><fmt:message key="label.public.traffic"/></li>
<li class="pod"><fmt:message key="label.pod"/></li>
<li class="guest-traffic"><fmt:message key="label.guest.traffic"/></li>
<li class="conditional storage-traffic"><fmt:message key="label.storage.traffic"/></li>
</ul>
<div class="info-desc">
Public traffic is generated when VMs in the cloud access the internet. Publicly-accessible IPs must be allocated for this purpose. End users can use the CloudStack UI to acquire these IPs to implement NAT between their guest network and their public network.<br/><br/>Provide at lease one range of IP addresses for internet traffic.
<div class="info-desc" id="add_zone_public_traffic_desc">
<span id="for_basic_zone" style="display:none"><fmt:message key="message.public.traffic.in.basic.zone"/></span>
<span id="for_advanced_zone" style="display:none"><fmt:message key="message.public.traffic.in.advanced.zone"/></span>
</div>
<div ui-custom="publicTrafficIPRange"></div>
</div>
@ -596,15 +595,15 @@
<div class="add-pod" zone-wizard-form="pod"
zone-wizard-step-id="addPod">
<ul class="subnav">
<li class="conditional elb physical-network">Netscaler</li>
<li class="public-network">Public traffic</li>
<li class="pod active">Pod</li>
<li class="guest-traffic">Guest Traffic</li>
<li class="conditional storage-traffic">Storage Traffic</li>
<li class="conditional elb physical-network"><fmt:message key="label.netScaler"/></li>
<li class="public-network"><fmt:message key="label.public.traffic"/></li>
<li class="pod active"><fmt:message key="label.pod"/></li>
<li class="guest-traffic"><fmt:message key="label.guest.traffic"/></li>
<li class="conditional storage-traffic"><fmt:message key="label.storage.traffic"/></li>
</ul>
<div class="info-desc">
Each zone must contain in one or more pods, and we will add the first pod now. A pod contains hosts and primary storage servers, which you will add in a later step. First, configure a range of reserved IP addresses for CloudStack's internal management traffic. The reserved IP range must be unique for each zone in the cloud.
<fmt:message key="message.add.pod.during.zone.creation"/>
</div>
<div class="content input-area">
<div class="select-container"></div>
@ -617,15 +616,16 @@
zone-wizard-step-id="configureGuestTraffic"
zone-wizard-prefilter="configureGuestTraffic">
<ul class="subnav">
<li class="conditional elb physical-network">Netscaler</li>
<li class="public-network">Public traffic</li>
<li class="pod">Pod</li>
<li class="guest-traffic active">Guest Traffic</li>
<li class="conditional storage-traffic">Storage Traffic</li>
<li class="conditional elb physical-network"><fmt:message key="label.netScaler"/></li>
<li class="public-network"><fmt:message key="label.public.traffic"/></li>
<li class="pod"><fmt:message key="label.pod"/></li>
<li class="guest-traffic active"><fmt:message key="label.guest.traffic"/></li>
<li class="conditional storage-traffic"><fmt:message key="label.storage.traffic"/></li>
</ul>
<div class="info-desc">
Guest network traffic is communication between end-user virtual machines.
<div class="info-desc" id="add_zone_guest_traffic_desc">
<span id="for_basic_zone" style="display:none"><fmt:message key="message.guest.traffic.in.basic.zone"/></span>
<span id="for_advanced_zone" style="display:none"><fmt:message key="message.guest.traffic.in.advanced.zone"/></span>
</div>
<div class="content input-area">
<div class="select-container"></div>
@ -636,15 +636,15 @@
<div class="setup-storage-traffic" zone-wizard-prefilter="configureStorageTraffic"
zone-wizard-step-id="configureStorageTraffic">
<ul class="subnav">
<li class="conditional elb physical-network">Netscaler</li>
<li class="public-network">Public traffic</li>
<li class="pod">Pod</li>
<li class="guest-traffic">Guest Traffic</li>
<li class="storage-traffic active">Storage Traffic</li>
<li class="conditional elb physical-network"><fmt:message key="label.netScaler"/></li>
<li class="public-network"><fmt:message key="label.public.traffic"/></li>
<li class="pod"><fmt:message key="label.pod"/><</li>
<li class="guest-traffic"><fmt:message key="label.guest.traffic"/></li>
<li class="storage-traffic active"><fmt:message key="label.storage.traffic"/></li>
</ul>
<div class="info-desc">
Traffic between CloudStack's internal resources, including any components that communicate with the Management Server, such as hosts and CloudStack system VMs. Please configure storage traffic here.
<fmt:message key="message.storage.traffic"/>
</div>
<div ui-custom="storageTrafficIPRange"></div>
</div>
@ -653,15 +653,15 @@
<div class="add-cluster" zone-wizard-form="cluster"
zone-wizard-step-id="addCluster">
<ul class="subnav">
<li class="cluster active">Cluster</li>
<li class="host">Host</li>
<li class="primary-storage">Primary Storage</li>
<li class="secondary-storage">Secondary Storage</li>
<li class="cluster active"><fmt:message key="label.cluster"/></li>
<li class="host"><fmt:message key="label.host"/></li>
<li class="primary-storage"><fmt:message key="label.primary.storage"/></li>
<li class="secondary-storage"><fmt:message key="label.secondary.storage"/></li>
</ul>
<div class="info-desc">
Each pod must contain one or more clusters, and we will add the first cluster now. A cluster provides a way to group hosts. The hosts in a cluster all have identical hardware, run the same hypervisor, are on the same subnet, and access the same shared storage. Each cluster consists of one or more hosts and one or more primary storage servers.
</div>
<fmt:message key="message.desc.cluster"/>
</div>
<div class="content input-area">
<div class="select-container"></div>
</div>
@ -671,14 +671,14 @@
<div class="add-cluster" zone-wizard-form="host"
zone-wizard-step-id="addHost" zone-wizard-prefilter="addHost">
<ul class="subnav">
<li class="cluster">Cluster</li>
<li class="host active">Host</li>
<li class="primary-storage">Primary Storage</li>
<li class="secondary-storage">Secondary Storage</li>
<li class="cluster"><fmt:message key="label.cluster"/></li>
<li class="host active"><fmt:message key="label.host"/></li>
<li class="primary-storage"><fmt:message key="label.primary.storage"/></li>
<li class="secondary-storage"><fmt:message key="label.secondary.storage"/></li>
</ul>
<div class="info-desc">
Each cluster must contain at lease one host (computer) for guest VMs to run on, and we will add the first host now. For a host to function in CloudStack, you must install hypervisor software on the host, assign an IP address to the host, and ensure the host is connected to the CloudStack management server.<br/><br/>Give the host's DNS or IP address, the user name (usually root) and password, and any labels you use to categorize hosts.
</div>
<fmt:message key="message.desc.host"/>
</div>
<div class="content input-area">
<div class="select-container"></div>
</div>
@ -688,14 +688,14 @@
<div class="add-cluster" zone-wizard-form="primaryStorage"
zone-wizard-step-id="addPrimaryStorage">
<ul class="subnav">
<li class="cluster">Cluster</li>
<li class="host">Host</li>
<li class="primary-storage active">Primary Storage</li>
<li class="secondary-storage">Secondary Storage</li>
<li class="cluster"><fmt:message key="label.cluster"/></li>
<li class="host"><fmt:message key="label.host"/></li>
<li class="primary-storage active"><fmt:message key="label.primary.storage"/></li>
<li class="secondary-storage"><fmt:message key="label.secondary.storage"/></li>
</ul>
<div class="info-desc">
Each cluster must contain one or more primary storage servers, and we will add the first one now. Primary storage contains the disk volumes for all the VMs running on hosts in the cluster. Use any standards-compliant protocol that is supported by the underlying hypervisor.
</div>
<fmt:message key="message.desc.primary.storage"/>
</div>
<div class="content input-area">
<div class="select-container"></div>
</div>
@ -705,14 +705,14 @@
<div class="add-cluster" zone-wizard-form="secondaryStorage"
zone-wizard-step-id="addSecondaryStorage">
<ul class="subnav">
<li class="cluster">Cluster</li>
<li class="host">Host</li>
<li class="primary-storage">Primary Storage</li>
<li class="secondary-storage active">Secondary Storage</li>
<li class="cluster"><fmt:message key="label.cluster"/></li>
<li class="host"><fmt:message key="label.host"/></li>
<li class="primary-storage"><fmt:message key="label.primary.storage"/></li>
<li class="secondary-storage active"><fmt:message key="label.secondary.storage"/></li>
</ul>
<div class="info-desc">
Each zone must have at lease one NFS or secondary storage server, and we will add the first one now. Secondary storage stores VM templates, ISO images, and VM disk volume snapshots. This server must be available to all hosts in the zone.<br/><br/>Provide the IP address and exported path.
</div>
<fmt:message key="message.desc.secondary.storage"/>
</div>
<div class="content input-area">
<div class="select-container"></div>
</div>
@ -720,9 +720,9 @@
<!-- Step 5: Launch -->
<div class="review" zone-wizard-step-id="launch">
<div class="main-desc">Launch zone</div>
<div class="main-desc"><fmt:message key="label.launch.zone"/></div>
<div class="main-desc launch" style="display:none;">
Please wait while your zone is being created; this may take a while...
<fmt:message key="message.please.wait.while.zone.is.being.created"/>
</div>
<form>
</form>
@ -734,9 +734,9 @@
<!-- Buttons -->
<div class="buttons">
<div class="button previous"><span>Previous</span></div>
<div class="button cancel"><span>Cancel</span></div>
<div class="button next"><span>Next</span></div>
<div class="button previous"><span><fmt:message key="label.previous"/></span></div>
<div class="button cancel"><span><fmt:message key="label.cancel"/></span></div>
<div class="button next"><span><fmt:message key="label.next"/></span></div>
</div>
</div>
@ -744,16 +744,16 @@
<div class="network-chart normal">
<ul>
<li class="firewall">
<div class="name"><span>Firewall</span></div>
<div class="view-details" net-target="firewall">View All</div>
<div class="name"><span><fmt:message key="label.firewall"/></span></div>
<div class="view-details" net-target="firewall"><fmt:message key="label.view.all"/></div>
</li>
<li class="loadBalancing">
<div class="name"><span>Load Balancing</span></div>
<div class="view-details" net-target="loadBalancing">View All</div>
<div class="name"><span><fmt:message key="label.load.balancing"/></span></div>
<div class="view-details" net-target="loadBalancing"><fmt:message key="label.view.all"/></div>
</li>
<li class="portForwarding">
<div class="name"><span>Port Forwarding</span></div>
<div class="view-details" net-target="portForwarding">View All</div>
<div class="name"><span><fmt:message key="label.port.forwarding"/></span></div>
<div class="view-details" net-target="portForwarding"><fmt:message key="label.view.all"/></div>
</li>
</ul>
</div>
@ -762,12 +762,12 @@
<div class="network-chart static-nat">
<ul>
<li class="static-nat-enabled">
<div class="name"><span>Static NAT Enabled</span></div>
<div class="name"><span><fmt:message key="label.static.nat.enabled"/></span></div>
<div class="vmname"></div>
</li>
<li class="firewall">
<div class="name"><span>Firewall</span></div>
<div class="view-details" net-target="staticNAT">View All</div>
<div class="name"><span><fmt:message key="label.firewall"/></span></div>
<div class="view-details" net-target="staticNAT"><fmt:message key="label.view.all"/></div>
</li>
</ul>
</div>
@ -907,31 +907,31 @@
<div class="system-dashboard-view">
<div class="toolbar">
<div class="button refresh">
<span>Refresh</span>
<span><fmt:message key="label.refresh"/></span>
</div>
</div>
<!-- Zone dashboard -->
<div class="system-dashboard">
<div class="head">
<span>Zones</span>
<div class="view-more"><span>View more</span></div>
<span><fmt:message key="label.zones"/></span>
<div class="view-more"><span><fmt:message key="label.view.more"/></span></div>
</div>
<ul class="status_box good">
<li class="block">
<span class="header">Number of Zones</span>
<span class="header"><fmt:message key="label.number.of.zones"/></span>
<span class="overview total" data-item="zoneCount"></span>
</li>
<li class="block">
<span class="header">Number of Pods</span>
<span class="header"><fmt:message key="label.number.of.pods"/></span>
<span class="overview total" data-item="podCount"></span>
</li>
<li class="block">
<span class="header">Number of Clusters</span>
<span class="header"><fmt:message key="label.number.of.clusters"/></span>
<span class="overview total" data-item="clusterCount"></span>
</li>
<li class="block last">
<span class="header">Number of Hosts</span>
<span class="header"><fmt:message key="label.number.of.hosts"/></span>
<span class="overview total" data-item="hostCount"></span>
</li>
</ul>
@ -940,24 +940,24 @@
<!-- Host dashboard -->
<div class="system-dashboard">
<div class="head">
<span>Hosts</span>
<div class="view-more"><span>View more</span></div>
<span<fmt:message key="label.hosts"/></span>
<div class="view-more"><span><fmt:message key="label.view.more"/></span></div>
</div>
<ul class="status_box good">
<li class="block">
<span class="header">Total Hosts</span>
<span class="header"><fmt:message key="label.total.hosts"/></span>
<span class="overview total" data-item="hostCount"></span>
</li>
<li class="block capacity">
<span class="header">Total CPU</span>
<span class="header"><fmt:message key="label.total.CPU"/></span>
<span class="overview total" data-item="cpuCapacityTotal"></span>
</li>
<li class="block capacity">
<span class="header">Total Memory</span>
<span class="header"><fmt:message key="label.total.memory"/></span>
<span class="overview total" data-item="memCapacityTotal"></span>
</li>
<li class="block last capacity">
<span class="header">Total Storage</span>
<span class="header"><fmt:message key="label.total.storage"/></span>
<span class="overview total" data-item="storageCapacityTotal"></span>
</li>
</ul>
@ -1614,6 +1614,76 @@
<script language="javascript">
dictionary = {
'message.migrate.instance.to.host': '<fmt:message key="message.migrate.instance.to.host"/>',
'label.migrate.instance.to.host': '<fmt:message key="label.migrate.instance.to.host"/>',
'message.migrate.instance.to.ps': '<fmt:message key="message.migrate.instance.to.ps"/>',
'label.migrate.instance.to.ps': '<fmt:message key="label.migrate.instance.to.ps"/>',
'label.corrections.saved': '<fmt:message key="label.corrections.saved"/>',
'message.installWizard.copy.whatIsSecondaryStorage': '<fmt:message key="message.installWizard.copy.whatIsSecondaryStorage"/>',
'message.installWizard.copy.whatIsPrimaryStorage': '<fmt:message key="message.installWizard.copy.whatIsPrimaryStorage"/>',
'message.installWizard.copy.whatIsAHost': '<fmt:message key="message.installWizard.copy.whatIsAHost"/>',
'message.installWizard.copy.whatIsACluster': '<fmt:message key="message.installWizard.copy.whatIsACluster"/>',
'message.installWizard.copy.whatIsACluster': '<fmt:message key="message.installWizard.copy.whatIsACluster"/>',
'message.installWizard.copy.whatIsAPod': '<fmt:message key="message.installWizard.copy.whatIsAPod"/>',
'message.installWizard.copy.whatIsAZone': '<fmt:message key="message.installWizard.copy.whatIsAZone"/>',
'message.installWizard.copy.whatIsCloudStack': '<fmt:message key="message.installWizard.copy.whatIsCloudStack"/>',
'message.installWizard.tooltip.addSecondaryStorage.path': '<fmt:message key="message.installWizard.tooltip.addSecondaryStorage.path"/>',
'message.installWizard.tooltip.addSecondaryStorage.nfsServer': '<fmt:message key="message.installWizard.tooltip.addSecondaryStorage.nfsServer"/>',
'message.installWizard.tooltip.addPrimaryStorage.path': '<fmt:message key="message.installWizard.tooltip.addPrimaryStorage.path"/>',
'message.installWizard.tooltip.addPrimaryStorage.server': '<fmt:message key="message.installWizard.tooltip.addPrimaryStorage.server"/>',
'message.installWizard.tooltip.addPrimaryStorage.name': '<fmt:message key="message.installWizard.tooltip.addPrimaryStorage.name"/>',
'message.installWizard.tooltip.addHost.password': '<fmt:message key="message.installWizard.tooltip.addHost.password"/>',
'message.installWizard.tooltip.addHost.username': '<fmt:message key="message.installWizard.tooltip.addHost.username"/>',
'message.installWizard.tooltip.addHost.hostname': '<fmt:message key="message.installWizard.tooltip.addHost.hostname"/>',
'message.installWizard.tooltip.addCluster.name': '<fmt:message key="message.installWizard.tooltip.addCluster.name"/>',
'message.installWizard.tooltip.addPod.reservedSystemEndIp': '<fmt:message key="message.installWizard.tooltip.addPod.reservedSystemEndIp"/>',
'message.installWizard.tooltip.addPod.reservedSystemStartIp': '<fmt:message key="message.installWizard.tooltip.addPod.reservedSystemStartIp"/>',
'message.installWizard.tooltip.addPod.reservedSystemNetmask': '<fmt:message key="message.installWizard.tooltip.addPod.reservedSystemNetmask"/>',
'message.installWizard.tooltip.addPod.reservedSystemGateway': '<fmt:message key="message.installWizard.tooltip.addPod.reservedSystemGateway"/>',
'message.installWizard.tooltip.addPod.name': '<fmt:message key="message.installWizard.tooltip.addPod.name"/>',
'message.installWizard.tooltip.configureGuestTraffic.guestEndIp': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.guestEndIp"/>',
'message.installWizard.tooltip.configureGuestTraffic.guestStartIp': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.guestStartIp"/>',
'message.installWizard.tooltip.configureGuestTraffic.guestNetmask': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.guestNetmask"/>',
'message.installWizard.tooltip.configureGuestTraffic.guestGateway': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.guestGateway"/>',
'message.installWizard.tooltip.configureGuestTraffic.description': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.description"/>',
'message.installWizard.tooltip.configureGuestTraffic.name': '<fmt:message key="message.installWizard.tooltip.configureGuestTraffic.name"/>',
'message.installWizard.tooltip.addZone.internaldns2': '<fmt:message key="message.installWizard.tooltip.addZone.internaldns2"/>',
'message.installWizard.tooltip.addZone.internaldns1': '<fmt:message key="message.installWizard.tooltip.addZone.internaldns1"/>',
'message.installWizard.tooltip.addZone.dns2': '<fmt:message key="message.installWizard.tooltip.addZone.dns2"/>',
'message.installWizard.tooltip.addZone.dns1': '<fmt:message key="message.installWizard.tooltip.addZone.dns1"/>',
'message.installWizard.tooltip.addZone.name': '<fmt:message key="message.installWizard.tooltip.addZone.name"/>',
'label.launch': '<fmt:message key="label.launch"/>',
'label.hints': '<fmt:message key="label.hints"/>',
'label.continue': '<fmt:message key="label.continue"/>',
'message.setup.successful': '<fmt:message key="message.setup.successful"/>',
'label.may.continue': '<fmt:message key="label.may.continue"/>',
'error.installWizard.message': '<fmt:message key="error.installWizard.message"/>',
'message.installWizard.now.building': '<fmt:message key="message.installWizard.now.building"/>',
'message.installWizard.click.retry': '<fmt:message key="message.installWizard.click.retry"/>',
'label.installWizard.click.launch': '<fmt:message key="label.installWizard.click.launch"/>',
'label.congratulations': '<fmt:message key="label.congratulations"/>',
'label.installWizard.addSecondaryStorageIntro.subtitle': '<fmt:message key="label.installWizard.addSecondaryStorageIntro.subtitle"/>',
'label.installWizard.addSecondaryStorageIntro.title': '<fmt:message key="label.installWizard.addSecondaryStorageIntro.title"/>',
'label.installWizard.addPrimaryStorageIntro.subtitle': '<fmt:message key="label.installWizard.addPrimaryStorageIntro.subtitle"/>',
'label.installWizard.addPrimaryStorageIntro.title': '<fmt:message key="label.installWizard.addPrimaryStorageIntro.title"/>',
'label.installWizard.addHostIntro.subtitle': '<fmt:message key="label.installWizard.addHostIntro.subtitle"/>',
'label.installWizard.addHostIntro.title': '<fmt:message key="label.installWizard.addHostIntro.title"/>',
'label.installWizard.addClusterIntro.subtitle': '<fmt:message key="label.installWizard.addClusterIntro.subtitle"/>',
'label.installWizard.addClusterIntro.title': '<fmt:message key="label.installWizard.addClusterIntro.title"/>',
'label.installWizard.addPodIntro.subtitle': '<fmt:message key="label.installWizard.addPodIntro.subtitle"/>',
'label.installWizard.addPodIntro.title': '<fmt:message key="label.installWizard.addPodIntro.title"/>',
'label.installWizard.addZone.title': '<fmt:message key="label.installWizard.addZone.title"/>',
'error.password.not.match': '<fmt:message key="error.password.not.match"/>',
'label.installWizard.addZoneIntro.subtitle': '<fmt:message key="label.installWizard.addZoneIntro.subtitle"/>',
'label.installWizard.addZoneIntro.title': '<fmt:message key="label.installWizard.addZoneIntro.title"/>',
'label.confirm.password': '<fmt:message key="label.confirm.password"/>',
'message.change.password': '<fmt:message key="message.change.password"/>',
'label.save.and.continue': '<fmt:message key="label.save.and.continue"/>',
'label.continue.basic.install': '<fmt:message key="label.continue.basic.install"/>',
'label.skip.guide': '<fmt:message key="label.skip.guide"/>',
'label.introduction.to.cloudstack': '<fmt:message key="label.introduction.to.cloudstack"/>',
'label.what.is.cloudstack': '<fmt:message key="label.what.is.cloudstack"/>',
'label.installWizard.subtitle': '<fmt:message key="label.installWizard.subtitle"/>',
'label.installWizard.title': '<fmt:message key="label.installWizard.title"/>',
'label.agree': '<fmt:message key="label.agree"/>',
'label.license.agreement.subtitle': '<fmt:message key="label.license.agreement.subtitle"/>',
@ -1849,7 +1919,7 @@ dictionary = {
'label.action.unmanage.cluster': '<fmt:message key="label.action.unmanage.cluster" />',
'message.action.unmanage.cluster': '<fmt:message key="message.action.unmanage.cluster" />',
'label.action.unmanage.cluster.processing': '<fmt:message key="label.action.unmanage.cluster.processing" />',
'allocation.state': '<fmt:message key="allocation.state" />',
'label.allocation.state': '<fmt:message key="label.allocation.state" />',
'managed.state': '<fmt:message key="managed.state" />',
'label.default.use': '<fmt:message key="label.default.use" />',
'label.host.tags': '<fmt:message key="label.host.tags" />',
@ -2644,123 +2714,119 @@ dictionary = {
'message.add.system.service.offering': '<fmt:message key="message.add.system.service.offering" />', //Jes
'message.action.delete.system.service.offering': '<fmt:message key="message.action.delete.system.service.offering" />',
'label.action.delete.system.service.offering': '<fmt:message key="label.action.delete.system.service.offering" />',
'hypervisor.capabilities': '<fmt:message key="hypervisor.capabilities" />',
'hypervisor.version': '<fmt:message key="hypervisor.version" />',
'max.guest.limit': '<fmt:message key="max.guest.limit" />',
'security.group.enabled': '<fmt:message key="security.group.enabled" />',
'add.network.offering': '<fmt:message key="add.network.offering" />',
'supported.services': '<fmt:message key="supported.services" />',
'service.capabilities': '<fmt:message key="service.capabilities" />',
'guest.type': '<fmt:message key="guest.type" />',
'specify.IP.ranges': '<fmt:message key="specify.IP.ranges" />',
'conserve.mode': '<fmt:message key="conserve.mode" />',
'created.by.system': '<fmt:message key="created.by.system" />',
'label.hypervisor.capabilities': '<fmt:message key="label.hypervisor.capabilities" />',
'label.hypervisor.version': '<fmt:message key="label.hypervisor.version" />',
'label.max.guest.limit': '<fmt:message key="label.max.guest.limit" />',
'label.add.network.offering': '<fmt:message key="label.add.network.offering" />',
'label.supported.services': '<fmt:message key="label.supported.services" />',
'label.service.capabilities': '<fmt:message key="label.service.capabilities" />',
'label.guest.type': '<fmt:message key="label.guest.type" />',
'label.specify.IP.ranges': '<fmt:message key="label.specify.IP.ranges" />',
'label.conserve.mode': '<fmt:message key="label.conserve.mode" />',
'label.created.by.system': '<fmt:message key="label.created.by.system" />',
'label.menu.system.service.offerings': '<fmt:message key="label.menu.system.service.offerings" />',
'label.add.system.service.offering': '<fmt:message key="label.add.system.service.offering" />',
'redundant.router.capability': '<fmt:message key="redundant.router.capability" />',
'supported.source.NAT.type': '<fmt:message key="supported.source.NAT.type" />',
'elastic.LB': '<fmt:message key="elastic.LB" />',
'LB.isolation': '<fmt:message key="LB.isolation" />',
'elastic.IP': '<fmt:message key="elastic.IP" />',
'network.label.display.for.blank.value': '<fmt:message key="network.label.display.for.blank.value" />',
'Xen.traffic.label': '<fmt:message key="Xen.traffic.label" />',
'KVM.traffic.label': '<fmt:message key="KVM.traffic.label" />',
'VMware.traffic.label': '<fmt:message key="VMware.traffic.label" />',
'start.IP': '<fmt:message key="start.IP" />',
'end.IP': '<fmt:message key="end.IP" />',
'IP.range.is.added': '<fmt:message key="IP.range.is.added" />',
'remove.IP.range': '<fmt:message key="remove.IP.range" />',
'storage.traffic.type.is.updated': '<fmt:message key="storage.traffic.type.is.updated" />',
'management.traffic.type.is.updated': '<fmt:message key="management.traffic.type.is.updated" />',
'public.traffic.type.is.updated': '<fmt:message key="public.traffic.type.is.updated" />',
'guest.traffic.type.is.updated': '<fmt:message key="guest.traffic.type.is.updated" />',
'IP.ranges': '<fmt:message key="IP.ranges" />',
'start.Vlan': '<fmt:message key="start.Vlan" />',
'end.Vlan': '<fmt:message key="end.Vlan" />',
'broadcast.domain.range': '<fmt:message key="broadcast.domain.range" />',
'label.redundant.router.capability': '<fmt:message key="label.redundant.router.capability" />',
'label.supported.source.NAT.type': '<fmt:message key="label.supported.source.NAT.type" />',
'label.elastic.LB': '<fmt:message key="label.elastic.LB" />',
'label.LB.isolation': '<fmt:message key="label.LB.isolation" />',
'label.elastic.IP': '<fmt:message key="label.elastic.IP" />',
'label.network.label.display.for.blank.value': '<fmt:message key="label.network.label.display.for.blank.value" />',
'label.xen.traffic.label': '<fmt:message key="label.xen.traffic.label" />',
'label.kvm.traffic.label': '<fmt:message key="label.kvm.traffic.label" />',
'label.vmware.traffic.label': '<fmt:message key="label.vmware.traffic.label" />',
'label.start.IP': '<fmt:message key="label.start.IP" />',
'label.end.IP': '<fmt:message key="label.end.IP" />',
'label.remove.ip.range': '<fmt:message key="label.remove.ip.range" />',
'label.ip.ranges': '<fmt:message key="label.ip.ranges" />',
'label.start.vlan': '<fmt:message key="label.start.vlan" />',
'label.end.vlan': '<fmt:message key="label.end.vlan" />',
'label.broadcast.domain.range': '<fmt:message key="label.broadcast.domain.range" />',
'label.compute': '<fmt:message key="label.compute" />',
'message.add.guest.network': '<fmt:message key="message.add.guest.network" />',
'subdomain.access': '<fmt:message key="subdomain.access" />',
'guest.start.IP': '<fmt:message key="guest.start.IP" />',
'guest.end.IP': '<fmt:message key="guest.end.IP" />',
'restart.required': '<fmt:message key="restart.required" />',
'virtual.router': '<fmt:message key="virtual.router" />',
'physical.network.ID': '<fmt:message key="physical.network.ID" />',
'destination.physical.network.ID': '<fmt:message key="destination.physical.network.ID" />',
'DHCP': '<fmt:message key="DHCP" />',
'destroy.router': '<fmt:message key="destroy.router" />',
'confirm.destroy.router': '<fmt:message key="confirm.destroy.router" />',
'change.service.offering': '<fmt:message key="change.service.offering" />',
'view.console': '<fmt:message key="view.console" />',
'redundant.state': '<fmt:message key="redundant.state" />',
'enable.provider': '<fmt:message key="enable.provider" />',
'confirm.enable.provider': '<fmt:message key="confirm.enable.provider" />',
'disable.provider': '<fmt:message key="disable.provider" />',
'confirm.disable.provider': '<fmt:message key="confirm.disable.provider" />',
'shutdown.provider': '<fmt:message key="shutdown.provider" />',
'confirm.shutdown.provider': '<fmt:message key="confirm.shutdown.provider" />',
'NetScaler': '<fmt:message key="NetScaler" />',
'add.new.NetScaler': '<fmt:message key="add.new.NetScaler" />',
'number.of.retries': '<fmt:message key="number.of.retries" />',
'capacity': '<fmt:message key="capacity" />',
'dedicated': '<fmt:message key="dedicated" />',
'F5': '<fmt:message key="F5" />',
'add.new.F5': '<fmt:message key="add.new.F5" />',
'SRX': '<fmt:message key="SRX" />',
'providers': '<fmt:message key="providers" />',
'add.new.SRX': '<fmt:message key="add.new.SRX" />',
'timeout': '<fmt:message key="timeout" />',
'public.network': '<fmt:message key="public.network" />',
'private.network': '<fmt:message key="private.network" />',
'public': '<fmt:message key="public" />',
'enable.swift': '<fmt:message key="enable.swift" />',
'label.subdomain.access': '<fmt:message key="label.subdomain.access" />',
'label.guest.start.ip': '<fmt:message key="label.guest.start.ip" />',
'label.guest.end.ip': '<fmt:message key="label.guest.end.ip" />',
'label.virtual.router': '<fmt:message key="label.virtual.router" />',
'label.physical.network.ID': '<fmt:message key="label.physical.network.ID" />',
'label.destination.physical.network.id': '<fmt:message key="label.destination.physical.network.id" />',
'label.dhcp': '<fmt:message key="label.dhcp" />',
'label.destroy.router': '<fmt:message key="label.destroy.router" />',
'message.confirm.destroy.router': '<fmt:message key="message.confirm.destroy.router" />',
'label.change.service.offering': '<fmt:message key="label.change.service.offering" />',
'label.view.console': '<fmt:message key="label.view.console" />',
'label.redundant.state': '<fmt:message key="label.redundant.state" />',
'label.enable.provider': '<fmt:message key="label.enable.provider" />',
'message.confirm.enable.provider': '<fmt:message key="message.confirm.enable.provider" />',
'label.disable.provider': '<fmt:message key="label.disable.provider" />',
'message.confirm.disable.provider': '<fmt:message key="message.confirm.disable.provider" />',
'label.shutdown.provider': '<fmt:message key="label.shutdown.provider" />',
'message.confirm.shutdown.provider': '<fmt:message key="message.confirm.shutdown.provider" />',
'label.netScaler': '<fmt:message key="label.netScaler" />',
'label.add.new.NetScaler': '<fmt:message key="label.add.new.NetScaler" />',
'label.capacity': '<fmt:message key="label.capacity" />',
'label.dedicated': '<fmt:message key="label.dedicated" />',
'label.f5': '<fmt:message key="label.f5" />',
'label.add.new.F5': '<fmt:message key="label.add.new.F5" />',
'label.srx': '<fmt:message key="label.srx" />',
'label.providers': '<fmt:message key="label.providers" />',
'label.add.new.SRX': '<fmt:message key="label.add.new.SRX" />',
'label.timeout': '<fmt:message key="label.timeout" />',
'label.public.network': '<fmt:message key="label.public.network" />',
'label.private.network': '<fmt:message key="label.private.network" />',
'label.enable.swift': '<fmt:message key="label.enable.swift" />',
'confirm.enable.swift': '<fmt:message key="confirm.enable.swift" />',
'message.after.enable.swift': '<fmt:message key="message.after.enable.swift" />',
'URL': '<fmt:message key="URL" />',
'key': '<fmt:message key="key" />',
'domain': '<fmt:message key="domain" />',
'delete.NetScaler': '<fmt:message key="delete.NetScaler" />',
'confirm.delete.NetScaler': '<fmt:message key="confirm.delete.NetScaler" />',
'delete.F5': '<fmt:message key="delete.F5" />',
'confirm.delete.F5': '<fmt:message key="confirm.delete.F5" />',
'delete.SRX': '<fmt:message key="delete.SRX" />',
'confirm.delete.SRX': '<fmt:message key="confirm.delete.SRX" />',
'label.key': '<fmt:message key="label.key" />',
'label.delete.NetScaler': '<fmt:message key="label.delete.NetScaler" />',
'message.confirm.delete.NetScaler': '<fmt:message key="message.confirm.delete.NetScaler" />',
'label.delete.F5': '<fmt:message key="label.delete.F5" />',
'message.confirm.delete.F5': '<fmt:message key="message.confirm.delete.F5" />',
'label.delete.SRX': '<fmt:message key="label.delete.SRX" />',
'message.confirm.delete.SRX': '<fmt:message key="message.confirm.delete.SRX" />',
'label.pods': '<fmt:message key="label.pods" />',
'pod.name': '<fmt:message key="pod.name" />',
'reserved.system.gateway': '<fmt:message key="reserved.system.gateway" />',
'reserved.system.netmask': '<fmt:message key="reserved.system.netmask" />',
'start.reserved.system.IP': '<fmt:message key="start.reserved.system.IP" />',
'end.reserved.system.IP': '<fmt:message key="end.reserved.system.IP" />',
'label.pod.name': '<fmt:message key="label.pod.name" />',
'label.reserved.system.gateway': '<fmt:message key="label.reserved.system.gateway" />',
'label.reserved.system.netmask': '<fmt:message key="label.reserved.system.netmask" />',
'label.start.reserved.system.IP': '<fmt:message key="label.start.reserved.system.IP" />',
'label.end.reserved.system.IP': '<fmt:message key="label.end.reserved.system.IP" />',
'label.clusters': '<fmt:message key="label.clusters" />',
'cluster.name': '<fmt:message key="cluster.name" />',
'host.MAC': '<fmt:message key="host.MAC" />',
'agent.username': '<fmt:message key="agent.username" />',
'agent.password': '<fmt:message key="agent.password" />',
'confirm.action.force.reconnect': '<fmt:message key="confirm.action.force.reconnect" />',
'resource.state': '<fmt:message key="resource.state" />',
'LUN.number': '<fmt:message key="LUN.number" />',
'confirm.remove.IP.range': '<fmt:message key="confirm.remove.IP.range" />',
'tooltip.zone.name': '<fmt:message key="tooltip.zone.name" />',
'tooltip.dns.1': '<fmt:message key="tooltip.dns.1" />',
'tooltip.dns.2': '<fmt:message key="tooltip.dns.2" />',
'tooltip.internal.dns.1': '<fmt:message key="tooltip.internal.dns.1" />',
'tooltip.internal.dns.2': '<fmt:message key="tooltip.internal.dns.2" />',
'tooltip.network.domain': '<fmt:message key="tooltip.network.domain" />',
'tooltip.pod.name': '<fmt:message key="tooltip.pod.name" />',
'tooltip.reserved.system.gateway': '<fmt:message key="tooltip.reserved.system.gateway" />',
'tooltip.reserved.system.netmask': '<fmt:message key="tooltip.reserved.system.netmask" />',
'creating.zone': '<fmt:message key="creating.zone" />',
'creating.physical.networks': '<fmt:message key="creating.physical.networks" />',
'configuring.physical.networks': '<fmt:message key="configuring.physical.networks" />',
'adding.Netscaler.device': '<fmt:message key="adding.Netscaler.device" />',
'creating.pod': '<fmt:message key="creating.pod" />',
'configuring.public.traffic': '<fmt:message key="configuring.public.traffic" />',
'configuring.storage.traffic': '<fmt:message key="configuring.storage.traffic" />',
'configuring.guest.traffic': '<fmt:message key="configuring.guest.traffic" />',
'creating.cluster': '<fmt:message key="creating.cluster" />',
'adding.host': '<fmt:message key="adding.host" />',
'creating.primary.storage': '<fmt:message key="creating.primary.storage" />',
'creating.secondary.storage': '<fmt:message key="creating.secondary.storage" />',
'Zone.creation.complete': '<fmt:message key="Zone.creation.complete" />'
'label.cluster.name': '<fmt:message key="label.cluster.name" />',
'label.host.MAC': '<fmt:message key="label.host.MAC" />',
'label.agent.username': '<fmt:message key="label.agent.username" />',
'label.agent.password': '<fmt:message key="label.agent.password" />',
'message.confirm.action.force.reconnect': '<fmt:message key="message.confirm.action.force.reconnect" />',
'label.resource.state': '<fmt:message key="label.resource.state" />',
'label.LUN.number': '<fmt:message key="label.LUN.number" />',
'message.confirm.remove.IP.range': '<fmt:message key="message.confirm.remove.IP.range" />',
'message.tooltip.zone.name': '<fmt:message key="message.tooltip.zone.name" />',
'message.tooltip.dns.1': '<fmt:message key="message.tooltip.dns.1" />',
'message.tooltip.dns.2': '<fmt:message key="message.tooltip.dns.2" />',
'message.tooltip.internal.dns.1': '<fmt:message key="message.tooltip.internal.dns.1" />',
'message.tooltip.internal.dns.2': '<fmt:message key="message.tooltip.internal.dns.2" />',
'message.tooltip.network.domain': '<fmt:message key="message.tooltip.network.domain" />',
'message.tooltip.pod.name': '<fmt:message key="message.tooltip.pod.name" />',
'message.tooltip.reserved.system.gateway': '<fmt:message key="message.tooltip.reserved.system.gateway" />',
'message.tooltip.reserved.system.netmask': '<fmt:message key="message.tooltip.reserved.system.netmask" />',
'message.creating.zone': '<fmt:message key="message.creating.zone" />',
'message.creating.physical.networks': '<fmt:message key="message.creating.physical.networks" />',
'message.configuring.physical.networks': '<fmt:message key="message.configuring.physical.networks" />',
'message.adding.Netscaler.device': '<fmt:message key="message.adding.Netscaler.device" />',
'message.creating.pod': '<fmt:message key="message.creating.pod" />',
'message.configuring.public.traffic': '<fmt:message key="message.configuring.public.traffic" />',
'message.configuring.storage.traffic': '<fmt:message key="message.configuring.storage.traffic" />',
'message.configuring.guest.traffic': '<fmt:message key="message.configuring.guest.traffic" />',
'message.creating.cluster': '<fmt:message key="message.creating.cluster" />',
'message.adding.host': '<fmt:message key="message.adding.host" />',
'message.creating.primary.storage': '<fmt:message key="message.creating.primary.storage" />',
'message.creating.secondary.storage': '<fmt:message key="message.creating.secondary.storage" />',
'message.Zone.creation.complete': '<fmt:message key="message.Zone.creation.complete" />',
'message.enabling.zone': '<fmt:message key="message.enabling.zone" />',
'error.something.went.wrong.please.correct.the.following': '<fmt:message key="error.something.went.wrong.please.correct.the.following" />',
'error.could.not.enable.zone': '<fmt:message key="error.could.not.enable.zone" />',
'message.zone.creation.complete.would.you.like.to.enable.this.zone': '<fmt:message key="message.zone.creation.complete.would.you.like.to.enable.this.zone" />',
'message.please.add.at.lease.one.traffic.range': '<fmt:message key="message.please.add.at.lease.one.traffic.range" />',
'message.you.must.have.at.least.one.physical.network': '<fmt:message key="message.you.must.have.at.least.one.physical.network" />',
'message.please.select.a.different.public.and.management.network.before.removing': '<fmt:message key="message.please.select.a.different.public.and.management.network.before.removing" />'
};
</script>

View File

@ -281,17 +281,22 @@
response: {
success: function(args) {
if (args.doInstall && cloudStack.context.users[0].role == 'admin') {
cloudStack.uiCustom.installWizard({
$container: $container,
context: context,
complete: function() {
// Show cloudStack main UI
$container.cloudStack(cloudStackArgs);
}
});
var initInstallWizard = function(eulaHTML) {
cloudStack.uiCustom.installWizard({
$container: $container,
context: context,
eula: eulaHTML,
complete: function() {
// Show cloudStack main UI
$container.cloudStack(cloudStackArgs);
}
});
};
initInstallWizard(loginArgs.eula);
} else {
// Show cloudStack main UI
$container.cloudStack(cloudStackArgs);
$container.cloudStack($.extend(cloudStackArgs, { hasLogo: loginArgs.eula }));
}
}
}
@ -306,7 +311,17 @@
}
};
cloudStack.uiCustom.login(loginArgs);
// EULA check
$.ajax({
url: 'eula.html',
dataType: 'html',
success: function(html) {
cloudStack.uiCustom.login($.extend(loginArgs, { eula: html, hasLogo: true }));
},
error: function() {
cloudStack.uiCustom.login(loginArgs);
}
});
// Localization
cloudStack.localizationFn = function(str) {

View File

@ -896,14 +896,14 @@
hypervisorCapabilities: {
type: 'select',
title: 'hypervisor.capabilities',
title: 'label.hypervisor.capabilities',
listView: {
id: 'hypervisorCapabilities',
label: 'hypervisor.capabilities',
label: 'label.hypervisor.capabilities',
fields: {
hypervisor: { label: 'label.hypervisor' },
hypervisorversion: { label: 'hypervisor.version' },
maxguestslimit: { label: 'max.guest.limit' }
hypervisorversion: { label: 'label.hypervisor.version' },
maxguestslimit: { label: 'label.max.guest.limit' }
},
dataProvider: function(args) {
var array1 = [];
@ -962,14 +962,10 @@
{
id: { label: 'label.id' },
hypervisor: { label: 'label.hypervisor' },
hypervisorversion: { label: 'hypervisor.version' },
hypervisorversion: { label: 'label.hypervisor.version' },
maxguestslimit: {
label: 'max.guest.limit',
label: 'label.max.guest.limit',
isEditable: true
},
securitygroupenabled: {
label: 'security.group.enabled',
converter: cloudStack.converters.toBooleanText
}
}
],
@ -1047,10 +1043,10 @@
actions: {
add: {
label: 'add.network.offering',
label: 'label.add.network.offering',
createForm: {
title: 'add.network.offering',
title: 'label.add.network.offering',
preFilter: function(args) {
var $availability = args.$form.find('.form-item[rel=availability]');
var $serviceOfferingId = args.$form.find('.form-item[rel=serviceOfferingId]');
@ -1107,7 +1103,7 @@
},
guestIpType: {
label: 'guest.type',
label: 'label.guest.type',
select: function(args) {
args.response.success({
data: [
@ -1131,7 +1127,7 @@
specifyVlan: { label: 'label.specify.vlan', isBoolean: true },
supportedServices: {
label: 'supported.services',
label: 'label.supported.services',
dynamic: function(args) {
$.ajax({
@ -1149,7 +1145,7 @@
// Sanitize names
switch (serviceName) {
case 'Vpn': serviceDisplayName = 'VPN'; break;
case 'Dhcp': serviceDisplayName = 'DHCP'; break;
case 'Dhcp': serviceDisplayName = dictionary['label.dhcp']; break;
case 'Dns': serviceDisplayName = 'DNS'; break;
case 'Lb': serviceDisplayName = 'Load Balancer'; break;
case 'SourceNat': serviceDisplayName = 'Source NAT'; break;
@ -1281,14 +1277,14 @@
},
"service.SourceNat.redundantRouterCapabilityCheckbox" : {
label: "redundant.router.capability",
label: "label.redundant.router.capability",
isHidden: true,
dependsOn: 'service.SourceNat.isEnabled',
isBoolean: true
},
"service.SourceNat.sourceNatTypeDropdown": {
label: 'supported.source.NAT.type',
label: 'label.supported.source.NAT.type',
isHidden: true,
dependsOn: 'service.SourceNat.isEnabled',
select: function(args) {
@ -1301,13 +1297,13 @@
}
},
"service.Lb.elasticLbCheckbox" : {
label: "elastic.LB",
label: "label.elastic.LB",
isHidden: true,
dependsOn: 'service.Lb.isEnabled',
isBoolean: true
},
"service.Lb.lbIsolationDropdown": {
label: 'LB.isolation',
label: 'label.LB.isolation',
isHidden: true,
dependsOn: 'service.Lb.isEnabled',
select: function(args) {
@ -1320,7 +1316,7 @@
}
},
"service.StaticNat.elasticIpCheckbox" : {
label: "elastic.IP",
label: "label.elastic.IP",
isHidden: true,
dependsOn: 'service.StaticNat.isEnabled',
isBoolean: true
@ -1328,7 +1324,7 @@
//show or hide upon checked services and selected providers above (end)
conservemode: { label: 'conserve.mode', isBoolean: true },
conservemode: { label: 'label.conserve.mode', isBoolean: true },
tags: { label: 'label.tags' },
@ -1633,7 +1629,7 @@
},
state: { label: 'label.state' },
guestiptype: {
label: 'guest.type'
label: 'label.guest.type'
},
availability: {
label: 'label.availability',
@ -1647,7 +1643,7 @@
}
},
isdefault: { //created by system by default
label: 'created.by.system',
label: 'label.created.by.system',
converter: cloudStack.converters.toBooleanText
},
specifyvlan: {
@ -1655,11 +1651,11 @@
converter: cloudStack.converters.toBooleanText
},
specifyipranges: {
label: 'specify.IP.ranges',
label: 'label.specify.IP.ranges',
converter: cloudStack.converters.toBooleanText
},
conservemode: {
label: 'conserve.mode',
label: 'label.conserve.mode',
converter: cloudStack.converters.toBooleanText
},
networkrate: {
@ -1679,10 +1675,10 @@
label: 'label.traffic.type'
},
supportedServices: {
label: 'supported.services'
label: 'label.supported.services'
},
serviceCapabilities: {
label: 'service.capabilities'
label: 'label.service.capabilities'
}
}
],

File diff suppressed because one or more lines are too long

View File

@ -1230,32 +1230,24 @@
},
createTemplate: {
label: 'Create template',
label: 'label.create.template',
messages: {
confirm: function(args) {
/*
if (getUserPublicTemplateEnabled() == "true" || isAdmin()) {
$dialogCreateTemplate.find("#create_template_public_container").show();
}
*/
return 'Are you sure you want to create template?';
},
success: function(args) {
return 'Template is being created.';
return 'message.create.template';
},
notification: function(args) {
return 'Creating template';
return 'label.create.template';
}
},
createForm: {
title: 'Create Template',
desc: '',
title: 'label.create.template',
desc: 'label.create.template',
preFilter: cloudStack.preFilter.createTemplate,
fields: {
name: { label: 'Name', validation: { required: true }},
displayText: { label: 'Description', validation: { required: true }},
name: { label: 'label.name', validation: { required: true }},
displayText: { label: 'label.description', validation: { required: true }},
osTypeId: {
label: 'OS Type',
label: 'label.os.type',
select: function(args) {
$.ajax({
url: createURL("listOsTypes"),
@ -1272,8 +1264,8 @@
});
}
},
isPublic: { label: 'Public', isBoolean: true },
url: { label: 'Image directory', validation: { required: true } }
isPublic: { label: 'label.public', isBoolean: true },
url: { label: 'image.directory', validation: { required: true } }
}
},
action: function(args) {
@ -1324,21 +1316,21 @@
},
migrate: {
label: 'Migrate instance to another host',
label: 'label.migrate.instance.to.host',
messages: {
confirm: function(args) {
return 'Please confirm that you want to migrate instance to another host.';
return 'message.migrate.instance.to.host';
},
notification: function(args) {
return 'Migrating instance to another host.';
return 'label.migrate.instance.to.host';
}
},
createForm: {
title: 'Migrate instance',
title: 'label.migrate.instance.to.host',
desc: '',
fields: {
hostId: {
label: 'Host',
label: 'label.host',
validation: { required: true },
select: function(args) {
$.ajax({
@ -1402,21 +1394,21 @@
},
migrateToAnotherStorage: {
label: 'Migrate instance to another primary storage',
label: 'label.migrate.instance.to.ps',
messages: {
confirm: function(args) {
return 'Please confirm that you want to migrate instance to another primary storage.';
return 'message.migrate.instance.to.ps';
},
notification: function(args) {
return 'Migrating instance to another primary storage.';
return 'label.migrate.instance.to.ps';
}
},
createForm: {
title: 'Migrate instanceto another primary storage',
title: 'label.migrate.instance.to.ps',
desc: '',
fields: {
storageId: {
label: 'Primary storage',
label: 'label.primary.storage',
validation: { required: true },
select: function(args) {
$.ajax({
@ -1464,7 +1456,7 @@
},
viewConsole: {
label: 'View console',
label: 'label.view.console',
action: {
externalLink: {
url: function(args) {
@ -1592,13 +1584,13 @@
* Security Groups tab
*/
securityGroups: {
title: 'Security groups',
title: 'label.menu.security.groups',
multiple: true,
fields: [
{
id: { label: 'ID' },
name: { label: 'Name' },
description: { label: 'Description' }
name: { label: 'label.name' },
description: { label: 'label.description' }
}
],
dataProvider: function(args) {

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,8 @@
var context = args.context;
var $installWizard = $('<div>').addClass('install-wizard');
var $container = args.$container;
var eulaHTML = args.eula;
var state = {}; // Hold wizard form state
var launchStart; // Holds last launch callback, in case of error
var $launchState;
@ -27,7 +27,7 @@
cloudStack.installWizard.copy[id]({
response: {
success: function(args) {
$elem.append(args.text);
$elem.append(_l(args.text));
}
}
});
@ -79,7 +79,7 @@
var $subtitle = $('<div></div>').addClass('subtitle')
.html(subtitle);
var $copy = getCopy(copyID, $('<p></p>'));
var $prev = elems.prevButton('Go back');
var $prev = elems.prevButton(_l('label.back'));
var $continue = elems.nextButton('OK');
$continue.click(function() {
@ -121,9 +121,9 @@
var $container = $('<div></div>').addClass(id);
var $form = $('<div>').addClass('setup-form');
var $save = elems.nextButton('Continue', { type: 'submit' });
var $prev = elems.prevButton('Go back');
var $title = $('<div></div>').addClass('title').html(title);
var $save = elems.nextButton(_l('label.continue'), { type: 'submit' });
var $prev = elems.prevButton(_l('label.back'));
var $title = $('<div></div>').addClass('title').html(_l(title));
// Generate form
form = cloudStack.dialog.createForm({
@ -190,8 +190,8 @@
tooltip: function(title, content) {
return $('<div>').addClass('tooltip-info').append(
$('<div>').addClass('arrow'),
$('<div>').addClass('title').html(title),
$('<div>').addClass('content').append($('<p>').html(content))
$('<div>').addClass('title').html(_l(title)),
$('<div>').addClass('content').append($('<p>').html(_l(content)))
);
},
@ -203,7 +203,7 @@
.append(
$.merge(
$('<h2></h2>').html(_l('label.installWizard.title')),
$('<h3></h3>').html('This tour will aid you in setting up your CloudStack installation')
$('<h3></h3>').html(_l('label.installWizard.subtitle'))
)
);
},
@ -257,7 +257,7 @@
* Show tooltip for focused form elements
*/
var showTooltip = function($formContainer, sectionID) {
var $tooltip = elems.tooltip('Hints', '');
var $tooltip = elems.tooltip(_l('label.hints'), '');
$formContainer.find('input[type=text]').focus(function() {
var $input = $(this);
@ -287,7 +287,7 @@
var $intro = $('<div></div>').addClass('intro eula');
var $title = $('<div></div>').addClass('title').html(_l('label.license.agreement'));
var $subtitle = $('<div></div>').addClass('subtitle').html(_l('label.license.agreement.subtitle'));
var $copy = getCopy('eula', $('<div></div>').addClass('eula-copy'));
var $copy = $('<div></div>').addClass('eula-copy').html(eulaHTML);
var $continue = elems.nextButton(_l('label.agree'));
$continue.click(function() {
@ -303,11 +303,11 @@
intro: function(args) {
var $intro = $('<div></div>').addClass('intro what-is-cloudstack');
var $title = $('<div></div>').addClass('title').html('What is CloudStack&#8482?');
var $subtitle = $('<div></div>').addClass('subtitle').html('Introduction to CloudStack&#8482');
var $title = $('<div></div>').addClass('title').html(_l('label.what.is.cloudstack'));
var $subtitle = $('<div></div>').addClass('subtitle').html(_l('label.introduction.to.cloudstack'));
var $copy = getCopy('whatIsCloudStack', $('<p></p>'));
var $continue = elems.nextButton('Continue with basic installation');
var $advanced = elems.nextButton('I have used Cloudstack before, skip this guide').addClass('advanced-installation');
var $continue = elems.nextButton(_l('label.continue.basic.install'));
var $advanced = elems.nextButton(_l('label.skip.guide')).addClass('advanced-installation');
$continue.click(function() {
goTo('changeUser');
@ -332,17 +332,25 @@
var $form = $('<form></form>').appendTo($changeUser);
// Fields
var $password = $('<input>').addClass('required').attr({ id: 'password', type: 'password', name: 'password' });
var $passwordConfirm = $('<input>').addClass('required').attr({ id: 'password-confirm', type: 'password', name: 'password-confirm' });
var $save = elems.nextButton('Save and continue', { type: 'submit' });
var $password = $('<input>').addClass('required').attr({
id: 'password',
type: 'password',
name: 'password'
});
var $passwordConfirm = $('<input>').addClass('required').attr({
id: 'password-confirm',
type: 'password',
name: 'password-confirm'
});
var $save = elems.nextButton(_l('label.save.and.continue'), { type: 'submit' });
$form.append(
$('<div></div>').addClass('title').html('Please change your password.'),
$('<div></div>').addClass('title').html(_l('message.change.password')),
$('<div></div>').addClass('field').append(
$('<label>New Password:</label>'), $password
$('<label>' + _l('label.new.password') + ':</label>'), $password
),
$('<div></div>').addClass('field').append(
$('<label>Confirm Password:</label>'), $passwordConfirm
$('<label>' + _l('label.confirm.password') + ':</label>'), $passwordConfirm
),
$save
);
@ -355,7 +363,7 @@
},
messages: {
'password-confirm': {
equalTo: 'The password fields do not match.'
equalTo: _l('error.password.not.match')
}
}
});
@ -385,8 +393,8 @@
* @param args
*/
addZoneIntro: elems.stepIntro({
title: "Let's add a zone",
subtitle: 'What is a zone?',
title: _l('label.installWizard.addZoneIntro.title'),
subtitle: _l('label.installWizard.addZoneIntro.subtitle'),
copyID: 'whatIsAZone',
prevStepID: 'changeUser',
nextStepID: 'addZone',
@ -397,7 +405,7 @@
* Add zone form
*/
addZone: elems.step({
title: 'Add zone',
title: _l('label.installWizard.addZone.title'),
id: 'add-zone',
stateID: 'zone',
tooltipID: 'addZone',
@ -405,11 +413,11 @@
prevStepID: 'addZoneIntro',
nextStepID: 'addPodIntro',
form: {
name: { label: 'Name', validation: { required: true } },
dns1: { label: 'DNS 1', validation: { required: true } },
dns2: { label: 'DNS 2' },
internaldns1: { label: 'Internal DNS 1', validation: { required: true } },
internaldns2: { label: 'Internal DNS 2' }
name: { label: 'label.name', validation: { required: true } },
dns1: { label: 'label.dns.1', validation: { required: true } },
dns2: { label: 'label.dns.2' },
internaldns1: { label: 'label.internal.dns.1', validation: { required: true } },
internaldns2: { label: 'label.internal.dns.2' }
}
}),
@ -418,8 +426,8 @@
* @param args
*/
addPodIntro: elems.stepIntro({
title: "Let's add a pod.",
subtitle: 'What is a pod?',
title: _l('label.installWizard.addPodIntro.title'),
subtitle: _l('label.installWizard.addPodIntro.subtitle'),
copyID: 'whatIsAPod',
prevStepID: 'addZone',
nextStepID: 'addPod',
@ -431,7 +439,7 @@
* @param args
*/
addPod: elems.step({
title: 'Add pod',
title: _l('label.add.pod'),
id: 'add-pod',
stateID: 'pod',
tooltipID: 'addPod',
@ -439,11 +447,11 @@
prevStepID: 'addPodIntro',
nextStepID: 'configureGuestTraffic',
form: {
name: { label: 'Name', validation: { required: true }},
reservedSystemGateway: { label: 'Gateway', validation: { required: true }},
reservedSystemNetmask: { label: 'Netmask', validation: { required: true }},
name: { label: 'label.name', validation: { required: true }},
reservedSystemGateway: { label: 'label.gateway', validation: { required: true }},
reservedSystemNetmask: { label: 'label.netmask', validation: { required: true }},
ipRange: {
label: 'IP Range',
label: 'label.ip.range',
range: ['reservedSystemStartIp', 'reservedSystemEndIp'],
validation: { required: true }
}
@ -454,7 +462,7 @@
* Add guest network form
*/
configureGuestTraffic: elems.step({
title: 'Add guest network',
title: _l('label.add.guest.network'),
id: 'add-guest-network',
stateID: 'guestTraffic',
tooltipID: 'configureGuestTraffic',
@ -462,9 +470,9 @@
prevStepID: 'addPod',
nextStepID: 'addClusterIntro',
form: {
guestGateway: { label: 'Gateway', validation: { required: true } },
guestNetmask: { label: 'Netmask', validation: { required: true } },
guestIPRange: { label: 'IP Range', range: ['guestStartIp', 'guestEndIp'], validation: { required: true } }
guestGateway: { label: 'label.gateway', validation: { required: true } },
guestNetmask: { label: 'label.netmask', validation: { required: true } },
guestIPRange: { label: 'label.ip.range', range: ['guestStartIp', 'guestEndIp'], validation: { required: true } }
}
}),
@ -473,8 +481,8 @@
* @param args
*/
addClusterIntro: elems.stepIntro({
title: "Let's add a cluster.",
subtitle: 'What is a cluster?',
title: _l('label.installWizard.addClusterIntro.title'),
subtitle: _l('label.installWizard.addClusterIntro.subtitle'),
copyID: 'whatIsACluster',
prevStepID: 'configureGuestTraffic',
nextStepID: 'addCluster',
@ -486,7 +494,7 @@
* @param args
*/
addCluster: elems.step({
title: 'Add cluster',
title: _l('label.add.cluster'),
id: 'add-cluster',
stateID: 'cluster',
tooltipID: 'addCluster',
@ -495,7 +503,7 @@
diagram: '.part.zone, .part.cluster',
form: {
hypervisor: {
label: 'Hypervisor',
label: 'label.hypervisor',
select: function(args) {
args.response.success({ data: [
{ id: 'XenServer', description: 'XenServer' },
@ -503,7 +511,7 @@
]});
}
},
name: { label: 'Name', validation: { required: true }}
name: { label: 'label.name', validation: { required: true }}
}
}),
@ -512,8 +520,8 @@
* @param args
*/
addHostIntro: elems.stepIntro({
title: "Let's add a host.",
subtitle: 'What is a host?',
title: _l('label.installWizard.addHostIntro.title'),
subtitle: _l('label.installWizard.addHostIntro.subtitle'),
copyID: 'whatIsAHost',
prevStepID: 'addCluster',
nextStepID: 'addHost',
@ -525,7 +533,7 @@
* @param args
*/
addHost: elems.step({
title: 'Add host',
title: _l('label.add.host'),
id: 'add-host',
stateID: 'host',
tooltipID: 'addHost',
@ -534,17 +542,17 @@
diagram: '.part.zone, .part.host',
form: {
hostname: {
label: 'Host name',
label: 'label.host.name',
validation: { required: true }
},
username: {
label: 'User name',
label: 'label.username',
validation: { required: true }
},
password: {
label: 'Password',
label: 'label.password',
validation: { required: true },
isPassword: true
}
@ -556,8 +564,8 @@
* @param args
*/
addPrimaryStorageIntro: elems.stepIntro({
title: "Let's add primary storage.",
subtitle: 'What is primary storage?',
title: _l('label.installWizard.addPrimaryStorageIntro.title'),
subtitle: _l('label.installWizard.addPrimaryStorageIntro.subtitle'),
copyID: 'whatIsPrimaryStorage',
prevStepID: 'addHost',
nextStepID: 'addPrimaryStorage',
@ -569,7 +577,7 @@
* @param args
*/
addPrimaryStorage: elems.step({
title: 'Add primary storage',
title: _l('label.add.primary.storage'),
id: 'add-primary-storage',
stateID: 'primaryStorage',
tooltipID: 'addPrimaryStorage',
@ -578,12 +586,12 @@
diagram: '.part.zone, .part.primaryStorage',
form: {
name: {
label: 'Name',
label: 'label.name',
validation: { required: true }
},
protocol: {
label: 'Protocol',
label: 'label.protocol',
select: function(args) {
args.response.success({
data: { id: 'nfs', description: 'NFS' }
@ -592,12 +600,12 @@
},
server: {
label: 'Server',
label: 'label.server',
validation: { required: true }
},
path: {
label: 'Path',
label: 'label.path',
validation: { required: true }
}
}
@ -608,8 +616,8 @@
* @param args
*/
addSecondaryStorageIntro: elems.stepIntro({
title: "Let's add secondary storage.",
subtitle: 'What is secondary storage?',
title: _l('label.installWizard.addSecondaryStorageIntro.title'),
subtitle: _l('label.installWizard.addSecondaryStorageIntro.subtitle'),
copyID: 'whatIsSecondaryStorage',
prevStepID: 'addPrimaryStorage',
nextStepID: 'addSecondaryStorage',
@ -621,7 +629,7 @@
* @param args
*/
addSecondaryStorage: elems.step({
title: 'Add secondary storage',
title: _l('label.add.secondary.storage'),
id: 'add-secondary-storage',
stateID: 'secondaryStorage',
tooltipID: 'addSecondaryStorage',
@ -630,11 +638,11 @@
diagram: '.part.zone, .part.secondaryStorage',
form: {
nfsServer: {
label: 'NFS Server',
label: 'label.nfs.server',
validation: { required: true }
},
path: {
label: 'Path',
label: 'label.path',
validation: { required: true }
}
}
@ -646,11 +654,11 @@
launchInfo: function(args) {
var $intro = $('<div></div>').addClass('intro');
var $title = $('<div></div>').addClass('title')
.html('Congratulations!.');
.html(_l('label.congratulations'));
var $subtitle = $('<div></div>').addClass('subtitle')
.html('Click the launch button.');
var $continue = elems.nextButton('Launch');
var $prev = elems.prevButton('Go back');
.html(_l('label.installWizard.click.launch'));
var $continue = elems.nextButton(_l('label.launch'));
var $prev = elems.prevButton(_l('label.back'));
$continue.click(function() {
goTo('launch');
@ -676,10 +684,10 @@
launchInfoError: function(args) {
var $intro = $('<div></div>').addClass('intro');
var $title = $('<div></div>').addClass('title')
.html('Corrections saved.');
.html(_l('label.corrections.saved'));
var $subtitle = $('<div></div>').addClass('subtitle')
.html('Click the button to retry launch.');
var $continue = elems.nextButton('Launch');
.html(_l('message.installWizard.click.retry'));
var $continue = elems.nextButton(_l('label.launch'));
$continue.click(function() {
goTo('launch');
@ -701,7 +709,7 @@
launch: function(args) {
var $intro = $('<div>').addClass('intro');
var $title = $('<div>').addClass('title')
.html('Now building your cloud...');
.html(_l('message.installWizard.now.building'));
var $subtitle = $('<div></div>').addClass('subtitle');
showDiagram('.part.loading');
@ -714,7 +722,7 @@
startFn: launchStart,
response: {
message: function(msg) {
var $li = $('<li>').html(msg);
var $li = $('<li>').html(_l(msg));
$subtitle.append($li);
$li.siblings().addClass('complete');
@ -728,11 +736,11 @@
$subtitle.append(
$('<p>').html(
'Something went wrong; you may go back and correct any errors:<br/>'
_l('error.installWizard.message') + ':<br/>'
+ message
),
$('<div>').addClass('button').append(
$('<span>').html('Go back')
$('<span>').html(_l('label.back'))
).click(function() {
goTo(stepID, null, null, {
nextStep: 'launchInfoError'
@ -749,10 +757,10 @@
complete: function(args) {
var $intro = $('<div></div>').addClass('intro');
var $title = $('<div></div>').addClass('title')
.html('Cloud setup successful');
.html(_l('message.setup.successful'));
var $subtitle = $('<div></div>').addClass('subtitle')
.html('You may now continue.');
var $continue = elems.nextButton('Launch');
.html(_l('label.may.continue'));
var $continue = elems.nextButton(_l('label.launch'));
showDiagram('');
@ -768,7 +776,9 @@
}
};
var initialStep = steps.eula().addClass('step');
var initialStep = eulaHTML ?
steps.eula().addClass('step') : steps.intro().addClass('step');
showDiagram('');
$('html body').addClass('install-wizard');

View File

@ -47,6 +47,8 @@
return true;
});
if (!args.hasLogo) $login.addClass('nologo');
// Labels cause related input to be focused
$login.find('label').click(function() {
var $input = $inputs.filter('[name=' + $(this).attr('for') + ']');
@ -80,5 +82,13 @@
return false;
});
// Select language
var $languageSelect = $login.find('select[name=language]');
$languageSelect.change(function() {
$.cookie('lang', $(this).val());
document.location.reload();
});
$languageSelect.val($.cookie('lang'));
};
})(jQuery, cloudStack);

View File

@ -135,7 +135,7 @@
}
cloudStack.dialog.notice({
message: 'Please add at lease one traffic range.'
message: dictionary['message.please.add.at.lease.one.traffic.range']
});
return false;
}
@ -497,11 +497,11 @@
if (!$item.siblings().size()) {
cloudStack.dialog.notice({
message: 'You must have at least 1 physical network'
message: dictionary['message.you.must.have.at.least.one.physical.network']
});
} else if ($item.find('input[type=radio]:checked').size()) {
cloudStack.dialog.notice({
message: 'Please select a different public and/or management network before removing'
message: dictionary['message.please.select.a.different.public.and.management.network.before.removing']
});
} else {
// Put any traffic type symbols back in original container
@ -709,7 +709,7 @@
};
var enableZone = function() {
makeMessage('Enabling zone');
makeMessage(dictionary['message.enabling.zone']);
enableZoneAction({
formData: data,
@ -721,14 +721,14 @@
},
error: function(message) {
cloudStack.dialog.notice({ message: 'Could not enable zone:</br>' + message });
cloudStack.dialog.notice({ message: dictionary['error.could.not.enable.zone'] + ':</br>' + message });
}
}
});
};
cloudStack.dialog.confirm({
message: 'Zone creation complete. Would you like to enable this zone?',
message: dictionary['message.zone.creation.complete.would.you.like.to.enable.this.zone'],
action: function() {
enableZone();
},
@ -750,7 +750,7 @@
.removeClass('final')
.html('<span>Fix errors</span>')
.click(goNextOverride);
makeMessage('Something went wrong; please correct the following:<br/>' + message, true);
makeMessage(dictionary['error.something.went.wrong.please.correct.the.following'] + ':<br/>' + message, true);
$wizard.data('startfn', start);
},
message: makeMessage

View File

@ -293,6 +293,9 @@
}
}
});
// Hide logo conditionally
if (!args.hasLogo) $('#header .controls').addClass('nologo');
return this;
};

View File

@ -14,12 +14,26 @@
return $('<div>').multiEdit({
context: args.context,
noSelect: true,
preFilter: function(args) { //Brian, preFilter doesn't get picked up here
var $publicTrafficDesc = $("#add_zone_public_traffic_desc");
//debugger;
if (args.data['network-model'] == 'Basic') {
$publicTrafficDesc.find("#for_basic_zone").css('display', 'inline');
$publicTrafficDesc.find("#for_advanced_zone").hide();
}
else { //args.data['network-model'] == 'Advanced'
$publicTrafficDesc.find("#for_advanced_zone").css('display', 'inline');
$publicTrafficDesc.find("#for_basic_zone").hide();
}
},
fields: {
'gateway': { edit: true, label: 'label.gateway' },
'netmask': { edit: true, label: 'label.netmask' },
'vlanid': { edit: true, label: 'label.vlan', isOptional: true },
'startip': { edit: true, label: 'start.IP' },
'endip': { edit: true, label: 'end.IP' },
'startip': { edit: true, label: 'label.start.IP' },
'endip': { edit: true, label: 'label.end.IP' },
'add-rule': { label: 'label.add', addButton: true }
},
add: {
@ -62,8 +76,8 @@
fields: {
'netmask': { edit: true, label: 'label.netmask' },
'vlanid': { edit: true, label: 'label.vlan', isOptional: true },
'startip': { edit: true, label: 'start.IP' },
'endip': { edit: true, label: 'end.IP' },
'startip': { edit: true, label: 'label.start.IP' },
'endip': { edit: true, label: 'label.end.IP' },
'add-rule': { label: 'label.add', addButton: true }
},
add: {
@ -175,23 +189,23 @@
fields: {
name: {
label: 'label.name', validation: { required: true },
desc: 'tooltip.zone.name'
desc: 'message.tooltip.zone.name'
},
dns1: {
label: 'label.dns.1', validation: { required: true },
desc: 'tooltip.dns.1'
desc: 'message.tooltip.dns.1'
},
dns2: {
label: 'label.dns.2',
desc: 'tooltip.dns.2'
desc: 'message.tooltip.dns.2'
},
internaldns1: {
label: 'label.internal.dns.1', validation: { required: true },
desc: 'tooltip.internal.dns.1'
desc: 'message.tooltip.internal.dns.1'
},
internaldns2: {
label: 'label.internal.dns.2',
desc: 'tooltip.internal.dns.2'
desc: 'message.tooltip.internal.dns.2'
},
networkOfferingId: {
label: 'label.network.offering',
@ -254,7 +268,7 @@
},
networkdomain: {
label: 'label.network.domain',
desc: 'tooltip.network.domain'
desc: 'message.tooltip.network.domain'
},
guestcidraddress: {
label: 'label.guest.cidr',
@ -297,26 +311,26 @@
pod: {
fields: {
name: {
label: 'pod.name',
label: 'label.pod.name',
validation: { required: true },
desc: 'tooltip.pod.name'
desc: 'message.tooltip.pod.name'
},
reservedSystemGateway: {
label: 'reserved.system.gateway',
label: 'label.reserved.system.gateway',
validation: { required: true },
desc: 'tooltip.reserved.system.gateway'
desc: 'message.tooltip.reserved.system.gateway'
},
reservedSystemNetmask: {
label: 'reserved.system.netmask',
label: 'label.reserved.system.netmask',
validation: { required: true },
desc: 'tooltip.reserved.system.netmask'
desc: 'message.tooltip.reserved.system.netmask'
},
reservedSystemStartIp: {
label: 'start.reserved.system.IP',
label: 'label.start.reserved.system.IP',
validation: { required: true }
},
reservedSystemEndIp: {
label: 'End Reserved system IP',
label: 'label.end.reserved.system.IP',
validation: { required: false }
}
}
@ -351,15 +365,15 @@
label: 'label.private.interface'
},
numretries: {
label: 'number.of.retries',
label: 'label.numretries',
defaultValue: '2'
},
capacity: {
label: 'capacity',
label: 'label.capacity',
validation: { required: false, number: true }
},
dedicated: {
label: 'dedicated',
label: 'label.dedicated',
isBoolean: true,
isChecked: false
}
@ -367,7 +381,18 @@
},
guestTraffic: {
preFilter: function(args) {
preFilter: function(args) {
var $guestTrafficDesc = $("#add_zone_guest_traffic_desc");
//debugger; //Brian, please take a look here
if (args.data['network-model'] == 'Basic') {
$guestTrafficDesc.find("#for_basic_zone").css('display', 'inline');
$guestTrafficDesc.find("#for_advanced_zone").hide();
}
else { //args.data['network-model'] == 'Advanced'
$guestTrafficDesc.find("#for_advanced_zone").css('display', 'inline');
$guestTrafficDesc.find("#for_basic_zone").hide();
}
var selectedZoneObj = {
networktype: args.data['network-model']
};
@ -402,8 +427,8 @@
//Basic (start)
guestGateway: { label: 'label.guest.gateway' },
guestNetmask: { label: 'label.guest.netmask' },
guestStartIp: { label: 'guest.start.IP' },
guestEndIp: { label: 'guest.end.IP' },
guestStartIp: { label: 'label.guest.start.ip' },
guestEndIp: { label: 'label.guest.end.ip' },
//Basic (end)
//Advanced (start)
@ -458,7 +483,7 @@
}
},
name: {
label: 'cluster.name',
label: 'label.cluster.name',
validation: { required: true }
},
@ -615,7 +640,7 @@
isHidden: true
},
baremetalMAC: {
label: 'host.MAC',
label: 'label.host.MAC',
validation: { required: true },
isHidden: true
},
@ -623,12 +648,12 @@
//input_group="OVM" starts here
agentUsername: {
label: 'agent.username',
label: 'label.agent.username',
validation: { required: false },
isHidden: true
},
agentPassword: {
label: 'agent.password',
label: 'label.agent.password',
validation: { required: true },
isHidden: true,
isPassword: true
@ -889,7 +914,7 @@
isHidden: true
},
lun: {
label: 'LUN.number',
label: 'label.LUN.number',
validation: { required: false }, // Primary storage is not required. User can use local storage instead of primary storage.
isHidden: true
},
@ -946,8 +971,8 @@
var data = args.data;
var stepFns = {
addZone: function() {
message('creating.zone');
addZone: function() {
message(dictionary['message.creating.zone']);
var array1 = [];
var networkType = args.data.zone.networkType; //"Basic", "Advanced"
@ -996,7 +1021,7 @@
},
addPhysicalNetworks: function(args) {
message('creating.physical.networks');
message(dictionary['message.creating.physical.networks']);
var returnedPhysicalNetworks = [];
@ -1279,7 +1304,7 @@
//afterCreateZonePhysicalNetworkTrafficTypes: enable physical network, enable virtual router element, enable network service provider
configurePhysicalNetwork: function(args) {
message('configuring.physical.networks');
message(dictionary['message.configuring.physical.networks']);
if(args.data.zone.networkType == "Basic") {
$.ajax({
@ -1707,7 +1732,7 @@
},
addNetscalerDevice: function(args) {
message('adding.Netscaler.device');
message(dictionary['message.adding.Netscaler.device']);
var array1 = [];
array1.push("&physicalnetworkid=" + args.data.returnedBasicPhysicalNetwork.id);
@ -1888,7 +1913,7 @@
},
addPod: function(args) {
message('creating.pod');
message(dictionary['message.creating.pod']);
var array3 = [];
array3.push("&zoneId=" + args.data.returnedZone.id);
@ -1923,7 +1948,7 @@
if((args.data.zone.networkType == "Basic" && (selectedNetworkOfferingHavingSG == true && selectedNetworkOfferingHavingEIP == true && selectedNetworkOfferingHavingELB == true))
||(args.data.zone.networkType == "Advanced")) {
message('configuring.public.traffic');
message(dictionary['message.configuring.public.traffic']);
var stopNow = false;
@ -2009,7 +2034,7 @@
return complete({});
}
message('configuring.storage.traffic');
message(dictionary['message.configuring.storage.traffic']);
var storageIPRanges = args.data.storageTraffic;
var tasks = [];
@ -2088,7 +2113,7 @@
},
configureGuestTraffic: function(args) {
message('configuring.guest.traffic');
message(dictionary['message.configuring.guest.traffic']);
if(args.data.returnedZone.networktype == "Basic") { //create an VlanIpRange for guest network in basic zone
var array1 = [];
@ -2191,7 +2216,7 @@
},
addCluster: function(args) {
message('creating.cluster');
message(dictionary['message.creating.cluster']);
var array1 = [];
array1.push("&zoneId=" + args.data.returnedZone.id);
@ -2255,7 +2280,7 @@
},
addHost: function(args) {
message('adding.host');
message(dictionary['message.adding.host']);
var array1 = [];
array1.push("&zoneid=" + args.data.returnedZone.id);
@ -2328,7 +2353,7 @@
return;
}
message('creating.primary.storage');
message(dictionary['message.creating.primary.storage']);
var array1 = [];
array1.push("&zoneid=" + args.data.returnedZone.id);
@ -2418,7 +2443,7 @@
},
addSecondaryStorage: function(args) {
message('creating.secondary.storage');
message(dictionary['message.creating.secondary.storage']);
var nfs_server = args.data.secondaryStorage.nfsServer;
var path = args.data.secondaryStorage.path;
@ -2443,7 +2468,7 @@
};
var complete = function(args) {
message('Zone.creation.complete');
message(dictionary['message.Zone.creation.complete']);
success(args);
};