de lang fixes

# key shortcut for delete
Release commit
This commit is contained in:
RainLoop Team 2014-06-03 03:22:36 +04:00
parent fb18e4e799
commit 2842a93593
11 changed files with 372 additions and 300 deletions

View file

@ -440,13 +440,11 @@ module.exports = function (grunt) {
var var
version = grunt.config('pkg.version'), version = grunt.config('pkg.version'),
release = grunt.config('pkg.release'), release = parseInt(grunt.config('pkg.release'), 10),
releasesPath = grunt.config('cfg.releasesPath'), releasesPath = grunt.config('cfg.releasesPath'),
devVersion = grunt.config('cfg.devVersion'), devVersion = grunt.config('cfg.devVersion'),
versionFull = version + '.' + release, versionFull = version + '.' + release,
dist = releasesPath + '/' + versionFull + '/src/', dist = releasesPath + '/' + versionFull + '/src/'
indexContent = grunt.file.read('index.php'),
packageJsonContent = grunt.file.read('package.json')
; ;
grunt.file.mkdir(dist); grunt.file.mkdir(dist);
@ -459,18 +457,12 @@ module.exports = function (grunt) {
grunt.file.write(dist + 'data/EMPTY', versionFull); grunt.file.write(dist + 'data/EMPTY', versionFull);
grunt.file.write(dist + 'index.php', grunt.file.write(dist + 'index.php',
indexContent.replace('\'APP_VERSION\', \'0.0.0\';', '\'APP_VERSION\'. \'' + versionFull + '\'')); grunt.file.read('index.php').replace('\'APP_VERSION\', \'0.0.0\'', '\'APP_VERSION\', \'' + versionFull + '\''));
grunt.file.copy(dist + 'index.php', dist + 'rainloop/v/' + versionFull + '/index.php.root'); grunt.file.copy(dist + 'index.php', dist + 'rainloop/v/' + versionFull + '/index.php.root');
grunt.file.write('package.json',
packageJsonContent.replace(/"release":\s?"[\d]+",/, '"release": "' + (1 + parseInt(release, 10)) + '",'));
grunt.file.delete(dist + 'rainloop/v/' + versionFull + '/static/css/less.css'); grunt.file.delete(dist + 'rainloop/v/' + versionFull + '/static/css/less.css');
grunt.file.write('package.json',
packageJsonContent.replace(/"release":\s?"[\d]+",/, '"release": "' + (1 + parseInt(release, 10)) + '",'));
grunt.config.set('cfg.releaseFolder', versionFull); grunt.config.set('cfg.releaseFolder', versionFull);
grunt.config.set('cfg.releaseSrcPath', dist); grunt.config.set('cfg.releaseSrcPath', dist);
grunt.config.set('cfg.releaseZipFile', 'rainloop-' + versionFull + '.zip'); grunt.config.set('cfg.releaseZipFile', 'rainloop-' + versionFull + '.zip');
@ -481,7 +473,7 @@ module.exports = function (grunt) {
var var
content = '', content = '',
version = grunt.config('pkg.version'), version = grunt.config('pkg.version'),
release = grunt.config('pkg.release'), release = parseInt(grunt.config('pkg.release'), 10),
releasesPath = grunt.config('cfg.releasesPath'), releasesPath = grunt.config('cfg.releasesPath'),
devVersion = grunt.config('cfg.devVersion'), devVersion = grunt.config('cfg.devVersion'),
webmailPath = grunt.config('cfg.releaseSrcPath'), webmailPath = grunt.config('cfg.releaseSrcPath'),
@ -514,6 +506,13 @@ module.exports = function (grunt) {
grunt.config.set('cfg.releaseZipFile', 'rainloop-owncloud-app-' + versionFull + '.zip'); grunt.config.set('cfg.releaseZipFile', 'rainloop-owncloud-app-' + versionFull + '.zip');
}); });
grunt.registerTask('release-inc', 'release inc', function () {
grunt.file.write('package.json',
grunt.file.read('package.json').replace(/"release":\s?"[\d]+",/, '"release": "' +
(1 + parseInt(grunt.config('pkg.release'), 10)) + '",'));
});
grunt.registerTask('rainloop-clean', 'RainLoop Webmail clean task', function () { grunt.registerTask('rainloop-clean', 'RainLoop Webmail clean task', function () {
var releaseSrcPath = grunt.config('cfg.releaseSrcPath'); var releaseSrcPath = grunt.config('cfg.releaseSrcPath');
if ('' !== releaseSrcPath) if ('' !== releaseSrcPath)
@ -538,7 +537,7 @@ module.exports = function (grunt) {
grunt.registerTask('fast', ['less', 'concat']); grunt.registerTask('fast', ['less', 'concat']);
grunt.registerTask('default', ['less', 'concat', 'cssmin', 'jshint', 'rlmin']); grunt.registerTask('default', ['less', 'concat', 'cssmin', 'jshint', 'rlmin']);
grunt.registerTask('build', ['default', 'rainloop', 'compress:build', 'md5:build', 'rainloop-clean']); grunt.registerTask('build', ['default', 'rainloop', 'compress:build', 'md5:build', 'release-inc', 'rainloop-clean']);
grunt.registerTask('owncloud', ['default', 'rainloop', 'rainloop-owncloud', 'compress:own', 'md5:build', 'rainloop-clean']); grunt.registerTask('owncloud', ['default', 'rainloop', 'rainloop-owncloud', 'compress:own', 'md5:build', 'rainloop-clean']);
// aliases // aliases

View file

@ -84,12 +84,16 @@
background-color: #555; background-color: #555;
color: #fff; color: #fff;
} }
&.focused { &.focused {
background-color: #888;
color: #fff; color: #fff;
} }
} }
&.focused {
background-color: #888;
}
&.system { &.system {
cursor: default; cursor: default;
color: grey; color: grey;

View file

@ -9,7 +9,10 @@ function MailBoxFolderListViewModel()
KnoinAbstractViewModel.call(this, 'Left', 'MailFolderList'); KnoinAbstractViewModel.call(this, 'Left', 'MailFolderList');
var oData = RL.data(); var oData = RL.data();
this.oContentVisible = null;
this.oContentScrollable = null;
this.messageList = oData.messageList; this.messageList = oData.messageList;
this.folderList = oData.folderList; this.folderList = oData.folderList;
this.folderListSystem = oData.folderListSystem; this.folderListSystem = oData.folderListSystem;
@ -28,6 +31,9 @@ Utils.extendAsViewModel('MailBoxFolderListViewModel', MailBoxFolderListViewModel
MailBoxFolderListViewModel.prototype.onBuild = function (oDom) MailBoxFolderListViewModel.prototype.onBuild = function (oDom)
{ {
this.oContentVisible = $('.b-content', oDom);
this.oContentScrollable = $('.content', this.oContentVisible);
var self = this; var self = this;
oDom oDom
@ -63,7 +69,7 @@ MailBoxFolderListViewModel.prototype.onBuild = function (oDom)
{ {
oData.message(null); oData.message(null);
} }
if (oFolder.fullNameRaw === oData.currentFolderFullNameRaw()) if (oFolder.fullNameRaw === oData.currentFolderFullNameRaw())
{ {
RL.cache().setFolderHash(oFolder.fullNameRaw, ''); RL.cache().setFolderHash(oFolder.fullNameRaw, '');
@ -100,8 +106,9 @@ MailBoxFolderListViewModel.prototype.onBuild = function (oDom)
} }
$items.eq(iIndex).addClass('focused'); $items.eq(iIndex).addClass('focused');
self.scrollToFocused();
} }
return false; return false;
}); });
@ -164,6 +171,38 @@ MailBoxFolderListViewModel.prototype.messagesDropOut = function ()
window.clearTimeout(this.iDropOverTimer); window.clearTimeout(this.iDropOverTimer);
}; };
MailBoxFolderListViewModel.prototype.scrollToFocused = function ()
{
if (!this.oContentVisible || !this.oContentScrollable)
{
return false;
}
var
iOffset = 20,
oFocused = $('.e-item .e-link.focused', this.oContentScrollable),
oPos = oFocused.position(),
iVisibleHeight = this.oContentVisible.height(),
iFocusedHeight = oFocused.outerHeight()
;
if (oPos && (oPos.top < 0 || oPos.top + iFocusedHeight > iVisibleHeight))
{
if (oPos.top < 0)
{
this.oContentScrollable.scrollTop(this.oContentScrollable.scrollTop() + oPos.top - iOffset);
}
else
{
this.oContentScrollable.scrollTop(this.oContentScrollable.scrollTop() + oPos.top - iVisibleHeight + iFocusedHeight + iOffset);
}
return true;
}
return false;
};
/** /**
* *
* @param {FolderModel} oToFolder * @param {FolderModel} oToFolder

View file

@ -24,7 +24,7 @@ function MailBoxMessageListViewModel()
this.messageListSearch = oData.messageListSearch; this.messageListSearch = oData.messageListSearch;
this.messageListError = oData.messageListError; this.messageListError = oData.messageListError;
this.folderMenuForMove = oData.folderMenuForMove; this.folderMenuForMove = oData.folderMenuForMove;
this.useCheckboxesInList = oData.useCheckboxesInList; this.useCheckboxesInList = oData.useCheckboxesInList;
this.mainMessageListSearch = oData.mainMessageListSearch; this.mainMessageListSearch = oData.mainMessageListSearch;
@ -146,7 +146,7 @@ function MailBoxMessageListViewModel()
this.multyForwardCommand = Utils.createCommand(this, function () { this.multyForwardCommand = Utils.createCommand(this, function () {
kn.showScreenPopup(PopupsComposeViewModel, [Enums.ComposeType.ForwardAsAttachment, RL.data().messageListCheckedOrSelected()]); kn.showScreenPopup(PopupsComposeViewModel, [Enums.ComposeType.ForwardAsAttachment, RL.data().messageListCheckedOrSelected()]);
}, this.canBeMoved); }, this.canBeMoved);
this.deleteWithoutMoveCommand = Utils.createCommand(this, function () { this.deleteWithoutMoveCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Trash, RL.deleteMessagesFromFolder(Enums.FolderType.Trash,
RL.data().currentFolderFullNameRaw(), RL.data().currentFolderFullNameRaw(),
@ -154,7 +154,7 @@ function MailBoxMessageListViewModel()
}, this.canBeMoved); }, this.canBeMoved);
this.deleteCommand = Utils.createCommand(this, function () { this.deleteCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Trash, RL.deleteMessagesFromFolder(Enums.FolderType.Trash,
RL.data().currentFolderFullNameRaw(), RL.data().currentFolderFullNameRaw(),
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true); RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved); }, this.canBeMoved);
@ -164,7 +164,7 @@ function MailBoxMessageListViewModel()
RL.data().currentFolderFullNameRaw(), RL.data().currentFolderFullNameRaw(),
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true); RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved); }, 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(),
@ -185,9 +185,9 @@ function MailBoxMessageListViewModel()
RL.reloadMessageList(false, true); RL.reloadMessageList(false, true);
} }
}); });
this.quotaTooltip = _.bind(this.quotaTooltip, this); this.quotaTooltip = _.bind(this.quotaTooltip, this);
this.selector = new Selector(this.messageList, this.currentMessage, this.selector = new Selector(this.messageList, this.currentMessage,
'.messageListItem .actionHandle', '.messageListItem.selected', '.messageListItem .checkboxMessage', '.messageListItem .actionHandle', '.messageListItem.selected', '.messageListItem .checkboxMessage',
'.messageListItem.focused'); '.messageListItem.focused');
@ -298,7 +298,7 @@ MailBoxMessageListViewModel.prototype.dragAndDronHelper = function (oMessageList
_.defer(function () { _.defer(function () {
var aUids = RL.data().messageListCheckedOrSelectedUidsWithSubMails(); var aUids = RL.data().messageListCheckedOrSelectedUidsWithSubMails();
oEl.data('rl-uids', aUids); oEl.data('rl-uids', aUids);
oEl.find('.text').text('' + aUids.length); oEl.find('.text').text('' + aUids.length);
}); });
@ -317,7 +317,7 @@ MailBoxMessageListViewModel.prototype.onMessageResponse = function (sResult, oDa
oRainLoopData.hideMessageBodies(); oRainLoopData.hideMessageBodies();
oRainLoopData.messageLoading(false); oRainLoopData.messageLoading(false);
if (Enums.StorageResultType.Success === sResult && oData && oData.Result) if (Enums.StorageResultType.Success === sResult && oData && oData.Result)
{ {
oRainLoopData.setMessage(oData, bCached); oRainLoopData.setMessage(oData, bCached);
@ -595,7 +595,7 @@ MailBoxMessageListViewModel.prototype.seenMessagesFast = function (bSeen)
MailBoxMessageListViewModel.prototype.onBuild = function (oDom) MailBoxMessageListViewModel.prototype.onBuild = function (oDom)
{ {
var var
self = this, self = this,
oData = RL.data() oData = RL.data()
; ;
@ -684,20 +684,14 @@ MailBoxMessageListViewModel.prototype.initShortcuts = function ()
return false; return false;
}); });
// TODO // more toggle
// key('', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () {
// self.moreDropdownTrigger(true);
// return false;
// });
// archive (zip) // archive (zip)
key('z', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () { key('z', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () {
self.archiveCommand(); self.archiveCommand();
return false; return false;
}); });
// delete // delete
key('delete, shift+delete', Enums.KeyState.MessageList, function (event, handler) { key('delete, shift+delete, shift+3', Enums.KeyState.MessageList, function (event, handler) {
if (event) if (event)
{ {
if (0 < RL.data().messageListCheckedOrSelected().length) if (0 < RL.data().messageListCheckedOrSelected().length)
@ -807,7 +801,7 @@ MailBoxMessageListViewModel.prototype.prefetchNextTick = function ()
{ {
if (!this.bPrefetch && !ifvisible.now() && this.viewModelVisibility()) if (!this.bPrefetch && !ifvisible.now() && this.viewModelVisibility())
{ {
var var
self = this, self = this,
oCache = RL.cache(), oCache = RL.cache(),
oMessage = _.find(this.messageList(), function (oMessage) { oMessage = _.find(this.messageList(), function (oMessage) {
@ -815,17 +809,17 @@ MailBoxMessageListViewModel.prototype.prefetchNextTick = function ()
!oCache.hasRequestedMessage(oMessage.folderFullNameRaw, oMessage.uid); !oCache.hasRequestedMessage(oMessage.folderFullNameRaw, oMessage.uid);
}) })
; ;
if (oMessage) if (oMessage)
{ {
this.bPrefetch = true; this.bPrefetch = true;
RL.cache().addRequestedMessage(oMessage.folderFullNameRaw, oMessage.uid); RL.cache().addRequestedMessage(oMessage.folderFullNameRaw, oMessage.uid);
RL.remote().message(function (sResult, oData) { RL.remote().message(function (sResult, oData) {
var bNext = !!(Enums.StorageResultType.Success === sResult && oData && oData.Result); var bNext = !!(Enums.StorageResultType.Success === sResult && oData && oData.Result);
_.delay(function () { _.delay(function () {
self.bPrefetch = false; self.bPrefetch = false;
if (bNext) if (bNext)
@ -833,7 +827,7 @@ MailBoxMessageListViewModel.prototype.prefetchNextTick = function ()
self.prefetchNextTick(); self.prefetchNextTick();
} }
}, 1000); }, 1000);
}, oMessage.folderFullNameRaw, oMessage.uid); }, oMessage.folderFullNameRaw, oMessage.uid);
} }
} }

View file

@ -1,8 +1,8 @@
{ {
"name": "RainLoop", "name": "RainLoop",
"title": "RainLoop Webmail", "title": "RainLoop Webmail",
"version": "1.6.8", "version": "1.6.7",
"release": "130", "release": "122",
"description": "Simple, modern & fast web-based email client", "description": "Simple, modern & fast web-based email client",
"homepage": "http://rainloop.net", "homepage": "http://rainloop.net",
"main": "Gruntfile.js", "main": "Gruntfile.js",

View file

@ -41,7 +41,7 @@
<tbody> <tbody>
<tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_CHECK_ALL"></td><td>Ctrl + A, Command + A</td></tr> <tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_CHECK_ALL"></td><td>Ctrl + A, Command + A</td></tr>
<tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_ARCHIVE"></td><td>Z</td></tr> <tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_ARCHIVE"></td><td>Z</td></tr>
<tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_DELETE"></td><td>Delete, Shift + Delete</td></tr> <tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_DELETE"></td><td>Delete, Shift + Delete, #</td></tr>
<tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_MOVE"></td><td>M</td></tr> <tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_MOVE"></td><td>M</td></tr>
<tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_READ"></td><td>Q</td></tr> <tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_READ"></td><td>Q</td></tr>
<tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_UNREAD"></td><td>U</td></tr> <tr><td class="i18n" data-i18n-text="SHORTCUTS_HELP/LABEL_UNREAD"></td><td>U</td></tr>

View file

@ -1,10 +1,10 @@
[LOGIN] [LOGIN]
LABEL_EMAIL = "Email" LABEL_EMAIL = "E-Mail"
LABEL_LOGIN = "Login" LABEL_LOGIN = "Login"
LABEL_PASSWORD = "Passwort" LABEL_PASSWORD = "Passwort"
LABEL_SIGN_ME = "Anmeldung merken" LABEL_SIGN_ME = "Anmeldung merken"
LABEL_VERIFICATION_CODE = "Verification Code" LABEL_VERIFICATION_CODE = "Verifizierungscode"
LABEL_DONT_ASK_VERIFICATION_CODE = "Don't ask for the code for 2 weeks" LABEL_DONT_ASK_VERIFICATION_CODE = "Für 2 Wochen nicht nach dem Code fragen"
BUTTON_SIGN_IN = "Anmelden" BUTTON_SIGN_IN = "Anmelden"
TITLE_SIGN_IN_GOOGLE = "Mit Google anmelden" TITLE_SIGN_IN_GOOGLE = "Mit Google anmelden"
TITLE_SIGN_IN_FACEBOOK = "Mit Facebook anmelden" TITLE_SIGN_IN_FACEBOOK = "Mit Facebook anmelden"
@ -13,7 +13,7 @@ TITLE_SIGN_IN_TWITTER = "Mit Twitter anmelden"
[TOP_TOOLBAR] [TOP_TOOLBAR]
BUTTON_ADD_ACCOUNT = "Konto hinzufügen" BUTTON_ADD_ACCOUNT = "Konto hinzufügen"
BUTTON_SETTINGS = "Einstellungen" BUTTON_SETTINGS = "Einstellungen"
BUTTON_HELP = "Help" BUTTON_HELP = "Hilfe"
BUTTON_LOGOUT = "Abmelden" BUTTON_LOGOUT = "Abmelden"
[SEARCH] [SEARCH]
@ -21,12 +21,12 @@ MAIN_INPUT_PLACEHOLDER = "Suche"
TITLE_ADV = "Erweiterte Suche" TITLE_ADV = "Erweiterte Suche"
LABEL_ADV_FROM = "Von" LABEL_ADV_FROM = "Von"
LABEL_ADV_TO = "An" LABEL_ADV_TO = "An"
LABEL_ADV_SUBJECT = "Thema" LABEL_ADV_SUBJECT = "Betreff"
LABEL_ADV_TEXT = "Text" LABEL_ADV_TEXT = "Text"
LABEL_ADV_HAS_ATTACHMENT = "Has attachment" LABEL_ADV_HAS_ATTACHMENT = "hat Anhang"
LABEL_ADV_HAS_ATTACHMENTS = "Anhangdateien vorhanden" LABEL_ADV_HAS_ATTACHMENTS = "Anhänge vorhanden"
LABEL_ADV_FLAGGED = "Flagged" LABEL_ADV_FLAGGED = "Markiert"
LABEL_ADV_UNSEEN = "Unseen" LABEL_ADV_UNSEEN = "Ungelesen"
LABEL_ADV_DATE = "Datum" LABEL_ADV_DATE = "Datum"
LABEL_ADV_DATE_ALL = "Alle" LABEL_ADV_DATE_ALL = "Alle"
LABEL_ADV_DATE_3_DAYS = "Nicht älter als 3 Tage" LABEL_ADV_DATE_3_DAYS = "Nicht älter als 3 Tage"
@ -39,9 +39,9 @@ BUTTON_ADV_SEARCH = "Suchen"
[MAGNIFIC_POPUP] [MAGNIFIC_POPUP]
CLOSE = "Schließen (Esc)" CLOSE = "Schließen (Esc)"
LOADING = "wird geladen ..." LOADING = "Wird geladen ..."
GALLERY_PREV = "vorher (Linke Pfeil-Taste)" GALLERY_PREV = "Vorher (Linke Pfeil-Taste)"
GALLERY_NEXT = "weiter (Rechte Pfeil-Taste)" GALLERY_NEXT = "Weiter (Rechte Pfeil-Taste)"
GALLERY_COUNTER = "%curr% von %total%" GALLERY_COUNTER = "%curr% von %total%"
IMAGE_ERROR = "<a href="%url%" target=\"_blank\">Die Grafikdatei</a> konnte nicht geladen werden." IMAGE_ERROR = "<a href="%url%" target=\"_blank\">Die Grafikdatei</a> konnte nicht geladen werden."
AJAX_ERROR = "<a href="%url%" target=\"_blank\">Der Inhalt</a> konnte nicht geladen werden." AJAX_ERROR = "<a href="%url%" target=\"_blank\">Der Inhalt</a> konnte nicht geladen werden."
@ -50,11 +50,11 @@ AJAX_ERROR = "<a href="%url%" target=\"_blank\">Der Inhalt</a> konnte nicht gela
BUTTON_COMPOSE = "Erstellen" BUTTON_COMPOSE = "Erstellen"
BUTTON_CONTACTS = "Kontakte" BUTTON_CONTACTS = "Kontakte"
INBOX_NAME = "Posteingang" INBOX_NAME = "Posteingang"
SENT_NAME = "Versandt" SENT_NAME = "Gesendet"
DRAFTS_NAME = "Entwürfe" DRAFTS_NAME = "Entwürfe"
SPAM_NAME = "Spam" SPAM_NAME = "Spam"
TRASH_NAME = "Papierkorb" TRASH_NAME = "Papierkorb"
ARCHIVE_NAME = "Archive" ARCHIVE_NAME = "Archiv"
[QUOTA] [QUOTA]
TITLE = "Speicherplatz-Verbrauch" TITLE = "Speicherplatz-Verbrauch"
@ -63,9 +63,9 @@ 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_ARCHIVE = "Archiv"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam" BUTTON_NOT_SPAM = "Kein Spam"
BUTTON_EMPTY_FOLDER = "Ordner leeren" BUTTON_EMPTY_FOLDER = "Ordner leeren"
BUTTON_MULTY_FORWARD = "Nachrichten weiterleiten" BUTTON_MULTY_FORWARD = "Nachrichten weiterleiten"
BUTTON_DELETE_WITHOUT_MOVE = "Endgültig löschen" BUTTON_DELETE_WITHOUT_MOVE = "Endgültig löschen"
@ -81,15 +81,15 @@ MENU_SELECT_INVERT = "Umkehren"
MENU_SELECT_UNSEEN = "Ungelesen" MENU_SELECT_UNSEEN = "Ungelesen"
MENU_SELECT_SEEN = "Gelesen" MENU_SELECT_SEEN = "Gelesen"
MENU_SELECT_FLAGGED = "Markiert" MENU_SELECT_FLAGGED = "Markiert"
MENU_SELECT_UNFLAGGED = "nicht markiert" MENU_SELECT_UNFLAGGED = "Nicht markiert"
EMPTY_LIST = "Liste ist leer." EMPTY_LIST = "Liste ist leer."
EMPTY_SEARCH_LIST = "Keine Treffer für Ihre Suche." EMPTY_SEARCH_LIST = "Keine Treffer für Ihre Suche."
SEARCH_RESULT_FOR = "Suchergebnisse für \"%SEARCH%\"" SEARCH_RESULT_FOR = "Suchergebnisse für \"%SEARCH%\""
LIST_LOADING = "Die Liste wird geladen" LIST_LOADING = "Die Liste wird geladen"
EMPTY_SUBJECT_TEXT = "(Kein Thema)" EMPTY_SUBJECT_TEXT = "(Kein Betreff)"
PUT_MESSAGE_HERE = "Ziehen Sie die Nachricht hierhin, um sie in der Liste anzuzeigen" PUT_MESSAGE_HERE = "Ziehen Sie die Nachricht hierhin, um sie in der Liste anzuzeigen"
TODAY_AT = "heute um %TIME%" TODAY_AT = "Heute um %TIME%"
YESTERDAY_AT = "gestern um %TIME%" YESTERDAY_AT = "Gestern um %TIME%"
SEARCH_PLACEHOLDER = "Suche" SEARCH_PLACEHOLDER = "Suche"
NEW_MESSAGE_NOTIFICATION = "Sie haben %COUNT% neue Nachrichten!" NEW_MESSAGE_NOTIFICATION = "Sie haben %COUNT% neue Nachrichten!"
QUOTA_SIZE = "Sie nutzen <strong>%SIZE% (%PROC%%)</strong> von <strong>%LIMIT%</strong>." QUOTA_SIZE = "Sie nutzen <strong>%SIZE% (%PROC%%)</strong> von <strong>%LIMIT%</strong>."
@ -99,26 +99,26 @@ 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_ARCHIVE = "Archiv"
BUTTON_SPAM = "Spam" BUTTON_SPAM = "Spam"
BUTTON_NOT_SPAM = "Not Spam" BUTTON_NOT_SPAM = "Kein Spam"
BUTTON_MOVE_TO = "Verschieben nach" BUTTON_MOVE_TO = "Verschieben nach"
BUTTON_MORE = "Mehr" BUTTON_MORE = "Mehr"
BUTTON_REPLY = "Antworten" BUTTON_REPLY = "Antworten"
BUTTON_REPLY_ALL = "Allen antworten" BUTTON_REPLY_ALL = "Allen antworten"
BUTTON_FORWARD = "Weiterleiten" BUTTON_FORWARD = "Weiterleiten"
BUTTON_FORWARD_AS_ATTACHMENT = "Als Anhang weiterleiten" BUTTON_FORWARD_AS_ATTACHMENT = "Als Anhang weiterleiten"
BUTTON_EDIT_AS_NEW = "Edit as New" BUTTON_EDIT_AS_NEW = "Als neue Nachricht öffnen"
BUTTON_SHOW_IMAGES = "Bilder anzeigen" BUTTON_SHOW_IMAGES = "Bilder anzeigen"
BUTTON_NOTIFY_READ_RECEIPT = "The sender has asked to be notified when you read this message." BUTTON_NOTIFY_READ_RECEIPT = "Der Absender hat darum gebeten, benachrichtigt zu werden, wenn Sie diese Nachricht lesen."
BUTTON_IN_NEW_WINDOW = "In neuem Fenster anzeigen" BUTTON_IN_NEW_WINDOW = "In neuem Fenster anzeigen"
MENU_HEADERS = "Kopfzeilen anzeigen" MENU_HEADERS = "Kopfzeilen anzeigen"
MENU_VIEW_ORIGINAL = "Original anzeigen" MENU_VIEW_ORIGINAL = "Original anzeigen"
MENU_DOWNLOAD_ORIGINAL = "Als .eml - Datei herunterladen" MENU_DOWNLOAD_ORIGINAL = "Als .eml - Datei herunterladen"
MENU_FILTER_SIMILAR = "Ähnliche Nachrichten" MENU_FILTER_SIMILAR = "Ähnliche Nachrichten"
MENU_PRINT = "Drucken" MENU_PRINT = "Drucken"
EMPTY_SUBJECT_TEXT = "(Kein Thema)" EMPTY_SUBJECT_TEXT = "(Kein Betreff)"
LABEL_SUBJECT = "Thema" LABEL_SUBJECT = "Betreff"
LABEL_DATE = "Datum" LABEL_DATE = "Datum"
LABEL_FROM = "Von" LABEL_FROM = "Von"
LABEL_FROM_SHORT = "von" LABEL_FROM_SHORT = "von"
@ -131,26 +131,26 @@ PRINT_LABEL_TO = "An"
PRINT_LABEL_CC = "CC" PRINT_LABEL_CC = "CC"
PRINT_LABEL_BCC = "BCC" PRINT_LABEL_BCC = "BCC"
PRINT_LABEL_DATE = "Datum" PRINT_LABEL_DATE = "Datum"
PRINT_LABEL_SUBJECT = "Thema" PRINT_LABEL_SUBJECT = "Betreff"
PRINT_LABEL_ATTACHMENTS = "Anhänge" PRINT_LABEL_ATTACHMENTS = "Anhänge"
MESSAGE_LOADING = "es wird geladen" MESSAGE_LOADING = "Nachricht 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_PASSWORD_INPUT_PLACEHOLDER = "Passwort"
PGP_SIGNED_MESSAGE_DESC = "OpenPGP signed message (click to verify)" PGP_SIGNED_MESSAGE_DESC = "OpenPGP signierte Nachricht (Klicken, um zu überprüfen)"
PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP encrypted message (click to decrypt)" PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP verschlüsselte Nachricht (Klicken, um zu entschlüsseln)"
[READ_RECEIPT] [READ_RECEIPT]
SUBJECT = "Return Receipt (displayed) - %SUBJECT%" SUBJECT = "Empfangsbestätigung (angezeigt) - %SUBJECT%"
BODY = "This is a Return Receipt for the mail that you sent to %READ-RECEIPT%. BODY = "Dies ist eine Empfangsbestätigung für die Nachricht, die Sie an %READ-RECEIPT% gesendet haben.
Note: This Return Receipt only acknowledges that the message was displayed on the recipient's computer. Hinweis: Diese Empfangsbestätigung bestätigt nur, dass die Nachricht auf dem Computer des Empfängers angezeigt wurde.
There is no guarantee that the recipient has read or understood the message contents." Es besteht keine Garantie, dass der Empfänger den Inhalt der Nachricht gelesen oder verstanden hat."
[SUGGESTIONS] [SUGGESTIONS]
SEARCHING_DESC = "Suche läuft..." SEARCHING_DESC = "Suche läuft..."
[CONTACTS] [CONTACTS]
LEGEND_CONTACTS = "Kontakt" LEGEND_CONTACTS = "Kontakte"
SEARCH_INPUT_PLACEHOLDER = "Suche" SEARCH_INPUT_PLACEHOLDER = "Suche"
BUTTON_ADD_CONTACT = "Kontakt hinzufügen" BUTTON_ADD_CONTACT = "Kontakt hinzufügen"
BUTTON_CREATE_CONTACT = "Kontakt anlegen" BUTTON_CREATE_CONTACT = "Kontakt anlegen"
@ -158,90 +158,91 @@ BUTTON_UPDATE_CONTACT = "Kontakt aktualisieren"
BUTTON_IMPORT = "Import (csv, vcf, vCard)" BUTTON_IMPORT = "Import (csv, vcf, vCard)"
BUTTON_EXPORT_VCARD = "Export (vcf, vCard)" BUTTON_EXPORT_VCARD = "Export (vcf, vCard)"
BUTTON_EXPORT_CSV = "Export (csv)" BUTTON_EXPORT_CSV = "Export (csv)"
ERROR_IMPORT_FILE = "Import error (invalid file format)" ERROR_IMPORT_FILE = "Import-Fehler (ungültiges Dateiformat)"
LIST_LOADING = "es wird geladen" LIST_LOADING = "Kontakte werden geladen"
EMPTY_LIST = "Keine Kontakte" EMPTY_LIST = "Keine Kontakte"
EMPTY_SEARCH = "Keine Kontakte gefunden" EMPTY_SEARCH = "Keine Kontakte gefunden"
CLEAR_SEARCH = "Suche leeren" CLEAR_SEARCH = "Suche leeren"
CONTACT_VIEW_DESC = "Kontakt aus der Liste wählen um ihn anzuzeigen." CONTACT_VIEW_DESC = "Kontakt aus der Liste wählen, um ihn anzuzeigen."
LABEL_DISPLAY_NAME = "Display name" LABEL_DISPLAY_NAME = "Anzeigename"
LABEL_EMAIL = "Email" LABEL_EMAIL = "E-Mail"
LABEL_PHONE = "Phone" LABEL_PHONE = "Telefon"
LABEL_WEB = "Web" LABEL_WEB = "Web"
LABEL_BIRTHDAY = "Birthday" LABEL_BIRTHDAY = "Geburtstag"
LINK_ADD_EMAIL = "Add an email address" LINK_ADD_EMAIL = "E-Mail-Adresse hinzufügen"
LINK_ADD_PHONE = "Add a phone" LINK_ADD_PHONE = "Nummer hinzufügen"
LINK_BIRTHDAY = "Birthday" LINK_BIRTHDAY = "Geburtstag"
PLACEHOLDER_ENTER_DISPLAY_NAME = "Enter display name" PLACEHOLDER_ENTER_DISPLAY_NAME = "Anzeigename eingeben"
PLACEHOLDER_ENTER_LAST_NAME = "Enter last name" PLACEHOLDER_ENTER_LAST_NAME = "Nachnamen eingeben"
PLACEHOLDER_ENTER_FIRST_NAME = "Enter first name" PLACEHOLDER_ENTER_FIRST_NAME = "Vornamen eingeben"
PLACEHOLDER_ENTER_NICK_NAME = "Enter nickname" PLACEHOLDER_ENTER_NICK_NAME = "Spitzname eingeben"
LABEL_READ_ONLY = "Read only" LABEL_READ_ONLY = "Schreibgeschützt"
LABEL_SHARE = "Share" LABEL_SHARE = "Teilen"
ADD_MENU_LABEL = "Add" ADD_MENU_LABEL = "Hinzufügen"
ADD_MENU_NICKNAME = "Nickname" ADD_MENU_NICKNAME = "Spitzname"
ADD_MENU_NOTES = "Notes" ADD_MENU_NOTES = "Anmerkung"
ADD_MENU_EMAIL = "Email" ADD_MENU_EMAIL = "E-Mail"
ADD_MENU_PHONE = "Phone" ADD_MENU_PHONE = "Telefon"
ADD_MENU_URL = "URL" ADD_MENU_URL = "URL"
ADD_MENU_ADDRESS = "Address" ADD_MENU_ADDRESS = "Adresse"
ADD_MENU_BIRTHDAY = "Birthday" ADD_MENU_BIRTHDAY = "Geburtstag"
ADD_MENU_TAGS = "Tags" ADD_MENU_TAGS = "Tags"
BUTTON_SHARE_NONE = "None" BUTTON_SHARE_NONE = "Niemand"
BUTTON_SHARE_ALL = "Everyone" BUTTON_SHARE_ALL = "Jeder"
BUTTON_SYNC = "Synchronization (CardDAV)" BUTTON_SYNC = "Synchronisierung (CardDAV)"
[COMPOSE] [COMPOSE]
TITLE_FROM = "Von" TITLE_FROM = "Von"
TITLE_TO = "An" TITLE_TO = "An"
TITLE_CC = "CC" TITLE_CC = "CC"
TITLE_BCC = "BCC" TITLE_BCC = "BCC"
TITLE_REPLY_TO = "Reply To" TITLE_REPLY_TO = "Antwort an"
TITLE_SUBJECT = "Thema" TITLE_SUBJECT = "Betreff"
LINK_SHOW_INPUTS = "alle Felder anzeigen" LINK_SHOW_INPUTS = "alle Felder anzeigen"
BUTTON_SEND = "Senden" BUTTON_SEND = "Senden"
BUTTON_SAVE = "Speichern" BUTTON_SAVE = "Speichern"
BUTTON_DELETE = "Löschen" BUTTON_DELETE = "Löschen"
BUTTON_CANCEL = "Abbrechen" BUTTON_CANCEL = "Abbrechen"
SAVED_TIME = "Gespeichert um %TIME%" SAVED_TIME = "Gespeichert um %TIME%"
SAVED_ERROR_ON_SEND = "Die Nachricht wurde versandt, konnte aber nicht im Ordner gespeichert werden." SAVED_ERROR_ON_SEND = "Die Nachricht wurde gesendet, konnte aber nicht im Ordner gespeichert werden."
ATTACH_FILES = "Dateien anhängen" ATTACH_FILES = "Dateien anhängen"
ATTACH_DROP_FILES_DESC = "Fügen Sie hier Dateien ein" ATTACH_DROP_FILES_DESC = "Fügen Sie hier Dateien ein"
ATTACH_ITEM_CANCEL = "Abbrechen" ATTACH_ITEM_CANCEL = "Abbrechen"
DROPBOX = "Dropbox" DROPBOX = "Dropbox"
GOOGLE_DRIVE = "Google Drive" GOOGLE_DRIVE = "Google Drive"
REPLY_MESSAGE_TITLE = "%DATETIME%, %EMAIL% schrieb" REPLY_MESSAGE_TITLE = "%DATETIME%, %EMAIL% schrieb"
FORWARD_MESSAGE_TOP_TITLE = "-------- Forwarded message -------" FORWARD_MESSAGE_TOP_TITLE = "-------- Weitergeleitete Nachricht -------"
FORWARD_MESSAGE_TOP_FROM = "Von" FORWARD_MESSAGE_TOP_FROM = "Von"
FORWARD_MESSAGE_TOP_TO = "An" FORWARD_MESSAGE_TOP_TO = "An"
FORWARD_MESSAGE_TOP_CC = "CC" FORWARD_MESSAGE_TOP_CC = "CC"
FORWARD_MESSAGE_TOP_SENT = "Versandt" FORWARD_MESSAGE_TOP_SENT = "Gesendet"
FORWARD_MESSAGE_TOP_SUBJECT = "Thema" FORWARD_MESSAGE_TOP_SUBJECT = "Betreff"
EMPTY_TO_ERROR_DESC = "Geben Sie bitte mindestens einen Empfänger an" EMPTY_TO_ERROR_DESC = "Geben Sie bitte mindestens einen Empfänger an"
BUTTON_REQUEST_READ_RECEIPT = "Request a read receipt" BUTTON_REQUEST_READ_RECEIPT = "Empfangsbestätigung anfordern"
[POPUPS_ASK] [POPUPS_ASK]
BUTTON_YES = "Yes" BUTTON_YES = "Ja"
BUTTON_NO = "No" BUTTON_NO = "Nein"
DESC_WANT_CLOSE_THIS_WINDOW = "Are you sure you want to close this window?" DESC_WANT_CLOSE_THIS_WINDOW = "
DESC_WANT_DELETE_MESSAGES = "Are you sure you want to delete the message(s)?" Sind Sie sicher, dass Sie dieses Fenster schließen möchten?"
DESC_WANT_DELETE_MESSAGES = "Sind Sie sicher, dass Sie diese Nachricht(en) löschen möchten?"
[POPUPS_LANGUAGES] [POPUPS_LANGUAGES]
TITLE_LANGUAGES = "Choose language" TITLE_LANGUAGES = "Sprache auswählen"
[POPUPS_ADD_ACCOUNT] [POPUPS_ADD_ACCOUNT]
TITLE_ADD_ACCOUNT = "Konto hinzufügen?" TITLE_ADD_ACCOUNT = "Konto hinzufügen?"
BUTTON_ADD_ACCOUNT = "Hinzufügen" BUTTON_ADD_ACCOUNT = "Hinzufügen"
[POPUPS_IDENTITIES] [POPUPS_IDENTITIES]
TITLE_ADD_IDENTITY = "Add Identity?" TITLE_ADD_IDENTITY = "Identität hinzufügen?"
TITLE_UPDATE_IDENTITY = "Update Identity?" TITLE_UPDATE_IDENTITY = "Identität aktualisieren?"
BUTTON_ADD_IDENTITY = "Add" BUTTON_ADD_IDENTITY = "Hinzufügen"
BUTTON_UPDATE_IDENTITY = "Update" BUTTON_UPDATE_IDENTITY = "Aktualisieren"
LABEL_EMAIL = "Email" LABEL_EMAIL = "E-Mail"
LABEL_NAME = "Name" LABEL_NAME = "Name"
LABEL_REPLY_TO = "Reply To" LABEL_REPLY_TO = "Antwort an"
LABEL_BCC = "Bcc" LABEL_BCC = "BCC"
[POPUPS_CREATE_FOLDER] [POPUPS_CREATE_FOLDER]
TITLE_CREATE_FOLDER = "Ordner anlegen?" TITLE_CREATE_FOLDER = "Ordner anlegen?"
@ -259,40 +260,40 @@ BUTTON_CLEAR = "Bereinigen"
BUTTON_CANCEL = "Abbrechen" BUTTON_CANCEL = "Abbrechen"
BUTTON_CLOSE = "Schließen" BUTTON_CLOSE = "Schließen"
DANGER_DESC_WARNING = "Achtung!" DANGER_DESC_WARNING = "Achtung!"
DANGER_DESC_HTML_1 = "Dieser Schritt wird alle Mails im Ordner <strong>%FOLDER%</strong> endgültig löschen." DANGER_DESC_HTML_1 = "Dieser Schritt wird alle Nachrichten im Ordner <strong>%FOLDER%</strong> endgültig löschen."
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] [POPUPS_IMPORT_OPEN_PGP_KEY]
TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP key" TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP Schlüssel"
BUTTON_IMPORT_OPEN_PGP_KEY = "Import" BUTTON_IMPORT_OPEN_PGP_KEY = "Import"
[POPUPS_VIEW_OPEN_PGP_KEY] [POPUPS_VIEW_OPEN_PGP_KEY]
TITLE_VIEW_OPEN_PGP_KEY = "View OpenPGP key" TITLE_VIEW_OPEN_PGP_KEY = "OpenPGP Schlüssel anzeigen"
BUTTON_SELECT = "Select" BUTTON_SELECT = "Auswählen"
BUTTON_CLOSE = "Close" BUTTON_CLOSE = "Schließen"
[POPUPS_GENERATE_OPEN_PGP_KEYS] [POPUPS_GENERATE_OPEN_PGP_KEYS]
TITLE_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP keys" TITLE_GENERATE_OPEN_PGP_KEYS = "OpenPGP Schlüssel generieren"
LABEL_EMAIL = "Email" LABEL_EMAIL = "E-Mail"
LABEL_NAME = "Name" LABEL_NAME = "Name"
LABEL_PASSWORD = "Password" LABEL_PASSWORD = "Passwort"
LABEL_KEY_BIT_LENGTH = "Key length" LABEL_KEY_BIT_LENGTH = "Schlüssellänge"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate" BUTTON_GENERATE_OPEN_PGP_KEYS = "Generieren"
[POPUPS_COMPOSE_OPEN_PGP] [POPUPS_COMPOSE_OPEN_PGP]
TITLE_COMPOSE_OPEN_PGP = "OpenPGP Sign/Encrypt" TITLE_COMPOSE_OPEN_PGP = "OpenPGP Unterschreiben/Verschlüsseln"
LABEL_SIGN = "Sign" LABEL_SIGN = "Unterschrift"
LABEL_ENCRYPT = "Encrypt" LABEL_ENCRYPT = "Verschlüsselung"
LABEL_PASSWORD = "Password" LABEL_PASSWORD = "Passwort"
BUTTON_SIGN = "Sign" BUTTON_SIGN = "Unterschreiben"
BUTTON_ENCRYPT = "Encrypt" BUTTON_ENCRYPT = "Verschlüsseln"
BUTTON_SIGN_AND_ENCRYPT = "Sign and encrypt" BUTTON_SIGN_AND_ENCRYPT = "Unterschreiben und verschlüsseln"
[POPUPS_TWO_FACTOR_TEST] [POPUPS_TWO_FACTOR_TEST]
TITLE_TEST_CODE = "2-Step verification test" TITLE_TEST_CODE = "Zwei-Faktor-Autehntifizierung"
LABEL_CODE = "Code" LABEL_CODE = "Code"
BUTTON_TEST = "Test" BUTTON_TEST = "Testen"
[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"
@ -302,7 +303,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" LABEL_ARCHIVE = "Archiv"
BUTTON_CANCEL = "Abbrechen" BUTTON_CANCEL = "Abbrechen"
BUTTON_CLOSE = "Schließen" BUTTON_CLOSE = "Schließen"
@ -317,12 +318,12 @@ 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." NOTIFICATION_ARCHIVE = "Sie haben keinen \"Archiv\" System-Ordner gewählt, in dem die archivierten Nachrichten landen."
[TITLES] [TITLES]
LOADING = "Wird geladen" LOADING = "Wird geladen"
LOGIN = "Login" LOGIN = "Login"
MAILBOX = "MailBox" MAILBOX = "Postfach"
SETTINGS = "Einstellungen" SETTINGS = "Einstellungen"
COMPOSE = "Erstellen" COMPOSE = "Erstellen"
@ -343,41 +344,41 @@ TEXT_SWITCHER_CONFIRM = "Alle Textformatierungen und Grafiken gehen verloren. Wo
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Persönlich" LABEL_PERSONAL_NAME = "Persönlich"
LABEL_GENERAL_NAME = "Allgemein" LABEL_GENERAL_NAME = "Allgemein"
LABEL_CONTACTS_NAME = "Contacts" LABEL_CONTACTS_NAME = "Kontakte"
LABEL_FOLDERS_NAME = "Ordner" LABEL_FOLDERS_NAME = "Ordner"
LABEL_ACCOUNTS_NAME = "Konten" LABEL_ACCOUNTS_NAME = "Konten"
LABEL_IDENTITY_NAME = "Identity" LABEL_IDENTITY_NAME = "Identität"
LABEL_IDENTITIES_NAME = "Identities" LABEL_IDENTITIES_NAME = "Identitäten"
LABEL_SECURITY_NAME = "Security" LABEL_SECURITY_NAME = "Sicherheit"
LABEL_SOCIAL_NAME = "Social" LABEL_SOCIAL_NAME = "Sozial"
LABEL_THEMES_NAME = "Vorlagen" LABEL_THEMES_NAME = "Vorlagen"
LABEL_CHANGE_PASSWORD_NAME = "Passwort" LABEL_CHANGE_PASSWORD_NAME = "Passwort"
LABEL_OPEN_PGP_NAME = "OpenPGP" LABEL_OPEN_PGP_NAME = "OpenPGP"
BUTTON_BACK = "Zurück" BUTTON_BACK = "Zurück"
[SETTINGS_IDENTITY] [SETTINGS_IDENTITY]
LEGEND_IDENTITY = "Identity" LEGEND_IDENTITY = "Identität"
LABEL_DISPLAY_NAME = "Name" LABEL_DISPLAY_NAME = "Name"
LABEL_REPLY_TO = "Reply To" LABEL_REPLY_TO = "Antwort an"
LABEL_SIGNATURE = "Signatur" LABEL_SIGNATURE = "Signatur"
LABEL_ADD_SIGNATURE_TO_ALL = "Add your signature to all the outgoing messages" LABEL_ADD_SIGNATURE_TO_ALL = "Signatur zu allen ausgehenden Nachrichten hinzufügen"
[SETTINGS_SECURITY] [SETTINGS_SECURITY]
LEGEND_TWO_FACTOR_AUTH = "2-Step Verification (Google Authenticator)" LEGEND_TWO_FACTOR_AUTH = "2-Faktor-Authentifizierung (Google Authenticator)"
LABEL_ENABLE_TWO_FACTOR = "Enable 2-Step verification" LABEL_ENABLE_TWO_FACTOR = "2-Faktor-Authentifizierung aktivieren"
LABEL_TWO_FACTOR_USER = "User" LABEL_TWO_FACTOR_USER = "Benutzer"
LABEL_TWO_FACTOR_STATUS = "Status" LABEL_TWO_FACTOR_STATUS = "Status"
LABEL_TWO_FACTOR_SECRET = "Secret" LABEL_TWO_FACTOR_SECRET = "Secret"
LABEL_TWO_FACTOR_BACKUP_CODES = "Backup codes" LABEL_TWO_FACTOR_BACKUP_CODES = "Backup-Codes"
BUTTON_CREATE = "Create New Secret" BUTTON_CREATE = "Neuen Secret erstellen"
BUTTON_CLEAR = "Clear" BUTTON_CLEAR = "Zurücksetzen"
BUTTON_TEST = "Test" BUTTON_TEST = "Testen"
BUTTON_SHOW_SECRET = "Show Secret" BUTTON_SHOW_SECRET = "Secret anzeigen"
BUTTON_HIDE_SECRET = "Hide Secret" BUTTON_HIDE_SECRET = "Secret verbergen"
TWO_FACTOR_SECRET_CONFIGURED_DESC = "Configured" TWO_FACTOR_SECRET_CONFIGURED_DESC = "Konfiguriert"
TWO_FACTOR_SECRET_NOT_CONFIGURED_DESC = "Not configured" TWO_FACTOR_SECRET_NOT_CONFIGURED_DESC = "Nicht konfiguriert"
TWO_FACTOR_SECRET_DESC = "Import this info into your Google Authenticator client (or other TOTP client) using the provided QR code below or by entering the code manually." TWO_FACTOR_SECRET_DESC = "Importieren Sie diese Informationen in Ihren Google Authenticator-Client (oder andere TOTP-Clienten) mit Hilfe des mitgelieferten QR-Code unten oder durch manuelle Eingabe des Codes."
TWO_FACTOR_BACKUP_CODES_DESC = "If you can't receive codes via Google Authenticator, you can use backup codes to sign in. After youve used a backup code to sign in, it will become inactive." TWO_FACTOR_BACKUP_CODES_DESC = "Wenn Sie keine Codes via Google Authenticator erhalten können, können Sie Backup-Codes für die Anmeldung verwenden. Nachdem Sie einen Backup-Code verwendet haben, um sich anzumelden, wird dieser inaktiv."
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Allgemein" LEGEND_GENERAL = "Allgemein"
@ -385,10 +386,10 @@ LABEL_LANGUAGE = "Sprache"
LABEL_EDITOR = "Standard-Text-Editor" LABEL_EDITOR = "Standard-Text-Editor"
LABEL_EDITOR_HTML_AS_DEFAULT = "HTML" LABEL_EDITOR_HTML_AS_DEFAULT = "HTML"
LABEL_EDITOR_PLAIN_AS_DEFAULT = "Text" LABEL_EDITOR_PLAIN_AS_DEFAULT = "Text"
LABEL_ANIMATION = "Interface animation" LABEL_ANIMATION = "Interface-Animation"
LABEL_ANIMATION_FULL = "Full" LABEL_ANIMATION_FULL = "Komplett"
LABEL_ANIMATION_NORMAL = "Normal" LABEL_ANIMATION_NORMAL = "Normal"
LABEL_ANIMATION_NONE = "None" LABEL_ANIMATION_NONE = "Keine"
LABEL_VIEW_OPTIONS = "Optionen anzeigen" LABEL_VIEW_OPTIONS = "Optionen anzeigen"
LABEL_USE_PREVIEW_PANE = "Vorschau-Fenster nutzen" LABEL_USE_PREVIEW_PANE = "Vorschau-Fenster nutzen"
LABEL_USE_CHECKBOXES_IN_LIST = "Checkboxen in der Liste anzeigen" LABEL_USE_CHECKBOXES_IN_LIST = "Checkboxen in der Liste anzeigen"
@ -402,14 +403,14 @@ LABEL_CHROME_NOTIFICATION_DESC = "Popups einblenden, wenn neue Nachrichten vorha
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Vom Browser blockiert.)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Vom Browser blockiert.)"
[SETTINGS_CONTACTS] [SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts" LEGEND_CONTACTS = "Kontakte"
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatisch Empfänger zu Ihrem Adressbuch hinzuzufügen"
LEGEND_CONTACTS_SYNC = "Remote Synchronization (CardDAV)" LEGEND_CONTACTS_SYNC = "Remote-Synchronisierung (CardDAV)"
LABEL_CONTACTS_SYNC_ENABLE = "Enable remote synchronization" LABEL_CONTACTS_SYNC_ENABLE = "Remote-Synchronisierung aktivieren"
LABEL_CONTACTS_SYNC_SERVER = "Server" LABEL_CONTACTS_SYNC_SERVER = "Server"
LABEL_CONTACTS_SYNC_AB_URL = "Addressbook URL" LABEL_CONTACTS_SYNC_AB_URL = "Adressbuch URL"
LABEL_CONTACTS_SYNC_USER = "User" LABEL_CONTACTS_SYNC_USER = "Benutzer"
LABEL_CONTACTS_SYNC_PASSWORD = "Password" LABEL_CONTACTS_SYNC_PASSWORD = "Passwort"
[SETTINGS_THEMES] [SETTINGS_THEMES]
LEGEND_THEMES = "Vorlagen" LEGEND_THEMES = "Vorlagen"
@ -418,7 +419,7 @@ LABEL_CUSTOM_TYPE = "Typ"
LABEL_CUSTOM_TYPE_LIGHT = "Hell" LABEL_CUSTOM_TYPE_LIGHT = "Hell"
LABEL_CUSTOM_TYPE_DARK = "Dunkel" LABEL_CUSTOM_TYPE_DARK = "Dunkel"
LABEL_CUSTOM_BACKGROUND_IMAGE = "Hintergrund" LABEL_CUSTOM_BACKGROUND_IMAGE = "Hintergrund"
BUTTON_UPLOAD_BACKGROUND_IMAGE = "Hintergrund-Bild hochladen(JPG, PNG)" BUTTON_UPLOAD_BACKGROUND_IMAGE = "Hintergrundvild hochladen(JPG, PNG)"
ERROR_FILE_IS_TOO_BIG = "Datei ist zu groß (1MB+)" ERROR_FILE_IS_TOO_BIG = "Datei ist zu groß (1MB+)"
ERROR_FILE_TYPE_ERROR = "Ungültiger Datei-Typ! (nur JPG und PNG)" ERROR_FILE_TYPE_ERROR = "Ungültiger Datei-Typ! (nur JPG und PNG)"
ERROR_UNKNOWN = "Ein unbekannter Fehler trat beim Hochladen auf" ERROR_UNKNOWN = "Ein unbekannter Fehler trat beim Hochladen auf"
@ -458,115 +459,115 @@ LOADING_PROCESS = "Liste der Konten wird geladen"
DELETING_ASK = "Sind Sie sicher?" DELETING_ASK = "Sind Sie sicher?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identity" LEGEND_IDENTITY = "Identität"
LEGEND_IDENTITIES = "Additional Identities" LEGEND_IDENTITIES = "Zusätzliche Identitäten"
LABEL_DISPLAY_NAME = "Name" LABEL_DISPLAY_NAME = "Name"
LABEL_REPLY_TO = "Reply To" LABEL_REPLY_TO = "Antwort an"
LABEL_SIGNATURE = "Signatur" LABEL_SIGNATURE = "Signatur"
LABEL_ADD_SIGNATURE_TO_ALL = "Add your signature to all the outgoing messages" LABEL_ADD_SIGNATURE_TO_ALL = "Signatur zu allen ausgehenden Nachrichten hinzufügen"
BUTTON_ADD_IDENTITY = "Add Identity" BUTTON_ADD_IDENTITY = "Identität hinzufügen"
BUTTON_DELETE = "Delete" BUTTON_DELETE = "Löschen"
LOADING_PROCESS = "Updating identity list" LOADING_PROCESS = "Aktualisiere Identitätsliste"
DELETING_ASK = "Are you sure?" DELETING_ASK = "Sind Sie sicher?"
[SETTINGS_CHANGE_PASSWORD] [SETTINGS_CHANGE_PASSWORD]
LEGEND_CHANGE_PASSWORD = "Passwort ändern" LEGEND_CHANGE_PASSWORD = "Passwort ändern"
LABEL_CURRENT_PASSWORD = "Aktuelles Passwort" LABEL_CURRENT_PASSWORD = "Aktuelles Passwort"
LABEL_NEW_PASSWORD = "Neues Passwordt" LABEL_NEW_PASSWORD = "Neues Passwort"
LABEL_REPEAT_PASSWORD = "Neues Passwort erneut eingeben" LABEL_REPEAT_PASSWORD = "Neues Passwort wiederholen"
BUTTON_UPDATE_PASSWORD = "Neues Passwort setzen" BUTTON_UPDATE_PASSWORD = "Neues Passwort setzen"
ERROR_PASSWORD_MISMATCH = "Passwords do not match, please try again" ERROR_PASSWORD_MISMATCH = "Passwörter stimmen nicht überein. Versuchen Sie es bitte erneut."
[SETTINGS_OPEN_PGP] [SETTINGS_OPEN_PGP]
LEGEND_OPEN_PGP = "OpenPGP" LEGEND_OPEN_PGP = "OpenPGP"
BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Key" BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Schlüssel"
BUTTON_GENERATE_OPEN_PGP_KEYS = "Generate OpenPGP Keys" BUTTON_GENERATE_OPEN_PGP_KEYS = "OpenPGP Schlüssel generieren"
TITLE_PRIVATE = "Private" TITLE_PRIVATE = "Privat"
TITLE_PUBLIC = "Public" TITLE_PUBLIC = "Öffentlich"
DELETING_ASK = "Are you sure?" DELETING_ASK = "Sind Sie sicher?"
[SHORTCUTS_HELP] [SHORTCUTS_HELP]
LEGEND_SHORTCUTS_HELP = "Keyboard shortcuts help" LEGEND_SHORTCUTS_HELP = "Tastaturkürzel Hilfe"
TAB_MAILBOX = "Mailbox" TAB_MAILBOX = "Postfach"
TAB_MESSAGE_LIST = "Message list" TAB_MESSAGE_LIST = "Nachrichtenliste"
TAB_MESSAGE_VIEW = "Message view" TAB_MESSAGE_VIEW = "Nachrichtenansicht"
TAB_COMPOSE = "Compose" TAB_COMPOSE = "Nachricht schreiben"
LABEL_OPEN_USER_DROPDOWN = "Open user dropdown" LABEL_OPEN_USER_DROPDOWN = "Benutzer-Auswahl öffnen"
LABEL_REPLY = "Reply" LABEL_REPLY = "Antworten"
LABEL_REPLY_ALL = "Reply All" LABEL_REPLY_ALL = "Allen Antworten"
LABEL_FORWARD = "Forward" LABEL_FORWARD = "Weiterleiten"
LABEL_FORWARD_MULTIPLY = "Forward (multiply)" LABEL_FORWARD_MULTIPLY = "Weiterleiten (mehrfach)"
LABEL_HELP = "Help" LABEL_HELP = "Hilfe"
LABEL_CHECK_ALL = "Check All messages" LABEL_CHECK_ALL = "Alle Nachrichten auswählen"
LABEL_ARCHIVE = "Archive" LABEL_ARCHIVE = "Archivieren"
LABEL_DELETE = "Delete" LABEL_DELETE = "Löschen"
LABEL_MOVE = "Move" LABEL_MOVE = "Verschieben"
LABEL_READ = "Read selected messages" LABEL_READ = "Ausgewählte Nachrichten gelesen"
LABEL_UNREAD = "Unread selected messages" LABEL_UNREAD = "Ausgewählte Nachrichten ungelesen"
LABEL_IMPORTANT = "Important, star/flag selected messages" LABEL_IMPORTANT = "Wichtig, Markiere ausgewählte Nachrichten"
LABEL_SEARCH = "Search" LABEL_SEARCH = "Suchen"
LABEL_CANCEL_SEARCH = "Cancel search" LABEL_CANCEL_SEARCH = "Suche abbrechen"
LABEL_FULLSCREEN_ENTER = "Fullscreen (Preview pane layout)" LABEL_FULLSCREEN_ENTER = "Vollbild (Vorschaubereich-Layout)"
LABEL_VIEW_MESSAGE_ENTER = "View message (No preview pane layout)" LABEL_VIEW_MESSAGE_ENTER = "Nachricht anzeigen (Kein Vorschaubereich-Layout)"
LABEL_SWITCH_TO_MESSAGE = "Switch focus to selected message" LABEL_SWITCH_TO_MESSAGE = "Fokus auf ausgewählte Nachricht schalten"
LABEL_SWITCH_TO_FOLDER_LIST = "Switch focus to folder list" LABEL_SWITCH_TO_FOLDER_LIST = "Fokus auf Ordner-Liste schalten"
LABEL_FULLSCREEN_TOGGLE = "Toggle fullscreen mode" LABEL_FULLSCREEN_TOGGLE = "Vollbildmodus umschalten"
LABEL_BLOCKQUOTES_TOGGLE = "Toggle message blockquotes" LABEL_BLOCKQUOTES_TOGGLE = "Nachricht-Blockzitate umschalten"
LABEL_PRINT = "Print" LABEL_PRINT = "Drucken"
LABEL_EXIT_FULLSCREEN = "Exit fullscreen mode" LABEL_EXIT_FULLSCREEN = "Vollbildmodus verlassen"
LABEL_CLOSE_MESSAGE = "Close message (No preview pane layout)" LABEL_CLOSE_MESSAGE = "Nachricht schließen (Kein Vorschaubereich-Layout)"
LABEL_SWITCH_TO_LIST = "Switch focus back to message list" LABEL_SWITCH_TO_LIST = "Fokus auf Nachrichtenliste zurückschalten"
LABEL_OPEN_COMPOSE_POPUP = "Open compose popup" LABEL_OPEN_COMPOSE_POPUP = "Öffne Erstellen Popup"
LABEL_OPEN_IDENTITIES_DROPDOWN = "Open identities dropdown" LABEL_OPEN_IDENTITIES_DROPDOWN = "Öffne Identitätenauswahl"
LABEL_SAVE_MESSAGE = "Save message" LABEL_SAVE_MESSAGE = "Nachricht speichern"
LABEL_SEND_MESSAGE = "Send message" LABEL_SEND_MESSAGE = "Nachricht senden"
LABEL_CLOSE_COMPOSE = "Close compose" LABEL_CLOSE_COMPOSE = "Popup schließen"
[PGP_NOTIFICATIONS] [PGP_NOTIFICATIONS]
NO_PUBLIC_KEYS_FOUND = "No public keys found" NO_PUBLIC_KEYS_FOUND = "Keine öffentlichen Schlüssel gefunden"
NO_PUBLIC_KEYS_FOUND_FOR = "No public keys found for "%EMAIL%" email" NO_PUBLIC_KEYS_FOUND_FOR = "Keine öffentlichen Schlüssel für E-Mail "%EMAIL%" gefunden"
NO_PRIVATE_KEY_FOUND = "No private key found" NO_PRIVATE_KEY_FOUND = "Keine privaten Schlüssel gefunden"
NO_PRIVATE_KEY_FOUND_FOR = "No private key found for "%EMAIL%" email" NO_PRIVATE_KEY_FOUND_FOR = "Keine privaten Schlüssel für E-Mail "%EMAIL%" gefunden"
UNVERIFIRED_SIGNATURE = "Unverified signature" UNVERIFIRED_SIGNATURE = "Unverifizierte Unterschrift"
DECRYPTION_ERROR = "OpenPGP decryption error" DECRYPTION_ERROR = "OpenPGP Entschlüsselungsfehler"
GOOD_SIGNATURE = "Good signature from %USER%" GOOD_SIGNATURE = "Gültige Unterschrift von %USER%"
PGP_ERROR = "OpenPGP error: %ERROR%" PGP_ERROR = "OpenPGP Fehler: %ERROR%"
SPECIFY_FROM_EMAIL = "Please specify FROM email address" SPECIFY_FROM_EMAIL = "Bitte VON E-Mail-Adresse angeben"
SPECIFY_AT_LEAST_ONE_RECIPIENT = "Please specify at least one recipient" SPECIFY_AT_LEAST_ONE_RECIPIENT = "Bitte geben Sie mindestens einen Empfänger an"
[NOTIFICATIONS] [NOTIFICATIONS]
INVALID_TOKEN = "Ungültiger Token" INVALID_TOKEN = "Ungültiger Token"
AUTH_ERROR = "Authentifizierung mißlungen" AUTH_ERROR = "Authentifizierung fehlgeschlagen"
ACCESS_ERROR = "Zugriffsfehler" ACCESS_ERROR = "Zugriffsfehler"
CONNECTION_ERROR = "Kann nicht mit dem Server verbinden" CONNECTION_ERROR = "Kann nicht mit dem Server verbinden"
CAPTCHA_ERROR = "Falsche CAPTCHA-Eingabe." CAPTCHA_ERROR = "Falsche CAPTCHA-Eingabe."
SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE = "Diese Social ID ist bisher mit keinem eMail-Konto verbunden. Melden Sie sich mit Ihren eMail-Daten ein und aktivieren Sie dieses Feature in Ihren Konten-Einstellungen." SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE = "Diese Social ID ist bisher mit keinem E-Mail-Konto verbunden. Melden Sie sich mit Ihren E-Mail-Daten an und aktivieren Sie dieses Feature in Ihren Konten-Einstellungen."
SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE = "Diese Social ID ist bisher mit keinem eMail-Konto verbunden. Melden Sie sich mit Ihren eMail-Daten ein und aktivieren Sie dieses Feature in Ihren Konten-Einstellungen." SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE = "Diese Social ID ist bisher mit keinem E-Mail-Konto verbunden. Melden Sie sich mit Ihren E-Mail-Daten an und aktivieren Sie dieses Feature in Ihren Konten-Einstellungen."
SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE = "Diese Social ID ist bisher mit keinem eMail-Konto verbunden. Melden Sie sich mit Ihren eMail-Daten ein und aktivieren Sie dieses Feature in Ihren Konten-Einstellungen." SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE = "Diese Social ID ist bisher mit keinem E-Mail-Konto verbunden. Melden Sie sich mit Ihren E-Mail-Daten an und aktivieren Sie dieses Feature in Ihren Konten-Einstellungen."
DOMAIN_NOT_ALLOWED = "Diese Domain ist nicht zugelassen." DOMAIN_NOT_ALLOWED = "Diese Domain ist nicht zugelassen."
ACCOUNT_NOT_ALLOWED = "Account is not allowed" ACCOUNT_NOT_ALLOWED = "Konto ist nicht zugelassen."
ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Two factor verification required" ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Zwei-Faktor-Authentifizierung erforderlich"
ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Two factor verification error" ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Zwei-Faktor-Authentifizierung Fehler"
COULD_NOT_SAVE_NEW_PASSWORD = "Could not save new password" COULD_NOT_SAVE_NEW_PASSWORD = "Neues Passwort konnte nicht gespeichert werden"
CURRENT_PASSWORD_INCORRECT = "Current password incorrect" CURRENT_PASSWORD_INCORRECT = "Aktuelles Passwort inkorrekt"
NEW_PASSWORD_SHORT = "Password is too short" NEW_PASSWORD_SHORT = "Passwort ist zu kurz"
NEW_PASSWORD_WEAK = "Password is too easy" NEW_PASSWORD_WEAK = "Passwort ist zu einfach"
NEW_PASSWORD_FORBIDDENT = "Password contains forbidden characters" NEW_PASSWORD_FORBIDDENT = "Passwort enthält verbotene Zeichen"
CONTACTS_SYNC_ERROR = "Contacts synchronization error" CONTACTS_SYNC_ERROR = "Kontakte Synchronisationsfehler"
CANT_GET_MESSAGE_LIST = "Die Nachrichten-Liste ist nicht verfügbar" CANT_GET_MESSAGE_LIST = "Die Nachrichtenliste ist nicht verfügbar"
CANT_GET_MESSAGE = "Diese Nachricht ist nicht verfügbar" CANT_GET_MESSAGE = "Diese Nachricht ist nicht verfügbar"
CANT_DELETE_MESSAGE = "Diese Nachricht kann nicht gelöscht werden" CANT_DELETE_MESSAGE = "Diese Nachricht kann nicht gelöscht werden"
CANT_MOVE_MESSAGE = "Diese Nachricht kann nicht verschoben werden" CANT_MOVE_MESSAGE = "Diese Nachricht kann nicht verschoben werden"
CANT_SAVE_MESSAGE = "Diese Nachricht kann nicht gespeichert werden" CANT_SAVE_MESSAGE = "Diese Nachricht kann nicht gespeichert werden"
CANT_SEND_MESSAGE = "Diese Nachricht kann nicht versandt werden" CANT_SEND_MESSAGE = "Diese Nachricht kann nicht gesendet werden"
INVALID_RECIPIENTS = "Ungültige Empfänger-Adresse" INVALID_RECIPIENTS = "Ungültige Empfänger-Adresse"
CANT_CREATE_FOLDER = "Diese Ordner kann nicht angelegt werden" CANT_CREATE_FOLDER = "Dieser Ordner kann nicht angelegt werden"
CANT_RENAME_FOLDER = "Diese Ordner kann nicht umbenannt werden" CANT_RENAME_FOLDER = "Dieser Ordner kann nicht umbenannt werden"
CANT_DELETE_FOLDER = "Diese Ordner kann nicht gelöscht werden" CANT_DELETE_FOLDER = "Dieser Ordner kann nicht gelöscht werden"
CANT_DELETE_NON_EMPTY_FOLDER = "Der Ordner kann nicht gelöscht werden, er ist nicht leer" CANT_DELETE_NON_EMPTY_FOLDER = "Der Ordner kann nicht gelöscht werden; er ist nicht leer"
CANT_SUBSCRIBE_FOLDER = "Dieser Ordner kann nicht abonniert werden" CANT_SUBSCRIBE_FOLDER = "Dieser Ordner kann nicht abonniert werden"
CANT_UNSUBSCRIBE_FOLDER = "Das Abonnement dieses Ordners kann nicht gelöscht werden" CANT_UNSUBSCRIBE_FOLDER = "Das Abonnement dieses Ordners kann nicht gelöscht werden"
CANT_SAVE_SETTINGS = "Einstellungen können nicht gespeichert werden" CANT_SAVE_SETTINGS = "Einstellungen können nicht gespeichert werden"
@ -576,17 +577,17 @@ CANT_INSTALL_PACKAGE = "Package konnte nicht installiert werden"
CANT_DELETE_PACKAGE = "Package konnte nicht entfernt werden" CANT_DELETE_PACKAGE = "Package konnte nicht entfernt werden"
INVALID_PLUGIN_PACKAGE = "Plugin-Package ist ungültig" INVALID_PLUGIN_PACKAGE = "Plugin-Package ist ungültig"
UNSUPPORTED_PLUGIN_PACKAGE = "Plugin-Package wird nicht unterstützt" UNSUPPORTED_PLUGIN_PACKAGE = "Plugin-Package wird nicht unterstützt"
LICENSING_SERVER_IS_UNAVAILABLE = "Subscription-Server kann nicht erreicht werden" LICENSING_SERVER_IS_UNAVAILABLE = "Abonnement-Server kann nicht erreicht werden"
LICENSING_DOMAIN_EXPIRED = "Das Abonnement dieser Domain ist ausgelaufen" LICENSING_DOMAIN_EXPIRED = "Das Abonnement dieser Domain ist ausgelaufen"
LICENSING_DOMAIN_BANNED = "Das Abonnement dieser Domain ist gesperrt." LICENSING_DOMAIN_BANNED = "Das Abonnement dieser Domain ist gesperrt."
DEMO_SEND_MESSAGE_ERROR = "Dieser Demo-Account darf aus Sicherheitsgründen keine Nachrichten an externe Mail-Adressen versenden!" DEMO_SEND_MESSAGE_ERROR = "Dieser Demo-Account darf aus Sicherheitsgründen keine Nachrichten an externe E-Mail-Adressen versenden!"
ACCOUNT_ALREADY_EXISTS = "Dieses Konto gibt es schon." ACCOUNT_ALREADY_EXISTS = "Dieses Konto gibt es schon."
MAIL_SERVER_ERROR = "Beim Zugriff auf den Mail-Server trat ein Fehler auf." MAIL_SERVER_ERROR = "Beim Zugriff auf den E-Mail-Server trat ein Fehler auf."
UNKNOWN_ERROR = "Unbekannter Fehler" UNKNOWN_ERROR = "Unbekannter Fehler"
[STATIC] [STATIC]
BACK_LINK = "Neuladen" BACK_LINK = "Aktualisieren"
DOMAIN_LIST_DESC = "Liste de Domains, auf die zugegriffen werden darf" DOMAIN_LIST_DESC = "Liste der Domains, auf die zugegriffen werden darf"
PHP_EXSTENSIONS_ERROR_DESC = "Notwendige PHP-Erweiterungen sind in Ihrer PHP-Konfiguration nicht vorhanden!" PHP_EXSTENSIONS_ERROR_DESC = "Notwendige PHP-Erweiterungen sind in Ihrer PHP-Konfiguration nicht vorhanden!"
PHP_VERSION_ERROR_DESC = "Ihre PHP Version (%VERSION%) ist älter als die notwendige Version: 5.3.0!" PHP_VERSION_ERROR_DESC = "Ihre PHP Version (%VERSION%) ist älter als die notwendige Version: 5.3.0!"
@ -600,4 +601,4 @@ Aktivieren Sie bitte die Cookie-Unterstützung in Ihrem Browser und versuchen Si
BAD_BROWSER_TITLE = "Ihr Browser ist veraltet." BAD_BROWSER_TITLE = "Ihr Browser ist veraltet."
BAD_BROWSER_DESC = "Um alle Features dieser Anwendung nutzen zu können, BAD_BROWSER_DESC = "Um alle Features dieser Anwendung nutzen zu können,
sollten Sie wirklich einen aktuellen Browser installieren!" sollten Sie einen aktuellen Browser installieren!"

View file

@ -7414,9 +7414,11 @@ html.rl-ctrl-key-pressed .hidden-on-ctrl {
color: #fff; color: #fff;
} }
.b-folders .b-content .e-item .e-link.selectable.focused { .b-folders .b-content .e-item .e-link.selectable.focused {
background-color: #888;
color: #fff; color: #fff;
} }
.b-folders .b-content .e-item .e-link.focused {
background-color: #888;
}
.b-folders .b-content .e-item .e-link.system { .b-folders .b-content .e-item .e-link.system {
cursor: default; cursor: default;
color: grey; color: grey;

File diff suppressed because one or more lines are too long

View file

@ -12265,7 +12265,10 @@ function MailBoxFolderListViewModel()
KnoinAbstractViewModel.call(this, 'Left', 'MailFolderList'); KnoinAbstractViewModel.call(this, 'Left', 'MailFolderList');
var oData = RL.data(); var oData = RL.data();
this.oContentVisible = null;
this.oContentScrollable = null;
this.messageList = oData.messageList; this.messageList = oData.messageList;
this.folderList = oData.folderList; this.folderList = oData.folderList;
this.folderListSystem = oData.folderListSystem; this.folderListSystem = oData.folderListSystem;
@ -12284,6 +12287,9 @@ Utils.extendAsViewModel('MailBoxFolderListViewModel', MailBoxFolderListViewModel
MailBoxFolderListViewModel.prototype.onBuild = function (oDom) MailBoxFolderListViewModel.prototype.onBuild = function (oDom)
{ {
this.oContentVisible = $('.b-content', oDom);
this.oContentScrollable = $('.content', this.oContentVisible);
var self = this; var self = this;
oDom oDom
@ -12319,7 +12325,7 @@ MailBoxFolderListViewModel.prototype.onBuild = function (oDom)
{ {
oData.message(null); oData.message(null);
} }
if (oFolder.fullNameRaw === oData.currentFolderFullNameRaw()) if (oFolder.fullNameRaw === oData.currentFolderFullNameRaw())
{ {
RL.cache().setFolderHash(oFolder.fullNameRaw, ''); RL.cache().setFolderHash(oFolder.fullNameRaw, '');
@ -12356,8 +12362,9 @@ MailBoxFolderListViewModel.prototype.onBuild = function (oDom)
} }
$items.eq(iIndex).addClass('focused'); $items.eq(iIndex).addClass('focused');
self.scrollToFocused();
} }
return false; return false;
}); });
@ -12420,6 +12427,38 @@ MailBoxFolderListViewModel.prototype.messagesDropOut = function ()
window.clearTimeout(this.iDropOverTimer); window.clearTimeout(this.iDropOverTimer);
}; };
MailBoxFolderListViewModel.prototype.scrollToFocused = function ()
{
if (!this.oContentVisible || !this.oContentScrollable)
{
return false;
}
var
iOffset = 20,
oFocused = $('.e-item .e-link.focused', this.oContentScrollable),
oPos = oFocused.position(),
iVisibleHeight = this.oContentVisible.height(),
iFocusedHeight = oFocused.outerHeight()
;
if (oPos && (oPos.top < 0 || oPos.top + iFocusedHeight > iVisibleHeight))
{
if (oPos.top < 0)
{
this.oContentScrollable.scrollTop(this.oContentScrollable.scrollTop() + oPos.top - iOffset);
}
else
{
this.oContentScrollable.scrollTop(this.oContentScrollable.scrollTop() + oPos.top - iVisibleHeight + iFocusedHeight + iOffset);
}
return true;
}
return false;
};
/** /**
* *
* @param {FolderModel} oToFolder * @param {FolderModel} oToFolder
@ -12489,7 +12528,7 @@ function MailBoxMessageListViewModel()
this.messageListSearch = oData.messageListSearch; this.messageListSearch = oData.messageListSearch;
this.messageListError = oData.messageListError; this.messageListError = oData.messageListError;
this.folderMenuForMove = oData.folderMenuForMove; this.folderMenuForMove = oData.folderMenuForMove;
this.useCheckboxesInList = oData.useCheckboxesInList; this.useCheckboxesInList = oData.useCheckboxesInList;
this.mainMessageListSearch = oData.mainMessageListSearch; this.mainMessageListSearch = oData.mainMessageListSearch;
@ -12611,7 +12650,7 @@ function MailBoxMessageListViewModel()
this.multyForwardCommand = Utils.createCommand(this, function () { this.multyForwardCommand = Utils.createCommand(this, function () {
kn.showScreenPopup(PopupsComposeViewModel, [Enums.ComposeType.ForwardAsAttachment, RL.data().messageListCheckedOrSelected()]); kn.showScreenPopup(PopupsComposeViewModel, [Enums.ComposeType.ForwardAsAttachment, RL.data().messageListCheckedOrSelected()]);
}, this.canBeMoved); }, this.canBeMoved);
this.deleteWithoutMoveCommand = Utils.createCommand(this, function () { this.deleteWithoutMoveCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Trash, RL.deleteMessagesFromFolder(Enums.FolderType.Trash,
RL.data().currentFolderFullNameRaw(), RL.data().currentFolderFullNameRaw(),
@ -12619,7 +12658,7 @@ function MailBoxMessageListViewModel()
}, this.canBeMoved); }, this.canBeMoved);
this.deleteCommand = Utils.createCommand(this, function () { this.deleteCommand = Utils.createCommand(this, function () {
RL.deleteMessagesFromFolder(Enums.FolderType.Trash, RL.deleteMessagesFromFolder(Enums.FolderType.Trash,
RL.data().currentFolderFullNameRaw(), RL.data().currentFolderFullNameRaw(),
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true); RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved); }, this.canBeMoved);
@ -12629,7 +12668,7 @@ function MailBoxMessageListViewModel()
RL.data().currentFolderFullNameRaw(), RL.data().currentFolderFullNameRaw(),
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true); RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true);
}, this.canBeMoved); }, 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(),
@ -12650,9 +12689,9 @@ function MailBoxMessageListViewModel()
RL.reloadMessageList(false, true); RL.reloadMessageList(false, true);
} }
}); });
this.quotaTooltip = _.bind(this.quotaTooltip, this); this.quotaTooltip = _.bind(this.quotaTooltip, this);
this.selector = new Selector(this.messageList, this.currentMessage, this.selector = new Selector(this.messageList, this.currentMessage,
'.messageListItem .actionHandle', '.messageListItem.selected', '.messageListItem .checkboxMessage', '.messageListItem .actionHandle', '.messageListItem.selected', '.messageListItem .checkboxMessage',
'.messageListItem.focused'); '.messageListItem.focused');
@ -12763,7 +12802,7 @@ MailBoxMessageListViewModel.prototype.dragAndDronHelper = function (oMessageList
_.defer(function () { _.defer(function () {
var aUids = RL.data().messageListCheckedOrSelectedUidsWithSubMails(); var aUids = RL.data().messageListCheckedOrSelectedUidsWithSubMails();
oEl.data('rl-uids', aUids); oEl.data('rl-uids', aUids);
oEl.find('.text').text('' + aUids.length); oEl.find('.text').text('' + aUids.length);
}); });
@ -12782,7 +12821,7 @@ MailBoxMessageListViewModel.prototype.onMessageResponse = function (sResult, oDa
oRainLoopData.hideMessageBodies(); oRainLoopData.hideMessageBodies();
oRainLoopData.messageLoading(false); oRainLoopData.messageLoading(false);
if (Enums.StorageResultType.Success === sResult && oData && oData.Result) if (Enums.StorageResultType.Success === sResult && oData && oData.Result)
{ {
oRainLoopData.setMessage(oData, bCached); oRainLoopData.setMessage(oData, bCached);
@ -13060,7 +13099,7 @@ MailBoxMessageListViewModel.prototype.seenMessagesFast = function (bSeen)
MailBoxMessageListViewModel.prototype.onBuild = function (oDom) MailBoxMessageListViewModel.prototype.onBuild = function (oDom)
{ {
var var
self = this, self = this,
oData = RL.data() oData = RL.data()
; ;
@ -13149,20 +13188,14 @@ MailBoxMessageListViewModel.prototype.initShortcuts = function ()
return false; return false;
}); });
// TODO // more toggle
// key('', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () {
// self.moreDropdownTrigger(true);
// return false;
// });
// archive (zip) // archive (zip)
key('z', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () { key('z', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () {
self.archiveCommand(); self.archiveCommand();
return false; return false;
}); });
// delete // delete
key('delete, shift+delete', Enums.KeyState.MessageList, function (event, handler) { key('delete, shift+delete, shift+3', Enums.KeyState.MessageList, function (event, handler) {
if (event) if (event)
{ {
if (0 < RL.data().messageListCheckedOrSelected().length) if (0 < RL.data().messageListCheckedOrSelected().length)
@ -13272,7 +13305,7 @@ MailBoxMessageListViewModel.prototype.prefetchNextTick = function ()
{ {
if (!this.bPrefetch && !ifvisible.now() && this.viewModelVisibility()) if (!this.bPrefetch && !ifvisible.now() && this.viewModelVisibility())
{ {
var var
self = this, self = this,
oCache = RL.cache(), oCache = RL.cache(),
oMessage = _.find(this.messageList(), function (oMessage) { oMessage = _.find(this.messageList(), function (oMessage) {
@ -13280,17 +13313,17 @@ MailBoxMessageListViewModel.prototype.prefetchNextTick = function ()
!oCache.hasRequestedMessage(oMessage.folderFullNameRaw, oMessage.uid); !oCache.hasRequestedMessage(oMessage.folderFullNameRaw, oMessage.uid);
}) })
; ;
if (oMessage) if (oMessage)
{ {
this.bPrefetch = true; this.bPrefetch = true;
RL.cache().addRequestedMessage(oMessage.folderFullNameRaw, oMessage.uid); RL.cache().addRequestedMessage(oMessage.folderFullNameRaw, oMessage.uid);
RL.remote().message(function (sResult, oData) { RL.remote().message(function (sResult, oData) {
var bNext = !!(Enums.StorageResultType.Success === sResult && oData && oData.Result); var bNext = !!(Enums.StorageResultType.Success === sResult && oData && oData.Result);
_.delay(function () { _.delay(function () {
self.bPrefetch = false; self.bPrefetch = false;
if (bNext) if (bNext)
@ -13298,7 +13331,7 @@ MailBoxMessageListViewModel.prototype.prefetchNextTick = function ()
self.prefetchNextTick(); self.prefetchNextTick();
} }
}, 1000); }, 1000);
}, oMessage.folderFullNameRaw, oMessage.uid); }, oMessage.folderFullNameRaw, oMessage.uid);
} }
} }

File diff suppressed because one or more lines are too long