<!DOCTYPE html> <html class="rl-started-trigger"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="google" content="notranslate"> <meta name="robots" content="noindex,nofollow,noodp"> <meta name="theme-color" content="black"> <title></title> <style id="app-boot-css">:root{--fontSans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--fontSerif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--fontMono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}#rl-app.fontArial{--fontSans:"Nimbus Sans L","Liberation sans","Arial Unicode MS",Arial,Helvetica,Garuda,Utkal,FreeSans,sans-serif}#rl-app.fontTahoma{--fontSans:"Luxi Sans",Tahoma,Loma,Geneva,Meera,sans-serif}#rl-app.fontTrebuchet{--fontSans:"DejaVu Sans Condensed",Trebuchet,"Trebuchet MS",sans-serif}#rl-app.fontLucida{--fontSans:"Lucida Sans Unicode","Lucida Sans","DejaVu Sans","Bitstream Vera Sans","DejaVu LGC Sans",sans-serif}#rl-app.fontVerdana{--fontSans:"DejaVu Sans",Verdana,Geneva,"Bitstream Vera Sans","DejaVu LGC Sans",sans-serif}#rl-app.fontMonoCourier{--fontMono:"Liberation Mono","Courier New",FreeMono,Courier,monospace}#rl-app.fontMonoLucida{--fontMono:"DejaVu Sans Mono","DejaVu LGC Sans Mono","Bitstream Vera Sans Mono","Lucida Console",Monaco,monospace}#rl-app.fontSerifTimes{--fontSerif:"Nimbus Roman No9 L","Times New Roman",Times,FreeSerif,serif}#rl-app.fontSerifPalatino{--fontSerif:"Bitstream Charter","Palatino Linotype",Palatino,Palladio,"URW Palladio L","Book Antiqua",Times,serif}#rl-app.fontSerifGeorgia{--fontSerif:"URW Palladio L",Georgia,Times,serif}body,html{margin:0;padding:0;-webkit-text-size-adjust:100%}#rl-app *,#rl-app ::after,#rl-app ::before{box-sizing:border-box}#rl-app{background-color:var(--main-bg-color,#aaa);color:var(--main-color,#333);font-family:var(--fontSans);-webkit-touch-callout:none;font-size:var(--main-font-size,14px);line-height:1.25;position:relative}body#rl-app{height:100vh;height:100dvh;width:100vw}#rl-BadBrowser,#rl-NoCookie,#rl-loading,#rl-loading-error{color:var(--loading-color,#000);text-shadow:var(--loading-text-shadow);font-size:214%;line-height:130%;position:fixed;text-align:center;top:50%;transform:translateY(-50%);width:100%}#rl-loading .icon-spinner{height:1em;width:1em}
</style> <link type="text/css" rel="stylesheet" href="/snappymail/v/2.38.2/static/css/app.min.css"> <link rel="manifest" href="/snappymail/v/2.38.2/static/manifest.json"> <link rel="icon" href="/snappymail/v/2.38.2/static/favicon.svg" type="image/svg+xml"> <style id="app-theme-style" data-name="Default">:root{color-scheme:light;/* MAIN */
	--main-color:#333;--main-bg-color:#48525C;--main-bg-image:url("/snappymail/v/2.38.2/themes/Default/images/background.jpg");/* LOADING */
	--loading-color:#ddd;--loading-text-shadow:0px 1px 0px rgba(0,0,0,0.5);/* LOGIN */
	--login-color:#eee;--login-bg-color:rgba(0,0,0,0.5);--login-box-shadow:0px 2px 10px rgba(0,0,0,0.5);--login-border:none;--login-border-radius:7px;/* MENU */
	--dropdown-menu-color:#333;--dropdown-menu-bg-color:#fff;--dropdown-menu-hover-bg-color:#48525C;--dropdown-menu-hover-color:#eee;--dropdown-menu-disable-color:#999;/* FOLDERS */
	--folders-color:#fff;--folders-disabled-color:#aaa;--folders-selected-color:#fff;--folders-selected-bg-color:rgba(0,0,0,0.5);--folders-focused-color:#fff;--folders-focused-bg-color:rgba(0,0,0,0.7);--folders-hover-color:#fff;--folders-hover-bg-color:rgba(0,0,0,0.5);--folders-drop-color:#fff;--folders-drop-bg-color:rgba(0,0,0,0.5);/* SETTINGS */
	--settings-menu-color:#fff;--settings-menu-selected-color:#fff;--settings-menu-selected-bg-color:rgba(0,0,0,0.5);--settings-menu-hover-color:#fff;--settings-menu-hover-bg-color:rgba(0,0,0,0.5);/* MESSAGE LIST */
	--message-list-toolbar-bg-color:#eee;}.thm-message-list-top-toolbar,.thm-message-list-bottom-toolbar{background-image:linear-gradient(to bottom,#f4f4f4,#dfdfdf) !important;background-repeat:repeat-x !important;}</style> <link type="image/png" rel="shortcut icon" href="/snappymail/v/2.38.2/static/apple-touch-icon.png"> <link type="image/png" rel="apple-touch-icon" href="/snappymail/v/2.38.2/static/apple-touch-icon.png"> </head> <body id="rl-app" data-admin='0' spellcheck="false"> <div id="rl-loading"> <div id="rl-loading-desc">hộp thư cá nhân</div> <i class="icon-spinner"></i> <noscript><div class="error-desc">Chế độ hỗ trợ JavaScript cần được bật cho ứng dụng này.<br />
Trình duyệt của bạn đang không hỗ trợ JavaScript.<br />
Xin hãy bật chế độ hỗ trợ JavaScript trong cài đặt trình duyệt của bạn và thử lại.<br />
</div></noscript> </div> <div id="rl-loading-error" hidden="">An error occurred.<br>Please refresh the page and try again.<br></div> <div id="rl-BadBrowser" hidden=""> <h1>Trình duyệt của bạn đã quá cũ và hiện không còn được hỗ trợ.</h1> <div class="error-desc">Để sử dụng tất cả những tính năng cho ứng dụng này,<br />
hãy tải và cài đặt một trong những trình duyệt sau:<br />
</div> </div> <div id="rl-NoCookie" hidden=""> <h1>Chức năng hỗ trợ cookie cần được bật cho ứng dụng này.</h1> <div class="error-desc">Trình duyệt của bạn đang không hỗ trợ cookie.
Xin hãy bật chế độ hỗ trợ cookie trong cài đặt trình duyệt của bạn và thử lại.
</div> </div> <div id="rl-content" hidden=""> <div id="rl-left"></div> <div id="rl-right"></div> </div> <div id="rl-popups"></div> <template id="CheckboxComponent"><label class="e-component e-checkbox material-design" data-bind="css: { 'disabled': !enable() }"> <div> <input type="checkbox" value="1" data-bind="checked: value, enable: enable, attr: {name: name}"> <div role="checkbox"></div> </div> <!-- ko if: label --> <span data-bind="attr: {'data-i18n': label}"></span> <!-- /ko --> </label> </template><template id="SelectComponent"><div class="e-component"> <select data-bind="options: options, value: value, optionsText: optionsText, optionsValue: optionsValue, css: className, optionsAfterRender: defaultOptionsAfterRender"></select> <!-- ko if: label --> <span data-bind="attr: {'data-i18n': label}"></span> <!-- /ko --> <!-- ko if: trigger --> <span data-bind="saveTrigger: trigger"></span> <!-- /ko --> </div> </template><template id="Login"><div class="descWrapper" data-bind="visible: '' !== loadingDesc, text: loadingDesc"></div> <div class="alert" data-bind="hidden: !submitError()" hidden=""> <a href="#" class="close" data-bind="click: hideError">×</a> <span data-bind="text: submitError"></span> <p data-bind="visible: '' !== submitErrorAdditional()"> <span data-i18n="GLOBAL/SERVER_MESSAGE"></span>: <!-- ko text: submitErrorAdditional --><!-- /ko --> </p> </div> <form action="#/"  spellcheck="false" method="POST" data-bind="submit: submitForm, css: {'errorAnimated': formError, 'submitting': submitRequest()}"> <div class="controls" data-bind="css: {'error': emailError}"> <span class="fontastic">✉</span> <input name="Email" required="" type="text" class="input-block-level" pattern="[^@\s]+(@[^\s]+)?" inputmode="email" autofocus="" autocomplete="email" autocorrect="off" autocapitalize="off" data-bind="textInput: email, disable: submitRequest" data-i18n="[placeholder]GLOBAL/EMAIL"> </div> <div class="controls" data-bind="css: {'error': passwordError}"> <span class="fontastic">🔑</span> <input name="Password" required="" type="password" class="input-block-level" autocomplete="current-password" autocorrect="off" autocapitalize="off" data-bind="textInput: password, disable: submitRequest" data-i18n="[placeholder]GLOBAL/PASSWORD"> </div> <div id="plugin-Login-BottomControlGroup"></div> <div class="controls" style="display: flex"> <div class="e-checkbox" tabindex="0" data-bind="toggle: signMe"> <i role="checkbox" class="fontastic" data-bind="text: signMe() ? '☑' : '☐'"></i> <span data-i18n="LOGIN/LABEL_SIGN_ME"></span> </div> <div class="language-buttons"> <a href="#" class="language-button fontastic" data-bind="visible: allowLanguagesOnLogin, click: selectLanguage, css: { 'icon-spinner' : langRequest }" data-i18n="[title]POPUPS_LANGUAGES/TITLE_LANGUAGES"> 🌍 </a> </div> </div> <div> <button class="btn btn-large buttonLogin" data-bind="command: submitCommand" data-i18n="LOGIN/BUTTON_SIGN_IN"></button> </div> </form> </template><template id="MailFolderList"><div class="b-folders g-ui-user-select-none"> <div class="b-toolbar btn-toolbar"> <a class="btn buttonCompose" data-bind="click: composeClick, css: {'btn-warning': composeInEdit, 'btn-success': !composeInEdit()}" data-i18n="[title]FOLDER_LIST/BUTTON_NEW_MESSAGE"> <i class="icon-paper-plane"></i> <span class="buttonComposeText" data-i18n="FOLDER_LIST/BUTTON_NEW_MESSAGE"></span> </a> <a class="btn buttonContacts fontastic" data-bind="visible: allowContacts, click: contactsClick" data-i18n="[title]GLOBAL/CONTACTS">📇</a> </div> <div class="b-content"> <ul class="b-folders-system" data-bind="foreach: systemFolders"> <li> <a data-bind="dropmessages: $data, css: { 'selected': selected, 'selectable': selectable, 'anim-action-class': actionBlink, 'is-flagged': isFlagged }, attr: { 'data-icon': icon, 'data-unread': unreadCount }"> <!-- ko text: localName --><!-- /ko --> <!-- ko if: isInbox --> <span class="flag-icon fontastic"></span> <!-- /ko --> </a> </li> </ul> <hr> <div class="search-input-wrp" data-bind="visible: foldersFilterVisible"> <input type="search" id="folderSearchInput" data-bind="textInput: foldersFilter" data-i18n="[placeholder]GLOBAL/SEARCH"> <a data-bind="click: clearFolderSearch, visible: foldersFilter">✕</a> </div> <div class="e-checkbox" tabindex="0" data-bind="toggle: filterUnseen"> <i role="checkbox" class="fontastic" data-bind="text: filterUnseen() ? '☑' : '☐'"></i> <span data-i18n="SEARCH/UNSEEN"></span> </div> <ul class="b-folders-user" data-bind="css: {unreadOnly: filterUnseen}, template: { name: 'MailFolderListItem', foreach: folderListVisible }"></ul> <div class="move-action-content-wrapper" data-bind="visible: moveAction"></div> </div> <div class="b-footer btn-toolbar"> <div class="btn-group"> <a class="btn fontastic toggleLeft" data-bind="click: toggleLeftPanel"></a> </div> <div class="btn-group hide-on-panel-disabled"> <a class="btn icon-folder-add" data-bind="click: createFolder" data-i18n="[title]POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></a> <a class="btn fontastic" data-bind="click: configureFolders" data-i18n="[title]SETTINGS_LABELS/FOLDERS">⚙</a> </div> </div> </div> </template><template id="MailFolderListItem"><li> <a data-bind="dropmessages: $data,    css: { 'selected': selected() && !isSystemFolder(), 'system': isSystemFolder, 'selectable': canBeSelected, 'unread-sub': hasUnreadInSub, 'anim-action-class': actionBlink },    attr: { 'data-unread': unreadCount, href: href }"> <i data-bind="css: collapsedCss()"></i> <!-- ko text: name --><!-- /ko --> </a> <!-- ko if: hasVisibleSubfolders --> <ul data-bind="template: { name: 'MailFolderListItem', foreach: visibleSubfolders }, css: { 'collapsed': collapsed() }"></ul> <!-- /ko --> </li> </template><template id="MailMessageList"><div class="btn-toolbar" data-bind="css: {'hasChecked':checkAll}"> <a class="btn btn-thin fontastic toggleLeft"></a> <a class="btn buttonCompose onCheckedHide" data-bind="click: composeClick, css: {'btn-warning': composeInEdit, 'btn-success': !composeInEdit()}" data-i18n="[title]FOLDER_LIST/BUTTON_NEW_MESSAGE"> <i class="icon-paper-plane"></i> </a> <a class="btn onCheckedHide" data-bind="click: reload" data-i18n="[title]MESSAGE_LIST/BUTTON_RELOAD"> <i class="icon-spinner not-animated"></i> </a> <a href="#" tabindex="-1" class="btn onCheckedShow" data-bind="command: moveCommand" data-i18n="[title]GLOBAL/MOVE_TO"> <i class="icon-copy visible-on-ctrl-btn"></i> <i class="fontastic hidden-on-ctrl-btn">📁</i> </a> <div class="btn-group onCheckedShow"> <a class="btn fontastic" data-bind="visible: archiveAllowed, command: archiveCommand" data-i18n="[title]GLOBAL/TO_ARCHIVE">🗄</a> <a class="btn fontastic" data-bind="visible: canMarkAsSpam, command: spamCommand" data-i18n="[title]GLOBAL/TO_SPAM">⚠</a> <a class="btn" data-bind="visible: isSpamFolder, command: notSpamCommand" data-i18n="[title]GLOBAL/NOT_SPAM"> <i class="icon-check-mark-circle-two"></i> </a> <a class="btn fontastic" data-bind="command: deleteCommand" data-i18n="[title]GLOBAL/DELETE">🗑</a> <!-- <a class="btn fontastic" data-bind="command: undeleteCommand, hidden: hideDeleted" data-i18n="[title]GLOBAL/UNDELETE" style="transform:rotate(-180deg)">🗑</a> --> </div> <div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true"> <a id="more-list-dropdown-id" class="btn dropdown-toggle fontastic" href="#" tabindex="-1" data-i18n="[title]GLOBAL/MORE">☰</a> <menu class="dropdown-menu" role="menu" aria-labelledby="more-list-dropdown-id"> <li role="presentation" data-bind="click: listUnsetSeen, css: {'disabled': !messageList.hasCheckedOrSelected()}"> <a href="#" tabindex="-1" data-icon="" data-i18n="MESSAGE_LIST/MENU_UNSET_SEEN"></a> </li> <li role="presentation" data-bind="click: listSetSeen, css: {'disabled': !messageList.hasCheckedOrSelected()}"> <a href="#" tabindex="-1" data-icon="" data-i18n="MESSAGE_LIST/MENU_SET_SEEN"></a> </li> <li role="presentation" data-bind="click: listSetFlags, css: {'disabled': !messageList.hasCheckedOrSelected()}"> <a href="#" tabindex="-1" data-icon="★" data-i18n="MESSAGE_LIST/MENU_SET_FLAG"></a> </li> <li role="presentation" data-bind="click: listUnsetFlags, css: {'disabled': !messageList.hasCheckedOrSelected()}"> <a href="#" tabindex="-1" data-icon="☆" data-i18n="MESSAGE_LIST/MENU_UNSET_FLAG"></a> </li> <li role="presentation" data-bind="click: listSetAllSeen, css: {'disabled': !messageList().length}"> <a href="#" tabindex="-1" data-icon="" data-i18n="MESSAGE_LIST/MENU_SET_ALL_SEEN"></a> </li> <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: downloadAttachCommand, visible: downloadAsZipAllowed"> <a href="#" tabindex="-1" data-icon="📦" data-i18n="MESSAGE_LIST/DOWNLOAD_ALL_ATTACHMENTS"></a> </li> <li role="presentation" data-bind="command: downloadZipCommand, visible: downloadAsZipAllowed"> <a href="#" tabindex="-1" data-icon="💾" data-i18n="MESSAGE/LINK_DOWNLOAD_AS_ZIP"></a> </li> <li class="dividerbar" role="presentation" data-bind="command: moveCommand"> <a href="#" tabindex="-1" data-icon="📁" data-i18n="GLOBAL/MOVE_TO"></a> </li> <li class="presentation" role="presentation" data-bind="command: copyCommand"> <a href="#" tabindex="-1" data-icon="&#xE068;" data-i18n="GLOBAL/COPY_TO"></a> </li> <li role="presentation" data-bind="visible: archiveAllowed, command: archiveCommand"> <a href="#" tabindex="-1" data-icon="🗄" data-i18n="GLOBAL/TO_ARCHIVE">🗄</a> </li> <li role="presentation" data-bind="visible: canMarkAsSpam, command: spamCommand"> <a href="#" tabindex="-1" data-icon="⚠" data-i18n="GLOBAL/SPAM"></a> </li> <li role="presentation" data-bind="visible: isSpamFolder, command: notSpamCommand"> <a href="#" tabindex="-1" data-icon="" data-i18n="GLOBAL/NOT_SPAM"></a> </li> <li role="presentation" data-bind="command: deleteCommand"> <a href="#" tabindex="-1" data-icon="🗑" data-i18n="GLOBAL/DELETE"></a> </li> <li role="presentation" data-bind="command: undeleteCommand, hidden: hideDeleted"> <a href="#" tabindex="-1" data-icon="🗑" data-i18n="GLOBAL/UNDELETE" class="rotate"></a> </li> <li role="presentation" data-bind="visible: allowDangerousActions, command: deleteWithoutMoveCommand"> <a href="#" tabindex="-1" data-icon="🗑" data-i18n="MESSAGE_LIST/BUTTON_DELETE_WITHOUT_MOVE"></a> </li> <li role="presentation" data-bind="visible: allowDangerousActions, click: clear"> <a href="#" tabindex="-1" data-icon="🔥" data-i18n="MESSAGE_LIST/BUTTON_EMPTY_FOLDER"></a> </li> </menu> </div> <div class="btn-group dropdown onCheckedHide" data-bind="visible: !sortSupported()"> <div id="no-sort-list" class="btn fontastic" data-i18n="[title]MESSAGE_LIST/NO_SORT">✖⬇</div> </div> <div class="btn-group dropdown onCheckedHide" data-bind="visible: sortSupported(), registerBootstrapDropdown: true"> <a id="sort-list-dropdown-id" class="btn dropdown-toggle fontastic" href="#" tabindex="-1" data-i18n="[title]MESSAGE_LIST/SORT" data-bind="text: sortText">⬇</a> <menu class="dropdown-menu" role="menu" aria-labelledby="sort-list-dropdown-id"> <li role="presentation" data-sort="" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="📅⬇" data-i18n="MESSAGE_LIST/SORT_DATE_DESC"></a> </li> <li role="presentation" data-sort="DATE" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="📅⬆" data-i18n="MESSAGE_LIST/SORT_DATE_ASC"></a> </li> <li class="dividerbar" role="presentation" data-sort="FROM" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="@⬇" data-i18n="MESSAGE_LIST/SORT_FROM_ASC"></a> </li> <li role="presentation" data-sort="REVERSE FROM" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="@⬆" data-i18n="MESSAGE_LIST/SORT_FROM_DESC"></a> </li> <li class="dividerbar" role="presentation" data-sort="REVERSE SIZE" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="✉⬇" data-i18n="MESSAGE_LIST/SORT_SIZE_DESC"></a> </li> <li role="presentation" data-sort="SIZE" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="✉⬆" data-i18n="MESSAGE_LIST/SORT_SIZE_ASC"></a> </li> <li class="dividerbar" role="presentation" data-sort="SUBJECT" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="𝐒⬇" data-i18n="MESSAGE_LIST/SORT_SUBJECT_ASC"></a> </li> <li role="presentation" data-sort="REVERSE SUBJECT" data-bind="click: changeSort"> <a href="#" tabindex="-1" data-icon="𝐒⬆" data-i18n="MESSAGE_LIST/SORT_SUBJECT_DESC"></a> </li> </menu> </div> </div> <div class="messageList g-ui-user-select-none" data-bind="css: {'hideMessageListCheckbox': !useCheckboxesInList() }"> <div class="second-toolbar thm-message-list-top-toolbar"> <i class="checkboxCheckAll fontastic" data-bind="text: checkAll() ? (isIncompleteChecked() ? '▣' : '☑') : '☐'"></i> <div class="search-input-wrp"> <input type="search" class="inputSearch" tabindex="-1" placeholder="Search" autocorrect="off" autocapitalize="off" data-i18n="[placeholder]GLOBAL/SEARCH" data-bind="textInput: inputSearch, hasfocus: focusSearch"> <a class="closeSearch" data-bind="click: cancelSearch, visible: messageListSearchDesc()">×</a> </div> <a class="btn buttonMoreSearch" data-bind="click: advancedSearchClick">▼</a> </div> <div class="b-content"> <div class="listThreadUidDesc" data-bind="visible: messageList.threadUid(), click: cancelThreadUid" data-icon="⬅" data-i18n="MESSAGE_LIST/BACK_TO_MESSAGE_LIST"></div> <div class="listSearchDesc" data-bind="visible: messageListSearchDesc(), text: messageListSearchDesc"></div> <div class="listDragOver" data-bind="css: {'viewAppendArea': dragOver() && !messageList.error() && !popupVisibility(), 'dragOverEnter': dragOverEnter }" data-icon="⬇" data-i18n="MESSAGE_LIST/PUT_MESSAGE_HERE"></div> <div class="listClear" data-bind="visible: clearListIsVisible()"> <a href="#" class="g-ui-link" data-i18n="MESSAGE_LIST/BUTTON_EMPTY_FOLDER" data-bind="click: clear"></a> </div> <div class="listError error" data-bind="visible: !dragOver() && messageList.error(), text: messageList.error"></div> <div class="listEmptyMessage" data-bind="visible: listEmptyMessage(), text: listEmptyMessage()"></div> <div class="listLoading" data-bind="visible: !dragOver() && !messageList().length && messageList.isLoading() && !messageList.error()"> <i class="icon-spinner"></i> <span data-i18n="GLOBAL/LOADING"></span> </div> <!-- ko if: listGrouped --> <div class="messageListPlace" data-bind="dragmessages: 1, i18nUpdate: groupedList, foreach: groupedList" draggable="true"> <div class="groupLabel" data-bind="text: label, click: $root.groupSearch" data-i18n="[title]GLOBAL/SEARCH"></div> <!-- ko foreach: messages --> <div class="messageListItem" data-bind="css: lineAsCss(), attr: {title: preview}"> <div class="messageCheckbox"> <div class="checkboxMessage fontastic" data-bind="text: checked() ? '☑' : '☐'"></div> </div><div> <div class="flagParent fontastic"></div> <div class="senderParent" data-bind="attr: {title: senderClearEmailsString}, text: senderEmailsString"></div> <div class="subjectParent" data-bind="text: subject"></div> <div class="threads-len" data-bind="visible: 1 < threadsLen(), text: threadsLenText(), attr: {'data-unseen': threadUnseenLen() || null}"></div> <div class="attachmentParent"> <i data-bind="css: attachmentIconClass"></i> </div> <div class="sizeParent" data-bind="text: friendlySize()"></div> <time data-bind="attr:{'data-time-format':$root.timeFormat()}, time: dateTimestamp"></time> </div> </div> <!-- /ko --> </div> <!-- /ko --> <!-- ko ifnot: listGrouped --> <div class="messageListPlace" data-bind="dragmessages: 1, foreach: messageList" draggable="true"> <div class="messageListItem" data-bind="css: lineAsCss(), attr:{title:preview}"> <div class="messageCheckbox"> <div class="checkboxMessage fontastic" data-bind="text: checked() ? '☑' : '☐'"></div> </div><div data-bind="attr:{style:indent()}, css:{reply:indent()}"> <div class="flagParent fontastic"></div> <div class="senderParent" data-bind="attr: {title: senderClearEmailsString}, text: senderEmailsString"></div> <div class="subjectParent" data-bind="text: subject"></div> <div class="threads-len" data-bind="visible: 1 < threadsLen(), text: threadsLenText(), attr: {'data-unseen': threadUnseenLen() || null}"></div> <div class="attachmentParent"> <i data-bind="css: attachmentIconClass"></i> </div> <div class="sizeParent" data-bind="text: friendlySize()"></div> <time data-time-format="AUTO" data-bind="time: dateTimestamp"></time> </div> </div> </div> <!-- /ko --> <div id="messagesDragImage"><span class="text"></span> <span class="fontastic">✉</span></div> </div> <div class="b-footer thm-message-list-bottom-toolbar"> <!-- ko if: userUsageProc() --> <span data-bind="attr: { title: quotaTooltip() }" class="e-quota"> <!-- ko text: userUsageProc --><!-- /ko -->% </span> <!-- /ko --> <!-- ko template: { name: 'Paginator', data: messageListPaginator } --><!-- /ko --> </div> </div> </template><template id="MailMessageView"><div class="top-toolbar g-ui-user-select-none btn-toolbar"> <div class="btn-group" data-i18n="[title]GLOBAL/CLOSE"> <a class="btn buttonClose fontastic" data-bind="click: closeMessage">✖</a> </div> <div class="btn-group" data-bind="visible: isDraftFolder()" data-i18n="[title]MESSAGE/BUTTON_EDIT"> <a class="btn btn-success buttonEdit fontastic" data-bind="command: editCommand">🖉</a> </div> <div class="btn-group"> <a class="btn fontastic" data-bind="visible: archiveAllowed, command: archiveCommand" data-i18n="[title]GLOBAL/TO_ARCHIVE">🗄</a> <a class="btn fontastic" data-bind="visible: canMarkAsSpam , command: spamCommand" data-i18n="[title]GLOBAL/TO_SPAM">⚠</a> <a class="btn" data-bind="visible: isSpamFolder, command: notSpamCommand" data-i18n="[title]GLOBAL/NOT_SPAM"> <i class="icon-check-mark-circle-two"></i> </a> <a class="btn fontastic" data-bind="visible: !canBeUndeleted(), command: deleteCommand" data-i18n="[title]GLOBAL/DELETE">🗑</a> <a class="btn fontastic" data-bind="visible: canBeUndeleted, command: undeleteCommand" data-i18n="[title]GLOBAL/UNDELETE"><div class=btn-rotate>🗑</div></a> </div> <div class="btn-group"> <a class="btn btn-thin buttonUp fontastic" data-bind="command: goUpCommand">❮</a> <a class="btn btn-thin buttonDown fontastic" data-bind="command: goDownCommand">❯</a> </div> </div> <div class="messageView"> <div class="b-message-view-backdrop" data-bind="visible: moveAction"> <div class="backdrop-message" data-icon="📁" data-i18n="MESSAGE/MESSAGE_VIEW_MOVE_DESC"></div> </div> <div class="b-message-view-checked-helper" data-bind="visible: !message() && '' === messageError() && hasCheckedMessages(), text: printableCheckedMessageCount()"></div> <div class="b-message-view-desc error" data-bind="visible: !message() && '' !== messageError() && !hasCheckedMessages(), text: messageError()"> </div> <div class="b-message-view-desc" data-i18n="MESSAGE/MESSAGE_VIEW_DESC" data-bind="visible: !message() && '' === messageError() && !hasCheckedMessages()"> </div> <div class="b-message" data-bind="visible: message, i18nUpdate: message, css: message()?.lineAsCss(0)"> <div class="message-fixed-button-toolbar"> <a class="btn btn-success buttonEdit fontastic hide-mobile" data-bind="visible: isDraftFolder(), command: editCommand">🖉</a> <div class="btn-group" style="margin-right: -8px; display: inline;"> <span data-bind="visible: canBeRepliedOrForwarded"> <a class="btn btn-thin btn-transparent buttonReply fontastic" data-bind="visible: 1 == msgDefaultAction(), command: replyCommand" data-i18n="[title]MESSAGE/BUTTON_REPLY">←</a> <a class="btn btn-thin btn-transparent buttonReplyAll fontastic" data-bind="visible: 2 == msgDefaultAction(), command: replyAllCommand" data-i18n="[title]MESSAGE/BUTTON_REPLY_ALL">↞</a> </span> <div class="btn-group" data-bind="registerBootstrapDropdown: true, initDom: actionsMenu" style="display: inline-block"> <a class="btn btn-thin btn-transparent dropdown-toggle fontastic" id="more-view-dropdown-id" href="#" tabindex="-1">☰</a> <menu class="dropdown-menu right-edge" role="menu" aria-labelledby="more-view-dropdown-id"> <div data-bind="visible: !isDraftFolder()"> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: replyCommand" data-icon="←" data-i18n="MESSAGE/BUTTON_REPLY"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: replyAllCommand" data-icon="↞" data-i18n="MESSAGE/BUTTON_REPLY_ALL"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: forwardCommand" data-icon="→" data-i18n="MESSAGE/BUTTON_FORWARD"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: forwardAsAttachmentCommand" data-icon="⥅" data-i18n="MESSAGE/BUTTON_FORWARD_AS_ATTACHMENT"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: editAsNewCommand" data-icon="🖉" data-i18n="MESSAGE/BUTTON_EDIT_AS_NEW"></a> </li> </div> <div class="dividerbar"> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: setUnseen" data-icon=" " data-i18n="MESSAGE_LIST/MENU_UNSET_SEEN"></a> </li> <li role="presentation" data-bind="visible: archiveAllowed"> <a href="#" tabindex="-1" data-bind="command: archiveCommand" data-icon="🗄" data-i18n="GLOBAL/TO_ARCHIVE"></a> </li> <li role="presentation" data-bind="visible: canMarkAsSpam"> <a href="#" tabindex="-1" data-bind="command: spamCommand" data-icon="⚠" data-i18n="GLOBAL/TO_SPAM"></a> </li> <li role="presentation" data-bind="visible: isSpamFolder"> <a href="#" tabindex="-1" data-bind="command: notSpamCommand"> <i class="icon-check-mark-circle-two"></i> <span data-i18n="GLOBAL/NOT_SPAM"></span> </a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: moveCommand" data-icon="📁" data-i18n="GLOBAL/MOVE_TO"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: copyCommand" data-icon="&#xE068;" data-i18n="GLOBAL/COPY_TO"></a> </li> <li role="presentation" data-bind="visible: !canBeUndeleted()"> <a href="#" tabindex="-1" data-bind="command: deleteCommand" data-icon="🗑" data-i18n="GLOBAL/DELETE"></a> </li> <li role="presentation" data-bind="visible: canBeUndeleted"> <a href="#" tabindex="-1" data-bind="command: undeleteCommand" data-icon="🗑" data-i18n="GLOBAL/UNDELETE" class="rotate"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="command: deleteWithoutMoveCommand" data-icon="🗑" data-i18n="MESSAGE_LIST/BUTTON_DELETE_WITHOUT_MOVE"></a> </li> <li class="dividerbar" role="presentation" data-bind="visible: firstUnsubsribeLink"> <a target="_blank" href="#" tabindex="-1" data-bind="attr: { href: firstUnsubsribeLink }" data-icon="✖" data-i18n="MESSAGE/BUTTON_UNSUBSCRIBE"></a> </li> </div> <div data-bind="with: message" class="dividerbar"> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: printMessage" data-icon="🖨" data-i18n="MESSAGE/MENU_PRINT"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: $root.toggleFullScreen"> <i data-bind="css: { 'icon-arrows-out': !$root.fullScreenMode(), 'icon-arrows-in': $root.fullScreenMode }"></i> <span data-i18n="SHORTCUTS_HELP/LABEL_FULLSCREEN_TOGGLE"></span> </a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: popupMessage" data-icon="⧉" data-i18n="MESSAGE/BUTTON_IN_NEW_WINDOW"></a> </li> <li role="presentation" data-bind="visible: html() && !isHtml()"> <a href="#" tabindex="-1" data-bind="click: viewHtml" data-icon="👁" data-i18n="MESSAGE/HTML_VIEW"></a> </li> <li role="presentation" data-bind="visible: isHtml()"> <a href="#" tabindex="-1" data-bind="click: viewPlain" data-icon="👁" data-i18n="MESSAGE/PLAIN_VIEW"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: swapColors" data-icon="🎨" data-i18n="MESSAGE/SWAP_COLORS"></a> </li> <li class="dividerbar" role="presentation"> <a target="_blank" href="#" tabindex="-1" data-bind="attr: { href: viewRaw() }"> <i class="icon-file-code"></i> <span data-i18n="MESSAGE/MENU_VIEW_ORIGINAL"></span> </a> </li> <li role="presentation"> <a target="_blank" href="#" tabindex="-1" data-bind="attr: { href: downloadLink() }" data-icon="📥" data-i18n="MESSAGE/MENU_DOWNLOAD_ORIGINAL"></a> </li> </div> </menu> </div> </div> </div> <div class="messageItemHeader" data-bind="if: message, i18nUpdate: message"> <div class="subjectParent"> <span class="infoParent g-ui-user-select-none fontastic" data-bind="click: toggleFullInfo">ℹ</span> <span class="flagParent g-ui-user-select-none flagOff fontastic" data-bind="text: message().isFlagged() ? '★' : '☆', css: {flagOn: message().isFlagged(), flagOff: !message().isFlagged()}"></span> <span class="subject" data-bind="text: message().subject"></span> <a href="#" class="close" data-bind="click: closeMessage" style="margin-top: -8px;">×</a> </div> <div class="informationShort"> <span class="from" data-bind="html: viewFromShort, attr:{ title: message().from }"></span> <i class="fontastic" data-bind="text: dkimIcon, css: dkimIconClass, attr:{ title: dkimTitle }"></i> </div> </div> <div id="messageItem"> <div class="messageItemHeader" data-bind="if: message, i18nUpdate: message"> <div data-bind="hidden: showFullInfo"> <time class="date" data-time-format="FULL" data-bind="visible: 0 < message().dateTimestamp(), time: message().dateTimestamp()"></time> <div class="informationShortWrp"> <div class="informationShort" data-bind="visible: message().to.length"> <span data-i18n="GLOBAL/TO"></span>: <span data-bind="text: message().to"></span> </div> <div class="informationShort" data-bind="visible: message().cc.length"> <span data-i18n="GLOBAL/CC"></span>: <span data-bind="text: message().cc"></span> </div> </div> <div class="informationShort" data-bind="visible: message().spamResult"> <span data-i18n="MESSAGE/SPAM_SCORE"></span>: <meter min="0" max="100" optimum="0" low="33" high="66" data-bind="value: message().spamScore, attr:{ title: message().spamStatus() }"></meter> </div> </div> <div class="informationFull" data-bind="visible: showFullInfo, with: message"> <table> <tr data-bind="visible: from.length"> <td data-i18n="GLOBAL/FROM"></td> <td data-bind="text: from"></td> </tr> <tr data-bind="visible: to.length"> <td data-i18n="GLOBAL/TO"></td> <td data-bind="text: to"></td> </tr> <tr data-bind="visible: cc.length"> <td data-i18n="GLOBAL/CC"></td> <td data-bind="text: cc"></td> </tr> <tr data-bind="visible: bcc.length"> <td data-i18n="GLOBAL/BCC"></td> <td data-bind="text: bcc"></td> </tr> <tr data-bind="visible: replyTo.length"> <td data-i18n="GLOBAL/REPLY_TO"></td> <td data-bind="text: replyTo"></td> </tr> <tr data-bind="visible: dateTimestamp"> <td data-i18n="MESSAGE/LABEL_DATE"></td> <td> <time data-time-format="FULL" data-bind="time: dateTimestamp"></time>   (<time data-time-format="FROMNOW" data-bind="time: dateTimestamp"></time>) </td> </tr> <tr data-bind="visible: spamResult"> <td data-i18n="GLOBAL/SPAM"></td> <td data-bind="text: spamStatus()"></td> </tr> <tr data-bind="visible: friendlySize()"> <td data-i18n="POPUPS_FILTER/SELECT_FIELD_SIZE"></td> <td class="size" data-bind="text: friendlySize()"></td> </tr> </table> </div> <div class="hasVirus" data-bind="visible: message().hasVirus" data-i18n="MESSAGE/HAS_VIRUS_WARNING"></div> <!-- ko if: tagsAllowed --> <div class="messageTags"> <span data-i18n="MESSAGE/TAGS"></span>: <span class="messageAssignedTags" data-bind="html: tagsToHTML"></span> <div class="btn-group" data-bind="registerBootstrapDropdown: true" style="display: inline-block"> <a class="btn btn-thin btn-transparent dropdown-toggle fontastic" id="tags-dropdown-id" href="#" tabindex="-1">🏷</a> <menu class="dropdown-menu right-edge" role="menu" aria-labelledby="tags-dropdown-id"> <div data-bind="foreach: message().tagOptions()"> <li role="presentation"> <a href="#" tabindex="-1" data-icon="☐" data-bind="click: toggle, text: label, attr:{ title: value, class: css, 'data-icon': checked ? '☑' : '☐' }"></a> </li> </div> <li role="presentation" class="dividerbar"> <a href="#" tabindex="-1" data-icon="✚" data-bind="click: newTag" data-i18n="MESSAGE/NEW_TAG"></a> </li> </menu> </div> </div> <!-- /ko --> </div> <div tabindex="0" data-bind="hasfocus: messageDomFocused"> <div class="loading" data-bind="visible: messageLoadingThrottle"> <i class="icon-spinner"></i> <span data-i18n="GLOBAL/LOADING"></span> </div> <div data-bind="hidden: messageLoadingThrottle"> <div class="bodySubHeader" data-bind="if: message, i18nUpdate: message"> <div class="readReceipt" data-bind="visible: askReadReceipt, click: readReceipt" data-icon="✉" data-i18n="MESSAGE/BUTTON_NOTIFY_READ_RECEIPT"></div> <details class="attachmentsPlace" data-bind="visible: hasAttachments, css: {'selection-mode' : showAttachmentControls}, attr: { open: hasAttachments }"> <summary data-i18n="MESSAGE/PRINT_LABEL_ATTACHMENTS"></summary> <!-- ko ifnot: simpleAttachmentsList --> <ul class="attachmentList" data-bind="foreach: listAttachments"> <li class="attachmentItem" draggable="true" data-bind="event: { dragstart: eventDragStart }, attr: { title: fileName }, css: {checked: checked}"> <div class="attachmentIcon" data-bind="css: { hasPreview: hasPreview(), hasPreplay: hasPreplay(), isImage: isImage() }, attr: { style: thumbnailStyle() }"> <i class="hidePreview iconMain" data-bind="css: iconClass()"></i> <div class="showPreview"> <a data-bind="css: {attachmentImagePreview: isImage()}, attr: { title: fileName, href: linkPreviewMain() }" target="_blank"> <i class="iconMain" data-bind="visible: !hasThumbnail(), css: iconClass()"></i> <div class="iconPreview fontastic">👁</div> </a> </div> </div> <div class="attachmentNameParent"> <div class="attachmentName" data-bind="text: fileName"></div> <div class="attachmentSize" data-bind="text: friendlySize()"></div> </div> <div class="checkboxAttachment fontastic" data-bind="visible: download, text: checked() ? '☑' : '☐', click: toggleChecked"></div> </li> </ul> <!-- /ko --> <!-- ko if: simpleAttachmentsList --> <ul class="attachmentListSimple" data-bind="foreach: listAttachments"> <li class="attachmentItem" data-bind="attr: { title: fileName }, css: {checked: checked}"> <span class="attachmentName" data-bind="text: fileName"></span> <i class="checkboxAttachment fontastic" data-bind="visible: download, text: checked() ? '☑' : '☐', click: toggleChecked"></i> </li> </ul> <!-- /ko --> <i class="fontastic controls-handle" data-bind="visible: allowAttachmentControls, click: toggleAttachmentControls">⚙</i> <div class="attachmentsControls" data-bind="visible: showAttachmentControls"> <span data-bind="visible: downloadAsZipAllowed"> <i class="fontastic iconcolor-red" data-bind="visible: downloadAsZipError">✖</i> <i class="icon-file-archive" data-bind="visible: !downloadAsZipError(), css: {'icon-file-archive': !downloadAsZipLoading(), 'icon-spinner': downloadAsZipLoading()}"></i> <span class="g-ui-link" data-bind="click: downloadAsZip" data-i18n="MESSAGE/LINK_DOWNLOAD_AS_ZIP"></span> </span> </div> </details> <div class="btn-toolbar showImages" data-bind="visible: message().hasImages()"> <div class="btn" data-bind="click: showImages" data-icon="🖼" data-i18n="MESSAGE/BUTTON_SHOW_IMAGES"></div> <div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true, visible: showWhitelistOptions" style="display: inline-block"> <a class="btn dropdown-toggle" id="whitelist-dropdown-id" data-icon="🖼" href="#" tabindex="-1"><span data-i18n="SETTINGS_GENERAL/IMAGES_WHITELIST"></span> ▼</a> <menu class="dropdown-menu" role="menu" aria-labelledby="whitelist-dropdown-id"> <!-- ko foreach: message().whitelistOptions() --> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: $root.whitelistText, text: $data"></a> </li> <!-- /ko --> </menu> </div> </div> <div class="btn-toolbar" data-bind="visible: message().hasTracking()"> <div class="btn" data-bind="visible: !nowTracking(), click: showTracking" data-icon="🔗" data-i18n="MESSAGE/ENABLE_TRACKING_LINKS"></div> <div class="alert" data-bind="visible: nowTracking" data-i18n="MESSAGE/TRACKING_ENABLED" style="margin:0"></div> </div> <div data-bind="visible: message().pgpEncrypted()"> <div class="crypto-control encrypted" data-bind="css: {success: message().pgpDecrypted()}"> <span data-icon="🔒" data-i18n="OPENPGP/ENCRYPTED_MESSAGE"></span> <button class="btn" data-bind="visible: pgpSupported, click: pgpDecrypt" data-i18n="CRYPTO/DECRYPT"></button> <div class="alert-error" data-icon="⚠" data-bind="visible: message().pgpEncrypted()?.error, text: message().pgpEncrypted()?.error"></div> </div> </div> <div data-bind="visible: message().pgpSigned()"> <div class="crypto-control signed" data-bind="css: {success: true === message().pgpSigned()?.success, error: false === message().pgpSigned()?.success}"> <span data-icon="✍" data-i18n="OPENPGP/SIGNED_MESSAGE"></span> <button class="btn" data-bind="visible: pgpSupported, click: pgpVerify" data-i18n="CRYPTO/VERIFY"></button> <div data-icon="⚠" data-bind="visible: message().pgpSigned()?.error, text: message().pgpSigned()?.error"></div> </div> </div> <div data-bind="visible: message().smimeEncrypted()"> <div class="crypto-control encrypted" data-bind="css: {success: message().smimeDecrypted()}"> <span data-icon="🔒" data-i18n="SMIME/ENCRYPTED_MESSAGE"></span> <button class="btn" data-bind="click: smimeDecrypt" data-i18n="CRYPTO/DECRYPT"></button> <div class="alert-error" data-icon="⚠" data-bind="visible: message().smimeEncrypted()?.error, text: message().smimeEncrypted()?.error"></div> </div> </div> <div data-bind="visible: message().smimeSigned()"> <div class="crypto-control signed" data-bind="css: {success: true === message().smimeSigned()?.success, error: false === message().smimeSigned()?.success}"> <span data-icon="✍" data-i18n="SMIME/SIGNED_MESSAGE"></span> <button class="btn" data-bind="click: smimeVerify" data-i18n="CRYPTO/VERIFY"></button> </div> </div> </div> <div class="bodyText" dir="auto"></div> </div> </div> </div> </div> </div> </template><template id="PopupsAccount"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-bind="visible: isNew" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_ADD_ACCOUNT"></h3> <h3 data-bind="visible: !isNew()" data-i18n="POPUPS_ADD_ACCOUNT/TITLE_UPDATE_ACCOUNT"></h3> </header> <form id="accountform" class="modal-body form-horizontal" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="alert" data-bind="visible: '' !== submitError()"> <a href="#" class="close" data-bind="click: hideError">×</a> <span data-bind="text: submitError"></span> <div data-bind="visible: submitErrorAdditional, text: submitErrorAdditional"></div> </div> <div class="control-group"> <label data-i18n="GLOBAL/EMAIL"></label> <strong style="margin-top: 5px;" data-bind="visible: !isNew(), text: email"></strong> <input name="email" type="text" class="input-xlarge" autofocus="" autocorrect="off" autocapitalize="off" data-bind="visible: isNew, textInput: email, attr: {required: isNew}"> </div> <div class="control-group"> <label data-i18n="GLOBAL/PASSWORD"></label> <input name="password" type="password" class="input-xlarge" autocomplete="new-password" autocorrect="off" autocapitalize="off" data-bind="value: password, attr: {required:isNew}"> </div> <div class="control-group"> <label data-i18n="GLOBAL/NAME"></label> <input name="name" type="text" class="input-xlarge" data-bind="value: name"> </div> </form> <footer> <button form="accountform" class="btn buttonAddAccount"> <i data-bind="visible: isNew, css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i> <span data-bind="visible: isNew" data-i18n="POPUPS_ADD_ACCOUNT/BUTTON_ADD_ACCOUNT"></span> <i data-bind="visible: !isNew(), css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i> <span data-bind="visible: !isNew()" data-i18n="GLOBAL/SAVE"></span> </button> </footer> </template><template id="PopupsAdvancedSearch"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="SEARCH/TITLE_ADV"></h3> </header> <form id="advancedsearchform" class="modal-body form-horizontal" action="#/" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div> <div class="control-group"> <label data-i18n="GLOBAL/FROM"></label> <input type="text" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: from"> </div> <div class="control-group"> <label data-i18n="GLOBAL/TO"></label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: to"> </div> <div class="control-group"> <label data-i18n="GLOBAL/SUBJECT"></label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: subject"> </div> <div class="control-group"> <label data-i18n="SEARCH/TEXT"></label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: text"> </div> <!-- ko if: showKeywords --> <div class="control-group"> <label data-i18n="SEARCH/KEYWORD"></label> <div data-bind="component: { name: 'Select', params: { options: keywords, value: keyword, optionsText: 'label', optionsValue: 'value' } }"></div> </div> <!-- /ko --> </div> <div> <div class="control-group"> <label data-i18n="SEARCH/DATE"></label> <div data-bind="component: { name: 'Select', params: { options: selectedDates, value: selectedDateValue, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group"> <label data-i18n="SEARCH/REPLIED"></label> <div data-bind="component: { name: 'Select', params: { options: repliedOptions, value: repliedValue, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <!-- ko if: showMultisearch --> <div class="control-group"> <label data-i18n="SEARCH/SUBFOLDERS"></label> <div data-bind="component: { name: 'Select', params: { options: selectedTree, value: selectedTreeValue, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <!-- /ko --> <div class="control-group"> <label></label> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SEARCH/UNSEEN', value: unseen } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SEARCH/FLAGGED', value: starred } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SEARCH/HAS_ATTACHMENT', value: hasAttachment } }"></div> </div> </div> </div> </form> <footer> <button form="advancedsearchform" class="btn buttonAdvSearch" data-icon="🔎" data-i18n="GLOBAL/SEARCH"></button> </footer> </template><template id="PopupsCompose"><header class="g-ui-user-select-none" data-bind="css: {loading: saving() || sending()}"> <a class="btn" data-bind="command: sendCommand, tooltipErrorTip: sendErrorDesc, css: {'btn-success': sendButtonSuccess, 'btn-danger': sendError, 'btn-warning': sendSuccessButSaveError }"> <i data-bind="css: {'icon-paper-plane': !sending(), 'icon-spinner': sending()}"></i> <span class="hide-mobile" data-i18n="COMPOSE/BUTTON_SEND"></span> </a> <a class="btn button-save" data-bind="command: saveCommand, tooltipErrorTip: savedErrorDesc, css: {'btn-danger': savedError }"> <i class="fontastic" data-bind="css: {'icon-spinner': saving()}">💾</i> <span class="hide-mobile" data-i18n="GLOBAL/SAVE"></span> </a> <a class="btn btn-danger button-delete fontastic" data-bind="command: deleteCommand">🗑</a> <span class="saved-text hide-mobile" data-bind="text: savedTimeText"></span> <div class="pull-right"> <a class="btn hide-mobile" data-i18n="GLOBAL/BCC" data-bind="visible: !showBcc(), toggle: showBcc"></a> <a class="btn hide-mobile" data-i18n="GLOBAL/CC" data-bind="visible: !showCc(), toggle: showCc"></a> <a class="btn fontastic" data-bind="visible: allowContacts, command: contactsCommand" data-i18n="[title]GLOBAL/CONTACTS">📇</a> <div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true" style="display:inline-block;vertical-align:top"> <a class="btn dropdown-toggle fontastic">☰</a> <menu class="dropdown-menu right-edge" role="menu"> <li data-bind="toggle: showBcc"> <a> <i class="fontastic" data-bind="text: showBcc() ? '☑' : '☐'"></i> <span data-i18n="GLOBAL/BCC"></span> </a> </li> <li data-bind="toggle: showCc"> <a> <i class="fontastic" data-bind="text: showCc() ? '☑' : '☐'"></i> <span data-i18n="GLOBAL/CC"></span> </a> </li> <li data-bind="toggle: showReplyTo"> <a> <i class="fontastic" data-bind="text: showReplyTo() ? '☑' : '☐'"></i> <span data-i18n="GLOBAL/REPLY_TO"></span> </a> </li> <li data-bind="toggle: requestReadReceipt"> <a> <i class="fontastic" data-bind="text: requestReadReceipt() ? '☑' : '☐'"></i> <span data-i18n="COMPOSE/BUTTON_REQUEST_READ_RECEIPT"></span> </a> </li> <li data-bind="toggle: requestDsn"> <a> <i class="fontastic" data-bind="text: requestDsn() ? '☑' : '☐'"></i> <span data-i18n="COMPOSE/BUTTON_REQUEST_DSN"></span> </a> </li> <li data-bind="toggle: requireTLS"> <a> <i class="fontastic" data-bind="text: requireTLS() ? '☑' : '☐'"></i> <span data-i18n="COMPOSE/BUTTON_REQUIRE_TLS"></span> </a> </li> <li data-bind="toggle: markAsImportant"> <a> <i class="fontastic" data-bind="text: markAsImportant() ? '☑' : '☐'"></i> <span data-i18n="COMPOSE/BUTTON_MARK_AS_IMPORTANT"></span> </a> </li> <li data-bind="toggle: doSign, visible: canSign"> <a data-bind="attr:{title: signOptionsText}"> <i class="fontastic" data-bind="text: doSign() ? '☑' : '☐'"></i> <span data-icon="✍" data-i18n="CRYPTO/SIGN"></span> </a> </li> <li data-bind="toggle: doEncrypt, visible: canEncrypt"> <a data-bind="attr:{title: encryptOptionsText}"> <i class="fontastic" data-bind="text: doEncrypt() || 'mailvelope' == viewArea() ? '☑' : '☐'"></i> <span data-icon="🔒" data-i18n="CRYPTO/ENCRYPT"></span> </a> </li> </menu> </div> <a class="minimize-custom" data-bind="click: skipCommand" data-i18n="[title]COMPOSE/BUTTON_MINIMIZE"></a> <a class="close" data-bind="click: doClose" data-i18n="[title]GLOBAL/CANCEL">×</a> </div> </header> <div class="modal-body"> <div class="b-header g-ui-user-select-none"> <table> <tr> <td data-i18n="GLOBAL/FROM"></td> <td> <!-- ko if: allowIdentities --> <input type="text" data-bind="textInput: from" style="width:calc(100% - 2em)"> <!-- /ko --> <span class="e-identity" data-bind="hidden: allowIdentities, text: from"></span> <!-- ko if: 1 < identitiesOptions().length --> <div class="dropdown" style="display:inline-block" data-bind="registerBootstrapDropdown: true, initDom: identitiesMenu"> <a class="dropdown-toggle" href="#" tabindex="-1" id="identity-toggle" role="button"></a> <menu class="dropdown-menu right-edge" role="menu" aria-labelledby="identity-toggle" data-bind="foreach: identitiesOptions"> <li role="presentation"> <a tabindex="-1" href="#" data-bind="click: function (oIdentity) { $root.selectIdentity(oIdentity); return true; }, text: optText"></a> </li> </menu> </div> <!-- /ko --> </td> </tr> <tr> <td> <label data-bind="css: {'error-to': emptyToError}, tooltipErrorTip: emptyToErrorTooltip" data-i18n="GLOBAL/TO"></label> </td> <td> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: to, autoCompleteSource: emailsSource"> </td> </tr> <tr class="cc-row" data-bind="visible: showCc"> <td data-i18n="GLOBAL/CC"></td> <td> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: cc, autoCompleteSource: emailsSource"> </td> </tr> <tr class="bcc-row" data-bind="visible: showBcc"> <td data-i18n="GLOBAL/BCC"></td> <td> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: bcc, autoCompleteSource: emailsSource"> </td> </tr> <tr class="reply-to-row" data-bind="visible: showReplyTo"> <td data-i18n="GLOBAL/REPLY_TO"></td> <td> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="emailsTags: replyTo"> </td> </tr> <tr> <td data-i18n="GLOBAL/SUBJECT"></td> <td> <input type="text" name="subject" autocomplete="off" data-bind="textInput: subject, attr:{spellcheck:allowSpellcheck()?'true':'false'}"> </td> </tr> </table> <div style="display:flex"> <div class="btn-group" style="flex-grow:1"></div> <div class="btn-group"> <a class="btn fontastic" data-bind="toggle: doSign, visible: canSign, css: {'btn-success': doSign()}" data-i18n="[title]CRYPTO/SIGN"> ✍ </a> <a class="btn fontastic" data-bind="toggle: doEncrypt, visible: canEncrypt, css: {'btn-success': doEncrypt() || 'mailvelope' == viewArea()}" data-i18n="[title]CRYPTO/ENCRYPT"> 🔒 </a> </div> <div class="btn-group"> <a class="btn fontastic" style="padding-left: 10px; padding-right: 10px;" id="composeUploadButton" data-bind="visible: addAttachmentEnabled()" data-i18n="[title]COMPOSE/ATTACH_FILES"> ⁺📎 </a> </div> </div> </div> <div class="tabs"> <input type="radio" name="tabs" value="body" id="tab-body" data-bind="checked: viewArea"> <label for="tab-body" role="tab" aria-selected="true" aria-controls="panel1" tabindex="0"> <i class="icon-file-text"></i> <span data-i18n="GLOBAL/TEXT"></span> </label> <div class="tab-content" role="tabpanel" aria-hidden="false" style="grid-column-end:4"> <div class="textAreaParent" data-bind="initDom: editorArea, attr:{spellcheck:allowSpellcheck()?'true':'false'}"></div> </div> <input type="radio" name="tabs" value="attachments" id="tab-attachments" data-bind="checked: viewArea"> <label for="tab-attachments" role="tab" aria-selected="false" aria-controls="panel2" tabindex="0" data-bind=" css: { 'btn-danger': attachmentsInErrorCount() }, tooltipErrorTip: attachmentsErrorTooltip"> <b data-bind="visible: attachmentsCount, text: attachmentsCount"></b> <i data-bind="css: { 'icon-attachment': !attachmentsInProcessCount(), 'icon-spinner': attachmentsInProcessCount()}"></i> <span data-i18n="GLOBAL/ATTACHMENTS"></span> </label> <div class="tab-content attachmentAreaParent" role="tabpanel" aria-hidden="true" style="grid-column-end:4"> <div class="b-attachment-place" data-bind="visible: addAttachmentEnabled() && dragAndDropVisible(), css: {dragAndDropOver: dragAndDropOver}" data-i18n="COMPOSE/ATTACH_DROP_FILES_DESC"></div> <ul class="attachmentList" data-bind="foreach: attachments"> <li class="attachmentItem" data-bind="attr: { title: title }, css: { waiting: waiting, error: '' !== error() }"> <div class="attachmentIcon"> <i class="iconMain" data-bind="css: iconClass, visible: !uploading() || 0 === progress()"></i> <div class="iconProgress" data-bind="attr: { style: progressStyle }, visible: uploading"></div> <div class="iconBG" data-bind="text: progressText, visible: uploading"></div> </div> <div class="attachmentNameParent"> <a href="#" class="close pull-right" style="margin-top:-4px;" data-bind="click: cancel">×</a> <div class="attachmentName" data-bind="text: fileName"></div> <span class="attachmentSize" data-bind="text: friendlySize"></span> </div> </li> </ul> <div class="no-attachments-desc" data-bind="visible: 0 === attachments().length" data-i18n="COMPOSE/NO_ATTACHMENTS_HERE_DESC"></div> </div> <input type="radio" name="tabs" value="mailvelope" id="tab-mailvelope" data-bind="checked: viewArea"> <label for="tab-mailvelope" role="tab" aria-selected="false" aria-controls="panel3" tabindex="0" data-bind="visible: canMailvelope"> <i class="mailvelope-icon"></i> <span>Mailvelope</span> </label> <div class="tab-content textAreaParent" id="mailvelope-editor" role="tabpanel" aria-hidden="true" style="grid-column-end:4" data-bind="visible: canMailvelope"></div> </div> </div> </template><template id="PopupsContacts"><header class="b-header-toolbar g-ui-user-select-none"> <a href="#" class="close" data-bind="click: tryToClose">×</a> <div class="btn-toolbar"> <a class="btn" data-bind="click: newContact" data-icon="✚" data-i18n="CONTACTS/BUTTON_ADD_CONTACT"></a> <a class="btn btn-success fontastic" data-bind="command: newMessageCommand">✉</a> <a class="btn fontastic" data-bind="command: deleteCommand">🗑</a> <div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true, visible: !contacts.importing() && !contacts.syncing()"> <a id="contacts-more-dropdown-id" class="btn dropdown-toggle fontastic" href="#">☰</a> <menu class="dropdown-menu right-edge" role="menu" aria-labelledby="contacts-more-dropdown-id"> <li role="presentation"> <a href="#" data-bind="initDom: importButton"> <i data-bind="css: {'icon-import': !contacts.importing(), 'icon-spinner': contacts.importing}"></i> <span data-i18n="CONTACTS/BUTTON_IMPORT"></span> </a> </li> <li class="dividerbar" role="presentation"> <a href="#" data-bind="click: exportCsv"> <i class="icon-export"></i> <span data-i18n="CONTACTS/BUTTON_EXPORT_CSV"></span> </a> </li> <li role="presentation"> <a href="#" data-bind="click: exportVcf"> <i class="icon-export"></i> <span data-i18n="CONTACTS/BUTTON_EXPORT_VCARD"></span> </a> </li> <li class="dividerbar" role="presentation" data-bind="visible: contactsSyncEnabled"> <a href="#" data-bind="command: syncCommand"> <i class="fontastic" data-bind="css: {'icon-spinner': contacts.syncing}">⇆</i> <span data-i18n="CONTACTS/BUTTON_SYNC"></span> </a> </li> </menu> </div> <span data-bind="visible: contacts.importing() || contacts.syncing()" class="btn"><i class="icon-spinner"></i></span> </div> </header> <div class="modal-body"> <div class="left"> <div class="b-list-toolbar"> <input type="search" class="e-search" placeholder="Search" autofocus="" autocorrect="off" autocapitalize="off" spellcheck="false" data-i18n="[placeholder]GLOBAL/SEARCH" data-bind="value: search"> </div> <div class="b-list-content g-ui-user-select-none" data-bind="css: {'hideContactListCheckbox': !useCheckboxesInList()}"> <div class="content"> <div class="listClear" data-bind="visible: !!search()"> <span class="g-ui-link" data-i18n="CONTACTS/CLEAR_SEARCH" data-bind="click: clearSearch"></span> </div> <div class="listEmptyList" data-bind="visible: 0 === contacts().length && '' === search() && !contacts.loading()" data-i18n="CONTACTS/EMPTY_LIST"></div> <div class="listEmptyListLoading" data-bind="visible: 0 === contacts().length && '' === search() && contacts.loading()"> <i class="icon-spinner"></i> <span data-i18n="GLOBAL/LOADING"></span> </div> <div class="listEmptySearchList" data-bind="visible: 0 === contacts().length && '' !== search() && !contacts.loading()" data-i18n="CONTACTS/EMPTY_SEARCH"></div> <div class="e-contact-foreach g-ui-user-select-none" data-bind="foreach: contacts, visible: contacts().length"> <div class="e-contact-item g-ui-user-select-none" data-bind="css: lineAsCss()"> <div class="checkboxItem fontastic" data-bind="text: checked() ? '☑' : '☐'"></div> <div class="nameParent" data-bind="text: display"></div> </div> </div> </div> </div> <div class="b-list-footer-toolbar"> <div class="footer-pager"> <!-- ko template: { name: 'Paginator', data: contactsPaginator } --><!-- /ko --> </div> </div> </div> <div class="right"> <form class="b-view-content" spellcheck="false" data-bind="css: {'read-only': contact() && contact().readOnly()}"> <div class="b-contact-view-desc" data-bind="visible: !contact()" data-i18n="CONTACTS/CONTACT_VIEW_DESC"></div> <div class="tabs" data-bind="visible: contact, i18nUpdate: contact"> <!-- ko with: contact --> <input type="radio" name="contacttabs" id="tab-contact" checked> <label for="tab-contact" role="tab" aria-selected="true" aria-controls="panel1" tabindex="0" data-i18n="CONTACTS/TAB_CONTACT"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <label class="fontastic iconsize24">👤</label> <div> <div class="property-line" data-i18n="[title]CONTACTS/FIRST_NAME"> <span data-bind="text: givenName"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: givenName" data-i18n="[placeholder]CONTACTS/FIRST_NAME"> </div> <div class="property-line" data-i18n="[title]CONTACTS/LAST_NAME"> <span data-bind="text: surName"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: surName" data-i18n="[placeholder]CONTACTS/LAST_NAME"> </div> <div class="property-line" data-i18n="[title]CONTACTS/MIDDLE_NAME"> <span data-bind="text: middleName"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: middleName" data-i18n="[placeholder]CONTACTS/MIDDLE_NAME"> </div> <div class="property-line" data-i18n="[title]CONTACTS/NAME_PREFIX"> <span data-bind="text: namePrefix"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: namePrefix" data-i18n="[placeholder]CONTACTS/NAME_PREFIX"> </div> <div class="property-line" data-i18n="[title]CONTACTS/NAME_SUFFIX"> <span data-bind="text: nameSuffix"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: nameSuffix" data-i18n="[placeholder]CONTACTS/NAME_SUFFIX"> </div> <div class="property-line" data-bind="visible: null != nickname()" data-i18n="[title]CONTACTS/ADD_MENU_NICKNAME"> <span data-bind="text: nickname"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: nickname" data-i18n="[placeholder]CONTACTS/NICK_NAME"> </div> </div> </div> <div class="control-group"> <label class="fontastic iconsize24" data-i18n="[title]GLOBAL/EMAIL">@</label> <div> <label class="e-component e-checkbox material-design"> <div> <input type="checkbox" data-bind="checked: sendToAll"> <div role="checkbox"></div> </div> <span data-i18n="CONTACTS/SEND_TO_ALL_CONTACT_EMAILS"></span> </label> <div data-bind="foreach: email"> <div class="property-line"> <span data-bind="text: value"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: value"> </div> </div> <a href="#" class="btn fontastic" data-bind="visible: !readOnly(), click: addEmail">✚</a> </div> </div> <div class="control-group" data-bind="visible: tel().length"> <label class="fontastic iconsize24" data-i18n="[title]CONTACTS/ADD_MENU_PHONE">📞</label> <div> <div data-bind="foreach: tel"> <div class="property-line"> <span data-bind="text: value"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: value"> </div> </div> <a href="#" class="btn fontastic" data-bind="visible: !readOnly(), click: addTel">✚</a> </div> </div> <div class="control-group" data-bind="visible: url().length"> <label class="fontastic iconsize24" data-i18n="[title]CONTACTS/ADD_MENU_URL">🌍</label> <div> <div data-bind="foreach: url"> <div class="property-line"> <span data-bind="text: value"></span> <input type="text" placeholder="https://" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: value"> </div> </div> <a href="#" class="btn fontastic" data-bind="visible: !readOnly(), click: addUrl">✚</a> </div> </div> <div class="control-group" data-bind="visible: null != note()"> <label class="fontastic iconsize24" data-i18n="[title]CONTACTS/ADD_MENU_NOTE">🖉</label> <div class="property-line"> <span data-bind="text: note"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: note"> </div> </div> </div> <!-- <input type="radio" name="contacttabs" id="tab-contact-locations"> <label for="tab-contact-locations" role="tab" aria-selected="false" aria-controls="panel2" tabindex="0" data-i18n="CONTACTS/TAB_LOCATIONS"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div data-bind="foreach: adr"> <div class="control-group"> <div data-bind="text: type"></div> <div data-bind="text: street"></div> <div data-bind="text: street_ext"></div> <div data-bind="text: locality"></div> <div data-bind="text: region"></div> <div data-bind="text: postcode"></div> <div data-bind="text: pobox"></div> <div data-bind="text: country"></div> <div data-bind="text: preferred"></div> </div> </div> </div> --> <input type="radio" name="contacttabs" id="tab-contact-business"> <label for="tab-contact-business" role="tab" aria-selected="false" aria-controls="panel3" tabindex="0" data-i18n="CONTACTS/TAB_BUSINESS"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <label data-i18n="CONTACTS/LABEL_ORGANIZATION"></label> <span data-bind="text: org"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: org"> </div> <div class="control-group"> <label data-i18n="CONTACTS/LABEL_DEPARTMENT"></label> <span data-bind="text: department"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: department"> </div> <div class="control-group"> <label data-i18n="CONTACTS/LABEL_TITLE"></label> <span data-bind="text: title"></span> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="textInput: title"> </div> </div> <input type="radio" name="contacttabs" id="tab-contact-crypto"> <label for="tab-contact-crypto" role="tab" aria-selected="false" aria-controls="panel4" tabindex="0" data-i18n="CONTACTS/TAB_CRYPTO"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <label data-i18n="CRYPTO/SIGN"></label> <select name="x-crypto[signpref]" data-bind="value: signpref"> <option value="Ask" data-i18n="CONTACTS/ASK"></option> <option value="Never" data-i18n="CONTACTS/NEVER"></option> <option value="Always" data-i18n="CONTACTS/ALWAYS"></option> <option value="IfPossible" data-i18n="CONTACTS/ALWAYS_IF_POSSIBLE"></option> </select> </div> <div class="control-group"> <label data-i18n="CRYPTO/ENCRYPT"></label> <select name="x-crypto[encryptpref]" data-bind="value: encryptpref"> <option value="Ask" data-i18n="CONTACTS/ASK"></option> <option value="Never" data-i18n="CONTACTS/NEVER"></option> <option value="Always" data-i18n="CONTACTS/ALWAYS"></option> <option value="IfPossible" data-i18n="CONTACTS/ALWAYS_IF_POSSIBLE"></option> </select> </div> </div> <!-- /ko --> </div> </form> <div class="b-view-content-toolbar btn-toolbar" data-bind="i18nUpdate: contact"> <!-- ko with: contact --> <div class="btn-group"> <button class="btn button-save-contact" data-bind="visible: !readOnly(), command: $root.saveCommand"> <i data-bind="css: {'icon-ok': !$root.isSaving(), 'icon-spinner': $root.isSaving()}"></i> <span data-i18n="CONTACTS/BUTTON_CREATE_CONTACT" data-bind="visible: !id()"></span> <span data-i18n="GLOBAL/SAVE" data-bind="visible: id"></span> </button> </div> <div class="btn-group dropdown" data-bind="visible: !readOnly(), registerBootstrapDropdown: true"> <a id="button-add-prop-dropdown-id" href="#" class="btn dropdown-toggle" data-i18n="CONTACTS/ADD_MENU_LABEL"></a> <menu class="dropdown-menu right-edge" style="text-align: left" role="menu" aria-labelledby="button-add-prop-dropdown-id"> <li role="presentation" data-bind="visible: null == nickname()"> <a href="#" data-bind="click: addNickname"> <i class="icon-none"></i> <span data-i18n="CONTACTS/ADD_MENU_NICKNAME"></span> </a> </li> <li role="presentation"> <a href="#" data-bind="click: addEmail"> <i class="fontastic">@</i> <span data-i18n="GLOBAL/EMAIL"></span> </a> </li> <li role="presentation"> <a href="#" data-bind="click: addTel"> <i class="fontastic">📞</i> <span data-i18n="CONTACTS/ADD_MENU_PHONE"></span> </a> </li> <li role="presentation"> <a href="#" data-bind="click: addUrl"> <i class="fontastic">🌍</i> <span data-i18n="CONTACTS/ADD_MENU_URL"></span> </a> </li> <li role="presentation" data-bind="visible: null == note()"> <a href="#" data-bind="click: addNote"> <i class="fontastic">🖉</i> <span data-i18n="CONTACTS/ADD_MENU_NOTE"></span> </a> </li> <!-- <li class="dividerbar" role="presentation"> <a href="#" data-bind="click: addNewAddress"> <span data-i18n="CONTACTS/ADD_MENU_ADDRESS"></span> </a> </li>--> </menu> </div> <!-- <div class="read-only-sign fontastic iconsize24" data-bind="visible: readOnly" data-i18n="[title]CONTACTS/LABEL_READ_ONLY">🔒</div> --> <!-- /ko --> </div> </div> </div> </template><template id="PopupsFilter"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3> <span data-i18n="POPUPS_FILTER/TITLE_CREATE_FILTER" data-bind="visible: isNew"></span> <span data-i18n="POPUPS_FILTER/TITLE_EDIT_FILTER" data-bind="visible: !isNew()"></span> </h3> </header> <form id="sieve-script-filter" class="modal-body" spellcheck="false" data-bind="submit: saveFilter, with: filter"> <div class="control-group" data-bind="css: {'error': nameError}"> <input type="text" class="span5" data-bind="value: name" autofocus="" autocorrect="off" autocapitalize="off" data-i18n="[placeholder]GLOBAL/NAME"> </div> <div class="legend" data-i18n="POPUPS_FILTER/LEGEND_CONDITIONS"></div> <div class="control-group" data-bind="visible: 1 < conditions().length"> <select class="span4" data-bind="value: conditionsType"> <option value="Any" data-i18n="POPUPS_FILTER/SELECT_MATCH_ANY"></option> <option value="All" data-i18n="POPUPS_FILTER/SELECT_MATCH_ALL"></option> </select> </div> <div data-bind="foreach: conditions"> <div class="control-group" data-bind="css: {'error': valueError}" style="display:flex"> <div style="flex-grow:1" data-bind="css: {'error': valueError}, template: {name: template(), data: $data}"></div> <span class="delete-action button-delete fontastic" style="margin-top: 5px;" data-bind="click: function (oCondition) { $root.removeCondition(oCondition); }">🗑</span> </div> </div> <div class="control-group" data-bind="visible: 0 === conditions().length" data-i18n="POPUPS_FILTER/ALL_INCOMING_MESSAGES_DESC"></div> <div class="control-group"> <a class="btn" data-bind="click: addCondition" data-icon="✚" data-i18n="POPUPS_FILTER/BUTTON_ADD_CONDITION"></a> </div> <div class="legend" data-i18n="POPUPS_FILTER/LEGEND_ACTIONS"></div> <select class="span3" data-bind="options: $root.actionTypeOptions, value: actionType, optionsText: 'name', optionsValue: 'id'"></select> <div data-bind="template: {name: actionTemplate()}, i18nUpdate: actionTemplate"></div> </form> <footer> <button class="btn buttonSave" form="sieve-script-filter" data-icon="✔" data-i18n="GLOBAL/DONE"></button> </footer> </template><template id="PopupsFolder"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-bind="text: folder()?.fullName"></h3> </header> <form id="folderform" class="modal-body form-horizontal" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="control-group" data-bind="if: editing"> <label data-i18n="POPUPS_CREATE_FOLDER/LABEL_PARENT"></label> <select name="parent" data-bind="options: parentFolderSelectList, value: parentFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select> </div> <div class="control-group" data-bind="if: editing"> <label data-i18n="GLOBAL/NAME"></label> <input name="folder" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" required="" data-bind="textInput: name"> </div> <div data-bind="with: folder"> <!-- ko if: canBeSubscribed --> <div class="control-group"> <label class="fontastic">👁</label> <div data-bind="component: { name: 'Checkbox', params: { name: 'subscribe', label: 'SETTINGS_FOLDERS/BUTTON_SUBSCRIBE', value: isSubscribed } }"></div> </div> <!-- /ko --> <div class="control-group"> <label data-i18n="POPUPS_FILTER/SELECT_FIELD_SIZE"></label> <span data-bind="text: friendlySize"></span> </div> <div class="control-group"> <label data-i18n="MESSAGE_LIST/MENU_SELECT_UNSEEN"></label> <span data-bind="text: unreadEmails"></span> / <span style="margin:0" data-bind="text: totalEmails"></span> </div> <!-- ko if: $root.displaySpecSetting() && canBeSelected() && isSubscribed() --> <div class="control-group"> <label class="icon-check-mark-circle-two"></label> <div data-bind="component: { name: 'Checkbox', params: { name: 'checkable', label: 'SETTINGS_FOLDERS/HELP_CHECK_FOR_NEW_MESSAGES', value: checkable } }"></div> </div> <!-- /ko --> <!-- ko if: $root.showKolab --> <div class="control-group"> <label>Kolab</label> <select data-bind="options: $root.kolabTypeOptions, value: kolabType, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> <!-- /ko --> </div> <div class="control-group" data-bind="if: ACLAllowed"> <label>ACL</label> <div> <table class="table table-hover" style="width:auto"><tbody> <!-- ko foreach: folder()?.ACL --> <tr> <td data-bind="text: identifier"></td> <td> <button class="btn fontastic" data-bind="visible: mine, click: $root.editACL">👁</button> <button class="btn fontastic" data-bind="visible: !mine(), click: $root.editACL">🖉</button> <button class="btn fontastic" data-bind="visible: !mine(), click: $root.deleteACL">🗑</button> </td> </tr> <!-- /ko --> <tr data-bind="visible: adminACL"><td></td><td> <button class="btn fontastic" data-bind="click: createACL">✚</button> </td></tr> </tbody></table> </div> </div> </form> <footer> <button form="folderform" class="btn"> <i class="icon-folder-add"></i> <span data-i18n="GLOBAL/SAVE"></span> </button> </footer> </template><template id="PopupsFolderACL"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3>ACL: <span data-bind="text: folderName"></span></h3> </header> <form id="folderaclform" class="modal-body form-horizontal" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="control-group"> <label data-i18n="GLOBAL/EMAIL"></label> <input name="identifier" class="input-xlarge" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="visible: create, value: identifier" required=""> <span data-bind="visible: !create(), text: identifier"></span> </div> <div class="control-group"> <label data-i18n="IMAP/ACL_RIGHTS"></label> <table class="table table-hover table-bordered" style="width:auto"><tbody> <tr title="SETACL/DELETEACL/GETACL/LISTRIGHTS"> <td data-i18n="IMAP/ACL_A"></td> <td><input type="checkbox" value="a" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="SELECT the mailbox, perform STATUS"> <td data-i18n="IMAP/ACL_R"></td> <td><input type="checkbox" value="r" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="Mailbox is visible to LIST/LSUB commands, SUBSCRIBE mailbox"> <td data-i18n="IMAP/ACL_L"></td> <td><input type="checkbox" value="l" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="perform APPEND, COPY into mailbox"> <td data-i18n="IMAP/ACL_I"></td> <td><input type="checkbox" value="i" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="set or clear \SEEN flag via STORE, also set \SEEN during APPEND/COPY/FETCH BODY[...]"> <td data-i18n="IMAP/ACL_S"></td> <td><input type="checkbox" value="s" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="set or clear \DELETED flag via STORE, set \DELETED flag during APPEND/COPY"> <td data-i18n="IMAP/ACL_T"></td> <td><input type="checkbox" value="t" data-bind="checked: rights, disable: mine"></td> </tr> <!-- <tr title="STORE DELETED flag, perform EXPUNGE"> <td data-i18n="IMAP/ACL_T">Old</td> <td><input type="checkbox" value="d" data-bind="checked: rights, disable: mine"></td> </tr> --> <tr title="set or clear flags other than \SEEN and \DELETED via STORE, also set them during APPEND/COPY"> <td data-i18n="IMAP/ACL_W"></td> <td><input type="checkbox" value="w" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="send mail to submission address for mailbox, not enforced by IMAP4 itself"> <td data-i18n="IMAP/ACL_P"></td> <td><input type="checkbox" value="p" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="CREATE new sub-mailboxes in any implementation-defined hierarchy, parent mailbox for the new mailbox name in RENAME"> <td data-i18n="IMAP/ACL_K"></td> <td><input type="checkbox" value="k" data-bind="checked: rights, disable: mine"></td> </tr> <!-- <tr title="CREATE new sub-mailboxes in any implementation-defined hierarchy"> <td data-i18n="IMAP/ACL_K">Old</td> <td><input type="checkbox" value="c" data-bind="checked: rights, disable: mine"></td> </tr> --> <tr title="DELETE mailbox, old mailbox name in RENAME"> <td data-i18n="IMAP/ACL_X"></td> <td><input type="checkbox" value="x" data-bind="checked: rights, disable: mine"></td> </tr> <tr title="perform EXPUNGE and expunge as a part of CLOSE"> <td data-i18n="IMAP/ACL_E"></td> <td><input type="checkbox" value="e" data-bind="checked: rights, disable: mine"></td> </tr> </tbody></table> </div> </form> <footer> <button data-bind="visible: mine" form="folderaclform" class="btn" data-i18n="GLOBAL/CLOSE"></button> <button data-bind="visible: !mine()" form="folderaclform" class="btn" data-i18n="GLOBAL/SAVE"></button> </footer> </template><template id="PopupsFolderClear"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEAR_FOLDER" data-bind="hidden: clearing"></h3> <h3 data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEARING_PROCESS" data-bind="visible: clearing"></h3> </header> <div class="modal-body"> <i class="fontastic" style="color:red">⚠</i>   <strong data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_WARNING"></strong> <p data-bind="html: dangerDescHtml"></p> <span data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_2"></span> </div> <footer> <a class="btn btn-danger" data-bind="command: clearCommand"> <i class="fontastic" data-bind="css: {'icon-spinner white': clearing}">🔥</i> <span data-i18n="GLOBAL/CLEAR"></span> </a> </footer> </template><template id="PopupsFolderCreate"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></h3> </header> <form id="createfolderform" class="modal-body form-horizontal" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="control-group"> <label data-i18n="POPUPS_CREATE_FOLDER/LABEL_PARENT"></label> <select name="parent" data-bind="options: parentFolderSelectList, value: parentFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select> </div> <div class="control-group"> <label data-i18n="GLOBAL/NAME"></label> <input name="folder" type="text" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" required="" pattern="^[^\\/]+$" data-bind="textInput: name"> </div> <div class="control-group" data-bind="component: { name: 'Checkbox', params: { name: 'subscribe', label: 'SETTINGS_FOLDERS/BUTTON_SUBSCRIBE', value: subscribe } }"></div> </form> <footer> <button form="createfolderform" class="btn buttonCreate"> <i class="icon-folder-add"></i> <span data-i18n="POPUPS_CREATE_FOLDER/BUTTON_CREATE"></span> </button> </footer> </template><template id="PopupsFolderSystem"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="POPUPS_SYSTEM_FOLDERS/TITLE_SYSTEM_FOLDERS"></h3> </header> <div class="modal-body"> <div class="form-horizontal"> <div class="alert" data-bind="visible: '' !== notification()" data-bind="text: notification"></div> <div class="control-group"> <label data-icon="📧" data-i18n="FOLDER_LIST/SENT_NAME"></label> <select data-bind="options: folderSelectList, value: sentFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> <div class="control-group"> <label data-icon="🗎" data-i18n="FOLDER_LIST/DRAFTS_NAME"></label> <select data-bind="options: folderSelectList, value: draftsFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select> </div> <div class="control-group"> <label data-icon="⚠" data-i18n="GLOBAL/SPAM"></label> <select data-bind="options: folderSelectList, value: spamFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> <div class="control-group"> <label data-icon="🗑" data-i18n="FOLDER_LIST/TRASH_NAME"></label> <select data-bind="options: folderSelectList, value: trashFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> <div class="control-group"> <label data-icon="🗄" data-i18n="FOLDER_LIST/ARCHIVE_NAME"></label> <select data-bind="options: folderSelectList, value: archiveFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> </div> </div> </template><template id="PopupsIdentity"><header class="g-ui-user-select-none"> <a href="#" class="close" data-bind="click: tryToClose">×</a> <h3 data-bind="visible: !edit()" data-i18n="POPUPS_IDENTITY/TITLE_ADD_IDENTITY"></h3> <h3 data-bind="visible: edit" data-i18n="POPUPS_IDENTITY/TITLE_UPDATE_IDENTITY"></h3> </header> <form id="identityform" class="modal-body" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="alert" data-bind="visible: '' !== submitError()"> <a href="#" class="close" data-bind="click: function () { submitError('') }">×</a> <span data-bind="text: submitError"></span> </div> <div class="tabs" data-bind="with: identity"> <input type="radio" name="identitytabs" id="tab-identity" checked> <label data-i18n="SETTINGS_LABELS/GENERAL" for="tab-identity" role="tab" aria-selected="true" aria-controls="panel1" tabindex="0"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <label data-i18n="GLOBAL/NAME"></label> <input name="Name" type="text" class="input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: name, hasfocus: $root.nameFocused"> </div> <div class="control-group"> <label data-i18n="GLOBAL/EMAIL"></label> <div> <div class="textEmail" data-bind="text: email, visible: !id()"></div> <input name="Email" type="email" class="input-xlarge" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="visible: id, value: email, attr: {required: id}"> </div> </div> <div class="control-group"> <label data-i18n="POPUPS_IDENTITY/LABEL"></label> <div> <input name="Label" type="text" class="input-xlarge" autofocus="" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: label, hasfocus: $root.labelFocused"> </div> </div> </div> <input type="radio" name="identitytabs" id="tab-identity-signature"> <label data-i18n="POPUPS_IDENTITY/SIGNATURE" for="tab-identity-signature" role="tab" aria-selected="false" aria-controls="panel2" tabindex="0"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="e-signature-place" data-bind="editor: signature"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_IDENTITY/LABEL_SIGNATURE_INSERT_BEFORE', value: signatureInsertBefore, name: 'SignatureInsertBefore' } }"></div> </div> <input type="radio" name="identitytabs" id="tab-identity-crypto"> <label data-i18n="CONTACTS/TAB_CRYPTO" for="tab-identity-crypto" role="tab" aria-selected="false" aria-controls="panel3" tabindex="0"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'CRYPTO/SIGN', value: pgpSign, name: 'pgpSign' } }"></div> </div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'CRYPTO/ENCRYPT', value: pgpEncrypt, name: 'pgpEncrypt' } }"></div> </div> <!-- <div class="control-group"> <label data-i18n="CRYPTO/ENCRYPT"></label> <select name="PgpEncrypt" data-bind="value: pgpEncrypt"> <option value="Ask" data-i18n="CONTACTS/ASK"></option> <option value="Never" data-i18n="CONTACTS/NEVER"></option> <option value="Always" data-i18n="CONTACTS/ALWAYS"></option> <option value="IfPossible" data-i18n="CONTACTS/ALWAYS_IF_POSSIBLE"></option> </select> </div> --> <details> <summary><strong>S/MIME</strong></summary> <div class="control-group" data-bind="css: {'error': smimeKey() && !smimeKeyValid()}"> <label data-i18n="CRYPTO/PRIVATE_KEY"></label> <textarea name="smimeKey" class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: smimeKey"></textarea> </div> <!-- <div class="control-group" data-bind="visible:smimeKeyValid() && !smimeKeyEncrypted()"> --> <div class="control-group" data-bind="visible:smimeKeyValid"> <label></label> <button type="button" data-bind="click: $root.setSMimeKeyPass" data-i18n="CRYPTO/CHANGE_PASS"></button> </div> <div class="control-group" data-bind="css: {'error': smimeCertificate() && !smimeCertificateValid()}"> <label data-i18n="SMIME/CERTIFICATE"></label> <textarea name="smimeCertificate" class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: smimeCertificate"></textarea> </div> <div class="control-group" data-bind="hidden:smimeCertificate"> <label></label> <button type="button" data-bind="click: $root.createSelfSigned" data-i18n="CRYPTO/CREATE_SELF_SIGNED"></button> </div> </details> </div> <input type="radio" name="identitytabs" id="tab-identity-advanced"> <label data-i18n="SETTINGS_FILTERS/ADVANCED" for="tab-identity-advanced" role="tab" aria-selected="false" aria-controls="panel4" tabindex="0"></label> <div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false"> <div class="control-group"> <label data-i18n="GLOBAL/REPLY_TO"></label> <input name="ReplyTo" type="email" class="inputReplyTo input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: replyTo"> </div> <div class="control-group"> <label data-i18n="GLOBAL/BCC"></label> <input name="Bcc" type="email" class="inputBcc input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: bcc"> </div> <div class="control-group"> <label data-i18n="FOLDER_LIST/SENT_NAME"></label> <select name="sentFolder" data-bind="options: $root.folderSelectList, value: sentFolder, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> </div> </div> </form> <footer> <button form="identityform" class="btn buttonAddIdentity"> <i data-bind="visible: !edit(), css: {'icon-user-add': !submitRequest(), 'icon-spinner': submitRequest()}"></i> <span data-bind="visible: !edit()" data-i18n="POPUPS_IDENTITY/BUTTON_ADD_IDENTITY"></span> <i data-bind="visible: edit, css: {'icon-ok': !submitRequest(), 'icon-spinner': submitRequest()}"></i> <span data-bind="visible: edit" data-i18n="GLOBAL/SAVE"></span> </button> </footer> </template><template id="PopupsKeyboardShortcutsHelp"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="SHORTCUTS_HELP/LEGEND_SHORTCUTS_HELP"></h3> </header> <div class="modal-body"> <div class="tabs"> <input type="radio" name="helptabs" id="tab-help1" checked> <label for="tab-help1" role="tab" aria-selected="true" aria-controls="panel1" tabindex="0" data-i18n="SHORTCUTS_HELP/TAB_MAILBOX"></label> <div class="tab-content" role="tabpanel" aria-hidden="false"> <table class="table table-striped table-bordered" style="border-radius: 0 4px 4px 4px"> <tbody> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_OPEN_USER_DROPDOWN"></td><td>M</td></tr> <tr><td class="fontastic">←</td><td data-i18n="SHORTCUTS_HELP/LABEL_REPLY"></td><td>R, Reply</td></tr> <tr><td class="fontastic">↞</td><td data-i18n="SHORTCUTS_HELP/LABEL_REPLY_ALL"></td><td>A, Shift + Reply</td></tr> <tr><td class="fontastic">→</td><td data-i18n="SHORTCUTS_HELP/LABEL_FORWARD"></td><td>F, Fwd</td></tr> <tr><td class="fontastic">→</td><td data-i18n="SHORTCUTS_HELP/LABEL_FORWARD_MULTIPLY"></td><td>Shift + F, Shift + Fwd</td></tr> <tr><td class="icon-help"></td><td data-i18n="GLOBAL/HELP"></td><td>F1, Help</td></tr> </tbody> </table> </div> <input type="radio" name="helptabs" id="tab-help2"> <label for="tab-help2" role="tab" aria-selected="false" aria-controls="panel2" tabindex="0" data-i18n="SHORTCUTS_HELP/TAB_MESSAGE_LIST"></label> <div class="tab-content" role="tabpanel" aria-hidden="true"> <table class="table table-striped table-bordered"> <tbody> <tr><td class="fontastic">☑</td><td data-i18n="SHORTCUTS_HELP/LABEL_CHECK_ALL"></td><td><!-- ko text: metaKey --><!-- /ko --> + A</td></tr> <tr><td class="fontastic">🗄</td><td data-i18n="GLOBAL/TO_ARCHIVE"></td><td>Z</td></tr> <tr><td class="fontastic">🗑</td><td data-i18n="SHORTCUTS_HELP/LABEL_DELETE"></td><td>Delete, Shift + Delete</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_OPEN_THREAD"></td><td>T</td></tr> <tr><td class="fontastic">📁</td><td data-i18n="SHORTCUTS_HELP/LABEL_MOVE"></td><td>Insert</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_READ"></td><td>Q</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_UNREAD"></td><td>U</td></tr> <tr><td class="fontastic">★</td><td data-i18n="SHORTCUTS_HELP/LABEL_IMPORTANT"></td><td>I</td></tr> <tr><td></td><td data-i18n="GLOBAL/SEARCH"></td><td>/</td></tr> <tr><td class="icon-arrows-out"></td><td data-i18n="SHORTCUTS_HELP/LABEL_FULLSCREEN_ENTER"></td><td>Enter</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_VIEW_MESSAGE_ENTER"></td><td>Enter</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_SWITCH_TO_MESSAGE"></td><td>→, Tab</td></tr> <tr><td></td><td data-i18n="SHORTCUTS_HELP/LABEL_SWITCH_TO_FOLDER_LIST"></td><td>←, Shift + Tab</td></tr> </tbody> </table> </div> <input type="radio" name="helptabs" id="tab-help3"> <label for="tab-help3" role="tab" aria-selected="false" aria-controls="panel3" tabindex="0" data-i18n="SHORTCUTS_HELP/TAB_MESSAGE_VIEW"></label> <div class="tab-content" role="tabpanel" aria-hidden="true"> <table class="table table-striped table-bordered"> <tbody> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_FULLSCREEN_TOGGLE"></td><td>Enter, Open</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_BLOCKQUOTES_TOGGLE"></td><td>B</td></tr> <tr><td data-i18n="MESSAGE/SWAP_COLORS"></td><td>Shift + B</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_EXIT_FULLSCREEN"></td><td>Esc, Close</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_CLOSE_MESSAGE"></td><td>Esc, Close</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_SWITCH_TO_LIST"></td><td>Shift + Tab, Esc</td></tr> </tbody> </table> </div> <input type="radio" name="helptabs" id="tab-help4"> <label for="tab-help4" role="tab" aria-selected="false" aria-controls="panel4" tabindex="0" data-i18n="SHORTCUTS_HELP/TAB_COMPOSE"></label> <div class="tab-content" role="tabpanel" aria-hidden="true"> <table class="table table-striped table-bordered"> <tbody> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_OPEN_COMPOSE_POPUP"></td><td>W, C, New</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_OPEN_IDENTITIES_DROPDOWN"></td><td><!-- ko text: metaKey --><!-- /ko --> + M</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_SAVE_MESSAGE"></td><td><!-- ko text: metaKey --><!-- /ko --> + S, Save</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_SEND_MESSAGE"></td><td>Send, <!-- ko text: metaKey --><!-- /ko --> + Enter</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_MINIMIZE_COMPOSE_POPUP"></td><td>Esc, Close</td></tr> <tr><td data-i18n="SHORTCUTS_HELP/LABEL_CLOSE_COMPOSE"></td><td>Shift + Esc, Shift + Close</td></tr> </tbody> </table> </div> </div> </div> </template><template id="PopupsOpenPgpGenerate"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="OPENPGP/POPUP_GENERATE_TITLE"></h3> </header> <form id="openpgp-generate" class="modal-body form-horizontal" autocomplete="off" spellcheck="false" data-bind="submit: submitForm"> <div class="alert" data-bind="visible: '' !== submitError()"> <a href="#" class="close" data-bind="click: hideError">×</a> <span data-bind="text: submitError"></span> </div> <!-- Disable stupid browser password autofill --> <input type="password" style="display:none"> <div class="control-group" data-bind="css: {'error': emailError}"> <label data-i18n="GLOBAL/EMAIL"></label> <input type="email" required="" class="input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" list="emailaddresses" data-bind="value: email"> </div> <div class="control-group"> <label data-i18n="GLOBAL/NAME"></label> <input type="text" required="" class="input-xlarge" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: name"> </div> <div class="control-group"> <label data-i18n="GLOBAL/PASSWORD"></label> <input type="password" required="" class="input-xlarge" autocomplete="new-password" autocorrect="off" autocapitalize="off" data-bind="value: password"> </div> <div class="control-group"> <label data-i18n="OPENPGP/LABEL_KEY_TYPE"></label> <select data-bind="value: keyType, options: ['ECC', 'RSA']"></select> </div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'OPENPGP/BACKUP_PUBLIC_KEY_ON_SERVER', value: backupPublicKey } }"></div> <br> <div data-bind="component: { name: 'Checkbox', params: { label: 'OPENPGP/BACKUP_PRIVATE_KEY_ON_SERVER', value: backupPrivateKey } }"></div> <br> <div data-bind="visible: canGnuPG, component: { name: 'Checkbox', params: { label: 'OPENPGP/STORE_PUBLIC_KEY_IN_GNUPG', value: saveGnuPGPublic } }"></div> <br> <div data-bind="visible: canGnuPG, component: { name: 'Checkbox', params: { label: 'OPENPGP/STORE_PRIVATE_KEY_IN_GNUPG', value: saveGnuPGPrivate } }"></div> </div> <datalist id="emailaddresses"> <!-- ko foreach: identities --> <option data-bind="attr:{value:email}"></option> <!-- /ko --> </datalist> </form> <footer> <button class="btn" form="openpgp-generate"> <i class="fontastic" data-bind="css: {'icon-spinner': submitRequest()}">🔑</i> <span data-i18n="OPENPGP/POPUP_GENERATE_BUTTON"></span> </button> </footer> </template><template id="PopupsOpenPgpImport"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="OPENPGP/POPUP_IMPORT_TITLE"></h3> </header> <form id="openpgp-import" class="modal-body" autocomplete="off" data-bind="submit: submitForm"> <div class="alert"  data-bind="visible: keyError() && keyErrorMessage(), text: keyErrorMessage"></div> <div class="control-group"> <!-- could be email or fingerprint --> <input type="search" data-bind="textInput: search"> <button class="btn" type="button" data-bind="enable: search, click: searchPGP" data-i18n="GLOBAL/SEARCH"></button> </div> <div class="control-group" data-bind="css: {'error': keyError}"> <textarea class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: key" required=""></textarea> </div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'OPENPGP/BACKUP_ON_SERVER', value: saveServer } }"></div> <div data-bind="visible: canGnuPG, component: { name: 'Checkbox', params: { label: 'OPENPGP/STORE_IN_GNUPG', value: saveGnuPG } }"></div> </div> </form> <footer> <button class="btn" form="openpgp-import" data-icon="✚" data-i18n="OPENPGP/POPUP_IMPORT_BUTTON"></button> </footer> </template><template id="PopupsOpenPgpKey"><header class="g-ui-user-select-none"> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="OPENPGP/POPUP_VIEW_TITLE"></h3> </header> <div class="modal-body"> <pre data-bind="initDom: keyDom, text: key"></pre> </div> <footer> <a class="btn buttonClose" data-bind="click: close" data-icon="✖" data-i18n="GLOBAL/CLOSE"></a> <a class="btn buttonClose" data-bind="click: selectKey" data-icon="🔑" data-i18n="OPENPGP/POPUP_VIEW_BUTTON"></a> </footer> </template><template id="PopupsSMimeImport"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="SMIME/POPUP_IMPORT_TITLE"></h3> </header> <form id="smime-import" class="modal-body" autocomplete="off" data-bind="submit: submitForm"> <div class="alert"  data-bind="visible: pemError() && pemErrorMessage(), text: pemErrorMessage"></div> <div class="control-group" data-bind="css: {'error': pemError}"> <textarea class="input-xxlarge" rows="14" autofocus="" autocomplete="off" data-bind="value: pem" required=""></textarea> </div> </form> <footer> <button class="btn" form="smime-import" data-icon="✚" data-i18n="OPENPGP/POPUP_IMPORT_BUTTON"></button> </footer> </template><template id="PopupsSieveScript"><!-- ko with: script --> <header> <a href="#" class="close" data-bind="click: $root.close">×</a> <h3> <span data-i18n="POPUPS_SIEVE_SCRIPT/TITLE_CREATE" data-bind="visible: !exists()"></span> <span data-i18n="POPUPS_SIEVE_SCRIPT/TITLE_EDIT" data-bind="visible: exists"></span> <span data-bind="visible: exists">: <!-- ko text: name--><!-- /ko --></span> </h3> </header> <form class="modal-body" spellcheck="false"> <div class="control-group" data-bind="css: {'error': nameError}, hidden: exists"> <input type="text" class="span5" data-bind="value: name" autocorrect="off" autocapitalize="off" data-i18n="[placeholder]GLOBAL/NAME"> </div> <div class="alert g-ui-user-select-none" data-bind="visible: hasChanges" data-icon="⚠" data-i18n="POPUPS_SIEVE_SCRIPT/CHANGES_NEED_TO_BE_SAVED_DESC"></div> <div class="alert alert-error g-ui-user-select-none" style="white-space:pre" data-bind="visible: $root.errorText, text: $root.errorText" data-icon="⚠"></div> <div class="control-group" data-bind="visible: $root.rawActive"> <details> <summary data-i18n="POPUPS_SIEVE_SCRIPT/CAPABILITY_LABEL"></summary> <pre data-bind="text: $root.sieveCapabilities"></pre> </details> <details> <summary>Actions</summary> <pre data-bind="text: $root.availableActions"></pre> </details> <details> <summary>Controls</summary> <pre data-bind="text: $root.availableControls"></pre> </details> <details> <summary>Tests</summary> <pre data-bind="text: $root.availableTests"></pre> </details> <textarea style="width:100%;height:60vh" data-bind="value: body, valueUpdate: 'input'"></textarea> </div> <div data-bind="visible: !$root.rawActive()"> <table class="table table-hover list-table filters-list g-ui-user-select-none"> <colgroup> <col style="width: 30px"> <col style="width: 16px"> <col> <col style="width: 140px"> <col style="width: 1em"> </colgroup> <tbody data-bind="foreach: filters, i18nUpdate: filters"> <tr class="filter-item" draggable="true" data-bind="sortableItem: { list: $parent.filters }"> <td class="fontastic" data-bind="click: function () { $parent.hasChanges(true); enabled(!enabled()); }, text: enabled() ? '☑' : '☐'"></td> <td class="drag-wrapper fontastic drag-handle">⬍</td> <td class="e-action"> <span class="filter-name" data-bind="text: name()"></span>    <span class="filter-sub-name" data-bind="text: nameSub()"></span> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: function(oFilter) { $root.deleteFilter(oFilter); }" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-filter fontastic" data-bind="visible: !askDelete(), click: function (oFilter) { $root.filterForDeletion(oFilter); }">🗑</span> </td> </tr> </tbody> </table> <a class="btn" data-bind="click: $root.addFilter" data-icon="✚" data-i18n="POPUPS_SIEVE_SCRIPT/BUTTON_ADD_FILTER"></a> </div> </form> <footer> <a class="btn" data-bind="visible: allowFilters(), click: function() { $root.toggleFiltersRaw(); }, css: {'active': $root.rawActive }" data-i18n="[title]POPUPS_SIEVE_SCRIPT/BUTTON_RAW_SCRIPT"> <i class="icon-file-code"></i> </a> <!-- <a class="btn" data-bind="visible: $root.rawActive, click: function() { $root.validateScript(); }"> <span data-i18n="POPUPS_SIEVE_SCRIPT/VALIDATE"></span> </a> --> <a class="btn buttonSave" data-bind="click: function() { $root.saveScript(); }, css: {'btn-danger': $root.saveError}"> <i class="fontastic" data-bind="css: {'icon-spinner': $root.saving}">💾</i> <span data-i18n="GLOBAL/SAVE"></span> </a> </footer> <!-- /ko --> </template><template id="SettingsAccounts"><div data-bind="visible: allowAdditionalAccount"> <div class="legend"> <span data-i18n="SETTINGS_ACCOUNTS/LEGEND_ACCOUNTS"></span>     <i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i> </div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_ACCOUNTS/SHOW_UNREAD', value: showUnread } }"></div> <a class="btn" data-bind="click: addNewAccount"> <i class="icon-user-add"></i> <span data-i18n="SETTINGS_ACCOUNTS/BUTTON_ADD_ACCOUNT"></span> </a> <table class="table table-hover list-table accounts-list" data-bind="i18nUpdate: accounts"> <tbody data-bind="foreach: accounts"> <tr draggable="true" data-bind="attr: {draggable:isAdditional}, sortableItem: { list: $root.accounts, afterMove: $root.accountsAndIdentitiesAfterMove }"> <!-- ko if:!isAdditional() --> <td></td> <td colspan="3" data-bind="text: displayName"></td> <!-- /ko --> <!-- ko if:isAdditional --> <td> <i class="fontastic drag-handle">⬍</i> </td> <td class="e-action"> <span class="account-name" data-bind="text: displayName"></span> </td> <!-- <td><span class="icon-import" data-bind="click: importAll"></span></td> --> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete}, click: function(oAccount) { $root.deleteAccount(oAccount); }" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete fontastic" data-bind="visible: !askDelete(), click: function (oAccount) { $root.accountForDeletion(oAccount); }">🗑</span> </td> <!-- /ko --> </tr> </tbody> </table> </div> <div data-bind="visible: allowIdentities"> <div class="legend" data-i18n="SETTINGS_ACCOUNTS/LEGEND_IDENTITIES"></div> <a class="btn" data-bind="click: addNewIdentity"> <i class="icon-user-add"></i> <span data-i18n="SETTINGS_ACCOUNTS/BUTTON_ADD_IDENTITY"></span> </a> <table class="table table-hover list-table identities-list" data-bind="i18nUpdate: identities"> <tbody data-bind="foreach: identities"> <tr draggable="true" data-bind="attr: {'data-identity-id': id}, sortableItem: { list: $root.identities, afterMove: $root.accountsAndIdentitiesAfterMove }"> <td> <i class="fontastic drag-handle">⬍</i> </td> <td class="e-action"> <span class="identity-name" data-bind="text: formattedName()"></span>    <span class="identity-default" data-bind="visible: !$context.$index()" data-i18n="GLOBAL/DEFAULT"></span> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="visible: id, css: {'delete-access': askDelete}, click: function(oIdentity) { $root.deleteIdentity(oIdentity); }" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete fontastic" data-bind="visible: !askDelete() && id(), click: function (oIdentity) { $root.identityForDeletion(oIdentity); }">🗑</span> </td> </tr> </tbody> </table> </div> </template><template id="SettingsContacts"><div class="form-horizontal"> <div class="legend" data-i18n="GLOBAL/CONTACTS"></div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_CONTACTS/LABEL_CONTACTS_AUTOSAVE', value: contactsAutosave } }"></div> </div> </div> <form class="form-horizontal" spellcheck="false" data-bind="visible: allowContactsSync"> <div class="legend" data-i18n="SETTINGS_CONTACTS/LEGEND_CONTACTS_SYNC"></div> <div class="control-group"> <label data-i18n="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_ENABLE"></label> <div data-bind="component: { name: 'Select', params: { options: syncModeOptions, value: syncMode, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group"> <label data-i18n="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_AB_URL"></label> <input type="text" class="input-xxlarge" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: syncUrl" placeholder="https://"> </div> <div class="control-group"> <label data-i18n="SETTINGS_CONTACTS/LABEL_CONTACTS_SYNC_USER"></label> <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" data-bind="value: syncUser"> </div> <div class="control-group"> <label data-i18n="GLOBAL/PASSWORD"></label> <input type="password" autocomplete="current-password" autocorrect="off" autocapitalize="off" spellcheck="false" data-bind="value: syncPass"> </div> </form> </template><template id="SettingsFilters"><div class="form-horizontal"> <div class="legend"> <span data-i18n="SETTINGS_LABELS/FILTERS"></span>     <i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i> </div> </div> <div class="alert alert-error g-ui-user-select-none" data-bind="visible: serverError, text: serverErrorDesc" data-icon="⚠"></div> <table class="table table-hover list-table g-ui-user-select-none"> <colgroup> <col style="width: 30px"> <col> <col style="width: 140px"> <col style="width: 1em"> </colgroup> <tbody> <tr class="script-item"> <td style="border:0" class="e-action fontastic" data-bind="click: disableScripts, text: hasActive() ? '○' : '⦿'"></td> <td style="border:0" data-i18n="GLOBAL/INACTIVE">Inactive</td> <td style="border:0"></td> <td style="border:0"></td> </tr> </tbody> <tbody data-bind="foreach: scripts, i18nUpdate: scripts"> <!-- ko if: allowFilters() --> <tr class="script-item"> <td><div class="e-action fontastic" data-bind="visible: body, click: function (oScript) { $root.enableScript(oScript); }, text: active() ? '⦿' : '○'"></div></td> <td class="e-action script-name" data-i18n="SETTINGS_FILTERS/SIMPLE" data-bind="attr:{title: name}"></td> <td></td> <td></td> </tr> <tr><th colspan="4" data-i18n="SETTINGS_FILTERS/ADVANCED"></th></tr> <!-- /ko --> <!-- ko if: !allowFilters() --> <tr class="script-item"> <td><div class="e-action fontastic" data-bind="visible: body, click: function (oScript) { $root.enableScript(oScript); }, text: active() ? '⦿' : '○'"></div></td> <td class="e-action script-name" data-bind="text: name"></td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete}, click: function(oScript) { $root.deleteScript(oScript); }" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="e-action fontastic" data-bind="visible: !askDelete() && !allowFilters(), click: function (oScript) { $root.scriptForDeletion(oScript); }">🗑</span> </td> </tr> <!-- /ko --> </tbody> </table> <a class="btn" data-bind="click: addScript" data-icon="✚" data-i18n="SETTINGS_FILTERS/BUTTON_ADD_SCRIPT"></a> </template><template id="SettingsFiltersActionDiscard"><div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </template><template id="SettingsFiltersActionForward"><div class="control-group" data-bind="css: {'error': actionValueError}"> <input type="text" class="span3" data-bind="value: actionValue" data-i18n="[placeholder]GLOBAL/EMAIL"> </div> <div class="control-group"> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/KEEP_LABEL', value: keep } }"></div> <div data-bind="visible: $root.allowMarkAsRead, component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/MARK_AS_READ_LABEL', value: markAsRead } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </div> </template><template id="SettingsFiltersActionMoveToFolder"><div class="control-group" data-bind="css: {'error': actionValueError}"> <select class="span3" data-bind="options: $root.folderSelectList, value: $root.selectedFolderValue, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender"></select> </div> <div class="control-group"> <div> <div data-bind="visible: $root.allowMarkAsRead, component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/MARK_AS_READ_LABEL', value: markAsRead } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </div> </template><template id="SettingsFiltersActionNone"><div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </template><template id="SettingsFiltersActionReject"><div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <div> <textarea class="span5" data-bind="value: actionValue" style="height: 100px;" data-i18n="[placeholder]POPUPS_FILTER/REJECT_MESSAGE_LABEL"></textarea> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </div> </template><template id="SettingsFiltersActionVacation"><div class="control-group" style="margin-bottom: 0"> <div data-bind="component: { name: 'Select', params: { options: [1, 2, 3, 7, 30], label: 'POPUPS_FILTER/REPLY_INTERVAL_LABEL', value: actionValueThird, size: 1 } }"></div> </div> <div class="control-group" data-bind="css: {'error': actionValueFourthError}" style="margin-bottom: 0"> <div> <input type="text" class="span5" data-bind="value: actionValueFourth" data-i18n="[placeholder]POPUPS_FILTER/VACATION_RECIPIENTS_LABEL"> </div> </div> <div class="control-group" style="margin-bottom: 0"> <input type="text" class="span5" data-bind="value: actionValueSecond" data-i18n="[placeholder]POPUPS_FILTER/VACATION_SUBJECT_LABEL"> </div> <div class="control-group" data-bind="css: {'error': actionValueError}" style="margin-bottom: 0"> <textarea class="span5" data-bind="value: actionValue" style="height: 100px;" data-i18n="[placeholder]POPUPS_FILTER/VACATION_MESSAGE_LABEL"></textarea> </div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'POPUPS_FILTER/STOP_LABEL', value: stop } }"></div> </div> </template><template id="SettingsFiltersConditionBody"><select class="span3" data-bind="options: $root.fieldOptions, value: field, optionsText: 'name', optionsValue: 'id'"></select>   <select class="span2" data-bind="options: $root.typeOptionsBody, value: type, optionsText: 'name', optionsValue: 'id'"></select>   <input class="span3" type="text" data-bind="value: value"> </template><template id="SettingsFiltersConditionDefault"><select class="span3" data-bind="options: $root.fieldOptions, value: field, optionsText: 'name', optionsValue: 'id'"></select>   <select class="span2" data-bind="options: $root.typeOptions, value: type, optionsText: 'name', optionsValue: 'id'"></select>   <input class="span3" type="text" data-bind="value: value"> </template><template id="SettingsFiltersConditionMore"><select class="span2" data-bind="options: $root.fieldOptions, value: field, optionsText: 'name', optionsValue: 'id'"></select>   <input class="span2" type="text" data-bind="value: valueSecond">   <select class="span2" data-bind="options: $root.typeOptions, value: type, optionsText: 'name', optionsValue: 'id'"></select>   <input class="span3" type="text" data-bind="value: value"> </template><template id="SettingsFiltersConditionSize"><select class="span3" data-bind="options: $root.fieldOptions, value: field, optionsText: 'name', optionsValue: 'id'"></select>   <select class="span2" data-bind="options: $root.typeOptionsSize, value: type, optionsText: 'name', optionsValue: 'id'"></select>   <input class="span3" type="text" data-bind="value: value"> </template><template id="SettingsFolderItem"><tr data-bind="css: { 'selectable': selectable, 'system': isSystemFolder }"> <td data-bind="click: edit, css: 'deep-' + deep"> <span class="folder-name" data-bind="text: name, tooltipErrorTip: errorMsg"></span> <span class="folder-system-name" data-bind="text: nameInfo, visible: isSystemFolder"></span> <span class="folder-size" data-bind="text: friendlySize, visible: size"></span> </td> <td data-i18n="[title]SETTINGS_FOLDERS/HELP_DELETE_FOLDER"> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: $root.deleteFolder" data-i18n="GLOBAL/ARE_YOU_SURE"></a> <span class="e-action fontastic" data-bind="visible: canBeDeleted() && !askDelete(), click: $root.folderForDeletion">🗑</span> </td> <td data-i18n="[title]SETTINGS_FOLDERS/HELP_SHOW_HIDE_FOLDER" data-bind="if: canBeSubscribed"> <span class="e-action fontastic" data-bind="css: {'unsubscribed-folder':!isSubscribed()}, click: $root.toggleFolderSubscription">👁</span> </td> <!-- ko if: $root.displaySpecSetting --> <td data-i18n="[title]SETTINGS_FOLDERS/HELP_CHECK_FOR_NEW_MESSAGES" data-bind="if: canBeSelected() && isSubscribed()"> <span class="e-action icon-check-mark-circle-two" data-bind="css: {'check-folder':checkable(), 'unchecked-folder':!checkable()}, click: $root.toggleFolderCheckable"></span> </td> <!-- /ko --> <!-- ko if: $root.showKolab --> <td class="kolab" title="Kolab"> <select data-bind="options: $root.kolabTypeOptions, value: kolabType, optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defaultOptionsAfterRender, event:{ input: $root.toggleFolderKolabType}"></select> </td> <!-- /ko --> </tr> <!-- ko template: { name: 'SettingsFolderItem', foreach: subFolders } --><!-- /ko --> </template><template id="SettingsFolders"><div class="legend"> <span data-i18n="SETTINGS_FOLDERS/LEGEND_FOLDERS"></span>     <i class="icon-spinner" style="margin-top: 5px" data-bind="visible: loading"></i> </div> <div style="margin-bottom:20px;" data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_FOLDERS/HIDE_UNSUBSCRIBED', value: hideUnsubscribed } }"></div> <!-- ko if: showKolab --> <div style="margin-bottom:20px;" data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_FOLDERS/UNHIDE_KOLAB_FOLDERS', value: unhideKolabFolders } }"></div> <!-- /ko --> <a class="btn" data-bind="click: createFolder"> <i class="icon-folder-add"></i> <span data-i18n="SETTINGS_FOLDERS/BUTTON_CREATE"></span> </a>    <a class="btn" data-bind="click: systemFolder" data-icon="🔧" data-i18n="SETTINGS_FOLDERS/BUTTON_SYSTEM"></a> <div class="alert folders-list-error" data-bind="visible: folderListOptimized"> <b data-i18n="SETTINGS_FOLDERS/TO_MANY_FOLDERS_DESC_1"></b> <br> <span data-i18n="SETTINGS_FOLDERS/TO_MANY_FOLDERS_DESC_2"></span> </div> <div class="alert folders-list-error" data-bind="visible: '' !== folderListError()"> <a href="#" class="close" data-bind="click: hideError">×</a> <span data-bind="text: folderListError"></span> </div> <table class="table table-hover list-table" data-bind="i18nUpdate: folderList"> <tbody data-bind="template: { name: 'SettingsFolderItem', foreach: folderList }"></tbody> </table> </template><template id="SettingsGeneral"><div class="form-horizontal"> <div class="legend" data-i18n="SETTINGS_LABELS/GENERAL"></div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/IDENTITY"></label> <b class="editMainIdentity" data-bind="click: editMainIdentity, text: identityMainDesc"></b> </div> <div class="control-group" data-bind="visible: allowLanguagesOnSettings"> <label data-i18n="SETTINGS_GENERAL/LANGUAGE"></label> <div> <span class="select" tabindex="0" data-bind="text: languageFullName, click: selectLanguage, onSpace: selectLanguage, onEnter: selectLanguage"></span> <span data-bind="saveTrigger: languageTrigger"></span> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/HOUR_FORMAT"></label> <div> <select data-bind="value: hourCycle"> <option value="" data-i18n="GLOBAL/DEFAULT">default</option> <option value="h11">00:00 AM</option> <option value="h12">12:00 AM</option> <option value="h23">00:00 (24 hour)</option> <option value="h24">24:00 (24 hour)</option> </select> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/LAYOUT"></label> <div data-bind="component: { name: 'Select', params: { options: layoutTypes, value: layout, trigger: layoutTrigger, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/CHECK_MAIL_INTERVAL"></label> <div> <input type="number" max="60" step="1" class="span1" data-bind="textInput: checkMailInterval, attr:{min:minRefreshInterval}"> <span data-i18n="SETTINGS_GENERAL/MINUTES"></span> <span data-bind="saveTrigger: checkMailIntervalTrigger"></span> </div> </div> <div class="control-group"> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/HTML_TO_MD', value: markdown } }"></div> </div> </div> <div class="legend" data-i18n="SHORTCUTS_HELP/TAB_MESSAGE_LIST"></div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/MESSAGE_PER_PAGE"></label> <div> <input type="number" min="10" max="50" step="1" class="span1" data-bind="textInput: messagesPerPage">   <span data-bind="saveTrigger: messagesPerPageTrigger"></span> </div> </div> <div class="control-group"> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/HIDE_DELETED_MESSAGES', value: hideDeleted } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/USE_CHECKBOXES_IN_LIST', value: useCheckboxesInList } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/LIST_MESSAGES_GROUPED', value: listGrouped } }"></div> <div data-bind="visible: threadsAllowed, component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/USE_THREADS', value: useThreads } }"></div> </div> </div> <div class="control-group" data-bind="visible: threadsAllowed() && useThreads()"> <label data-i18n="SETTINGS_GENERAL/THREAD_ALGORITHM"></label> <select data-bind="options: threadAlgorithms, value: threadAlgorithm"></select> </div> <div class="legend" data-i18n="SHORTCUTS_HELP/TAB_MESSAGE_VIEW"></div> <div class="control-group"> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/MARK_MESSAGE_READ_AFTER', value: messageReadAuto } }"></div> <div> <input type="number" min="0" step="1" class="span1" data-bind="textInput: messageReadDelay">   <span data-i18n="SETTINGS_GENERAL/SECONDS"></span> <span data-bind="saveTrigger: messageReadDelayTrigger"></span> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/MSG_DEFAULT_ACTION"></label> <div data-bind="component: { name: 'Select', params: { options: msgDefaultActions, value: msgDefaultAction, trigger: msgDefaultActionTrigger, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group"> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/COLLAPSE_BLOCKQUOTES', value: collapseBlockquotes } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/LIST_INLINE_ATTACHMENTS', value: listInlineAttachments } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/LIST_SIMPLE_ATTACHMENTS', value: simpleAttachmentsList } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/REMOVE_COLORS', value: removeColors } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/ALLOW_STYLES', value: allowStyles } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/PREFER_HTML', value: viewHTML } }"></div> <em style="margin: 0 0 1em 2em;display: block;" data-i18n="SETTINGS_GENERAL/PREFER_HTML_INFO"></em> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/SHOW_NEXT_MESSAGE', value: showNextMessage } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/MESSAGE_POPUP_WINDOW', value: messageNewWindow } }"></div> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/MAX_QUOTE_LEVEL"></label> <div> <input type="number" min="0" step="1" class="span1" data-bind="textInput: maxBlockquotesLevel">   <span data-bind="saveTrigger: maxBlockquotesLevelTrigger"></span> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/EXTERNAL_IMAGES"></label> <div> <select data-bind="value: viewImages"> <option value="ask" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_ASK"></option> <option value="match" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_WHITELIST"></option> <option value="always" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_ALWAYS"></option> </select> </div> </div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/IMAGES_WHITELIST"></label> <div> <textarea data-bind="textInput: viewImagesWhitelist"></textarea> </div> </div> <div class="legend" data-i18n="SHORTCUTS_HELP/TAB_COMPOSE"></div> <div class="control-group"> <label data-i18n="SETTINGS_GENERAL/EDITOR"></label> <div data-bind="component: { name: 'Select', params: { options: editorDefaultTypes, value: editorDefaultType, trigger: editorDefaultTypeTrigger, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group" data-bind="visible: hasWysiwygs"> <label>WYSIWYG</label> <div data-bind="component: { name: 'Select', params: { options: wysiwygs, value: editorWysiwyg, trigger: editorWysiwygTrigger, optionsText: 'name', optionsValue: 'name' } }"></div> </div> <div class="control-group"> <div> <div data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/REPLY_SAME_FOLDER', value: replySameFolder } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'COMPOSE/ALLOW_DRAFT_AUTOSAVE', value: allowDraftAutosave } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'COMPOSE/BUTTON_REQUEST_READ_RECEIPT', value: requestReadReceipt } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'COMPOSE/BUTTON_REQUEST_DSN', value: requestDsn } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'COMPOSE/BUTTON_REQUIRE_TLS', value: requireTLS } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'CRYPTO/SIGN', value: pgpSign } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'CRYPTO/ENCRYPT', value: pgpEncrypt } }"></div> <div data-bind="component: { name: 'Checkbox', params: { label: 'COMPOSE/ALLOW_SPELLCHECK', value: allowSpellcheck } }"></div> </div> </div> <button type="button" data-bind="visible: mailto, click: registerMailto" class="btn" data-i18n="SETTINGS_GENERAL/MAILTO"></button> <div class="legend" data-i18n="SETTINGS_GENERAL/NOTIFICATIONS"></div> <div class="control-group"> <div> <div> <div style="display: inline-block;" data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/CHROME_NOTIFICATION_DESC', value: desktopNotifications, enable: isDesktopNotificationAllowed } }"></div>   <span data-bind="visible: !isDesktopNotificationAllowed()" style="color: #999" data-i18n="SETTINGS_GENERAL/CHROME_NOTIFICATION_DESC_DENIED"></span> <span class="fontastic" data-bind="click: testSystemNotification" style="color:green;cursor:pointer">▶️</span> </div> <div> <div style="display: inline-block;" data-bind="component: { name: 'Checkbox', params: { label: 'SETTINGS_GENERAL/SOUND_NOTIFICATION', value: soundNotification } }"></div>   <select data-bind="options: notificationSounds, value: notificationSound"></select>   <span class="fontastic" data-bind="click: testSoundNotification" style="color:green;cursor:pointer">▶️</span> </div> </div> </div> </div> </template><template id="SettingsMenu"><div class="b-toolbar btn-toolbar"> <a class="btn btn-thin fontastic toggleLeft" data-bind="click: toggleLeftPanel"></a> <a class="btn" data-bind="click: backToInbox" data-icon="⬅" data-i18n="GLOBAL/BACK"></a> </div> <nav data-bind="foreach: menu"> <a data-bind="css: {'selected': selected }, attr: { 'href': $root.link(route), 'data-i18n': label }"></a> </nav> </template><template id="SettingsPane"><div class="btn-toolbar"> <a class="btn btn-thin fontastic toggleLeft"></a> </div> </template><template id="SettingsSecurity"><div class="form-horizontal"> <div class="legend" data-i18n="SETTINGS_SECURITY/LEGEND_SECURITY"></div> <div class="control-group"> <label data-i18n="SETTINGS_SECURITY/LABEL_AUTOLOGOUT"></label> <div data-bind="component: { name: 'Select', params: { options: autoLogoutOptions, value: autoLogout, trigger: autoLogoutTrigger, optionsText: 'name', optionsValue: 'id' } }"></div> </div> <div class="control-group"> <label data-i18n="SETTINGS_SECURITY/FORGET_KEY_PASS"></label> <div data-bind="component: { name: 'Select', params: { options: autoLogoutOptions, value: keyPassForget, trigger: keyPassForgetTrigger, optionsText: 'name', optionsValue: 'id' } }"></div> </div> </div> <div class="legend">OpenPGP</div> <button class="btn" data-bind="click: addOpenPgpKey" data-icon="✚" data-i18n="SETTINGS_OPENPGP/BUTTON_IMPORT_KEY"></button> <!-- ko if: canOpenPGP || canGnuPG -->    <button class="btn" data-bind="click: generateOpenPgpKey" data-icon="🔑" data-i18n="SETTINGS_OPENPGP/BUTTON_GENERATE_KEY_PAIR"></button> <!-- /ko --> <!-- ko if: canGnuPG --> <details style="margin:1em 0"> <summary style="font-size:larger;font-weight:bold">GnuPG</summary> <table class="table table-hover list-table"> <tbody><tr><th colspan="4" data-i18n="SETTINGS_OPENPGP/TITLE_PRIVATE">Private keys</th></tr></tbody> <tbody data-bind="foreach: gnupgPrivateKeys, i18nUpdate: gnupgPrivateKeys"> <tr> <td data-bind="click: view"> <span data-bind="visible: can_sign" class="fontastic" data-i18n="[title]CRYPTO/SIGN">✍</span> <span data-bind="visible: can_decrypt" class="fontastic" data-i18n="[title]CRYPTO/DECRYPT">🔓</span> <span class="key-id" data-bind="text: id"></span> <!-- ko foreach: emails --> <span class="key-user" data-bind="text: $data"></span> <!-- /ko --> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: remove" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-key fontastic" data-bind="visible: !askDelete(), click: openForDeletion">🗑</span> </td> </tr> </tbody> <tbody><tr><th colspan="4" data-i18n="SETTINGS_OPENPGP/TITLE_PUBLIC">Public keys</th></tr></tbody> <tbody data-bind="foreach: gnupgPublicKeys, i18nUpdate: gnupgPublicKeys"> <tr> <td data-bind="click: view"> <span data-bind="visible: can_verify" class="fontastic" data-i18n="[title]CRYPTO/VERIFY">✔</span> <span data-bind="visible: can_encrypt" class="fontastic" data-i18n="[title]CRYPTO/ENCRYPT">🔒</span> <span class="key-id" data-bind="text: id"></span> <!-- ko foreach: emails --> <span class="key-user" data-bind="text: $data"></span> <!-- /ko --> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: remove" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-key fontastic" data-bind="visible: !askDelete(), click: openForDeletion">🗑</span> </td> </tr> </tbody> </table> </details> <!-- /ko --> <!-- ko if: canOpenPGP --> <details style="margin:1em 0"> <summary style="font-size:larger;font-weight:bold">OpenPGP.js</summary> <table class="table table-hover list-table"> <tbody><tr><th colspan="4" data-i18n="SETTINGS_OPENPGP/TITLE_PRIVATE">Private keys</th></tr></tbody> <tbody data-bind="foreach: openpgpkeysPrivate, i18nUpdate: openpgpkeysPrivate"> <tr> <td data-bind="click: view"> <span class="fontastic" data-i18n="[title]SETTINGS_OPENPGP/TITLE_PRIVATE">🔒</span> <span class="key-id" data-bind="text: id"></span> <!-- ko foreach: emails --> <span class="key-user" data-bind="text: $data"></span> <!-- /ko --> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: remove" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-key fontastic" data-bind="visible: !askDelete(), click: openForDeletion">🗑</span> </td> </tr> </tbody> <tbody><tr><th colspan="4" data-i18n="SETTINGS_OPENPGP/TITLE_PUBLIC">Public keys</th></tr></tbody> <tbody data-bind="foreach: openpgpkeysPublic, i18nUpdate: openpgpkeysPublic"> <tr> <td data-bind="click: view"> <span class="fontastic" data-i18n="[title]SETTINGS_OPENPGP/TITLE_PUBLIC">🔑</span> <span class="key-id" data-bind="text: id"></span> <!-- ko foreach: emails --> <span class="key-user" data-bind="text: $data"></span> <!-- /ko --> </td> <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: remove" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-key fontastic" data-bind="visible: !askDelete(), click: openForDeletion">🗑</span> </td> </tr> </tbody> </table> <button class="btn" data-bind="click: importToOpenPGP" data-i18n="SETTINGS_OPENPGP/IMPORT_FROM_SERVER"></button> </details> <!-- /ko --> <details style="margin:1em 0"> <summary style="font-size:larger;font-weight:bold">Mailvelope</summary> <a data-bind="visible: !canMailvelope" href="https://mailvelope.com/en/help" target="_blank" data-i18n="SETTINGS_OPENPGP/GET_MAILVELOPE"></a> <div id="mailvelope-settings" style="height:40em" data-bind="visible: canMailvelope"></div> </details> <details> <summary class="legend" data-i18n="SMIME/CERTIFICATES"></summary> <button class="btn" data-bind="click: importToSMime" data-icon="✚" data-i18n="OPENPGP/POPUP_IMPORT_BUTTON"></button> <table class="table table-hover list-table"> <tbody data-bind="foreach: smimeCertificates, i18nUpdate: smimeCertificates"> <tr> <td> <span data-bind="visible: smimesign" class="fontastic" data-i18n="[title]CRYPTO/VERIFY">✔</span> <span data-bind="visible: smimeencrypt" class="fontastic" data-i18n="[title]CRYPTO/ENCRYPT">🔒</span> <span class="key-name" data-bind="text: CN"></span> <span class="key-user" data-bind="text: emailAddress"></span> <br> <span data-i18n="CRYPTO/VALID_UNTIL"></span>: <time data-time-format="FULL" data-bind="time:validTo_time_t"></time> </td> <!-- TODO <td> <a class="btn btn-small btn-danger button-confirm-delete" data-bind="css: {'delete-access': askDelete()}, click: remove" data-i18n="GLOBAL/ARE_YOU_SURE"></a> </td> <td> <span class="delete-key fontastic" data-bind="visible: !askDelete(), click: openForDeletion">🗑</span> </td> --> </tr> </tbody> </table> </details> </template><template id="SettingsThemes"><div class="legend"> <span data-i18n="SETTINGS_THEMES/LEGEND_THEMES"></span> <span data-bind="saveTrigger: themeTrigger"></span> </div> <div data-bind="foreach: themesObjects"> <figure data-bind="click: $root.setTheme, css: { 'selected': selected }"> <figcaption data-bind="text: nameDisplay"></figcaption> <img data-bind="attr: { 'src': themePreviewSrc }"> </figure> </div> <br> <br> <div class="form-horizontal"> <div class="legend" data-i18n="SETTINGS_THEMES/LABEL_FONTS"></div> <div class="control-group"> <label>Sans-serif</label> <select data-bind="value: fontSansSerif"> <option value="" data-i18n="GLOBAL/DEFAULT"></option> <option value="Arial">Arial</option> <option value="Lucida">Lucida</option> <option value="Tahoma">Tahoma</option> <option value="Trebuchet">Trebuchet</option> <option value="Verdana">Verdana</option> </select> </div> <div class="control-group"> <label>Serif</label> <select data-bind="value: fontSerif"> <option value="" data-i18n="GLOBAL/DEFAULT"></option> <option value="Times">Times</option> <option value="Palatino">Palatino</option> <option value="Georgia">Georgia</option> </select> </div> <div class="control-group"> <label>Mono</label> <select data-bind="value: fontMono"> <option value="" data-i18n="GLOBAL/DEFAULT"></option> <option value="Courier">Courier</option> <option value="Lucida">Lucida</option> </select> </div> </div> <br> <br> <div class="form-horizontal" data-bind="visible: background.enabled"> <div class="legend" data-i18n="SETTINGS_THEMES/LABEL_BACKGROUND"></div> <div class="control-group g-ui-user-select-none"> <div class="row" data-bind="visible: '' !== background.error()" style="margin-left: 0; margin-bottom: 10px;"> <div class="alert alert-error span6" data-bind="text: background.error" style="margin-left: 0"></div> </div> <div class="row" data-bind="visible: '' !== background.name()" style="margin-left: 0"> <a class="btn" data-bind="visible: '' !== background.name(), click: clearBackground" data-icon="✖"></a>     <b data-bind="text: background.name"></b> </div> <div class="row" data-bind="visible: '' === background.name()" style="margin-left: 0"> <a class="btn" data-bind="initDom: background.uploaderButton"> <i class="fontastic" data-bind="css: {'icon-spinner': background.loading()}">🖼</i> <span data-i18n="SETTINGS_THEMES/BUTTON_UPLOAD_BACKGROUND_IMAGE"></span> </a> </div> </div> </div> </template><template id="SystemDropDown"><div class="btn-toolbar g-ui-user-select-none"> <div class="audioPlace" data-bind="visible: '' !== currentAudio(), attr: { title: currentAudio }, click: stopPlay"> <div class="playIcon"><div></div></div> <i class="stopIcon fontastic">⏸</i> </div> <div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true, initDom: accountMenu"> <a id="top-system-dropdown-id" href="#" tabindex="-1" class="btn single btn-block dropdown-toggle"> <span class="accountPlace hide-mobile" data-bind="text: accountName(), attr:{ title: accountEmail }"></span> <i class="fontastic" data-bind="css: {'icon-spinner': accountsLoading()}">👤</i> <!-- <b data-bind="text: accountsUnreadCount, visible: 100 > accountsUnreadCount() && accountsUnreadCount()"></b> <b data-bind="visible: 99 < accountsUnreadCount()">99+</b>   --> </a> <menu class="dropdown-menu right-edge" tabindex="-1" role="menu" aria-labelledby="top-system-dropdown-id"> <!-- ko foreach: accounts --> <li role="presentation"> <a class="email-title" href="#" data-bind="click: $root.accountClick, text: label(), attr: {title: email, 'data-unread': unreadEmails, 'data-icon': $root.accountEmail() === email ? '✔' : '👤'}"></a> </li> <!-- /ko --> <li class="dividerbar" role="presentation" data-bind="visible: allowAccounts"> <a href="#" tabindex="-1" data-bind="click: addAccountClick" data-icon="✚" data-i18n="TOP_TOOLBAR/BUTTON_ADD_ACCOUNT"></a> </li> <li role="presentation" data-bind="visible: allowContacts"> <a href="#" tabindex="-1" data-bind="click: contactsClick" data-icon="📇" data-i18n="GLOBAL/CONTACTS"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: settingsClick" data-icon="⚙" data-i18n="TITLES/SETTINGS"></a> </li> <li role="presentation"> <a href="#" tabindex="-1" data-bind="click: settingsHelp" data-icon="🛈" data-i18n="GLOBAL/HELP"></a> </li> <li class="dividerbar" role="presentation"> <a href="#" tabindex="-1" data-bind="click: logoutClick" data-icon="⏻" data-i18n="GLOBAL/LOGOUT"></a> </li> </menu> </div> </div> </template><template id="Paginator"><nav class="e-paginator g-ui-user-select-none" data-bind="foreach: $data"> <a data-bind="css: { 'current': current }, attr: { title: title }, text: name"></a> </nav> </template><template id="PopupsAsk"><div class="modal-body"> <div data-bind="html: askDesc"></div> <form class="form-horizontal" data-bind="visible: askPass() || askUsername(), submit: yesClick" style="margin: 2em 0 0" id="AskForm"> <div class="control-group" data-bind="visible: askUsername"> <label data-i18n="GLOBAL/USERNAME"></label> <input type="text" data-bind="value: username"> </div> <div class="control-group" data-bind="visible: askPass"> <label data-i18n="GLOBAL/PASSWORD"></label> <input type="password" data-bind="value: passphrase"> </div> <div data-bind="visible: askRemeber, component: { name: 'Checkbox', params: { label: 'GLOBAL/REMEMBER', value: remember } }"></div> </form> </div> <footer> <button class="btn buttonYes" form="AskForm" data-bind="click: yesClick, text: yesButton" data-icon="✔"></button> <button class="btn buttonNo" data-bind="click: noClick, text: noButton" data-icon="✖"></button> </footer> </template><template id="PopupsLanguages"><header> <a href="#" class="close" data-bind="click: close">×</a> <h3 data-i18n="POPUPS_LANGUAGES/TITLE_LANGUAGES"></h3> </header> <div class="modal-body" style="min-height: 150px;" data-bind="foreach: languages"> <label data-bind="click: function () { $root.changeLanguage(key); }, css: {'selected': selected, 'user': user}, attr: { title: title }, text: fullName"> </label> </div> </template> <script nonce="" type="text/javascript">(e=>{const t=t=>e.location.pathname.replace(/\/+$/,"")+"/?/"+t,r=t=>e.getElementById("rl-"+t),a="1"==r("app").dataset.admin,o="application/json",n=e=>{r("loading").hidden=!0,e.hidden=!1},s=e=>{let t=r("loading-error");t.append(e),n(t)},i=t=>t?new Promise(((r,a)=>{const o=e.createElement("script");o.onload=()=>r(),o.onerror=()=>a("Failed loading "+t),o.src=t,e.head.append(o)})):Promise.reject("src is empty");try{let t=e.cookie.match(/(^|;) ?smctoken=([^;]+)/);if(t=t?t[2]:localStorage.getItem("smctoken"),!t){let e=new Uint8Array(16);crypto.getRandomValues(e),t=encodeURIComponent(btoa(String.fromCharCode(...e)))}localStorage.setItem("smctoken",t),e.cookie="smctoken="+t+";path=/;samesite=strict"}catch(e){}let c={};window.rl={adminArea:()=>a,settings:{get:e=>c[e],set:(e,t)=>c[e]=t,app:e=>c.System[e]},setTitle:t=>e.title=(t||"")+(c.title?(t?" - ":"")+c.title:""),setData:e=>{c=e,rl.app.refresh()},loadScript:i,fetch:(e,t,r)=>{t=Object.assign({mode:"same-origin",cache:"no-cache",redirect:"error",referrerPolicy:"no-referrer",credentials:"same-origin",headers:{}},t);let a=1,n=(c.System||{}).token,s={};return r&&(t.method="POST",r instanceof FormData&&(r.forEach(((e,t)=>{e instanceof File?a=0:Reflect.has(s,t)?(Array.isArray(s[t])||(s[t]=[s[t]]),s[t].push(e)):s[t]=e})),a?r=s:n&&r.set("XToken",n)),a&&(t.headers["Content-Type"]=o,r=JSON.stringify(r)),t.body=r),n&&(t.headers["X-SM-Token"]=n),fetch(e,t)},fetchJSON:(e,t,r)=>((t=Object.assign({headers:{}},t)).headers.Accept=o,rl.fetch(e,t,r).then((t=>{if(t.ok){const r=t.headers.get("Content-Type");return r.startsWith(o)?t.json():Promise.reject(new Error(`Invalid Content-Type '${r}' for url '${e}'`))}return Promise.reject(new Error("Network response error: "+t.status))})))},navigator.cookieEnabled?[].flat?rl.fetchJSON(t(`${a?"Admin":""}AppData/0/${Math.random().toString().slice(2)}/`)).then((r=>{c=r;const o=r.StaticLibsJs,n=()=>rl.app.bootstart();i(o).then((()=>i(o.replace("/libs.",`/${a?"admin":"app"}.`)))).then((()=>r.PluginsLink?i(t(r.PluginsLink)):Promise.resolve())).then((()=>rl.app?n():e.addEventListener("readystatechange",(()=>"complete"==e.readyState&&n())))).catch((e=>{throw s(e),e}))})).catch((e=>s(e))):n(r("BadBrowser")):n(r("NoCookie"))})(document);
document.documentElement.lang = 'vi';
rl.I18N={"LANGS_NAMES":{"id":"Bahasa Indonesia","cs":"Čeština","da":"Dansk","de":"Deutsch","et":"Eesti","en":"English","es":"Español","eo":"Esperanto","eu":"Euskara","fr":"Français","is":"Íslenska","it":"Italiano","lv":"Latviešu","lt":"Lietuvių","hu":"Magyar","nl":"Nederlands","nb":"Norsk (bokmål)","pl":"Polski","pt":"Português","pt-BR":"Português (Brasil)","ro":"Română","sk":"Slovenčina","sl":"Slovenščina","fi":"Suomi","sv":"Svenska","vi":"Tiếng Việt","tr":"Türkçe","el":"Ελληνικά","be":"Беларуская","bg":"Български","ru":"Русский","uk":"Українська","ar":"‏العربية‏","fa":"‏فارسی‏","ko":"한국어","ja":"日本語","zh":"简体中文","zh-TW":"繁體中文(台灣)"},"LANGS_NAMES_EN":{"ar":"Arabic","eu":"Basque","be":"Belarusian","bg":"Bulgarian","zh":"Chinese Simplified (China)","zh-TW":"Chinese Traditional (Taiwan)","cs":"Czech","da":"Danish","nl":"Dutch","en":"English","eo":"Esperanto","et":"Estonian","fi":"Finnish","fr":"French","de":"German","el":"Greek","hu":"Hungarian","is":"Icelandic","id":"Indonesian","it":"Italian","ja":"Japanese","ko":"Korean","lv":"Latvian","lt":"Lithuanian","nb":"Norwegian Bokmål","fa":"Persian","pl":"Polish","pt":"Portuguese","pt-BR":"Portuguese (Brazil)","ro":"Romanian","ru":"Russian","sk":"Slovak","sl":"Slovenian","es":"Spanish","sv":"Swedish","tr":"Turkish","uk":"Ukrainian","vi":"Vietnamese"},"LANG_DIR":"ltr","GLOBAL":{"TO_ARCHIVE":"Cho vào kho lưu trữ","ARE_YOU_SURE":"Bạn chắc chắn chứ?","BACK":"Trở về","BCC":"Bcc","CANCEL":"Hủy","CC":"Cc","CLEAR":"Xóa","CLOSE":"Đóng","CONTACTS":"Danh bạ","DELETE":"Xóa","UNDELETE":"Undelete","DONE":"Đã xong","EMAIL":"Email","FROM":"Đến từ","LOADING":"Đang tải","LOGOUT":"Đăng xuất","MORE":"More","MOVE_TO":"Chuyển đến","COPY_TO":"Sao chép vào","NAME":"Tên gọi","NONE":"Trống","TO_SPAM":"Move message(s) to Spam","NOT_SPAM":"Không phải thư rác","USERNAME":"Tên tài khoản","PASSWORD":"Mật khẩu","REMEMBER":"Remember","REPLY_TO":"Nhận thư phản hồi về","SAVE":"Lưu","SAVE_CHANGES":"Save changes?","SEARCH":"Tìm kiếm","SPAM":"Thư rác","SUBJECT":"Tiêu đề","TEST":"Thử nghiệm","TO":"Gửi đến","SERVER_MESSAGE":"Tin nhắn từ máy chủ","YES":"Ok","NO":"Không","INACTIVE":"Inactive","DEFAULT":"mặc định","HELP":"Hỗ trợ","TEXT":"Nội dung trong mail","ATTACHMENTS":"Phần đính kèm"},"LOGIN":{"LABEL_LOGIN":"Đăng nhập","LABEL_SIGN_ME":"Nhớ tên tôi","BUTTON_SIGN_IN":"Đăng nhập"},"TOP_TOOLBAR":{"BUTTON_ADD_ACCOUNT":"Thêm tài khoản"},"SEARCH":{"TITLE_ADV":"Tìm kiếm nâng cao","TEXT":"Nội dung trong mail","HAS_ATTACHMENT":"Có đính kèm","FLAGGED":"Được đánh dấu sao","UNSEEN":"Chưa được xem","DATE":"Ngày","DATE_ALL":"Tất cả","BEFORE_3_DAYS":"Older then 3 days","BEFORE_7_DAYS":"Older then 1 week","BEFORE_MONTH":"Older then 1 month","BEFORE_3_MONTHS":"Older then 3 months","BEFORE_6_MONTHS":"Older then 6 months","BEFORE_YEAR":"Older then 1 year","SINCE_3_DAYS":"Khoảng 3 ngày trước","SINCE_7_DAYS":"Khoảng 1 tuần trước","SINCE_MONTH":"Khoảng 1 tháng trước","SINCE_3_MONTHS":"Khoảng 3 tháng trước","SINCE_6_MONTHS":"Khoảng 6 tháng trước","SINCE_YEAR":"Khoảng 1 năm trước","SUBFOLDERS":"Thư mục con","SUBFOLDERS_NONE":"Trống","SUBFOLDERS_SUBTREE":"Tất cả","SUBFOLDERS_SUBTREE_ONE":"Một cấp độ","REPLIED":"Đã trả lời","KEYWORD":"Tag"},"FOLDER_LIST":{"BUTTON_COMPOSE":"Viết thư","BUTTON_NEW_MESSAGE":"Viết thư mới","INBOX_NAME":"Hộp thư","SENT_NAME":"Thư đã gửi","DRAFTS_NAME":"Thư nháp","TRASH_NAME":"Thùng rác","ARCHIVE_NAME":"Kho lưu trữ"},"IMAP":{"ACL_RIGHTS":"Rights","ACL_A":"Administer","ACL_E":"Expunge","ACL_I":"Insert messages","ACL_K":"Create sub-folders","ACL_L":"Show messages","ACL_P":"Send mail","ACL_R":"Select folder","ACL_S":"\\SEEN tag","ACL_T":"\\DELETED tag","ACL_W":"Other tags","ACL_X":"Delete/Rename folder"},"MESSAGE_LIST":{"BUTTON_RELOAD":"Tải lại danh sách thư","BUTTON_EMPTY_FOLDER":"Xóa trống thư mục","BUTTON_MULTY_FORWARD":"Chuyển tiếp dưới dạng đính kèm","BUTTON_DELETE_WITHOUT_MOVE":"Xóa vĩnh viễn","MENU_SET_SEEN":"Đánh dấu đã đọc","MENU_SET_ALL_SEEN":"Đánh dấu tất cả đã đọc","MENU_UNSET_SEEN":"Đánh dấu chưa đọc","MENU_SET_FLAG":"Đánh dấu sao","MENU_UNSET_FLAG":"Bỏ đánh dấu sao","MENU_SELECT_ALL":"Tất cả","MENU_SELECT_INVERT":"Đảo ngược lại thao tác","MENU_SELECT_UNSEEN":"Chưa đọc","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%\"","BACK_TO_MESSAGE_LIST":"trở về danh sách thư","PUT_MESSAGE_HERE":"Bỏ thư vào đây để xem nó trong danh sách","TODAY_AT":"hôm nay lúc %TIME%","YESTERDAY_AT":"hôm qua lúc %TIME%","NEW_MESSAGE_NOTIFICATION":"Bạn có %COUNT% thư mới!","QUOTA_SIZE":"Đang sử dụng <strong>%SIZE% (%PROC%%)</strong> trong mức <strong>%LIMIT%</strong> của bạn","SORT":"Sắp xếp thư","NO_SORT":"Mail server does not support sorting","SORT_DATE_ASC":"Thư mới hiện trước","SORT_DATE_DESC":"Thư cũ hiện trước","SORT_SIZE_ASC":"Kích cỡ thư nhỏ đến lớn","SORT_SIZE_DESC":"Kích cỡ thư lớn đến nhỏ ","SORT_SUBJECT_ASC":"Tiêu đề thư từ A đến Z","SORT_SUBJECT_DESC":"Tiêu đề thư từ Z đến A","SORT_FROM_ASC":"Từ A đến Z","SORT_FROM_DESC":"Từ Z đến A"},"MESSAGE":{"BUTTON_EDIT":"Chỉnh sửa","BUTTON_UNSUBSCRIBE":"Bỏ theo dõi danh sách này","BUTTON_REPLY":"Phản hồi","BUTTON_REPLY_ALL":"Phản hồi tất cả","BUTTON_FORWARD":"Chuyển tiếp","BUTTON_FORWARD_AS_ATTACHMENT":"Chuyển tiếp dưới dạng đính kèm","BUTTON_EDIT_AS_NEW":"Chỉnh sửa như một thư mới","BUTTON_SHOW_IMAGES":"Hiển thị hình ảnh ngoài gửi vào trong thư","BUTTON_NOTIFY_READ_RECEIPT":"Người gửi đã yêu cầu nhận thông báo khi bạn đọc thư này.","BUTTON_IN_NEW_WINDOW":"Xem trong một trang khác","BUTTON_THREAD_LIST":"Danh sách chuỗi hội thoại","BUTTON_THREAD_PREV":"Phần trước","BUTTON_THREAD_NEXT":"Phần sau","BUTTON_THREAD_MORE":"Hiện thêm thư","MENU_HEADERS":"Hiển thị phần đầu thư","MENU_VIEW_ORIGINAL":"Hiển thị nguồn","HTML_VIEW":"Xem thư dạng HTML","PLAIN_VIEW":"Xem thư dạng văn bản thuần","SWAP_COLORS":"Swap default (background)color","MENU_DOWNLOAD_ORIGINAL":"Tải xuống dưới dạng tập tin .eml","MENU_FILTER_SIMILAR":"Lọc ra những thư dạng này","MENU_PRINT":"In","EMPTY_SUBJECT_TEXT":"(Chưa có tiêu đề)","LABEL_DATE":"Ngày","LABEL_FROM_SHORT":"đến từ","LABEL_TO_SHORT":"gửi đến","PRINT_LABEL_ATTACHMENTS":"Phần đính kèm","MESSAGE_VIEW_DESC":"Chọn bất kỳ thư nào trong danh sách để xem nó ở đây.","MESSAGE_VIEW_MOVE_DESC":"Bấm vào tên thư mục ở góc trái màn hình để chọn mục bạn muốn vào xem.","LINK_DOWNLOAD_AS_ZIP":"Tải xuống dạng zip","SPAM_SCORE":"Điểm số thư rác","HAS_VIRUS_WARNING":"BÁO ĐỘNG ĐỎ: phát hiện có virut trong thư","TAGS":"Thẻ","NEW_TAG":"New tag","ENABLE_TRACKING_LINKS":"Enable tracking links","TRACKING_ENABLED":"Links are now tracked when clicked!"},"MESSAGE_TAGS":{"$important":"Quan trọng","$todo":"Cần làm","$label1":"Quan trọng","$label2":"Công việc","$label3":"Cá nhân","$label4":"Cần làm","$label5":"Để sau"},"READ_RECEIPT":{"SUBJECT":"Thông báo thư đã được gửi thành công - %SUBJECT%","BODY":"Đây là một thông báo cho thư bạn đã gửi đến %READ-RECEIPT%.\n\nXin lưu ý là: \"Thông báo thư đã gửi này ghi nhận là thư của bạn đã được hiển thị lên bên trên máy tính của người nhận thư.\"\nNhưng không hoàn toàn đảm bảo rằng liệu người nhận đã xem qua hay hiểu nội dung trong thư hay chưa.\n"},"SUGGESTIONS":{"SEARCHING_DESC":"Đang tìm kiếm..."},"CONTACTS":{"TAB_CONTACT":"Contact","TAB_LOCATIONS":"Locations","TAB_BUSINESS":"Business","LABEL_ORGANIZATION":"Organization","LABEL_DEPARTMENT":"Department","LABEL_TITLE":"Title","TAB_CRYPTO":"Crypto","ASK":"Ask","NEVER":"Never","ALWAYS":"Always","ALWAYS_IF_POSSIBLE":"Always if possible","BUTTON_ADD_CONTACT":"Thêm liên hệ mới","BUTTON_CREATE_CONTACT":"Tạo","BUTTON_IMPORT":"Nhập thông tin (csv, vcf, vCard)","BUTTON_EXPORT_VCARD":"Xuất thông tin (vcf, vCard)","BUTTON_EXPORT_CSV":"Xuất (csv)","ERROR_IMPORT_FILE":"Lỗi nhập thông tin (định dạng tập tin không hợp lệ)","EMPTY_LIST":"Không có liên hệ nào ở đây","EMPTY_SEARCH":"Không tìm kiếm được liên hệ nào","CLEAR_SEARCH":"Xóa bỏ tìm kiếm","CONTACT_VIEW_DESC":"Chọn một tên liên hệ trong danh sách để hiển thị chi tiết ở đây.","LABEL_BIRTHDAY":"Ngày sinh","DISPLAY_NAME":"Tên hiển thị","LAST_NAME":"Họ","FIRST_NAME":"Tên","MIDDLE_NAME":"Middle name","NAME_PREFIX":"Name prefix","NAME_SUFFIX":"Name suffix","NICK_NAME":"Nickname","LABEL_READ_ONLY":"Chỉ cho phép đọc","ADD_MENU_LABEL":"Thêm vào","ADD_MENU_NICKNAME":"Nickname","ADD_MENU_NOTE":"Ghi chú","ADD_MENU_PHONE":"SĐT","ADD_MENU_URL":"Đường link","ADD_MENU_ADDRESS":"Địa chỉ","ADD_MENU_BIRTHDAY":"Ngày sinh","ADD_MENU_TAGS":"Thẻ","BUTTON_SHARE_ALL":"Tất cả mọi người","BUTTON_SYNC":"Đồng bộ hóa (CardDAV)","SEND_TO_ALL_CONTACT_EMAILS":"Send to all contact emails"},"COMPOSE":{"LINK_SHOW_INPUTS":"hiển thị tất cả mục nhập thông tin","BUTTON_SEND":"Gửi","BUTTON_MINIMIZE":"Thu nhỏ lại","SAVED_TIME":"Đã lưu vào lúc %TIME%","SAVED_ERROR_ON_SEND":"Thư đã được gửi nhưng chưa được lưu vào thư mục Thư đã gửi","DISCARD_UNSAVED_DATA":"Loại bỏ những dữ liệu chưa được lưu?","ATTACH_FILES":"Đính kèm tập tin","ATTACH_DROP_FILES_DESC":"Bỏ tập tin vào đây","REPLY_MESSAGE_TITLE":"%DATETIME%, %EMAIL% đã viết là","FORWARD_MESSAGE_TOP_TITLE":"-------- Thư được chuyển tiếp -------","FORWARD_MESSAGE_TOP_SENT":"Đã gửi","EMPTY_TO_ERROR_DESC":"Xin chọn ít nhất một người để nhận thư","NO_ATTACHMENTS_HERE_DESC":"Không có tập tin đính kèm.","ATTACHMENTS_ERROR_DESC":"Cảnh báo! Các tập tin đính kèm chưa được tải lên hết.","ATTACHMENTS_UPLOAD_ERROR_DESC":"Các tập tin đính kèm chưa được tải lên hết.","ALLOW_SPELLCHECK":"Enable browser spelling checker","ALLOW_DRAFT_AUTOSAVE":"Tự động lưu nháp","BUTTON_REQUEST_READ_RECEIPT":"Yêu cầu thông báo khi người nhận đã đọc thư","BUTTON_MARK_AS_IMPORTANT":"Đánh dấu thư quan trọng","BUTTON_REQUEST_DSN":"Yêu cầu thông báo thư đã gửi thành công","BUTTON_REQUIRE_TLS":"Require secure delivery","ERROR_EMPTY_BODY":"Message body is empty"},"POPUPS_ASK":{"EXIT_ARE_YOU_SURE":"Are you sure you want to exit?","DESC_WANT_CLOSE_THIS_WINDOW":"Bạn có chắc muốn đóng bảng này chứ?","DESC_WANT_DELETE_MESSAGES":"Bạn có chắc muốn xóa thư này chứ?"},"POPUPS_LANGUAGES":{"TITLE_LANGUAGES":"Chọn ngôn ngữ"},"POPUPS_ADD_ACCOUNT":{"TITLE_ADD_ACCOUNT":"Thêm tài khoản","BUTTON_ADD_ACCOUNT":"Thêm vào","TITLE_UPDATE_ACCOUNT":"Cập nhật tài khoản"},"POPUPS_IDENTITY":{"TITLE_ADD_IDENTITY":"Thêm tên gọi mới","TITLE_UPDATE_IDENTITY":"Cập nhật tên gọi","LABEL":"Label","BUTTON_ADD_IDENTITY":"Thêm vào","SIGNATURE":"Signature","LABEL_SIGNATURE_INSERT_BEFORE":"Thêm chữ ký cuối thư này vào trước phần văn bản trích dẫn trong thư phản hồi"},"POPUPS_CREATE_FOLDER":{"TITLE_CREATE_FOLDER":"Tạo một thư mục mới","LABEL_PARENT":"Thư mục chính","BUTTON_CREATE":"Tạo","TITLE_CREATING_PROCESS":"Đang tạo một thư mục"},"POPUPS_CLEAR_FOLDER":{"TITLE_CLEAR_FOLDER":"Xóa hết thư trong thư mục này?","DANGER_DESC_WARNING":"Cảnh báo!","DANGER_DESC_HTML_1":"Thao tác này sẽ xóa hết tất cả những thư đang có trong thư mục <strong>%FOLDER%</strong>.","DANGER_DESC_HTML_2":"Một khi bắt đầu, quá trình xóa này sẽ không thể ngưng giữa chừng hay hủy bỏ.","TITLE_CLEARING_PROCESS":"Đang xóa thư mục..."},"CRYPTO":{"SIGN":"Ký xác nhận","ENCRYPT":"Mã hóa","DECRYPT":"Gỡ mã hóa","VERIFY":"Xác minh","GOOD_SIGNATURE":"Chữ ký ổn từ %USER%","ERROR":"Lỗi %TYPE%: %ERROR%","CREATE_SELF_SIGNED":"Create self-signed","VALID_UNTIL":"Valid until","PRIVATE_KEY":"Private key","CHANGE_PASS":"Change passphrase","CURRENT_PASS":"Current passphrase","NEW_PASS":"New passphrase","ASK_CRYPTKEY_PASS":"Your login passphrase has changed. Please fill in your old login passphrase to decrypt data"},"OPENPGP":{"POPUP_IMPORT_TITLE":"Nhập mật mã OpenPGP","POPUP_IMPORT_BUTTON":"Nhập","POPUP_VIEW_TITLE":"Xem mật mã OpenPGP","POPUP_VIEW_BUTTON":"Chọn","POPUP_GENERATE_TITLE":"Tạo một đôi mật mã OpenPGP","POPUP_GENERATE_BUTTON":"Tạo","LABEL_KEY_TYPE":"Loại","SIGNED_MESSAGE":"Thư đã được ký xác nhận bằng mã OpenPGP","ENCRYPTED_MESSAGE":"Thư đã được mã hóa bởi OpenPGP","STORE_IN_GNUPG":"Lưu trữ trên máy chủ trong GnuPG","STORE_PUBLIC_KEY_IN_GNUPG":"Store public key on server in GnuPG","STORE_PRIVATE_KEY_IN_GNUPG":"Store private key on server in GnuPG","BACKUP_ON_SERVER":"Lưu trữ (đã được mã hóa) trên máy chủ","BACKUP_PUBLIC_KEY_ON_SERVER":"Backup public key on server","BACKUP_PRIVATE_KEY_ON_SERVER":"Backup private key on server"},"SMIME":{"POPUP_IMPORT_TITLE":"Import S/MIME certificate","CERTIFICATE":"Certificate","CERTIFICATES":"S/MIME Certificates","SIGNED_MESSAGE":"Thư đã được ký xác nhận bằng mã S/MIME","ENCRYPTED_MESSAGE":"Thư đã được mã hóa bởi S/MIME","PRIVATE_KEY_OF":"S/MIME private key of %EMAIL%"},"POPUPS_FILTER":{"TITLE_CREATE_FILTER":"Tạo một tấm lọc mới","TITLE_EDIT_FILTER":"Cập nhật tấm lọc thư","LEGEND_CONDITIONS":"Điều kiện","LEGEND_ACTIONS":"Thao tác xử lý","BUTTON_ADD_CONDITION":"Thêm một điều kiện","SELECT_ACTION_MOVE_TO":"Chuyển đến","SELECT_ACTION_FORWARD_TO":"Chuyển tiếp cho","SELECT_ACTION_REJECT":"Từ chối","SELECT_ACTION_VACATION_MESSAGE":"Thư thông báo bạn đang nghỉ lễ","SELECT_ACTION_DISCARD":"Loại bỏ","SELECT_FIELD_RECIPIENTS":"Người nhận (Gửi đến trực tiếp hay CC bản sao thư)","SELECT_FIELD_HEADER":"Phần đầu","SELECT_FIELD_BODY":"Phần thân","SELECT_FIELD_SIZE":"Kích cỡ","SELECT_TYPE_CONTAINS":"Có chứa","SELECT_TYPE_NOT_CONTAINS":"Không chứa","SELECT_TYPE_MATCHES":"Trùng khớp với (* và ? đều được hỗ trợ)","SELECT_TYPE_NOT_MATCHES":"Không trùng với (* và ? đều được hỗ trợ)","SELECT_TYPE_REGEXP":"Biểu thức chính quy (Regexp)","SELECT_TYPE_NOT_REGEXP":"Không phải biểu thức chính quy (Regexp)","SELECT_TYPE_EQUAL_TO":"Giống với","SELECT_TYPE_NOT_EQUAL_TO":"Không giống với","SELECT_TYPE_OVER":"Hơn","SELECT_TYPE_UNDER":"Dưới","SELECT_TYPE_TEXT":"Văn bản","SELECT_TYPE_RAW":"Dạng thuần","SELECT_MATCH_ANY":"Trùng khớp với BẤT KỲ quy định đặt ra bên dưới","SELECT_MATCH_ALL":"Trùng khớp với TẤT CẢ quy định đặt ra bên dưới","MARK_AS_READ_LABEL":"Đánh dấu đã đọc","REPLY_INTERVAL_LABEL":"Khoảng cách phản hồi (ngày)","KEEP_LABEL":"Giữ lại","STOP_LABEL":"Stop further processing of rules","VACATION_SUBJECT_LABEL":"Tiêu đề thư (không bắt buộc)","VACATION_MESSAGE_LABEL":"Nội dung thư thông báo bạn đang nghỉ lễ","VACATION_RECIPIENTS_LABEL":"Người nhận (phân ra bởi dấu phẩy)","REJECT_MESSAGE_LABEL":"Thông báo từ chối nhận thư","ALL_INCOMING_MESSAGES_DESC":"Tất cả những thư gửi đến"},"POPUPS_SIEVE_SCRIPT":{"TITLE_CREATE":"Tạo Script","TITLE_EDIT":"Chỉnh sửa Script","BUTTON_ADD_FILTER":"Thêm một tấm lọc","BUTTON_RAW_SCRIPT":"Dùng Script tùy chỉnh của người dùng","CAPABILITY_LABEL":"Khả năng","CHANGES_NEED_TO_BE_SAVED_DESC":"Những thay đổi này cần được lưu vào máy chủ."},"POPUPS_SYSTEM_FOLDERS":{"TITLE_SYSTEM_FOLDERS":"Chọn thư mục trên hệ thống","SELECT_CHOOSE_ONE":"Chọn một thư mục","SELECT_UNUSE_NAME":"Không dùng thư mục này","NOTIFICATION_SENT":"Bạn vẫn chưa chọn thư mục hệ thống cho phần \"Thư đã gửi\" nơi mà những bức thư đã gửi được lưu vào.\nNếu bạn không muốn lưu lại thư đã gửi, xin hãy chọn \"Không dùng thư mục này\"\n","NOTIFICATION_DRAFTS":"Bạn vẫn chưa chọn thư mục hệ thống cho mục \"Thư nháp\" nơi mà những bản nháp sẽ được lưu lại lúc bạn viết thư.","NOTIFICATION_SPAM":"Bạn vẫn chưa chọn thư mục hệ thống \"Thư rác\" nơi mà những bức thư rác sẽ được lưu vào.\nNếu bạn muốn xóa hẳn những bức thư rác này, xin hãy chọn \"Không dùng thư mục này\"\n","NOTIFICATION_TRASH":"Bạn vẫn chưa chọn thư mục hệ thống \"Thùng rác\" nơi mà những bức thư bạn xóa đi sẽ được bỏ vào.\nNếu bạn muốn xóa hẳn những bức thư này, xin hãy chọn \"Không dùng thư mục này\"\n","NOTIFICATION_ARCHIVE":"Bạn vẫn chưa chọn thư mục hệ thống \"Kho lưu trữ\" nơi mà những bức thư được lưu kho sẽ được đưa vào."},"TITLES":{"MAILBOX":"Hộp thư","SETTINGS":"Cài đặt"},"UPLOAD":{"ERROR_FILE_IS_TOO_BIG":"Tập tin quá lớn","ERROR_FILE_PARTIALLY_UPLOADED":"Tập tin chỉ được tải lên một phần vì một lỗi chưa xác định","ERROR_NO_FILE_UPLOADED":"Không có tập tin nào được tải lên","ERROR_MISSING_TEMP_FOLDER":"Tập tin tạm thời đang bị thiếu","ERROR_ON_SAVING_FILE":"Bị một lỗi chưa xác định khi tải tập tin lên","ERROR_FILE_TYPE":"Dạng tập tin không hợp lệ","ERROR_UNKNOWN":"Bị một lỗi chưa xác định khi tải tập tin lên"},"EDITOR":{"PLAIN":"DẠNG HTML <-> DẠNG CHỮ VIẾT THƯỜNG","SOURCE":"HTML <-> SOURCE","FONTFAMILY":"Font family","FONTSIZE":"Font size","DIR":"Text direction","DIR_LTR":"Left to right","DIR_RTL":"Right to left","DIR_AUTO":"Automatic","TEXTCOLOR":"Text color","BACKGROUNDCOLOR":"Background color","BOLD":"Bold","ITALIC":"Italic","UNDERLINE":"Underline","STRIKE":"Strikethrough","SUB":"Subscript","SUP":"Superscript","OL":"Ordered list","UL":"Unordered list","QUOTE":"Blockquote","INDENTDECREASE":"Decrease indent","INDENTINCREASE":"Increase indent","LINK":"Link","IMAGEURL":"Image URL","IMAGEUPLOAD":"Image select","UNDO":"Undo","REDO":"Redo","REMOVESTYLE":"Remove style"},"SETTINGS_LABELS":{"GENERAL":"General","CONTACTS":"Contacts","FOLDERS":"Folders","ACCOUNTS":"Accounts","FILTERS":"Filters","SECURITY":"Security","THEMES":"Themes"},"SETTINGS_FILTERS":{"SIMPLE":"Đơn giản","ADVANCED":"Kỹ càng","BUTTON_ADD_SCRIPT":"Thêm vào một Script","SUBNAME_MOVE_TO":"Chuyển đến \"%FOLDER%\"","SUBNAME_FORWARD_TO":"Chuyển tiếp đến \"%EMAIL%\"","SUBNAME_REJECT":"Từ chối","SUBNAME_VACATION_MESSAGE":"Thư thông báo bạn đang nghỉ lễ","SUBNAME_DISCARD":"Loại bỏ"},"SETTINGS_SECURITY":{"LEGEND_SECURITY":"An ninh","LABEL_AUTOLOGOUT":"Tự động đăng xuất","FORGET_KEY_PASS":"Forget private key passphrase","NEVER":"Không tự động đăng xuất"},"SETTINGS_GENERAL":{"LANGUAGE":"Ngôn ngữ","HOUR_FORMAT":"Hour format","IDENTITY":"Tên gọi","LAYOUT":"Bố cục","LAYOUT_NO_SPLIT":"Không phân màn hình","LAYOUT_VERTICAL_SPLIT":"Phân dọc màn hình","LAYOUT_HORIZONTAL_SPLIT":"Phân ngang màn hình","SHOW_NEXT_MESSAGE":"Show next message when (re)move current message","EDITOR":"Chỉnh dạng văn bản mặc định","EDITOR_HTML":"Dạng Html","EDITOR_PLAIN":"Dạng chữ viết thường","VIEW_OPTIONS":"Xem những lựa chọn","USE_PREVIEW_PANE":"Dùng bảng xem trước thư","HIDE_DELETED_MESSAGES":"Ẩn các tin nhắn được đánh dấu để xóa","USE_CHECKBOXES_IN_LIST":"Hiển thị ô đánh dấu dưới dạng danh sách","USE_THREADS":"Nối thư qua lại cùng một tiêu đề thành một chuỗi hội thoại","THREAD_ALGORITHM":"Threads algorithm","REPLY_SAME_FOLDER":"Đặt thư phản hồi gửi đi vào chung thư mục của bức thư nhận được","PREFER_HTML":"Nghiêng về lựa chọn HTML hơn dạng chữ viết thường","PREFER_HTML_INFO":"Đôi lúc thư nhận được sẽ ở cả hai dạng. Lựa chọn này cho phép bạn chỉnh phần HTML hay phần chữ viết thường trong thư bạn muốn hiển thị lên.","REMOVE_COLORS":"Loại bỏ hình nền và màu chữ trong phần thân của thư","ALLOW_STYLES":"Allow <style> CSS","MESSAGE_PER_PAGE":"Số thư hiển thị trên trang","CHECK_MAIL_INTERVAL":"Check mail interval","MARK_MESSAGE_READ_AFTER":"Đánh dấu thư là để đọc sau","MSG_DEFAULT_ACTION":"Default action","SECONDS":"giây","MINUTES":"minutes","NOTIFICATIONS":"Thông báo","SOUND_NOTIFICATION":"Thông báo âm thanh","CHROME_NOTIFICATION_DESC":"Hiện thị thông báo nẩy lên nhanh khi có thư mới","CHROME_NOTIFICATION_DESC_DENIED":"(Đang bị chặn bởi trình duyệt web)","COLLAPSE_BLOCKQUOTES":"Collapse quoted text","MAX_QUOTE_LEVEL":"Maximum visible quoted text levels","LIST_INLINE_ATTACHMENTS":"Show inline attachments in list","LIST_SIMPLE_ATTACHMENTS":"Simple attachments list","LIST_MESSAGES_GROUPED":"List messages grouped (when sorting by date or from)","EXTERNAL_IMAGES":"External images","IMAGES_OPTION_ASK":"Always ask","IMAGES_OPTION_WHITELIST":"Whitelist or ask","IMAGES_OPTION_ALWAYS":"Show always","IMAGES_WHITELIST":"Images whitelist","MESSAGE_POPUP_WINDOW":"Popup in new window instead of tab","MAILTO":"Register as 'mailto:' links handler","HTML_TO_MD":"Convert HTML to Markdown instead of plain text"},"SETTINGS_CONTACTS":{"LABEL_CONTACTS_AUTOSAVE":"Tự động thêm người nhận thư vào sổ địa chỉ của bạn","LEGEND_CONTACTS_SYNC":"Đồng bộ hóa từ xa (CardDAV)","LABEL_CONTACTS_SYNC_ENABLE":"Bật chế độ đồng bộ hóa từ xa","LABEL_CONTACTS_SYNC_SERVER":"Máy chủ","LABEL_CONTACTS_SYNC_AB_URL":"Đường link của sổ địa chỉ","LABEL_CONTACTS_SYNC_USER":"Người dùng","SYNC_READ":"Chỉ cho phép đọc"},"SETTINGS_THEMES":{"LEGEND_THEMES":"Phông nền","LABEL_BACKGROUND":"Hình nền","LABEL_FONTS":"Fonts","BUTTON_UPLOAD_BACKGROUND_IMAGE":"Tải hình nền lên (JPG, PNG)","ERROR_FILE_IS_TOO_BIG":"Tập tin hình ảnh quá lớn","ERROR_FILE_TYPE_ERROR":"Định dạng tập tin hình ảnh không hợp lệ (chỉ tải lên được JPG và PNG)","ERROR_UNKNOWN":"Bị một lỗi chưa xác định khi tải tập tin lên"},"SETTINGS_FOLDERS":{"LEGEND_FOLDERS":"Danh sách thư mục","BUTTON_CREATE":"Tạo thư mục","BUTTON_SYSTEM":"Thư mục hệ thống","BUTTON_SUBSCRIBE":"Theo dõi","BUTTON_UNSUBSCRIBE":"Bỏ theo dõi","LOADING_PROCESS":"Đang cập nhật danh sách thư mục","CREATING_PROCESS":"Đang tạo thư mục","DELETING_PROCESS":"Đang xóa thư mục","RENAMING_PROCESS":"Đang đổi tên thư mục","TO_MANY_FOLDERS_DESC_1":"Bạn đã tạo quá nhiều thư mục rồi!","TO_MANY_FOLDERS_DESC_2":"Chúng tôi chỉ hiển thị một vài trong số đó, để tránh vấn đề hiệu năng sử dụng.","HELP_DELETE_FOLDER":"Xóa thư mục","HELP_SHOW_HIDE_FOLDER":"Hiển thị/ẩn đi thư mục","HELP_CHECK_FOR_NEW_MESSAGES":"Kiểm tra xem có thư mới không","HIDE_UNSUBSCRIBED":"Ẩn đi những thư mục đã bỏ theo dõi","UNHIDE_KOLAB_FOLDERS":"Unhide Kolab folders","TYPE_CALENDAR":"Lịch","TYPE_CONFIGURATION":"Cấu hình","TYPE_CONTACTS":"Danh bạ","TYPE_FILES":"Tập tin","TYPE_JOURNAL":"Nhật ký","TYPE_NOTES":"Ghi chú","TYPE_TASKS":"Tác vụ nhỏ"},"SETTINGS_ACCOUNTS":{"LEGEND_ACCOUNTS":"Tài khoản","LEGEND_IDENTITIES":"Tên gọi","LEGEND_ACCOUNTS_AND_IDENTITIES":"Tài khoản và Tên gọi","BUTTON_ADD_ACCOUNT":"Thêm một tài khoản","BUTTON_ADD_IDENTITY":"Thêm một tên gọi","LOADING_PROCESS":"Đang cập nhật...","SHOW_UNREAD":"Show unread messages count"},"SETTINGS_OPENPGP":{"BUTTON_IMPORT_KEY":"Nhập mật mã","BUTTON_GENERATE_KEY_PAIR":"Tạo một đôi mật mã","IMPORT_FROM_SERVER":"Import from server","TITLE_PRIVATE":"Mã lưu riêng","TITLE_PUBLIC":"Mã chia sẻ công cộng","GET_MAILVELOPE":"Tải về tiện ích trình duyệt cài thêm tên Mailvelope."},"SHORTCUTS_HELP":{"LEGEND_SHORTCUTS_HELP":"Hỗ trợ phím tắt","TAB_MAILBOX":"Hộp thư","TAB_MESSAGE_LIST":"Danh sách thư","TAB_MESSAGE_VIEW":"Chế độ xem thư","TAB_COMPOSE":"Viết thư","LABEL_OPEN_USER_DROPDOWN":"Mở phần menu người dùng","LABEL_REPLY":"Phản hồi","LABEL_REPLY_ALL":"Phản hồi tất cả","LABEL_FORWARD":"Chuyển tiếp","LABEL_FORWARD_MULTIPLY":"Chuyển tiếp dưới dạng đính kèm","LABEL_CHECK_ALL":"Chọn tất cả thư","LABEL_DELETE":"Xóa","LABEL_OPEN_THREAD":"Mở chuỗi hội thoại được chọn","LABEL_MOVE":"Di chuyển","LABEL_READ":"Đánh dấu đã đọc những thư được chọn","LABEL_UNREAD":"Đánh dấu chưa đọc những thư được chọn","LABEL_IMPORTANT":"Quan trọng, đánh dấu sao những thư được chọn","LABEL_CANCEL_SEARCH":"Thoát chế độ tìm kiếm","LABEL_FULLSCREEN_ENTER":"Xem toàn màn hình (Kèm theo bố cục bảng xem trước thư)","LABEL_VIEW_MESSAGE_ENTER":"Xem thư (Không kèm theo bố cục bảng xem trước thư)","LABEL_SWITCH_TO_MESSAGE":"Di chuyển sự chú ý đến thư được chọn","LABEL_SWITCH_TO_FOLDER_LIST":"Di chuyển sự chú ý đến danh sách thư mục","LABEL_FULLSCREEN_TOGGLE":"Bật/tắt chế độ xem toàn màn hình","LABEL_BLOCKQUOTES_TOGGLE":"Bật/tắt phần trích dẫn văn bản trong thư (blockquotes)","LABEL_THREAD_NEXT":"Thư tiếp theo trong chuỗi","LABEL_THREAD_PREV":"Thư trước ở trong chuỗi","LABEL_EXIT_FULLSCREEN":"Thoát chế độ xem toàn màn hình","LABEL_CLOSE_MESSAGE":"Đóng thư (Không kèm bố cục bảng xem trước)","LABEL_SWITCH_TO_LIST":"Di chuyển sự chú ý đến danh sách thư","LABEL_OPEN_COMPOSE_POPUP":"Mở bảng viết thư nhanh","LABEL_MINIMIZE_COMPOSE_POPUP":"Thu nhỏ lại bảng viết thư nhanh","LABEL_OPEN_IDENTITIES_DROPDOWN":"Mở phần menu tên gọi","LABEL_SAVE_MESSAGE":"Lưu thư lại","LABEL_SEND_MESSAGE":"Gửi thư","LABEL_CLOSE_COMPOSE":"Đóng bảng viết thư"},"NOTIFICATIONS":{"RequestError":"Request failed","RequestAborted":"Request is aborted","RequestTimeout":"Request timed out","InvalidToken":"Token không hợp lệ","AuthError":"Xác minh thất bại","ConnectionError":"Không thể kết nối với máy chủ","DomainAlreadyExists":"Tên miền đã tồn tại","DomainNotAllowed":"Tên miền không được cho phép truy cập","AccountNotAllowed":"Tài khoản không được cho phép truy cập","CryptKeyError":"Your login passphrase has changed","ContactsSyncError":"Lỗi đồng bộ danh bạ","CantGetMessageList":"Không thể lấy được danh sách thư","CantGetMessage":"Không lấy được thư","CantDeleteMessage":"Không thể xóa được thư","CantCopyMessage":"Không copy được thư","CantMoveMessage":"Không di chuyển được thư","CantSaveMessage":"Không lưu được thư","CantSendMessage":"Không gửi được thư","InvalidRecipients":"Người nhận thư không hợp lệ","CantSaveFilters":"Không thể lưu những tấm lọc thư","CantGetFilters":"Không thể lấy về những tấm lọc thư","CantActivateFiltersScript":"Không thể kích hoạt script lọc thư","CantDeleteFiltersScript":"Không thể xóa script lọc thư","FiltersAreNotCorrect":"Tấm lọc thư chưa đúng","CantCreateFolder":"Không thể tạo thư mục","CantRenameFolder":"Không thể đổi tên thư mục","CantDeleteFolder":"Không thể xóa thư mục","CantDeleteNonEmptyFolder":"Không thể xóa thư mục đang chứa dữ liệu","CantSubscribeFolder":"Không thể theo dõi thư mục","CantUnsubscribeFolder":"Không thể bỏ theo dõi thư mục","DemoSendMessageError":"Vì lý do an ninh, tài khoản này không được phép gửi thư ra cho những địa chỉ email bên ngoài!","DemoAccountError":"Vì lý do an ninh, tài khoản này không được phép thực hiện hành động này!","AccountAlreadyExists":"Tài khoản đã tồn tại","AccountDoesNotExist":"Tài khoản không tồn tại","AccountSwitchFailed":"Không chuyển sang được tài khoản \"%EMAIL%\"","MailServerError":"Có lỗi xảy ra khi truy cập vào máy chủ quản lý mail","InvalidInputArgument":"Thông tin nhập vào không hợp lệ","UnknownError":"Lỗi chưa xác định"}};
rl.relativeTime = {
	long: {
		year: {
			past: {
				one: "{0} năm trước",
				other: "{0} năm trước"
			},
			future: {
				one: "trong {0} năm",
				other: "trong {0} năm"
			}
		},
		month: {
			past: {
				one: "{0} tháng trước",
				other: "{0} tháng trước"
			},
			future: {
				one: "trong {0} tháng",
				other: "trong {0} tháng"
			}
		},
		week: {
			past: {
				one: "{0} tuần trước",
				other: "{0} tuần trước"
			},
			future: {
				one: "trong {0} tuần",
				other: "trong {0} tuần"
			}
		},
		day: {
			past: {
				one: "{0} ngày trước",
				other: "{0} ngày trước"
			},
			future: {
				one: "trong {0} ngày",
				other: "trong {0} ngày"
			}
		},
		hour: {
			past: {
				one: "{0} tiếng trước",
				other: "{0} tiếng trước"
			},
			future: {
				one: "trong {0} tiếng",
				other: "trong {0} tiếng"
			}
		},
		minute: {
			past: {
				one: "{0} phút trước",
				other: "{0} phút trước"
			},
			future: {
				one: "trong {0} phút",
				other: "trong {0} phút"
			}
		},
		second: {
			past: {
				one: "{0} giây trước",
				other: "{0} giây trước"
			},
			future: {
				one: "trong {0} giây",
				other: "trong {0} giây"
			}
		}
	},
	/* 'zero', 'one', 'two', 'few', 'many', 'other' */
	plural: n => 1 == n ? 'one' : 'other'
}
;</script> </body> </html>