(js) Localize mailbox names everywhere

Fixes #4041
Francis Lachapelle 2017-02-19 21:13:44 -05:00
parent fd13fd632c
commit 48b2008da4
7 changed files with 49 additions and 39 deletions

3
NEWS
View File

@ -10,8 +10,7 @@ Enhancements
Bug fixes
- [web] fixed ACL editor in admin module for Safari (#4036)
- [web] fixed function call when removing contact category (#4039)
- [web] localized inbox label (#4040)
- [web] localized mailbox names everywhere (#4040, #4041)
3.2.7 (2017-02-14)
------------------

View File

@ -32,13 +32,13 @@
ng-repeat="folder in subscriptions.account.$flattenMailboxes({all: true}) | filter:subscriptions.filter"
md-item-size="48">
<div ng-class="'sg-child-level-' + folder.level">
<md-icon>{{subscriptions.metadataForFolder(folder).icon}}</md-icon>
<md-icon>{{folder.$icon}}</md-icon>
</div>
<p class="sg-item-name">
{{subscriptions.metadataForFolder(folder).name}}
{{folder.$displayName}}
</p>
<md-checkbox class="md-secondary"
ng-disabled="subscriptions.metadataForFolder(folder).special"
ng-disabled="folder.$isSpecial"
ng-model="folder.subscribed"
ng-change="folder.$updateSubscribe()"
ng-true-value="1"

View File

@ -19,7 +19,7 @@
app.accounts[0].$flattenMailboxes()
track by folder.path"
ng-value="folder.path">
<span ng-class="'sg-child-level-' + folder.level">{{folder.name}}</span>
<span ng-class="'sg-child-level-' + folder.level">{{folder.$displayName}}</span>
</md-option>
</md-select>
</md-input-container>
@ -69,7 +69,7 @@
<md-icon>search</md-icon>
</md-button>
<a href="javascript:void(0)" class="sg-folder-name"
ng-click="mailbox.searchMode()">{{mailbox.selectedFolder.name}}</a>
ng-click="mailbox.searchMode()">{{mailbox.selectedFolder.$displayName}}</a>
<md-menu>
<md-button class="sg-icon-button" label:aria-label="Sort"
ng-click="$mdMenu.open()">
@ -214,7 +214,7 @@
<md-button class="sg-no-wrap"
ng-disabled="mailbox.service.selectedFolder.id == folder.id"
ng-click="mailbox.copySelectedMessages(folder.id)">
<span ng-class="'sg-child-level-' + folder.level">{{folder.name}}</span>
<span ng-class="'sg-child-level-' + folder.level">{{folder.$displayName}}</span>
</md-button>
</md-menu-item>
</div>
@ -243,7 +243,7 @@
<md-button class="sg-no-wrap"
ng-disabled="mailbox.service.selectedFolder.id == folder.id"
ng-click="mailbox.moveSelectedMessages(folder.id)">
<span ng-class="'sg-child-level-' + folder.level">{{folder.name}}</span>
<span ng-class="'sg-child-level-' + folder.level">{{folder.$displayName}}</span>
</md-button>
</md-menu-item>
</div>
@ -297,7 +297,7 @@
<div class="sg-md-subhead">
<div>
<span class="sg-label-outline ng-hide"
ng-show="mailbox.service.$virtualMode">{{currentMessage.$mailbox.name}}</span>
ng-show="mailbox.service.$virtualMode">{{currentMessage.$mailbox.$displayName}}</span>
<md-icon class="ng-hide"
ng-show="currentMessage.priority.level == 1 ||
currentMessage.priority.level == 2"

View File

@ -89,18 +89,18 @@
<div class="sg-child-level-0"
ng-class="'sg-child-level-' + folder.level">
<md-checkbox class="sg-folder"
ng-class="app.metadataForFolder(folder).icon"
ng-class="folder.$icon"
label:aria-label="Expanded"
ng-model="folder.$expanded"
ng-disabled="folder.children.length == 0"
ng-change="account.$flattenMailboxes({ reload: true, saveState: true })">
<md-icon>{{app.metadataForFolder(folder).icon}}</md-icon></md-checkbox>
<md-icon>{{folder.$icon}}</md-icon></md-checkbox>
</div>
<p class="sg-item-name ng-hide"
ng-click="app.selectFolder($event, account, folder)"
ng-dblclick="app.editFolder(folder)"
ng-show="app.editMode != folder.path">
{{app.metadataForFolder(folder).name}}
{{folder.$displayName}}
<span class="sg-counter-badge ng-hide" ng-show="folder.unseenCount">{{folder.unseenCount}}</span>
</p>
<md-input-container class="md-flex ng-hide"

View File

@ -157,16 +157,47 @@
*/
Mailbox.prototype.init = function(data) {
var _this = this;
this.$isLoading = true;
this.$messages = [];
this.uidsMap = {};
if (angular.isUndefined(this.$messages)) {
this.$isLoading = true;
this.$messages = [];
this.uidsMap = {};
}
angular.extend(this, data);
if (this.path) {
this.id = this.$id();
this.$acl = new Mailbox.$$Acl('Mail/' + this.id);
}
this.$displayName = this.name;
if (this.type) {
this.$isEditable = this.isEditable();
this.$isSpecial = true;
if (this.type == 'inbox') {
this.$displayName = l('InboxFolderName');
this.$icon = 'inbox';
}
else if (this.type == 'draft') {
this.$displayName = l('DraftsFolderName');
this.$icon = 'drafts';
}
else if (this.type == 'sent') {
this.$displayName = l('SentFolderName');
this.$icon = 'send';
}
else if (this.type == 'trash') {
this.$displayName = l('TrashFolderName');
this.$icon = 'delete';
}
else if (this.type == 'junk') {
this.$displayName = l('JunkFolderName');
this.$icon = 'thumb_down';
}
else if (this.type == 'additional') {
this.$icon = 'folder_shared';
}
else {
this.$isSpecial = false;
this.$icon = 'folder_open';
}
}
this.$isNoInferiors = this.isNoInferiors();
if (angular.isUndefined(this.$shadowData)) {

View File

@ -58,7 +58,7 @@
var title = defaultWindowTitle + ' - ';
if (unseenCount)
title += '(' + unseenCount + ') ';
title += vm.selectedFolder.name;
title += vm.selectedFolder.$displayName;
$window.document.title = title;
});

View File

@ -28,7 +28,6 @@
vm.confirmDelete = confirmDelete;
vm.markFolderRead = markFolderRead;
vm.share = share;
vm.metadataForFolder = metadataForFolder;
vm.setFolderAs = setFolderAs;
vm.refreshUnseenCount = refreshUnseenCount;
vm.isDroppableFolder = isDroppableFolder;
@ -187,7 +186,6 @@
clickOutsideToClose: true,
escapeToClose: true,
locals: {
metadataForFolder: metadataForFolder,
srcAccount: account
}
}).finally(function() {
@ -197,13 +195,12 @@
/**
* @ngInject
*/
SubscriptionsDialogController.$inject = ['$scope', '$mdDialog', 'metadataForFolder', 'srcAccount'];
function SubscriptionsDialogController($scope, $mdDialog, metadataForFolder, srcAccount) {
SubscriptionsDialogController.$inject = ['$scope', '$mdDialog', 'srcAccount'];
function SubscriptionsDialogController($scope, $mdDialog, srcAccount) {
var vm = this;
vm.loading = true;
vm.filter = { name: '' };
vm.metadataForFolder = metadataForFolder;
vm.account = new Account({
id: srcAccount.id,
name: srcAccount.name
@ -389,23 +386,6 @@
});
} // share
function metadataForFolder(folder) {
if (folder.type == 'inbox')
return {name: l('InboxFolderName'), icon:'inbox', special: true};
else if (folder.type == 'draft')
return {name: l('DraftsFolderName'), icon: 'drafts', special: true};
else if (folder.type == 'sent')
return {name: l('SentFolderName'), icon: 'send', special: true};
else if (folder.type == 'trash')
return {name: l('TrashFolderName'), icon: 'delete', special: true};
else if (folder.type == 'junk')
return {name: l('JunkFolderName'), icon: 'thumb_down', special: true};
else if (folder.type == 'additional')
return {name: folder.name, icon: 'folder_shared', special: true};
return {name: folder.name, icon: 'folder_open', special: false};
}
function setFolderAs(folder, type) {
folder.$setFolderAs(type).then(function() {
folder.$account.$getMailboxes({reload: true});