OpenPGP (#53) Beta

Archive  (Closes #110)
Delete, Spam and Archive button in mail view when preview pane is off  (Closes #72)
Small fixes  (Closes #101)
This commit is contained in:
RainLoop Team 2014-04-02 03:58:24 +04:00
parent ab817e1396
commit cae0cc2f77
45 changed files with 1390 additions and 172 deletions

View file

@ -215,26 +215,43 @@ RainLoopApp.prototype.deleteMessagesFromFolder = function (iDeleteType, sFromFol
self = this, self = this,
oData = RL.data(), oData = RL.data(),
oCache = RL.cache(), oCache = RL.cache(),
oTrashOrSpamFolder = oCache.getFolderFromCacheList( oMoveFolder = null,
Enums.FolderType.Spam === iDeleteType ? oData.spamFolder() : oData.trashFolder()) nSetSystemFoldersNotification = null
; ;
switch (iDeleteType)
{
case Enums.FolderType.Spam:
oMoveFolder = oCache.getFolderFromCacheList(oData.spamFolder());
nSetSystemFoldersNotification = Enums.SetSystemFoldersNotification.Spam;
break;
case Enums.FolderType.Trash:
oMoveFolder = oCache.getFolderFromCacheList(oData.trashFolder());
nSetSystemFoldersNotification = Enums.SetSystemFoldersNotification.Trash;
break;
case Enums.FolderType.Archive:
oMoveFolder = oCache.getFolderFromCacheList(oData.archiveFolder());
nSetSystemFoldersNotification = Enums.SetSystemFoldersNotification.Archive;
break;
}
bUseFolder = Utils.isUnd(bUseFolder) ? true : !!bUseFolder; bUseFolder = Utils.isUnd(bUseFolder) ? true : !!bUseFolder;
if (bUseFolder) if (bUseFolder)
{ {
if ((Enums.FolderType.Spam === iDeleteType && Consts.Values.UnuseOptionValue === oData.spamFolder()) || if ((Enums.FolderType.Spam === iDeleteType && Consts.Values.UnuseOptionValue === oData.spamFolder()) ||
(Enums.FolderType.Trash === iDeleteType && Consts.Values.UnuseOptionValue === oData.trashFolder())) (Enums.FolderType.Trash === iDeleteType && Consts.Values.UnuseOptionValue === oData.trashFolder()) ||
(Enums.FolderType.Archive === iDeleteType && Consts.Values.UnuseOptionValue === oData.archiveFolder()))
{ {
bUseFolder = false; bUseFolder = false;
} }
} }
if (!oTrashOrSpamFolder && bUseFolder) if (!oMoveFolder && bUseFolder)
{ {
kn.showScreenPopup(PopupsFolderSystemViewModel, [ kn.showScreenPopup(PopupsFolderSystemViewModel, [nSetSystemFoldersNotification]);
Enums.FolderType.Spam === iDeleteType ? Enums.SetSystemFoldersNotification.Spam : Enums.SetSystemFoldersNotification.Trash]);
} }
else if (!bUseFolder || (sFromFolderFullNameRaw === oData.spamFolder() || sFromFolderFullNameRaw === oData.trashFolder())) else if (!bUseFolder || (Enums.FolderType.Trash === iDeleteType &&
(sFromFolderFullNameRaw === oData.spamFolder() || sFromFolderFullNameRaw === oData.trashFolder())))
{ {
kn.showScreenPopup(PopupsAskViewModel, [Utils.i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'), function () { kn.showScreenPopup(PopupsAskViewModel, [Utils.i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'), function () {
@ -248,16 +265,16 @@ RainLoopApp.prototype.deleteMessagesFromFolder = function (iDeleteType, sFromFol
}]); }]);
} }
else if (oTrashOrSpamFolder) else if (oMoveFolder)
{ {
RL.remote().messagesMove( RL.remote().messagesMove(
this.moveOrDeleteResponseHelper, this.moveOrDeleteResponseHelper,
sFromFolderFullNameRaw, sFromFolderFullNameRaw,
oTrashOrSpamFolder.fullNameRaw, oMoveFolder.fullNameRaw,
aUidForRemove aUidForRemove
); );
oData.removeMessagesFromList(sFromFolderFullNameRaw, aUidForRemove, oTrashOrSpamFolder.fullNameRaw); oData.removeMessagesFromList(sFromFolderFullNameRaw, aUidForRemove, oMoveFolder.fullNameRaw);
} }
}; };

View file

@ -36,6 +36,7 @@ Enums.FolderType = {
'Draft': 12, 'Draft': 12,
'Trash': 13, 'Trash': 13,
'Spam': 14, 'Spam': 14,
'Archive': 15,
'User': 99 'User': 99
}; };
@ -92,7 +93,8 @@ Enums.SetSystemFoldersNotification = {
'Sent': 1, 'Sent': 1,
'Draft': 2, 'Draft': 2,
'Spam': 3, 'Spam': 3,
'Trash': 4 'Trash': 4,
'Archive': 5
}; };
/** /**
@ -254,6 +256,8 @@ Enums.ContactScopeType = {
* @enum {number} * @enum {number}
*/ */
Enums.SignedVerifyStatus = { Enums.SignedVerifyStatus = {
'UnknownPublicKeys': -4,
'UnknownPrivateKey': -3,
'Unverified': -2, 'Unverified': -2,
'Error': -1, 'Error': -1,
'None': 0, 'None': 0,

View file

@ -207,6 +207,9 @@ FolderModel.prototype.initComputed = function ()
case Enums.FolderType.Trash: case Enums.FolderType.Trash:
sName = Utils.i18n('FOLDER_LIST/TRASH_NAME'); sName = Utils.i18n('FOLDER_LIST/TRASH_NAME');
break; break;
case Enums.FolderType.Archive:
sName = Utils.i18n('FOLDER_LIST/ARCHIVE_NAME');
break;
} }
} }
@ -243,6 +246,9 @@ FolderModel.prototype.initComputed = function ()
case Enums.FolderType.Trash: case Enums.FolderType.Trash:
sSuffix = '(' + Utils.i18n('FOLDER_LIST/TRASH_NAME') + ')'; sSuffix = '(' + Utils.i18n('FOLDER_LIST/TRASH_NAME') + ')';
break; break;
case Enums.FolderType.Archive:
sSuffix = '(' + Utils.i18n('FOLDER_LIST/ARCHIVE_NAME') + ')';
break;
} }
} }

View file

@ -1046,7 +1046,7 @@ MessageModel.prototype.verifyPgpSignedClearMessage = function ()
aRes = [], aRes = [],
mPgpMessage = null, mPgpMessage = null,
sFrom = this.from && this.from[0] && this.from[0].email ? this.from[0].email : '', sFrom = this.from && this.from[0] && this.from[0].email ? this.from[0].email : '',
aPublicKey = RL.data().findPublicKeysByEmail(sFrom), aPublicKeys = RL.data().findPublicKeysByEmail(sFrom),
oValidKey = null, oValidKey = null,
oValidSysKey = null, oValidSysKey = null,
sPlain = '' sPlain = ''
@ -1060,9 +1060,10 @@ MessageModel.prototype.verifyPgpSignedClearMessage = function ()
mPgpMessage = window.openpgp.cleartext.readArmored(this.plainRaw); mPgpMessage = window.openpgp.cleartext.readArmored(this.plainRaw);
if (mPgpMessage && mPgpMessage.getText) if (mPgpMessage && mPgpMessage.getText)
{ {
this.pgpSignedVerifyStatus(Enums.SignedVerifyStatus.Unverified); this.pgpSignedVerifyStatus(
aPublicKeys.length ? Enums.SignedVerifyStatus.Unverified : Enums.SignedVerifyStatus.UnknownPublicKeys);
aRes = mPgpMessage.verify(aPublicKey); aRes = mPgpMessage.verify(aPublicKeys);
if (aRes && 0 < aRes.length) if (aRes && 0 < aRes.length)
{ {
oValidKey = _.find(aRes, function (oItem) { oValidKey = _.find(aRes, function (oItem) {
@ -1099,6 +1100,78 @@ MessageModel.prototype.verifyPgpSignedClearMessage = function ()
} }
}; };
MessageModel.prototype.decryptPgpEncryptedMessage = function (sPassword)
{
if (this.isPgpEncrypted())
{
var
aRes = [],
mPgpMessage = null,
mPgpMessageDecrypted = null,
sFrom = this.from && this.from[0] && this.from[0].email ? this.from[0].email : '',
aPublicKey = RL.data().findPublicKeysByEmail(sFrom),
oPrivateKey = RL.data().findSelfPrivateKey(sPassword),
oValidKey = null,
oValidSysKey = null,
sPlain = ''
;
this.pgpSignedVerifyStatus(Enums.SignedVerifyStatus.Error);
this.pgpSignedVerifyUser('');
if (!oPrivateKey)
{
this.pgpSignedVerifyStatus(Enums.SignedVerifyStatus.UnknownPrivateKey);
}
try
{
mPgpMessage = window.openpgp.message.readArmored(this.plainRaw);
if (mPgpMessage && oPrivateKey && mPgpMessage.decrypt)
{
this.pgpSignedVerifyStatus(Enums.SignedVerifyStatus.Unverified);
mPgpMessageDecrypted = mPgpMessage.decrypt(oPrivateKey);
if (mPgpMessageDecrypted)
{
aRes = mPgpMessageDecrypted.verify(aPublicKey);
if (aRes && 0 < aRes.length)
{
oValidKey = _.find(aRes, function (oItem) {
return oItem && oItem.keyid && oItem.valid;
});
if (oValidKey)
{
oValidSysKey = RL.data().findPublicKeyByHex(oValidKey.keyid.toHex());
if (oValidSysKey)
{
this.pgpSignedVerifyStatus(Enums.SignedVerifyStatus.Success);
this.pgpSignedVerifyUser(oValidSysKey.user);
}
}
}
sPlain = mPgpMessageDecrypted.getText();
sPlain =
$proxyDiv.empty().append(
$('<pre class="b-plain-openpgp signed verified"></pre>').text(sPlain)
).html()
;
$proxyDiv.empty();
this.replacePlaneTextBody(sPlain);
}
}
}
catch (oExc) {}
this.storePgpVerifyDataToDom();
}
};
MessageModel.prototype.replacePlaneTextBody = function (sPlain) MessageModel.prototype.replacePlaneTextBody = function (sPlain)
{ {
if (this.body) if (this.body)

View file

@ -22,7 +22,8 @@ WebMailAjaxRemoteStorage.prototype.folders = function (fCallback)
'SentFolder': RL.settingsGet('SentFolder'), 'SentFolder': RL.settingsGet('SentFolder'),
'DraftFolder': RL.settingsGet('DraftFolder'), 'DraftFolder': RL.settingsGet('DraftFolder'),
'SpamFolder': RL.settingsGet('SpamFolder'), 'SpamFolder': RL.settingsGet('SpamFolder'),
'TrashFolder': RL.settingsGet('TrashFolder') 'TrashFolder': RL.settingsGet('TrashFolder'),
'ArchiveFolder': RL.settingsGet('ArchiveFolder')
}, null, '', ['Folders']); }, null, '', ['Folders']);
}; };

View file

@ -48,16 +48,19 @@ function WebMailDataStorage()
this.draftFolder = ko.observable(''); this.draftFolder = ko.observable('');
this.spamFolder = ko.observable(''); this.spamFolder = ko.observable('');
this.trashFolder = ko.observable(''); this.trashFolder = ko.observable('');
this.archiveFolder = ko.observable('');
this.sentFolder.subscribe(fRemoveSystemFolderType(this.sentFolder), this, 'beforeChange'); this.sentFolder.subscribe(fRemoveSystemFolderType(this.sentFolder), this, 'beforeChange');
this.draftFolder.subscribe(fRemoveSystemFolderType(this.draftFolder), this, 'beforeChange'); this.draftFolder.subscribe(fRemoveSystemFolderType(this.draftFolder), this, 'beforeChange');
this.spamFolder.subscribe(fRemoveSystemFolderType(this.spamFolder), this, 'beforeChange'); this.spamFolder.subscribe(fRemoveSystemFolderType(this.spamFolder), this, 'beforeChange');
this.trashFolder.subscribe(fRemoveSystemFolderType(this.trashFolder), this, 'beforeChange'); this.trashFolder.subscribe(fRemoveSystemFolderType(this.trashFolder), this, 'beforeChange');
this.archiveFolder.subscribe(fRemoveSystemFolderType(this.archiveFolder), this, 'beforeChange');
this.sentFolder.subscribe(fSetSystemFolderType(Enums.FolderType.SentItems), this); this.sentFolder.subscribe(fSetSystemFolderType(Enums.FolderType.SentItems), this);
this.draftFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Draft), this); this.draftFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Draft), this);
this.spamFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Spam), this); this.spamFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Spam), this);
this.trashFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Trash), this); this.trashFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Trash), this);
this.archiveFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Archive), this);
this.draftFolderNotEnabled = ko.computed(function () { this.draftFolderNotEnabled = ko.computed(function () {
return '' === this.draftFolder() || Consts.Values.UnuseOptionValue === this.draftFolder(); return '' === this.draftFolder() || Consts.Values.UnuseOptionValue === this.draftFolder();
@ -138,7 +141,8 @@ function WebMailDataStorage()
sSentFolder = this.sentFolder(), sSentFolder = this.sentFolder(),
sDraftFolder = this.draftFolder(), sDraftFolder = this.draftFolder(),
sSpamFolder = this.spamFolder(), sSpamFolder = this.spamFolder(),
sTrashFolder = this.trashFolder() sTrashFolder = this.trashFolder(),
sArchiveFolder = this.archiveFolder()
; ;
if (Utils.isArray(aFolders) && 0 < aFolders.length) if (Utils.isArray(aFolders) && 0 < aFolders.length)
@ -159,6 +163,10 @@ function WebMailDataStorage()
{ {
aList.push(sTrashFolder); aList.push(sTrashFolder);
} }
if ('' !== sArchiveFolder && Consts.Values.UnuseOptionValue !== sArchiveFolder)
{
aList.push(sArchiveFolder);
}
} }
return aList; return aList;
@ -625,13 +633,15 @@ WebMailDataStorage.prototype.setFolders = function (oData)
if (oData.Result['SystemFolders'] && if (oData.Result['SystemFolders'] &&
'' === '' + RL.settingsGet('SentFolder') + RL.settingsGet('DraftFolder') + '' === '' + RL.settingsGet('SentFolder') + RL.settingsGet('DraftFolder') +
RL.settingsGet('SpamFolder') + RL.settingsGet('TrashFolder') + RL.settingsGet('NullFolder')) RL.settingsGet('SpamFolder') + RL.settingsGet('TrashFolder') + RL.settingsGet('ArchiveFolder') +
RL.settingsGet('NullFolder'))
{ {
// TODO Magic Numbers // TODO Magic Numbers
RL.settingsSet('SentFolder', oData.Result['SystemFolders'][2] || null); RL.settingsSet('SentFolder', oData.Result['SystemFolders'][2] || null);
RL.settingsSet('DraftFolder', oData.Result['SystemFolders'][3] || null); RL.settingsSet('DraftFolder', oData.Result['SystemFolders'][3] || null);
RL.settingsSet('SpamFolder', oData.Result['SystemFolders'][4] || null); RL.settingsSet('SpamFolder', oData.Result['SystemFolders'][4] || null);
RL.settingsSet('TrashFolder', oData.Result['SystemFolders'][5] || null); RL.settingsSet('TrashFolder', oData.Result['SystemFolders'][5] || null);
RL.settingsSet('ArchiveFolder', oData.Result['SystemFolders'][12] || null);
bUpdate = true; bUpdate = true;
} }
@ -640,6 +650,7 @@ WebMailDataStorage.prototype.setFolders = function (oData)
oRLData.draftFolder(fNormalizeFolder(RL.settingsGet('DraftFolder'))); oRLData.draftFolder(fNormalizeFolder(RL.settingsGet('DraftFolder')));
oRLData.spamFolder(fNormalizeFolder(RL.settingsGet('SpamFolder'))); oRLData.spamFolder(fNormalizeFolder(RL.settingsGet('SpamFolder')));
oRLData.trashFolder(fNormalizeFolder(RL.settingsGet('TrashFolder'))); oRLData.trashFolder(fNormalizeFolder(RL.settingsGet('TrashFolder')));
oRLData.archiveFolder(fNormalizeFolder(RL.settingsGet('ArchiveFolder')));
if (bUpdate) if (bUpdate)
{ {
@ -648,6 +659,7 @@ WebMailDataStorage.prototype.setFolders = function (oData)
'DraftFolder': oRLData.draftFolder(), 'DraftFolder': oRLData.draftFolder(),
'SpamFolder': oRLData.spamFolder(), 'SpamFolder': oRLData.spamFolder(),
'TrashFolder': oRLData.trashFolder(), 'TrashFolder': oRLData.trashFolder(),
'ArchiveFolder': oRLData.archiveFolder(),
'NullFolder': 'NullFolder' 'NullFolder': 'NullFolder'
}); });
} }
@ -838,7 +850,6 @@ WebMailDataStorage.prototype.setMessage = function (oData, bCached)
sPlain = '', sPlain = '',
bPgpSigned = false, bPgpSigned = false,
bPgpEncrypted = false, bPgpEncrypted = false,
mPgpMessage = null,
oMessagesBodiesDom = this.messagesBodiesDom(), oMessagesBodiesDom = this.messagesBodiesDom(),
oMessage = this.message() oMessage = this.message()
; ;
@ -903,12 +914,6 @@ WebMailDataStorage.prototype.setMessage = function (oData, bCached)
} }
else if (bPgpEncrypted && oMessage.isPgpEncrypted()) else if (bPgpEncrypted && oMessage.isPgpEncrypted())
{ {
// try
// {
// mPgpMessage = window.openpgp.message.readArmored(oMessage.plainRaw);
// }
// catch (oExc) {}
sPlain = sPlain =
$proxyDiv.append( $proxyDiv.append(
$('<pre class="b-plain-openpgp encrypted"></pre>').text(oMessage.plainRaw) $('<pre class="b-plain-openpgp encrypted"></pre>').text(oMessage.plainRaw)
@ -1157,7 +1162,12 @@ WebMailDataStorage.prototype.findPublicKeysByEmail = function (sEmail)
})); }));
}; };
WebMailDataStorage.prototype.findPrivateKeyByEmail = function (sEmail, sPass) /**
* @param {string} sEmail
* @param {string=} sPassword
* @returns {?}
*/
WebMailDataStorage.prototype.findPrivateKeyByEmail = function (sEmail, sPassword)
{ {
var var
oPrivateKey = null, oPrivateKey = null,
@ -1174,7 +1184,7 @@ WebMailDataStorage.prototype.findPrivateKeyByEmail = function (sEmail, sPass)
if (oPrivateKey && !oPrivateKey.err && oPrivateKey.keys && oPrivateKey.keys[0]) if (oPrivateKey && !oPrivateKey.err && oPrivateKey.keys && oPrivateKey.keys[0])
{ {
oPrivateKey = oPrivateKey.keys[0]; oPrivateKey = oPrivateKey.keys[0];
oPrivateKey.decrypt(sPass); oPrivateKey.decrypt(Utils.pString(sPassword));
} }
else else
{ {
@ -1189,3 +1199,12 @@ WebMailDataStorage.prototype.findPrivateKeyByEmail = function (sEmail, sPass)
return oPrivateKey; return oPrivateKey;
}; };
/**
* @param {string=} sPassword
* @returns {?}
*/
WebMailDataStorage.prototype.findSelfPrivateKey = function (sPassword)
{
return this.findPrivateKeyByEmail(this.accountEmail(), sPassword);
};

View file

@ -90,6 +90,7 @@ html.ssm-state-desktop-large {
} }
html.ssm-state-desktop { html.ssm-state-desktop {
#rl-left { #rl-left {
width: @rlLeftWidth; width: @rlLeftWidth;
} }
@ -99,15 +100,16 @@ html.ssm-state-desktop {
} }
#rl-sub-left { #rl-sub-left {
width: 350px; width: 400px;
} }
#rl-sub-right { #rl-sub-right {
left: 350px; left: 400px;
} }
} }
html.ssm-state-tablet { html.ssm-state-tablet {
#rl-left { #rl-left {
width: 150px; width: 150px;
} }
@ -117,7 +119,7 @@ html.ssm-state-tablet {
} }
#rl-sub-left { #rl-sub-left {
width: 310px; width: 340px;
.messageList .inputSearch { .messageList .inputSearch {
width: 220px; width: 220px;
@ -125,7 +127,7 @@ html.ssm-state-tablet {
} }
#rl-sub-right { #rl-sub-right {
left: 310px; left: 340px;
} }
.b-compose.modal { .b-compose.modal {
@ -147,7 +149,7 @@ html.ssm-state-mobile {
} }
#rl-sub-left { #rl-sub-left {
width: 310px; width: 340px;
.messageList .inputSearch { .messageList .inputSearch {
width: 220px; width: 220px;
@ -155,7 +157,7 @@ html.ssm-state-mobile {
} }
#rl-sub-right { #rl-sub-right {
left: 310px; left: 340px;
} }
.b-compose.modal { .b-compose.modal {

View file

@ -63,26 +63,39 @@ select {
.border-radius(@btnBorderRadius); .border-radius(@btnBorderRadius);
} }
.btn-group + .btn-group {
margin-left: 3px;
}
.btn { .btn {
.border-radius(@btnBorderRadius); .border-radius(@btnBorderRadius);
background-image: none; background-image: none;
padding-left: 13px;
padding-right: 13px;
&.disabled, &[disabled] { &.disabled, &[disabled] {
.opacity(75);
.box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)"); .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
} }
text-shadow: 0 1px 0 #fff; text-shadow: 0 1px 0 #fff;
&:active { // &:active {
// .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.3), 0 0 0 rgba(0,0,0,.1)"); // .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.3), 0 0 0 rgba(0,0,0,.1)");
// }
}
.btn.btn-dark-disabled-border {
&.disabled, &[disabled] {
border-color: #aaa;
} }
} }
.btn-group.open { //.btn-group.open {
.dropdown-toggle { // .dropdown-toggle {
// .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.3), 0 0 0 rgba(0,0,0,.1)"); // .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.3), 0 0 0 rgba(0,0,0,.1)");
} // }
} //}
html.rgba.textshadow { html.rgba.textshadow {
.btn.btn-danger, .btn.btn-success, .btn.btn-primary { .btn.btn-danger, .btn.btn-success, .btn.btn-primary {

View file

@ -19,7 +19,7 @@
@rlMessageDelimiterColor: #999; @rlMessageDelimiterColor: #999;
// bootstart // bootstart
@btnBorderRadius: 2px; @btnBorderRadius: 3px;
@tooltipColor: #eee; @tooltipColor: #eee;
@tooltipBackground: #333; @tooltipBackground: #333;

View file

@ -109,15 +109,26 @@ function MailBoxMessageListViewModel()
}, this); }, this);
this.isSpamFolder = ko.computed(function () { this.isSpamFolder = ko.computed(function () {
return RL.data().spamFolder() === this.messageListEndFolder(); return oData.spamFolder() === this.messageListEndFolder() &&
'' !== oData.spamFolder();
}, this); }, this);
this.isSpamDisabled = ko.computed(function () { this.isSpamDisabled = ko.computed(function () {
return Consts.Values.UnuseOptionValue === RL.data().spamFolder(); return Consts.Values.UnuseOptionValue === oData.spamFolder();
}, this); }, this);
this.isTrashFolder = ko.computed(function () { this.isTrashFolder = ko.computed(function () {
return RL.data().trashFolder() === this.messageListEndFolder(); return oData.trashFolder() === this.messageListEndFolder() &&
'' !== oData.trashFolder();
}, this);
this.isArchiveFolder = ko.computed(function () {
return oData.archiveFolder() === this.messageListEndFolder() &&
'' !== oData.archiveFolder();
}, this);
this.isArchiveDisabled = ko.computed(function () {
return Consts.Values.UnuseOptionValue === RL.data().archiveFolder();
}, this); }, this);
this.canBeMoved = this.hasCheckedOrSelectedLines; this.canBeMoved = this.hasCheckedOrSelectedLines;
@ -142,6 +153,12 @@ function MailBoxMessageListViewModel()
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true); RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved); }, this.canBeMoved);
this.archiveCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Archive,
RL.data().currentFolderFullNameRaw(),
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved);
this.spamCommand = Utils.createCommand(this, function () { this.spamCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Spam, RL.deleteMessagesFromFolder(Enums.FolderType.Spam,
RL.data().currentFolderFullNameRaw(), RL.data().currentFolderFullNameRaw(),
@ -219,6 +236,15 @@ MailBoxMessageListViewModel.prototype.searchEnterAction = function ()
this.inputMessageListSearchFocus(false); this.inputMessageListSearchFocus(false);
}; };
/**
* @returns {string}
*/
MailBoxMessageListViewModel.prototype.printableMessageCountForDeletion = function ()
{
var iCnt = this.messageListCheckedOrSelectedUidsWithSubMails().length;
return 1 < iCnt ? ' (' + (100 > iCnt ? iCnt : '99+') + ')' : '';
};
MailBoxMessageListViewModel.prototype.cancelSearch = function () MailBoxMessageListViewModel.prototype.cancelSearch = function ()
{ {
this.mainMessageListSearch(''); this.mainMessageListSearch('');

View file

@ -36,8 +36,6 @@ function MailBoxMessageViewViewModel()
this.fullScreenMode = oData.messageFullScreenMode; this.fullScreenMode = oData.messageFullScreenMode;
this.showFullInfo = ko.observable(false); this.showFullInfo = ko.observable(false);
this.openPGPInformation = ko.observable('');
this.openPGPInformation.isError = ko.observable(false);
this.messageVisibility = ko.computed(function () { this.messageVisibility = ko.computed(function () {
return !this.messageLoadingThrottle() && !!this.message(); return !this.messageLoadingThrottle() && !!this.message();
@ -80,6 +78,17 @@ function MailBoxMessageViewViewModel()
}, this.messageVisibility); }, this.messageVisibility);
this.archiveCommand = Utils.createCommand(this, function () {
if (this.message())
{
RL.deleteMessagesFromFolder(Enums.FolderType.Archive,
this.message().folderFullNameRaw,
[this.message().uid], true);
}
}, this.messageVisibility);
this.spamCommand = Utils.createCommand(this, function () { this.spamCommand = Utils.createCommand(this, function () {
if (this.message()) if (this.message())
@ -107,6 +116,7 @@ function MailBoxMessageViewViewModel()
this.viewUserPic = ko.observable(Consts.DataImages.UserDotPic); this.viewUserPic = ko.observable(Consts.DataImages.UserDotPic);
this.viewUserPicVisible = ko.observable(false); this.viewUserPicVisible = ko.observable(false);
this.viewPgpPassword = ko.observable('');
this.viewPgpSignedVerifyStatus = ko.computed(function () { this.viewPgpSignedVerifyStatus = ko.computed(function () {
return this.message() ? this.message().pgpSignedVerifyStatus() : Enums.SignedVerifyStatus.None; return this.message() ? this.message().pgpSignedVerifyStatus() : Enums.SignedVerifyStatus.None;
}, this); }, this);
@ -115,10 +125,13 @@ function MailBoxMessageViewViewModel()
return this.message() ? this.message().pgpSignedVerifyUser() : ''; return this.message() ? this.message().pgpSignedVerifyUser() : '';
}, this); }, this);
this.message.subscribe(function (oMessage) { this.message.subscribe(function (oMessage) {
this.messageActiveDom(null); this.messageActiveDom(null);
this.viewPgpPassword('');
if (oMessage) if (oMessage)
{ {
this.viewSubject(oMessage.subject()); this.viewSubject(oMessage.subject());
@ -207,6 +220,12 @@ MailBoxMessageViewViewModel.prototype.pgpStatusVerifyMessage = function ()
switch (this.viewPgpSignedVerifyStatus()) switch (this.viewPgpSignedVerifyStatus())
{ {
// TODO i18n // TODO i18n
case Enums.SignedVerifyStatus.UnknownPublicKeys:
sResult = 'No public keys found';
break;
case Enums.SignedVerifyStatus.UnknownPrivateKey:
sResult = 'No private key found';
break;
case Enums.SignedVerifyStatus.Unverified: case Enums.SignedVerifyStatus.Unverified:
sResult = 'Unverified signature'; sResult = 'Unverified signature';
break; break;
@ -359,6 +378,38 @@ MailBoxMessageViewViewModel.prototype.isSentFolder = function ()
return RL.data().message() && RL.data().sentFolder() === RL.data().message().folderFullNameRaw; return RL.data().message() && RL.data().sentFolder() === RL.data().message().folderFullNameRaw;
}; };
/**
* @return {boolean}
*/
MailBoxMessageViewViewModel.prototype.isSpamFolder = function ()
{
return RL.data().message() && RL.data().spamFolder() === RL.data().message().folderFullNameRaw;
};
/**
* @return {boolean}
*/
MailBoxMessageViewViewModel.prototype.isSpamDisabled = function ()
{
return RL.data().message() && RL.data().spamFolder() === Consts.Values.UnuseOptionValue;
};
/**
* @return {boolean}
*/
MailBoxMessageViewViewModel.prototype.isArchiveFolder = function ()
{
return RL.data().message() && RL.data().archiveFolder() === RL.data().message().folderFullNameRaw;
};
/**
* @return {boolean}
*/
MailBoxMessageViewViewModel.prototype.isArchiveDisabled = function ()
{
return RL.data().message() && RL.data().archiveFolder() === Consts.Values.UnuseOptionValue;
};
/** /**
* @return {boolean} * @return {boolean}
*/ */
@ -417,7 +468,7 @@ MailBoxMessageViewViewModel.prototype.decryptPgpEncryptedMessage = function (oMe
{ {
if (oMessage) if (oMessage)
{ {
oMessage.decryptPgpEncryptedMessage(); oMessage.decryptPgpEncryptedMessage(this.viewPgpPassword());
} }
}; };

View file

@ -64,7 +64,8 @@ function PopupsComposeOpenPgpViewModel()
if (bResult && this.encrypt()) if (bResult && this.encrypt())
{ {
aPublicKeys = _.compact(_.union(this.to(), function (sEmail) { aPublicKeys = [];
_.each(this.to(), function (sEmail) {
var aKeys = oData.findPublicKeysByEmail(sEmail); var aKeys = oData.findPublicKeysByEmail(sEmail);
if (0 === aKeys.length && bResult) if (0 === aKeys.length && bResult)
{ {
@ -73,9 +74,8 @@ function PopupsComposeOpenPgpViewModel()
bResult = false; bResult = false;
} }
return aKeys; aPublicKeys = aPublicKeys.concat(aKeys);
});
}));
if (bResult && (0 === aPublicKeys.length || this.to().length !== aPublicKeys.length)) if (bResult && (0 === aPublicKeys.length || this.to().length !== aPublicKeys.length))
{ {

View file

@ -33,6 +33,7 @@ function PopupsFolderSystemViewModel()
this.draftFolder = oData.draftFolder; this.draftFolder = oData.draftFolder;
this.spamFolder = oData.spamFolder; this.spamFolder = oData.spamFolder;
this.trashFolder = oData.trashFolder; this.trashFolder = oData.trashFolder;
this.archiveFolder = oData.archiveFolder;
fSaveSystemFolders = _.debounce(function () { fSaveSystemFolders = _.debounce(function () {
@ -40,12 +41,14 @@ function PopupsFolderSystemViewModel()
RL.settingsSet('DraftFolder', self.draftFolder()); RL.settingsSet('DraftFolder', self.draftFolder());
RL.settingsSet('SpamFolder', self.spamFolder()); RL.settingsSet('SpamFolder', self.spamFolder());
RL.settingsSet('TrashFolder', self.trashFolder()); RL.settingsSet('TrashFolder', self.trashFolder());
RL.settingsSet('ArchiveFolder', self.archiveFolder());
RL.remote().saveSystemFolders(Utils.emptyFunction, { RL.remote().saveSystemFolders(Utils.emptyFunction, {
'SentFolder': self.sentFolder(), 'SentFolder': self.sentFolder(),
'DraftFolder': self.draftFolder(), 'DraftFolder': self.draftFolder(),
'SpamFolder': self.spamFolder(), 'SpamFolder': self.spamFolder(),
'TrashFolder': self.trashFolder(), 'TrashFolder': self.trashFolder(),
'ArchiveFolder': self.archiveFolder(),
'NullFolder': 'NullFolder' 'NullFolder': 'NullFolder'
}); });
@ -57,6 +60,7 @@ function PopupsFolderSystemViewModel()
RL.settingsSet('DraftFolder', self.draftFolder()); RL.settingsSet('DraftFolder', self.draftFolder());
RL.settingsSet('SpamFolder', self.spamFolder()); RL.settingsSet('SpamFolder', self.spamFolder());
RL.settingsSet('TrashFolder', self.trashFolder()); RL.settingsSet('TrashFolder', self.trashFolder());
RL.settingsSet('ArchiveFolder', self.archiveFolder());
fSaveSystemFolders(); fSaveSystemFolders();
}; };
@ -65,6 +69,7 @@ function PopupsFolderSystemViewModel()
this.draftFolder.subscribe(fCallback); this.draftFolder.subscribe(fCallback);
this.spamFolder.subscribe(fCallback); this.spamFolder.subscribe(fCallback);
this.trashFolder.subscribe(fCallback); this.trashFolder.subscribe(fCallback);
this.archiveFolder.subscribe(fCallback);
this.defautOptionsAfterRender = Utils.defautOptionsAfterRender; this.defautOptionsAfterRender = Utils.defautOptionsAfterRender;
@ -99,6 +104,9 @@ PopupsFolderSystemViewModel.prototype.onShow = function (iNotificationType)
case Enums.SetSystemFoldersNotification.Trash: case Enums.SetSystemFoldersNotification.Trash:
sNotification = Utils.i18n('POPUPS_SYSTEM_FOLDERS/NOTIFICATION_TRASH'); sNotification = Utils.i18n('POPUPS_SYSTEM_FOLDERS/NOTIFICATION_TRASH');
break; break;
case Enums.SetSystemFoldersNotification.Archive:
sNotification = Utils.i18n('POPUPS_SYSTEM_FOLDERS/NOTIFICATION_ARCHIVE');
break;
} }
this.notification(sNotification); this.notification(sNotification);

View file

@ -17,5 +17,5 @@ class FolderType
const TRASH = 5; const TRASH = 5;
const IMPORTANT = 10; const IMPORTANT = 10;
const STARRED = 11; const STARRED = 11;
const ALLMAIL = 12; const ARCHIVE = 12;
} }

View file

@ -295,7 +295,7 @@ class Folder
case \in_array('\all', $aFlags): case \in_array('\all', $aFlags):
case \in_array('\archive', $aFlags): case \in_array('\archive', $aFlags):
case \in_array('\allmail', $aFlags): case \in_array('\allmail', $aFlags):
$iXListType = \MailSo\Imap\Enumerations\FolderType::ALLMAIL; $iXListType = \MailSo\Imap\Enumerations\FolderType::ARCHIVE;
break; break;
} }
} }

View file

@ -1162,6 +1162,7 @@ class Actions
$aResult['DraftFolder'] = $oSettings->GetConf('DraftFolder', ''); $aResult['DraftFolder'] = $oSettings->GetConf('DraftFolder', '');
$aResult['SpamFolder'] = $oSettings->GetConf('SpamFolder', ''); $aResult['SpamFolder'] = $oSettings->GetConf('SpamFolder', '');
$aResult['TrashFolder'] = $oSettings->GetConf('TrashFolder', ''); $aResult['TrashFolder'] = $oSettings->GetConf('TrashFolder', '');
$aResult['ArchiveFolder'] = $oSettings->GetConf('ArchiveFolder', '');
$aResult['NullFolder'] = $oSettings->GetConf('NullFolder', ''); $aResult['NullFolder'] = $oSettings->GetConf('NullFolder', '');
$aResult['EditorDefaultType'] = $oSettings->GetConf('EditorDefaultType', $aResult['EditorDefaultType']); $aResult['EditorDefaultType'] = $oSettings->GetConf('EditorDefaultType', $aResult['EditorDefaultType']);
$aResult['ShowImages'] = (bool) $oSettings->GetConf('ShowImages', $aResult['ShowImages']); $aResult['ShowImages'] = (bool) $oSettings->GetConf('ShowImages', $aResult['ShowImages']);
@ -1909,8 +1910,9 @@ class Actions
$oSettings->SetConf('SentFolder', $this->GetActionParam('SentFolder', '')); $oSettings->SetConf('SentFolder', $this->GetActionParam('SentFolder', ''));
$oSettings->SetConf('DraftFolder', $this->GetActionParam('DraftFolder', '')); $oSettings->SetConf('DraftFolder', $this->GetActionParam('DraftFolder', ''));
$oSettings->SetConf('TrashFolder', $this->GetActionParam('TrashFolder', ''));
$oSettings->SetConf('SpamFolder', $this->GetActionParam('SpamFolder', '')); $oSettings->SetConf('SpamFolder', $this->GetActionParam('SpamFolder', ''));
$oSettings->SetConf('TrashFolder', $this->GetActionParam('TrashFolder', ''));
$oSettings->SetConf('ArchiveFolder', $this->GetActionParam('ArchiveFolder', ''));
$oSettings->SetConf('NullFolder', $this->GetActionParam('NullFolder', '')); $oSettings->SetConf('NullFolder', $this->GetActionParam('NullFolder', ''));
return $this->DefaultResponse(__FUNCTION__, return $this->DefaultResponse(__FUNCTION__,
@ -3347,6 +3349,7 @@ class Actions
$aCache = array( $aCache = array(
'Sent' => \MailSo\Imap\Enumerations\FolderType::SENT, 'Sent' => \MailSo\Imap\Enumerations\FolderType::SENT,
'Send' => \MailSo\Imap\Enumerations\FolderType::SENT, 'Send' => \MailSo\Imap\Enumerations\FolderType::SENT,
'Sent Item' => \MailSo\Imap\Enumerations\FolderType::SENT, 'Sent Item' => \MailSo\Imap\Enumerations\FolderType::SENT,
'Sent Items' => \MailSo\Imap\Enumerations\FolderType::SENT, 'Sent Items' => \MailSo\Imap\Enumerations\FolderType::SENT,
@ -3358,6 +3361,7 @@ class Actions
'Send Mails' => \MailSo\Imap\Enumerations\FolderType::SENT, 'Send Mails' => \MailSo\Imap\Enumerations\FolderType::SENT,
'Draft' => \MailSo\Imap\Enumerations\FolderType::DRAFTS, 'Draft' => \MailSo\Imap\Enumerations\FolderType::DRAFTS,
'Drafts' => \MailSo\Imap\Enumerations\FolderType::DRAFTS, 'Drafts' => \MailSo\Imap\Enumerations\FolderType::DRAFTS,
'Draft Mail' => \MailSo\Imap\Enumerations\FolderType::DRAFTS, 'Draft Mail' => \MailSo\Imap\Enumerations\FolderType::DRAFTS,
'Draft Mails' => \MailSo\Imap\Enumerations\FolderType::DRAFTS, 'Draft Mails' => \MailSo\Imap\Enumerations\FolderType::DRAFTS,
@ -3365,14 +3369,22 @@ class Actions
'Drafts Mails' => \MailSo\Imap\Enumerations\FolderType::DRAFTS, 'Drafts Mails' => \MailSo\Imap\Enumerations\FolderType::DRAFTS,
'Spam' => \MailSo\Imap\Enumerations\FolderType::SPAM, 'Spam' => \MailSo\Imap\Enumerations\FolderType::SPAM,
'Junk' => \MailSo\Imap\Enumerations\FolderType::SPAM, 'Junk' => \MailSo\Imap\Enumerations\FolderType::SPAM,
'Bulk Mail' => \MailSo\Imap\Enumerations\FolderType::SPAM, 'Bulk Mail' => \MailSo\Imap\Enumerations\FolderType::SPAM,
'Bulk Mails' => \MailSo\Imap\Enumerations\FolderType::SPAM, 'Bulk Mails' => \MailSo\Imap\Enumerations\FolderType::SPAM,
'Trash' => \MailSo\Imap\Enumerations\FolderType::TRASH, 'Trash' => \MailSo\Imap\Enumerations\FolderType::TRASH,
'Deleted' => \MailSo\Imap\Enumerations\FolderType::TRASH, 'Deleted' => \MailSo\Imap\Enumerations\FolderType::TRASH,
'Bin' => \MailSo\Imap\Enumerations\FolderType::TRASH 'Bin' => \MailSo\Imap\Enumerations\FolderType::TRASH,
'Archive' => \MailSo\Imap\Enumerations\FolderType::ARCHIVE,
'All' => \MailSo\Imap\Enumerations\FolderType::ARCHIVE,
'All Mail' => \MailSo\Imap\Enumerations\FolderType::ARCHIVE,
'All Mails' => \MailSo\Imap\Enumerations\FolderType::ARCHIVE,
'AllMail' => \MailSo\Imap\Enumerations\FolderType::ARCHIVE,
'AllMails' => \MailSo\Imap\Enumerations\FolderType::ARCHIVE,
); );
$this->Plugins()->RunHook('filter.system-folders-names', array($oAccount, &$aCache)); $this->Plugins()->RunHook('filter.system-folders-names', array($oAccount, &$aCache));
@ -3403,7 +3415,8 @@ class Actions
\MailSo\Imap\Enumerations\FolderType::SENT, \MailSo\Imap\Enumerations\FolderType::SENT,
\MailSo\Imap\Enumerations\FolderType::DRAFTS, \MailSo\Imap\Enumerations\FolderType::DRAFTS,
\MailSo\Imap\Enumerations\FolderType::SPAM, \MailSo\Imap\Enumerations\FolderType::SPAM,
\MailSo\Imap\Enumerations\FolderType::TRASH \MailSo\Imap\Enumerations\FolderType::TRASH,
\MailSo\Imap\Enumerations\FolderType::ARCHIVE
))) )))
{ {
$aResult[$iFolderXListType] = $oFolder->FullNameRaw(); $aResult[$iFolderXListType] = $oFolder->FullNameRaw();
@ -3428,7 +3441,8 @@ class Actions
\MailSo\Imap\Enumerations\FolderType::SENT, \MailSo\Imap\Enumerations\FolderType::SENT,
\MailSo\Imap\Enumerations\FolderType::DRAFTS, \MailSo\Imap\Enumerations\FolderType::DRAFTS,
\MailSo\Imap\Enumerations\FolderType::SPAM, \MailSo\Imap\Enumerations\FolderType::SPAM,
\MailSo\Imap\Enumerations\FolderType::TRASH \MailSo\Imap\Enumerations\FolderType::TRASH,
\MailSo\Imap\Enumerations\FolderType::ARCHIVE
))) )))
{ {
$aResult[$iFolderType] = $oFolder->FullNameRaw(); $aResult[$iFolderType] = $oFolder->FullNameRaw();
@ -3473,6 +3487,7 @@ class Actions
if ($oFolderCollection instanceof \MailSo\Mail\FolderCollection) if ($oFolderCollection instanceof \MailSo\Mail\FolderCollection)
{ {
$aSystemFolders = array(); $aSystemFolders = array();
$this->recFoldersTypes($oAccount, $oFolderCollection, $aSystemFolders); $this->recFoldersTypes($oAccount, $oFolderCollection, $aSystemFolders);
$oFolderCollection->SystemFolders = $aSystemFolders; $oFolderCollection->SystemFolders = $aSystemFolders;
@ -3500,6 +3515,10 @@ class Actions
{ {
$aList[] = \MailSo\Imap\Enumerations\FolderType::TRASH; $aList[] = \MailSo\Imap\Enumerations\FolderType::TRASH;
} }
if ('' === $this->GetActionParam('ArchiveFolder', ''))
{
$aList[] = \MailSo\Imap\Enumerations\FolderType::ARCHIVE;
}
$this->Plugins()->RunHook('filter.folders-system-types', array($oAccount, &$aList)); $this->Plugins()->RunHook('filter.folders-system-types', array($oAccount, &$aList));
@ -6284,8 +6303,9 @@ class Actions
*/ */
private function hashFolderFullName($sFolderFullName) private function hashFolderFullName($sFolderFullName)
{ {
return \in_array(\strtolower($sFolderFullName), array('inbox', 'sent', 'send', 'drafts', 'spam', 'junk', 'bin', 'trash')) ? return \in_array(\strtolower($sFolderFullName), array('inbox', 'sent', 'send', 'drafts',
\ucfirst(\strtolower($sFolderFullName)) : \md5($sFolderFullName); 'spam', 'junk', 'bin', 'trash', 'archive', 'allmail')) ?
\ucfirst(\strtolower($sFolderFullName)) : \md5($sFolderFullName);
// return \in_array(\strtolower($sFolderFullName), array('inbox', 'sent', 'send', 'drafts', 'spam', 'junk', 'bin', 'trash')) ? // return \in_array(\strtolower($sFolderFullName), array('inbox', 'sent', 'send', 'drafts', 'spam', 'junk', 'bin', 'trash')) ?
// \ucfirst(\strtolower($sFolderFullName)) : // \ucfirst(\strtolower($sFolderFullName)) :

View file

@ -21,14 +21,17 @@
</ul> </ul>
</div> </div>
<div class="btn-group">&nbsp;</div> <div class="btn-group">&nbsp;</div>
<div class="btn-group btn-group-custom-margin"> <div class="btn-group">
<a class="btn buttonDelete" data-placement="bottom" data-bind="command: deleteCommand, tooltip: 'MESSAGE_LIST/BUTTON_DELETE'"> <a class="btn btn-dark-disabled-border button-archive" data-placement="bottom" data-bind="visible: !isArchiveFolder() && !isArchiveDisabled(), command: archiveCommand, tooltip: 'MESSAGE_LIST/BUTTON_ARCHIVE'">
<i class="icon-trash"></i> <i class="icon-archive"></i>
<span data-bind="text: 1 < messageListCheckedOrSelectedUidsWithSubMails().length ? ' (' + messageListCheckedOrSelectedUidsWithSubMails().length + ')' : ''"></span>
</a> </a>
<a class="btn buttonSpam" data-placement="bottom" data-bind="visible: !isSpamFolder() && !isSpamDisabled(), command: spamCommand, tooltip: 'MESSAGE_LIST/BUTTON_SPAM'"> <a class="btn btn-dark-disabled-border button-spam" data-placement="bottom" data-bind="visible: !isSpamFolder() && !isSpamDisabled(), command: spamCommand, tooltip: 'MESSAGE_LIST/BUTTON_SPAM'">
<i class="icon-bug"></i> <i class="icon-bug"></i>
</a> </a>
<a class="btn btn-dark-disabled-border button-delete" data-placement="bottom" data-bind="command: deleteCommand, tooltip: 'MESSAGE_LIST/BUTTON_DELETE'">
<i class="icon-trash"></i>
<span data-bind="text: printableMessageCountForDeletion()"></span>
</a>
</div> </div>
<div class="btn-group">&nbsp;</div> <div class="btn-group">&nbsp;</div>
<div class="btn-group"> <div class="btn-group">

View file

@ -14,24 +14,27 @@
</a> </a>
</div> </div>
<div class="btn-group" data-bind="visible: !isDraftFolder()"> <div class="btn-group" data-bind="visible: !isDraftFolder()">
<a class="btn buttonReply" data-placement="bottom" data-bind="command: replyCommand, tooltip: 'MESSAGE/BUTTON_REPLY'"> <a class="btn btn-dark-disabled-border buttonReply" data-placement="bottom" data-bind="command: replyCommand, tooltip: 'MESSAGE/BUTTON_REPLY'">
<i class="icon-reply"></i> <i class="icon-reply"></i>
</a> </a>
<a class="btn buttonReplyAll" data-placement="bottom" data-bind="command: replyAllCommand, tooltip: 'MESSAGE/BUTTON_REPLY_ALL'"> <a class="btn btn-dark-disabled-border buttonReplyAll" data-placement="bottom" data-bind="command: replyAllCommand, tooltip: 'MESSAGE/BUTTON_REPLY_ALL'">
<i class="icon-reply-all"></i> <i class="icon-reply-all"></i>
</a> </a>
<a class="btn buttonForward" data-placement="bottom" data-bind=" command: forwardCommand, tooltip: 'MESSAGE/BUTTON_FORWARD'"> <a class="btn btn-dark-disabled-border buttonForward" data-placement="bottom" data-bind=" command: forwardCommand, tooltip: 'MESSAGE/BUTTON_FORWARD'">
<i class="icon-forward"></i> <i class="icon-forward"></i>
</a> </a>
</div> </div>
<div class="btn-group">&nbsp;</div> <div class="btn-group">&nbsp;</div>
<div class="btn-group btn-group-custom-margin"> <div class="btn-group">
<a class="btn btn-danger buttonDelete" data-placement="bottom" data-bind="command: deleteCommand, tooltip: 'MESSAGE/BUTTON_DELETE'"> <a class="btn btn-dark-disabled-border button-archive" data-placement="bottom" data-bind="visible: !isArchiveFolder() && !isArchiveDisabled(), command: archiveCommand, tooltip: 'MESSAGE/BUTTON_ARCHIVE'">
<i class="icon-trash icon-white"></i> <i class="icon-archive"></i>
</a> </a>
<a class="btn buttonSpam" data-placement="bottom" data-bind="visible: !isDraftFolder(), command: spamCommand, tooltip: 'MESSAGE/BUTTON_SPAM'"> <a class="btn btn-dark-disabled-border button-spam" data-placement="bottom" data-bind="visible: !isDraftFolder() && !isSpamFolder() && !isSpamDisabled(), command: spamCommand, tooltip: 'MESSAGE/BUTTON_SPAM'">
<i class="icon-bug"></i> <i class="icon-bug"></i>
</a> </a>
<a class="btn btn-dark-disabled-border button-delete" data-placement="bottom" data-bind="command: deleteCommand, tooltip: 'MESSAGE/BUTTON_DELETE'">
<i class="icon-trash"></i>
</a>
</div> </div>
<div class="btn-group">&nbsp;</div> <div class="btn-group">&nbsp;</div>
<div class="btn-group"> <div class="btn-group">
@ -201,15 +204,14 @@
<div class="pgpSigned" data-bind="visible: message() && message().isPgpSigned() && isPgpActionVisible(), click: function() { verifyPgpSignedClearMessage(message()); }"> <div class="pgpSigned" data-bind="visible: message() && message().isPgpSigned() && isPgpActionVisible(), click: function() { verifyPgpSignedClearMessage(message()); }">
<i class="icon-lock"></i> <i class="icon-lock"></i>
&nbsp;&nbsp; &nbsp;&nbsp;
OpenPGP signed message (click to verify) <span class="i18n" data-i18n-text="MESSAGE/PGP_SIGNED_MESSAGE_DESC"></span>
</div> </div>
<div class="pgpEncrypted" data-bind="visible: message() && message().isPgpEncrypted()"> <div class="pgpEncrypted" data-bind="visible: message() && message().isPgpEncrypted() && isPgpActionVisible()">
<i class="icon-lock"></i> <i class="icon-lock"></i>
&nbsp;&nbsp; &nbsp;&nbsp;
<span data-bind="click: function() { decryptPgpEncryptedMessage(message()); }"> <span class="i18n" data-i18n-text="MESSAGE/PGP_ENCRYPTED_MESSAGE_DESC" data-bind="click: function() { decryptPgpEncryptedMessage(message()); }"></span>
OpenPGP encrypted message (click to decrypt) &nbsp;&nbsp;
</span> <input type="password" class="i18n span3 inputPgpPassword" style="margin-bottom: 0" data-i18n-placeholder="MESSAGE/PGP_PASSWORD_INPUT_PLACEHOLDER" data-bind="value: viewPgpPassword" />
<input type="password" />
</div> </div>
<div class="attachmentsPlace" data-bind="visible: message() && message().hasVisibleAttachments()"> <div class="attachmentsPlace" data-bind="visible: message() && message().hasVisibleAttachments()">
<ul class="attachmentList" data-bind="foreach: message() ? message().attachments() : []"> <ul class="attachmentList" data-bind="foreach: message() ? message().attachments() : []">

View file

@ -14,16 +14,18 @@
</div> </div>
<br /> <br />
<div class="control-group"> <div class="control-group">
<label data-bind="click: function () { sign(!sign()); }"> <div class="controls">
<i data-bind="css: sign() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i> <label data-bind="click: function () { sign(!sign()); }">
&nbsp;&nbsp; <i data-bind="css: sign() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
<span class="i18n" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/LABEL_SIGN"></span> &nbsp;&nbsp;
</label> <span class="i18n" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/LABEL_SIGN"></span>
<label data-bind="click: function () { encrypt(!encrypt()); }"> </label>
<i data-bind="css: encrypt() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i> <label data-bind="click: function () { encrypt(!encrypt()); }">
&nbsp;&nbsp; <i data-bind="css: encrypt() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
<span class="i18n" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/LABEL_ENCRYPT"></span> &nbsp;&nbsp;
</label> <span class="i18n" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/LABEL_ENCRYPT"></span>
</label>
</div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="i18n control-label" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/LABEL_PASSWORD"></label> <label class="i18n control-label" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/LABEL_PASSWORD"></label>
@ -38,7 +40,9 @@
<a class="btn buttonDo" data-bind="command: doCommand"> <a class="btn buttonDo" data-bind="command: doCommand">
<i data-bind="css: {'icon-key': !submitRequest(), 'icon-spinner animated': submitRequest()}"></i> <i data-bind="css: {'icon-key': !submitRequest(), 'icon-spinner animated': submitRequest()}"></i>
&nbsp;&nbsp; &nbsp;&nbsp;
<span class="i18n" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/BUTTON_DO"></span> <span class="i18n" data-bind="visible: sign() && !encrypt()" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/BUTTON_SIGN"></span>
<span class="i18n" data-bind="visible: !sign() && encrypt()" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/BUTTON_ENCRYPT"></span>
<span class="i18n" data-bind="visible: (sign() && encrypt()) || (!sign() && !encrypt())" data-i18n-text="POPUPS_COMPOSE_OPEN_PGP/BUTTON_SIGN_AND_ENCRYPT"></span>
</a> </a>
</div> </div>
</div> </div>

View file

@ -34,8 +34,8 @@
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a class="btn btn-danger button-delete" data-bind="command: deleteCommand"> <a class="btn button-delete" data-bind="command: deleteCommand">
<i class="icon-trash icon-white"></i> <i class="icon-trash"></i>
<span data-bind="text: 1 < contactsCheckedOrSelected().length ? ' (' + contactsCheckedOrSelected().length + ')' : ''"></span> <span data-bind="text: 1 < contactsCheckedOrSelected().length ? ' (' + contactsCheckedOrSelected().length + ')' : ''"></span>
</a> </a>
</div> </div>

View file

@ -48,6 +48,15 @@
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defautOptionsAfterRender"></select> optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defautOptionsAfterRender"></select>
</div> </div>
</div> </div>
<div class="control-group">
<label class="control-label">
<span class="i18n" data-i18n-text="POPUPS_SYSTEM_FOLDERS/LABEL_ARCHIVE"></span>
</label>
<div class="controls">
<select data-bind="options: folderSelectList, value: archiveFolder,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defautOptionsAfterRender"></select>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -50,6 +50,7 @@ SENT_NAME = "Versandt"
DRAFTS_NAME = "Entwürfe" DRAFTS_NAME = "Entwürfe"
SPAM_NAME = "Spam" SPAM_NAME = "Spam"
TRASH_NAME = "Papierkorb" TRASH_NAME = "Papierkorb"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Speicherplatz-Verbrauch" TITLE = "Speicherplatz-Verbrauch"
@ -58,6 +59,7 @@ TITLE = "Speicherplatz-Verbrauch"
BUTTON_RELOAD = "Nachrichtenliste neu laden" BUTTON_RELOAD = "Nachrichtenliste neu laden"
BUTTON_MOVE_TO = "Verschieben nach" BUTTON_MOVE_TO = "Verschieben nach"
BUTTON_DELETE = "Löschen" BUTTON_DELETE = "Löschen"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_EMPTY_FOLDER = "Ordner leeren" BUTTON_EMPTY_FOLDER = "Ordner leeren"
BUTTON_MULTY_FORWARD = "Nachrichten weiterleiten" BUTTON_MULTY_FORWARD = "Nachrichten weiterleiten"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Bearbeiten"
BUTTON_BACK = "Zurück" BUTTON_BACK = "Zurück"
BUTTON_CLOSE = "Schließen" BUTTON_CLOSE = "Schließen"
BUTTON_DELETE = "Löschen" BUTTON_DELETE = "Löschen"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_MOVE_TO = "Verschieben nach" BUTTON_MOVE_TO = "Verschieben nach"
BUTTON_MORE = "Mehr" BUTTON_MORE = "Mehr"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Thema"
PRINT_LABEL_ATTACHMENTS = "Anhänge" PRINT_LABEL_ATTACHMENTS = "Anhänge"
MESSAGE_LOADING = "es wird geladen" MESSAGE_LOADING = "es wird geladen"
MESSAGE_VIEW_DESC = "Wählen Sie eine Nachricht aus der Liste aus um sie anzuzeigen." MESSAGE_VIEW_DESC = "Wählen Sie eine Nachricht aus der Liste aus um sie anzuzeigen."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Return Receipt (displayed) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Dieser Schritt wird alle Mails im Ordner <strong>%FOLDER%<
DANGER_DESC_HTML_2 = "Einmal begonnen, kann dieser Vorgang nicht mehr abgebrochen oder beendet werden." DANGER_DESC_HTML_2 = "Einmal begonnen, kann dieser Vorgang nicht mehr abgebrochen oder beendet werden."
TITLE_CLEARING_PROCESS = "Ordner wird gelöscht ..." TITLE_CLEARING_PROCESS = "Ordner wird gelöscht ..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Wählen Sie den System-Ordner aus" TITLE_SYSTEM_FOLDERS = "Wählen Sie den System-Ordner aus"
SELECT_CHOOSE_ONE = "Wählen Sie einen aus" SELECT_CHOOSE_ONE = "Wählen Sie einen aus"
@ -243,6 +275,7 @@ LABEL_SENT = "Gesendet"
LABEL_DRAFTS = "Entwürfe" LABEL_DRAFTS = "Entwürfe"
LABEL_SPAM = "Spam" LABEL_SPAM = "Spam"
LABEL_TRASH = "Papierkorb" LABEL_TRASH = "Papierkorb"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Abbrechen" BUTTON_CANCEL = "Abbrechen"
BUTTON_CLOSE = "Schließen" BUTTON_CLOSE = "Schließen"
@ -257,6 +290,8 @@ Falls Sie diese Nachrichten endgültig löschen möchten, wählen Sie die Option
NOTIFICATION_TRASH = "Sie haben keinen \"Papierkorb\" System-Ordner gewählt, in dem die gelöschten Nachrichten abgelegt werden. NOTIFICATION_TRASH = "Sie haben keinen \"Papierkorb\" System-Ordner gewählt, in dem die gelöschten Nachrichten abgelegt werden.
Falls Sie gelöschte Nachrichten endgültig löschen möchten, wählen Sie die Option \"Nicht anwenden\"." Falls Sie gelöschte Nachrichten endgültig löschen möchten, wählen Sie die Option \"Nicht anwenden\"."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Wird geladen" LOADING = "Wird geladen"
LOGIN = "Login" LOGIN = "Login"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Identities"
LABEL_SOCIAL_NAME = "Social" LABEL_SOCIAL_NAME = "Social"
LABEL_THEMES_NAME = "Vorlagen" LABEL_THEMES_NAME = "Vorlagen"
LABEL_CHANGE_PASSWORD_NAME = "Passwort" LABEL_CHANGE_PASSWORD_NAME = "Passwort"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Zurück" BUTTON_BACK = "Zurück"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Neues Passwordt"
LABEL_REPEAT_PASSWORD = "Neues Passwort erneut eingeben" LABEL_REPEAT_PASSWORD = "Neues Passwort erneut eingeben"
BUTTON_UPDATE_PASSWORD = "Neues Passwort setzen" BUTTON_UPDATE_PASSWORD = "Neues Passwort setzen"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Ungültiger Token" INVALID_TOKEN = "Ungültiger Token"
AUTH_ERROR = "Authentifizierung mißlungen" AUTH_ERROR = "Authentifizierung mißlungen"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Sent"
DRAFTS_NAME = "Drafts" DRAFTS_NAME = "Drafts"
SPAM_NAME = "Spam" SPAM_NAME = "Spam"
TRASH_NAME = "Trash" TRASH_NAME = "Trash"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Quota usage" TITLE = "Quota usage"
@ -58,6 +59,7 @@ TITLE = "Quota usage"
BUTTON_RELOAD = "Reload Message List" BUTTON_RELOAD = "Reload Message List"
BUTTON_MOVE_TO = "Move To" BUTTON_MOVE_TO = "Move To"
BUTTON_DELETE = "Delete" BUTTON_DELETE = "Delete"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_EMPTY_FOLDER = "Clear Folder" BUTTON_EMPTY_FOLDER = "Clear Folder"
BUTTON_MULTY_FORWARD = "Forward messages" BUTTON_MULTY_FORWARD = "Forward messages"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Edit"
BUTTON_BACK = "Back" BUTTON_BACK = "Back"
BUTTON_CLOSE = "Close" BUTTON_CLOSE = "Close"
BUTTON_DELETE = "Delete" BUTTON_DELETE = "Delete"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_MOVE_TO = "Move To" BUTTON_MOVE_TO = "Move To"
BUTTON_MORE = "More" BUTTON_MORE = "More"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Subject"
PRINT_LABEL_ATTACHMENTS = "Attachments" PRINT_LABEL_ATTACHMENTS = "Attachments"
MESSAGE_LOADING = "Loading" MESSAGE_LOADING = "Loading"
MESSAGE_VIEW_DESC = "Select message in list to view it here." MESSAGE_VIEW_DESC = "Select message in list to view it here."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Return Receipt (displayed) - %SUBJECT%"
@ -252,6 +258,15 @@ LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length" LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate" BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Select system folders" TITLE_SYSTEM_FOLDERS = "Select system folders"
SELECT_CHOOSE_ONE = "Choose one" SELECT_CHOOSE_ONE = "Choose one"
@ -260,6 +275,7 @@ LABEL_SENT = "Sent"
LABEL_DRAFTS = "Drafts" LABEL_DRAFTS = "Drafts"
LABEL_SPAM = "Spam" LABEL_SPAM = "Spam"
LABEL_TRASH = "Trash" LABEL_TRASH = "Trash"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Cancel" BUTTON_CANCEL = "Cancel"
BUTTON_CLOSE = "Close" BUTTON_CLOSE = "Close"
@ -274,6 +290,8 @@ If you wish to remove messages permanently, please select \"Do not use\" option.
NOTIFICATION_TRASH = "You haven't selected \"Trash\" system folder deleted messages are placed to. NOTIFICATION_TRASH = "You haven't selected \"Trash\" system folder deleted messages are placed to.
If you wish to remove messages permanently, please select \"Do not use\" option." If you wish to remove messages permanently, please select \"Do not use\" option."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Loading" LOADING = "Loading"
LOGIN = "Login" LOGIN = "Login"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Enviados"
DRAFTS_NAME = "Borradores" DRAFTS_NAME = "Borradores"
SPAM_NAME = "Spam" SPAM_NAME = "Spam"
TRASH_NAME = "Papelera" TRASH_NAME = "Papelera"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Uso de espacio" TITLE = "Uso de espacio"
@ -58,6 +59,7 @@ TITLE = "Uso de espacio"
BUTTON_RELOAD = "Actualizar Lista de Mensajes" BUTTON_RELOAD = "Actualizar Lista de Mensajes"
BUTTON_MOVE_TO = "Mover a" BUTTON_MOVE_TO = "Mover a"
BUTTON_DELETE = "Eliminar" BUTTON_DELETE = "Eliminar"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_EMPTY_FOLDER = "Vaciar carpeta" BUTTON_EMPTY_FOLDER = "Vaciar carpeta"
BUTTON_MULTY_FORWARD = "Reenviar mensajes" BUTTON_MULTY_FORWARD = "Reenviar mensajes"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Editar"
BUTTON_BACK = "Atrás" BUTTON_BACK = "Atrás"
BUTTON_CLOSE = "Cerrar" BUTTON_CLOSE = "Cerrar"
BUTTON_DELETE = "Eliminar" BUTTON_DELETE = "Eliminar"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_MOVE_TO = "Mover a" BUTTON_MOVE_TO = "Mover a"
BUTTON_MORE = "Más" BUTTON_MORE = "Más"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Asunto"
PRINT_LABEL_ATTACHMENTS = "Adjuntos" PRINT_LABEL_ATTACHMENTS = "Adjuntos"
MESSAGE_LOADING = "Cargando" MESSAGE_LOADING = "Cargando"
MESSAGE_VIEW_DESC = "Seleccione un mensaje en la lista para verlo aquí." MESSAGE_VIEW_DESC = "Seleccione un mensaje en la lista para verlo aquí."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Return Receipt (displayed) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Con esta acción usted puede borrar todos los emails de la
DANGER_DESC_HTML_2 = "Una vez comenzado, el proceso no puede ser abortado ni cancelado." DANGER_DESC_HTML_2 = "Una vez comenzado, el proceso no puede ser abortado ni cancelado."
TITLE_CLEARING_PROCESS = "Limpiando carpeta..." TITLE_CLEARING_PROCESS = "Limpiando carpeta..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Seleccione las carpetas del sistema" TITLE_SYSTEM_FOLDERS = "Seleccione las carpetas del sistema"
SELECT_CHOOSE_ONE = "Elija una" SELECT_CHOOSE_ONE = "Elija una"
@ -243,6 +275,7 @@ LABEL_SENT = "Enviados"
LABEL_DRAFTS = "Borradores" LABEL_DRAFTS = "Borradores"
LABEL_SPAM = "Spam" LABEL_SPAM = "Spam"
LABEL_TRASH = "Papelera" LABEL_TRASH = "Papelera"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Cancelar" BUTTON_CANCEL = "Cancelar"
BUTTON_CLOSE = "Cerrar" BUTTON_CLOSE = "Cerrar"
@ -257,6 +290,8 @@ Si desea eliminar los mensajes permanentemente, por favor seleccione la opción
NOTIFICATION_TRASH = "Usted no ha seleccionado la carpeta del sistema para alojar los mensajes enviados a la \"Papelera\" . NOTIFICATION_TRASH = "Usted no ha seleccionado la carpeta del sistema para alojar los mensajes enviados a la \"Papelera\" .
Si desea eliminar los mensajes permanentemente, por favor seleccione la opción \"No usar\"." Si desea eliminar los mensajes permanentemente, por favor seleccione la opción \"No usar\"."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Cargando" LOADING = "Cargando"
LOGIN = "Ingresar" LOGIN = "Ingresar"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Identities"
LABEL_SOCIAL_NAME = "Social" LABEL_SOCIAL_NAME = "Social"
LABEL_THEMES_NAME = "Temas" LABEL_THEMES_NAME = "Temas"
LABEL_CHANGE_PASSWORD_NAME = "Contraseña" LABEL_CHANGE_PASSWORD_NAME = "Contraseña"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Atrás" BUTTON_BACK = "Atrás"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Nueva contraseña"
LABEL_REPEAT_PASSWORD = "Otra vez su Nueva contraseña" LABEL_REPEAT_PASSWORD = "Otra vez su Nueva contraseña"
BUTTON_UPDATE_PASSWORD = "Establecer nueva contraseña" BUTTON_UPDATE_PASSWORD = "Establecer nueva contraseña"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Elemento Inválido" INVALID_TOKEN = "Elemento Inválido"
AUTH_ERROR = "Autentificación fallida" AUTH_ERROR = "Autentificación fallida"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Envoyés"
DRAFTS_NAME = "Brouillons" DRAFTS_NAME = "Brouillons"
SPAM_NAME = "Spam" SPAM_NAME = "Spam"
TRASH_NAME = "Corbeille" TRASH_NAME = "Corbeille"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Quota" TITLE = "Quota"
@ -58,6 +59,7 @@ TITLE = "Quota"
BUTTON_RELOAD = "Recharger la liste des messages" BUTTON_RELOAD = "Recharger la liste des messages"
BUTTON_MOVE_TO = "Déplacer vers" BUTTON_MOVE_TO = "Déplacer vers"
BUTTON_DELETE = "Supprimer" BUTTON_DELETE = "Supprimer"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_EMPTY_FOLDER = "Vider le dossier" BUTTON_EMPTY_FOLDER = "Vider le dossier"
BUTTON_MULTY_FORWARD = "Transmettre les messages" BUTTON_MULTY_FORWARD = "Transmettre les messages"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Modifier"
BUTTON_BACK = "Retour" BUTTON_BACK = "Retour"
BUTTON_CLOSE = "Fermer" BUTTON_CLOSE = "Fermer"
BUTTON_DELETE = "Supprimer" BUTTON_DELETE = "Supprimer"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_MOVE_TO = "Déplacer vers" BUTTON_MOVE_TO = "Déplacer vers"
BUTTON_MORE = "Plus" BUTTON_MORE = "Plus"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Sujet"
PRINT_LABEL_ATTACHMENTS = "Pièces jointes" PRINT_LABEL_ATTACHMENTS = "Pièces jointes"
MESSAGE_LOADING = "Chargement" MESSAGE_LOADING = "Chargement"
MESSAGE_VIEW_DESC = "Sélectionner un message dans la liste pour l'afficher ici." MESSAGE_VIEW_DESC = "Sélectionner un message dans la liste pour l'afficher ici."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Accusé de réception (affiché) - %SUBJECT%" SUBJECT = "Accusé de réception (affiché) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Cette action effacera tous les mails du dossier <strong>%F
DANGER_DESC_HTML_2 = "Une fois lancé, le processus ne peut pas être interrompu ou annulé." DANGER_DESC_HTML_2 = "Une fois lancé, le processus ne peut pas être interrompu ou annulé."
TITLE_CLEARING_PROCESS = "Purge du dossier..." TITLE_CLEARING_PROCESS = "Purge du dossier..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Sélectionner les dossiers système" TITLE_SYSTEM_FOLDERS = "Sélectionner les dossiers système"
SELECT_CHOOSE_ONE = "Faites un choix" SELECT_CHOOSE_ONE = "Faites un choix"
@ -243,6 +275,7 @@ LABEL_SENT = "Envoyés"
LABEL_DRAFTS = "Bouillons" LABEL_DRAFTS = "Bouillons"
LABEL_SPAM = "Spam" LABEL_SPAM = "Spam"
LABEL_TRASH = "Corbeille" LABEL_TRASH = "Corbeille"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Annuler" BUTTON_CANCEL = "Annuler"
BUTTON_CLOSE = "Fermer" BUTTON_CLOSE = "Fermer"
@ -257,6 +290,8 @@ Si vous ne souhaitez supprimer définitivement les messages, sélectionner l'opt
NOTIFICATION_TRASH = "Vous n'avez pas sélectionné de dossier \"Corbeille\" où placer les messages supprimés. NOTIFICATION_TRASH = "Vous n'avez pas sélectionné de dossier \"Corbeille\" où placer les messages supprimés.
Si vous ne souhaitez supprimer définitivement les messages, sélectionner l'option \"Ne pas utiliser\"." Si vous ne souhaitez supprimer définitivement les messages, sélectionner l'option \"Ne pas utiliser\"."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Chargement" LOADING = "Chargement"
LOGIN = "Identifiant" LOGIN = "Identifiant"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Identities"
LABEL_SOCIAL_NAME = "Social" LABEL_SOCIAL_NAME = "Social"
LABEL_THEMES_NAME = "Thèmes" LABEL_THEMES_NAME = "Thèmes"
LABEL_CHANGE_PASSWORD_NAME = "Mot de passe" LABEL_CHANGE_PASSWORD_NAME = "Mot de passe"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Retour" BUTTON_BACK = "Retour"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Nouveau mot de passe"
LABEL_REPEAT_PASSWORD = "Confirmation du nouveau mot de passe" LABEL_REPEAT_PASSWORD = "Confirmation du nouveau mot de passe"
BUTTON_UPDATE_PASSWORD = "Enregistrer le nouveau mot de passe" BUTTON_UPDATE_PASSWORD = "Enregistrer le nouveau mot de passe"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Jeton invalide" INVALID_TOKEN = "Jeton invalide"
AUTH_ERROR = "L'authentification a échoué" AUTH_ERROR = "L'authentification a échoué"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Elküldött levelek"
DRAFTS_NAME = "Piszkozatok" DRAFTS_NAME = "Piszkozatok"
SPAM_NAME = "Levélszemét" SPAM_NAME = "Levélszemét"
TRASH_NAME = "Lomtár" TRASH_NAME = "Lomtár"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Helyfoglalás" TITLE = "Helyfoglalás"
@ -58,6 +59,7 @@ TITLE = "Helyfoglalás"
BUTTON_RELOAD = "Levél lista újratöltés" BUTTON_RELOAD = "Levél lista újratöltés"
BUTTON_MOVE_TO = "Áthelyezés" BUTTON_MOVE_TO = "Áthelyezés"
BUTTON_DELETE = "Törlés" BUTTON_DELETE = "Törlés"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Levélszemét" BUTTON_SPAM = "Levélszemét"
BUTTON_EMPTY_FOLDER = "Mappa űrítés" BUTTON_EMPTY_FOLDER = "Mappa űrítés"
BUTTON_MULTY_FORWARD = "Levél továbbítás" BUTTON_MULTY_FORWARD = "Levél továbbítás"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Szerkesztés"
BUTTON_BACK = "Vissza" BUTTON_BACK = "Vissza"
BUTTON_CLOSE = "Bezárás" BUTTON_CLOSE = "Bezárás"
BUTTON_DELETE = "Tőrlés" BUTTON_DELETE = "Tőrlés"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Levélszemét" BUTTON_SPAM = "Levélszemét"
BUTTON_MOVE_TO = "Áthelyezés" BUTTON_MOVE_TO = "Áthelyezés"
BUTTON_MORE = "Egyéb" BUTTON_MORE = "Egyéb"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Tárgy"
PRINT_LABEL_ATTACHMENTS = "Mellékletek" PRINT_LABEL_ATTACHMENTS = "Mellékletek"
MESSAGE_LOADING = "Betöltés" MESSAGE_LOADING = "Betöltés"
MESSAGE_VIEW_DESC = "Select message in list to view it here." MESSAGE_VIEW_DESC = "Select message in list to view it here."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Return Receipt (displayed) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "This action will result in removing all mails from <strong
DANGER_DESC_HTML_2 = "Once started, the process cannot be aborted or cancelled." DANGER_DESC_HTML_2 = "Once started, the process cannot be aborted or cancelled."
TITLE_CLEARING_PROCESS = "Purging the folder..." TITLE_CLEARING_PROCESS = "Purging the folder..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Select system folders" TITLE_SYSTEM_FOLDERS = "Select system folders"
SELECT_CHOOSE_ONE = "Choose one" SELECT_CHOOSE_ONE = "Choose one"
@ -243,6 +275,7 @@ LABEL_SENT = "Sent"
LABEL_DRAFTS = "Drafts" LABEL_DRAFTS = "Drafts"
LABEL_SPAM = "Spam" LABEL_SPAM = "Spam"
LABEL_TRASH = "Trash" LABEL_TRASH = "Trash"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Cancel" BUTTON_CANCEL = "Cancel"
BUTTON_CLOSE = "Close" BUTTON_CLOSE = "Close"
@ -257,6 +290,8 @@ If you wish to remove messages permanently, please select \"Do not use\" option.
NOTIFICATION_TRASH = "You haven't selected \"Trash\" system folder deleted messages are placed to. NOTIFICATION_TRASH = "You haven't selected \"Trash\" system folder deleted messages are placed to.
If you wish to remove messages permanently, please select \"Do not use\" option." If you wish to remove messages permanently, please select \"Do not use\" option."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Loading" LOADING = "Loading"
LOGIN = "Login" LOGIN = "Login"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Identitások"
LABEL_SOCIAL_NAME = "Közösség" LABEL_SOCIAL_NAME = "Közösség"
LABEL_THEMES_NAME = "Sablonok" LABEL_THEMES_NAME = "Sablonok"
LABEL_CHANGE_PASSWORD_NAME = "Jelszó" LABEL_CHANGE_PASSWORD_NAME = "Jelszó"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Vissza" BUTTON_BACK = "Vissza"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "New password"
LABEL_REPEAT_PASSWORD = "New password again" LABEL_REPEAT_PASSWORD = "New password again"
BUTTON_UPDATE_PASSWORD = "Set New Password" BUTTON_UPDATE_PASSWORD = "Set New Password"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Invalid token" INVALID_TOKEN = "Invalid token"
AUTH_ERROR = "Authentication failed" AUTH_ERROR = "Authentication failed"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Sent"
DRAFTS_NAME = "Drög" DRAFTS_NAME = "Drög"
SPAM_NAME = "Ruslpóstur" SPAM_NAME = "Ruslpóstur"
TRASH_NAME = "Ruslatunna" TRASH_NAME = "Ruslatunna"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Diska notkun" TITLE = "Diska notkun"
@ -58,6 +59,7 @@ TITLE = "Diska notkun"
BUTTON_RELOAD = "Endurhlaða Skilaboða Lista" BUTTON_RELOAD = "Endurhlaða Skilaboða Lista"
BUTTON_MOVE_TO = "Færa í" BUTTON_MOVE_TO = "Færa í"
BUTTON_DELETE = "Eyða" BUTTON_DELETE = "Eyða"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Ruslpóstur" BUTTON_SPAM = "Ruslpóstur"
BUTTON_EMPTY_FOLDER = "Hreinsa Möppu" BUTTON_EMPTY_FOLDER = "Hreinsa Möppu"
BUTTON_MULTY_FORWARD = "Áframsenda skilaboð" BUTTON_MULTY_FORWARD = "Áframsenda skilaboð"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Breyta"
BUTTON_BACK = "Til baka" BUTTON_BACK = "Til baka"
BUTTON_CLOSE = "Loka" BUTTON_CLOSE = "Loka"
BUTTON_DELETE = "Eyða" BUTTON_DELETE = "Eyða"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Ruslpóstur" BUTTON_SPAM = "Ruslpóstur"
BUTTON_MOVE_TO = "Færa í" BUTTON_MOVE_TO = "Færa í"
BUTTON_MORE = "Meira" BUTTON_MORE = "Meira"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Viðhengi"
PRINT_LABEL_ATTACHMENTS = "Viðhengi" PRINT_LABEL_ATTACHMENTS = "Viðhengi"
MESSAGE_LOADING = "Hleð" MESSAGE_LOADING = "Hleð"
MESSAGE_VIEW_DESC = "Veldu bréf úr listanum til að skoða hér." MESSAGE_VIEW_DESC = "Veldu bréf úr listanum til að skoða hér."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Return Receipt (displayed) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Þessi aðgerð veldur því að öll bréf úr <strong>%F
DANGER_DESC_HTML_2 = "Það er ekki hægt að hætta við aðgerðina eftir að búið er að keyra hana." DANGER_DESC_HTML_2 = "Það er ekki hægt að hætta við aðgerðina eftir að búið er að keyra hana."
TITLE_CLEARING_PROCESS = "Tæmi möppu..." TITLE_CLEARING_PROCESS = "Tæmi möppu..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Veldu kerfismöppur" TITLE_SYSTEM_FOLDERS = "Veldu kerfismöppur"
SELECT_CHOOSE_ONE = "Veldu eitt" SELECT_CHOOSE_ONE = "Veldu eitt"
@ -243,6 +275,7 @@ LABEL_SENT = "Sent"
LABEL_DRAFTS = "Drög" LABEL_DRAFTS = "Drög"
LABEL_SPAM = "Ruslpóstur" LABEL_SPAM = "Ruslpóstur"
LABEL_TRASH = "Ruslatunna" LABEL_TRASH = "Ruslatunna"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Hætta við" BUTTON_CANCEL = "Hætta við"
BUTTON_CLOSE = "Loka" BUTTON_CLOSE = "Loka"
@ -257,6 +290,8 @@ Ef þú vilt fjarlægja bréf endanlega, vinsamlegast veldu \"Ekki nota\" valmö
NOTIFICATION_TRASH = "Þú hefur ekki valið \"Ruslatunna\" kerfismöppu sem eydd bréf eru sett í. NOTIFICATION_TRASH = "Þú hefur ekki valið \"Ruslatunna\" kerfismöppu sem eydd bréf eru sett í.
Ef þú vilt fjarlægja bréfið endanlega, vinsamlegast veldu \"Ekki nota\" valmöguleikann." Ef þú vilt fjarlægja bréfið endanlega, vinsamlegast veldu \"Ekki nota\" valmöguleikann."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Hleð" LOADING = "Hleð"
LOGIN = "Innskrá" LOGIN = "Innskrá"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Identities"
LABEL_SOCIAL_NAME = "Félagsmiðlar" LABEL_SOCIAL_NAME = "Félagsmiðlar"
LABEL_THEMES_NAME = "Þemur" LABEL_THEMES_NAME = "Þemur"
LABEL_CHANGE_PASSWORD_NAME = "Lykilorð" LABEL_CHANGE_PASSWORD_NAME = "Lykilorð"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Til baka" BUTTON_BACK = "Til baka"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Nýtt lykilorð"
LABEL_REPEAT_PASSWORD = "Nýtt lykilorð aftur" LABEL_REPEAT_PASSWORD = "Nýtt lykilorð aftur"
BUTTON_UPDATE_PASSWORD = "Setja nýtt lykilorð" BUTTON_UPDATE_PASSWORD = "Setja nýtt lykilorð"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Rangt tákn" INVALID_TOKEN = "Rangt tákn"
AUTH_ERROR = "Auðkenning mistókst" AUTH_ERROR = "Auðkenning mistókst"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Posta inviata"
DRAFTS_NAME = "Bozze" DRAFTS_NAME = "Bozze"
SPAM_NAME = "Posta indesiderata" SPAM_NAME = "Posta indesiderata"
TRASH_NAME = "Cestino" TRASH_NAME = "Cestino"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Uso della quota" TITLE = "Uso della quota"
@ -58,6 +59,7 @@ TITLE = "Uso della quota"
BUTTON_RELOAD = "Ricarica lista messaggi" BUTTON_RELOAD = "Ricarica lista messaggi"
BUTTON_MOVE_TO = "Sposta in" BUTTON_MOVE_TO = "Sposta in"
BUTTON_DELETE = "Cancella" BUTTON_DELETE = "Cancella"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Marca come indesiderati" BUTTON_SPAM = "Marca come indesiderati"
BUTTON_EMPTY_FOLDER = "Pulisci cartella" BUTTON_EMPTY_FOLDER = "Pulisci cartella"
BUTTON_MULTY_FORWARD = "Inoltra messaggi" BUTTON_MULTY_FORWARD = "Inoltra messaggi"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Modifica"
BUTTON_BACK = "Indietro" BUTTON_BACK = "Indietro"
BUTTON_CLOSE = "Chiudi" BUTTON_CLOSE = "Chiudi"
BUTTON_DELETE = "Cancella" BUTTON_DELETE = "Cancella"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Marca come indesiderato" BUTTON_SPAM = "Marca come indesiderato"
BUTTON_MOVE_TO = "Sposta in" BUTTON_MOVE_TO = "Sposta in"
BUTTON_MORE = "Di più" BUTTON_MORE = "Di più"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Oggetto"
PRINT_LABEL_ATTACHMENTS = "Allegati" PRINT_LABEL_ATTACHMENTS = "Allegati"
MESSAGE_LOADING = "Caricamento..." MESSAGE_LOADING = "Caricamento..."
MESSAGE_VIEW_DESC = "Seleziona un messaggio dalla lista per visualizzarlo qui" MESSAGE_VIEW_DESC = "Seleziona un messaggio dalla lista per visualizzarlo qui"
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Avviso di lettura - %SUBJECT%" SUBJECT = "Avviso di lettura - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Questa azione cancellerà tutti i messaggi presenti nella
DANGER_DESC_HTML_2 = "Una volta iniziato, il processo non può più essere annullato." DANGER_DESC_HTML_2 = "Una volta iniziato, il processo non può più essere annullato."
TITLE_CLEARING_PROCESS = "Svuotando la cartella..." TITLE_CLEARING_PROCESS = "Svuotando la cartella..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Seleziona le cartelle di sistema" TITLE_SYSTEM_FOLDERS = "Seleziona le cartelle di sistema"
SELECT_CHOOSE_ONE = "Selezionane una" SELECT_CHOOSE_ONE = "Selezionane una"
@ -243,6 +275,7 @@ LABEL_SENT = "Posta inviata"
LABEL_DRAFTS = "Bozze" LABEL_DRAFTS = "Bozze"
LABEL_SPAM = "Posta indesiderata" LABEL_SPAM = "Posta indesiderata"
LABEL_TRASH = "Cestino" LABEL_TRASH = "Cestino"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Annulla" BUTTON_CANCEL = "Annulla"
BUTTON_CLOSE = "Chiudi" BUTTON_CLOSE = "Chiudi"
@ -257,6 +290,8 @@ Se li vuoi rimuovere permanentemente seleziona \"Non usarla\"."
NOTIFICATION_TRASH = "Non hai selezionato una cartella di sistema per il cestino. NOTIFICATION_TRASH = "Non hai selezionato una cartella di sistema per il cestino.
Se non lo vuoi usare (e quindi cancellare i messaggi permanentemente) seleziona \"Non usarla\"." Se non lo vuoi usare (e quindi cancellare i messaggi permanentemente) seleziona \"Non usarla\"."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Caricamento..." LOADING = "Caricamento..."
LOGIN = "Accedi" LOGIN = "Accedi"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Identità"
LABEL_SOCIAL_NAME = "Social" LABEL_SOCIAL_NAME = "Social"
LABEL_THEMES_NAME = "Temi" LABEL_THEMES_NAME = "Temi"
LABEL_CHANGE_PASSWORD_NAME = "Password" LABEL_CHANGE_PASSWORD_NAME = "Password"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Indietro" BUTTON_BACK = "Indietro"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Nuova password"
LABEL_REPEAT_PASSWORD = "Ripeti nuova password" LABEL_REPEAT_PASSWORD = "Ripeti nuova password"
BUTTON_UPDATE_PASSWORD = "Cambia password" BUTTON_UPDATE_PASSWORD = "Cambia password"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Token invalido" INVALID_TOKEN = "Token invalido"
AUTH_ERROR = "Autenticazione fallita" AUTH_ERROR = "Autenticazione fallita"

View file

@ -50,6 +50,7 @@ SENT_NAME = "送信済み"
DRAFTS_NAME = "下書き" DRAFTS_NAME = "下書き"
SPAM_NAME = "迷惑メール" SPAM_NAME = "迷惑メール"
TRASH_NAME = "ごみ箱" TRASH_NAME = "ごみ箱"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "クォータ使用量" TITLE = "クォータ使用量"
@ -58,6 +59,7 @@ TITLE = "クォータ使用量"
BUTTON_RELOAD = "リスト更新" BUTTON_RELOAD = "リスト更新"
BUTTON_MOVE_TO = "移動" BUTTON_MOVE_TO = "移動"
BUTTON_DELETE = "削除" BUTTON_DELETE = "削除"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "迷惑メールにする" BUTTON_SPAM = "迷惑メールにする"
BUTTON_EMPTY_FOLDER = "フォルダを空に" BUTTON_EMPTY_FOLDER = "フォルダを空に"
BUTTON_MULTY_FORWARD = "転送" BUTTON_MULTY_FORWARD = "転送"
@ -92,6 +94,7 @@ BUTTON_EDIT = "編集"
BUTTON_BACK = "戻る" BUTTON_BACK = "戻る"
BUTTON_CLOSE = "閉じる" BUTTON_CLOSE = "閉じる"
BUTTON_DELETE = "削除" BUTTON_DELETE = "削除"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "迷惑メール" BUTTON_SPAM = "迷惑メール"
BUTTON_MOVE_TO = "移動" BUTTON_MOVE_TO = "移動"
BUTTON_MORE = "その他" BUTTON_MORE = "その他"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "件名"
PRINT_LABEL_ATTACHMENTS = "添付ファイル" PRINT_LABEL_ATTACHMENTS = "添付ファイル"
MESSAGE_LOADING = "読み込み中" MESSAGE_LOADING = "読み込み中"
MESSAGE_VIEW_DESC = "選択したメールがここに表示されます。" MESSAGE_VIEW_DESC = "選択したメールがここに表示されます。"
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "開封確認メッセージ - %SUBJECT%" SUBJECT = "開封確認メッセージ - %SUBJECT%"
@ -252,6 +258,15 @@ LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length" LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate" BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Select system folders" TITLE_SYSTEM_FOLDERS = "Select system folders"
SELECT_CHOOSE_ONE = "Choose one" SELECT_CHOOSE_ONE = "Choose one"
@ -260,6 +275,7 @@ LABEL_SENT = "送信済み"
LABEL_DRAFTS = "下書き" LABEL_DRAFTS = "下書き"
LABEL_SPAM = "迷惑メール" LABEL_SPAM = "迷惑メール"
LABEL_TRASH = "ゴミ箱" LABEL_TRASH = "ゴミ箱"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "キャンセル" BUTTON_CANCEL = "キャンセル"
BUTTON_CLOSE = "閉じる" BUTTON_CLOSE = "閉じる"
@ -274,6 +290,8 @@ If you wish to remove messages permanently, please select \"Do not use\" option.
NOTIFICATION_TRASH = "You haven't selected \"Trash\" system folder deleted messages are placed to. NOTIFICATION_TRASH = "You haven't selected \"Trash\" system folder deleted messages are placed to.
If you wish to remove messages permanently, please select \"Do not use\" option." If you wish to remove messages permanently, please select \"Do not use\" option."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Loading" LOADING = "Loading"
LOGIN = "Login" LOGIN = "Login"

View file

@ -50,6 +50,7 @@ SENT_NAME = "보낸 편지함"
DRAFTS_NAME = "임시 보관함" DRAFTS_NAME = "임시 보관함"
SPAM_NAME = "스팸함" SPAM_NAME = "스팸함"
TRASH_NAME = "휴지통" TRASH_NAME = "휴지통"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "사용량" TITLE = "사용량"
@ -58,6 +59,7 @@ TITLE = "사용량"
BUTTON_RELOAD = "메일 목록 새로고침" BUTTON_RELOAD = "메일 목록 새로고침"
BUTTON_MOVE_TO = "이동" BUTTON_MOVE_TO = "이동"
BUTTON_DELETE = "삭제" BUTTON_DELETE = "삭제"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "스팸" BUTTON_SPAM = "스팸"
BUTTON_EMPTY_FOLDER = "폴더 비우기" BUTTON_EMPTY_FOLDER = "폴더 비우기"
BUTTON_MULTY_FORWARD = "전달" BUTTON_MULTY_FORWARD = "전달"
@ -92,6 +94,7 @@ BUTTON_EDIT = "수정"
BUTTON_BACK = "뒤로" BUTTON_BACK = "뒤로"
BUTTON_CLOSE = "닫기" BUTTON_CLOSE = "닫기"
BUTTON_DELETE = "삭제" BUTTON_DELETE = "삭제"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "스팸" BUTTON_SPAM = "스팸"
BUTTON_MOVE_TO = "이동" BUTTON_MOVE_TO = "이동"
BUTTON_MORE = "더보기" BUTTON_MORE = "더보기"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "제목"
PRINT_LABEL_ATTACHMENTS = "첨부파일" PRINT_LABEL_ATTACHMENTS = "첨부파일"
MESSAGE_LOADING = "여는 중..." MESSAGE_LOADING = "여는 중..."
MESSAGE_VIEW_DESC = "목록에서 선택한 메시지가 여기에 표시됩니다." MESSAGE_VIEW_DESC = "목록에서 선택한 메시지가 여기에 표시됩니다."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Return Receipt (displayed) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "이 동작은 <strong>%FOLDER%</strong> 폴더의 메시
DANGER_DESC_HTML_2 = "작업이 시작되면 중지하거나 취소할 수 없습니다." DANGER_DESC_HTML_2 = "작업이 시작되면 중지하거나 취소할 수 없습니다."
TITLE_CLEARING_PROCESS = "폴더 비우는 중..." TITLE_CLEARING_PROCESS = "폴더 비우는 중..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "메일함을 지정해주세요" TITLE_SYSTEM_FOLDERS = "메일함을 지정해주세요"
SELECT_CHOOSE_ONE = "선택해주세요" SELECT_CHOOSE_ONE = "선택해주세요"
@ -243,6 +275,7 @@ LABEL_SENT = "보낸 편지함"
LABEL_DRAFTS = "임시 보관함" LABEL_DRAFTS = "임시 보관함"
LABEL_SPAM = "스팸함" LABEL_SPAM = "스팸함"
LABEL_TRASH = "휴지통" LABEL_TRASH = "휴지통"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "취소" BUTTON_CANCEL = "취소"
BUTTON_CLOSE = "닫기" BUTTON_CLOSE = "닫기"
@ -254,6 +287,8 @@ NOTIFICATION_SPAM = "스팸함 폴더가 지정되지 않았습니다. 스팸처
NOTIFICATION_TRASH = "휴지통 폴더가 지정되지 않았습니다. 삭제한 메시지를 휴지통에 보관하지 않고 바로 삭제하려면 \"사용하지 않음\" 옵션을 선택해주세요." NOTIFICATION_TRASH = "휴지통 폴더가 지정되지 않았습니다. 삭제한 메시지를 휴지통에 보관하지 않고 바로 삭제하려면 \"사용하지 않음\" 옵션을 선택해주세요."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "로딩 중" LOADING = "로딩 중"
LOGIN = "로그인" LOGIN = "로그인"
@ -286,6 +321,7 @@ LABEL_IDENTITIES_NAME = "신원"
LABEL_SOCIAL_NAME = "소셜" LABEL_SOCIAL_NAME = "소셜"
LABEL_THEMES_NAME = "테마" LABEL_THEMES_NAME = "테마"
LABEL_CHANGE_PASSWORD_NAME = "비밀번호" LABEL_CHANGE_PASSWORD_NAME = "비밀번호"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "뒤로" BUTTON_BACK = "뒤로"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -394,6 +430,14 @@ LABEL_NEW_PASSWORD = "새 비밀번호"
LABEL_REPEAT_PASSWORD = "비밀번호 재입력" LABEL_REPEAT_PASSWORD = "비밀번호 재입력"
BUTTON_UPDATE_PASSWORD = "비밀번호 변경" BUTTON_UPDATE_PASSWORD = "비밀번호 변경"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "잘못된 토큰입니다." INVALID_TOKEN = "잘못된 토큰입니다."
AUTH_ERROR = "인증 실패" AUTH_ERROR = "인증 실패"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Nosūtītie"
DRAFTS_NAME = "Melnraksti" DRAFTS_NAME = "Melnraksti"
SPAM_NAME = "Spams" SPAM_NAME = "Spams"
TRASH_NAME = "Miskaste" TRASH_NAME = "Miskaste"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Kvotas izmantojums" TITLE = "Kvotas izmantojums"
@ -58,6 +59,7 @@ TITLE = "Kvotas izmantojums"
BUTTON_RELOAD = "Pārlādēt ziņojumu sarakstu" BUTTON_RELOAD = "Pārlādēt ziņojumu sarakstu"
BUTTON_MOVE_TO = "Pārvietot uz" BUTTON_MOVE_TO = "Pārvietot uz"
BUTTON_DELETE = "Dzēst" BUTTON_DELETE = "Dzēst"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spams" BUTTON_SPAM = "Spams"
BUTTON_EMPTY_FOLDER = "Iztīrīt mapi" BUTTON_EMPTY_FOLDER = "Iztīrīt mapi"
BUTTON_MULTY_FORWARD = "Pārsūtīt ziņojumus" BUTTON_MULTY_FORWARD = "Pārsūtīt ziņojumus"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Labot"
BUTTON_BACK = "Atpakaļ" BUTTON_BACK = "Atpakaļ"
BUTTON_CLOSE = "Aizvērt" BUTTON_CLOSE = "Aizvērt"
BUTTON_DELETE = "Dzēst" BUTTON_DELETE = "Dzēst"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spams" BUTTON_SPAM = "Spams"
BUTTON_MOVE_TO = "Pārvietot uz" BUTTON_MOVE_TO = "Pārvietot uz"
BUTTON_MORE = "Vairāk" BUTTON_MORE = "Vairāk"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Tēma"
PRINT_LABEL_ATTACHMENTS = "Pielikumi" PRINT_LABEL_ATTACHMENTS = "Pielikumi"
MESSAGE_LOADING = "Lādējās" MESSAGE_LOADING = "Lādējās"
MESSAGE_VIEW_DESC = "Izvēlaties ziņojumu no saraksta lai to apskatītu." MESSAGE_VIEW_DESC = "Izvēlaties ziņojumu no saraksta lai to apskatītu."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Return Receipt (displayed) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Šī darbība izdzēsīs visus ziņojumus no <strong>%FOLD
DANGER_DESC_HTML_2 = "Šo procesu nevarēs apturēt." DANGER_DESC_HTML_2 = "Šo procesu nevarēs apturēt."
TITLE_CLEARING_PROCESS = "Mape tiek iztīrīta..." TITLE_CLEARING_PROCESS = "Mape tiek iztīrīta..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Izvēlaties sistēmas mapes" TITLE_SYSTEM_FOLDERS = "Izvēlaties sistēmas mapes"
SELECT_CHOOSE_ONE = "Izvēlaties vienu" SELECT_CHOOSE_ONE = "Izvēlaties vienu"
@ -243,6 +275,7 @@ LABEL_SENT = "Nosūtīts"
LABEL_DRAFTS = "Melnraksts" LABEL_DRAFTS = "Melnraksts"
LABEL_SPAM = "Spams" LABEL_SPAM = "Spams"
LABEL_TRASH = "Miskaste" LABEL_TRASH = "Miskaste"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Atcelt" BUTTON_CANCEL = "Atcelt"
BUTTON_CLOSE = "Aizvērt" BUTTON_CLOSE = "Aizvērt"
@ -257,6 +290,8 @@ Ja tu vēlies izdzēst ziņojumus pavisam, izvēlies \"Neizmantot\" opciju."
NOTIFICATION_TRASH = "Tu neesi izvēlējies \"Miskaste\" sistēmas mapi. NOTIFICATION_TRASH = "Tu neesi izvēlējies \"Miskaste\" sistēmas mapi.
Ja tu vēlies izdzēst ziņojumus pavisam, izvēlies \"Neizmantot\" opciju." Ja tu vēlies izdzēst ziņojumus pavisam, izvēlies \"Neizmantot\" opciju."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Lādējas" LOADING = "Lādējas"
LOGIN = "Ielogoties" LOGIN = "Ielogoties"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Identities"
LABEL_SOCIAL_NAME = "Sociālie" LABEL_SOCIAL_NAME = "Sociālie"
LABEL_THEMES_NAME = "Tēmas" LABEL_THEMES_NAME = "Tēmas"
LABEL_CHANGE_PASSWORD_NAME = "Parole" LABEL_CHANGE_PASSWORD_NAME = "Parole"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Atpakaļ" BUTTON_BACK = "Atpakaļ"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Jaunā parole"
LABEL_REPEAT_PASSWORD = "Jaunā parole vēlreiz" LABEL_REPEAT_PASSWORD = "Jaunā parole vēlreiz"
BUTTON_UPDATE_PASSWORD = "Saglabāt paroli" BUTTON_UPDATE_PASSWORD = "Saglabāt paroli"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Nepareizs tokens" INVALID_TOKEN = "Nepareizs tokens"
AUTH_ERROR = "Autorizācija neizdevās" AUTH_ERROR = "Autorizācija neizdevās"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Verzonden"
DRAFTS_NAME = "Klad" DRAFTS_NAME = "Klad"
SPAM_NAME = "Spam" SPAM_NAME = "Spam"
TRASH_NAME = "Prullenbak" TRASH_NAME = "Prullenbak"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Quota gebruik" TITLE = "Quota gebruik"
@ -58,6 +59,7 @@ TITLE = "Quota gebruik"
BUTTON_RELOAD = "Berichten lijst herladen" BUTTON_RELOAD = "Berichten lijst herladen"
BUTTON_MOVE_TO = "Verplaatsen naar" BUTTON_MOVE_TO = "Verplaatsen naar"
BUTTON_DELETE = "Verwijderen" BUTTON_DELETE = "Verwijderen"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_EMPTY_FOLDER = "Map leeg maken" BUTTON_EMPTY_FOLDER = "Map leeg maken"
BUTTON_MULTY_FORWARD = "Berichten Doorsturen" BUTTON_MULTY_FORWARD = "Berichten Doorsturen"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Aanpassen"
BUTTON_BACK = "Terug" BUTTON_BACK = "Terug"
BUTTON_CLOSE = "Sluiten" BUTTON_CLOSE = "Sluiten"
BUTTON_DELETE = "Verwijderen" BUTTON_DELETE = "Verwijderen"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_MOVE_TO = "Verplaatsen naar" BUTTON_MOVE_TO = "Verplaatsen naar"
BUTTON_MORE = "Meer" BUTTON_MORE = "Meer"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Onderwerp"
PRINT_LABEL_ATTACHMENTS = "Bijlages" PRINT_LABEL_ATTACHMENTS = "Bijlages"
MESSAGE_LOADING = "Bericht ophalen" MESSAGE_LOADING = "Bericht ophalen"
MESSAGE_VIEW_DESC = "Selecteer het bericht in de lijst om hier te bekijken." MESSAGE_VIEW_DESC = "Selecteer het bericht in de lijst om hier te bekijken."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Return Receipt (displayed) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Deze actie verwijdert alle emails van de map <strong>%FOLD
DANGER_DESC_HTML_2 = "Eens in gang gezet kan het proces niet geannuleerd worden!" DANGER_DESC_HTML_2 = "Eens in gang gezet kan het proces niet geannuleerd worden!"
TITLE_CLEARING_PROCESS = "Folder aan het leegmaken..." TITLE_CLEARING_PROCESS = "Folder aan het leegmaken..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Selecteer systeem mappen" TITLE_SYSTEM_FOLDERS = "Selecteer systeem mappen"
SELECT_CHOOSE_ONE = "Kies één" SELECT_CHOOSE_ONE = "Kies één"
@ -243,6 +275,7 @@ LABEL_SENT = "Verzonden"
LABEL_DRAFTS = "Klad" LABEL_DRAFTS = "Klad"
LABEL_SPAM = "Spam" LABEL_SPAM = "Spam"
LABEL_TRASH = "Prullenbak" LABEL_TRASH = "Prullenbak"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Annuleer" BUTTON_CANCEL = "Annuleer"
BUTTON_CLOSE = "Sluiten" BUTTON_CLOSE = "Sluiten"
@ -257,6 +290,8 @@ Indien u berichten permanent wil verwijderen, kies de \"Niet gebruiken\" optie."
NOTIFICATION_TRASH = "U heeft nog geen \"Trash\" folder aangeduid waar de berichten geplaatst worden. NOTIFICATION_TRASH = "U heeft nog geen \"Trash\" folder aangeduid waar de berichten geplaatst worden.
Indien u berichten permanent wil verwijderen, kies de \"Niet gebruiken\" optie." Indien u berichten permanent wil verwijderen, kies de \"Niet gebruiken\" optie."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Ophalen" LOADING = "Ophalen"
LOGIN = "Inloggen" LOGIN = "Inloggen"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Identities"
LABEL_SOCIAL_NAME = "Social" LABEL_SOCIAL_NAME = "Social"
LABEL_THEMES_NAME = "Themes" LABEL_THEMES_NAME = "Themes"
LABEL_CHANGE_PASSWORD_NAME = "Paswoord" LABEL_CHANGE_PASSWORD_NAME = "Paswoord"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Terug" BUTTON_BACK = "Terug"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Nieuw paswoord"
LABEL_REPEAT_PASSWORD = "Nieuw paswoord opnieuw" LABEL_REPEAT_PASSWORD = "Nieuw paswoord opnieuw"
BUTTON_UPDATE_PASSWORD = "Instellen nieuw paswoord" BUTTON_UPDATE_PASSWORD = "Instellen nieuw paswoord"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Onjuist teken" INVALID_TOKEN = "Onjuist teken"
AUTH_ERROR = "Authentificatie misgelukt" AUTH_ERROR = "Authentificatie misgelukt"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Sendt"
DRAFTS_NAME = "Kladd" DRAFTS_NAME = "Kladd"
SPAM_NAME = "Spam" SPAM_NAME = "Spam"
TRASH_NAME = "Søppel" TRASH_NAME = "Søppel"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Kvote bruk" TITLE = "Kvote bruk"
@ -58,6 +59,7 @@ TITLE = "Kvote bruk"
BUTTON_RELOAD = "Hent nye meldinger" BUTTON_RELOAD = "Hent nye meldinger"
BUTTON_MOVE_TO = "Flytt til" BUTTON_MOVE_TO = "Flytt til"
BUTTON_DELETE = "Slett" BUTTON_DELETE = "Slett"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_EMPTY_FOLDER = "Fjern mappe" BUTTON_EMPTY_FOLDER = "Fjern mappe"
BUTTON_MULTY_FORWARD = "Videresend meldinger" BUTTON_MULTY_FORWARD = "Videresend meldinger"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Rediger"
BUTTON_BACK = "Tilbake" BUTTON_BACK = "Tilbake"
BUTTON_CLOSE = "Lukk" BUTTON_CLOSE = "Lukk"
BUTTON_DELETE = "Slett" BUTTON_DELETE = "Slett"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_MOVE_TO = "Flytt til" BUTTON_MOVE_TO = "Flytt til"
BUTTON_MORE = "Mer" BUTTON_MORE = "Mer"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Emne"
PRINT_LABEL_ATTACHMENTS = "Vedlegg" PRINT_LABEL_ATTACHMENTS = "Vedlegg"
MESSAGE_LOADING = "Laster" MESSAGE_LOADING = "Laster"
MESSAGE_VIEW_DESC = "Velg melding på listen for å vise det her ." MESSAGE_VIEW_DESC = "Velg melding på listen for å vise det her ."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Return Receipt (displayed) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Denne handlingen vil resultere i å fjerne alle poster fra
DANGER_DESC_HTML_2 = "Når den er startet , prosessen kan ikke bli avbrutt eller kansellert ." DANGER_DESC_HTML_2 = "Når den er startet , prosessen kan ikke bli avbrutt eller kansellert ."
TITLE_CLEARING_PROCESS = "Tømme mappen ..." TITLE_CLEARING_PROCESS = "Tømme mappen ..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Velg systemmapper" TITLE_SYSTEM_FOLDERS = "Velg systemmapper"
SELECT_CHOOSE_ONE = "Velg en" SELECT_CHOOSE_ONE = "Velg en"
@ -243,6 +275,7 @@ LABEL_SENT = "Sendt"
LABEL_DRAFTS = "Kladd" LABEL_DRAFTS = "Kladd"
LABEL_SPAM = "Spam" LABEL_SPAM = "Spam"
LABEL_TRASH = "Trash" LABEL_TRASH = "Trash"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Avbryt" BUTTON_CANCEL = "Avbryt"
BUTTON_CLOSE = "Lukk" BUTTON_CLOSE = "Lukk"
@ -257,6 +290,8 @@ Hvis du ønsker å fjerne meldinger permanent , velger du \"Ikke bruk\" alternat
NOTIFICATION_TRASH = "Du har ikke valgt \"Trash\" system mappen slettede meldinger skal plasseres til . NOTIFICATION_TRASH = "Du har ikke valgt \"Trash\" system mappen slettede meldinger skal plasseres til .
Hvis du ønsker å fjerne meldinger permanent , velger du \"Ikke bruk\" alternativet ." Hvis du ønsker å fjerne meldinger permanent , velger du \"Ikke bruk\" alternativet ."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Laster" LOADING = "Laster"
LOGIN = "Logg inn" LOGIN = "Logg inn"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "identiteter"
LABEL_SOCIAL_NAME = "Sosialt" LABEL_SOCIAL_NAME = "Sosialt"
LABEL_THEMES_NAME = "Tema" LABEL_THEMES_NAME = "Tema"
LABEL_CHANGE_PASSWORD_NAME = "Passord" LABEL_CHANGE_PASSWORD_NAME = "Passord"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Tilbake" BUTTON_BACK = "Tilbake"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Nytt passord"
LABEL_REPEAT_PASSWORD = "Nytt passord på nytt" LABEL_REPEAT_PASSWORD = "Nytt passord på nytt"
BUTTON_UPDATE_PASSWORD = "Sett nytt passord" BUTTON_UPDATE_PASSWORD = "Sett nytt passord"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Ugyldig token" INVALID_TOKEN = "Ugyldig token"
AUTH_ERROR = "Autentisering feilet" AUTH_ERROR = "Autentisering feilet"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Wysłane"
DRAFTS_NAME = "Wersje robocze" DRAFTS_NAME = "Wersje robocze"
SPAM_NAME = "Spam" SPAM_NAME = "Spam"
TRASH_NAME = "Kosz" TRASH_NAME = "Kosz"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Wykorzystane miejsce" TITLE = "Wykorzystane miejsce"
@ -58,6 +59,7 @@ TITLE = "Wykorzystane miejsce"
BUTTON_RELOAD = "Odśwież" BUTTON_RELOAD = "Odśwież"
BUTTON_MOVE_TO = "Przenieś do" BUTTON_MOVE_TO = "Przenieś do"
BUTTON_DELETE = "Usuń" BUTTON_DELETE = "Usuń"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Oznacz jako spam" BUTTON_SPAM = "Oznacz jako spam"
BUTTON_EMPTY_FOLDER = "Wyczyść folder" BUTTON_EMPTY_FOLDER = "Wyczyść folder"
BUTTON_MULTY_FORWARD = "Przekaż dalej" BUTTON_MULTY_FORWARD = "Przekaż dalej"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Edytuj"
BUTTON_BACK = "Wstecz" BUTTON_BACK = "Wstecz"
BUTTON_CLOSE = "Zamknij" BUTTON_CLOSE = "Zamknij"
BUTTON_DELETE = "Usuń" BUTTON_DELETE = "Usuń"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Oznacz jako spam" BUTTON_SPAM = "Oznacz jako spam"
BUTTON_MOVE_TO = "Przenieś Do" BUTTON_MOVE_TO = "Przenieś Do"
BUTTON_MORE = "Więcej" BUTTON_MORE = "Więcej"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Temat"
PRINT_LABEL_ATTACHMENTS = "Załączniki" PRINT_LABEL_ATTACHMENTS = "Załączniki"
MESSAGE_LOADING = "Ładowanie..." MESSAGE_LOADING = "Ładowanie..."
MESSAGE_VIEW_DESC = "Wybierz wiadomość z listy w celu jej wyświetlenia." MESSAGE_VIEW_DESC = "Wybierz wiadomość z listy w celu jej wyświetlenia."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Potwierdzenie odbioru (wyświetlenia) - %SUBJECT%" SUBJECT = "Potwierdzenie odbioru (wyświetlenia) - %SUBJECT%"
@ -234,6 +240,32 @@ DANGER_DESC_HTML_1 = "Wybrana akcja doprowadzi do usunięcia na stałe wszystkic
DANGER_DESC_HTML_2 = "Po rozpoczęciu, proces nie może zostać przerwany ani anulowany." DANGER_DESC_HTML_2 = "Po rozpoczęciu, proces nie może zostać przerwany ani anulowany."
TITLE_CLEARING_PROCESS = "Trwa usuwanie wszystkich wiadomości w folderze..." TITLE_CLEARING_PROCESS = "Trwa usuwanie wszystkich wiadomości w folderze..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Wybierz foldery systemowe" TITLE_SYSTEM_FOLDERS = "Wybierz foldery systemowe"
SELECT_CHOOSE_ONE = "Wybierz" SELECT_CHOOSE_ONE = "Wybierz"
@ -242,6 +274,7 @@ LABEL_SENT = "Wysłane"
LABEL_DRAFTS = "Wersje robocze" LABEL_DRAFTS = "Wersje robocze"
LABEL_SPAM = "SPAM" LABEL_SPAM = "SPAM"
LABEL_TRASH = "Kosz" LABEL_TRASH = "Kosz"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Anuluj" BUTTON_CANCEL = "Anuluj"
BUTTON_CLOSE = "Zamknij" BUTTON_CLOSE = "Zamknij"
@ -256,6 +289,8 @@ Jeżeli wiadomości oznaczone jako spam mają być usuwane na stałe, proszę o
NOTIFICATION_TRASH = "Nie został wybrany folder \"Kosz\" do którego przenoszone są wszystkie usunięte wiadomości. NOTIFICATION_TRASH = "Nie został wybrany folder \"Kosz\" do którego przenoszone są wszystkie usunięte wiadomości.
Jeżeli wiadomości usunięte mają być usuwane na stałe, proszę o zaznaczenie opcji \"Nie używaj\"." Jeżeli wiadomości usunięte mają być usuwane na stałe, proszę o zaznaczenie opcji \"Nie używaj\"."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Ładowanie" LOADING = "Ładowanie"
LOGIN = "Login" LOGIN = "Login"
@ -288,6 +323,7 @@ LABEL_IDENTITIES_NAME = "Tożsamości"
LABEL_SOCIAL_NAME = "Social Media" LABEL_SOCIAL_NAME = "Social Media"
LABEL_THEMES_NAME = "Wygląd" LABEL_THEMES_NAME = "Wygląd"
LABEL_CHANGE_PASSWORD_NAME = "Hasło" LABEL_CHANGE_PASSWORD_NAME = "Hasło"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Wstecz" BUTTON_BACK = "Wstecz"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -396,6 +432,14 @@ LABEL_NEW_PASSWORD = "Nowe hasło"
LABEL_REPEAT_PASSWORD = "Powtórz nowe hasło" LABEL_REPEAT_PASSWORD = "Powtórz nowe hasło"
BUTTON_UPDATE_PASSWORD = "Zmień hasło na nowe" BUTTON_UPDATE_PASSWORD = "Zmień hasło na nowe"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Nieprawidłowy token" INVALID_TOKEN = "Nieprawidłowy token"
AUTH_ERROR = "Błąd autoryzacji" AUTH_ERROR = "Błąd autoryzacji"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Enviar"
DRAFTS_NAME = "Rascunhos" DRAFTS_NAME = "Rascunhos"
SPAM_NAME = "Lixo Eletrônico" SPAM_NAME = "Lixo Eletrônico"
TRASH_NAME = "Lixeira" TRASH_NAME = "Lixeira"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Uso da Cota" TITLE = "Uso da Cota"
@ -58,6 +59,7 @@ TITLE = "Uso da Cota"
BUTTON_RELOAD = "Atualizar Lista de Mensagens" BUTTON_RELOAD = "Atualizar Lista de Mensagens"
BUTTON_MOVE_TO = "Mover Para" BUTTON_MOVE_TO = "Mover Para"
BUTTON_DELETE = "Excluir" BUTTON_DELETE = "Excluir"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Lixo Eletrônico" BUTTON_SPAM = "Lixo Eletrônico"
BUTTON_EMPTY_FOLDER = "Limpar Pasta" BUTTON_EMPTY_FOLDER = "Limpar Pasta"
BUTTON_MULTY_FORWARD = "Encaminhar mensagens" BUTTON_MULTY_FORWARD = "Encaminhar mensagens"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Editar"
BUTTON_BACK = "Voltar" BUTTON_BACK = "Voltar"
BUTTON_CLOSE = "Fechar" BUTTON_CLOSE = "Fechar"
BUTTON_DELETE = "Excluir" BUTTON_DELETE = "Excluir"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Lixo Eletrônico" BUTTON_SPAM = "Lixo Eletrônico"
BUTTON_MOVE_TO = "Mover para" BUTTON_MOVE_TO = "Mover para"
BUTTON_MORE = "Mais" BUTTON_MORE = "Mais"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Assunto"
PRINT_LABEL_ATTACHMENTS = "Anexos" PRINT_LABEL_ATTACHMENTS = "Anexos"
MESSAGE_LOADING = "Carregando" MESSAGE_LOADING = "Carregando"
MESSAGE_VIEW_DESC = "Selecione a lista de mensagens para visuzalizá-la aqui." MESSAGE_VIEW_DESC = "Selecione a lista de mensagens para visuzalizá-la aqui."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Aviso de recepção (informado) - %SUBJECT%" SUBJECT = "Aviso de recepção (informado) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Esta ação irá resultar na remoção de todos os e-mails
DANGER_DESC_HTML_2 = "Uma vez iniciado, o processo não pode ser interrompido ou cancelado." DANGER_DESC_HTML_2 = "Uma vez iniciado, o processo não pode ser interrompido ou cancelado."
TITLE_CLEARING_PROCESS = "Excluindo a pasta..." TITLE_CLEARING_PROCESS = "Excluindo a pasta..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Selecione as pastas do sistema" TITLE_SYSTEM_FOLDERS = "Selecione as pastas do sistema"
SELECT_CHOOSE_ONE = "Escolha um" SELECT_CHOOSE_ONE = "Escolha um"
@ -243,6 +275,7 @@ LABEL_SENT = "Enviar"
LABEL_DRAFTS = "Rascunhos" LABEL_DRAFTS = "Rascunhos"
LABEL_SPAM = "Lixo Eletrônico" LABEL_SPAM = "Lixo Eletrônico"
LABEL_TRASH = "Lixo" LABEL_TRASH = "Lixo"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Cancelar" BUTTON_CANCEL = "Cancelar"
BUTTON_CLOSE = "Fechar" BUTTON_CLOSE = "Fechar"
@ -257,6 +290,8 @@ Se você deseja remover as mensagens permanentemente, por favor selecione a opç
NOTIFICATION_TRASH = "Você não selecionou \"Trash\" a pasta de mensagens excluídas do sistema que são colocadas para. NOTIFICATION_TRASH = "Você não selecionou \"Trash\" a pasta de mensagens excluídas do sistema que são colocadas para.
Se você deseja remover as mensagens permanentemente, por favor selecione a opção \"Do not use\"." Se você deseja remover as mensagens permanentemente, por favor selecione a opção \"Do not use\"."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Carregando" LOADING = "Carregando"
LOGIN = "Usuário" LOGIN = "Usuário"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Identidades"
LABEL_SOCIAL_NAME = "Social" LABEL_SOCIAL_NAME = "Social"
LABEL_THEMES_NAME = "Temas" LABEL_THEMES_NAME = "Temas"
LABEL_CHANGE_PASSWORD_NAME = "Senha" LABEL_CHANGE_PASSWORD_NAME = "Senha"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Voltar" BUTTON_BACK = "Voltar"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Nova senha"
LABEL_REPEAT_PASSWORD = "Repita a nova senha" LABEL_REPEAT_PASSWORD = "Repita a nova senha"
BUTTON_UPDATE_PASSWORD = "Defina a nova senha" BUTTON_UPDATE_PASSWORD = "Defina a nova senha"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Senha inválida" INVALID_TOKEN = "Senha inválida"
AUTH_ERROR = "Falha na autenticação" AUTH_ERROR = "Falha na autenticação"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Enviar"
DRAFTS_NAME = "Rascunhos" DRAFTS_NAME = "Rascunhos"
SPAM_NAME = "Lixo Eletrônico" SPAM_NAME = "Lixo Eletrônico"
TRASH_NAME = "Lixeira" TRASH_NAME = "Lixeira"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Uso da Cota" TITLE = "Uso da Cota"
@ -58,6 +59,7 @@ TITLE = "Uso da Cota"
BUTTON_RELOAD = "Atualizar Lista de Mensagens" BUTTON_RELOAD = "Atualizar Lista de Mensagens"
BUTTON_MOVE_TO = "Mover Para" BUTTON_MOVE_TO = "Mover Para"
BUTTON_DELETE = "Excluir" BUTTON_DELETE = "Excluir"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Lixo Eletrônico" BUTTON_SPAM = "Lixo Eletrônico"
BUTTON_EMPTY_FOLDER = "Limpar Pasta" BUTTON_EMPTY_FOLDER = "Limpar Pasta"
BUTTON_MULTY_FORWARD = "Encaminhar mensagens" BUTTON_MULTY_FORWARD = "Encaminhar mensagens"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Editar"
BUTTON_BACK = "Voltar" BUTTON_BACK = "Voltar"
BUTTON_CLOSE = "Fechar" BUTTON_CLOSE = "Fechar"
BUTTON_DELETE = "Excluir" BUTTON_DELETE = "Excluir"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "Lixo Eletrônico" BUTTON_SPAM = "Lixo Eletrônico"
BUTTON_MOVE_TO = "Mover para" BUTTON_MOVE_TO = "Mover para"
BUTTON_MORE = "Mais" BUTTON_MORE = "Mais"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Assunto"
PRINT_LABEL_ATTACHMENTS = "Anexos" PRINT_LABEL_ATTACHMENTS = "Anexos"
MESSAGE_LOADING = "Carregando" MESSAGE_LOADING = "Carregando"
MESSAGE_VIEW_DESC = "Selecione a lista de mensagens para visuzalizá-la aqui." MESSAGE_VIEW_DESC = "Selecione a lista de mensagens para visuzalizá-la aqui."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Aviso de recepção (informado) - %SUBJECT%" SUBJECT = "Aviso de recepção (informado) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Esta ação irá resultar na remoção de todos os e-mails
DANGER_DESC_HTML_2 = "Uma vez iniciado, o processo não pode ser interrompido ou cancelado." DANGER_DESC_HTML_2 = "Uma vez iniciado, o processo não pode ser interrompido ou cancelado."
TITLE_CLEARING_PROCESS = "Excluindo a pasta..." TITLE_CLEARING_PROCESS = "Excluindo a pasta..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Selecione as pastas do sistema" TITLE_SYSTEM_FOLDERS = "Selecione as pastas do sistema"
SELECT_CHOOSE_ONE = "Escolha um" SELECT_CHOOSE_ONE = "Escolha um"
@ -243,6 +275,7 @@ LABEL_SENT = "Enviar"
LABEL_DRAFTS = "Rascunhos" LABEL_DRAFTS = "Rascunhos"
LABEL_SPAM = "Lixo Eletrônico" LABEL_SPAM = "Lixo Eletrônico"
LABEL_TRASH = "Lixo" LABEL_TRASH = "Lixo"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Cancelar" BUTTON_CANCEL = "Cancelar"
BUTTON_CLOSE = "Fechar" BUTTON_CLOSE = "Fechar"
@ -257,6 +290,8 @@ Se você deseja remover as mensagens permanentemente, por favor selecione a opç
NOTIFICATION_TRASH = "Você não selecionou \"Trash\" a pasta de mensagens excluídas do sistema que são colocadas para. NOTIFICATION_TRASH = "Você não selecionou \"Trash\" a pasta de mensagens excluídas do sistema que são colocadas para.
Se você deseja remover as mensagens permanentemente, por favor selecione a opção \"Do not use\"." Se você deseja remover as mensagens permanentemente, por favor selecione a opção \"Do not use\"."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Carregando" LOADING = "Carregando"
LOGIN = "Usuário" LOGIN = "Usuário"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Identidades"
LABEL_SOCIAL_NAME = "Social" LABEL_SOCIAL_NAME = "Social"
LABEL_THEMES_NAME = "Temas" LABEL_THEMES_NAME = "Temas"
LABEL_CHANGE_PASSWORD_NAME = "Senha" LABEL_CHANGE_PASSWORD_NAME = "Senha"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Voltar" BUTTON_BACK = "Voltar"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Nova senha"
LABEL_REPEAT_PASSWORD = "Repita a nova senha" LABEL_REPEAT_PASSWORD = "Repita a nova senha"
BUTTON_UPDATE_PASSWORD = "Defina a nova senha" BUTTON_UPDATE_PASSWORD = "Defina a nova senha"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Senha inválida" INVALID_TOKEN = "Senha inválida"
AUTH_ERROR = "Falha na autenticação" AUTH_ERROR = "Falha na autenticação"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Trimise"
DRAFTS_NAME = "Salvate" DRAFTS_NAME = "Salvate"
SPAM_NAME = "SPAM" SPAM_NAME = "SPAM"
TRASH_NAME = "Șterse" TRASH_NAME = "Șterse"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "Cotă" TITLE = "Cotă"
@ -58,6 +59,7 @@ TITLE = "Cotă"
BUTTON_RELOAD = "Actualizare" BUTTON_RELOAD = "Actualizare"
BUTTON_MOVE_TO = "Mută la" BUTTON_MOVE_TO = "Mută la"
BUTTON_DELETE = "Șterge" BUTTON_DELETE = "Șterge"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "SPAM" BUTTON_SPAM = "SPAM"
BUTTON_EMPTY_FOLDER = "Golește folderul" BUTTON_EMPTY_FOLDER = "Golește folderul"
BUTTON_MULTY_FORWARD = "Redirecționează mesajul" BUTTON_MULTY_FORWARD = "Redirecționează mesajul"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Editează"
BUTTON_BACK = "Înapoi" BUTTON_BACK = "Înapoi"
BUTTON_CLOSE = "Închide" BUTTON_CLOSE = "Închide"
BUTTON_DELETE = "Șterge" BUTTON_DELETE = "Șterge"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "SPAM" BUTTON_SPAM = "SPAM"
BUTTON_MOVE_TO = "Mută la" BUTTON_MOVE_TO = "Mută la"
BUTTON_MORE = "Mai mult" BUTTON_MORE = "Mai mult"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Subiect"
PRINT_LABEL_ATTACHMENTS = "Atașament" PRINT_LABEL_ATTACHMENTS = "Atașament"
MESSAGE_LOADING = "Se încarcă..." MESSAGE_LOADING = "Se încarcă..."
MESSAGE_VIEW_DESC = "Selectați un mesaj pentru al vizualiza." MESSAGE_VIEW_DESC = "Selectați un mesaj pentru al vizualiza."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Mesajul dumneavoastră a fost citit - %SUBJECT%" SUBJECT = "Mesajul dumneavoastră a fost citit - %SUBJECT%"
@ -234,6 +240,32 @@ DANGER_DESC_HTML_1 = "Această acțiune va conduce la eliminarea completă a tut
DANGER_DESC_HTML_2 = "După începerea procesului de curățare <strong style=\"color:red\">nu mai puteți</strong> anula procesul." DANGER_DESC_HTML_2 = "După începerea procesului de curățare <strong style=\"color:red\">nu mai puteți</strong> anula procesul."
TITLE_CLEARING_PROCESS = "Curăț dosarul..." TITLE_CLEARING_PROCESS = "Curăț dosarul..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Selectați dosarul de sistem" TITLE_SYSTEM_FOLDERS = "Selectați dosarul de sistem"
SELECT_CHOOSE_ONE = "Nu a fost încă selectat" SELECT_CHOOSE_ONE = "Nu a fost încă selectat"
@ -242,6 +274,7 @@ LABEL_SENT = "Trimise"
LABEL_DRAFTS = "Salvate" LABEL_DRAFTS = "Salvate"
LABEL_SPAM = "SPAM" LABEL_SPAM = "SPAM"
LABEL_TRASH = "Șterse" LABEL_TRASH = "Șterse"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "Anulează" BUTTON_CANCEL = "Anulează"
BUTTON_CLOSE = "Închide" BUTTON_CLOSE = "Închide"
@ -256,6 +289,8 @@ NOTIFICATION_SPAM = "Вы еще не выбрали системную папк
NOTIFICATION_TRASH = "Вы еще не выбрали системную папку \"Удаленные\", в которую складываются все сообщения после удаления. NOTIFICATION_TRASH = "Вы еще не выбрали системную папку \"Удаленные\", в которую складываются все сообщения после удаления.
Если же вы хотите удалять письма сразу, пожалуйста, выберите пункт \"Не использовать\"." Если же вы хотите удалять письма сразу, пожалуйста, выберите пункт \"Не использовать\"."
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "Se încarcă" LOADING = "Se încarcă"
LOGIN = "Conectare" LOGIN = "Conectare"
@ -288,6 +323,7 @@ LABEL_IDENTITIES_NAME = "Profiluri"
LABEL_SOCIAL_NAME = "Social" LABEL_SOCIAL_NAME = "Social"
LABEL_THEMES_NAME = "Subiecte" LABEL_THEMES_NAME = "Subiecte"
LABEL_CHANGE_PASSWORD_NAME = "Parolă" LABEL_CHANGE_PASSWORD_NAME = "Parolă"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Înapoi" BUTTON_BACK = "Înapoi"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -396,6 +432,14 @@ LABEL_NEW_PASSWORD = "Noua parolă"
LABEL_REPEAT_PASSWORD = "Confirmați parola" LABEL_REPEAT_PASSWORD = "Confirmați parola"
BUTTON_UPDATE_PASSWORD = "Salvați noua parolă" BUTTON_UPDATE_PASSWORD = "Salvați noua parolă"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Semn invalid" INVALID_TOKEN = "Semn invalid"
AUTH_ERROR = "Nu se poate realiza conectarea" AUTH_ERROR = "Nu se poate realiza conectarea"

View file

@ -50,6 +50,7 @@ SENT_NAME = "Отправленные"
DRAFTS_NAME = "Черновики" DRAFTS_NAME = "Черновики"
SPAM_NAME = "Спам" SPAM_NAME = "Спам"
TRASH_NAME = "Корзина" TRASH_NAME = "Корзина"
ARCHIVE_NAME = "Архив"
[QUOTA] [QUOTA]
TITLE = "Дисковая квота" TITLE = "Дисковая квота"
@ -58,6 +59,7 @@ TITLE = "Дисковая квота"
BUTTON_RELOAD = "Обновить Список Писем" BUTTON_RELOAD = "Обновить Список Писем"
BUTTON_MOVE_TO = "Переместить" BUTTON_MOVE_TO = "Переместить"
BUTTON_DELETE = "Удалить" BUTTON_DELETE = "Удалить"
BUTTON_ARCHIVE = "Архивировать"
BUTTON_SPAM = "В спам" BUTTON_SPAM = "В спам"
BUTTON_EMPTY_FOLDER = "Очистить всю папку" BUTTON_EMPTY_FOLDER = "Очистить всю папку"
BUTTON_MULTY_FORWARD = "Переслать сообщения" BUTTON_MULTY_FORWARD = "Переслать сообщения"
@ -92,6 +94,7 @@ BUTTON_EDIT = "Редактировать"
BUTTON_BACK = "Назад" BUTTON_BACK = "Назад"
BUTTON_CLOSE = "Закрыть" BUTTON_CLOSE = "Закрыть"
BUTTON_DELETE = "Удалить" BUTTON_DELETE = "Удалить"
BUTTON_ARCHIVE = "Архивировать"
BUTTON_SPAM = "В спам" BUTTON_SPAM = "В спам"
BUTTON_MOVE_TO = "Переместить" BUTTON_MOVE_TO = "Переместить"
BUTTON_MORE = "Еще" BUTTON_MORE = "Еще"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "Тема"
PRINT_LABEL_ATTACHMENTS = "Файлы" PRINT_LABEL_ATTACHMENTS = "Файлы"
MESSAGE_LOADING = "Загрузка" MESSAGE_LOADING = "Загрузка"
MESSAGE_VIEW_DESC = "Выберите сообщение для просмотра." MESSAGE_VIEW_DESC = "Выберите сообщение для просмотра."
PGP_PASSWORD_INPUT_PLACEHOLDER = "Пароль"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP подписанное сообщение (нажмите, чтобы подтвердить)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP шифрованное сообщение (нажмите, чтобы расшифровать)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Уведомление о прочтении письма - %SUBJECT%" SUBJECT = "Уведомление о прочтении письма - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "Данное действие приведет к полн
DANGER_DESC_HTML_2 = "После начала очистки, процесс <strong style=\"color:red\">нельзя</strong> будет останосить или отменить." DANGER_DESC_HTML_2 = "После начала очистки, процесс <strong style=\"color:red\">нельзя</strong> будет останосить или отменить."
TITLE_CLEARING_PROCESS = "Очистка папки..." TITLE_CLEARING_PROCESS = "Очистка папки..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Импорт OpenPGP ключа"
BUTTON_IMPORT_OPEN_PGP_KEY = "Импорт"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "Просмотр OpenPGP ключа"
BUTTON_SELECT = "Выбрать"
BUTTON_CLOSE = "Закрыть"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Генерация OpenPGP ключа"
LABEL_EMAIL = "Почта"
LABEL_NAME = "Имя"
LABEL_PASSWORD = "Пароль"
LABEL_KEY_BIT_LENGTH = "Длина ключа"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Создать"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP подпись и шифрование"
LABEL_SIGN = "Подпись"
LABEL_ENCRYPT = "Шифрование"
LABEL_PASSWORD = "Пароль"
BUTTON_SIGN = "Подпись"
BUTTON_ENCRYPT = "Шифрование"
BUTTON_SIGN_AND_ENCRYPT = "Подпись и шифрование"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "Выберите системые папки" TITLE_SYSTEM_FOLDERS = "Выберите системые папки"
SELECT_CHOOSE_ONE = "Еще не выбрана" SELECT_CHOOSE_ONE = "Еще не выбрана"
@ -243,6 +275,7 @@ LABEL_SENT = "Отправленные"
LABEL_DRAFTS = "Черновики" LABEL_DRAFTS = "Черновики"
LABEL_SPAM = "Спам" LABEL_SPAM = "Спам"
LABEL_TRASH = "Удаленные" LABEL_TRASH = "Удаленные"
LABEL_ARCHIVE = "Архив"
BUTTON_CANCEL = "Отменить" BUTTON_CANCEL = "Отменить"
BUTTON_CLOSE = "Закрыть" BUTTON_CLOSE = "Закрыть"
@ -257,6 +290,8 @@ NOTIFICATION_SPAM = "Вы еще не выбрали системную папк
NOTIFICATION_TRASH = "Вы еще не выбрали системную папку \"Удаленные\", в которую складываются все сообщения после удаления. NOTIFICATION_TRASH = "Вы еще не выбрали системную папку \"Удаленные\", в которую складываются все сообщения после удаления.
Если же вы хотите удалять письма сразу, пожалуйста, выберите пункт \"Не использовать\"." Если же вы хотите удалять письма сразу, пожалуйста, выберите пункт \"Не использовать\"."
NOTIFICATION_ARCHIVE = "Вы еще не выбрали системную папку \"Архив\", в которую складываются все сообщения после архивации."
[TITLES] [TITLES]
LOADING = "Загрузка" LOADING = "Загрузка"
LOGIN = "Вход" LOGIN = "Вход"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "Профили"
LABEL_SOCIAL_NAME = "Социальные" LABEL_SOCIAL_NAME = "Социальные"
LABEL_THEMES_NAME = "Темы" LABEL_THEMES_NAME = "Темы"
LABEL_CHANGE_PASSWORD_NAME = "Пароль" LABEL_CHANGE_PASSWORD_NAME = "Пароль"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Назад" BUTTON_BACK = "Назад"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "Новый пароль"
LABEL_REPEAT_PASSWORD = "Повторить" LABEL_REPEAT_PASSWORD = "Повторить"
BUTTON_UPDATE_PASSWORD = "Установить Новый Пароль" BUTTON_UPDATE_PASSWORD = "Установить Новый Пароль"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Ипортировать OpenPGP ключ"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Новый OpenPGP ключ"
TITLE_PRIVATE = "Приватный"
TITLE_PUBLIC = "Публичный"
DELETING_ASK = "Точно?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Неверный токен запроса" INVALID_TOKEN = "Неверный токен запроса"
AUTH_ERROR = "Не удалось авторизоваться" AUTH_ERROR = "Не удалось авторизоваться"

View file

@ -50,6 +50,7 @@ SENT_NAME = "已发邮件"
DRAFTS_NAME = "草稿" DRAFTS_NAME = "草稿"
SPAM_NAME = "垃圾邮件" SPAM_NAME = "垃圾邮件"
TRASH_NAME = "已删除邮件" TRASH_NAME = "已删除邮件"
ARCHIVE_NAME = "Archive"
[QUOTA] [QUOTA]
TITLE = "存储空间使用量" TITLE = "存储空间使用量"
@ -58,6 +59,7 @@ TITLE = "存储空间使用量"
BUTTON_RELOAD = "重新加载邮件列表" BUTTON_RELOAD = "重新加载邮件列表"
BUTTON_MOVE_TO = "移至" BUTTON_MOVE_TO = "移至"
BUTTON_DELETE = "已删除邮件" BUTTON_DELETE = "已删除邮件"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "垃圾邮件" BUTTON_SPAM = "垃圾邮件"
BUTTON_EMPTY_FOLDER = "清空文件夹" BUTTON_EMPTY_FOLDER = "清空文件夹"
BUTTON_MULTY_FORWARD = "转发邮件" BUTTON_MULTY_FORWARD = "转发邮件"
@ -92,6 +94,7 @@ BUTTON_EDIT = "编辑"
BUTTON_BACK = "返回" BUTTON_BACK = "返回"
BUTTON_CLOSE = "关闭" BUTTON_CLOSE = "关闭"
BUTTON_DELETE = "删除" BUTTON_DELETE = "删除"
BUTTON_ARCHIVE = "Archive"
BUTTON_SPAM = "垃圾邮件" BUTTON_SPAM = "垃圾邮件"
BUTTON_MOVE_TO = "移至" BUTTON_MOVE_TO = "移至"
BUTTON_MORE = "更多" BUTTON_MORE = "更多"
@ -126,6 +129,9 @@ PRINT_LABEL_SUBJECT = "主题"
PRINT_LABEL_ATTACHMENTS = "附件" PRINT_LABEL_ATTACHMENTS = "附件"
MESSAGE_LOADING = "加载中" MESSAGE_LOADING = "加载中"
MESSAGE_VIEW_DESC = "在此查看列表中选中的邮件。" MESSAGE_VIEW_DESC = "在此查看列表中选中的邮件。"
PGP_PASSWORD_INPUT_PLACEHOLDER = "Password"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Return Receipt (displayed) - %SUBJECT%"
@ -235,6 +241,32 @@ DANGER_DESC_HTML_1 = "此操作将完全删除文件夹 <strong>%FOLDER%</strong
DANGER_DESC_HTML_2 = "一旦操作执行,不可中断和撤销!" DANGER_DESC_HTML_2 = "一旦操作执行,不可中断和撤销!"
TITLE_CLEARING_PROCESS = "文件夹清理中..." TITLE_CLEARING_PROCESS = "文件夹清理中..."
[POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key"
BUTTON_SELECT = "Select"
BUTTON_CLOSE = "Close"
[POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys"
LABEL_EMAIL = "Email"
LABEL_NAME = "Name"
LABEL_PASSWORD = "Password"
LABEL_KEY_BIT_LENGTH = "Key length"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate"
[POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt"
LABEL_SIGN = "Sign"
LABEL_ENCRYPT = "Encrypt"
LABEL_PASSWORD = "Password"
BUTTON_SIGN = "Sign"
BUTTON_ENCRYPT = "Encrypt"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt"
[POPUPS_SYSTEM_FOLDERS] [POPUPS_SYSTEM_FOLDERS]
TITLE_SYSTEM_FOLDERS = "选择系统文件夹" TITLE_SYSTEM_FOLDERS = "选择系统文件夹"
SELECT_CHOOSE_ONE = "选择一个" SELECT_CHOOSE_ONE = "选择一个"
@ -243,6 +275,7 @@ LABEL_SENT = "已发邮件"
LABEL_DRAFTS = "草稿" LABEL_DRAFTS = "草稿"
LABEL_SPAM = "垃圾邮件" LABEL_SPAM = "垃圾邮件"
LABEL_TRASH = "已删除邮件" LABEL_TRASH = "已删除邮件"
LABEL_ARCHIVE = "Archive"
BUTTON_CANCEL = "取消" BUTTON_CANCEL = "取消"
BUTTON_CLOSE = "关闭" BUTTON_CLOSE = "关闭"
@ -257,6 +290,8 @@ NOTIFICATION_SPAM = "您没有选择 垃圾邮件 文件夹来存储垃圾邮件
NOTIFICATION_TRASH = "您没有选择 已删除邮件 文件夹来存储垃圾邮件。 NOTIFICATION_TRASH = "您没有选择 已删除邮件 文件夹来存储垃圾邮件。
如果您希望永久删除邮件,请选择 不使用 选项。" 如果您希望永久删除邮件,请选择 不使用 选项。"
NOTIFICATION_ARCHIVE = "You haven't selected \"Archive\" system folder achived messages are placed to."
[TITLES] [TITLES]
LOADING = "加载中" LOADING = "加载中"
LOGIN = "登陆" LOGIN = "登陆"
@ -289,6 +324,7 @@ LABEL_IDENTITIES_NAME = "签名"
LABEL_SOCIAL_NAME = "Social" LABEL_SOCIAL_NAME = "Social"
LABEL_THEMES_NAME = "主题" LABEL_THEMES_NAME = "主题"
LABEL_CHANGE_PASSWORD_NAME = "密码" LABEL_CHANGE_PASSWORD_NAME = "密码"
LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "返回" BUTTON_BACK = "返回"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
@ -397,6 +433,14 @@ LABEL_NEW_PASSWORD = "新密码"
LABEL_REPEAT_PASSWORD = "再次新密码" LABEL_REPEAT_PASSWORD = "再次新密码"
BUTTON_UPDATE_PASSWORD = "设置新密码" BUTTON_UPDATE_PASSWORD = "设置新密码"
[SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys"
TITLE_PRIVATE = "Private"
TITLE_PUBLIC = "Public"
DELETING_ASK = "Are you sure?"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "无效标记" INVALID_TOKEN = "无效标记"
AUTH_ERROR = "认证失败" AUTH_ERROR = "认证失败"

View file

@ -5451,23 +5451,34 @@ select {
margin-left: 0px; margin-left: 0px;
} }
.dropdown-menu { .dropdown-menu {
-webkit-border-radius: 2px; -webkit-border-radius: 3px;
-moz-border-radius: 2px; -moz-border-radius: 3px;
border-radius: 2px; border-radius: 3px;
}
.btn-group + .btn-group {
margin-left: 3px;
} }
.btn { .btn {
-webkit-border-radius: 2px; -webkit-border-radius: 3px;
-moz-border-radius: 2px; -moz-border-radius: 3px;
border-radius: 2px; border-radius: 3px;
background-image: none; background-image: none;
padding-left: 13px;
padding-right: 13px;
text-shadow: 0 1px 0 #fff; text-shadow: 0 1px 0 #fff;
} }
.btn.disabled, .btn.disabled,
.btn[disabled] { .btn[disabled] {
opacity: 0.75;
filter: alpha(opacity=75);
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
} }
.btn.btn-dark-disabled-border.disabled,
.btn.btn-dark-disabled-border[disabled] {
border-color: #aaa;
}
html.rgba.textshadow .btn.btn-danger, html.rgba.textshadow .btn.btn-danger,
html.rgba.textshadow .btn.btn-success, html.rgba.textshadow .btn.btn-success,
html.rgba.textshadow .btn.btn-primary { html.rgba.textshadow .btn.btn-primary {
@ -5503,38 +5514,38 @@ html.rgba.textshadow .btn.btn-primary {
border-radius: 2px; border-radius: 2px;
} }
.btn-group > .btn:first-child { .btn-group > .btn:first-child {
-webkit-border-top-left-radius: 2px; -webkit-border-top-left-radius: 3px;
-moz-border-radius-topleft: 2px; -moz-border-radius-topleft: 3px;
border-top-left-radius: 2px; border-top-left-radius: 3px;
-webkit-border-bottom-left-radius: 2px; -webkit-border-bottom-left-radius: 3px;
-moz-border-radius-bottomleft: 2px; -moz-border-radius-bottomleft: 3px;
border-bottom-left-radius: 2px; border-bottom-left-radius: 3px;
} }
.btn-group > .btn:last-child, .btn-group > .btn:last-child,
.btn-group > .dropdown-toggle { .btn-group > .dropdown-toggle {
-webkit-border-top-right-radius: 2px; -webkit-border-top-right-radius: 3px;
-moz-border-radius-topright: 2px; -moz-border-radius-topright: 3px;
border-top-right-radius: 2px; border-top-right-radius: 3px;
-webkit-border-bottom-right-radius: 2px; -webkit-border-bottom-right-radius: 3px;
-moz-border-radius-bottomright: 2px; -moz-border-radius-bottomright: 3px;
border-bottom-right-radius: 2px; border-bottom-right-radius: 3px;
} }
.btn-group > .btn.large:first-child { .btn-group > .btn.large:first-child {
-webkit-border-top-left-radius: 2px; -webkit-border-top-left-radius: 3px;
-moz-border-radius-topleft: 2px; -moz-border-radius-topleft: 3px;
border-top-left-radius: 2px; border-top-left-radius: 3px;
-webkit-border-bottom-left-radius: 2px; -webkit-border-bottom-left-radius: 3px;
-moz-border-radius-bottomleft: 2px; -moz-border-radius-bottomleft: 3px;
border-bottom-left-radius: 2px; border-bottom-left-radius: 3px;
} }
.btn-group > .btn.large:last-child, .btn-group > .btn.large:last-child,
.btn-group > .large.dropdown-toggle { .btn-group > .large.dropdown-toggle {
-webkit-border-top-right-radius: 2px; -webkit-border-top-right-radius: 3px;
-moz-border-radius-topright: 2px; -moz-border-radius-topright: 3px;
border-top-right-radius: 2px; border-top-right-radius: 3px;
-webkit-border-bottom-right-radius: 2px; -webkit-border-bottom-right-radius: 3px;
-moz-border-radius-bottomright: 2px; -moz-border-radius-bottomright: 3px;
border-bottom-right-radius: 2px; border-bottom-right-radius: 3px;
} }
textarea, textarea,
input[type="text"], input[type="text"],
@ -6165,10 +6176,10 @@ html.ssm-state-desktop #rl-right {
left: 200px; left: 200px;
} }
html.ssm-state-desktop #rl-sub-left { html.ssm-state-desktop #rl-sub-left {
width: 350px; width: 400px;
} }
html.ssm-state-desktop #rl-sub-right { html.ssm-state-desktop #rl-sub-right {
left: 350px; left: 400px;
} }
html.ssm-state-tablet #rl-left { html.ssm-state-tablet #rl-left {
width: 150px; width: 150px;
@ -6177,13 +6188,13 @@ html.ssm-state-tablet #rl-right {
left: 150px; left: 150px;
} }
html.ssm-state-tablet #rl-sub-left { html.ssm-state-tablet #rl-sub-left {
width: 310px; width: 340px;
} }
html.ssm-state-tablet #rl-sub-left .messageList .inputSearch { html.ssm-state-tablet #rl-sub-left .messageList .inputSearch {
width: 220px; width: 220px;
} }
html.ssm-state-tablet #rl-sub-right { html.ssm-state-tablet #rl-sub-right {
left: 310px; left: 340px;
} }
html.ssm-state-tablet .b-compose.modal { html.ssm-state-tablet .b-compose.modal {
width: 800px; width: 800px;
@ -6198,13 +6209,13 @@ html.ssm-state-mobile #rl-right {
left: 120px; left: 120px;
} }
html.ssm-state-mobile #rl-sub-left { html.ssm-state-mobile #rl-sub-left {
width: 310px; width: 340px;
} }
html.ssm-state-mobile #rl-sub-left .messageList .inputSearch { html.ssm-state-mobile #rl-sub-left .messageList .inputSearch {
width: 220px; width: 220px;
} }
html.ssm-state-mobile #rl-sub-right { html.ssm-state-mobile #rl-sub-right {
left: 310px; left: 340px;
} }
html.ssm-state-mobile .b-compose.modal { html.ssm-state-mobile .b-compose.modal {
width: 800px; width: 800px;

File diff suppressed because one or more lines are too long

View file

@ -376,6 +376,7 @@ Enums.FolderType = {
'Draft': 12, 'Draft': 12,
'Trash': 13, 'Trash': 13,
'Spam': 14, 'Spam': 14,
'Archive': 15,
'User': 99 'User': 99
}; };
@ -432,7 +433,8 @@ Enums.SetSystemFoldersNotification = {
'Sent': 1, 'Sent': 1,
'Draft': 2, 'Draft': 2,
'Spam': 3, 'Spam': 3,
'Trash': 4 'Trash': 4,
'Archive': 5
}; };
/** /**
@ -594,6 +596,8 @@ Enums.ContactScopeType = {
* @enum {number} * @enum {number}
*/ */
Enums.SignedVerifyStatus = { Enums.SignedVerifyStatus = {
'UnknownPublicKeys': -4,
'UnknownPrivateKey': -3,
'Unverified': -2, 'Unverified': -2,
'Error': -1, 'Error': -1,
'None': 0, 'None': 0,

File diff suppressed because one or more lines are too long

View file

@ -380,6 +380,7 @@ Enums.FolderType = {
'Draft': 12, 'Draft': 12,
'Trash': 13, 'Trash': 13,
'Spam': 14, 'Spam': 14,
'Archive': 15,
'User': 99 'User': 99
}; };
@ -436,7 +437,8 @@ Enums.SetSystemFoldersNotification = {
'Sent': 1, 'Sent': 1,
'Draft': 2, 'Draft': 2,
'Spam': 3, 'Spam': 3,
'Trash': 4 'Trash': 4,
'Archive': 5
}; };
/** /**
@ -598,6 +600,8 @@ Enums.ContactScopeType = {
* @enum {number} * @enum {number}
*/ */
Enums.SignedVerifyStatus = { Enums.SignedVerifyStatus = {
'UnknownPublicKeys': -4,
'UnknownPrivateKey': -3,
'Unverified': -2, 'Unverified': -2,
'Error': -1, 'Error': -1,
'None': 0, 'None': 0,
@ -7066,7 +7070,7 @@ MessageModel.prototype.verifyPgpSignedClearMessage = function ()
aRes = [], aRes = [],
mPgpMessage = null, mPgpMessage = null,
sFrom = this.from && this.from[0] && this.from[0].email ? this.from[0].email : '', sFrom = this.from && this.from[0] && this.from[0].email ? this.from[0].email : '',
aPublicKey = RL.data().findPublicKeysByEmail(sFrom), aPublicKeys = RL.data().findPublicKeysByEmail(sFrom),
oValidKey = null, oValidKey = null,
oValidSysKey = null, oValidSysKey = null,
sPlain = '' sPlain = ''
@ -7080,9 +7084,10 @@ MessageModel.prototype.verifyPgpSignedClearMessage = function ()
mPgpMessage = window.openpgp.cleartext.readArmored(this.plainRaw); mPgpMessage = window.openpgp.cleartext.readArmored(this.plainRaw);
if (mPgpMessage && mPgpMessage.getText) if (mPgpMessage && mPgpMessage.getText)
{ {
this.pgpSignedVerifyStatus(Enums.SignedVerifyStatus.Unverified); this.pgpSignedVerifyStatus(
aPublicKeys.length ? Enums.SignedVerifyStatus.Unverified : Enums.SignedVerifyStatus.UnknownPublicKeys);
aRes = mPgpMessage.verify(aPublicKey); aRes = mPgpMessage.verify(aPublicKeys);
if (aRes && 0 < aRes.length) if (aRes && 0 < aRes.length)
{ {
oValidKey = _.find(aRes, function (oItem) { oValidKey = _.find(aRes, function (oItem) {
@ -7119,6 +7124,78 @@ MessageModel.prototype.verifyPgpSignedClearMessage = function ()
} }
}; };
MessageModel.prototype.decryptPgpEncryptedMessage = function (sPassword)
{
if (this.isPgpEncrypted())
{
var
aRes = [],
mPgpMessage = null,
mPgpMessageDecrypted = null,
sFrom = this.from && this.from[0] && this.from[0].email ? this.from[0].email : '',
aPublicKey = RL.data().findPublicKeysByEmail(sFrom),
oPrivateKey = RL.data().findSelfPrivateKey(sPassword),
oValidKey = null,
oValidSysKey = null,
sPlain = ''
;
this.pgpSignedVerifyStatus(Enums.SignedVerifyStatus.Error);
this.pgpSignedVerifyUser('');
if (!oPrivateKey)
{
this.pgpSignedVerifyStatus(Enums.SignedVerifyStatus.UnknownPrivateKey);
}
try
{
mPgpMessage = window.openpgp.message.readArmored(this.plainRaw);
if (mPgpMessage && oPrivateKey && mPgpMessage.decrypt)
{
this.pgpSignedVerifyStatus(Enums.SignedVerifyStatus.Unverified);
mPgpMessageDecrypted = mPgpMessage.decrypt(oPrivateKey);
if (mPgpMessageDecrypted)
{
aRes = mPgpMessageDecrypted.verify(aPublicKey);
if (aRes && 0 < aRes.length)
{
oValidKey = _.find(aRes, function (oItem) {
return oItem && oItem.keyid && oItem.valid;
});
if (oValidKey)
{
oValidSysKey = RL.data().findPublicKeyByHex(oValidKey.keyid.toHex());
if (oValidSysKey)
{
this.pgpSignedVerifyStatus(Enums.SignedVerifyStatus.Success);
this.pgpSignedVerifyUser(oValidSysKey.user);
}
}
}
sPlain = mPgpMessageDecrypted.getText();
sPlain =
$proxyDiv.empty().append(
$('<pre class="b-plain-openpgp signed verified"></pre>').text(sPlain)
).html()
;
$proxyDiv.empty();
this.replacePlaneTextBody(sPlain);
}
}
}
catch (oExc) {}
this.storePgpVerifyDataToDom();
}
};
MessageModel.prototype.replacePlaneTextBody = function (sPlain) MessageModel.prototype.replacePlaneTextBody = function (sPlain)
{ {
if (this.body) if (this.body)
@ -7334,6 +7411,9 @@ FolderModel.prototype.initComputed = function ()
case Enums.FolderType.Trash: case Enums.FolderType.Trash:
sName = Utils.i18n('FOLDER_LIST/TRASH_NAME'); sName = Utils.i18n('FOLDER_LIST/TRASH_NAME');
break; break;
case Enums.FolderType.Archive:
sName = Utils.i18n('FOLDER_LIST/ARCHIVE_NAME');
break;
} }
} }
@ -7370,6 +7450,9 @@ FolderModel.prototype.initComputed = function ()
case Enums.FolderType.Trash: case Enums.FolderType.Trash:
sSuffix = '(' + Utils.i18n('FOLDER_LIST/TRASH_NAME') + ')'; sSuffix = '(' + Utils.i18n('FOLDER_LIST/TRASH_NAME') + ')';
break; break;
case Enums.FolderType.Archive:
sSuffix = '(' + Utils.i18n('FOLDER_LIST/ARCHIVE_NAME') + ')';
break;
} }
} }
@ -7788,6 +7871,7 @@ function PopupsFolderSystemViewModel()
this.draftFolder = oData.draftFolder; this.draftFolder = oData.draftFolder;
this.spamFolder = oData.spamFolder; this.spamFolder = oData.spamFolder;
this.trashFolder = oData.trashFolder; this.trashFolder = oData.trashFolder;
this.archiveFolder = oData.archiveFolder;
fSaveSystemFolders = _.debounce(function () { fSaveSystemFolders = _.debounce(function () {
@ -7795,12 +7879,14 @@ function PopupsFolderSystemViewModel()
RL.settingsSet('DraftFolder', self.draftFolder()); RL.settingsSet('DraftFolder', self.draftFolder());
RL.settingsSet('SpamFolder', self.spamFolder()); RL.settingsSet('SpamFolder', self.spamFolder());
RL.settingsSet('TrashFolder', self.trashFolder()); RL.settingsSet('TrashFolder', self.trashFolder());
RL.settingsSet('ArchiveFolder', self.archiveFolder());
RL.remote().saveSystemFolders(Utils.emptyFunction, { RL.remote().saveSystemFolders(Utils.emptyFunction, {
'SentFolder': self.sentFolder(), 'SentFolder': self.sentFolder(),
'DraftFolder': self.draftFolder(), 'DraftFolder': self.draftFolder(),
'SpamFolder': self.spamFolder(), 'SpamFolder': self.spamFolder(),
'TrashFolder': self.trashFolder(), 'TrashFolder': self.trashFolder(),
'ArchiveFolder': self.archiveFolder(),
'NullFolder': 'NullFolder' 'NullFolder': 'NullFolder'
}); });
@ -7812,6 +7898,7 @@ function PopupsFolderSystemViewModel()
RL.settingsSet('DraftFolder', self.draftFolder()); RL.settingsSet('DraftFolder', self.draftFolder());
RL.settingsSet('SpamFolder', self.spamFolder()); RL.settingsSet('SpamFolder', self.spamFolder());
RL.settingsSet('TrashFolder', self.trashFolder()); RL.settingsSet('TrashFolder', self.trashFolder());
RL.settingsSet('ArchiveFolder', self.archiveFolder());
fSaveSystemFolders(); fSaveSystemFolders();
}; };
@ -7820,6 +7907,7 @@ function PopupsFolderSystemViewModel()
this.draftFolder.subscribe(fCallback); this.draftFolder.subscribe(fCallback);
this.spamFolder.subscribe(fCallback); this.spamFolder.subscribe(fCallback);
this.trashFolder.subscribe(fCallback); this.trashFolder.subscribe(fCallback);
this.archiveFolder.subscribe(fCallback);
this.defautOptionsAfterRender = Utils.defautOptionsAfterRender; this.defautOptionsAfterRender = Utils.defautOptionsAfterRender;
@ -7854,6 +7942,9 @@ PopupsFolderSystemViewModel.prototype.onShow = function (iNotificationType)
case Enums.SetSystemFoldersNotification.Trash: case Enums.SetSystemFoldersNotification.Trash:
sNotification = Utils.i18n('POPUPS_SYSTEM_FOLDERS/NOTIFICATION_TRASH'); sNotification = Utils.i18n('POPUPS_SYSTEM_FOLDERS/NOTIFICATION_TRASH');
break; break;
case Enums.SetSystemFoldersNotification.Archive:
sNotification = Utils.i18n('POPUPS_SYSTEM_FOLDERS/NOTIFICATION_ARCHIVE');
break;
} }
this.notification(sNotification); this.notification(sNotification);
@ -10468,7 +10559,8 @@ function PopupsComposeOpenPgpViewModel()
if (bResult && this.encrypt()) if (bResult && this.encrypt())
{ {
aPublicKeys = _.compact(_.union(this.to(), function (sEmail) { aPublicKeys = [];
_.each(this.to(), function (sEmail) {
var aKeys = oData.findPublicKeysByEmail(sEmail); var aKeys = oData.findPublicKeysByEmail(sEmail);
if (0 === aKeys.length && bResult) if (0 === aKeys.length && bResult)
{ {
@ -10477,9 +10569,8 @@ function PopupsComposeOpenPgpViewModel()
bResult = false; bResult = false;
} }
return aKeys; aPublicKeys = aPublicKeys.concat(aKeys);
});
}));
if (bResult && (0 === aPublicKeys.length || this.to().length !== aPublicKeys.length)) if (bResult && (0 === aPublicKeys.length || this.to().length !== aPublicKeys.length))
{ {
@ -11534,15 +11625,26 @@ function MailBoxMessageListViewModel()
}, this); }, this);
this.isSpamFolder = ko.computed(function () { this.isSpamFolder = ko.computed(function () {
return RL.data().spamFolder() === this.messageListEndFolder(); return oData.spamFolder() === this.messageListEndFolder() &&
'' !== oData.spamFolder();
}, this); }, this);
this.isSpamDisabled = ko.computed(function () { this.isSpamDisabled = ko.computed(function () {
return Consts.Values.UnuseOptionValue === RL.data().spamFolder(); return Consts.Values.UnuseOptionValue === oData.spamFolder();
}, this); }, this);
this.isTrashFolder = ko.computed(function () { this.isTrashFolder = ko.computed(function () {
return RL.data().trashFolder() === this.messageListEndFolder(); return oData.trashFolder() === this.messageListEndFolder() &&
'' !== oData.trashFolder();
}, this);
this.isArchiveFolder = ko.computed(function () {
return oData.archiveFolder() === this.messageListEndFolder() &&
'' !== oData.archiveFolder();
}, this);
this.isArchiveDisabled = ko.computed(function () {
return Consts.Values.UnuseOptionValue === RL.data().archiveFolder();
}, this); }, this);
this.canBeMoved = this.hasCheckedOrSelectedLines; this.canBeMoved = this.hasCheckedOrSelectedLines;
@ -11567,6 +11669,12 @@ function MailBoxMessageListViewModel()
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true); RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved); }, this.canBeMoved);
this.archiveCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Archive,
RL.data().currentFolderFullNameRaw(),
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved);
this.spamCommand = Utils.createCommand(this, function () { this.spamCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Spam, RL.deleteMessagesFromFolder(Enums.FolderType.Spam,
RL.data().currentFolderFullNameRaw(), RL.data().currentFolderFullNameRaw(),
@ -11644,6 +11752,15 @@ MailBoxMessageListViewModel.prototype.searchEnterAction = function ()
this.inputMessageListSearchFocus(false); this.inputMessageListSearchFocus(false);
}; };
/**
* @returns {string}
*/
MailBoxMessageListViewModel.prototype.printableMessageCountForDeletion = function ()
{
var iCnt = this.messageListCheckedOrSelectedUidsWithSubMails().length;
return 1 < iCnt ? ' (' + (100 > iCnt ? iCnt : '99+') + ')' : '';
};
MailBoxMessageListViewModel.prototype.cancelSearch = function () MailBoxMessageListViewModel.prototype.cancelSearch = function ()
{ {
this.mainMessageListSearch(''); this.mainMessageListSearch('');
@ -12167,8 +12284,6 @@ function MailBoxMessageViewViewModel()
this.fullScreenMode = oData.messageFullScreenMode; this.fullScreenMode = oData.messageFullScreenMode;
this.showFullInfo = ko.observable(false); this.showFullInfo = ko.observable(false);
this.openPGPInformation = ko.observable('');
this.openPGPInformation.isError = ko.observable(false);
this.messageVisibility = ko.computed(function () { this.messageVisibility = ko.computed(function () {
return !this.messageLoadingThrottle() && !!this.message(); return !this.messageLoadingThrottle() && !!this.message();
@ -12211,6 +12326,17 @@ function MailBoxMessageViewViewModel()
}, this.messageVisibility); }, this.messageVisibility);
this.archiveCommand = Utils.createCommand(this, function () {
if (this.message())
{
RL.deleteMessagesFromFolder(Enums.FolderType.Archive,
this.message().folderFullNameRaw,
[this.message().uid], true);
}
}, this.messageVisibility);
this.spamCommand = Utils.createCommand(this, function () { this.spamCommand = Utils.createCommand(this, function () {
if (this.message()) if (this.message())
@ -12238,6 +12364,7 @@ function MailBoxMessageViewViewModel()
this.viewUserPic = ko.observable(Consts.DataImages.UserDotPic); this.viewUserPic = ko.observable(Consts.DataImages.UserDotPic);
this.viewUserPicVisible = ko.observable(false); this.viewUserPicVisible = ko.observable(false);
this.viewPgpPassword = ko.observable('');
this.viewPgpSignedVerifyStatus = ko.computed(function () { this.viewPgpSignedVerifyStatus = ko.computed(function () {
return this.message() ? this.message().pgpSignedVerifyStatus() : Enums.SignedVerifyStatus.None; return this.message() ? this.message().pgpSignedVerifyStatus() : Enums.SignedVerifyStatus.None;
}, this); }, this);
@ -12246,10 +12373,13 @@ function MailBoxMessageViewViewModel()
return this.message() ? this.message().pgpSignedVerifyUser() : ''; return this.message() ? this.message().pgpSignedVerifyUser() : '';
}, this); }, this);
this.message.subscribe(function (oMessage) { this.message.subscribe(function (oMessage) {
this.messageActiveDom(null); this.messageActiveDom(null);
this.viewPgpPassword('');
if (oMessage) if (oMessage)
{ {
this.viewSubject(oMessage.subject()); this.viewSubject(oMessage.subject());
@ -12338,6 +12468,12 @@ MailBoxMessageViewViewModel.prototype.pgpStatusVerifyMessage = function ()
switch (this.viewPgpSignedVerifyStatus()) switch (this.viewPgpSignedVerifyStatus())
{ {
// TODO i18n // TODO i18n
case Enums.SignedVerifyStatus.UnknownPublicKeys:
sResult = 'No public keys found';
break;
case Enums.SignedVerifyStatus.UnknownPrivateKey:
sResult = 'No private key found';
break;
case Enums.SignedVerifyStatus.Unverified: case Enums.SignedVerifyStatus.Unverified:
sResult = 'Unverified signature'; sResult = 'Unverified signature';
break; break;
@ -12490,6 +12626,38 @@ MailBoxMessageViewViewModel.prototype.isSentFolder = function ()
return RL.data().message() && RL.data().sentFolder() === RL.data().message().folderFullNameRaw; return RL.data().message() && RL.data().sentFolder() === RL.data().message().folderFullNameRaw;
}; };
/**
* @return {boolean}
*/
MailBoxMessageViewViewModel.prototype.isSpamFolder = function ()
{
return RL.data().message() && RL.data().spamFolder() === RL.data().message().folderFullNameRaw;
};
/**
* @return {boolean}
*/
MailBoxMessageViewViewModel.prototype.isSpamDisabled = function ()
{
return RL.data().message() && RL.data().spamFolder() === Consts.Values.UnuseOptionValue;
};
/**
* @return {boolean}
*/
MailBoxMessageViewViewModel.prototype.isArchiveFolder = function ()
{
return RL.data().message() && RL.data().archiveFolder() === RL.data().message().folderFullNameRaw;
};
/**
* @return {boolean}
*/
MailBoxMessageViewViewModel.prototype.isArchiveDisabled = function ()
{
return RL.data().message() && RL.data().archiveFolder() === Consts.Values.UnuseOptionValue;
};
/** /**
* @return {boolean} * @return {boolean}
*/ */
@ -12548,7 +12716,7 @@ MailBoxMessageViewViewModel.prototype.decryptPgpEncryptedMessage = function (oMe
{ {
if (oMessage) if (oMessage)
{ {
oMessage.decryptPgpEncryptedMessage(); oMessage.decryptPgpEncryptedMessage(this.viewPgpPassword());
} }
}; };
@ -13905,16 +14073,19 @@ function WebMailDataStorage()
this.draftFolder = ko.observable(''); this.draftFolder = ko.observable('');
this.spamFolder = ko.observable(''); this.spamFolder = ko.observable('');
this.trashFolder = ko.observable(''); this.trashFolder = ko.observable('');
this.archiveFolder = ko.observable('');
this.sentFolder.subscribe(fRemoveSystemFolderType(this.sentFolder), this, 'beforeChange'); this.sentFolder.subscribe(fRemoveSystemFolderType(this.sentFolder), this, 'beforeChange');
this.draftFolder.subscribe(fRemoveSystemFolderType(this.draftFolder), this, 'beforeChange'); this.draftFolder.subscribe(fRemoveSystemFolderType(this.draftFolder), this, 'beforeChange');
this.spamFolder.subscribe(fRemoveSystemFolderType(this.spamFolder), this, 'beforeChange'); this.spamFolder.subscribe(fRemoveSystemFolderType(this.spamFolder), this, 'beforeChange');
this.trashFolder.subscribe(fRemoveSystemFolderType(this.trashFolder), this, 'beforeChange'); this.trashFolder.subscribe(fRemoveSystemFolderType(this.trashFolder), this, 'beforeChange');
this.archiveFolder.subscribe(fRemoveSystemFolderType(this.archiveFolder), this, 'beforeChange');
this.sentFolder.subscribe(fSetSystemFolderType(Enums.FolderType.SentItems), this); this.sentFolder.subscribe(fSetSystemFolderType(Enums.FolderType.SentItems), this);
this.draftFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Draft), this); this.draftFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Draft), this);
this.spamFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Spam), this); this.spamFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Spam), this);
this.trashFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Trash), this); this.trashFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Trash), this);
this.archiveFolder.subscribe(fSetSystemFolderType(Enums.FolderType.Archive), this);
this.draftFolderNotEnabled = ko.computed(function () { this.draftFolderNotEnabled = ko.computed(function () {
return '' === this.draftFolder() || Consts.Values.UnuseOptionValue === this.draftFolder(); return '' === this.draftFolder() || Consts.Values.UnuseOptionValue === this.draftFolder();
@ -13995,7 +14166,8 @@ function WebMailDataStorage()
sSentFolder = this.sentFolder(), sSentFolder = this.sentFolder(),
sDraftFolder = this.draftFolder(), sDraftFolder = this.draftFolder(),
sSpamFolder = this.spamFolder(), sSpamFolder = this.spamFolder(),
sTrashFolder = this.trashFolder() sTrashFolder = this.trashFolder(),
sArchiveFolder = this.archiveFolder()
; ;
if (Utils.isArray(aFolders) && 0 < aFolders.length) if (Utils.isArray(aFolders) && 0 < aFolders.length)
@ -14016,6 +14188,10 @@ function WebMailDataStorage()
{ {
aList.push(sTrashFolder); aList.push(sTrashFolder);
} }
if ('' !== sArchiveFolder && Consts.Values.UnuseOptionValue !== sArchiveFolder)
{
aList.push(sArchiveFolder);
}
} }
return aList; return aList;
@ -14482,13 +14658,15 @@ WebMailDataStorage.prototype.setFolders = function (oData)
if (oData.Result['SystemFolders'] && if (oData.Result['SystemFolders'] &&
'' === '' + RL.settingsGet('SentFolder') + RL.settingsGet('DraftFolder') + '' === '' + RL.settingsGet('SentFolder') + RL.settingsGet('DraftFolder') +
RL.settingsGet('SpamFolder') + RL.settingsGet('TrashFolder') + RL.settingsGet('NullFolder')) RL.settingsGet('SpamFolder') + RL.settingsGet('TrashFolder') + RL.settingsGet('ArchiveFolder') +
RL.settingsGet('NullFolder'))
{ {
// TODO Magic Numbers // TODO Magic Numbers
RL.settingsSet('SentFolder', oData.Result['SystemFolders'][2] || null); RL.settingsSet('SentFolder', oData.Result['SystemFolders'][2] || null);
RL.settingsSet('DraftFolder', oData.Result['SystemFolders'][3] || null); RL.settingsSet('DraftFolder', oData.Result['SystemFolders'][3] || null);
RL.settingsSet('SpamFolder', oData.Result['SystemFolders'][4] || null); RL.settingsSet('SpamFolder', oData.Result['SystemFolders'][4] || null);
RL.settingsSet('TrashFolder', oData.Result['SystemFolders'][5] || null); RL.settingsSet('TrashFolder', oData.Result['SystemFolders'][5] || null);
RL.settingsSet('ArchiveFolder', oData.Result['SystemFolders'][12] || null);
bUpdate = true; bUpdate = true;
} }
@ -14497,6 +14675,7 @@ WebMailDataStorage.prototype.setFolders = function (oData)
oRLData.draftFolder(fNormalizeFolder(RL.settingsGet('DraftFolder'))); oRLData.draftFolder(fNormalizeFolder(RL.settingsGet('DraftFolder')));
oRLData.spamFolder(fNormalizeFolder(RL.settingsGet('SpamFolder'))); oRLData.spamFolder(fNormalizeFolder(RL.settingsGet('SpamFolder')));
oRLData.trashFolder(fNormalizeFolder(RL.settingsGet('TrashFolder'))); oRLData.trashFolder(fNormalizeFolder(RL.settingsGet('TrashFolder')));
oRLData.archiveFolder(fNormalizeFolder(RL.settingsGet('ArchiveFolder')));
if (bUpdate) if (bUpdate)
{ {
@ -14505,6 +14684,7 @@ WebMailDataStorage.prototype.setFolders = function (oData)
'DraftFolder': oRLData.draftFolder(), 'DraftFolder': oRLData.draftFolder(),
'SpamFolder': oRLData.spamFolder(), 'SpamFolder': oRLData.spamFolder(),
'TrashFolder': oRLData.trashFolder(), 'TrashFolder': oRLData.trashFolder(),
'ArchiveFolder': oRLData.archiveFolder(),
'NullFolder': 'NullFolder' 'NullFolder': 'NullFolder'
}); });
} }
@ -14695,7 +14875,6 @@ WebMailDataStorage.prototype.setMessage = function (oData, bCached)
sPlain = '', sPlain = '',
bPgpSigned = false, bPgpSigned = false,
bPgpEncrypted = false, bPgpEncrypted = false,
mPgpMessage = null,
oMessagesBodiesDom = this.messagesBodiesDom(), oMessagesBodiesDom = this.messagesBodiesDom(),
oMessage = this.message() oMessage = this.message()
; ;
@ -14760,12 +14939,6 @@ WebMailDataStorage.prototype.setMessage = function (oData, bCached)
} }
else if (bPgpEncrypted && oMessage.isPgpEncrypted()) else if (bPgpEncrypted && oMessage.isPgpEncrypted())
{ {
// try
// {
// mPgpMessage = window.openpgp.message.readArmored(oMessage.plainRaw);
// }
// catch (oExc) {}
sPlain = sPlain =
$proxyDiv.append( $proxyDiv.append(
$('<pre class="b-plain-openpgp encrypted"></pre>').text(oMessage.plainRaw) $('<pre class="b-plain-openpgp encrypted"></pre>').text(oMessage.plainRaw)
@ -15014,7 +15187,12 @@ WebMailDataStorage.prototype.findPublicKeysByEmail = function (sEmail)
})); }));
}; };
WebMailDataStorage.prototype.findPrivateKeyByEmail = function (sEmail, sPass) /**
* @param {string} sEmail
* @param {string=} sPassword
* @returns {?}
*/
WebMailDataStorage.prototype.findPrivateKeyByEmail = function (sEmail, sPassword)
{ {
var var
oPrivateKey = null, oPrivateKey = null,
@ -15031,7 +15209,7 @@ WebMailDataStorage.prototype.findPrivateKeyByEmail = function (sEmail, sPass)
if (oPrivateKey && !oPrivateKey.err && oPrivateKey.keys && oPrivateKey.keys[0]) if (oPrivateKey && !oPrivateKey.err && oPrivateKey.keys && oPrivateKey.keys[0])
{ {
oPrivateKey = oPrivateKey.keys[0]; oPrivateKey = oPrivateKey.keys[0];
oPrivateKey.decrypt(sPass); oPrivateKey.decrypt(Utils.pString(sPassword));
} }
else else
{ {
@ -15047,6 +15225,15 @@ WebMailDataStorage.prototype.findPrivateKeyByEmail = function (sEmail, sPass)
return oPrivateKey; return oPrivateKey;
}; };
/**
* @param {string=} sPassword
* @returns {?}
*/
WebMailDataStorage.prototype.findSelfPrivateKey = function (sPassword)
{
return this.findPrivateKeyByEmail(this.accountEmail(), sPassword);
};
/** /**
* @constructor * @constructor
*/ */
@ -15343,7 +15530,8 @@ WebMailAjaxRemoteStorage.prototype.folders = function (fCallback)
'SentFolder': RL.settingsGet('SentFolder'), 'SentFolder': RL.settingsGet('SentFolder'),
'DraftFolder': RL.settingsGet('DraftFolder'), 'DraftFolder': RL.settingsGet('DraftFolder'),
'SpamFolder': RL.settingsGet('SpamFolder'), 'SpamFolder': RL.settingsGet('SpamFolder'),
'TrashFolder': RL.settingsGet('TrashFolder') 'TrashFolder': RL.settingsGet('TrashFolder'),
'ArchiveFolder': RL.settingsGet('ArchiveFolder')
}, null, '', ['Folders']); }, null, '', ['Folders']);
}; };
@ -17342,26 +17530,43 @@ RainLoopApp.prototype.deleteMessagesFromFolder = function (iDeleteType, sFromFol
self = this, self = this,
oData = RL.data(), oData = RL.data(),
oCache = RL.cache(), oCache = RL.cache(),
oTrashOrSpamFolder = oCache.getFolderFromCacheList( oMoveFolder = null,
Enums.FolderType.Spam === iDeleteType ? oData.spamFolder() : oData.trashFolder()) nSetSystemFoldersNotification = null
; ;
switch (iDeleteType)
{
case Enums.FolderType.Spam:
oMoveFolder = oCache.getFolderFromCacheList(oData.spamFolder());
nSetSystemFoldersNotification = Enums.SetSystemFoldersNotification.Spam;
break;
case Enums.FolderType.Trash:
oMoveFolder = oCache.getFolderFromCacheList(oData.trashFolder());
nSetSystemFoldersNotification = Enums.SetSystemFoldersNotification.Trash;
break;
case Enums.FolderType.Archive:
oMoveFolder = oCache.getFolderFromCacheList(oData.archiveFolder());
nSetSystemFoldersNotification = Enums.SetSystemFoldersNotification.Archive;
break;
}
bUseFolder = Utils.isUnd(bUseFolder) ? true : !!bUseFolder; bUseFolder = Utils.isUnd(bUseFolder) ? true : !!bUseFolder;
if (bUseFolder) if (bUseFolder)
{ {
if ((Enums.FolderType.Spam === iDeleteType && Consts.Values.UnuseOptionValue === oData.spamFolder()) || if ((Enums.FolderType.Spam === iDeleteType && Consts.Values.UnuseOptionValue === oData.spamFolder()) ||
(Enums.FolderType.Trash === iDeleteType && Consts.Values.UnuseOptionValue === oData.trashFolder())) (Enums.FolderType.Trash === iDeleteType && Consts.Values.UnuseOptionValue === oData.trashFolder()) ||
(Enums.FolderType.Archive === iDeleteType && Consts.Values.UnuseOptionValue === oData.archiveFolder()))
{ {
bUseFolder = false; bUseFolder = false;
} }
} }
if (!oTrashOrSpamFolder && bUseFolder) if (!oMoveFolder && bUseFolder)
{ {
kn.showScreenPopup(PopupsFolderSystemViewModel, [ kn.showScreenPopup(PopupsFolderSystemViewModel, [nSetSystemFoldersNotification]);
Enums.FolderType.Spam === iDeleteType ? Enums.SetSystemFoldersNotification.Spam : Enums.SetSystemFoldersNotification.Trash]);
} }
else if (!bUseFolder || (sFromFolderFullNameRaw === oData.spamFolder() || sFromFolderFullNameRaw === oData.trashFolder())) else if (!bUseFolder || (Enums.FolderType.Trash === iDeleteType &&
(sFromFolderFullNameRaw === oData.spamFolder() || sFromFolderFullNameRaw === oData.trashFolder())))
{ {
kn.showScreenPopup(PopupsAskViewModel, [Utils.i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'), function () { kn.showScreenPopup(PopupsAskViewModel, [Utils.i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'), function () {
@ -17375,16 +17580,16 @@ RainLoopApp.prototype.deleteMessagesFromFolder = function (iDeleteType, sFromFol
}]); }]);
} }
else if (oTrashOrSpamFolder) else if (oMoveFolder)
{ {
RL.remote().messagesMove( RL.remote().messagesMove(
this.moveOrDeleteResponseHelper, this.moveOrDeleteResponseHelper,
sFromFolderFullNameRaw, sFromFolderFullNameRaw,
oTrashOrSpamFolder.fullNameRaw, oMoveFolder.fullNameRaw,
aUidForRemove aUidForRemove
); );
oData.removeMessagesFromList(sFromFolderFullNameRaw, aUidForRemove, oTrashOrSpamFolder.fullNameRaw); oData.removeMessagesFromList(sFromFolderFullNameRaw, aUidForRemove, oMoveFolder.fullNameRaw);
} }
}; };

File diff suppressed because one or more lines are too long