mirror of https://github.com/apache/cloudstack.git
Projects UI localization
-Dashboard -New project wizard -Misc. missing localized strings
This commit is contained in:
parent
667d8188e2
commit
34999a25ae
|
|
@ -1,3 +1,31 @@
|
|||
label.manage.resources=Manage Resources
|
||||
label.port.forwarding.policies=Port forwarding policies
|
||||
label.load.balancing.policies=Load balancing policies
|
||||
label.networking.and.security=Networking and security
|
||||
label.bandwidth=Bandwidth
|
||||
label.virtual.machines=Virtual machines
|
||||
label.compute.and.storage=Compute and Storage
|
||||
label.task.completed=Task completed
|
||||
label.update.project.resources=Update project resources
|
||||
label.remove.project.account=Remove project account
|
||||
label.item.listing=Item listing
|
||||
message.select.item=Please select an item.
|
||||
label.removing=Removing
|
||||
label.invite=Invite
|
||||
label.add.by=Add by
|
||||
label.max.vms=Max. user VMs
|
||||
label.max.public.ips=Max. public IPs
|
||||
label.max.volumes=Max. volumes
|
||||
label.max.snapshots=Max. snapshots
|
||||
label.max.templates=Max. templates
|
||||
label.project.dashboard=Project dashboard
|
||||
label.remind.later=Remind me later
|
||||
label.invited.accounts=Invited accounts
|
||||
label.invite.to=Invite to
|
||||
label.add.accounts.to=Add accounts to
|
||||
label.add.accounts=Add accounts
|
||||
label.project.name=Project name
|
||||
label.create.project=Create project
|
||||
label.networks=Networks
|
||||
label.launch.vm=Launch VM
|
||||
label.new.vm=New VM
|
||||
|
|
|
|||
|
|
@ -1,4 +1,32 @@
|
|||
#cloudstack 3.0 (begin) ********************************************************************************************
|
||||
label.manage.resources=リソースを管理する
|
||||
label.port.forwarding.policies=ポートフォワーディングのポリシー
|
||||
label.load.balancing.policies=バランサポリシーをロードする
|
||||
label.networking.and.security=ネットワークとセキュリティ
|
||||
label.bandwidth=帯域幅
|
||||
label.virtual.machines=仮想マシン
|
||||
label.compute.and.storage=コンピューティングとストレージ
|
||||
label.task.completed=タスクが完了する
|
||||
label.update.project.resources=プロジェクトリソースを更新
|
||||
label.remove.project.account=プロジェクト·アカウントを削除します。
|
||||
label.item.listing=アイテムリスト
|
||||
message.select.item=項目を選択してください。
|
||||
label.removing=削除する
|
||||
label.invite=招待
|
||||
label.add.by=して追加
|
||||
label.max.vms=最大ユーザーのVM
|
||||
label.max.public.ips=最大のパブリックIP
|
||||
label.max.volumes=最大ボリューム
|
||||
label.max.snapshots=最大スナップショット
|
||||
label.max.templates=最大のテンプレート
|
||||
label.project.dashboard=プロジェクトダッシュボード
|
||||
label.remind.later=私に後で通知する
|
||||
label.invited.accounts=招待アカウント
|
||||
label.invite.to=への招待
|
||||
label.add.accounts.to=にアカウントを追加します。
|
||||
label.add.accounts=アカウントを追加する
|
||||
label.project.name=プロジェクト名
|
||||
label.create.project=プロジェクトを作成します。
|
||||
label.networks=ネットワーク
|
||||
label.launch.vm=VMを起動します。
|
||||
label.new.vm=新しいVM
|
||||
|
|
|
|||
57
ui/index.jsp
57
ui/index.jsp
|
|
@ -757,41 +757,41 @@
|
|||
<div class="compute-and-storage">
|
||||
<div class="system-dashboard">
|
||||
<div class="head">
|
||||
<span>Compute and Storage</span>
|
||||
<span><fmt:message key="label.compute.and.storage"/></span>
|
||||
</div>
|
||||
<ul class="status_box good">
|
||||
<!-- Virtual Machines -->
|
||||
<li class="block virtual-machines">
|
||||
<span class="header">Virtual Machines</span>
|
||||
<span class="header"><fmt:message key="label.virtual.machines"/></span>
|
||||
<div class="icon"></div>
|
||||
<div class="overview">
|
||||
<!-- Running -->
|
||||
<div class="overview-item running">
|
||||
<div class="total" data-item="runningInstances">5</div>
|
||||
<div class="label">Running</div>
|
||||
<div class="label"><fmt:message key="state.Running"/></div>
|
||||
</div>
|
||||
|
||||
<!-- Stopped -->
|
||||
<div class="overview-item stopped">
|
||||
<div class="total" data-item="stoppedInstances">10</div>
|
||||
<div class="label">Stopped</div>
|
||||
<div class="label"><fmt:message key="state.Stopped"/></div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<!-- Storage -->
|
||||
<li class="block storage">
|
||||
<span class="header">Storage</span>
|
||||
<span class="header"><fmt:message key="label.storage"/></span>
|
||||
<div class="icon"></div>
|
||||
<div class="overview">
|
||||
<div class="total" data-item="totalVolumes">10</div>
|
||||
<div class="label">volumes</div>
|
||||
<div class="label"><fmt:message key="label.volumes"/></div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<!-- Bandwidth -->
|
||||
<li class="block storage bandwidth">
|
||||
<span class="header">Bandwidth</span>
|
||||
<span class="header"><fmt:message key="label.bandwidth"/></span>
|
||||
<div class="icon"></div>
|
||||
<div class="overview">
|
||||
<div class="total" data-item="totalBandwidth">200</div>
|
||||
|
|
@ -806,7 +806,7 @@
|
|||
<div class="users">
|
||||
<div class="system-dashboard">
|
||||
<div class="head">
|
||||
<span>Users</span>
|
||||
<span><fmt:message key="label.users"/></span>
|
||||
</div>
|
||||
<ul class="status_box good" data-item="users">
|
||||
<li class="block user">
|
||||
|
|
@ -822,25 +822,25 @@
|
|||
<!-- Networking and security -->
|
||||
<div class="info-box networking-and-security">
|
||||
<div class="title">
|
||||
<span>Networking and Security</span>
|
||||
<span><fmt:message key="label.networking.and.security"/></span>
|
||||
</div>
|
||||
<ul>
|
||||
<!-- IP addresses -->
|
||||
<li class="odd">
|
||||
<div class="total"><span data-item="totalIPAddresses"></span></div>
|
||||
<div class="desc">IP addresses</div>
|
||||
<div class="desc"><fmt:message key="label.menu.ipaddresses"/></div>
|
||||
</li>
|
||||
|
||||
<!-- Load balancing policies -->
|
||||
<li>
|
||||
<div class="total"><span data-item="totalLoadBalancers"></span></div>
|
||||
<div class="desc">Load balancing policies</div>
|
||||
<div class="desc"><fmt:message key="label.load.balancing.policies"/></div>
|
||||
</li>
|
||||
|
||||
<!-- Port forwarding policies -->
|
||||
<li class="odd">
|
||||
<div class="total"><span data-item="totalPortForwards"></span></div>
|
||||
<div class="desc">Port forwarding policies</div>
|
||||
<div class="desc"><fmt:message key="label.port.forwarding.policies"/></div>
|
||||
</li>
|
||||
|
||||
<!-- Blank -->
|
||||
|
|
@ -854,7 +854,7 @@
|
|||
<div class="total"></div>
|
||||
<div class="desc">
|
||||
<div class="button manage-resources">
|
||||
<span>Manage Resources</span>
|
||||
<span><fmt:message key="label.manage.resources"/></span>
|
||||
<span class="arrow"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -865,9 +865,9 @@
|
|||
<!-- Events -->
|
||||
<div class="info-box events">
|
||||
<div class="title">
|
||||
<span>Events</span>
|
||||
<span><fmt:message key="label.menu.events"/></span>
|
||||
<div class="button view-all">
|
||||
<span>View all</span>
|
||||
<span><fmt:message key="label.view.all"/></span>
|
||||
<span class="arrow"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1592,6 +1592,33 @@
|
|||
|
||||
<script language="javascript">
|
||||
dictionary = {
|
||||
'label.port.forwarding.policies': '<fmt:message key="label.port.forwarding.policies"/>',
|
||||
'label.load.balancing.policies': '<fmt:message key="label.load.balancing.policies"/>',
|
||||
'label.networking.and.security': '<fmt:message key="label.networking.and.security"/>',
|
||||
'label.bandwidth': '<fmt:message key="label.bandwidth"/>',
|
||||
'label.virtual.machines': '<fmt:message key="label.virtual.machines"/>',
|
||||
'label.compute.and.storage': '<fmt:message key="label.compute.and.storage"/>',
|
||||
'label.task.completed': '<fmt:message key="label.task.completed"/>',
|
||||
'label.update.project.resources': '<fmt:message key="label.update.project.resources"/>',
|
||||
'label.remove.project.account': '<fmt:message key="label.remove.project.account"/>',
|
||||
'label.item.listing': '<fmt:message key="label.item.listing"/>',
|
||||
'message.select.item': '<fmt:message key="message.select.item"/>',
|
||||
'label.removing': '<fmt:message key="label.removing"/>',
|
||||
'label.invite': '<fmt:message key="label.invite"/>',
|
||||
'label.project.dashboard': '<fmt:message key="label.project.dashboard"/>',
|
||||
'label.add.by': '<fmt:message key="label.add.by"/>',
|
||||
'label.max.vms': '<fmt:message key="label.max.vms"/>',
|
||||
'label.max.public.ips': '<fmt:message key="label.max.public.ips"/>',
|
||||
'label.max.volumes': '<fmt:message key="label.max.volumes"/>',
|
||||
'label.max.snapshots': '<fmt:message key="label.max.snapshots"/>',
|
||||
'label.max.templates': '<fmt:message key="label.max.templates"/>',
|
||||
'label.remind.later': '<fmt:message key="label.remind.later"/>',
|
||||
'label.invited.accounts': '<fmt:message key="label.invited.accounts"/>',
|
||||
'label.add.accounts.to': '<fmt:message key="label.add.accounts.to"/>',
|
||||
'label.invite.to': '<fmt:message key="label.invite.to"/>',
|
||||
'label.add.accounts': '<fmt:message key="label.add.accounts"/>',
|
||||
'label.project.name': '<fmt:message key="label.project.name"/>',
|
||||
'label.create.project': '<fmt:message key="label.create.project"/>',
|
||||
'label.networks': '<fmt:message key="label.networks"/>',
|
||||
'label.launch.vm': '<fmt:message key="label.launch.vm"/>',
|
||||
'label.new.vm': '<fmt:message key="label.new.vm"/>',
|
||||
|
|
|
|||
|
|
@ -65,28 +65,28 @@
|
|||
var resourceMap = {
|
||||
0: {
|
||||
id: 'user_vm',
|
||||
label: 'Max. User VMs'
|
||||
label: 'label.max.vms'
|
||||
},
|
||||
1: {
|
||||
id: 'public_ip',
|
||||
label: 'Max. Public IPs'
|
||||
label: 'label.max.public.ips'
|
||||
},
|
||||
2: {
|
||||
id: 'volume',
|
||||
label: 'Max. Volumes'
|
||||
label: 'label.max.volumes'
|
||||
},
|
||||
3: {
|
||||
id: 'snapshot',
|
||||
label: 'Max. Snapshots'
|
||||
label: 'label.max.snapshots'
|
||||
},
|
||||
4: {
|
||||
id: 'template',
|
||||
label: 'Max. Templates'
|
||||
label: 'label.max.templates'
|
||||
}
|
||||
};
|
||||
return {
|
||||
id: resourceMap[resource.resourcetype].id,
|
||||
label: resourceMap[resource.resourcetype].label,
|
||||
label: _l(resourceMap[resource.resourcetype].label),
|
||||
type: resource.resourcetype,
|
||||
value: resource.max
|
||||
};
|
||||
|
|
@ -281,13 +281,13 @@
|
|||
noHeaderActionsColumn: true,
|
||||
ignoreEmptyFields: true,
|
||||
fields: {
|
||||
'email': { edit: true, label: 'E-mail' },
|
||||
'account': { edit: true, label: 'Account' },
|
||||
'state': { edit: 'ignore', label: 'Status' },
|
||||
'email': { edit: true, label: 'label.email' },
|
||||
'account': { edit: true, label: 'label.account' },
|
||||
'state': { edit: 'ignore', label: 'label.status' },
|
||||
'add-user': { addButton: true, label: '' }
|
||||
},
|
||||
add: {
|
||||
label: 'Invite',
|
||||
label: 'label.invite',
|
||||
action: function(args) {
|
||||
$.ajax({
|
||||
url: createURL('addAccountToProject', { ignoreProject: true }),
|
||||
|
|
@ -542,7 +542,7 @@
|
|||
title: 'label.projects',
|
||||
id: 'projects',
|
||||
sectionSelect: {
|
||||
label: 'Select view'
|
||||
label: 'label.select-view'
|
||||
},
|
||||
sections: {
|
||||
projects: {
|
||||
|
|
@ -752,7 +752,7 @@
|
|||
},
|
||||
tabs: {
|
||||
details: {
|
||||
title: 'Details',
|
||||
title: 'label.details',
|
||||
fields: [
|
||||
{
|
||||
name: { label: 'label.name' }
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
$multi.prepend(
|
||||
$('<div>').addClass('add-by')
|
||||
.append($('<span>').html('Add by:'))
|
||||
.append($('<span>').html(_l('label.add.by') + ':'))
|
||||
.append(
|
||||
$('<div>').addClass('selection')
|
||||
.append(
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
return true;
|
||||
}).click()
|
||||
)
|
||||
.append($('<label>').html('Account'))
|
||||
.append($('<label>').html(_l('label.account')))
|
||||
.append(
|
||||
$('<input>').attr({
|
||||
type: 'radio',
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
return true;
|
||||
})
|
||||
)
|
||||
.append($('<label>').html('E-mail'))
|
||||
.append($('<label>').html(_l('label.email')))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
@ -63,7 +63,7 @@
|
|||
dashboardTabs: {
|
||||
overview: function() {
|
||||
var $dashboard = $('#template').find('.project-dashboard-view').clone();
|
||||
$dashboard.data('tab-title', 'Dashboard');
|
||||
$dashboard.data('tab-title', _l('label.menu.dashboard'));
|
||||
|
||||
var getData = function() {
|
||||
// Populate data
|
||||
|
|
@ -127,21 +127,21 @@
|
|||
},
|
||||
|
||||
users: function() {
|
||||
return $('<div>').addClass('management').data('tab-title', 'Accounts');
|
||||
return $('<div>').addClass('management').data('tab-title', _l('label.menu.accounts'));
|
||||
},
|
||||
|
||||
invitations: function() {
|
||||
return $('<div>').addClass('management-invite').data('tab-title', 'Invitations');
|
||||
return $('<div>').addClass('management-invite').data('tab-title', _l('label.invitations'));
|
||||
},
|
||||
|
||||
resources: function(options) {
|
||||
if (!options) options = {};
|
||||
|
||||
var $resources = $('<div>').addClass('resources').data('tab-title', 'Resources');
|
||||
var $resources = $('<div>').addClass('resources').data('tab-title', _l('label.resources'));
|
||||
var $form = $('<form>');
|
||||
var $submit = $('<input>').attr({
|
||||
type: 'submit'
|
||||
}).val('Apply');
|
||||
}).val(_l('label.apply'));
|
||||
|
||||
cloudStack.projects.resourceManagement.dataProvider({
|
||||
response: {
|
||||
|
|
@ -177,7 +177,7 @@
|
|||
$loading.remove();
|
||||
$('.notifications').notifications('add', {
|
||||
section: 'dashboard',
|
||||
desc: 'Updated project resources',
|
||||
desc: 'label.update.project.resources',
|
||||
interval: 1000,
|
||||
poll: function(args) {
|
||||
args.complete();
|
||||
|
|
@ -281,24 +281,24 @@
|
|||
*/
|
||||
newProjectForm: function() {
|
||||
var $newProject = $('<div>').addClass('new-project');
|
||||
$newProject.append($('<div>').addClass('title').html('Create a project'));
|
||||
$newProject.append($('<div>').addClass('title').html(_l('label.create.project')));
|
||||
|
||||
var $form = $('<form>');
|
||||
var $formDesc = $('<div>').addClass('form-desc');
|
||||
var $projectName = $('<div>').addClass('field name')
|
||||
.append($('<label>').attr('for', 'project-name').html('Project name'))
|
||||
.append($('<label>').attr('for', 'project-name').html(_l('label.project.name')))
|
||||
.append($('<input>').addClass('required').attr({
|
||||
type: 'text',
|
||||
name: 'project-name'
|
||||
}));
|
||||
var $projectDesc = $('<div>').addClass('field desc')
|
||||
.append($('<label>').attr('for', 'project-desc').html('Display text'))
|
||||
.append($('<label>').attr('for', 'project-desc').html(_l('label.display.text')))
|
||||
.append($('<input>').attr({
|
||||
type: 'text',
|
||||
name: 'project-display-text'
|
||||
}));
|
||||
var $submit = $('<input>').attr({ type: 'submit' }).val('Create Project');
|
||||
var $cancel = $('<div>').addClass('button cancel').html('Cancel');
|
||||
var $submit = $('<input>').attr({ type: 'submit' }).val(_l('label.create.project'));
|
||||
var $cancel = $('<div>').addClass('button cancel').html(_l('label.cancel'));
|
||||
var $loading = $('<div>').addClass('loading-overlay');
|
||||
|
||||
// Form events/validation
|
||||
|
|
@ -339,7 +339,7 @@
|
|||
);
|
||||
|
||||
var $buttons = $('<div>').addClass('buttons');
|
||||
var $addAccountButton = $('<div>').addClass('button confirm').html('Add Accounts');
|
||||
var $addAccountButton = $('<div>').addClass('button confirm').html(_l('label.add.accounts'));
|
||||
|
||||
$addAccountButton.click(function() {
|
||||
// Show add user form
|
||||
|
|
@ -350,15 +350,15 @@
|
|||
}),
|
||||
useInvites: cloudStack.projects.requireInvitation()
|
||||
});
|
||||
var $nextButton = $('<div>').addClass('button confirm next').html('Next');
|
||||
var $nextButton = $('<div>').addClass('button confirm next').html(_l('label.next'));
|
||||
|
||||
$newProject.find('.title').html(
|
||||
cloudStack.projects.requireInvitation() ?
|
||||
'Invite to ' + args.data.name :
|
||||
'Add Accounts to ' + args.data.name
|
||||
_l('label.invite.to') + ' ' + args.data.name :
|
||||
_l('label.add.accounts.to') + ' ' + args.data.name
|
||||
);
|
||||
$nextButton.appendTo($userManagement).click(function() {
|
||||
$newProject.find('.title').html('Review');
|
||||
$newProject.find('.title').html(_l('label.review'));
|
||||
$userManagement.replaceWith(function() {
|
||||
var $review = $('<div>').addClass('review');
|
||||
var $projectData = $('<div>').addClass('project-data');
|
||||
|
|
@ -384,7 +384,7 @@
|
|||
$('<li>').addClass('first').append(
|
||||
$('<a>').attr({ href: '#new-project-review-tabs-users'}).html(
|
||||
cloudStack.projects.requireInvitation() ?
|
||||
'Invitations' : 'Accounts'
|
||||
_l('label.invitations') : _l('label.accounts')
|
||||
)
|
||||
)
|
||||
);
|
||||
|
|
@ -393,7 +393,7 @@
|
|||
$ul.append(
|
||||
// Resources tab
|
||||
$('<li>').addClass('last').append(
|
||||
$('<a>').attr({ href: '#new-project-review-tabs-resouces'}).html('Resources')
|
||||
$('<a>').attr({ href: '#new-project-review-tabs-resouces'}).html(_l('label.resources'))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
@ -416,9 +416,9 @@
|
|||
id: 'project-accounts',
|
||||
disableInfiniteScrolling: true,
|
||||
fields: !cloudStack.projects.requireInvitation() ? {
|
||||
username: { label: 'Account' }
|
||||
username: { label: _l('label.account') }
|
||||
} : {
|
||||
account: { label: 'Invited Accounts'}
|
||||
account: { label: _l('label.invited.accounts') }
|
||||
},
|
||||
dataProvider: function(args) {
|
||||
setTimeout(function() {
|
||||
|
|
@ -439,7 +439,7 @@
|
|||
|
||||
// Save button
|
||||
var $saveButton = $nextButton.clone().appendTo($review);
|
||||
$saveButton.html('Save');
|
||||
$saveButton.html(_l('label.save'));
|
||||
$saveButton.click(function() {
|
||||
$('#new-project-review-tabs-resouces').find('form').submit();
|
||||
$('.ui-dialog, .overlay').remove();
|
||||
|
|
@ -456,7 +456,7 @@
|
|||
|
||||
$(':ui-dialog').dialog('option', 'position', 'center');
|
||||
});
|
||||
$laterButton.html('Close').appendTo($userManagement);
|
||||
$laterButton.html(_l('label.close')).appendTo($userManagement);
|
||||
|
||||
return $userManagement;
|
||||
});
|
||||
|
|
@ -466,7 +466,7 @@
|
|||
return false;
|
||||
});
|
||||
|
||||
var $laterButton = $('<div>').addClass('button later').html('Remind me later');
|
||||
var $laterButton = $('<div>').addClass('button later').html(_l('label.remind.later'));
|
||||
$laterButton.click(function() {
|
||||
$(':ui-dialog, .overlay').remove();
|
||||
|
||||
|
|
@ -511,7 +511,7 @@
|
|||
var $selector = $('<div>').addClass('project-selector');
|
||||
var $toolbar = $('<div>').addClass('toolbar');
|
||||
var $list = $('<div>').addClass('listing')
|
||||
.append($('<div>').addClass('header').html('Name'))
|
||||
.append($('<div>').addClass('header').html(_l('label.name')))
|
||||
.append($('<div>').addClass('data').append($('<ul>')));
|
||||
var $searchForm = $('<form>');
|
||||
var $search = $('<div>').appendTo($toolbar).addClass('search')
|
||||
|
|
@ -661,7 +661,7 @@
|
|||
|
||||
$browser.cloudBrowser('removeAllPanels');
|
||||
$browser.cloudBrowser('addPanel', {
|
||||
title: 'Project Dashboard',
|
||||
title: _l('label.project.dashboard'),
|
||||
complete: function($newPanel) {
|
||||
$('#navigation li.dashboard').addClass('active').siblings().removeClass('active');
|
||||
$newPanel.append(pageElems.dashboard);
|
||||
|
|
|
|||
Loading…
Reference in New Issue