mirror of https://github.com/rancher/ui.git
More updates for I18N (#647)
This commit is contained in:
parent
a208c8ebf8
commit
a3943205b0
|
|
@ -5,14 +5,14 @@
|
||||||
<div class="well">
|
<div class="well">
|
||||||
<div class="form-inline r-mb25 inline-block">
|
<div class="form-inline r-mb25 inline-block">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
{{input class="form-control input-sm r-mr5" value=filters.eventType placeholder="auditLogsPage.form.eventType.placeholder"}}
|
{{input class="form-control input-sm r-mr5" value=filters.eventType placeholder=(t "auditLogsPage.form.eventType.placeholder")}}
|
||||||
<div class="input-group r-mr5">
|
<div class="input-group r-mr5">
|
||||||
<span class="input-group-btn">
|
<span class="input-group-btn">
|
||||||
{{input class="form-control input-sm pull-right" value=filters.resourceId placeholder="auditLogsPage.form.resourceId.placeholder" disabled=resourceIdReady}}
|
{{input class="form-control input-sm pull-right" value=filters.resourceId placeholder=(t "auditLogsPage.form.resourceId.placeholder") disabled=resourceIdReady}}
|
||||||
<button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">{{if filters.resourceType filters.resourceType "auditLogsPage.form.resourceType.placeholder"}} <i class="icon icon-chevron-down"></i></button>
|
<button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">{{if filters.resourceType filters.resourceType (t "auditLogsPage.form.resourceType.placeholder")}} <i class="icon icon-chevron-down"></i></button>
|
||||||
<ul class="dropdown-menu" role="menu">
|
<ul class="dropdown-menu" role="menu">
|
||||||
<li role="presentation" class="dropdown-header">
|
<li role="presentation" class="dropdown-header">
|
||||||
Select a Resource Type:
|
{{t 'auditLogsPage.form.resourceType.dropdownPlaceholder'}}
|
||||||
</li>
|
</li>
|
||||||
{{#each model.resourceTypes as |resource|}}
|
{{#each model.resourceTypes as |resource|}}
|
||||||
<li {{action "updateResourceType" resource}}>
|
<li {{action "updateResourceType" resource}}>
|
||||||
|
|
@ -22,12 +22,12 @@
|
||||||
</ul>
|
</ul>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{{input class="form-control input-sm r-mr5" value=filters.clientIp placeholder="auditLogsPage.form.requestIp.placeholder"}}
|
{{input class="form-control input-sm r-mr5" value=filters.clientIp placeholder=(t "auditLogsPage.form.requestIp.placeholder")}}
|
||||||
<span class="dropdown">
|
<span class="dropdown">
|
||||||
<button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">{{if authTypeReadable authTypeReadable "auditLogsPage.form.authType.placeholder"}} <i class="icon icon-chevron-down"></i></button>
|
<button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">{{if authTypeReadable authTypeReadable (t "auditLogsPage.form.authType.placeholder")}} <i class="icon icon-chevron-down"></i></button>
|
||||||
<ul class="dropdown-menu" role="menu">
|
<ul class="dropdown-menu" role="menu">
|
||||||
<li role="presentation" class="dropdown-header">
|
<li role="presentation" class="dropdown-header">
|
||||||
Select an Auth Type:
|
{{t 'auditLogsPage.form.authType.dropdownPlaceholder'}}
|
||||||
</li>
|
</li>
|
||||||
{{#each authTypes as |type|}}
|
{{#each authTypes as |type|}}
|
||||||
<li {{action "updateAuthType" type}}>
|
<li {{action "updateAuthType" type}}>
|
||||||
|
|
@ -53,27 +53,27 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
{{#each model.auditLog as |log|}}
|
{{#each model.auditLog as |log|}}
|
||||||
<tr>
|
<tr>
|
||||||
<td data-title="Time:">{{format-relative log.created interval=C.LANGUAGE.FORMAT_RELATIVE_TIMEOUT}}</td>
|
<td data-title="{{t 'auditLogsPage.table.time'}}:">{{format-relative log.created interval=C.LANGUAGE.FORMAT_RELATIVE_TIMEOUT}}</td>
|
||||||
<td data-title="Event Type:" class="force-wrap" title="{{log.eventType}}">
|
<td data-title="{{t 'auditLogsPage.table.eventType'}}:" class="force-wrap" title="{{log.eventType}}">
|
||||||
{{log.eventType}} <i class="icon icon-info addtl-info-trigger" {{action 'showResponseObjects' log.requestObject log.responseObject }}></i>
|
{{log.eventType}} <i class="icon icon-info addtl-info-trigger" {{action 'showResponseObjects' log.requestObject log.responseObject }}></i>
|
||||||
</td>
|
</td>
|
||||||
<td data-title="Description:">{{#if log.description}}{{log.description}}{{else}}<span class="text-muted">None</span>{{/if}}</td>
|
<td data-title="{{t 'auditLogsPage.table.description'}}:">{{#if log.description}}{{log.description}}{{else}}<span class="text-muted">None</span>{{/if}}</td>
|
||||||
<td data-title="Environment:" class="clip">
|
<td data-title="{{t 'auditLogsPage.table.environment'}}:" class="clip">
|
||||||
{{#if (eq log.account.type "project")}}
|
{{#if (eq log.account.type "project")}}
|
||||||
{{log.account.name}}
|
{{log.account.name}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class="text-muted">-</span>
|
<span class="text-muted">-</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</td>
|
</td>
|
||||||
<td data-title="Resource Type(ID):" class="clip" title="{{log.resourceType}}">
|
<td data-title="{{t 'auditLogsPage.table.resourceTypeId'}}:" class="clip" title="{{log.resourceType}}">
|
||||||
{{#if log.links.resource}}
|
{{#if log.links.resource}}
|
||||||
<a href="{{log.links.resource}}" target="_blank">{{log.resourceType}}{{#if log.resourceId}}: {{log.resourceId}}{{/if}}</a>
|
<a href="{{log.links.resource}}" target="_blank">{{log.resourceType}}{{#if log.resourceId}}: {{log.resourceId}}{{/if}}</a>
|
||||||
{{else}}
|
{{else}}
|
||||||
{{log.resourceType}}{{#if log.resourceId}}: {{log.resourceId}}{{/if}}
|
{{log.resourceType}}{{#if log.resourceId}}: {{log.resourceId}}{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</td>
|
</td>
|
||||||
<td data-title="Identity:">{{identity-block identityNotParsed=log.authenticatedAsIdentityId}}</td>
|
<td data-title="{{t 'auditLogsPage.table.identity'}}:">{{identity-block identityNotParsed=log.authenticatedAsIdentityId}}</td>
|
||||||
<td data-title="Auth & IP:" class="clip">{{auth-type log.authType}}<div>{{format-ip ip=log.clientIp noIp='generic.emptyString'}}</div></td>
|
<td data-title="{{t 'auditLogsPage.table.authIp'}}:" class="clip">{{auth-type log.authType}}<div>{{format-ip ip=log.clientIp noIp='generic.emptyString'}}</div></td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
<section class="header">
|
<section class="header">
|
||||||
<h1>
|
<h1>{{t 'catalogPage.index.header'}} <span class="text-capitalize">{{selectedCatalog}}</span></h1>
|
||||||
Catalog: <span class="text-capitalize">{{selectedCatalog}}</span>
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
<button type="button" class="btn btn-default btn-sm" disabled={{eq updating 'yes'}} {{action "update"}}>
|
<button type="button" class="btn btn-default btn-sm" disabled={{eq updating 'yes'}} {{action "update"}}>
|
||||||
|
|
@ -32,7 +30,7 @@
|
||||||
|
|
||||||
<div class="btn-group searchable pull-right">
|
<div class="btn-group searchable pull-right">
|
||||||
<i class="icon icon-search"></i>
|
<i class="icon icon-search"></i>
|
||||||
{{input placeholder="Search..." class="form-control input-sm" value=search}}
|
{{input placeholder=(t 'catalogPage.index.search.placeholder') class="form-control input-sm" value=search}}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
@ -41,7 +39,7 @@
|
||||||
<div class="container-catalog text-center">
|
<div class="container-catalog text-center">
|
||||||
{{#if catalogItem.official}}
|
{{#if catalogItem.official}}
|
||||||
<div class='badge-certified'>
|
<div class='badge-certified'>
|
||||||
<strong>Certified</strong>
|
<strong>{{t 'catalogPage.index.certified'}}</strong>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="catalog-icon">
|
<div class="catalog-icon">
|
||||||
|
|
@ -61,5 +59,12 @@
|
||||||
</div>
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="text-muted r-mt20">There are no compatible templates{{#if showCatalogDropdown}} in this Catalog{{/if}}.</div>
|
<div class="text-muted r-mt20">There are no compatible templates{{#if showCatalogDropdown}} in this Catalog{{/if}}.</div>
|
||||||
|
<div class="text-muted r-mt20">
|
||||||
|
{{#if showCatalogDropdown}}
|
||||||
|
{{t 'catalogPage.index.noData.plural'}}
|
||||||
|
{{else}}
|
||||||
|
{{t 'catalogPage.index.noData.singular'}}
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</section>
|
</section>
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
<thead>
|
<thead>
|
||||||
{{#if labelArray.length}}
|
{{#if labelArray.length}}
|
||||||
<tr>
|
<tr>
|
||||||
{{#if showKind}}{{sortable-th sortable=this action="changeSort" name="kind" width="90"}}{{/if}}
|
{{#if showKind}}{{sortable-th sortable=this action="changeSort" name="kind" label='labelsSection.kind' width="90"}}{{/if}}
|
||||||
{{sortable-th sortable=this action="changeSort" name="key"}}
|
{{sortable-th sortable=this action="changeSort" name="key" label='labelsSection.key'}}
|
||||||
{{sortable-th sortable=this action="changeSort" name="value"}}
|
{{sortable-th sortable=this action="changeSort" name="value" label='labelsSection.value'}}
|
||||||
</tr>
|
</tr>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</thead>
|
</thead>
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
<td data-title="Value:" class="force-wrap">{{pretty-json value=label.value}}</td>
|
<td data-title="Value:" class="force-wrap">{{pretty-json value=label.value}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{else}}
|
{{else}}
|
||||||
<tr><td colspan="3" class="text-center text-muted">No labels</td></tr>
|
<tr><td colspan="3" class="text-center text-muted">{{t 'labelsSection.noData'}}</td></tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{{input-text-file
|
{{input-text-file
|
||||||
value=subscriptionCert
|
value=subscriptionCert
|
||||||
placeholder="Your Azure subscription certificate"
|
placeholder="machine.driverAzure.accountAccess.subscriptionCert.placeholder"
|
||||||
accept="text/*, .cer"
|
accept="text/*, .cer"
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -91,7 +91,7 @@
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{{input-text-file
|
{{input-text-file
|
||||||
value=azureConfig.publishSettingsFile
|
value=azureConfig.publishSettingsFile
|
||||||
placeholder="Your Publish Settings file"
|
placeholder="machine.driverAzure.instance.publishSettingsFile.placeholder"
|
||||||
accept="text/*, .publishsettings"
|
accept="text/*, .publishsettings"
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<div class="shell-popup">
|
<div class="shell-popup">
|
||||||
<h2><i class="icon icon-terminal"></i> Shell: {{model.displayName}}</h2>
|
<h2><i class="icon icon-terminal"></i> {{t 'consolePage.header'}} {{model.displayName}}</h2>
|
||||||
{{#container-shell
|
{{#container-shell
|
||||||
instance=model
|
instance=model
|
||||||
showProtip=false
|
showProtip=false
|
||||||
|
|
@ -8,6 +8,6 @@
|
||||||
dismiss=(action "cancel")
|
dismiss=(action "cancel")
|
||||||
disconncted=(action "cancel")
|
disconncted=(action "cancel")
|
||||||
}}
|
}}
|
||||||
<button {{action "cancel"}} class="btn btn-primary">Close</button>
|
<button {{action "cancel"}} class="btn btn-primary">{{t 'consolePage.closeButton'}}</button>
|
||||||
{{/container-shell}}
|
{{/container-shell}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
<section class="fail-whale">
|
<section class="fail-whale">
|
||||||
<div class="error">
|
<div class="error">
|
||||||
<h2 class="bg-danger">Error</h2>
|
<h2 class="bg-danger">{{t 'failWhalePage.header'}}</h2>
|
||||||
<div class="r-p20">
|
<div class="r-p20">
|
||||||
<h4 class="r-mt20">{{model.code}} {{#if model.status}}({{model.status}}){{/if}}</h4>
|
<h4 class="r-mt20">{{model.code}} {{#if model.status}}({{model.status}}){{/if}}</h4>
|
||||||
<p>{{model.message}}</p>
|
<p>{{model.message}}</p>
|
||||||
<p class="small">{{model.detail}}</p>
|
<p class="small">{{model.detail}}</p>
|
||||||
<div class="r-mt20">
|
<div class="r-mt20">
|
||||||
<a href="#" onclick="window.location.href = window.location.href; return false;">Reload</a> to try again
|
{{format-html-message 'failWhalePage.reloadButton'}} <a class="hand" {{action "logout"}}>{{t 'failWhalePage.logoutButton'}}</a>
|
||||||
or <a class="hand" {{action "logout"}}>log out</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
<section class="header">
|
<section class="header">
|
||||||
<h1 style="display: block">kubectl</h1>
|
<h1 style="display: block">{{t 'k8sTab.kubectl.header'}}</h1>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="well">
|
<section class="well">
|
||||||
{{#if (eq step 1)}}
|
{{#if (eq step 1)}}
|
||||||
<p>To use <a href="http://kubernetes.io/docs/getting-started-guides/docker/#download-kubectl" target="_blank">kubectl</a> (v1.2+ only) on your workstation, click the button to generate an API key and config file:</p>
|
<p>{{format-html-message 'k8sTab.kubectl.stepOne.generateConfigText'}}</p>
|
||||||
<button {{action "generate"}} class="btn btn-primary">Generate Config</button>
|
<button {{action "generate"}} class="btn btn-primary">{{t 'k8sTab.kubectl.stepOne.generateButton'}}</button>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if (eq step 2)}}
|
{{#if (eq step 2)}}
|
||||||
<i class="icon icon-spinner icon-spin"></i> Generating...
|
<i class="icon icon-spinner icon-spin"></i> {{t 'k8sTab.kubectl.stepTwo.progress'}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if (eq step 3)}}
|
{{#if (eq step 3)}}
|
||||||
<p>Put this into <code>~/.kube/config</code>:</p>
|
<p>{{format-html-message 'k8sTab.kubectl.stepThree.helpText'}}</p>
|
||||||
<pre><code>{{kubeconfig}}</code></pre>
|
<pre><code>{{kubeconfig}}</code></pre>
|
||||||
{{copy-to-clipboard tooltipText="" buttonText="copyToClipboard.tooltip" clipboardText=kubeconfig class="with-clip"}}
|
{{copy-to-clipboard tooltipText="" buttonText="copyToClipboard.tooltip" clipboardText=kubeconfig class="with-clip"}}
|
||||||
<p class="r-mt10 r-mb0">Then <a href="http://kubernetes.io/docs/getting-started-guides/docker/#download-kubectl" target="_blank">download</a> (if needed) and run <code>kubectl</code></p>
|
<p class="r-mt10 r-mb0">Then <a href="http://kubernetes.io/docs/getting-started-guides/docker/#download-kubectl" target="_blank">download</a> (if needed) and run <code>kubectl</code></p>
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="well">
|
<section class="well">
|
||||||
<p>Or use this handy shell to directly execute <code>kubectl</code> commands:</p>
|
<p>{{format-html-message 'k8sTab.kubectl.shell.helpText'}}</p>
|
||||||
|
|
||||||
{{container-shell
|
{{container-shell
|
||||||
classNames="inline-block"
|
classNames="inline-block"
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
<section class="header">
|
<section class="header">
|
||||||
<h1>Pods</h1>
|
<h1>{{t 'k8sTab.namespace.pods.index.header'}}</h1>
|
||||||
|
|
||||||
{{#link-to "k8s-tab.apply" (query-params kind="Pod") classNames="btn btn-sm btn-primary"}}Add Pod{{/link-to}}
|
{{#link-to "k8s-tab.apply" (query-params kind="Pod") classNames="btn btn-sm btn-primary"}}{{t 'k8sTab.namespace.pods.index.linkTo'}}{{/link-to}}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="well instances">
|
<section class="well instances">
|
||||||
<table class="grid fixed" style="margin-bottom: 0;">
|
<table class="grid fixed" style="margin-bottom: 0;">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
{{sortable-th sortable=this action="changeSort" name="name"}}
|
{{sortable-th sortable=this action="changeSort" name="name" label='generic.name'}}
|
||||||
<th width="80">Status</th>
|
<th width="80">{{t 'k8sTab.namespace.pods.index.table.header.status'}}</th>
|
||||||
<th>Containers</th>
|
<th>{{t 'k8sTab.namespace.pods.index.table.header.containers'}}</th>
|
||||||
<th>Host IP</th>
|
<th>{{t 'k8sTab.namespace.pods.index.table.header.host'}}</th>
|
||||||
<th>Pod IP</th>
|
<th>{{t 'k8sTab.namespace.pods.index.table.header.pod'}}</th>
|
||||||
<th class="actions" width="85"> </th>
|
<th class="actions" width="85"> </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
{{#each arranged as |pod|}}
|
{{#each arranged as |pod|}}
|
||||||
{{k8s/pod-row model=pod}}
|
{{k8s/pod-row model=pod}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<tr><td colspan="7" class="text-center text-muted">You do not have any Pods yet.</td></tr>
|
<tr><td colspan="7" class="text-center text-muted">{{t 'k8sTab.namespace.pods.index.table.body.noData'}}</td></tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<section class="header">
|
<section class="header">
|
||||||
<h1>{{#link-to "k8s-tab.namespace.pods"}}Pod:{{/link-to}} {{model.displayName}}</h1>
|
<h1>{{#link-to "k8s-tab.namespace.pods"}}{{t 'k8sTab.namespace.pods.pod.header.linkTo'}}{{/link-to}} {{model.displayName}}</h1>
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
{{action-menu model=model}}
|
{{action-menu model=model}}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -8,14 +8,14 @@
|
||||||
<section>
|
<section>
|
||||||
<div class="container-multi-stat">
|
<div class="container-multi-stat">
|
||||||
<div class="container-flex bordered">
|
<div class="container-flex bordered">
|
||||||
<div class="col-flex"><label>Type:</label> {{model.spec.type}}</div>
|
<div class="col-flex"><label>{{t 'k8sTab.namespace.pods.pod.type.header'}}</label> {{model.spec.type}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<ul class="nav nav-tabs nav-tabs-well" role="tablist">
|
<ul class="nav nav-tabs nav-tabs-well" role="tablist">
|
||||||
<li role="tab" class="tab" data-section="containers" {{action "selectTab" "containers" target="view"}}><a href="#">Containers</a></li>
|
<li role="tab" class="tab" data-section="containers" {{action "selectTab" "containers" target="view"}}><a href="#">{{t 'k8sTab.namespace.pods.pod.navTabs.containers'}}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="horizontal-form well nav-well" role="tabpanel">
|
<div class="horizontal-form well nav-well" role="tabpanel">
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
<section class="header">
|
<section class="header">
|
||||||
<h1>RCs</h1>
|
<h1>{{t 'k8sTab.namespace.rcs.index.header'}}</h1>
|
||||||
|
|
||||||
{{#link-to "k8s-tab.apply" (query-params kind="ReplicationController") classNames="btn btn-sm btn-primary"}}Add RC{{/link-to}}
|
{{#link-to "k8s-tab.apply" (query-params kind="ReplicationController") classNames="btn btn-sm btn-primary"}}{{t 'k8sTab.namespace.rcs.index.linkTo'}}{{/link-to}}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="well instances">
|
<section class="well instances">
|
||||||
<table class="grid fixed" style="margin-bottom: 0;">
|
<table class="grid fixed" style="margin-bottom: 0;">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
{{sortable-th sortable=this action="changeSort" name="name"}}
|
{{sortable-th sortable=this action="changeSort" name="name" label='generic.name'}}
|
||||||
<th width="80">Replicas</th>
|
<th width="80">{{t 'k8sTab.namespace.rcs.index.table.header.replicas'}}</th>
|
||||||
<th>Selectors</th>
|
<th>{{t 'k8sTab.namespace.rcs.index.table.header.selectors'}}</th>
|
||||||
<th>Containers</th>
|
<th>{{t 'k8sTab.namespace.rcs.index.table.header.containers'}}</th>
|
||||||
<th class="actions" width="85"> </th>
|
<th class="actions" width="85"> </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
{{#each arranged as |rc|}}
|
{{#each arranged as |rc|}}
|
||||||
{{k8s/rc-row model=rc}}
|
{{k8s/rc-row model=rc}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<tr><td colspan="5" class="text-center text-muted">You do not have any Replication Controllers yet.</td></tr>
|
<tr><td colspan="5" class="text-center text-muted">{{t 'k8sTab.namespace.rcs.index.table.body.noData'}}</td></tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<section class="header">
|
<section class="header">
|
||||||
<h1>{{#link-to "k8s-tab.namespace.rcs"}}RC:{{/link-to}} {{model.displayName}}</h1>
|
<h1>{{#link-to "k8s-tab.namespace.rcs"}}{{t 'k8sTab.namespace.rcs.rc.header'}}{{/link-to}} {{model.displayName}}</h1>
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
{{action-menu model=model}}
|
{{action-menu model=model}}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -8,24 +8,24 @@
|
||||||
<section>
|
<section>
|
||||||
<div class="container-multi-stat">
|
<div class="container-multi-stat">
|
||||||
<div class="container-flex bordered">
|
<div class="container-flex bordered">
|
||||||
<div class="col-flex"><label>Type:</label> {{model.spec.type}}</div>
|
<div class="col-flex"><label>{{t 'k8sTab.multistat.header.type'}}</label> {{model.spec.type}}</div>
|
||||||
<div class="col-flex"><label>Cluster IP:</label> {{model.spec.clusterIP}}</div>
|
<div class="col-flex"><label>{{t 'k8sTab.multistat.header.cluster'}}</label> {{model.spec.clusterIP}}</div>
|
||||||
<div class="col-flex"><label>Balancer IP:</label> {{default-str model.spec.loadBalancerIP default="None"}}</div>
|
<div class="col-flex"><label>{{t 'k8sTab.multistat.header.balancer'}}</label> {{default-str model.spec.loadBalancerIP default="None"}}</div>
|
||||||
<div class="col-flex"><label>Session Affinity:</label> {{model.spec.sessionAffinity}}</div>
|
<div class="col-flex"><label>{{t 'k8sTab.multistat.header.session'}}</label> {{model.spec.sessionAffinity}}</div>
|
||||||
<div class="col-flex">
|
<div class="col-flex">
|
||||||
<label>External IPs:</label>
|
<label>{{t 'k8sTab.multistat.header.external'}}</label>
|
||||||
{{#each model.spec.externalIPs as |ip index|}}
|
{{#each model.spec.externalIPs as |ip index|}}
|
||||||
{{if (eq index 0) '' ','}}{{ip}}
|
{{if (eq index 0) '' ','}}{{ip}}
|
||||||
{{else}}
|
{{else}}
|
||||||
None
|
{{t 'generic.none'}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-flex">
|
<div class="col-flex">
|
||||||
<label>Selectors:</label>
|
<label>{{t 'k8sTab.multistat.header.selectors'}}</label>
|
||||||
{{#each model.selectorsAsArray as |sel|}}
|
{{#each model.selectorsAsArray as |sel|}}
|
||||||
<span class="badge badge-default">{{sel.label}}={{sel.value}}</span>
|
<span class="badge badge-default">{{sel.label}}={{sel.value}}</span>
|
||||||
{{else}}
|
{{else}}
|
||||||
None
|
{{t 'generic.none'}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -34,9 +34,9 @@
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<ul class="nav nav-tabs nav-tabs-well shadowed" role="tablist">
|
<ul class="nav nav-tabs nav-tabs-well shadowed" role="tablist">
|
||||||
<li role="tab" class="tab" data-section="pods" {{action "selectTab" "pods" target="view"}}><a href="#">Pods</a></li>
|
<li role="tab" class="tab" data-section="pods" {{action "selectTab" "pods" target="view"}}><a href="#">{{t 'k8sTab.navTabs.pods'}}</a></li>
|
||||||
<li role="tab" class="tab" data-section="labels" {{action "selectTab" "labels" target="view"}}><a href="#">Labels</a></li>
|
<li role="tab" class="tab" data-section="labels" {{action "selectTab" "labels" target="view"}}><a href="#">{{t 'k8sTab.navTabs.labels'}}</a></li>
|
||||||
<li role="tab" class="tab" data-section="ports" {{action "selectTab" "ports" target="view"}}><a href="#">Ports</a></li>
|
<li role="tab" class="tab" data-section="ports" {{action "selectTab" "ports" target="view"}}><a href="#">{{t 'k8sTab.navTabs.ports'}}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="horizontal-form well" role="tabpanel">
|
<div class="horizontal-form well" role="tabpanel">
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
<section class="header">
|
<section class="header">
|
||||||
<h1>Services</h1>
|
<h1>{{t 'k8sTab.namespace.services.header'}}</h1>
|
||||||
|
|
||||||
{{#link-to "k8s-tab.apply" (query-params kind="Service") classNames="btn btn-sm btn-primary"}}Add Service{{/link-to}}
|
{{#link-to "k8s-tab.apply" (query-params kind="Service") classNames="btn btn-sm btn-primary"}}{{t 'k8sTab.namespace.services.linkTo'}}{{/link-to}}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="well instances">
|
<section class="well instances">
|
||||||
<table class="grid fixed" style="margin-bottom: 0;">
|
<table class="grid fixed" style="margin-bottom: 0;">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
{{sortable-th sortable=this action="changeSort" name="name"}}
|
{{sortable-th sortable=this action="changeSort" name="name" label="generic.name"}}
|
||||||
{{sortable-th sortable=this action="changeSort" name="serviceType" width="150" label="Type"}}
|
{{sortable-th sortable=this action="changeSort" name="serviceType" width="150" label="generic.type"}}
|
||||||
<th width="150">Cluster IP</th>
|
<th width="150">{{t 'k8sTab.namespace.services.table.header.cluster'}}</th>
|
||||||
<th width="80">Pods</th>
|
<th width="80">{{t 'k8sTab.namespace.services.table.header.pods'}}</th>
|
||||||
<th>Ports</th>
|
<th>{{t 'k8sTab.namespace.services.table.header.ports'}}</th>
|
||||||
<th>Selectors</th>
|
<th>{{t 'k8sTab.namespace.services.table.header.selectors'}}</th>
|
||||||
<th class="actions" width="85"> </th>
|
<th class="actions" width="85"> </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
{{#each arranged as |service|}}
|
{{#each arranged as |service|}}
|
||||||
{{k8s/service-row model=service}}
|
{{k8s/service-row model=service}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<tr><td colspan="7" class="text-center text-muted">You do not have any Services yet.</td></tr>
|
<tr><td colspan="7" class="text-center text-muted">{{t 'k8sTab.namespace.services.table.body.noData'}}</td></tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<section class="header">
|
<section class="header">
|
||||||
<h1>{{#link-to "k8s-tab.namespace.services"}}Service:{{/link-to}} {{model.displayName}}</h1>
|
<h1>{{#link-to "k8s-tab.namespace.services"}}{{t 'k8sTab.namespace.services.service.index.header'}}{{/link-to}} {{model.displayName}}</h1>
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
{{action-menu model=model}}
|
{{action-menu model=model}}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -8,24 +8,24 @@
|
||||||
<section>
|
<section>
|
||||||
<div class="container-multi-stat">
|
<div class="container-multi-stat">
|
||||||
<div class="container-flex bordered">
|
<div class="container-flex bordered">
|
||||||
<div class="col-flex"><label>Type:</label> {{model.spec.type}}</div>
|
<div class="col-flex"><label>{{t 'k8sTab.multistat.header.type'}}</label> {{model.spec.type}}</div>
|
||||||
<div class="col-flex"><label>Cluster IP:</label> {{model.spec.clusterIP}}</div>
|
<div class="col-flex"><label>{{t 'k8sTab.multistat.header.cluster'}}</label> {{model.spec.clusterIP}}</div>
|
||||||
<div class="col-flex"><label>Balancer IP:</label> {{default-str model.spec.loadBalancerIP default="None"}}</div>
|
<div class="col-flex"><label>{{t 'k8sTab.multistat.header.balancer'}}</label> {{default-str model.spec.loadBalancerIP default="None"}}</div>
|
||||||
<div class="col-flex"><label>Session Affinity:</label> {{model.spec.sessionAffinity}}</div>
|
<div class="col-flex"><label>{{t 'k8sTab.multistat.header.session'}}</label> {{model.spec.sessionAffinity}}</div>
|
||||||
<div class="col-flex">
|
<div class="col-flex">
|
||||||
<label>External IPs:</label>
|
<label>{{t 'k8sTab.multistat.header.external'}}</label>
|
||||||
{{#each model.spec.externalIPs as |ip index|}}
|
{{#each model.spec.externalIPs as |ip index|}}
|
||||||
{{if (eq index 0) '' ','}}{{ip}}
|
{{if (eq index 0) '' ','}}{{ip}}
|
||||||
{{else}}
|
{{else}}
|
||||||
None
|
{{t 'generic.none'}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-flex">
|
<div class="col-flex">
|
||||||
<label>Selectors:</label>
|
<label>{{t 'k8sTab.multistat.header.selectors'}}</label>
|
||||||
{{#each model.selectorsAsArray as |sel|}}
|
{{#each model.selectorsAsArray as |sel|}}
|
||||||
<span class="badge badge-default">{{sel.label}}={{sel.value}}</span>
|
<span class="badge badge-default">{{sel.label}}={{sel.value}}</span>
|
||||||
{{else}}
|
{{else}}
|
||||||
None
|
{{t 'generic.none'}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -34,9 +34,9 @@
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<ul class="nav nav-tabs nav-tabs-well" role="tablist">
|
<ul class="nav nav-tabs nav-tabs-well" role="tablist">
|
||||||
<li role="tab" class="tab" data-section="pods" {{action "selectTab" "pods" target="view"}}><a href="#">Pods</a></li>
|
<li role="tab" class="tab" data-section="pods" {{action "selectTab" "pods" target="view"}}><a href="#">{{t 'k8sTab.navTabs.pods'}}</a></li>
|
||||||
<li role="tab" class="tab" data-section="labels" {{action "selectTab" "labels" target="view"}}><a href="#">Labels</a></li>
|
<li role="tab" class="tab" data-section="labels" {{action "selectTab" "labels" target="view"}}><a href="#">{{t 'k8sTab.navTabs.labels'}}</a></li>
|
||||||
<li role="tab" class="tab" data-section="ports" {{action "selectTab" "ports" target="view"}}><a href="#">Ports</a></li>
|
<li role="tab" class="tab" data-section="ports" {{action "selectTab" "ports" target="view"}}><a href="#">{{t 'k8sTab.navTabs.ports'}}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="horizontal-form well nav-well" role="tabpanel">
|
<div class="horizontal-form well nav-well" role="tabpanel">
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
<section class="header">
|
<section class="header">
|
||||||
<h1>Namespaces</h1>
|
<h1>{{t 'k8sTab.namespaces.header'}}</h1>
|
||||||
|
|
||||||
{{#link-to "k8s-tab.apply" (query-params kind="Namespace") classNames="btn btn-sm btn-primary"}}Add Namespace{{/link-to}}
|
{{#link-to "k8s-tab.apply" (query-params kind="Namespace") classNames="btn btn-sm btn-primary"}}{{t 'k8sTab.namespaces.linkTo'}}{{/link-to}}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="well instances">
|
<section class="well instances">
|
||||||
<table class="grid fixed" style="margin-bottom: 0;">
|
<table class="grid fixed" style="margin-bottom: 0;">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
{{sortable-th sortable=this action="changeSort" name="name"}}
|
{{sortable-th sortable=this action="changeSort" name="name" label='generic.name'}}
|
||||||
<th class="actions" width="85"> </th>
|
<th class="actions" width="85"> </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
{{k8s/ns-row model=ns}}
|
{{k8s/ns-row model=ns}}
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<tr><td colspan="5" class="text-center text-muted">You do not have any Namespaces yet.</td></tr>
|
<tr><td colspan="5" class="text-center text-muted">{{t 'k8sTab.namespaces.table.body.noData'}}</td></tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
<table class="grid fixed" style="margin-bottom: 0;">
|
<table class="grid fixed" style="margin-bottom: 0;">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
{{sortable-th sortable=this action="changeSort" name="state" width="125"}}
|
{{sortable-th sortable=this action="changeSort" name="state" width="125" label='generic.state'}}
|
||||||
{{sortable-th sortable=this action="changeSort" name="name"}}
|
{{sortable-th sortable=this action="changeSort" name="name" label='generic.name'}}
|
||||||
{{sortable-th sortable=this action="changeSort" name="ip" width="110" label="IP Address"}}
|
{{sortable-th sortable=this action="changeSort" name="ip" width="110" label="servicePage.containersTab.table.header.ipAddress"}}
|
||||||
{{sortable-th sortable=this action="changeSort" name="host"}}
|
{{sortable-th sortable=this action="changeSort" name="host" label="servicePage.containersTab.table.header.host"}}
|
||||||
{{sortable-th sortable=this action="changeSort" name="image" label="Image"}}
|
{{sortable-th sortable=this action="changeSort" name="image" label="servicePage.containersTab.table.header.image"}}
|
||||||
<th class="stats">Stats</th>
|
<th class="stats">{{t 'servicePage.containersTab.table.header.stats'}}</th>
|
||||||
<th class="actions" width="75"> </th>
|
<th class="actions" width="75"> </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
<label class="text-muted r-ml15">Links</label>
|
<label class="text-muted r-ml15">{{t 'servicePage.linksTab.header'}}</label>
|
||||||
<ul class="list-unstyled list-inline with-room">
|
<ul class="list-unstyled list-inline with-room">
|
||||||
{{#each model.consumedServicesWithNames as |link|}}
|
{{#each model.consumedServicesWithNames as |link|}}
|
||||||
<li>{{#link-to 'service' link.service.environmentId link.service.id}} {{link.service.name}} {{/link-to}}</li>
|
<li>{{#link-to 'service' link.service.environmentId link.service.id}} {{link.service.name}} {{/link-to}}</li>
|
||||||
{{else}}
|
{{else}}
|
||||||
<li class="text-muted">No Links</li>
|
<li class="text-muted">{{t 'servicePage.linksTab.noData'}}</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
<table class="grid fixed">
|
<table class="grid fixed">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th width="150">Port</th>
|
<th width="150">{{t 'servicePage.portsTab.table.header.port'}}</th>
|
||||||
<th>Host IP</th>
|
<th>{{t 'servicePage.portsTab.table.header.host'}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
@ -21,12 +21,12 @@
|
||||||
{{else}}
|
{{else}}
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
<div class="text-muted text-center">This Service has no ports.</div>
|
<div class="text-muted text-center">{{t 'servicePage.portsTab.table.body.noData'}}</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="text-center text-muted">Ports are only available while the service is Active.</div>
|
<div class="text-center text-muted">{{t 'servicePage.portsTab.notActive'}}</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,15 @@
|
||||||
<section class="header">
|
<section class="header">
|
||||||
<h1>Environments</h1>
|
<h1>{{t 'settingsPage.index.header'}}</h1>
|
||||||
|
|
||||||
{{#link-to "settings.projects.new" class="btn btn-sm btn-primary"}}Add Environment{{/link-to}}
|
{{#link-to "settings.projects.new" class="btn btn-sm btn-primary"}}{{t 'settingsPage.index.linkTo'}}{{/link-to}}
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<div class="well">
|
<div class="well">
|
||||||
<p>{{settings.appName}} supports grouping resources into multiple <b>environments</b>. Each one gets its own set of services and infrastructure resources, and is owned by one or more GitHub users, teams or organizations.</p>
|
{{format-html-message 'settingsPage.index.subtext' appName=settings.appName}}
|
||||||
<p>For example, you might create separate "dev", "test", and "production" environments to keep things isolated from each other, and give "dev" access to your entire organization but restrict the "production" environment to a smaller team.</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#unless projects.current}}
|
{{#unless projects.current}}
|
||||||
<div class="alert alert-danger"><i class="icon icon-alert"></i> There are no active environments. You will need to create or activate one before you can do anything else.</div>
|
<div class="alert alert-danger"><i class="icon icon-alert"></i> {{t 'settingsPage.index.alert'}}</div>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
@ -18,11 +17,11 @@
|
||||||
<table class="grid fixed" style="margin-bottom: 0">
|
<table class="grid fixed" style="margin-bottom: 0">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
{{sortable-th sortable=this action="changeSort" name="state" width="125"}}
|
{{sortable-th sortable=this action="changeSort" name="state" label='generic.state' width="125"}}
|
||||||
{{sortable-th sortable=this action="changeSort" name="name"}}
|
{{sortable-th sortable=this action="changeSort" name="name" label='generic.name'}}
|
||||||
{{sortable-th sortable=this action="changeSort" name="description"}}
|
{{sortable-th sortable=this action="changeSort" name="description" label='generic.description'}}
|
||||||
{{sortable-th sortable=this action="changeSort" name="orchestration"}}
|
{{sortable-th sortable=this action="changeSort" name="orchestration" label='settingsPage.index.table.header.orchestration'}}
|
||||||
<th width="80">Default</th>
|
<th width="80">{{t 'generic.default'}}</th>
|
||||||
<th width="75"> </th>
|
<th width="75"> </th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
@ -30,7 +29,7 @@
|
||||||
{{#each arranged as |p|}}
|
{{#each arranged as |p|}}
|
||||||
{{project-row model=p}}
|
{{project-row model=p}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<tr><td colspan="5" class="text-center text-muted">You don't have any environments yet.</td></tr>
|
<tr><td colspan="5" class="text-center text-muted">{{t 'settingsPage.index.table.body.noData'}}</td></tr>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -222,7 +222,7 @@ HEADER {
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 8px;
|
border-width: 8px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: -16px;
|
right: -15px;
|
||||||
top: 33%;
|
top: 33%;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,9 @@ generic:
|
||||||
remove: Remove
|
remove: Remove
|
||||||
state: State
|
state: State
|
||||||
unknown: Unknown
|
unknown: Unknown
|
||||||
|
description: Description
|
||||||
|
default: Default
|
||||||
|
type: Type
|
||||||
|
|
||||||
##############################
|
##############################
|
||||||
# Routes
|
# Routes
|
||||||
|
|
@ -84,6 +87,7 @@ auditLogsPage:
|
||||||
placeholder: Event Type
|
placeholder: Event Type
|
||||||
resourceType:
|
resourceType:
|
||||||
placeholder: "Resource Type:"
|
placeholder: "Resource Type:"
|
||||||
|
dropdownPlaceholder: 'Select a Resource Type:'
|
||||||
dropdownList:
|
dropdownList:
|
||||||
resourceId:
|
resourceId:
|
||||||
placeholder: Resource ID
|
placeholder: Resource ID
|
||||||
|
|
@ -91,6 +95,7 @@ auditLogsPage:
|
||||||
placeholder: Request IP
|
placeholder: Request IP
|
||||||
authType:
|
authType:
|
||||||
placeholder: "Auth Type:"
|
placeholder: "Auth Type:"
|
||||||
|
dropdownPlaceholder: 'Select an Auth Type:'
|
||||||
dropdownList:
|
dropdownList:
|
||||||
clearButtonText: Clear All
|
clearButtonText: Clear All
|
||||||
searchButtonText: Search
|
searchButtonText: Search
|
||||||
|
|
@ -216,6 +221,23 @@ authPage:
|
||||||
pre: Enable Local Auth
|
pre: Enable Local Auth
|
||||||
post: 'Enabling...'
|
post: 'Enabling...'
|
||||||
|
|
||||||
|
|
||||||
|
catalogPage:
|
||||||
|
index:
|
||||||
|
header: 'Catalog:'
|
||||||
|
search:
|
||||||
|
placeholder: Search...
|
||||||
|
certified: Certified
|
||||||
|
noData:
|
||||||
|
singular: There are no compatible templates.
|
||||||
|
plural: There are no compatible templates in this catalog.
|
||||||
|
|
||||||
|
|
||||||
|
consolePage:
|
||||||
|
header: 'Shell:'
|
||||||
|
closeButton: Close
|
||||||
|
|
||||||
|
|
||||||
certificatesPage:
|
certificatesPage:
|
||||||
table:
|
table:
|
||||||
cn: Domain Name
|
cn: Domain Name
|
||||||
|
|
@ -340,6 +362,13 @@ containerSubpod:
|
||||||
childContainers: Containers
|
childContainers: Containers
|
||||||
childSidekicks: Sidekicks
|
childSidekicks: Sidekicks
|
||||||
|
|
||||||
|
failWhalePage:
|
||||||
|
header: Error
|
||||||
|
reloadButton: |
|
||||||
|
<a href="#" onclick="window.location.href = window.location.href; return false;">Reload</a> to try again or
|
||||||
|
logoutButton: log out
|
||||||
|
|
||||||
|
|
||||||
haPage:
|
haPage:
|
||||||
header:
|
header:
|
||||||
enabled: 'High Availability is <b class="text-success">enabled</b>'
|
enabled: 'High Availability is <b class="text-success">enabled</b>'
|
||||||
|
|
@ -474,7 +503,7 @@ helpPage:
|
||||||
content:
|
content:
|
||||||
paragraph1: |
|
paragraph1: |
|
||||||
{appName} is an open source software platform that implements a purpose-built infrastructure for running containers in production. Docker containers, as an increasingly popular application workload, create new requirements in infrastructure services such as networking, storage, load balancer, security, service discovery, and resource management.
|
{appName} is an open source software platform that implements a purpose-built infrastructure for running containers in production. Docker containers, as an increasingly popular application workload, create new requirements in infrastructure services such as networking, storage, load balancer, security, service discovery, and resource management.
|
||||||
graphic8:
|
graphic1:
|
||||||
text: Find a bug?
|
text: Find a bug?
|
||||||
link: File an issue on GitHub.
|
link: File an issue on GitHub.
|
||||||
graphic2:
|
graphic2:
|
||||||
|
|
@ -578,6 +607,98 @@ hostsPage:
|
||||||
body:
|
body:
|
||||||
noData: This host does not have any volumes.
|
noData: This host does not have any volumes.
|
||||||
|
|
||||||
|
|
||||||
|
k8sTab:
|
||||||
|
kubectl:
|
||||||
|
header: kubectl
|
||||||
|
stepOne:
|
||||||
|
generateConfigText: |
|
||||||
|
To use <a href="http://kubernetes.io/docs/getting-started-guides/docker/#download-kubectl" target="_blank">kubectl</a> (v1.2+ only) on your workstation, click the button to generate an API key and config file:
|
||||||
|
generateButton: Generate Config
|
||||||
|
stepTwo:
|
||||||
|
progress: Generating...
|
||||||
|
stepThree:
|
||||||
|
helpText: |
|
||||||
|
Put this into <code>~/.kube/config</code>:
|
||||||
|
downloadText: |
|
||||||
|
Then <a href="http://kubernetes.io/docs/getting-started-guides/docker/#download-kubectl" target="_blank">download</a> (if needed) and run <code>kubectl</code>
|
||||||
|
shell:
|
||||||
|
helpText: |
|
||||||
|
Or use this handy shell to directly execute <code>kubectl</code> commands:
|
||||||
|
multistat:
|
||||||
|
header:
|
||||||
|
type: 'Type:'
|
||||||
|
cluster: 'Cluster IP:'
|
||||||
|
balancer: 'Balancer IP:'
|
||||||
|
session: 'Session Affinity:'
|
||||||
|
external: 'External IPs:'
|
||||||
|
selectors: 'Selectors'
|
||||||
|
navTabs:
|
||||||
|
pods: Pods
|
||||||
|
labels: Labels
|
||||||
|
ports: Ports
|
||||||
|
namespace:
|
||||||
|
pods:
|
||||||
|
index:
|
||||||
|
header: Pods
|
||||||
|
linkTo: Add Pod
|
||||||
|
table:
|
||||||
|
header:
|
||||||
|
status: Status
|
||||||
|
containers: Containers
|
||||||
|
host: Host IP
|
||||||
|
pod: Pod IP
|
||||||
|
body:
|
||||||
|
noData: You do not have any Pods yet.
|
||||||
|
pod:
|
||||||
|
header:
|
||||||
|
linkTo: 'Pod:'
|
||||||
|
type:
|
||||||
|
header: 'Type:'
|
||||||
|
navTabs:
|
||||||
|
containers: Containers
|
||||||
|
rcs:
|
||||||
|
index:
|
||||||
|
header: RCs
|
||||||
|
linkTo: Add RC
|
||||||
|
table:
|
||||||
|
header:
|
||||||
|
replicas: Replicas
|
||||||
|
selectors: Selectors
|
||||||
|
containers: Containers
|
||||||
|
body:
|
||||||
|
noData: You do not have any Replication Controllers yet.
|
||||||
|
rc:
|
||||||
|
header: 'RC:'
|
||||||
|
navTabs:
|
||||||
|
pods: Pods
|
||||||
|
labels: Labels
|
||||||
|
ports: Ports
|
||||||
|
services:
|
||||||
|
header: Services
|
||||||
|
linkTo: Add Service
|
||||||
|
table:
|
||||||
|
header:
|
||||||
|
cluster: Cluster IP
|
||||||
|
pods: Pods
|
||||||
|
ports: Ports
|
||||||
|
selectors: Selectors
|
||||||
|
body:
|
||||||
|
noData: You do not have any Services yet.
|
||||||
|
service:
|
||||||
|
index:
|
||||||
|
header: 'Service:'
|
||||||
|
namespaces:
|
||||||
|
header: Namespaces
|
||||||
|
linkTo: Add Namespace
|
||||||
|
table:
|
||||||
|
body:
|
||||||
|
noData: You do not have any Namespaces yet.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
loginPage:
|
loginPage:
|
||||||
greeting: "Howdy!<br>Welcome to {appName}"
|
greeting: "Howdy!<br>Welcome to {appName}"
|
||||||
githubMessage: "{appName} uses GitHub to manage accounts and teams. Click the button below to log in and give us read-only access to your basic GitHub account information."
|
githubMessage: "{appName} uses GitHub to manage accounts and teams. Click the button below to log in and give us read-only access to your basic GitHub account information."
|
||||||
|
|
@ -613,6 +734,16 @@ registriesPage:
|
||||||
|
|
||||||
|
|
||||||
servicePage:
|
servicePage:
|
||||||
|
containersTab:
|
||||||
|
table:
|
||||||
|
header:
|
||||||
|
ipAddress: IP Address
|
||||||
|
host: Host
|
||||||
|
image: Image
|
||||||
|
stats: Stats
|
||||||
|
linksTab:
|
||||||
|
header: Links
|
||||||
|
noData: No Links
|
||||||
new:
|
new:
|
||||||
form:
|
form:
|
||||||
name:
|
name:
|
||||||
|
|
@ -631,6 +762,31 @@ servicePage:
|
||||||
placeholder: e.g. website
|
placeholder: e.g. website
|
||||||
description:
|
description:
|
||||||
placeholder: e.g. Balancer for mycompany.com
|
placeholder: e.g. Balancer for mycompany.com
|
||||||
|
portsTab:
|
||||||
|
table:
|
||||||
|
header:
|
||||||
|
port: Port
|
||||||
|
host: Host IP
|
||||||
|
body:
|
||||||
|
noData: This Service has no ports.
|
||||||
|
notActive: Ports are only available while the service is Active.
|
||||||
|
|
||||||
|
|
||||||
|
settingsPage:
|
||||||
|
index:
|
||||||
|
header: Environments
|
||||||
|
linkTo: Add Environment
|
||||||
|
subtext: |
|
||||||
|
<p>{appName} supports grouping resources into multiple <b>environments</b>. Each one gets its own set of services and infrastructure resources, and is owned by one or more GitHub users, teams or organizations.</p>
|
||||||
|
<p>For example, you might create separate "dev", "test", and "production" environments to keep things isolated from each other, and give "dev" access to your entire organization but restrict the "production" environment to a smaller team.</p>
|
||||||
|
|
||||||
|
alert: There are no active environments. You will need to create or activate one before you can do anything else.
|
||||||
|
table:
|
||||||
|
header:
|
||||||
|
orchestration: Orchestration
|
||||||
|
body:
|
||||||
|
noData: You don't have any environments yet.
|
||||||
|
|
||||||
|
|
||||||
stacksPage:
|
stacksPage:
|
||||||
header:
|
header:
|
||||||
|
|
@ -1307,6 +1463,15 @@ hostSettings:
|
||||||
alert: |
|
alert: |
|
||||||
Are you sure all the hosts you will create will be able to reach <code>{activeValue}</code> ?<br/>It looks like a private IP or local network.
|
Are you sure all the hosts you will create will be able to reach <code>{activeValue}</code> ?<br/>It looks like a private IP or local network.
|
||||||
|
|
||||||
|
machine:
|
||||||
|
driverAzure:
|
||||||
|
accountAccess:
|
||||||
|
subscriptionCert:
|
||||||
|
placeholder: Your Azure subscription certificate
|
||||||
|
instance:
|
||||||
|
publishSettingsFile:
|
||||||
|
placeholder: Your Publish Settings file
|
||||||
|
|
||||||
schema:
|
schema:
|
||||||
inputCertificate:
|
inputCertificate:
|
||||||
prompt: Choose a Certificate...
|
prompt: Choose a Certificate...
|
||||||
|
|
@ -1319,6 +1484,12 @@ inputPassword:
|
||||||
inputTextFile:
|
inputTextFile:
|
||||||
tooltip: Read from a file
|
tooltip: Read from a file
|
||||||
|
|
||||||
|
labelsSection:
|
||||||
|
kind: Kind
|
||||||
|
key: Key
|
||||||
|
value: Value
|
||||||
|
noData: No labels
|
||||||
|
|
||||||
loginGithub:
|
loginGithub:
|
||||||
buttonText: Authenticate with GitHub
|
buttonText: Authenticate with GitHub
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue