mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 15:45:55 +08:00
Added feature to allow <style>
in messages
This commit is contained in:
parent
aae3072209
commit
64818025e8
82
dev/Common/CSS.js
Normal file
82
dev/Common/CSS.js
Normal file
|
@ -0,0 +1,82 @@
|
|||
|
||||
export class CSS
|
||||
{
|
||||
/*
|
||||
Parses given css string, and returns css object
|
||||
keys as selectors and values are css rules
|
||||
eliminates all css comments before parsing
|
||||
|
||||
@param source css string to be parsed
|
||||
|
||||
@return object css
|
||||
*/
|
||||
parse(source) {
|
||||
|
||||
const css = [];
|
||||
|
||||
css.toString = () => css.reduce(
|
||||
(ret, tmp) =>
|
||||
ret + tmp.selector + ' {\n'
|
||||
+ (tmp.type === 'media' ? tmp.subStyles.toString() : tmp.rules)
|
||||
+ '}\n'
|
||||
,
|
||||
''
|
||||
);
|
||||
|
||||
/**
|
||||
* Given css array, parses it and then for every selector,
|
||||
* prepends namespace to prevent css collision issues
|
||||
*/
|
||||
css.applyNamespace = (namespace) => css.forEach(obj => {
|
||||
if (obj.type === 'media') {
|
||||
obj.subStyles.applyNamespace(namespace);
|
||||
} else {
|
||||
obj.selector = obj.selector.split(',').map(selector => namespace + ' ' + selector).join(',');
|
||||
}
|
||||
});
|
||||
|
||||
if (source) {
|
||||
source = source
|
||||
// strip comments
|
||||
.replace(/\/\*[\s\S]*?\*\/|<!--|-->/gi, '')
|
||||
// strip import statements
|
||||
.replace(/@import .*?;/gi , '')
|
||||
// strip keyframe statements
|
||||
.replace(/((@.*?keyframes [\s\S]*?){([\s\S]*?}\s*?)})/gi, '');
|
||||
|
||||
// unified regex to match css & media queries together
|
||||
let unified = /((\s*?(?:\/\*[\s\S]*?\*\/)?\s*?@media[\s\S]*?){([\s\S]*?)}\s*?})|(([\s\S]*?){([\s\S]*?)})/gi,
|
||||
arr;
|
||||
|
||||
while (true) {
|
||||
arr = unified.exec(source);
|
||||
if (arr === null) {
|
||||
break;
|
||||
}
|
||||
|
||||
let selector = arr[arr[2] === undefined ? 5 : 2].split('\r\n').join('\n').trim()
|
||||
// Never have more than a single line break in a row
|
||||
.replace(/\n+/, "\n");
|
||||
|
||||
// determine the type
|
||||
if (selector.includes('@media')) {
|
||||
// we have a media query
|
||||
css.push({
|
||||
selector: selector,
|
||||
type: 'media',
|
||||
subStyles: this.parse(arr[3] + '\n}') //recursively parse media query inner css
|
||||
});
|
||||
} else if (!selector.includes('@') && ![':root','html','body'].includes(selector)) {
|
||||
// we have standard css
|
||||
css.push({
|
||||
selector: selector,
|
||||
rules: arr[6]
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return css;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
import { createElement } from 'Common/Globals';
|
||||
import { CSS } from 'Common/CSS';
|
||||
import { forEachObjectEntry, pInt } from 'Common/Utils';
|
||||
import { SettingsUserStore } from 'Stores/User/Settings';
|
||||
|
||||
|
@ -103,7 +104,7 @@ export const
|
|||
* @param {string} text
|
||||
* @returns {string}
|
||||
*/
|
||||
cleanHtml = (html, oAttachments) => {
|
||||
cleanHtml = (html, oAttachments, msgId) => {
|
||||
let aColor;
|
||||
const
|
||||
debug = false, // Config()->Get('debug', 'enable', false);
|
||||
|
@ -132,7 +133,7 @@ export const
|
|||
},
|
||||
allowedAttributes = [
|
||||
// defaults
|
||||
'name',
|
||||
'name', 'class',
|
||||
'dir', 'lang', 'style', 'title',
|
||||
'background', 'bgcolor', 'alt', 'height', 'width', 'src', 'href',
|
||||
'border', 'bordercolor', 'charset', 'direction',
|
||||
|
@ -160,7 +161,7 @@ export const
|
|||
'colspan', 'rowspan', 'headers'
|
||||
],
|
||||
disallowedTags = [
|
||||
'STYLE','SVG','SCRIPT','TITLE','LINK','BASE','META',
|
||||
'SVG','SCRIPT','TITLE','LINK','BASE','META',
|
||||
'INPUT','OUTPUT','SELECT','BUTTON','TEXTAREA',
|
||||
'BGSOUND','KEYGEN','SOURCE','OBJECT','EMBED','APPLET','IFRAME','FRAME','FRAMESET','VIDEO','AUDIO','AREA','MAP'
|
||||
// Not supported by <template> element
|
||||
|
@ -171,6 +172,8 @@ export const
|
|||
];
|
||||
|
||||
tpl.innerHTML = html
|
||||
// Strip Microsoft comments
|
||||
.replace(/<!--\[if[\s\S]*?endif\]-->/gi, '')
|
||||
// .replace(/<pre[^>]*>[\s\S]*?<\/pre>/gi, pre => pre.replace(/\n/g, '\n<br>'))
|
||||
// Not supported by <template> element
|
||||
// .replace(/<!doctype[^>]*>/gi, '')
|
||||
|
@ -199,6 +202,17 @@ export const
|
|||
const name = oElement.tagName,
|
||||
oStyle = oElement.style;
|
||||
|
||||
if ('STYLE' === name) {
|
||||
if (msgId) {
|
||||
let css = new CSS().parse(oElement.textContent);
|
||||
css.applyNamespace(msgId);
|
||||
oElement.textContent = css;
|
||||
} else {
|
||||
oElement.remove();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// \MailSo\Base\HtmlUtils::ClearTags()
|
||||
if (disallowedTags.includes(name)
|
||||
|| 'none' == oStyle.display
|
||||
|
|
|
@ -25,7 +25,9 @@ import { LanguageStore } from 'Stores/Language';
|
|||
import Remote from 'Remote/User/Fetch';
|
||||
|
||||
const
|
||||
msgHtml = msg => cleanHtml(msg.html(), msg.attachments()),
|
||||
msgHtml = msg => cleanHtml(msg.html(), msg.attachments(),
|
||||
SettingsUserStore.allowStyles() ? '#rl-msg-' + msg.hash : ''
|
||||
),
|
||||
|
||||
toggleTag = (message, keyword) => {
|
||||
const lower = keyword.toLowerCase(),
|
||||
|
|
|
@ -44,7 +44,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
|
|||
|
||||
['layout', 'messageReadDelay', 'messagesPerPage', 'checkMailInterval',
|
||||
'editorDefaultType', 'requestReadReceipt', 'requestDsn', 'requireTLS', 'pgpSign', 'pgpEncrypt',
|
||||
'viewHTML', 'viewImages', 'viewImagesWhitelist', 'removeColors',
|
||||
'viewHTML', 'viewImages', 'viewImagesWhitelist', 'removeColors', 'allowStyles',
|
||||
'hideDeleted', 'listInlineAttachments', 'simpleAttachmentsList', 'collapseBlockquotes', 'maxBlockquotesLevel',
|
||||
'useCheckboxesInList', 'listGrouped', 'useThreads', 'replySameFolder', 'msgDefaultAction', 'allowSpellcheck'
|
||||
].forEach(name => this[name] = SettingsUserStore[name]);
|
||||
|
@ -102,7 +102,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
|
|||
this.addSetting('Layout');
|
||||
this.addSetting('MaxBlockquotesLevel');
|
||||
|
||||
this.addSettings(['ViewHTML', 'ViewImages', 'ViewImagesWhitelist', 'HideDeleted',
|
||||
this.addSettings(['ViewHTML', 'ViewImages', 'ViewImagesWhitelist', 'HideDeleted', 'AllowStyles',
|
||||
'ListInlineAttachments', 'simpleAttachmentsList', 'UseCheckboxesInList', 'listGrouped', 'ReplySameFolder',
|
||||
'requestReadReceipt', 'requestDsn', 'requireTLS', 'pgpSign', 'pgpEncrypt', 'allowSpellcheck',
|
||||
'DesktopNotifications', 'SoundNotification', 'CollapseBlockquotes']);
|
||||
|
|
|
@ -19,6 +19,7 @@ export const SettingsUserStore = new class {
|
|||
viewImages: 0,
|
||||
viewImagesWhitelist: '',
|
||||
removeColors: 0,
|
||||
allowStyles: 0,
|
||||
collapseBlockquotes: 1,
|
||||
maxBlockquotesLevel: 0,
|
||||
listInlineAttachments: 0,
|
||||
|
@ -88,6 +89,7 @@ export const SettingsUserStore = new class {
|
|||
self.viewImages(SettingsGet('ViewImages'));
|
||||
self.viewImagesWhitelist(SettingsGet('ViewImagesWhitelist'));
|
||||
self.removeColors(SettingsGet('RemoveColors'));
|
||||
self.allowStyles(SettingsGet('AllowStyles'));
|
||||
self.collapseBlockquotes(SettingsGet('CollapseBlockquotes'));
|
||||
self.maxBlockquotesLevel(SettingsGet('MaxBlockquotesLevel'));
|
||||
self.listInlineAttachments(SettingsGet('ListInlineAttachments'));
|
||||
|
|
|
@ -689,6 +689,7 @@ class Actions
|
|||
'ViewImages' => 'ask',
|
||||
'ViewImagesWhitelist' => '',
|
||||
'RemoveColors' => (bool) $oConfig->Get('defaults', 'remove_colors', false),
|
||||
'AllowStyles' => false,
|
||||
'ListInlineAttachments' => false,
|
||||
'CollapseBlockquotes' => true,
|
||||
'MaxBlockquotesLevel' => 0,
|
||||
|
@ -801,6 +802,7 @@ class Actions
|
|||
$aResult['ViewImages'] = $oSettings->GetConf('ViewImages', $show_images ? 'always' : 'ask');
|
||||
$aResult['ViewImagesWhitelist'] = $oSettings->GetConf('ViewImagesWhitelist', '');
|
||||
$aResult['RemoveColors'] = (bool)$oSettings->GetConf('RemoveColors', $aResult['RemoveColors']);
|
||||
$aResult['AllowStyles'] = (bool)$oSettings->GetConf('AllowStyles', $aResult['AllowStyles']);
|
||||
$aResult['ListInlineAttachments'] = (bool)$oSettings->GetConf('ListInlineAttachments', $aResult['ListInlineAttachments']);
|
||||
$aResult['CollapseBlockquotes'] = (bool)$oSettings->GetConf('CollapseBlockquotes', $aResult['CollapseBlockquotes']);
|
||||
$aResult['MaxBlockquotesLevel'] = (int)$oSettings->GetConf('MaxBlockquotesLevel', $aResult['MaxBlockquotesLevel']);
|
||||
|
|
|
@ -181,6 +181,7 @@ trait User
|
|||
$this->setSettingsFromParams($oSettings, 'ViewImages', 'string');
|
||||
$this->setSettingsFromParams($oSettings, 'ViewImagesWhitelist', 'string');
|
||||
$this->setSettingsFromParams($oSettings, 'RemoveColors', 'bool');
|
||||
$this->setSettingsFromParams($oSettings, 'AllowStyles', 'bool');
|
||||
$this->setSettingsFromParams($oSettings, 'ListInlineAttachments', 'bool');
|
||||
$this->setSettingsFromParams($oSettings, 'CollapseBlockquotes', 'bool');
|
||||
$this->setSettingsFromParams($oSettings, 'MaxBlockquotesLevel', 'int');
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "الرسائل في الصفحة",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Съобщения на страница",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Zpráv na stranu",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Meddelelser per side",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "HTML gegenüber Klartext bevorzugen",
|
||||
"PREFER_HTML_INFO": "Nachrichten können manchmal in beiden Formaten empfangen werden. Diese Option setzt, ob die Nachricht standardmäßig in HTML oder als Klartext angezeigt wird.",
|
||||
"REMOVE_COLORS": "Entferne Hintergrund- und Textfarben aus der Nachricht",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Nachrichten pro Seite",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Nachricht als gelesen markieren nach",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Μηνύματα στη σελίδα",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Messages on page",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Messages on page",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Eliminar el fondo y los colores del texto del mensaje",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Mensajes en página",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Marcar el mensaje como leído después de",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Lehel kuvatavate kirjade arv",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Lehenetsi HTMLa testu arruntari",
|
||||
"PREFER_HTML_INFO": "Mezuak batzuetan bi formatuetan datoz. Aukera honekin HTML edo testu arrunt partea erakustea aukera dezakezu.",
|
||||
"REMOVE_COLORS": "Kendu atzealdeko irudia eta testuaren kolorean mezuaren gorputzetik",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Orrialdeko mezuak",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Markatu mezua irakurrita ondoren",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "پیامها در صفحه",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Viestiä sivulla",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Préférer le HTML au texte brut",
|
||||
"PREFER_HTML_INFO": "Les messages arrivent parfois dans les deux formats. Cette option contrôle si vous voulez que la partie HTML ou la partie texte brut soit affichée.",
|
||||
"REMOVE_COLORS": "Supprimer les couleurs d'arrière-plan et de texte du message",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Messages par page",
|
||||
"CHECK_MAIL_INTERVAL": "Vérifier le messagerie à l'intervalle",
|
||||
"MARK_MESSAGE_READ_AFTER": "Marquer le message comme lu après",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Üzenetek egy oldalon",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Jelölje meg az üzenetet olvasottként",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Pesan di halaman",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Skilaboð á síðu",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Usa HTML predefinito anziché formato testo",
|
||||
"PREFER_HTML_INFO": "Il messaggio a volte contiene entrambi i formati. Questa opzione agisce sulla visualizzazione del messaggio in HTML o della versione in formato testo.",
|
||||
"REMOVE_COLORS": "Rimuovi lo sfondo e i colori del testo dal messaggio",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Messaggi per pagina",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Contrassegna il messaggio come letto dopo",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "プレーンテキストよりHTMLを優先する",
|
||||
"PREFER_HTML_INFO": "メッセージがHTMLとプレーンテキストの両方の形式を含むことがあります。このオプションはそのような場合にどちらの形式を表示するかを制御します。",
|
||||
"REMOVE_COLORS": "本文の文字色及び背景色の設定を無視する",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "1ページに表示する件数",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "メッセージが既読となるまでの秒数",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "페이지 당 메시지 개수",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Žinučių lape",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Ziņojumi lapā",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Foretrekk HTML fremfor",
|
||||
"PREFER_HTML_INFO": "Meldinger kan ankomme i både HTML og ren tekst. Dette valget styrer hvilken av dem du vil se.",
|
||||
"REMOVE_COLORS": "Fjern bakgrunn og tekstfarger fra brødtekst",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Meldinger per side",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Marker melding som lest etter",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Geef de voorkeur aan HTML boven platte tekst",
|
||||
"PREFER_HTML_INFO": "Berichten komen soms in beide formaten. Deze optie bepaalt of u het HTML-gedeelte of het platte tekstgedeelte wilt weergeven.",
|
||||
"REMOVE_COLORS": "Verwijder achtergrond- en tekstkleuren uit het bericht",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Berichten op pagina",
|
||||
"CHECK_MAIL_INTERVAL": "Controleer mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Bericht markeren als gelezen na",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Wiadomości na stronę",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Mensagens por Página",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Preferir HTML em vez de texto simples",
|
||||
"PREFER_HTML_INFO": "Por vezes as mensagens são recebidas em ambos os formatos. Esta opção determina se prefere apresentar o conteúdo em HTML ou em texto simples.",
|
||||
"REMOVE_COLORS": "Retirar imagens de fundo e coloração de texto do corpo das mensagens",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Mensagens por página",
|
||||
"CHECK_MAIL_INTERVAL": "Intervalo de verificação do correio",
|
||||
"MARK_MESSAGE_READ_AFTER": "Marcar mensagem como lida após",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Preferir HTML em vez de texto simples",
|
||||
"PREFER_HTML_INFO": "Por vezes as mensagens são recebidas em ambos os formatos. Esta opção determina se prefere apresentar o conteúdo em HTML ou em texto simples.",
|
||||
"REMOVE_COLORS": "Retirar imagens de fundo e coloração de texto do corpo das mensagens",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Mensagens por página",
|
||||
"CHECK_MAIL_INTERVAL": "Intervalo de verificação do correio",
|
||||
"MARK_MESSAGE_READ_AFTER": "Marcar mensagem como lida após",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Mesaje pe o pagină",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Cообщений на одной странице",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Správ na stranu",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Sporočil na strani",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Meddelanden per sida",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Markera meddelandet som läst efter",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Messages on page",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "Повідомлень на одній сторінці",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"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",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "相比纯文本优先使用 HTML",
|
||||
"PREFER_HTML_INFO": "消息有时以两种格式传送。该选项控制您希望显示 HTML 部分还是纯文本部分。",
|
||||
"REMOVE_COLORS": "从消息中删除背景和文本颜色",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "每页消息数",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "将消息标记为已读",
|
||||
|
|
|
@ -403,6 +403,7 @@
|
|||
"PREFER_HTML": "Prefer HTML to plain text",
|
||||
"PREFER_HTML_INFO": "Messages sometimes come in both formats. This option controls whether you want the HTML part or the plain text part to be displayed.",
|
||||
"REMOVE_COLORS": "Remove background and text colors from message body",
|
||||
"ALLOW_STYLES": "Allow <style> CSS",
|
||||
"MESSAGE_PER_PAGE": "封郵件每頁",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"MARK_MESSAGE_READ_AFTER": "Mark message as read after",
|
||||
|
|
|
@ -206,6 +206,13 @@
|
|||
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: {
|
||||
|
|
Loading…
Reference in a new issue