Merge pull request #666 from vincent99/i18n

i18n fixes
This commit is contained in:
Vincent Fiduccia 2016-05-17 12:12:24 -07:00
commit 850fdac1d3
11 changed files with 322 additions and 226 deletions

View File

@ -24,7 +24,7 @@
<h2>{{t 'waitingPage.hosts.header'}}</h2>
<p>
{{t 'waitingPage.hosts.content' appName=settings.appName}}
{{t 'waitingPage.hosts.content' appName=settings.appName minVersion=settings.minDockerVersion}}
{{#if settings.isRancher}}<a href="{{settings.docsBase}}/rancher-ui/infrastructure/hosts/" target="_blank">{{t 'waitingPage.hosts.contentLink'}}</a>{{/if}}
</p>
{{#link-to "hosts.new" (query-params backTo="waiting") class="btn btn-primary"}}{{t 'waitingPage.hosts.linkToHost'}}{{/link-to}}

View File

@ -161,10 +161,11 @@
{{/each}}
</select>
<p style="margin: 10px 0 0 0;">{{t 'machine.driverAmazon.needs.label' appName=settings.appName}}</p>
<p style="r-m0 r-mt10">{{t 'machine.driverAmazon.needs.label' appName=settings.appName}}</p>
<ul>
<li>{{format-html-message 'machine.driverAmazon.needs.item1' appName=settings.appName}}</li>
<li>{{format-html-message 'machine.driverAmazon.needs.item2' appName=settings.appName}}</li>
<li>{{format-html-message 'machine.driverAmazon.needs.item3' appName=settings.appName}}</li>
</ul>
{{/if}}
{{else}}
@ -189,9 +190,9 @@
<div class="text-center">
<i class="icon icon-spinner icon-spin"></i>
{{#if defaultSecurityGroup}}
{{t 'machine.driverAmazon.securityGroupDot.updating'}}
{{t 'machine.driverAmazon.securityGroup.updating'}}
{{else}}
{{t 'machine.driverAmazon.securityGroupDot.creating'}}
{{t 'machine.driverAmazon.securityGroup.creating'}}
{{/if}}
</div>
</section>

View File

@ -3,55 +3,55 @@
{{partial "host/add-common"}}
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverAzure.accountAccessSpan'}}</span>
<span>{{t 'machine.driverAzure.accountAccessSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.username'}}</label>
<label class="form-control-static">{{t 'machine.driverAzure.username.label'}}</label>
</div>
<div class="col-md-4">
{{input type="text" value=azureConfig.username classNames="form-control" placeholder="Your Azure account username"}}
{{input type="text" value=azureConfig.username classNames="form-control" placeholder=(t 'machine.driverAzure.username.placeholder')}}
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.password'}}</label>
<label class="form-control-static">{{t 'machine.driverAzure.password.label'}}</label>
</div>
<div class="col-md-4">
{{input type="password" value=azureConfig.password classNames="form-control" placeholder="Your Azure account password"}}
{{input type="password" value=azureConfig.password classNames="form-control" placeholder=(t 'machine.driverAzure.password.placeholder')}}
</div>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.subscriptionId'}}</label>
<label class="form-control-static">{{t 'machine.driverAzure.subscriptionId.label'}}*</label>
</div>
<div class="col-md-4">
{{input type="text" value=azureConfig.subscriptionId classNames="form-control" placeholder="Your Azure subscription id"}}
{{input type="text" value=azureConfig.subscriptionId classNames="form-control" placeholder=(t 'machine.driverAzure.subscriptionId.placeholder')}}
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.subscriptionCert'}}</label>
<label class="form-control-static">{{t 'machine.driverAzure.subscriptionCert.label'}}*</label>
</div>
<div class="col-md-4">
{{input-text-file
value=subscriptionCert
placeholder="machine.driverAzure.accountAccess.subscriptionCert.placeholder"
placeholder="machine.driverAzure.subscriptionCert.placeholder"
accept="text/*, .cer"
}}
</div>
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverAzure.instanceLabel'}}</span>
<span>{{t 'machine.driverAzure.instanceSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.image'}}</label>
<label class="form-control-static">{{t 'machine.driverAzure.image.label'}}</label>
</div>
<div class="col-md-4">
{{input type="text" value=azureConfig.image classNames="form-control" placeholder="Ubuntu 15.10 x64"}}
{{input type="text" value=azureConfig.image classNames="form-control" placeholder=(t 'machine.driverAzure.image.placeholder')}}
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.size'}}</label>
<label class="form-control-static">{{t 'machine.driverAzure.size.label'}}</label>
</div>
<div class="col-md-4">
{{new-select
@ -65,25 +65,25 @@
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.sshPort'}}</label>
<label class="form-control-static">{{t 'machine.driverAzure.sshPort.label'}}</label>
</div>
<div class="col-md-4">
{{input type="text" value=azureConfig.sshPort classNames="form-control" placeholder="22"}}
{{input type="text" value=azureConfig.sshPort classNames="form-control" placeholder=(t 'machine.driverAzure.sshPort.placeholder')}}
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.dockerPort'}}</label>
<label class="form-control-static">{{t 'machine.driverAzure.dockerPort.label'}}</label>
</div>
<div class="col-md-4">
{{input type="text" value=azureConfig.dockerPort classNames="form-control" placeholder="2376"}}
{{input type="text" value=azureConfig.dockerPort classNames="form-control" placeholder=(t 'machine.driverAzure.dockerPort.placeholder')}}
</div>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.dockerSwarm:'}}</label>
<label class="form-control-static">{{t 'machine.driverAzure.dockerSwarm.label'}}</label>
</div>
<div class="col-md-4">
{{input type="text" value=azureConfig.dockerSwarmMasterPort classNames="form-control" placeholder="3376"}}
{{input type="text" value=azureConfig.dockerSwarmMasterPort classNames="form-control" placeholder=(t 'machine.driverAzure.dockerSwarm.placeholder')}}
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.publishSettings'}}</label>
@ -91,19 +91,19 @@
<div class="col-md-4">
{{input-text-file
value=azureConfig.publishSettingsFile
placeholder="machine.driverAzure.instance.publishSettingsFile.placeholder"
placeholder="machine.driverAzure.publishSettingsFile.placeholder"
accept="text/*, .publishsettings"
}}
</div>
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverAzure.region'}}</span>
<span>{{t 'machine.driverAzure.regionSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverAzure.region'}}</label>
<label class="form-control-static">{{t 'machine.driverAzure.region.label'}}</label>
</div>
<div class="col-md-10">
{{new-select

View File

@ -3,26 +3,26 @@
{{partial "host/add-common"}}
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverDigitalOcean.accountAccess'}}</span>
<span>{{t 'machine.driverDigitalocean.accountSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverDigitalOcean.accessToken'}}</label>
<label class="form-control-static">{{t 'machine.driverDigitalocean.accessToken.label'}}</label>
</div>
<div class="col-md-10">
{{input type="password" value=digitaloceanConfig.accessToken classNames="form-control" placeholder="Your DigitalOcean API access token"}}
{{format-html-message 'machine.driverDigitalOcean.helpBlock'}}
{{input type="password" value=digitaloceanConfig.accessToken classNames="form-control" placeholder=(t 'machine.driverDigitalocean.accessToken.placeholder')}}
<p class="help-block">{{format-html-message 'machine.driverDigitalocean.accessToken.help'}}</p>
</div>
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverDigitalOcean.instance'}}</span>
<span>{{t 'machine.driverDigitalocean.instanceSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverDigitalOcean.image'}}</label>
<label class="form-control-static">{{t 'machine.driverDigitalocean.image.label'}}</label>
</div>
<div class="col-md-4">
<select class="form-control" onchange={{action (mut digitaloceanConfig.image) value="target.value"}}>
@ -32,7 +32,7 @@
</select>
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverDigitalOcean.size'}}</label>
<label class="form-control-static">{{t 'machine.driverDigitalocean.size.label'}}</label>
</div>
<div class="col-md-4">
<select class="form-control" onchange={{action (mut digitaloceanConfig.size) value="target.value"}}>
@ -46,12 +46,12 @@
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverDigitalOcean.region'}}</span>
<span>{{t 'machine.driverDigitalocean.regionSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverDigitalOcean.region'}}</label>
<label class="form-control-static">{{t 'machine.driverDigitalocean.region.label'}}</label>
</div>
<div class="col-md-10">
<select class="form-control" onchange={{action (mut digitaloceanConfig.region) value="target.value"}}>
@ -63,24 +63,24 @@
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverDigitalOcean.options'}}</span>
<span>{{t 'machine.driverDigitalocean.optionsSection'}}</span>
</div>
<table style="margin: 0 auto;">
<tr>
<td style="padding: 0 10px;">
<div class="form-label checkbox">
<label>{{input type="checkbox" checked=digitaloceanConfig.backups}} {{t 'machine.driverDigitalOcean.enableBackups'}}</label>
<label>{{input type="checkbox" checked=digitaloceanConfig.backups}} {{t 'machine.driverDigitalocean.backups.label'}}</label>
</div>
</td>
<td style="padding: 0 10px;">
<div class="form-label checkbox">
<label>{{input type="checkbox" checked=digitaloceanConfig.ipv6}} {{t 'machine.driverDigitalOcean.enableIPv6'}}</label>
<label>{{input type="checkbox" checked=digitaloceanConfig.ipv6}} {{t 'machine.driverDigitalocean.ipv6.label'}}</label>
</div>
</td>
<td style="padding: 0 10px;">
<div class="form-label checkbox">
<label>{{input type="checkbox" checked=digitaloceanConfig.privateNetworking}} {{t 'machine.driverDigitalOcean.enablePrivate Networking'}}</label>
<label>{{input type="checkbox" checked=digitaloceanConfig.privateNetworking}} {{t 'machine.driverDigitalocean.privateNetworking.label'}}</label>
</div>
</td>
</tr>

View File

@ -2,16 +2,16 @@
<form>
<div class="container-fluid">
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverExoscale.accountAccess'}}</span>
<span>{{t 'machine.driverExoscale.accountSection'}}</span>
</div>
<div class="row {{if isStep1 'form-group'}}">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverExoscale.aPIKey'}}</label>
<label class="form-control-static">{{t 'machine.driverExoscale.apiKey.label'}}</label>
</div>
<div class="col-md-10">
{{#if isStep1}}
{{input type="text" name="username" classNames="form-control" placeholder="Your Exoscale API key" value=exoscaleConfig.apiKey}}
{{input type="text" name="username" classNames="form-control" placeholder=(t 'machine.driverExoscale.apiKey.placeholder') value=exoscaleConfig.apiKey}}
{{else}}
<div class="form-control-static">{{exoscaleConfig.apiKey}}</div>
{{/if}}
@ -19,16 +19,16 @@
</div>
<div class="row {{if isStep1 'form-group'}}">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverExoscale.secretKey'}}</label>
<label class="form-control-static">{{t 'machine.driverExoscale.secretKey.label'}}</label>
</div>
<div class="col-md-10">
{{#if isStep1}}
{{input type="password" name="password" classNames="form-control" placeholder="Your Exoscale secret key" value=exoscaleConfig.apiSecretKey}}
{{input type="password" name="password" classNames="form-control" placeholder=(t 'machine.driverExoscale.secretKey.placeholder') value=exoscaleConfig.apiSecretKey}}
{{else}}
<div class="form-control-static text-muted text-italic">{{t 'machine.driverExoscale.provided'}}</div>
<div class="form-control-static text-muted text-italic">{{t 'machine.driverExoscale.secretKey.provided'}}</div>
{{/if}}
{{#if isStep1}}
<p class="help-block">{{t 'machine.driverExoscale.paste'}}</p>
<p class="help-block">{{t 'machine.driverExoscale.accountHelp'}}</p>
{{/if}}
</div>
</div>
@ -37,45 +37,45 @@
{{top-errors errors=errors}}
<div class="footer-actions">
<button {{action "exoscaleLogin"}} name="submit" class="btn btn-primary">{{t 'machine.driverExoscale.next'}}</button>
<button {{action "cancel"}} class="btn btn-link">{{t 'machine.driverExoscale.Cancel'}}</button>
<button {{action "exoscaleLogin"}} name="submit" class="btn btn-primary">{{t 'machine.driverExoscale.loginAction'}}</button>
<button {{action "cancel"}} class="btn btn-link">{{t 'generic.cancel'}}</button>
</div>
{{/if}}
</form>
</section>
<section class="horizontal-form {{unless isStep2 'hide'}}" style="padding-top: 0">
<section class="horizontal-form r-pt0 {{unless isStep2 'hide'}}">
<div class="text-center">
<i class="icon icon-spinner icon-spin"></i> {{t 'machine.driverExoscale.loadingSecurity'}}
</div>
</section>
<section class="horizontal-form {{unless isGteStep3 'hide'}}" style="padding-top: 0">
<section class="horizontal-form r-pt0 {{unless isGteStep3 'hide'}}">
<div class="container-fluid">
<div class="over-hr r-mt20 r-mb20">
<span>Security Group</span>
<span>{{t 'machine.driverExoscale.securityGroupSection'}}</span>
</div>
<div class="row {{if isStep3 'form-group'}}">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverExoscale.securityGroup'}}</label>
<label class="form-control-static">{{t 'machine.driverExoscale.securityGroup.label'}}</label>
</div>
<div class="col-md-10">
{{#if isStep3}}
<div class="radio r-pt10"><label>
{{radio-button selection=whichSecurityGroup value="default"}} {{t 'machine.driverExoscale.standard'}}
{{radio-button selection=whichSecurityGroup value="default"}}
{{#if defaultSecurityGroup}}
{{t 'machine.driverExoscale.existing'}} <code>{{defaultSecurityGroupName}}</code> {{t 'machine.driverExoscale.group'}}
{{format-html-message 'machine.driverExoscale.securityGroup.defaultExisting' groupName=defaultSecurityGroupName}}
{{else}}
{{t 'machine.driverExoscale.autoCreate'}} <code>{{defaultSecurityGroupName}}</code> {{t 'machine.driverExoscale.group'}}
{{format-html-message 'machine.driverExoscale.securityGroup.defaultCreate' groupName=defaultSecurityGroupName}}
{{/if}}
</label></div>
{{#if (and settings.isRancher (not isCustomSecurityGroup))}}
<p class="help-block r-ml20"><a href="{{settings.docsBase}}/rancher-ui/infrastructure/hosts/exoscale/#required-ports-for-rancher-to-work" target="_blank">Learn more</a> about the ports that will be opened.</p>
<p class="help-block r-ml20"><a href="{{settings.docsBase}}/rancher-ui/infrastructure/hosts/exoscale/#required-ports-for-rancher-to-work" target="_blank">{{t 'machine.driverExoscale.portHelp.link'}}</a> {{t 'machine.driverExoscale.portHelp.text'}}</p>
{{/if}}
<div class="radio"><label>{{radio-button selection=whichSecurityGroup value="custom"}} Custom: Choose an existing group{{#if isCustomSecurityGroup}}:{{/if}}</label></div>
<div class="radio"><label>{{radio-button selection=whichSecurityGroup value="custom"}} {{t 'machine.driverExoscale.securityGroup.custom'}}</label></div>
{{#if isCustomSecurityGroup}}
<select class="form-control" onchange={{action (mut selectedSecurityGroup) value="target.value"}}>
{{#each allSecurityGroups as |choice|}}
@ -83,12 +83,12 @@
{{/each}}
</select>
<p style="margin: 10px 0 0 0;">For {{settings.appName}} to work correctly your security group will need to allow traffic:</p>
<p style="r-m0 r-mt10">{{t 'machine.driverExoscale.needs.label' appName=settings.appName}}</p>
<ul>
<li>From the {{settings.appName}} server to <code>TCP</code> port <code>22</code> <span class="text-muted">(SSH to install and configure Docker)</span> and <code>TCP</code> port <code>2376</code> <span class="text-muted">(access to Docker daemon)</span></li>
<li>From and To all other hosts on <code>UDP</code> ports <code>500</code> and <code>4500</code> <span class="text-muted">(for IPsec networking)</span></li>
<li>{{format-html-message 'machine.driverExoscale.needs.item1' appName=settings.appName}}</li>
<li>{{format-html-message 'machine.driverExoscale.needs.item2' appName=settings.appName}}</li>
<li>{{format-html-message 'machine.driverExoscale.needs.item3' appName=settings.appName}}</li>
</ul>
<p style="margin: 0;">These rules will <b>not</b> be added automatically.</p>
{{/if}}
{{else}}
<div class="form-control-static">
@ -102,7 +102,7 @@
{{top-errors errors=errors}}
<div class="footer-actions">
<button {{action "selectSecurityGroup"}} class="btn btn-primary">Next: Set Instance options</button>
<button {{action "selectSecurityGroup"}} class="btn btn-primary">{{t 'machine.driverExoscale.selectSecurityGroupAction'}}</button>
<button {{action "cancel"}} class="btn btn-link">Cancel</button>
</div>
{{/if}}
@ -110,27 +110,32 @@
<section class="horizontal-form {{unless isStep4 'hide'}}" style="padding-top: 0">
<div class="text-center">
<i class="icon icon-spinner icon-spin"></i> {{#if defaultSecurityGroup}}Updating{{else}}Creating{{/if}} Security Group...
<i class="icon icon-spinner icon-spin"></i>
{{#if defaultSecurityGroup}}
{{t 'machine.driverExoscale.securityGroup.updating'}}
{{else}}
{{t 'machine.driverExoscale.securityGroup.creating'}}
{{/if}}
</div>
</section>
<section class="horizontal-form {{unless isStep5 'hide'}}" style="padding-top: 0">
<section class="horizontal-form r-pt0 {{unless isStep5 'hide'}}">
<div class="text-center">
<i class="icon icon-spinner icon-spin"></i> Fetching available Instance settings...
<i class="icon icon-spinner icon-spin"></i> {{t 'machine.driverExoscale.loadingInstance'}}
</div>
</section>
<section class="horizontal-form {{unless isGteStep6 'hide'}}" style="padding-top: 0;">
<section class="horizontal-form r-pt0 {{unless isGteStep6 'hide'}}">
<div class="container-fluid">
<div class="over-hr r-mt20 r-mb20">
<span>Instance</span>
<span>{{t 'machine.driverExoscale.instanceSection'}}</span>
</div>
{{partial "host/add-common"}}
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">Instance Profile</label>
<label class="form-control-static">{{t 'machine.driverExoscale.instanceProfile.label'}}</label>
</div>
<div class="col-md-4">
<select class="form-control" onchange={{action (mut exoscaleConfig.instanceProfile) value="target.value"}}>
@ -140,7 +145,7 @@
</select>
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">Root Size</label>
<label class="form-control-static">{{t 'machine.driverExoscale.diskSize.label'}}</label>
</div>
<div class="col-md-4">
<select class="form-control" onchange={{action (mut exoscaleConfig.diskSize) value="target.value"}}>

View File

@ -4,12 +4,12 @@
{{partial "host/add-common"}}
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverOther.driver'}}</span>
<span>{{t 'machine.driverOther.driverSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverOther.driverNote'}}</label>
<label class="form-control-static">{{t 'machine.driverOther.driver.label'}}*</label>
</div>
<div class="col-md-8">
{{#if model}}
@ -23,7 +23,7 @@
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{str-replace driver match="Config" with=""}} {{t 'machine.driverOther.options'}}</span>
<span>{{t 'machine.driverOther.optionsSection' driverName=(str-replace driver match="Config" with="")}}</span>
</div>
{{#each fieldNames as |fieldName|}}

View File

@ -4,35 +4,35 @@
{{partial "host/add-common"}}
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverPacket.accountAccess'}}</span>
<span>{{t 'machine.driverPacket.accountSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverPacket.project'}}</label>
<label class="form-control-static">{{t 'machine.driverPacket.projectId.label'}}*</label>
</div>
<div class="col-md-10">
{{input type="text" name="username" value=packetConfig.projectId classNames="form-control" placeholder="Your Packet project ID"}}
{{input type="text" name="username" value=packetConfig.projectId classNames="form-control" placeholder=(t 'machine.driverPacket.projectId.placeholder')}}
</div>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverPacket.apiKey'}}</label>
<label class="form-control-static">{{t 'machine.driverPacket.apiKey.label'}}*</label>
</div>
<div class="col-md-10">
{{input type="password" name="password" value=packetConfig.apiKey classNames="form-control" placeholder="Your Packet API key"}}
<p class="help-block">{{format-html-message 'machine.driverPacket.packet'}}</p>
{{input type="password" name="password" value=packetConfig.apiKey classNames="form-control" placeholder=(t 'machine.driverPacket.apiKey.placeholder')}}
<p class="help-block">{{format-html-message 'machine.driverPacket.apiKeyHelp'}}</p>
</div>
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverPacket.instance'}}</span>
<span>{{t 'machine.driverPacket.instanceSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverPacket.image'}}</label>
<label class="form-control-static">{{t 'machine.driverPacket.image.label'}}</label>
</div>
<div class="col-md-4">
<select class="form-control" onchange={{action (mut packetConfig.os) value="target.value"}}>
@ -42,7 +42,7 @@
</select>
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverPacket.size'}}</label>
<label class="form-control-static">{{t 'machine.driverPacket.size.label'}}</label>
</div>
<div class="col-md-4">
<select class="form-control" onchange={{action (mut packetConfig.plan) value="target.value"}}>
@ -54,12 +54,12 @@
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverPacket.region'}}</span>
<span>{{t 'machine.driverPacket.regionSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverPacket.region'}}</label>
<label class="form-control-static">{{t 'machine.driverPacket.region.label'}}</label>
</div>
<div class="col-md-10">
<select class="form-control" onchange={{action (mut packetConfig.facility) value="target.value"}}>

View File

@ -5,35 +5,35 @@
{{partial "host/add-common"}}
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverRackspac.accountAccess'}}</span>
<span>{{t 'machine.driverRackspace.accountSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverRackspac.username'}}</label>
<label class="form-control-static">{{t 'machine.driverRackspace.username.label'}}*</label>
</div>
<div class="col-md-10">
{{input type="text" value=rackspaceConfig.username classNames="form-control" placeholder="Your RackSpace username"}}
{{input type="text" value=rackspaceConfig.username classNames="form-control" placeholder=(t 'machine.driverRackspace.username.placeholder')}}
</div>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverRackspac.apiKey'}}</label>
<label class="form-control-static">{{t 'machine.driverRackspace.apiKey.label'}}*</label>
</div>
<div class="col-md-10">
{{input type="password" value=rackspaceConfig.apiKey classNames="form-control" placeholder="Your RackSpace API key"}}
<p class="help-block">{{t 'machine.driverRackspac.settings'}}</p>
{{input type="password" value=rackspaceConfig.apiKey classNames="form-control" placeholder=(t 'machine.driverRackspace.apiKey.placeholder')}}
<p class="help-block">{{t 'machine.driverRackspace.accountHelp'}}</p>
</div>
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverRackspac.region'}}</span>
<span>{{t 'machine.driverRackspace.regionSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverRackspac.region'}}</label>
<label class="form-control-static">{{t 'machine.driverRackspace.region.label'}}</label>
</div>
<div class="col-md-10">
<select class="form-control" onchange={{action (mut rackspaceConfig.region) value="target.value"}}>
@ -45,12 +45,12 @@
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverRackspac.instance'}}</span>
<span>{{t 'machine.driverRackspace.instanceSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverRackspac.flavor'}}</label>
<label class="form-control-static">{{t 'machine.driverRackspace.flavor.label'}}</label>
</div>
<div class="col-md-10">
<select class="form-control" onchange={{action (mut rackspaceConfig.flavorId) value="target.value"}}>

View File

@ -2,16 +2,16 @@
<form name="login">
<div class="container-fluid">
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverUbiquity.accountAccess'}}</span>
<span>{{t 'machine.driverUbiquity.accountSection'}}</span>
</div>
<div class="row {{if isStep1 'form-group'}}">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverUbiquity.resellerID'}}</label>
<label class="form-control-static">{{t 'machine.driverUbiquity.clientId.label'}}</label>
</div>
<div class="col-md-10">
{{#if isStep1}}
{{input type="text" name="clientId" classNames="form-control" placeholder="Your Ubiquity Hosting API Reseller ID" value=ubiquityConfig.clientId}}
{{input type="text" name="clientId" classNames="form-control" placeholder=(t 'machine.driverUbiquity.clientId.placeholder') value=ubiquityConfig.clientId}}
{{else}}
<div class="form-control-static">{{ubiquityConfig.clientId}}</div>
{{/if}}
@ -19,11 +19,11 @@
</div>
<div class="row {{if isStep1 'form-group'}}">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverUbiquity.remoteID'}}</label>
<label class="form-control-static">{{t 'machine.driverUbiquity.apiUsername.label'}}</label>
</div>
<div class="col-md-10">
{{#if isStep1}}
{{input type="text" name="apiUsername" classNames="form-control" placeholder="Your Ubiquity Hosting Remote ID" value=ubiquityConfig.apiUsername}}
{{input type="text" name="apiUsername" classNames="form-control" placeholder=(t 'machine.driverUbiquity.apiUsername.placeholder') value=ubiquityConfig.apiUsername}}
{{else}}
<div class="form-control-static">{{ubiquityConfig.apiUsername}}</div>
{{/if}}
@ -31,16 +31,16 @@
</div>
<div class="row {{if isStep1 'form-group'}}">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverUbiquity.accessKey'}}</label>
<label class="form-control-static">{{t 'machine.driverUbiquity.apiToken.label'}}</label>
</div>
<div class="col-md-10">
{{#if isStep1}}
{{input type="password" name="apiToken" classNames="form-control" placeholder="Your Ubiquity Hosting Access Key" value=ubiquityConfig.apiToken}}
{{input type="password" name="apiToken" classNames="form-control" placeholder=(t 'machine.driverUbiquity.apiToken.placeholder') value=ubiquityConfig.apiToken}}
{{else}}
<div class="form-control-static text-muted text-italic">{{t 'machine.driverUbiquity.provided'}}</div>
<div class="form-control-static text-muted text-italic">{{t 'machine.driverUbiquity.apiToken.provided'}}</div>
{{/if}}
{{#if isStep1}}
<p class="help-block">{{format-html-message 'machine.driverUbiquity.helpBlock'}}</p>
<p class="help-block">{{format-html-message 'machine.driverUbiquity.accountHelp'}}</p>
{{/if}}
</div>
</div>
@ -48,34 +48,34 @@
{{#if isStep1}}
{{top-errors errors=errors}}
<div class="footer-actions">
<button {{action "ubiLogin"}} name="submit" class="btn btn-primary">{{t 'machine.driverUbiquity.button'}}</button>
<button {{action "cancel"}} class="btn btn-link">{{t 'machine.driverUbiquity.cancel'}}</button>
<button {{action "ubiLogin"}} name="submit" class="btn btn-primary">{{t 'machine.driverUbiquity.loginAction'}}</button>
<button {{action "cancel"}} class="btn btn-link">{{t 'generic.cancel'}}</button>
</div>
{{/if}}
</form>
</section>
<section class="horizontal-form {{unless isStep2 'hide'}}" style="padding-top: 0">
<section class="horizontal-form r-pt0 {{unless isStep2 'hide'}}">
<div class="text-center">
<i class="icon icon-spinner icon-spin"></i> {{t 'machine.driverUbiquity.loading'}}
<i class="icon icon-spinner icon-spin"></i> {{t 'machine.driverUbiquity.loadingInstance'}}
</div>
</section>
<section class="horizontal-form {{unless isGteStep3 'hide'}}" style="padding-top: 0;">
<section class="horizontal-form r-pt0 {{unless isGteStep3 'hide'}}">
<div class="container-fluid">
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverUbiquity.instance'}}</span>
<span>{{t 'machine.driverUbiquity.instanceSection'}}</span>
</div>
{{partial "host/add-common"}}
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverUbiquity.region'}}</span>
<span>{{t 'machine.driverUbiquity.regionSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverUbiquity.region'}}</label>
<label class="form-control-static">{{t 'machine.driverUbiquity.region.label'}}</label>
</div>
<div class="col-md-10">
<select class="form-control" onchange={{action "setZone" target.value}}>
@ -88,7 +88,7 @@
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverUbiquity.image'}}</label>
<label class="form-control-static">{{t 'machine.driverUbiquity.image.label'}}</label>
</div>
<div class="col-md-4">
<select class="form-control" onchange={{action (mut ubiquityConfig.imageId) value="target.value"}}>
@ -98,7 +98,7 @@
</select>
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverUbiquity.flavor'}}</label>
<label class="form-control-static">{{t 'machine.driverUbiquity.flavor.label'}}</label>
</div>
<div class="col-md-4">
<select class="form-control" onchange={{action (mut ubiquityConfig.flavorId) value="target.value"}}>

View File

@ -5,18 +5,18 @@
{{partial "host/add-common"}}
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverVsphere.accountAccess'}}</span>
<span>{{t 'machine.driverVsphere.accountSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.vCenterHost'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.vcenter.label'}}*</label>
</div>
<div class="col-md-4">
{{input type="text" class="form-control" value=config.vcenter placeholder="vCenter or ESXi hostname/IP"}}
{{input type="text" class="form-control" value=config.vcenter placeholder=(t 'machine.driverVsphere.vcenter.placeholder')}}
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.vCenterPort'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.vcenterPort.label'}}*</label>
</div>
<div class="col-md-4">
{{input type="number" min=1 max=65535 class="form-control" value=config.vcenterPort}}
@ -25,14 +25,14 @@
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.username'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.username.label'}}*</label>
</div>
<div class="col-md-4">
{{input type="text" value=config.username classNames="form-control"}}
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.password'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.password.label'}}*</label>
</div>
<div class="col-md-4">
{{input type="password" value=config.password classNames="form-control"}}
@ -40,12 +40,12 @@
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverVsphere.instance'}}</span>
<span>{{t 'machine.driverVsphere.instanceSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.cpus'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.cpuCount.label'}}</label>
</div>
<div class="col-sm-2 col-md-1 form-control-static">
@ -56,72 +56,72 @@
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.memory'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.memorySize.label'}}</label>
</div>
<div class="col-md-4">
<div class="input-group">
{{input type="number" min=1 value=config.memorySize classNames="form-control"}}
<div class="input-group-addon">{{t 'machine.driverVsphere.mb'}}</div>
<div class="input-group-addon">{{t 'machine.driverVsphere.memorySize.unit'}}</div>
</div>
</div>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.disk'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.diskSize.label'}}</label>
</div>
<div class="col-md-4">
<div class="input-group">
{{input type="number" min=1 value=config.diskSize classNames="form-control"}}
<div class="input-group-addon">{{t 'machine.driverVsphere.mb'}}</div>
<div class="input-group-addon">{{t 'machine.driverVsphere.diskSize.unit'}}</div>
</div>
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.os'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.boot2dockerUrl.label'}}</label>
</div>
<div class="col-md-4">
{{input type="text" value=config.boot2dockerUrl classNames="form-control" placeholder="Default: Latest boot2docker image"}}
{{input type="text" value=config.boot2dockerUrl classNames="form-control" placeholder=(t 'machine.driverVsphere.boot2dockerUrl.placeholder')}}
</div>
</div>
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'machine.driverVsphere.scheduling'}}</span>
<span>{{t 'machine.driverVsphere.schedulingSection'}}</span>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.dataCenter'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.dataCenter.label'}}</label>
</div>
<div class="col-md-2">
{{input type="text" value=config.datacenter classNames="form-control"}}
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.pool'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.pool.label'}}</label>
</div>
<div class="col-md-2">
{{input type="text" value=config.pool classNames="form-control"}}
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.host'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.host.label'}}</label>
</div>
<div class="col-md-2">
{{input type="text" value=config.hostsystem classNames="form-control" placeholder="Use '/' if using a cluster"}}
{{input type="text" value=config.hostsystem classNames="form-control" placeholder=(t 'machine.driverVsphere.host.placeholder')}}
</div>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.network'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.network.label'}}</label>
</div>
<div class="col-md-4">
{{input type="text" value=config.network classNames="form-control"}}
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'machine.driverVsphere.dataStore'}}</label>
<label class="form-control-static">{{t 'machine.driverVsphere.dataStore.label'}}</label>
</div>
<div class="col-md-4">
{{input type="text" value=config.datastore classNames="form-control"}}

View File

@ -945,7 +945,7 @@ waitingPage:
contentBanner: |
Before adding your first service or launching a container
content: |
Before adding your first service or launching a container, you must add at least a single Linux host that supports Docker 1.9.1+ and be able to reach the {appName} server via HTTP.
Before adding your first service or launching a container, you must add at least a single Linux host that supports Docker {minVersion} or higher and be able to reach the {appName} server via HTTP.
{appName} supports adding Linux hosts in the form of a virtual or physical machine from any public cloud providers, privately hosted clouds, or even bare metal servers.
contentLink: Learn More
linkToHost: Add Host
@ -1814,9 +1814,10 @@ machine:
label: "For {appName} to work correctly your security group will need to allow traffic:"
item1: From the {appName} server to <code>TCP</code> port <code>22</code> <span class="text-muted">(SSH to install and configure Docker)</span>
item2: From and To all other hosts on <code>UDP</code> ports <code>500</code> and <code>4500</code> <span class="text-muted">(for IPsec networking)</span></li>
item3: These rules will <b>not</b> be added automatically.
setInstanceAction: "Next: Set Instance options"
instanceSection: Instance
instanceOptions: Instance Options
instanceOptionsSection: Instance Options
instanceType:
label: Instance Type
rootSize:
@ -1837,25 +1838,39 @@ machine:
label: Use only private IP address
driverAzure:
accountAccess:
subscriptionCert:
placeholder: Your Azure subscription certificate
instance:
publishSettingsFile:
placeholder: Your Publish Settings file
accountAccessSpan: Account Access
username: Username
password: Password
subscriptionId: Subscription Id*
subscriptionCert: Subscription Cert*
instanceLabel: Instance
image: Image
size: Size
sshPort: SSH Port
dockerPort: Docker Port
dockerSwarm: Docker Swarm Master Port
publishSettings: Publish Settings File
region: Region
accountAccessSection: Account Access
username:
label: Username
placeholder: Your Azure account username
password:
label: Password
placeholder: Your Azure account password
subscriptionId:
label: Subscription ID
placeholder: Your Azure subscription ID
subscriptionCert:
label: Subscription Cert
placeholder: Your Azure subscription certificate
instanceSection: Instance
image:
label: Image
placeholder: Ubuntu 15.10 x64
size:
label: Size
sshPort:
label: SSH Port
placeholder: e.g. 22
dockerPort:
label: Docker Port
placeholder: e.g. 2376
dockerSwarm:
label: Docker Swarm Master Port
placeholder: e.g. 3376
publishSettingsFile:
placeholder: Your Publish Settings file
regionSection: Region
region:
label: Region
driverCustom:
step1: Start up a Linux machine somewhere and install the latest version of <a href="http://www.docker.com/" target="_blank">Docker</a> on it.
@ -1871,91 +1886,166 @@ machine:
part2: screen within a minute.
close: Close
driverDigitalOcean:
accountAccess: Account Access
accessToken: Access Token*
helpBlock: <p class="help-block">A Personal Access Token from the DigitalOcean <a href="https://cloud.digitalocean.com/settings/applications" target="_blank">Apps & API</a> screen</p>
instance: Instance
image: Image
size: Size
region: Region
options: Options
enableBackups: Enable Backups
enableIPv6: Enable IPv6
enablePrivate Networking: Enable Private Networking
driverDigitalocean:
accountSection: Account Access
accessToken:
label: Access Token*
placeholder: Your DigitalOcean API access token
help: |
A Personal Access Token from the DigitalOcean
<a href="https://cloud.digitalocean.com/settings/applications" target="_blank">Apps & API</a> screen
instanceSection: Instance
image:
label: Image
size:
label: Size
regionSection: Region
region:
label: Region
optionsSection: Options
backups:
label: Enable Backups
ipv6:
label: Enable IPv6
privateNetworking:
label: Enable Private Networking
driverExoscale:
accountAccess: Account Access
aPIKey: API Key
secretKey: Secret Key
provided: Provided
paste: Paste in your Exoscale key pair here. We'll use this key to create your new Instances.
next: "Next: Authenticate & select a Security Group"
Cancel: Cancel
accountSection: Account Access
apiKey:
label: API Key
placeholder: Your Exoscale API Key
secretKey:
label: Secret Key
placeholder: Your Exoscale secret key
provided: Provided
accountHelp: Paste in your Exoscale key pair here. We'll use this key to create your new Instances.
loginAction: "Next: Authenticate & select a Security Group"
loadingSecurity: Loading security group info from Exoscale...
securityGroup: Security Group
standard: "Standard:"
existing: Use the existing
group: group
autoCreate: Automatically create a
securityGroupSection: Security Group
securityGroup:
label: Security Group
defaultExisting: "Standard: Use the existing <code>{groupName}</code> group"
defaultCreate: "Standard: Automatically create a <code>{groupName}</code> group"
custom: "Custom: Choose an existing group"
updating: Updating Security Group...
creating: Creating Security Group...
portHelp:
link: Learn more
text: about the ports that will be opened.
needs:
label: "For {appName} to work correctly your security group will need to allow traffic:"
item1: From the {appName} server to <code>TCP</code> port <code>22</code> <span class="text-muted">(SSH to install and configure Docker)</span>
item2: From and To all other hosts on <code>UDP</code> ports <code>500</code> and <code>4500</code> <span class="text-muted">(for IPsec networking)</span></li>
item3: These rules will <b>not</b> be added automatically.
selectSecurityGroupAction: "Next: Set Instance options"
loadingInstance: Fetching available Instance settings...
instanceSection: Instance
instanceProfile:
label: Instance Profile
diskSize:
label: Root Size
driverOther:
driver: Driver
driverNote: Driver*
options: Options
driverSection: Driver
driver:
label: Driver
optionsSection: "{driverName} Options"
driverPacket:
accountAccess: Account Access
project: Project*
apiKey: API Key*
packet: From the Packet <a href="https://app.packet.net/portal#/api-keys" target="_blank">API Keys</a> screen
instance: Instance
image: Image
size: Size
region: Region
accountSection: Account Access
projectId:
label: Project
placeholder: Your Packet project ID
apiKey:
label: API Key
placeholder: Your Packet API key
apiKeyHelp: From the Packet <a href="https://app.packet.net/portal#/api-keys" target="_blank">API Keys</a> screen
instanceSection: Instance
image:
label: Image
size:
label: Size
regionSection: Region
region:
label: Region
driverRackspace:
accountAccess: Account Access
username: Username*
apiKey: API Key*
settings: From the Account Settings screen of the RackSpace control panel
region: Region
instance: Instance
flavor: Flavor
accountSection: Account Access
username:
label: Username
placeholder: Your RackSpace username
apiKey:
label: API Key
placeholder: Your RackSpace API key
accountHelp: From the Account Settings screen of the RackSpace control panel
regionSection: Region
region:
label: Region
instanceSection: Instance
flavor:
label: Flavor
driverUbiquity:
accountAccess: Account Access
resellerID: Reseller ID
remoteID: Remote ID
accessKey: Access Key
provided: Provided
helpBlock: You can find your Ubiquity Hosting API credentials <a href="https://motion.ubiquityhosting.com/api">here</a>. Don't have an account? Learn more about <a href="http://www.ubiquityhosting.com/">Ubiquity Hosting</a> today!
button: "Next: Authenticate & Create a New Cloud Instance"
cancel: Cancel
loading: Loading cloud instance creation details...
instance: Instance
region: Region
image: Image
flavor: Flavor
accountSection: Account Access
clientId:
label: Reseller ID
placeholder: Your Ubiquity Hosting API Reseller ID
apiUsername:
label: Remote ID
placeholder: Your Ubiquity Hosting Remote ID
apiToken:
label: Access Key
placeholder: Your Ubiquity Hosting Access Key
provided: Provided
accountHelp: You can find your Ubiquity Hosting API credentials <a href="https://motion.ubiquityhosting.com/api">here</a>. Don't have an account? Learn more about <a href="http://www.ubiquityhosting.com/">Ubiquity Hosting</a> today!
loginAction: "Next: Authenticate & Create a New Cloud Instance"
loadingInstance: Loading cloud instance creation details...
instanceSection: Instance
regionSection: Region
region:
label: Region
image:
label: Image
flavor:
label: Flavor
driverVsphere:
accountAccess: Account Access
vCenterHost: vCenter Host*
vCenterPort: vCenter Port*
username: Username*
password: Password*
instance: Instance
cpus: CPUs
memory: Memory
mb: MB
disk: Disk
os: OS ISO URL
scheduling: Scheduling
dataCenter: Data Center
pool: Pool
host: Host
network: Network
dataStore: Data Store
accountSection: Account Access
vcenter:
label: vCenter Host
placeholder: vCenter or ESXi hostname/IP
vcenterPort:
label: vCenter Port
username:
label: Username
password:
label: Password
instanceSection: Instance
cpuCount:
label: CPUs
memorySize:
label: Memory
unit: MB
diskSize:
label: Disk
unit: MB
boot2dockerUrl:
label: OS ISO URL
placeholder: "Default: Latest boot2docker image"
schedulingSection: Scheduling
dataCenter:
label: Data Center
pool:
label: Pool
host:
label: Host
placeholder: "Use '/' if using a cluster"
network:
label: Network
dataStore:
label: Data Store
modalAboutComponent:
component: Component