mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 23:55:55 +08:00
Merge branch 'the-djmaze:master' into master
This commit is contained in:
commit
919acff536
|
@ -1,4 +1,4 @@
|
|||
import { doc, createElement } from 'Common/Globals';
|
||||
import { createElement } from 'Common/Globals';
|
||||
import { forEachObjectEntry, pInt } from 'Common/Utils';
|
||||
import { SettingsUserStore } from 'Stores/User/Settings';
|
||||
|
||||
|
@ -14,27 +14,13 @@ const
|
|||
"'": '''
|
||||
},
|
||||
|
||||
// eslint-disable-next-line max-len
|
||||
hcont = Element.fromHTML('<div area="hidden" style="position:absolute;top:0;left:-200vw;max-width:max(50vw,400px);max-height:50vh"></div>'),
|
||||
|
||||
blockquoteSwitcher = () => {
|
||||
SettingsUserStore.collapseBlockquotes() &&
|
||||
// tpl.content.querySelectorAll('blockquote').forEach(node => {
|
||||
[...tpl.content.querySelectorAll('blockquote')].reverse().forEach(node => {
|
||||
let h = node.scrollHeight;
|
||||
/*
|
||||
if (!h) {
|
||||
// Attempt to get height
|
||||
hcont.innerHTML = node.outerHTML;
|
||||
h = hcont.scrollHeight;
|
||||
hcont.innerHTML = '';
|
||||
}
|
||||
*/
|
||||
if (0 === h || 100 < h) {
|
||||
const el = Element.fromHTML('<details class="sm-bq-switcher"><summary>•••</summary></details>');
|
||||
node.replaceWith(el);
|
||||
el.append(node);
|
||||
}
|
||||
const el = Element.fromHTML('<details class="sm-bq-switcher"><summary>•••</summary></details>');
|
||||
node.replaceWith(el);
|
||||
el.append(node);
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -103,8 +89,6 @@ const
|
|||
return url;
|
||||
};
|
||||
|
||||
doc.body.append(hcont);
|
||||
|
||||
export const
|
||||
|
||||
/**
|
||||
|
@ -119,6 +103,7 @@ export const
|
|||
* @returns {string}
|
||||
*/
|
||||
cleanHtml = (html, oAttachments) => {
|
||||
let aColor;
|
||||
const
|
||||
debug = false, // Config()->Get('debug', 'enable', false);
|
||||
detectHiddenImages = true, // !!SettingsGet('try_to_detect_hidden_images'),
|
||||
|
@ -137,11 +122,7 @@ export const
|
|||
|
||||
// convert body attributes to CSS
|
||||
tasks = {
|
||||
link: value => {
|
||||
if (/^#[a-fA-Z0-9]{3,6}$/.test(value)) {
|
||||
tpl.content.querySelectorAll('a').forEach(node => node.style.color || (node.style.color = value))
|
||||
}
|
||||
},
|
||||
link: value => aColor = value,
|
||||
text: (value, node) => node.style.color = value,
|
||||
topmargin: (value, node) => node.style.marginTop = pInt(value) + 'px',
|
||||
leftmargin: (value, node) => node.style.marginLeft = pInt(value) + 'px',
|
||||
|
@ -178,9 +159,11 @@ export const
|
|||
'colspan', 'rowspan', 'headers'
|
||||
],
|
||||
disallowedTags = [
|
||||
'HEAD','STYLE','SVG','SCRIPT','TITLE','LINK','BASE','META',
|
||||
'STYLE','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
|
||||
// ,'HTML','HEAD','BODY'
|
||||
],
|
||||
nonEmptyTags = [
|
||||
'A','B','EM','I','SPAN','STRONG'
|
||||
|
@ -188,11 +171,11 @@ export const
|
|||
|
||||
tpl.innerHTML = html
|
||||
// .replace(/<pre[^>]*>[\s\S]*?<\/pre>/gi, pre => pre.replace(/\n/g, '\n<br>'))
|
||||
.replace(/<!doctype[^>]*>/gi, '')
|
||||
.replace(/<\?xml[^>]*\?>/gi, '')
|
||||
// Not supported by <template> element
|
||||
// .replace(/<!doctype[^>]*>/gi, '')
|
||||
// .replace(/<\?xml[^>]*\?>/gi, '')
|
||||
.replace(/<(\/?)body(\s[^>]*)?>/gi, '<$1div class="mail-body"$2>')
|
||||
.replace(/<\/?(html|head)[^>]*>/gi, '')
|
||||
// .replace(/<\/?(html|head)[^>]*>/gi, '')
|
||||
// Fix Reddit https://github.com/the-djmaze/snappymail/issues/540
|
||||
.replace(/<span class="preview-text"[\s\S]+?<\/span>/, '')
|
||||
// https://github.com/the-djmaze/snappymail/issues/900
|
||||
|
@ -303,6 +286,7 @@ export const
|
|||
// setAttribute('rel', 'external nofollow noopener noreferrer');
|
||||
}
|
||||
setAttribute('tabindex', '-1');
|
||||
aColor && !oElement.style.color && (oElement.style.color = aColor);
|
||||
}
|
||||
|
||||
// if (['CENTER','FORM'].includes(name)) {
|
||||
|
|
|
@ -75,6 +75,7 @@ export class MessageModel extends AbstractModel {
|
|||
this.messageId = '';
|
||||
this.inReplyTo = '';
|
||||
this.references = '';
|
||||
this.autocrypt = {};
|
||||
|
||||
addObservablesTo(this, {
|
||||
subject: '',
|
||||
|
@ -111,7 +112,6 @@ export class MessageModel extends AbstractModel {
|
|||
|
||||
readReceipt: '',
|
||||
|
||||
autocrypt: '',
|
||||
// rfc8621
|
||||
id: '',
|
||||
// threadId: '',
|
||||
|
@ -150,8 +150,19 @@ export class MessageModel extends AbstractModel {
|
|||
}
|
||||
});
|
||||
return tagOptions
|
||||
}
|
||||
},
|
||||
|
||||
whitelistOptions: () => {
|
||||
let options = [];
|
||||
if ('match' === SettingsUserStore.viewImages()) {
|
||||
let from = this.from[0],
|
||||
list = SettingsUserStore.viewImagesWhitelist();
|
||||
from && options.push(from.email);
|
||||
this.html().match(/src=["'][^"']+/g)?.forEach(m => options.push(m.replace(/^.+(:\/\/[^/]+).+$/, '$1')));
|
||||
options = options.filter(txt => !list.includes(txt));
|
||||
}
|
||||
return options.unique();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -277,22 +288,13 @@ export class MessageModel extends AbstractModel {
|
|||
body.classList.toggle('plain', 0);
|
||||
|
||||
if (!this.isSpam() && FolderUserStore.spamFolder() != this.folder) {
|
||||
if ('always' === SettingsUserStore.viewImages()) {
|
||||
if (('dkim' === SettingsUserStore.viewImages() && 'pass' === this.dkim[0]?.[0])
|
||||
|| 'always' === SettingsUserStore.viewImages()
|
||||
) {
|
||||
this.showExternalImages();
|
||||
}
|
||||
if ('match' === SettingsUserStore.viewImages()) {
|
||||
let regex = SettingsUserStore.viewImagesWhitelist()
|
||||
.trim()
|
||||
.replace(/[/\-\\^$*+?.()|[\]{}]/g, '\\$&')
|
||||
.replace(/[\s\r\n,;:]+/g, '|')
|
||||
.replace(/\|+/g, '|');
|
||||
if (regex.length) {
|
||||
console.log('whitelist images = '+regex);
|
||||
regex = new RegExp(regex);
|
||||
this.showExternalImages(
|
||||
(this.from[0]?.email.match(regex)/* || this.sender[0]?.email.match(regex)*/) ? null : regex
|
||||
);
|
||||
}
|
||||
this.showExternalImages(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -384,6 +386,20 @@ export class MessageModel extends AbstractModel {
|
|||
showExternalImages(regex) {
|
||||
const body = this.body;
|
||||
if (body && this.hasImages()) {
|
||||
if (regex) {
|
||||
regex = SettingsUserStore.viewImagesWhitelist()
|
||||
.trim()
|
||||
.replace(/[/\-\\^$*+?.()|[\]{}]/g, '\\$&')
|
||||
.replace(/[\s\r\n,;:]+/g, '|')
|
||||
.replace(/\|+/g, '|');
|
||||
if (regex) {
|
||||
console.log('whitelist images = '+regex);
|
||||
regex = new RegExp(regex);
|
||||
if (this.from[0]?.email.match(regex)) {
|
||||
regex = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
let hasImages = false,
|
||||
isValid = src => {
|
||||
if (!regex || src.match(regex)) {
|
||||
|
|
|
@ -840,6 +840,8 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
this.aDraftInfo = ['reply', message.uid, message.folder];
|
||||
this.sInReplyTo = message.messageId;
|
||||
this.sReferences = (message.messageId + ' ' + message.references).trim();
|
||||
// OpenPGP “Transferable Public Key”
|
||||
// message.autocrypt?.keydata
|
||||
break;
|
||||
|
||||
case ComposeType.Forward:
|
||||
|
|
|
@ -499,6 +499,13 @@ export class MailMessageView extends AbstractViewRight {
|
|||
currentMessage().showExternalImages();
|
||||
}
|
||||
|
||||
whitelistText(txt) {
|
||||
let value = (SettingsUserStore.viewImagesWhitelist().trim() + '\n' + txt).trim();
|
||||
SettingsUserStore.viewImagesWhitelist(value);
|
||||
Remote.saveSetting('ViewImagesWhitelist', value);
|
||||
currentMessage().showExternalImages(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
|
|
|
@ -9,8 +9,8 @@ class MailboxDetectPlugin extends \RainLoop\Plugins\AbstractPlugin
|
|||
NAME = 'MailboxDetect',
|
||||
AUTHOR = 'SnappyMail',
|
||||
URL = 'https://snappymail.eu/',
|
||||
VERSION = '2.2',
|
||||
RELEASE = '2023-01-23',
|
||||
VERSION = '2.3',
|
||||
RELEASE = '2023-02-07',
|
||||
REQUIRED = '2.25.0',
|
||||
CATEGORY = 'General',
|
||||
LICENSE = 'MIT',
|
||||
|
@ -36,7 +36,7 @@ class MailboxDetectPlugin extends \RainLoop\Plugins\AbstractPlugin
|
|||
$oActions = \RainLoop\Api::Actions();
|
||||
$oAccount = $oActions->getAccountFromToken();
|
||||
if (!$oAccount) {
|
||||
\error_log('No Account');
|
||||
$this->Logger()->Write('No Account');
|
||||
return;
|
||||
}
|
||||
$oSettingsLocal = $oActions->SettingsProvider(true)->Load($oAccount);
|
||||
|
@ -114,8 +114,9 @@ class MailboxDetectPlugin extends \RainLoop\Plugins\AbstractPlugin
|
|||
foreach ($found as $role => $folders) {
|
||||
if (isset($folders[0])) {
|
||||
// Set the first as default
|
||||
// \error_log("Set role {$role}");
|
||||
$aResponse['Result']['@Collection'][$folders[0]]['role'] = $role;
|
||||
$aFolder = &$aResponse['Result']['@Collection'][$folders[0]];
|
||||
$this->Logger()->Write("Set {$role} mailbox to {$aFolder['fullName']}");
|
||||
$aFolder['role'] = $role;
|
||||
} else if ($this->Config()->Get('plugin', 'autocreate_system_folders', false)) {
|
||||
try
|
||||
{
|
||||
|
@ -136,19 +137,22 @@ class MailboxDetectPlugin extends \RainLoop\Plugins\AbstractPlugin
|
|||
}
|
||||
}
|
||||
*/
|
||||
// \error_log("Create mailbox {$sFolderNameToCreate}");
|
||||
$oFolder = $oActions->MailClient()->FolderCreate(
|
||||
$this->Logger()->Write("Create {$role} mailbox {$sFolderNameToCreate}");
|
||||
$aFolder = $oActions->MailClient()->FolderCreate(
|
||||
$sFolderNameToCreate,
|
||||
$sParent,
|
||||
true,
|
||||
$sDelimiter
|
||||
);
|
||||
$aResponse['Result']['@Collection'][] = \json_encode($oFolder);
|
||||
)->jsonSerialize();
|
||||
$aFolder['role'] = $role;
|
||||
$aResponse['Result']['@Collection'][] = $aFolder;
|
||||
}
|
||||
catch (\Throwable $oException)
|
||||
{
|
||||
$this->Logger()->WriteException($oException);
|
||||
}
|
||||
} else {
|
||||
$this->Logger()->Write("Mailbox for {$role} not created");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -478,7 +478,7 @@ class BodyStructure implements \JsonSerializable
|
|||
$oStructure->sContentType = \strtolower(\trim($sContentTypeMain.'/'.$sContentTypeSub));
|
||||
$oStructure->aContentTypeParams = $aContentTypeParams;
|
||||
$oStructure->sCharset = $sCharset;
|
||||
$oStructure->sContentID = $sContentID;
|
||||
$oStructure->sContentID = \trim($sContentID);
|
||||
$oStructure->sDescription = $sDescription;
|
||||
$oStructure->sMailEncodingName = \strtolower($sMailEncodingName);
|
||||
$oStructure->sDisposition = \strtolower($sDisposition);
|
||||
|
|
|
@ -485,6 +485,14 @@ class Message implements \JsonSerializable
|
|||
$this->aFlagsLowerCase
|
||||
));
|
||||
|
||||
$aAutocrypt = [];
|
||||
if ($this->sAutocrypt) {
|
||||
foreach (\explode(';', $this->sAutocrypt) as $entry) {
|
||||
$entry = \explode('=', \trim($entry), 2);
|
||||
$aAutocrypt[$entry[0]] = $entry[1];
|
||||
}
|
||||
}
|
||||
|
||||
return array(
|
||||
'@Object' => 'Object/Message',
|
||||
'folder' => $this->sFolder,
|
||||
|
@ -512,7 +520,7 @@ class Message implements \JsonSerializable
|
|||
'threads' => $this->aThreads,
|
||||
'unsubsribeLinks' => $this->UnsubsribeLinks,
|
||||
'readReceipt' => '',
|
||||
'autocrypt' => $this->sAutocrypt,
|
||||
'autocrypt' => $aAutocrypt ?: null,
|
||||
|
||||
'attachments' => $this->Attachments,
|
||||
|
||||
|
|
|
@ -1166,7 +1166,7 @@ trait Messages
|
|||
foreach ($aAttachments as $sTempName => $aData) {
|
||||
$sFileName = (string) $aData['name'];
|
||||
$bIsInline = (bool) $aData['inline'];
|
||||
$sCID = (string) $aData['cid'];
|
||||
$sCID = (string) $aData['cId'];
|
||||
$sContentLocation = (string) $aData['location'];
|
||||
$sMimeType = (string) $aData['type'];
|
||||
|
||||
|
|
|
@ -226,26 +226,22 @@ abstract class Upgrade
|
|||
// Prevents Apache access error due to directories being 0700
|
||||
public static function fixPermissions($mode = 0755) : void
|
||||
{
|
||||
\umask(0022);
|
||||
$target = \rtrim(APP_INDEX_ROOT_PATH, '\\/');
|
||||
// Prevent Apache access error due to directories being 0700
|
||||
foreach (\glob("{$target}/snappymail/v/*", \GLOB_ONLYDIR) as $dir) {
|
||||
\chmod($dir, 0755);
|
||||
$iterator = new \RecursiveIteratorIterator(
|
||||
new \RecursiveDirectoryIterator("{$dir}/static", \FilesystemIterator::SKIP_DOTS),
|
||||
\RecursiveIteratorIterator::SELF_FIRST
|
||||
);
|
||||
foreach ($items as $item) {
|
||||
if ($item->isDir()) {
|
||||
\chmod($item, 0755);
|
||||
}
|
||||
}
|
||||
$iterator = new \RecursiveIteratorIterator(
|
||||
new \RecursiveDirectoryIterator("{$dir}/themes", \FilesystemIterator::SKIP_DOTS),
|
||||
\RecursiveIteratorIterator::SELF_FIRST
|
||||
);
|
||||
foreach ($items as $item) {
|
||||
if ($item->isDir()) {
|
||||
\chmod($item, 0755);
|
||||
foreach (['static','themes'] as $folder) {
|
||||
$iterator = new \RecursiveIteratorIterator(
|
||||
new \RecursiveDirectoryIterator("{$dir}/{$folder}", \FilesystemIterator::SKIP_DOTS),
|
||||
\RecursiveIteratorIterator::SELF_FIRST
|
||||
);
|
||||
foreach ($items as $item) {
|
||||
if ($item->isDir()) {
|
||||
\chmod($item, 0755);
|
||||
} else if ($item->isFile()) {
|
||||
\chmod($item, 0644);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -197,7 +197,7 @@
|
|||
"PLACEHOLDER_ENTER_DISPLAY_NAME": "Entrez le nom à afficher",
|
||||
"PLACEHOLDER_ENTER_LAST_NAME": "Entrez votre nom",
|
||||
"PLACEHOLDER_ENTER_FIRST_NAME": "Entrez votre prénom",
|
||||
"PLACEHOLDER_ENTER_NICK_NAME": "Enter le pseudonyme",
|
||||
"PLACEHOLDER_ENTER_NICK_NAME": "Entrez le pseudonyme",
|
||||
"LABEL_READ_ONLY": "Lecture seule",
|
||||
"ADD_MENU_LABEL": "Ajouter",
|
||||
"ADD_MENU_NICKNAME": "Pseudonyme",
|
||||
|
@ -400,7 +400,7 @@
|
|||
"USE_CHECKBOXES_IN_LIST": "Afficher des cases à cocher dans la liste",
|
||||
"USE_THREADS": "Regrouper en conversations",
|
||||
"REPLY_SAME_FOLDER": "Placer les réponses dans le dossier du message",
|
||||
"PREFER_HTML": "Préférer le HTML au texte pur",
|
||||
"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",
|
||||
"MESSAGE_PER_PAGE": "Messages par page",
|
||||
|
@ -419,8 +419,9 @@
|
|||
"LIST_SIMPLE_ATTACHMENTS": "Liste simple des pièces jointes",
|
||||
"LIST_MESSAGES_GROUPED": "Lister les messages groupés (lors du tri par Date ou Destinataire)",
|
||||
"EXTERNAL_IMAGES": "Images externes",
|
||||
"IMAGES_OPTION_ASK": "Toujours demandez",
|
||||
"IMAGES_OPTION_ASK": "Toujours demander",
|
||||
"IMAGES_OPTION_WHITELIST": "Ajouter à la liste blanche ou demander",
|
||||
"IMAGES_OPTION_DKIM": "Toujours afficher quand DKIM est valide",
|
||||
"IMAGES_OPTION_ALWAYS": "Toujours afficher",
|
||||
"IMAGES_WHITELIST": "Liste blanche Images"
|
||||
},
|
||||
|
@ -458,7 +459,7 @@
|
|||
"HELP_SHOW_HIDE_FOLDER": "Afficher\/masquer le dossier",
|
||||
"HELP_CHECK_FOR_NEW_MESSAGES": "Cocher\/Décocher pour les nouveaux messages",
|
||||
"HIDE_UNSUBSCRIBED": "Masquer les dossiers désabonnés",
|
||||
"UNHIDE_KOLAB_FOLDERS": "Unhide Kolab folders",
|
||||
"UNHIDE_KOLAB_FOLDERS": "Afficher les dossiers Kolab",
|
||||
"TYPE_CALENDAR": "Calendrier",
|
||||
"TYPE_CONFIGURATION": "Configuration",
|
||||
"TYPE_CONTACTS": "Contacts",
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"SAVE": "Guardar",
|
||||
"TEST": "Testar",
|
||||
"UPDATE": "Atualizar",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"USERNAME": "Nome de utilizador",
|
||||
"PASSWORD": "Palavra-passe",
|
||||
"CANCEL": "Cancelar"
|
||||
},
|
||||
|
@ -42,7 +42,7 @@
|
|||
"LABEL_ATTACHMENT_SIZE_LIMIT": "Tamanho limite dos anexos",
|
||||
"LABEL_ALLOW_ADDITIONAL_ACCOUNTS": "Permitir contas adicionais",
|
||||
"LABEL_ALLOW_IDENTITIES": "Permitir múltiplas identidades",
|
||||
"ALERT_DATA_ACCESS": "A pasta \"Data\" está acessível. Por favor, configure o seu servidor web para impedir o acesso à pasta \"data\" a partir do exterior. Leia mais aqui:",
|
||||
"ALERT_DATA_ACCESS": "A pasta \"data\" está acessível. Por favor, configure o seu servidor web para impedir o acesso à pasta \"data\" a partir do exterior. Leia mais aqui:",
|
||||
"ALERT_WARNING": "Aviso!",
|
||||
"HTML_ALERT_WEAK_PASSWORD": "Está a usar a palavra-passe de administração predefinida.\n<br>\nPor razões de segurança\n<strong><a href=\"#\/security\">mude<\/a><\/strong>\na palavra-passe agora.\n"
|
||||
},
|
||||
|
@ -65,11 +65,11 @@
|
|||
"LABEL_ENABLE_CONTACTS": "Ativar contactos",
|
||||
"LABEL_ALLOW_SYNC": "Permitir sincronização de contactos (com servidor CardDAV externo)",
|
||||
"LABEL_STORAGE_TYPE": "Tipo",
|
||||
"LABEL_STORAGE_DSN": "Dsn",
|
||||
"LABEL_STORAGE_DSN": "Nome da Origem de Dados (DSN)",
|
||||
"LABEL_STORAGE_USER": "Utilizador",
|
||||
"LABEL_STORAGE_PASSWORD": "Palavra-passe",
|
||||
"ALERT_NOTICE": "Aviso!",
|
||||
"SUGGESTIONS_LIMIT": "Suggestions limit",
|
||||
"SUGGESTIONS_LIMIT": "Limite de sugestões",
|
||||
"HTML_ALERT_DO_NOT_USE_THIS_DATABASE": "Não use este tipo de base de dados com uma grande quantidade de utilizadores ativos.",
|
||||
"HTML_ALERT_DOES_NOT_SUPPORTED": "O seu sistema não suporta contactos.\n<br>\nPrecisa instalar ou ativar a extensão <strong>PDO (SQLite \/ MySQL \/ PostgreSQL)<\/strong> no seu servidor.\n"
|
||||
},
|
||||
|
@ -89,7 +89,7 @@
|
|||
"LABEL_CURRENT_PASSWORD": "Palavra-passe atual",
|
||||
"LABEL_NEW_PASSWORD": "Nova palavra-passe",
|
||||
"LABEL_REPEAT_PASSWORD": "Repetir",
|
||||
"LABEL_REQUIRE_VERIFICATION": "Obrigar a verificação dos certificados SSL utilizados",
|
||||
"LABEL_REQUIRE_VERIFICATION": "Exigir a verificação dos certificados SSL",
|
||||
"LABEL_ALLOW_SELF_SIGNED": "Permitir certificados autoassinados"
|
||||
},
|
||||
"TAB_PACKAGES": {
|
||||
|
@ -101,7 +101,7 @@
|
|||
},
|
||||
"TAB_ABOUT": {
|
||||
"LEGEND_ABOUT": "Acerca",
|
||||
"LABEL_TAG_HINT": "Cliente de email moderno e rápido, baseado em tecnologia web",
|
||||
"LABEL_TAG_HINT": "Cliente de correio web simples, moderno e rápido",
|
||||
"LABEL_ALL_RIGHTS_RESERVED": "Todos os direitos reservados.",
|
||||
"HINT_READ_CHANGE_LOG": "Por favor leia a lista de modificações antes de atualizar.",
|
||||
"HINT_IS_UP_TO_DATE": "SnappyMail está atualizado.",
|
||||
|
@ -124,11 +124,11 @@
|
|||
"LABEL_SERVER": "Servidor",
|
||||
"LABEL_PORT": "Porta",
|
||||
"LABEL_SECURE": "Segurança",
|
||||
"TIMEOUT": "Timeout",
|
||||
"DISABLE_CAPABILITIES": "Disable capabilities",
|
||||
"LIMITS": "Limits",
|
||||
"FOLDERS": "Folders",
|
||||
"MESSAGES": "Messages",
|
||||
"TIMEOUT": "Tempo de espera",
|
||||
"DISABLE_CAPABILITIES": "Desativar capacidades",
|
||||
"LIMITS": "Limites",
|
||||
"FOLDERS": "Pastas",
|
||||
"MESSAGES": "Mensagens",
|
||||
"LABEL_WHITE_LIST": "Lista Branca",
|
||||
"SECURE_OPTION_NONE": "Nenhuma",
|
||||
"LABEL_ALLOW_SIEVE_SCRIPTS": "Permitir scripts sieve",
|
||||
|
@ -165,11 +165,11 @@
|
|||
"UNKNOWN_ERROR": "Erro desconhecido"
|
||||
},
|
||||
"NOTIFICATIONS": {
|
||||
"REQUEST_ERROR": "Request failed",
|
||||
"REQUEST_ABORTED": "Request is aborted",
|
||||
"REQUEST_TIMEOUT": "Request timed out",
|
||||
"REQUEST_ERROR": "A solicitação falhou",
|
||||
"REQUEST_ABORTED": "A solicitação foi abortada",
|
||||
"REQUEST_TIMEOUT": "A solicitação expirou",
|
||||
"INVALID_TOKEN": "Token inválido",
|
||||
"AUTH_ERROR": "Falha na autenticação",
|
||||
"AUTH_ERROR": "A autenticação falhou",
|
||||
"DOMAIN_ALREADY_EXISTS": "O domínio já existe",
|
||||
"CANT_SAVE_PLUGIN_SETTINGS": "Não é possível guardar as definições",
|
||||
"CANT_INSTALL_PACKAGE": "Não foi possível instalar a extensão",
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"BACK_LINK": "Recarregar",
|
||||
"NO_SCRIPT_TITLE": "É necessário JavaScript para esta aplicação.",
|
||||
"NO_SCRIPT_DESC": "O suporte de JavaScript não está disponível no seu navegador.\nPor favor ative o suporte de JavaScript nas definições do seu navegador e tente novamente.\n",
|
||||
"NO_SCRIPT_DESC": "O suporte de JavaScript não está disponível no seu navegador.\nPor favor ative o suporte de JavaScript nas definições do seu navegador e tente novamente.",
|
||||
"NO_COOKIE_TITLE": "É necessário suporte de Cookies para esta aplicação.",
|
||||
"NO_COOKIE_DESC": "O suporte de Cookies não está disponível no seu navegador.\nPor favor ative o suporte de Cookies nas definições do seu navegador e tente novamente.\n",
|
||||
"NO_COOKIE_DESC": "O suporte de Cookies não está disponível no seu navegador.\nPor favor ative o suporte de Cookies nas definições do seu navegador e tente novamente.",
|
||||
"BAD_BROWSER_TITLE": "O seu navegador está desatualizado.",
|
||||
"BAD_BROWSER_DESC": "Para usar todas as funções da aplicação,\ntransfira e instale um destes navegadores:\n"
|
||||
"BAD_BROWSER_DESC": "Para usar todas as funções da aplicação,\ntransfira e instale um navegador recente."
|
||||
}
|
||||
|
|
|
@ -22,10 +22,10 @@
|
|||
"NOT_SPAM": "Não é spam",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"PASSWORD": "Palavra-passe",
|
||||
"REMEMBER": "Remember",
|
||||
"REMEMBER": "Lembrar",
|
||||
"REPLY_TO": "Resp.-Para",
|
||||
"SAVE": "Guardar",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
"SAVE_CHANGES": "Guardar alterações?",
|
||||
"SEARCH": "Pesquisar",
|
||||
"SPAM": "Spam",
|
||||
"SUBJECT": "Assunto",
|
||||
|
@ -34,7 +34,7 @@
|
|||
"SERVER_MESSAGE": "Mensagem do servidor",
|
||||
"YES": "Sim",
|
||||
"NO": "Não",
|
||||
"INACTIVE": "Inactive",
|
||||
"INACTIVE": "Inativo",
|
||||
"DEFAULT": "predefinida",
|
||||
"HELP": "Ajuda"
|
||||
},
|
||||
|
@ -152,7 +152,7 @@
|
|||
"SPAM_SCORE": "Pontuação de Spam",
|
||||
"HAS_VIRUS_WARNING": "AVISO: vírus detetado",
|
||||
"TAGS": "Marcadores",
|
||||
"NEW_TAG": "New tag"
|
||||
"NEW_TAG": "Novo marcador"
|
||||
},
|
||||
"MESSAGE_TAGS": {
|
||||
"$important": "Importante",
|
||||
|
@ -171,17 +171,17 @@
|
|||
"SEARCHING_DESC": "A pesquisar..."
|
||||
},
|
||||
"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",
|
||||
"TAB_CONTACT": "Contactos",
|
||||
"TAB_LOCATIONS": "Localizações",
|
||||
"TAB_BUSINESS": "Empresa",
|
||||
"LABEL_ORGANIZATION": "Empresa",
|
||||
"LABEL_DEPARTMENT": "Departamento",
|
||||
"LABEL_TITLE": "Cargo",
|
||||
"TAB_CRYPTO": "Criptografia",
|
||||
"ASK": "Perguntar",
|
||||
"NEVER": "Nunca",
|
||||
"ALWAYS": "Sempre",
|
||||
"ALWAYS_IF_POSSIBLE": "Sempre que possível",
|
||||
"BUTTON_ADD_CONTACT": "Adicionar contacto",
|
||||
"BUTTON_CREATE_CONTACT": "Criar",
|
||||
"BUTTON_UPDATE_CONTACT": "Atualizar",
|
||||
|
@ -203,7 +203,7 @@
|
|||
"ADD_MENU_NICKNAME": "Alcunha",
|
||||
"ADD_MENU_NOTE": "Notas",
|
||||
"ADD_MENU_PHONE": "Telefone",
|
||||
"ADD_MENU_URL": "URL",
|
||||
"ADD_MENU_URL": "Website",
|
||||
"ADD_MENU_ADDRESS": "Morada",
|
||||
"ADD_MENU_BIRTHDAY": "Aniversário",
|
||||
"ADD_MENU_TAGS": "Marcadores",
|
||||
|
@ -226,18 +226,18 @@
|
|||
"NO_ATTACHMENTS_HERE_DESC": "Sem anexos aqui.",
|
||||
"ATTACHMENTS_ERROR_DESC": "Aviso! Nem todos os anexos foram carregados.",
|
||||
"ATTACHMENTS_UPLOAD_ERROR_DESC": "Ainda não foram carregados todos os anexos",
|
||||
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
|
||||
"ALLOW_SPELLCHECK": "Ativar corretor ortográfico do navegador",
|
||||
"BUTTON_REQUEST_READ_RECEIPT": "Pedir um recibo de leitura",
|
||||
"BUTTON_MARK_AS_IMPORTANT": "Marcar como importante",
|
||||
"BUTTON_REQUEST_DSN": "Pedir um recibo de entrega",
|
||||
"BUTTON_REQUIRE_TLS": "Require secure delivery"
|
||||
"BUTTON_REQUIRE_TLS": "Exigir entrega segura"
|
||||
},
|
||||
"POPUPS_ASK": {
|
||||
"DESC_WANT_CLOSE_THIS_WINDOW": "Tem a certeza de que quer fechar esta janela?",
|
||||
"DESC_WANT_DELETE_MESSAGES": "Tem a certeza de que quer eliminar a(s) mensagem(s)?"
|
||||
},
|
||||
"POPUPS_LANGUAGES": {
|
||||
"TITLE_LANGUAGES": "Escolha o idioma"
|
||||
"TITLE_LANGUAGES": "Escolha o seu idioma"
|
||||
},
|
||||
"POPUPS_ADD_ACCOUNT": {
|
||||
"TITLE_ADD_ACCOUNT": "Adicionar conta?",
|
||||
|
@ -316,7 +316,7 @@
|
|||
"MARK_AS_READ_LABEL": "Marcar como lida",
|
||||
"REPLY_INTERVAL_LABEL": "Intervalo de resposta (dias)",
|
||||
"KEEP_LABEL": "Manter",
|
||||
"STOP_LABEL": "Stop further processing of rules",
|
||||
"STOP_LABEL": "Interromper o processamento das regras",
|
||||
"VACATION_SUBJECT_LABEL": "Assunto (opcional)",
|
||||
"VACATION_MESSAGE_LABEL": "Mensagem",
|
||||
"VACATION_RECIPIENTS_LABEL": "Destinatários (separados por vírgula)",
|
||||
|
@ -356,7 +356,7 @@
|
|||
},
|
||||
"EDITOR": {
|
||||
"TEXT_SWITCHER_PLAIN_TEXT": "HTML <-> TEXTO",
|
||||
"TEXT_SWITCHER_SOURCE": "HTML <-> SOURCE"
|
||||
"TEXT_SWITCHER_SOURCE": "HTML <-> FONTE"
|
||||
},
|
||||
"SETTINGS_LABELS": {
|
||||
"GENERAL": "Geral",
|
||||
|
@ -385,7 +385,7 @@
|
|||
"SETTINGS_GENERAL": {
|
||||
"LEGEND_GENERAL": "Geral",
|
||||
"LANGUAGE": "Idioma",
|
||||
"HOUR_FORMAT": "Hour format",
|
||||
"HOUR_FORMAT": "Formato da hora",
|
||||
"IDENTITY": "Identidade",
|
||||
"LAYOUT": "Apresentação",
|
||||
"LAYOUT_NO_SPLIT": "Sem separação",
|
||||
|
@ -396,7 +396,7 @@
|
|||
"EDITOR_PLAIN": "Texto simples",
|
||||
"VIEW_OPTIONS": "Ver opções",
|
||||
"USE_PREVIEW_PANE": "Use o painel de pré-visualização",
|
||||
"HIDE_DELETED_MESSAGES": "Ocultar mensagens marcadas para exclusão",
|
||||
"HIDE_DELETED_MESSAGES": "Ocultar mensagens marcadas para eliminação",
|
||||
"USE_CHECKBOXES_IN_LIST": "Apresentar caixas de seleção na lista",
|
||||
"USE_THREADS": "Usar tópicos de conversa",
|
||||
"REPLY_SAME_FOLDER": "Colocar respostas na pasta das mensagens a que responde",
|
||||
|
@ -404,25 +404,26 @@
|
|||
"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",
|
||||
"MESSAGE_PER_PAGE": "Mensagens por página",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"CHECK_MAIL_INTERVAL": "Intervalo de verificação do correio",
|
||||
"MARK_MESSAGE_READ_AFTER": "Marcar mensagem como lida após",
|
||||
"MSG_DEFAULT_ACTION": "Default action",
|
||||
"MSG_DEFAULT_ACTION": "Ação predefinida",
|
||||
"SECONDS": "segundos",
|
||||
"MINUTES": "minutes",
|
||||
"MINUTES": "minutos",
|
||||
"NOTIFICATIONS": "Notificações",
|
||||
"SOUND_NOTIFICATION": "Notificações sonoras",
|
||||
"CHROME_NOTIFICATION_DESC": "Apresentar notificações para novas mensagens",
|
||||
"CHROME_NOTIFICATION_DESC_DENIED": "(Bloqueado pelo navegador)",
|
||||
"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"
|
||||
"COLLAPSE_BLOCKQUOTES": "Minimizar texto citado",
|
||||
"MAX_QUOTE_LEVEL": "Níveis máximos de texto citado visíveis",
|
||||
"LIST_INLINE_ATTACHMENTS": "Mostrar na lista de anexos os anexos integrados no corpo",
|
||||
"LIST_SIMPLE_ATTACHMENTS": "Lista simples de anexos",
|
||||
"LIST_MESSAGES_GROUPED": "Agrupar mensagens listadas (quando ordenadas por data ou remetente)",
|
||||
"EXTERNAL_IMAGES": "Imagens externas",
|
||||
"IMAGES_OPTION_ASK": "Perguntar sempre",
|
||||
"IMAGES_OPTION_WHITELIST": "Lista Branca ou perguntar",
|
||||
"IMAGES_OPTION_DKIM": "Mostrar sempre que DKIM for válido",
|
||||
"IMAGES_OPTION_ALWAYS": "Mostrar sempre",
|
||||
"IMAGES_WHITELIST": "Lista Branca de imagens"
|
||||
},
|
||||
"SETTINGS_CONTACTS": {
|
||||
"LABEL_CONTACTS_AUTOSAVE": "Adicionar destinatários automaticamente à sua lista de endereços",
|
||||
|
@ -436,7 +437,7 @@
|
|||
"SETTINGS_THEMES": {
|
||||
"LEGEND_THEMES": "Temas",
|
||||
"LABEL_BACKGROUND": "Imagem de fundo",
|
||||
"LABEL_FONTS": "Fonts",
|
||||
"LABEL_FONTS": "Tipos de letra",
|
||||
"BUTTON_UPLOAD_BACKGROUND_IMAGE": "Carregar imagem de fundo (JPG, PNG)",
|
||||
"ERROR_FILE_IS_TOO_BIG": "Ficheiro muito grande",
|
||||
"ERROR_FILE_TYPE_ERROR": "Tipo de ficheiro inválido (apenas JPG e PNG)",
|
||||
|
@ -457,8 +458,8 @@
|
|||
"HELP_DELETE_FOLDER": "Eliminar pasta",
|
||||
"HELP_SHOW_HIDE_FOLDER": "Mostrar\/ocultar pasta",
|
||||
"HELP_CHECK_FOR_NEW_MESSAGES": "Procurar\/não procurar novas mensagens",
|
||||
"HIDE_UNSUBSCRIBED": "Esconder pastas não-subscritas",
|
||||
"UNHIDE_KOLAB_FOLDERS": "Unhide Kolab folders",
|
||||
"HIDE_UNSUBSCRIBED": "Esconder pastas não subscritas",
|
||||
"UNHIDE_KOLAB_FOLDERS": "Tonar pastas Kolab visíveis",
|
||||
"TYPE_CALENDAR": "Calendário",
|
||||
"TYPE_CONFIGURATION": "Configuração",
|
||||
"TYPE_CONTACTS": "Contactos",
|
||||
|
@ -474,7 +475,7 @@
|
|||
"BUTTON_ADD_ACCOUNT": "Adicionar uma conta",
|
||||
"BUTTON_ADD_IDENTITY": "Adicionar uma identidade",
|
||||
"LOADING_PROCESS": "A atualizar...",
|
||||
"SHOW_UNREAD": "Show unread messages count"
|
||||
"SHOW_UNREAD": "Mostrar contador de mensagens não lidas"
|
||||
},
|
||||
"SETTINGS_OPENPGP": {
|
||||
"BUTTON_IMPORT_KEY": "Importar chave",
|
||||
|
@ -522,11 +523,11 @@
|
|||
"LABEL_CLOSE_COMPOSE": "Fechar janela de composição"
|
||||
},
|
||||
"NOTIFICATIONS": {
|
||||
"REQUEST_ERROR": "Request failed",
|
||||
"REQUEST_ABORTED": "Request is aborted",
|
||||
"REQUEST_TIMEOUT": "Request timed out",
|
||||
"REQUEST_ERROR": "A solicitação falhou",
|
||||
"REQUEST_ABORTED": "A solicitação foi abortada",
|
||||
"REQUEST_TIMEOUT": "A solicitação expirou",
|
||||
"INVALID_TOKEN": "Token inválido",
|
||||
"AUTH_ERROR": "Falha na autenticação",
|
||||
"AUTH_ERROR": "A autenticação falhou",
|
||||
"CONNECTION_ERROR": "Não foi possível ligar ao servidor",
|
||||
"DOMAIN_ALREADY_EXISTS": "O domínio já existe",
|
||||
"DOMAIN_NOT_ALLOWED": "Este domínio não é permitido",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"SAVE": "Guardar",
|
||||
"TEST": "Testar",
|
||||
"UPDATE": "Atualizar",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"USERNAME": "Nome de utilizador",
|
||||
"PASSWORD": "Palavra-passe",
|
||||
"CANCEL": "Cancelar"
|
||||
},
|
||||
|
@ -42,7 +42,7 @@
|
|||
"LABEL_ATTACHMENT_SIZE_LIMIT": "Tamanho limite dos anexos",
|
||||
"LABEL_ALLOW_ADDITIONAL_ACCOUNTS": "Permitir contas adicionais",
|
||||
"LABEL_ALLOW_IDENTITIES": "Permitir múltiplas identidades",
|
||||
"ALERT_DATA_ACCESS": "A pasta \"Data\" está acessível. Por favor, configure o seu servidor web para impedir o acesso à pasta \"data\" a partir do exterior. Leia mais aqui:",
|
||||
"ALERT_DATA_ACCESS": "A pasta \"data\" está acessível. Por favor, configure o seu servidor web para impedir o acesso à pasta \"data\" a partir do exterior. Leia mais aqui:",
|
||||
"ALERT_WARNING": "Aviso!",
|
||||
"HTML_ALERT_WEAK_PASSWORD": "Está a usar a palavra-passe de administração predefinida.\n<br>\nPor razões de segurança\n<strong><a href=\"#\/security\">mude<\/a><\/strong>\na palavra-passe agora.\n"
|
||||
},
|
||||
|
@ -65,11 +65,11 @@
|
|||
"LABEL_ENABLE_CONTACTS": "Ativar contactos",
|
||||
"LABEL_ALLOW_SYNC": "Permitir sincronização de contactos (com servidor CardDAV externo)",
|
||||
"LABEL_STORAGE_TYPE": "Tipo",
|
||||
"LABEL_STORAGE_DSN": "Dsn",
|
||||
"LABEL_STORAGE_DSN": "Nome da Origem de Dados (DSN)",
|
||||
"LABEL_STORAGE_USER": "Utilizador",
|
||||
"LABEL_STORAGE_PASSWORD": "Palavra-passe",
|
||||
"ALERT_NOTICE": "Aviso!",
|
||||
"SUGGESTIONS_LIMIT": "Suggestions limit",
|
||||
"SUGGESTIONS_LIMIT": "Limite de sugestões",
|
||||
"HTML_ALERT_DO_NOT_USE_THIS_DATABASE": "Não use este tipo de base de dados com uma grande quantidade de utilizadores ativos.",
|
||||
"HTML_ALERT_DOES_NOT_SUPPORTED": "O seu sistema não suporta contactos.\n<br>\nPrecisa instalar ou ativar a extensão <strong>PDO (SQLite \/ MySQL \/ PostgreSQL)<\/strong> no seu servidor.\n"
|
||||
},
|
||||
|
@ -89,7 +89,7 @@
|
|||
"LABEL_CURRENT_PASSWORD": "Palavra-passe atual",
|
||||
"LABEL_NEW_PASSWORD": "Nova palavra-passe",
|
||||
"LABEL_REPEAT_PASSWORD": "Repetir",
|
||||
"LABEL_REQUIRE_VERIFICATION": "Obrigar a verificação dos certificados SSL utilizados",
|
||||
"LABEL_REQUIRE_VERIFICATION": "Exigir a verificação dos certificados SSL",
|
||||
"LABEL_ALLOW_SELF_SIGNED": "Permitir certificados autoassinados"
|
||||
},
|
||||
"TAB_PACKAGES": {
|
||||
|
@ -101,7 +101,7 @@
|
|||
},
|
||||
"TAB_ABOUT": {
|
||||
"LEGEND_ABOUT": "Acerca",
|
||||
"LABEL_TAG_HINT": "Cliente de email moderno e rápido, baseado em tecnologia web",
|
||||
"LABEL_TAG_HINT": "Cliente de correio web simples, moderno e rápido",
|
||||
"LABEL_ALL_RIGHTS_RESERVED": "Todos os direitos reservados.",
|
||||
"HINT_READ_CHANGE_LOG": "Por favor leia a lista de modificações antes de atualizar.",
|
||||
"HINT_IS_UP_TO_DATE": "SnappyMail está atualizado.",
|
||||
|
@ -124,11 +124,11 @@
|
|||
"LABEL_SERVER": "Servidor",
|
||||
"LABEL_PORT": "Porta",
|
||||
"LABEL_SECURE": "Segurança",
|
||||
"TIMEOUT": "Timeout",
|
||||
"DISABLE_CAPABILITIES": "Disable capabilities",
|
||||
"LIMITS": "Limits",
|
||||
"FOLDERS": "Folders",
|
||||
"MESSAGES": "Messages",
|
||||
"TIMEOUT": "Tempo de espera",
|
||||
"DISABLE_CAPABILITIES": "Desativar capacidades",
|
||||
"LIMITS": "Limites",
|
||||
"FOLDERS": "Pastas",
|
||||
"MESSAGES": "Mensagens",
|
||||
"LABEL_WHITE_LIST": "Lista Branca",
|
||||
"SECURE_OPTION_NONE": "Nenhuma",
|
||||
"LABEL_ALLOW_SIEVE_SCRIPTS": "Permitir scripts sieve",
|
||||
|
@ -165,11 +165,11 @@
|
|||
"UNKNOWN_ERROR": "Erro desconhecido"
|
||||
},
|
||||
"NOTIFICATIONS": {
|
||||
"REQUEST_ERROR": "Request failed",
|
||||
"REQUEST_ABORTED": "Request is aborted",
|
||||
"REQUEST_TIMEOUT": "Request timed out",
|
||||
"REQUEST_ERROR": "A solicitação falhou",
|
||||
"REQUEST_ABORTED": "A solicitação foi abortada",
|
||||
"REQUEST_TIMEOUT": "A solicitação expirou",
|
||||
"INVALID_TOKEN": "Token inválido",
|
||||
"AUTH_ERROR": "Falha na autenticação",
|
||||
"AUTH_ERROR": "A autenticação falhou",
|
||||
"DOMAIN_ALREADY_EXISTS": "O domínio já existe",
|
||||
"CANT_SAVE_PLUGIN_SETTINGS": "Não é possível guardar as definições",
|
||||
"CANT_INSTALL_PACKAGE": "Não foi possível instalar a extensão",
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"BACK_LINK": "Recarregar",
|
||||
"NO_SCRIPT_TITLE": "É necessário JavaScript para esta aplicação.",
|
||||
"NO_SCRIPT_DESC": "O suporte de JavaScript não está disponível no seu navegador.\nPor favor ative o suporte de JavaScript nas definições do seu navegador e tente novamente.\n",
|
||||
"NO_SCRIPT_DESC": "O suporte de JavaScript não está disponível no seu navegador.\nPor favor ative o suporte de JavaScript nas definições do seu navegador e tente novamente.",
|
||||
"NO_COOKIE_TITLE": "É necessário suporte de Cookies para esta aplicação.",
|
||||
"NO_COOKIE_DESC": "O suporte de Cookies não está disponível no seu navegador.\nPor favor ative o suporte de Cookies nas definições do seu navegador e tente novamente.\n",
|
||||
"NO_COOKIE_DESC": "O suporte de Cookies não está disponível no seu navegador.\nPor favor ative o suporte de Cookies nas definições do seu navegador e tente novamente.",
|
||||
"BAD_BROWSER_TITLE": "O seu navegador está desatualizado.",
|
||||
"BAD_BROWSER_DESC": "Para usar todas as funções da aplicação,\ntransfira e instale um destes navegadores:\n"
|
||||
"BAD_BROWSER_DESC": "Para usar todas as funções da aplicação,\ntransfira e instale um navegador recente."
|
||||
}
|
||||
|
|
|
@ -22,10 +22,10 @@
|
|||
"NOT_SPAM": "Não é spam",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"PASSWORD": "Palavra-passe",
|
||||
"REMEMBER": "Remember",
|
||||
"REMEMBER": "Lembrar",
|
||||
"REPLY_TO": "Resp.-Para",
|
||||
"SAVE": "Guardar",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
"SAVE_CHANGES": "Guardar alterações?",
|
||||
"SEARCH": "Pesquisar",
|
||||
"SPAM": "Spam",
|
||||
"SUBJECT": "Assunto",
|
||||
|
@ -34,7 +34,7 @@
|
|||
"SERVER_MESSAGE": "Mensagem do servidor",
|
||||
"YES": "Sim",
|
||||
"NO": "Não",
|
||||
"INACTIVE": "Inactive",
|
||||
"INACTIVE": "Inativo",
|
||||
"DEFAULT": "predefinida",
|
||||
"HELP": "Ajuda"
|
||||
},
|
||||
|
@ -152,7 +152,7 @@
|
|||
"SPAM_SCORE": "Pontuação de Spam",
|
||||
"HAS_VIRUS_WARNING": "AVISO: vírus detetado",
|
||||
"TAGS": "Marcadores",
|
||||
"NEW_TAG": "New tag"
|
||||
"NEW_TAG": "Novo marcador"
|
||||
},
|
||||
"MESSAGE_TAGS": {
|
||||
"$important": "Importante",
|
||||
|
@ -171,17 +171,17 @@
|
|||
"SEARCHING_DESC": "A pesquisar..."
|
||||
},
|
||||
"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",
|
||||
"TAB_CONTACT": "Contactos",
|
||||
"TAB_LOCATIONS": "Localizações",
|
||||
"TAB_BUSINESS": "Empresa",
|
||||
"LABEL_ORGANIZATION": "Empresa",
|
||||
"LABEL_DEPARTMENT": "Departamento",
|
||||
"LABEL_TITLE": "Cargo",
|
||||
"TAB_CRYPTO": "Criptografia",
|
||||
"ASK": "Perguntar",
|
||||
"NEVER": "Nunca",
|
||||
"ALWAYS": "Sempre",
|
||||
"ALWAYS_IF_POSSIBLE": "Sempre que possível",
|
||||
"BUTTON_ADD_CONTACT": "Adicionar contacto",
|
||||
"BUTTON_CREATE_CONTACT": "Criar",
|
||||
"BUTTON_UPDATE_CONTACT": "Atualizar",
|
||||
|
@ -203,7 +203,7 @@
|
|||
"ADD_MENU_NICKNAME": "Alcunha",
|
||||
"ADD_MENU_NOTE": "Notas",
|
||||
"ADD_MENU_PHONE": "Telefone",
|
||||
"ADD_MENU_URL": "URL",
|
||||
"ADD_MENU_URL": "Website",
|
||||
"ADD_MENU_ADDRESS": "Morada",
|
||||
"ADD_MENU_BIRTHDAY": "Aniversário",
|
||||
"ADD_MENU_TAGS": "Marcadores",
|
||||
|
@ -226,18 +226,18 @@
|
|||
"NO_ATTACHMENTS_HERE_DESC": "Sem anexos aqui.",
|
||||
"ATTACHMENTS_ERROR_DESC": "Aviso! Nem todos os anexos foram carregados.",
|
||||
"ATTACHMENTS_UPLOAD_ERROR_DESC": "Ainda não foram carregados todos os anexos",
|
||||
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
|
||||
"ALLOW_SPELLCHECK": "Ativar corretor ortográfico do navegador",
|
||||
"BUTTON_REQUEST_READ_RECEIPT": "Pedir um recibo de leitura",
|
||||
"BUTTON_MARK_AS_IMPORTANT": "Marcar como importante",
|
||||
"BUTTON_REQUEST_DSN": "Pedir um recibo de entrega",
|
||||
"BUTTON_REQUIRE_TLS": "Require secure delivery"
|
||||
"BUTTON_REQUIRE_TLS": "Exigir entrega segura"
|
||||
},
|
||||
"POPUPS_ASK": {
|
||||
"DESC_WANT_CLOSE_THIS_WINDOW": "Tem a certeza de que quer fechar esta janela?",
|
||||
"DESC_WANT_DELETE_MESSAGES": "Tem a certeza de que quer eliminar a(s) mensagem(s)?"
|
||||
},
|
||||
"POPUPS_LANGUAGES": {
|
||||
"TITLE_LANGUAGES": "Escolha o idioma"
|
||||
"TITLE_LANGUAGES": "Escolha o seu idioma"
|
||||
},
|
||||
"POPUPS_ADD_ACCOUNT": {
|
||||
"TITLE_ADD_ACCOUNT": "Adicionar conta?",
|
||||
|
@ -316,7 +316,7 @@
|
|||
"MARK_AS_READ_LABEL": "Marcar como lida",
|
||||
"REPLY_INTERVAL_LABEL": "Intervalo de resposta (dias)",
|
||||
"KEEP_LABEL": "Manter",
|
||||
"STOP_LABEL": "Stop further processing of rules",
|
||||
"STOP_LABEL": "Interromper o processamento das regras",
|
||||
"VACATION_SUBJECT_LABEL": "Assunto (opcional)",
|
||||
"VACATION_MESSAGE_LABEL": "Mensagem",
|
||||
"VACATION_RECIPIENTS_LABEL": "Destinatários (separados por vírgula)",
|
||||
|
@ -356,16 +356,16 @@
|
|||
},
|
||||
"EDITOR": {
|
||||
"TEXT_SWITCHER_PLAIN_TEXT": "HTML <-> TEXTO",
|
||||
"TEXT_SWITCHER_SOURCE": "HTML <-> SOURCE"
|
||||
"TEXT_SWITCHER_SOURCE": "HTML <-> FONTE"
|
||||
},
|
||||
"SETTINGS_LABELS": {
|
||||
"GENERAL": "General",
|
||||
"CONTACTS": "Contacts",
|
||||
"FOLDERS": "Folders",
|
||||
"ACCOUNTS": "Accounts",
|
||||
"FILTERS": "Filters",
|
||||
"SECURITY": "Security",
|
||||
"THEMES": "Themes"
|
||||
"GENERAL": "Geral",
|
||||
"CONTACTS": "Contactos",
|
||||
"FOLDERS": "Pastas",
|
||||
"ACCOUNTS": "Contas",
|
||||
"FILTERS": "Filtros",
|
||||
"SECURITY": "Segurança",
|
||||
"THEMES": "Temas"
|
||||
},
|
||||
"SETTINGS_FILTERS": {
|
||||
"SIMPLE": "Simples",
|
||||
|
@ -385,7 +385,7 @@
|
|||
"SETTINGS_GENERAL": {
|
||||
"LEGEND_GENERAL": "Geral",
|
||||
"LANGUAGE": "Idioma",
|
||||
"HOUR_FORMAT": "Hour format",
|
||||
"HOUR_FORMAT": "Formato da hora",
|
||||
"IDENTITY": "Identidade",
|
||||
"LAYOUT": "Apresentação",
|
||||
"LAYOUT_NO_SPLIT": "Sem separação",
|
||||
|
@ -396,7 +396,7 @@
|
|||
"EDITOR_PLAIN": "Texto simples",
|
||||
"VIEW_OPTIONS": "Ver opções",
|
||||
"USE_PREVIEW_PANE": "Use o painel de pré-visualização",
|
||||
"HIDE_DELETED_MESSAGES": "Ocultar mensagens marcadas para exclusão",
|
||||
"HIDE_DELETED_MESSAGES": "Ocultar mensagens marcadas para eliminação",
|
||||
"USE_CHECKBOXES_IN_LIST": "Apresentar caixas de seleção na lista",
|
||||
"USE_THREADS": "Usar tópicos de conversa",
|
||||
"REPLY_SAME_FOLDER": "Colocar respostas na pasta das mensagens a que responde",
|
||||
|
@ -404,25 +404,26 @@
|
|||
"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",
|
||||
"MESSAGE_PER_PAGE": "Mensagens por página",
|
||||
"CHECK_MAIL_INTERVAL": "Check mail interval",
|
||||
"CHECK_MAIL_INTERVAL": "Intervalo de verificação do correio",
|
||||
"MARK_MESSAGE_READ_AFTER": "Marcar mensagem como lida após",
|
||||
"MSG_DEFAULT_ACTION": "Default action",
|
||||
"MSG_DEFAULT_ACTION": "Ação predefinida",
|
||||
"SECONDS": "segundos",
|
||||
"MINUTES": "minutes",
|
||||
"MINUTES": "minutos",
|
||||
"NOTIFICATIONS": "Notificações",
|
||||
"SOUND_NOTIFICATION": "Notificações sonoras",
|
||||
"CHROME_NOTIFICATION_DESC": "Apresentar notificações para novas mensagens",
|
||||
"CHROME_NOTIFICATION_DESC_DENIED": "(Bloqueado pelo navegador)",
|
||||
"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"
|
||||
"COLLAPSE_BLOCKQUOTES": "Minimizar texto citado",
|
||||
"MAX_QUOTE_LEVEL": "Níveis máximos de texto citado visíveis",
|
||||
"LIST_INLINE_ATTACHMENTS": "Mostrar na lista de anexos os anexos integrados no corpo",
|
||||
"LIST_SIMPLE_ATTACHMENTS": "Lista simples de anexos",
|
||||
"LIST_MESSAGES_GROUPED": "Agrupar mensagens listadas (quando ordenadas por data ou remetente)",
|
||||
"EXTERNAL_IMAGES": "Imagens externas",
|
||||
"IMAGES_OPTION_ASK": "Perguntar sempre",
|
||||
"IMAGES_OPTION_WHITELIST": "Lista Branca ou perguntar",
|
||||
"IMAGES_OPTION_DKIM": "Mostrar sempre que DKIM for válido",
|
||||
"IMAGES_OPTION_ALWAYS": "Mostrar sempre",
|
||||
"IMAGES_WHITELIST": "Lista Branca de imagens"
|
||||
},
|
||||
"SETTINGS_CONTACTS": {
|
||||
"LABEL_CONTACTS_AUTOSAVE": "Adicionar destinatários automaticamente à sua lista de endereços",
|
||||
|
@ -436,7 +437,7 @@
|
|||
"SETTINGS_THEMES": {
|
||||
"LEGEND_THEMES": "Temas",
|
||||
"LABEL_BACKGROUND": "Imagem de fundo",
|
||||
"LABEL_FONTS": "Fonts",
|
||||
"LABEL_FONTS": "Tipos de letra",
|
||||
"BUTTON_UPLOAD_BACKGROUND_IMAGE": "Carregar imagem de fundo (JPG, PNG)",
|
||||
"ERROR_FILE_IS_TOO_BIG": "Ficheiro muito grande",
|
||||
"ERROR_FILE_TYPE_ERROR": "Tipo de ficheiro inválido (apenas JPG e PNG)",
|
||||
|
@ -457,8 +458,8 @@
|
|||
"HELP_DELETE_FOLDER": "Eliminar pasta",
|
||||
"HELP_SHOW_HIDE_FOLDER": "Mostrar\/ocultar pasta",
|
||||
"HELP_CHECK_FOR_NEW_MESSAGES": "Procurar\/não procurar novas mensagens",
|
||||
"HIDE_UNSUBSCRIBED": "Esconder pastas não-subscritas",
|
||||
"UNHIDE_KOLAB_FOLDERS": "Unhide Kolab folders",
|
||||
"HIDE_UNSUBSCRIBED": "Esconder pastas não subscritas",
|
||||
"UNHIDE_KOLAB_FOLDERS": "Tonar pastas Kolab visíveis",
|
||||
"TYPE_CALENDAR": "Calendário",
|
||||
"TYPE_CONFIGURATION": "Configuração",
|
||||
"TYPE_CONTACTS": "Contactos",
|
||||
|
@ -474,7 +475,7 @@
|
|||
"BUTTON_ADD_ACCOUNT": "Adicionar uma conta",
|
||||
"BUTTON_ADD_IDENTITY": "Adicionar uma identidade",
|
||||
"LOADING_PROCESS": "A atualizar...",
|
||||
"SHOW_UNREAD": "Show unread messages count"
|
||||
"SHOW_UNREAD": "Mostrar contador de mensagens não lidas"
|
||||
},
|
||||
"SETTINGS_OPENPGP": {
|
||||
"BUTTON_IMPORT_KEY": "Importar chave",
|
||||
|
@ -522,11 +523,11 @@
|
|||
"LABEL_CLOSE_COMPOSE": "Fechar janela de composição"
|
||||
},
|
||||
"NOTIFICATIONS": {
|
||||
"REQUEST_ERROR": "Request failed",
|
||||
"REQUEST_ABORTED": "Request is aborted",
|
||||
"REQUEST_TIMEOUT": "Request timed out",
|
||||
"REQUEST_ERROR": "A solicitação falhou",
|
||||
"REQUEST_ABORTED": "A solicitação foi abortada",
|
||||
"REQUEST_TIMEOUT": "A solicitação expirou",
|
||||
"INVALID_TOKEN": "Token inválido",
|
||||
"AUTH_ERROR": "Falha na autenticação",
|
||||
"AUTH_ERROR": "A autenticação falhou",
|
||||
"CONNECTION_ERROR": "Não foi possível ligar ao servidor",
|
||||
"DOMAIN_ALREADY_EXISTS": "O domínio já existe",
|
||||
"DOMAIN_NOT_ALLOWED": "Este domínio não é permitido",
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -421,6 +421,7 @@
|
|||
"EXTERNAL_IMAGES": "External images",
|
||||
"IMAGES_OPTION_ASK": "Always ask",
|
||||
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
|
||||
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
|
||||
"IMAGES_OPTION_ALWAYS": "Show always",
|
||||
"IMAGES_WHITELIST": "Images whitelist"
|
||||
},
|
||||
|
|
|
@ -279,8 +279,19 @@
|
|||
</span>
|
||||
</div>
|
||||
|
||||
<div class="showImages" data-bind="visible: message().hasImages(), click: showImages"
|
||||
data-icon="🖼" data-i18n="MESSAGE/BUTTON_SHOW_IMAGES"></div>
|
||||
<div class="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" data-bind="registerBootstrapDropdown: true" 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 right-edge" 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>
|
||||
|
||||
<div class="openpgp-control encrypted" data-bind="visible: message().pgpEncrypted(), css: {'success': message().pgpDecrypted()}">
|
||||
|
|
|
@ -231,6 +231,7 @@
|
|||
<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="dkim" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_DKIM"></option>
|
||||
<option value="always" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_ALWAYS"></option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
--main-color: #333;
|
||||
--main-bg-color: #48525C;
|
||||
--main-bg-image: url("images/background.jpg");
|
||||
--main-bg-size: cover;
|
||||
|
||||
/* LOADING */
|
||||
--loading-color: #fff;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
--main-color: #333;
|
||||
--main-bg-color: #B3274E;
|
||||
--main-bg-image: url("images/background.jpg");
|
||||
--main-bg-size: cover;
|
||||
|
||||
/* LOADING */
|
||||
--loading-color: #fff;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
--main-color: #333;
|
||||
--main-bg-color: #48525C;
|
||||
--main-bg-image: url("images/background.jpg");
|
||||
--main-bg-size: cover;
|
||||
|
||||
/* LOADING */
|
||||
--loading-color: #fff;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
--main-color: #fff;
|
||||
--main-bg-color: #48525C;
|
||||
--main-bg-image: url("images/background.jpg");
|
||||
--main-bg-size: cover;
|
||||
|
||||
/* LOADING */
|
||||
--loading-color: #ddd;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
--main-color: #333;
|
||||
--main-bg-color: #010101;
|
||||
--main-bg-image: url("images/background.jpg");
|
||||
--main-bg-size: cover;
|
||||
|
||||
/* LOADING */
|
||||
--loading-color: #fff;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
|
||||
:root {
|
||||
color-scheme: light;
|
||||
|
||||
/* MAIN */
|
||||
--main-color: #333;
|
||||
--main-bg-color: #e3e3e3;
|
||||
|
@ -103,6 +105,3 @@
|
|||
--smDialogShrink: 20px;
|
||||
--smMainShadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
.rl-mobile {
|
||||
--smDialogShrink: 50px;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue