mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-11 00:14:50 +03:00
Resolve #361
This commit is contained in:
parent
7e1b85d023
commit
ecf53b1285
40 changed files with 161 additions and 111 deletions
|
|
@ -11,11 +11,11 @@ import { leftPanelDisabled, moveAction,
|
|||
addShortcut, registerShortcut, formFieldFocused
|
||||
} from 'Common/Globals';
|
||||
|
||||
import { computedPaginatorHelper, showMessageComposer, populateMessageBody } from 'Common/UtilsUser';
|
||||
import { computedPaginatorHelper, showMessageComposer, populateMessageBody, download } from 'Common/UtilsUser';
|
||||
import { FileInfo } from 'Common/File';
|
||||
import { isFullscreen, toggleFullscreen } from 'Common/Fullscreen';
|
||||
|
||||
import { mailBox } from 'Common/Links';
|
||||
import { mailBox, attachmentDownload } from 'Common/Links';
|
||||
import { Selector } from 'Common/Selector';
|
||||
|
||||
import { i18n } from 'Common/Translator';
|
||||
|
|
@ -258,6 +258,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
).throttle(50));
|
||||
|
||||
decorateKoCommands(this, {
|
||||
downloadCommand: canBeMovedHelper,
|
||||
forwardCommand: canBeMovedHelper,
|
||||
deleteWithoutMoveCommand: canBeMovedHelper,
|
||||
deleteCommand: canBeMovedHelper,
|
||||
|
|
@ -290,6 +291,34 @@ export class MailMessageList extends AbstractViewRight {
|
|||
]);
|
||||
}
|
||||
|
||||
downloadCommand() {
|
||||
let hashes = [];
|
||||
MessagelistUserStore.forEach(message => {
|
||||
if (message.checked()) {
|
||||
message.attachments.forEach(attachment => {
|
||||
if (!attachment.isLinked() && attachment.download) {
|
||||
hashes.push(attachment.download);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
if (hashes.length) {
|
||||
Remote.post('AttachmentsActions', null, {
|
||||
Do: 'Zip',
|
||||
Hashes: hashes
|
||||
})
|
||||
.then(result => {
|
||||
let hash = result?.Result?.FileHash;
|
||||
if (hash) {
|
||||
download(attachmentDownload(hash), hash+'.zip');
|
||||
} else {
|
||||
alert('Download failed');
|
||||
}
|
||||
})
|
||||
.catch(() => alert('Download failed'));
|
||||
}
|
||||
}
|
||||
|
||||
deleteWithoutMoveCommand() {
|
||||
SettingsCapa('DangerousActions')
|
||||
&& moveMessagesToFolderType(FolderType.Trash, true);
|
||||
|
|
|
|||
|
|
@ -73,142 +73,123 @@ trait User
|
|||
*/
|
||||
public function DoAttachmentsActions() : array
|
||||
{
|
||||
if (!$this->GetCapa(Capa::ATTACHMENTS_ACTIONS))
|
||||
{
|
||||
$sAction = $this->GetActionParam('Do', '');
|
||||
$aHashes = $this->GetActionParam('Hashes', null);
|
||||
$oFilesProvider = $this->FilesProvider();
|
||||
if (empty($sAction) || !$this->GetCapa(Capa::ATTACHMENTS_ACTIONS) || !$oFilesProvider || !$oFilesProvider->IsActive()) {
|
||||
return $this->FalseResponse(__FUNCTION__);
|
||||
}
|
||||
|
||||
$oAccount = $this->initMailClientConnection();
|
||||
|
||||
$sAction = $this->GetActionParam('Do', '');
|
||||
$aHashes = $this->GetActionParam('Hashes', null);
|
||||
|
||||
$mResult = false;
|
||||
$bError = false;
|
||||
$aData = false;
|
||||
$aData = [];
|
||||
$mUIDs = [];
|
||||
|
||||
if (\is_array($aHashes) && \count($aHashes))
|
||||
{
|
||||
$aData = array();
|
||||
foreach ($aHashes as $sZipHash)
|
||||
{
|
||||
if (\is_array($aHashes) && \count($aHashes)) {
|
||||
foreach ($aHashes as $sZipHash) {
|
||||
$aResult = $this->getMimeFileByHash($oAccount, $sZipHash);
|
||||
if (!empty($aResult['FileHash']))
|
||||
{
|
||||
$aData[] = $aResult;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (empty($aResult['FileHash'])) {
|
||||
$bError = true;
|
||||
break;
|
||||
}
|
||||
$aData[] = $aResult;
|
||||
$mUIDs[$aResult['Uid']] = $aResult['Uid'];
|
||||
}
|
||||
}
|
||||
$mUIDs = 1 < \count($mUIDs);
|
||||
|
||||
$oFilesProvider = $this->FilesProvider();
|
||||
if (!empty($sAction) && !$bError && \is_array($aData) && \count($aData) &&
|
||||
$oFilesProvider && $oFilesProvider->IsActive())
|
||||
if ($bError || !\count($aData)) {
|
||||
return $this->FalseResponse(__FUNCTION__);
|
||||
}
|
||||
|
||||
$mResult = false;
|
||||
switch (\strtolower($sAction))
|
||||
{
|
||||
$bError = false;
|
||||
switch (\strtolower($sAction))
|
||||
{
|
||||
case 'zip':
|
||||
case 'zip':
|
||||
|
||||
$sZipHash = \MailSo\Base\Utils::Sha1Rand();
|
||||
$sZipFileName = $oFilesProvider->GenerateLocalFullFileName($oAccount, $sZipHash);
|
||||
|
||||
if (!empty($sZipFileName)) {
|
||||
if (\class_exists('ZipArchive')) {
|
||||
$oZip = new \ZipArchive();
|
||||
$oZip->open($sZipFileName, \ZIPARCHIVE::CREATE | \ZIPARCHIVE::OVERWRITE);
|
||||
$oZip->setArchiveComment('SnappyMail/'.APP_VERSION);
|
||||
foreach ($aData as $aItem) {
|
||||
$sFileName = (string) (isset($aItem['FileName']) ? $aItem['FileName'] : 'file.dat');
|
||||
$sFileHash = (string) (isset($aItem['FileHash']) ? $aItem['FileHash'] : '');
|
||||
if (!empty($sFileHash)) {
|
||||
$sFullFileNameHash = $oFilesProvider->GetFileName($oAccount, $sFileHash);
|
||||
if (!$oZip->addFile($sFullFileNameHash, $sFileName)) {
|
||||
$bError = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$bError) {
|
||||
$bError = !$oZip->close();
|
||||
} else {
|
||||
$oZip->close();
|
||||
}
|
||||
/*
|
||||
} else {
|
||||
@\unlink($sZipFileName);
|
||||
$oZip = new \SnappyMail\Stream\ZIP($sZipFileName);
|
||||
// $oZip->setArchiveComment('SnappyMail/'.APP_VERSION);
|
||||
foreach ($aData as $aItem) {
|
||||
$sFileName = (string) (isset($aItem['FileName']) ? $aItem['FileName'] : 'file.dat');
|
||||
$sFileHash = (string) (isset($aItem['FileHash']) ? $aItem['FileHash'] : '');
|
||||
if (!empty($sFileHash)) {
|
||||
$sFullFileNameHash = $oFilesProvider->GetFileName($oAccount, $sFileHash);
|
||||
if (!$oZip->addFile($sFullFileNameHash, $sFileName)) {
|
||||
$bError = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
$oZip->close();
|
||||
*/
|
||||
} else {
|
||||
@\unlink($sZipFileName);
|
||||
$oZip = new \PharData($sZipFileName . '.zip', 0, null, \Phar::ZIP);
|
||||
$oZip->compressFiles(\Phar::GZ);
|
||||
foreach ($aData as $aItem) {
|
||||
$sFileName = (isset($aItem['FileName']) ? (string) $aItem['FileName'] : 'file.dat');
|
||||
$sFileHash = (isset($aItem['FileHash']) ? (string) $aItem['FileHash'] : '');
|
||||
if ($sFileHash) {
|
||||
$sFullFileNameHash = $oFilesProvider->GetFileName($oAccount, $sFileHash);
|
||||
$oZip->addFile($sFullFileNameHash, $sFileName);
|
||||
}
|
||||
}
|
||||
$oZip->compressFiles(\Phar::GZ);
|
||||
unset($oZip);
|
||||
\rename($sZipFileName . '.zip', $sZipFileName);
|
||||
}
|
||||
$sZipHash = \MailSo\Base\Utils::Sha1Rand();
|
||||
$sZipFileName = $oFilesProvider->GenerateLocalFullFileName($oAccount, $sZipHash);
|
||||
|
||||
if (!empty($sZipFileName)) {
|
||||
if (\class_exists('ZipArchive')) {
|
||||
$oZip = new \ZipArchive();
|
||||
$oZip->open($sZipFileName, \ZIPARCHIVE::CREATE | \ZIPARCHIVE::OVERWRITE);
|
||||
$oZip->setArchiveComment('SnappyMail/'.APP_VERSION);
|
||||
foreach ($aData as $aItem) {
|
||||
$sFileHash = (isset($aItem['FileHash']) ? (string) $aItem['FileHash'] : '');
|
||||
if ($sFileHash) {
|
||||
$oFilesProvider->Clear($oAccount, $sFileHash);
|
||||
$sFullFileNameHash = $oFilesProvider->GetFileName($oAccount, $aItem['FileHash']);
|
||||
$sFileName = ($mUIDs ? "{$aItem['Uid']}/" : '') . ($aItem['FileName'] ?: 'file.dat');
|
||||
if (!$oZip->addFile($sFullFileNameHash, $sFileName)) {
|
||||
$bError = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$bError) {
|
||||
$mResult = array(
|
||||
'FileHash' => Utils::EncodeKeyValuesQ(array(
|
||||
'Account' => $oAccount ? $oAccount->Hash() : '',
|
||||
'FileName' => 'attachments.zip',
|
||||
'MimeType' => 'application/zip',
|
||||
'FileHash' => $sZipHash
|
||||
))
|
||||
if ($bError) {
|
||||
$oZip->close();
|
||||
} else {
|
||||
$bError = !$oZip->close();
|
||||
}
|
||||
/*
|
||||
} else {
|
||||
@\unlink($sZipFileName);
|
||||
$oZip = new \SnappyMail\Stream\ZIP($sZipFileName);
|
||||
// $oZip->setArchiveComment('SnappyMail/'.APP_VERSION);
|
||||
foreach ($aData as $aItem) {
|
||||
$sFileName = (string) (isset($aItem['FileName']) ? $aItem['FileName'] : 'file.dat');
|
||||
$sFileHash = (string) (isset($aItem['FileHash']) ? $aItem['FileHash'] : '');
|
||||
if (!empty($sFileHash)) {
|
||||
$sFullFileNameHash = $oFilesProvider->GetFileName($oAccount, $sFileHash);
|
||||
if (!$oZip->addFile($sFullFileNameHash, $sFileName)) {
|
||||
$bError = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
$oZip->close();
|
||||
*/
|
||||
} else {
|
||||
@\unlink($sZipFileName);
|
||||
$oZip = new \PharData($sZipFileName . '.zip', 0, null, \Phar::ZIP);
|
||||
$oZip->compressFiles(\Phar::GZ);
|
||||
foreach ($aData as $aItem) {
|
||||
$oZip->addFile(
|
||||
$oFilesProvider->GetFileName($oAccount, $aItem['FileHash']),
|
||||
($mUIDs ? "{$aItem['Uid']}/" : '') . ($aItem['FileName'] ?: 'file.dat')
|
||||
);
|
||||
}
|
||||
$oZip->compressFiles(\Phar::GZ);
|
||||
unset($oZip);
|
||||
\rename($sZipFileName . '.zip', $sZipFileName);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
$data = new \SnappyMail\AttachmentsAction;
|
||||
$data->action = $sAction;
|
||||
$data->items = $aData;
|
||||
$data->filesProvider = $oFilesProvider;
|
||||
$data->account = $oAccount;
|
||||
$this->Plugins()->RunHook('json.attachments', array($data));
|
||||
$mResult = $data->result;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$bError = true;
|
||||
foreach ($aData as $aItem) {
|
||||
$oFilesProvider->Clear($oAccount, $aItem['FileHash']);
|
||||
}
|
||||
|
||||
if (!$bError) {
|
||||
$mResult = array(
|
||||
'FileHash' => Utils::EncodeKeyValuesQ(array(
|
||||
'Account' => $oAccount ? $oAccount->Hash() : '',
|
||||
'FileName' => 'attachments.zip',
|
||||
'MimeType' => 'application/zip',
|
||||
'FileHash' => $sZipHash
|
||||
))
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
$data = new \SnappyMail\AttachmentsAction;
|
||||
$data->action = $sAction;
|
||||
$data->items = $aData;
|
||||
$data->filesProvider = $oFilesProvider;
|
||||
$data->account = $oAccount;
|
||||
$this->Plugins()->RunHook('json.attachments', array($data));
|
||||
$mResult = $data->result;
|
||||
break;
|
||||
}
|
||||
|
||||
$this->requestSleep();
|
||||
// $this->requestSleep();
|
||||
return $this->DefaultResponse(__FUNCTION__, $bError ? false : $mResult);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "مقروء",
|
||||
"MENU_SELECT_FLAGGED": "محدد كـ مهم",
|
||||
"MENU_SELECT_UNFLAGGED": "إزالة الأهمية",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "إفراغ القائمة",
|
||||
"EMPTY_SEARCH_LIST": "ليست هناك أية رسائل تطابق بحثك.",
|
||||
"SEARCH_RESULT_FOR": "نتيجة البحث لـ \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Прочетени",
|
||||
"MENU_SELECT_FLAGGED": "Маркирани с флаг",
|
||||
"MENU_SELECT_UNFLAGGED": "С премахнат флаг",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Празен списък.",
|
||||
"EMPTY_SEARCH_LIST": "Няма съобщения, които да отговарят на търсенето.",
|
||||
"SEARCH_RESULT_FOR": "Резултати от търсенето за \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Přečtené",
|
||||
"MENU_SELECT_FLAGGED": "Označené",
|
||||
"MENU_SELECT_UNFLAGGED": "Neoznačené",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Seznam je prázdný",
|
||||
"EMPTY_SEARCH_LIST": "Vašemu vyhledávání neodpovídají žádné zprávy.",
|
||||
"SEARCH_RESULT_FOR": "Výsledky vyhledávání pro \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Læst",
|
||||
"MENU_SELECT_FLAGGED": "Markeret med flag",
|
||||
"MENU_SELECT_UNFLAGGED": "Ikke markeret med flag",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Ingen meddelelser.",
|
||||
"EMPTY_SEARCH_LIST": "Ingen meddelelser passede på søgningen.",
|
||||
"SEARCH_RESULT_FOR": "Resultat for søgningen på \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Gelesen",
|
||||
"MENU_SELECT_FLAGGED": "Markiert",
|
||||
"MENU_SELECT_UNFLAGGED": "Nicht markiert",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Liste ist leer.",
|
||||
"EMPTY_SEARCH_LIST": "Keine Treffer für Ihre Suche.",
|
||||
"SEARCH_RESULT_FOR": "Suchergebnisse für \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Διαβασμένο",
|
||||
"MENU_SELECT_FLAGGED": "Σημαδεμένο",
|
||||
"MENU_SELECT_UNFLAGGED": "Μη σημαδεμένο",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Άδεια λίστα.",
|
||||
"EMPTY_SEARCH_LIST": "Δεν υπάρχουν μηνύματα που να ταιριάζουν στην αναζήτηση.",
|
||||
"SEARCH_RESULT_FOR": "Αποτελέσματα αναζήτησης για \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Read",
|
||||
"MENU_SELECT_FLAGGED": "Flagged",
|
||||
"MENU_SELECT_UNFLAGGED": "Unflagged",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Empty list.",
|
||||
"EMPTY_SEARCH_LIST": "No messages matched your search.",
|
||||
"SEARCH_RESULT_FOR": "Search results for \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Read",
|
||||
"MENU_SELECT_FLAGGED": "Flagged",
|
||||
"MENU_SELECT_UNFLAGGED": "Unflagged",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Empty list.",
|
||||
"EMPTY_SEARCH_LIST": "No messages matched your search.",
|
||||
"SEARCH_RESULT_FOR": "Search results for \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Leído",
|
||||
"MENU_SELECT_FLAGGED": "Destacado",
|
||||
"MENU_SELECT_UNFLAGGED": "No Destacado",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "No hay mensajes.",
|
||||
"EMPTY_SEARCH_LIST": "La búsqueda no ha producido resultados.",
|
||||
"SEARCH_RESULT_FOR": "Resultados de búsqueda para \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Loetud",
|
||||
"MENU_SELECT_FLAGGED": "Lipuga märgitud",
|
||||
"MENU_SELECT_UNFLAGGED": "Lipuga märkimata",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Tühi nimekiri",
|
||||
"EMPTY_SEARCH_LIST": "Otsingule ei vastanud ühtegi kirja",
|
||||
"SEARCH_RESULT_FOR": "Vasted otsingule \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "خوانده",
|
||||
"MENU_SELECT_FLAGGED": "پرچمدار کردن",
|
||||
"MENU_SELECT_UNFLAGGED": "پرچمدار نشده",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "فهرست خالی",
|
||||
"EMPTY_SEARCH_LIST": "پیامی مطابق جستجوی شما پیدا نشد",
|
||||
"SEARCH_RESULT_FOR": "نتایج جستجو مطابق \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Luetut",
|
||||
"MENU_SELECT_FLAGGED": "Merkityt",
|
||||
"MENU_SELECT_UNFLAGGED": "Merkkaamattomat",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Tyhjä lista",
|
||||
"EMPTY_SEARCH_LIST": "Yhtään viestiä ei löytynyt ehdoillasi.",
|
||||
"SEARCH_RESULT_FOR": "Hakutulokset haulle \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Lu",
|
||||
"MENU_SELECT_FLAGGED": "Signalés",
|
||||
"MENU_SELECT_UNFLAGGED": "Non signalés",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Liste vide.",
|
||||
"EMPTY_SEARCH_LIST": "Aucun message ne correspond à votre recherche.",
|
||||
"SEARCH_RESULT_FOR": "Résultats de recherche pour \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Olvasott",
|
||||
"MENU_SELECT_FLAGGED": "Megjelölt",
|
||||
"MENU_SELECT_UNFLAGGED": "Jelöletlen",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Lista üres.",
|
||||
"EMPTY_SEARCH_LIST": "Nincs a keresésnek megfelelő levél.",
|
||||
"SEARCH_RESULT_FOR": "Keresési eredmények ehhez: \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Dibaca",
|
||||
"MENU_SELECT_FLAGGED": "Ditandai",
|
||||
"MENU_SELECT_UNFLAGGED": "Jangan tandai",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Daftar kosong",
|
||||
"EMPTY_SEARCH_LIST": "Tidak ada pesan yang sesuai dengan pencarian",
|
||||
"SEARCH_RESULT_FOR": "Hasil pencarian untuk \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Lesið",
|
||||
"MENU_SELECT_FLAGGED": "Flaggað",
|
||||
"MENU_SELECT_UNFLAGGED": "Afflaggað",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Tómur listi.",
|
||||
"EMPTY_SEARCH_LIST": "Engin skilaboð stemmdu við leitina þína.",
|
||||
"SEARCH_RESULT_FOR": "Leitarniðurstöður fyrir \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Letti",
|
||||
"MENU_SELECT_FLAGGED": "Preferiti",
|
||||
"MENU_SELECT_UNFLAGGED": "Non preferiti",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Lista vuota",
|
||||
"EMPTY_SEARCH_LIST": "Nessun messaggio corrisponde alla tua ricerca",
|
||||
"SEARCH_RESULT_FOR": "Risultati di ricerca per \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "既読",
|
||||
"MENU_SELECT_FLAGGED": "フラグ付き",
|
||||
"MENU_SELECT_UNFLAGGED": "フラグなし",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "メッセージはありません",
|
||||
"EMPTY_SEARCH_LIST": "検索条件に一致するメールは見つかりませんでした。高度な検索を試してみてください。",
|
||||
"SEARCH_RESULT_FOR": "\"%SEARCH%\"の検索結果",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "읽음",
|
||||
"MENU_SELECT_FLAGGED": "중요",
|
||||
"MENU_SELECT_UNFLAGGED": "일반",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "목록이 비어있습니다.",
|
||||
"EMPTY_SEARCH_LIST": "검색 조건에 맞는 결과가 없습니다..",
|
||||
"SEARCH_RESULT_FOR": "\"%SEARCH%\"에 대한 검색 결과",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Skaityta",
|
||||
"MENU_SELECT_FLAGGED": "Pažymėta",
|
||||
"MENU_SELECT_UNFLAGGED": "Nepažymėta",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Tuščias sąrašas.",
|
||||
"EMPTY_SEARCH_LIST": "Nėra pranešimų, atitinkančių jūsų paiešką.",
|
||||
"SEARCH_RESULT_FOR": "Ieškoti \"%SEARCH%\" rezultatuose",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Izlasīts",
|
||||
"MENU_SELECT_FLAGGED": "Atzīmētie",
|
||||
"MENU_SELECT_UNFLAGGED": "Noņemtās atzīmes",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Tukšs saraksts.",
|
||||
"EMPTY_SEARCH_LIST": "Neviens ziņojums neatbilda jūsu meklētajiem kritērijiem.",
|
||||
"SEARCH_RESULT_FOR": "Meklēšanas rezultāti: \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Lest",
|
||||
"MENU_SELECT_FLAGGED": "Stjernemerket",
|
||||
"MENU_SELECT_UNFLAGGED": "Ikke stjernemerket",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Tom liste",
|
||||
"EMPTY_SEARCH_LIST": "Søket ga ingen treff.",
|
||||
"SEARCH_RESULT_FOR": "Søketreff for «%SEARCH%»",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Gelezen",
|
||||
"MENU_SELECT_FLAGGED": "Met Vlag",
|
||||
"MENU_SELECT_UNFLAGGED": "Zonder Vlag",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Geen berichten",
|
||||
"EMPTY_SEARCH_LIST": "Geen items gevonden",
|
||||
"SEARCH_RESULT_FOR": "Zoekresultaten voor \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Przeczytane",
|
||||
"MENU_SELECT_FLAGGED": "Oznaczone jako ważne",
|
||||
"MENU_SELECT_UNFLAGGED": "Oznaczone jako nieważne",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Brak wiadomości.",
|
||||
"EMPTY_SEARCH_LIST": "Brak wiadomości spełniających kryteria wyszukiwania.",
|
||||
"SEARCH_RESULT_FOR": "Wyniki wyszukiwania dla \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Lidas",
|
||||
"MENU_SELECT_FLAGGED": "Sinalizadas",
|
||||
"MENU_SELECT_UNFLAGGED": "Não Sinalizadas",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Lista Vazia.",
|
||||
"EMPTY_SEARCH_LIST": "Nenhuma mensagem corresponde a sua pesquisa.",
|
||||
"SEARCH_RESULT_FOR": "Resultados de pesquisa para \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Lida",
|
||||
"MENU_SELECT_FLAGGED": "Sinalizada",
|
||||
"MENU_SELECT_UNFLAGGED": "Não sinalizada",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Lista vazia.",
|
||||
"EMPTY_SEARCH_LIST": "Nenhuma mensagem corresponde à sua pesquisa.",
|
||||
"SEARCH_RESULT_FOR": "Resultados de pesquisa para \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Lida",
|
||||
"MENU_SELECT_FLAGGED": "Sinalizada",
|
||||
"MENU_SELECT_UNFLAGGED": "Não sinalizada",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Lista vazia.",
|
||||
"EMPTY_SEARCH_LIST": "Nenhuma mensagem corresponde à sua pesquisa.",
|
||||
"SEARCH_RESULT_FOR": "Resultados de pesquisa para \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Citit",
|
||||
"MENU_SELECT_FLAGGED": "Important",
|
||||
"MENU_SELECT_UNFLAGGED": "Neimportant",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Nimic aici, deocamdată",
|
||||
"EMPTY_SEARCH_LIST": "Nu am găsit nimic.",
|
||||
"SEARCH_RESULT_FOR": "Rezultat căutare \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Прочитанные",
|
||||
"MENU_SELECT_FLAGGED": "Помеченные",
|
||||
"MENU_SELECT_UNFLAGGED": "Без пометок",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "В папке нет писем.",
|
||||
"EMPTY_SEARCH_LIST": "Письма не найдены.",
|
||||
"SEARCH_RESULT_FOR": "Результат поиска \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Prečítané",
|
||||
"MENU_SELECT_FLAGGED": "Označené",
|
||||
"MENU_SELECT_UNFLAGGED": "Neoznačené",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Zoznam je prázdny.",
|
||||
"EMPTY_SEARCH_LIST": "Vášmu vyhľadávaniu nezodpovedajú žiadne správy.",
|
||||
"SEARCH_RESULT_FOR": "Výsledky vyhľadávania pre \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Prebrana",
|
||||
"MENU_SELECT_FLAGGED": "Z zvezdico",
|
||||
"MENU_SELECT_UNFLAGGED": "Brez zvezdice",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Prazen seznam.",
|
||||
"EMPTY_SEARCH_LIST": "Brez ujemanj.",
|
||||
"SEARCH_RESULT_FOR": "Ujemanja za \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Läst",
|
||||
"MENU_SELECT_FLAGGED": "Flaggad",
|
||||
"MENU_SELECT_UNFLAGGED": "Avflaggad",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Tom lista",
|
||||
"EMPTY_SEARCH_LIST": "Inga meddelanden matchar din sökning.",
|
||||
"SEARCH_RESULT_FOR": "Sök resultat för \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Oku",
|
||||
"MENU_SELECT_FLAGGED": "İşaretlenmiş",
|
||||
"MENU_SELECT_UNFLAGGED": "İşaretlenmemiş",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Herhangi Bir Sonuç Bulunamadı.",
|
||||
"EMPTY_SEARCH_LIST": "Arama sonuçlarına uyan herhangi bir mesaj bulunamadı.",
|
||||
"SEARCH_RESULT_FOR": "\"%SEARCH%\" için arama sonuçları",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Прочитані",
|
||||
"MENU_SELECT_FLAGGED": "Відмічені",
|
||||
"MENU_SELECT_UNFLAGGED": "Без поміток",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "В папці немає листів.",
|
||||
"EMPTY_SEARCH_LIST": "Листи не знайдено.",
|
||||
"SEARCH_RESULT_FOR": "Результат пошуку \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "Đã đọc",
|
||||
"MENU_SELECT_FLAGGED": "Được đánh dấu sao",
|
||||
"MENU_SELECT_UNFLAGGED": "Không được đánh dấu sao",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "Danh sách trống.",
|
||||
"EMPTY_SEARCH_LIST": "Không tìm thấy thư trùng khớp.",
|
||||
"SEARCH_RESULT_FOR": "Kết quả tìm kiếm cho \"%SEARCH%\"",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "已读",
|
||||
"MENU_SELECT_FLAGGED": "已加星标",
|
||||
"MENU_SELECT_UNFLAGGED": "未加星标",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "空列表。",
|
||||
"EMPTY_SEARCH_LIST": "未找到您搜索的消息。",
|
||||
"SEARCH_RESULT_FOR": "搜索 \"%SEARCH%\" 的结果",
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@
|
|||
"MENU_SELECT_SEEN": "已讀",
|
||||
"MENU_SELECT_FLAGGED": "已加星標",
|
||||
"MENU_SELECT_UNFLAGGED": "未加星標",
|
||||
"DOWNLOAD_ALL_ATTACHMENTS": "Download all attachments",
|
||||
"EMPTY_LIST": "空列表。",
|
||||
"EMPTY_SEARCH_LIST": "未找到您想要的。",
|
||||
"SEARCH_RESULT_FOR": "搜索 \"%SEARCH%\" 的結果",
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@
|
|||
<li class="dividerbar" role="presentation" data-bind="command: forwardCommand">
|
||||
<a href="#" tabindex="-1" data-icon="↞" data-i18n="MESSAGE_LIST/BUTTON_MULTY_FORWARD"></a>
|
||||
</li>
|
||||
<li role="presentation" data-bind="command: downloadCommand">
|
||||
<a href="#" tabindex="-1" data-icon="" data-i18n="MESSAGE_LIST/DOWNLOAD_ALL_ATTACHMENTS"></a>
|
||||
</li>
|
||||
<li class="dividerbar" role="presentation" data-bind="command: moveCommand">
|
||||
<a href="#" tabindex="-1" data-icon="📁" data-i18n="GLOBAL/MOVE_TO"></a>
|
||||
</li>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue