mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-28 19:49:20 +03:00
Merge branch 'master' into patch-1
This commit is contained in:
commit
92ed4fcc81
82 changed files with 607 additions and 343 deletions
5
.github/ISSUE_TEMPLATE/bug_report.md
vendored
5
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
|
@ -30,8 +30,9 @@ If applicable, add screenshots to help explain your problem.
|
|||
- SnappyMail Version:
|
||||
- Mode: [e.g. standalone, nextcloud, cyberpanel, docker]
|
||||
|
||||
**[Debug/logging information](https://github.com/the-djmaze/snappymail/wiki/FAQ#how-do-i-enable-logging)**
|
||||
Place them here (few lines) or as attachments (many lines)
|
||||
**Debug/logging information**
|
||||
[Read here how to log](https://github.com/the-djmaze/snappymail/wiki/FAQ#how-do-i-enable-logging)
|
||||
- [ ] I've placed them here (few lines) or as attachments (many lines)
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
|
|
|||
|
|
@ -10,18 +10,20 @@ export class MimeHeaderAutocryptModel/* extends AbstractModel*/
|
|||
|
||||
if (value) {
|
||||
value.split(';').forEach(entry => {
|
||||
entry = entry.split('=');
|
||||
entry = entry.match(/^([^=]+)=(.*)$/);
|
||||
const trim = str => (str || '').trim().replace(/^["']|["']+$/g, '');
|
||||
this[trim(entry[0]).replace('-', '_')] = trim(entry[1]);
|
||||
this[trim(entry[1]).replace('-', '_')] = trim(entry[2]);
|
||||
});
|
||||
this.keydata = this.keydata.replace(/\s+/g, '\n');
|
||||
}
|
||||
}
|
||||
|
||||
toString() {
|
||||
let result = `addr=${this.addr}; `;
|
||||
if ('mutual' === this.prefer_encrypt) {
|
||||
return `addr=${this.addr}; prefer-encrypt=mutual; keydata=${this.keydata}`;
|
||||
result += 'prefer-encrypt=mutual; ';
|
||||
}
|
||||
return `addr=${this.addr}; keydata=${this.keydata}`;
|
||||
return result + 'keydata=' + this.keydata.replace(/\n/g, '\n ');
|
||||
}
|
||||
|
||||
pem() {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ export class AdvancedSearchPopupView extends AbstractViewPopup {
|
|||
text: '',
|
||||
keyword: '',
|
||||
repliedValue: -1,
|
||||
selectedDateValue: -1,
|
||||
selectedDateValue: 0,
|
||||
selectedTreeValue: '',
|
||||
|
||||
hasAttachment: false,
|
||||
|
|
@ -58,7 +58,7 @@ export class AdvancedSearchPopupView extends AbstractViewPopup {
|
|||
// We should think about migrating all SEARCH/DATE_ to either SEARCH/SINCE_DATE or SEARCH/BEFORE_DATE
|
||||
// and adjust the prefix accordingly
|
||||
// let prefix_since = 'SEARCH/SINCE_DATE_';
|
||||
let prefix = 'SEARCH/DATE_';
|
||||
let prefix = 'SEARCH/SINCE_';
|
||||
let prefix_before = 'SEARCH/BEFORE_DATE_';
|
||||
return [
|
||||
{ id: -365, name: i18n(prefix_before + 'YEAR') },
|
||||
|
|
@ -67,7 +67,7 @@ export class AdvancedSearchPopupView extends AbstractViewPopup {
|
|||
{ id: -30, name: i18n(prefix_before + 'MONTH') },
|
||||
{ id: -7, name: i18n(prefix_before + '7_DAYS') },
|
||||
{ id: -3, name: i18n(prefix_before + '3_DAYS') },
|
||||
{ id: -1, name: i18n(prefix + 'ALL') },
|
||||
{ id: 0, name: i18n('SEARCH/DATE_ALL') },
|
||||
{ id: 3, name: i18n(prefix + '3_DAYS') },
|
||||
{ id: 7, name: i18n(prefix + '7_DAYS') },
|
||||
{ id: 30, name: i18n(prefix + 'MONTH') },
|
||||
|
|
@ -110,7 +110,7 @@ export class AdvancedSearchPopupView extends AbstractViewPopup {
|
|||
append('text', self.text().trim());
|
||||
append('keyword', self.keyword());
|
||||
append('in', self.selectedTreeValue());
|
||||
if (-1 < self.selectedDateValue()) {
|
||||
if (0 < self.selectedDateValue()) {
|
||||
let d = new Date();
|
||||
d.setDate(d.getDate() - self.selectedDateValue());
|
||||
append('since', d.toISOString().split('T')[0]);
|
||||
|
|
@ -151,8 +151,7 @@ export class AdvancedSearchPopupView extends AbstractViewPopup {
|
|||
self.text(pString(params.get('text')));
|
||||
self.keyword(pString(params.get('keyword')));
|
||||
self.selectedTreeValue(pString(params.get('in')));
|
||||
// self.selectedDateValue(params.get('since'));
|
||||
self.selectedDateValue(-1);
|
||||
self.selectedDateValue(0);
|
||||
self.hasAttachment(params.has('attachment'));
|
||||
self.starred(params.has('flagged'));
|
||||
self.unseen(params.has('unseen'));
|
||||
|
|
|
|||
|
|
@ -500,7 +500,7 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
this.sendError(true);
|
||||
this.sendErrorDesc(
|
||||
getNotification(iError, data?.ErrorMessage, Notifications.CantSendMessage)
|
||||
+ "\n" + data?.ErrorMessageAdditional
|
||||
+ "\n" + (data?.ErrorMessageAdditional || data?.ErrorMessage)
|
||||
);
|
||||
};
|
||||
try {
|
||||
|
|
@ -535,9 +535,13 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
}
|
||||
this.savedErrorDesc(msg);
|
||||
} else {
|
||||
params.signPassphrase && Passphrases.delete(identity);
|
||||
this.sendError(true);
|
||||
sendFailed(iError, data);
|
||||
// Remove remembered passphrase as it could be wrong
|
||||
let key = ('S/MIME' === params.sign) ? identity : null;
|
||||
params.signFingerprint
|
||||
&& this.signOptions.forEach(option => ('GnuPG' === option[0]) && (key = option[1]));
|
||||
key && Passphrases.delete(key);
|
||||
}
|
||||
} else {
|
||||
if (arrayLength(this.aDraftInfo) > 0) {
|
||||
|
|
@ -886,7 +890,7 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
}
|
||||
|
||||
if (options.mode && oLastMessage) {
|
||||
let encrypted,
|
||||
let usePlain,
|
||||
sCc = '',
|
||||
sDate = timestampToString(oLastMessage.dateTimestamp(), 'FULL'),
|
||||
sSubject = oLastMessage.subject(),
|
||||
|
|
@ -994,18 +998,14 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
break;
|
||||
|
||||
default:
|
||||
encrypted = PgpUserStore.isEncrypted(sText);
|
||||
if (encrypted) {
|
||||
usePlain = PgpUserStore.isEncrypted(sText) || isPlainEditor() || !oLastMessage.isHtml();
|
||||
if (usePlain) {
|
||||
sText = oLastMessage.plain();
|
||||
}
|
||||
}
|
||||
|
||||
this.editor(editor => {
|
||||
encrypted || editor.setHtml(sText);
|
||||
if (encrypted || isPlainEditor()) {
|
||||
editor.modePlain();
|
||||
}
|
||||
encrypted && editor.setPlain(sText);
|
||||
usePlain ? (editor.modePlain() | editor.setPlain(sText)) : editor.setHtml(sText);
|
||||
this.setSignature(identity, options.mode);
|
||||
this.setFocusInPopup();
|
||||
});
|
||||
|
|
@ -1506,6 +1506,8 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
do {
|
||||
l = Text.length;
|
||||
Text = Text
|
||||
// Remove line duplication
|
||||
.replace(/<br><\/div>/gi, '</div>')
|
||||
// Remove Microsoft Office styling
|
||||
.replace(/(<[^>]+[;"'])\s*mso-[a-z-]+\s*:[^;"']+/gi, '$1')
|
||||
// Remove hubspot data-hs- attributes
|
||||
|
|
@ -1546,12 +1548,11 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
alternative.children.push(data);
|
||||
data = alternative;
|
||||
}
|
||||
let sign = true;
|
||||
let isSigned = false;
|
||||
for (let i = 0; i < signOptions.length; ++i) {
|
||||
if ('OpenPGP' == signOptions[i][0]) {
|
||||
try {
|
||||
// Doesn't sign attachments
|
||||
params.html = params.plain = '';
|
||||
let signed = new MimePart;
|
||||
signed.headers['Content-Type'] =
|
||||
'multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"';
|
||||
|
|
@ -1562,6 +1563,8 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
signature.headers['Content-Transfer-Encoding'] = '7Bit';
|
||||
signature.body = await OpenPGPUserStore.sign(data.toString(), signOptions[i][1], 1);
|
||||
signed.children.push(signature);
|
||||
isSigned = true;
|
||||
params.html = params.plain = '';
|
||||
params.signed = signed.toString();
|
||||
params.boundary = signed.boundary;
|
||||
data = signed;
|
||||
|
|
@ -1569,13 +1572,11 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
Object.entries(PgpUserStore.getPublicKeyOfEmails([getEmail(this.from())]) || {})
|
||||
.forEach(([k,v]) => params.publicKey = v);
|
||||
*/
|
||||
break;
|
||||
} catch (e) {
|
||||
sign = false;
|
||||
console.error(e);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if ('GnuPG' == signOptions[i][0]) {
|
||||
} else if ('GnuPG' == signOptions[i][0]) {
|
||||
// TODO: sign in PHP fails
|
||||
let pass = await GnuPGUserStore.sign(signOptions[i][1]);
|
||||
if (null != pass) {
|
||||
|
|
@ -1583,12 +1584,10 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
params.signFingerprint = signOptions[i][1].fingerprint;
|
||||
params.signPassphrase = pass;
|
||||
// params.attachPublicKey = false;
|
||||
} else {
|
||||
sign = false;
|
||||
isSigned = true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if ('S/MIME' == signOptions[i][0]) {
|
||||
} else if ('S/MIME' == signOptions[i][0]) {
|
||||
// TODO: sign in PHP fails
|
||||
params.sign = 'S/MIME';
|
||||
// params.signCertificate = identity.smimeCertificate();
|
||||
|
|
@ -1601,14 +1600,13 @@ export class ComposePopupView extends AbstractViewPopup {
|
|||
);
|
||||
if (null != pass) {
|
||||
params.signPassphrase = pass.password;
|
||||
// pass.remember && Passphrases.handle(identity, pass.password);
|
||||
} else {
|
||||
sign = false;
|
||||
pass.remember && Passphrases.handle(identity, pass.password);
|
||||
isSigned = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (signOptions.length && !sign) {
|
||||
if (signOptions.length && !isSigned) {
|
||||
throw 'Signing failed';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ const
|
|||
imapMessage_all_headers: false,
|
||||
imapMessage_list_limit: 10000,
|
||||
imapSearch_filter: '',
|
||||
imapSpam_headers: '',
|
||||
imapVirus_headers: '',
|
||||
|
||||
sieveEnabled: false,
|
||||
sieveHost: '',
|
||||
|
|
@ -80,15 +82,17 @@ const
|
|||
},
|
||||
disabled_capabilities: oDomain.imapDisabled_capabilities(),
|
||||
folder_list_limit: pInt(oDomain.imapFolder_list_limit()),
|
||||
message_list_limit: pInt(oDomain.imapMessage_list_limit())
|
||||
message_list_limit: pInt(oDomain.imapMessage_list_limit()),
|
||||
/*
|
||||
expunge_all_on_delete: ,
|
||||
fast_simple_search: ,
|
||||
fetch_new_messages: ,
|
||||
force_select: ,
|
||||
message_all_headers: ,
|
||||
search_filter:
|
||||
*/
|
||||
search_filter: oDomain.imapSearch_filter(),
|
||||
spam_headers: oDomain.imapSpam_headers(),
|
||||
virus_headers: oDomain.imapVirus_headers()
|
||||
},
|
||||
SMTP: {
|
||||
host: oDomain.smtpHost,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ const
|
|||
SignMeOn = 1,
|
||||
SignMeUnused = 2;
|
||||
|
||||
|
||||
export class LoginUserView extends AbstractViewLogin {
|
||||
constructor() {
|
||||
super();
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use OCA\SnappyMail\Controller\FetchController;
|
|||
use OCA\SnappyMail\Controller\PageController;
|
||||
use OCA\SnappyMail\Dashboard\UnreadMailWidget;
|
||||
use OCA\SnappyMail\Search\Provider;
|
||||
use OCA\SnappyMail\Listeners\AccessTokenUpdatedListener;
|
||||
|
||||
use OCP\AppFramework\App;
|
||||
use OCP\AppFramework\Bootstrap\IBootstrap;
|
||||
|
|
@ -16,6 +17,7 @@ use OCP\IL10N;
|
|||
use OCP\IUser;
|
||||
use OCP\User\Events\PostLoginEvent;
|
||||
use OCP\User\Events\BeforeUserLoggedOutEvent;
|
||||
use OCA\OIDCLogin\Events\AccessTokenUpdatedEvent;
|
||||
|
||||
class Application extends App implements IBootstrap
|
||||
{
|
||||
|
|
@ -62,6 +64,7 @@ class Application extends App implements IBootstrap
|
|||
);
|
||||
|
||||
$context->registerSearchProvider(Provider::class);
|
||||
$context->registerEventListener(AccessTokenUpdatedEvent::class, AccessTokenUpdatedListener::class);
|
||||
|
||||
// TODO: Not working yet, needs a Vue UI
|
||||
// $context->registerDashboardWidget(UnreadMailWidget::class);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace OCA\SnappyMail\Listeners;
|
||||
|
||||
use OCA\OIDCLogin\Events\AccessTokenUpdatedEvent;
|
||||
use OCP\App\IAppManager;
|
||||
use OCP\EventDispatcher\Event;
|
||||
use OCP\EventDispatcher\IEventListener;
|
||||
use OCP\ISession;
|
||||
use OCP\IUserSession;
|
||||
|
||||
class AccessTokenUpdatedListener implements IEventListener {
|
||||
private IUserSession $userSession;
|
||||
private ISession $session;
|
||||
private IAppManager $appManager;
|
||||
|
||||
private const SNAPPYMAIL_APP_ID = 'snappymail';
|
||||
private const OIDC_LOGIN_APP_ID = 'oidc_login';
|
||||
|
||||
|
||||
public function __construct(IUserSession $userSession, ISession $session, IAppManager $appManager) {
|
||||
$this->userSession = $userSession;
|
||||
$this->session = $session;
|
||||
$this->appManager = $appManager;
|
||||
}
|
||||
|
||||
public function handle(Event $event): void {
|
||||
if (!($event instanceof AccessTokenUpdatedEvent) || !$this->userSession->isLoggedIn() || !$this->session->exists('is_oidc')) {
|
||||
return;
|
||||
}
|
||||
// just-in-case checks(also maybe useful for selfhosters)
|
||||
if (!$this->appManager->isEnabledForUser(self::SNAPPYMAIL_APP_ID) || !$this->appManager->isEnabledForUser(self::OIDC_LOGIN_APP_ID)) {
|
||||
return;
|
||||
}
|
||||
$accessToken = $event->getAccessToken();
|
||||
if (!$accessToken) {
|
||||
return;
|
||||
}
|
||||
|
||||
$username = $this->userSession->getUser()->getUID();
|
||||
$this->session->set('snappymail-nc-uid', $username);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,55 @@
|
|||
(rl => {
|
||||
/**
|
||||
* ViewModel class | class.viewModelTemplateID
|
||||
* User & Admin:
|
||||
* AskPopupView | PopupsAsk
|
||||
* LanguagesPopupView | PopupsLanguages
|
||||
* User:
|
||||
* LoginUserView | Login
|
||||
* SystemDropDownUserView | SystemDropDown
|
||||
* MailFolderList | MailFolderList
|
||||
* MailMessageList | MailMessageList
|
||||
* MailMessageView | MailMessageView
|
||||
* SettingsMenuUserView | SettingsMenu
|
||||
* SettingsPaneUserView | SettingsPane
|
||||
* UserSettingsAccounts | SettingsAccounts
|
||||
* UserSettingsContacts | SettingsContacts
|
||||
* UserSettingsFilters | SettingsFilters
|
||||
* UserSettingsFolders | SettingsFolders
|
||||
* UserSettingsGeneral | SettingsGeneral
|
||||
* UserSettingsSecurity | SettingsSecurity
|
||||
* UserSettingsThemes | SettingsThemes
|
||||
* AccountPopupView | PopupsAccount
|
||||
* AdvancedSearchPopupView | PopupsAdvancedSearch
|
||||
* ComposePopupView | PopupsCompose
|
||||
* ContactsPopupView | PopupsContacts
|
||||
* FolderPopupView | PopupsFolder
|
||||
* FolderClearPopupView | PopupsFolderClear
|
||||
* FolderCreatePopupView | PopupsFolderCreate
|
||||
* FolderSystemPopupView | PopupsFolderSystem
|
||||
* IdentityPopupView | PopupsIdentity
|
||||
* KeyboardShortcutsHelpPopupView | PopupsKeyboardShortcutsHelp
|
||||
* OpenPgpGeneratePopupView | PopupsOpenPgpGenerate
|
||||
* OpenPgpImportPopupView | PopupsOpenPgpImport
|
||||
* OpenPgpKeyPopupView | PopupsOpenPgpKey
|
||||
* SMimeImportPopupView | PopupsSMimeImport
|
||||
* Admin:
|
||||
* AdminLoginView | AdminLogin
|
||||
* MenuSettingsAdminView | AdminMenu
|
||||
* PaneSettingsAdminView | AdminPane
|
||||
* AdminSettingsAbout | AdminSettingsAbout
|
||||
* AdminSettingsBranding | AdminSettingsBranding
|
||||
* AdminSettingsConfig | AdminSettingsConfig
|
||||
* AdminSettingsContacts | AdminSettingsContacts
|
||||
* AdminSettingsDomains | AdminSettingsDomains
|
||||
* AdminSettingsGeneral | AdminSettingsGeneral
|
||||
* AdminSettingsLogin | AdminSettingsLogin
|
||||
* AdminSettingsPackages | AdminSettingsPackages
|
||||
* AdminSettingsSecurity | AdminSettingsSecurity
|
||||
* DomainPopupView | PopupsDomain
|
||||
* DomainAliasPopupView | PopupsDomainAlias
|
||||
* PluginPopupView | PopupsPlugin
|
||||
*/
|
||||
|
||||
/**
|
||||
* Happens immediately after the ViewModel constructor
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
use RainLoop\Enumerations\Capa;
|
||||
use MailSo\Log\Logger;
|
||||
use RainLoop\Actions;
|
||||
use RainLoop\Model\AdditionalAccount;
|
||||
use RainLoop\Model\MainAccount;
|
||||
use RainLoop\Providers\Storage\Enumerations\StorageType;
|
||||
|
||||
class LdapMailAccounts
|
||||
{
|
||||
|
|
@ -50,14 +52,13 @@ class LdapMailAccounts
|
|||
/**
|
||||
* @inheritDoc
|
||||
*
|
||||
* AOverwrite the MainAccount mail address by looking up the new one in the ldap directory
|
||||
* Overwrite the MainAccount mail address by looking up the new one in the ldap directory
|
||||
*
|
||||
* The ldap search string has to be configured in the plugin configuration of the extension (in the SnappyMail Admin Panel)
|
||||
*
|
||||
* @param string &$sEmail
|
||||
* @param string &$sLogin
|
||||
*/
|
||||
public function overwriteEmail(&$sEmail, &$sLogin)
|
||||
public function overwriteEmail(&$sEmail)
|
||||
{
|
||||
try {
|
||||
$this->EnsureBound();
|
||||
|
|
@ -106,7 +107,7 @@ class LdapMailAccounts
|
|||
foreach($mailAddressResults as $mailAddressResult)
|
||||
{
|
||||
if($mailAddressResult->username === $username) {
|
||||
//$sLogin is already set to be the same as $sEmail by function "resolveLoginCredentials" in /RainLoop/Actions/UserAuth.php
|
||||
//$sImapUser and $sSmtpUser are already set to be the same as $sEmail by function "resolveLoginCredentials" in /RainLoop/Actions/UserAuth.php
|
||||
//that called this hook, so we just have to overwrite the mail address
|
||||
$sEmail = $mailAddressResult->mailMainAccount;
|
||||
}
|
||||
|
|
@ -131,10 +132,19 @@ class LdapMailAccounts
|
|||
return false; // exceptions are only thrown from the handle error function that does logging already
|
||||
}
|
||||
|
||||
// Try to get account information. IncLogin() returns the username of the user
|
||||
// and removes the domainname if this was configured inside the domain config.
|
||||
$username = @ldap_escape($oAccount->IncLogin(), "", LDAP_ESCAPE_FILTER);
|
||||
//Basing on https://github.com/the-djmaze/snappymail/issues/616
|
||||
|
||||
$oActions = \RainLoop\Api::Actions();
|
||||
|
||||
//Check if SnappyMail is configured to allow additional accounts
|
||||
if (!$oActions->GetCapa(Capa::ADDITIONAL_ACCOUNTS)) {
|
||||
return $oActions->FalseResponse(__FUNCTION__);
|
||||
}
|
||||
|
||||
// Try to get account information. ImapUser() returns the username of the user
|
||||
// and removes the domainname if this was configured inside the domain config.
|
||||
$username = @ldap_escape($oAccount->ImapUser(), "", LDAP_ESCAPE_FILTER);
|
||||
|
||||
$searchString = $this->config->search_string;
|
||||
|
||||
// Replace placeholders inside the ldap search string with actual values
|
||||
|
|
@ -159,21 +169,10 @@ class LdapMailAccounts
|
|||
catch (LdapMailAccountsException $e) {
|
||||
return false; // exceptions are only thrown from the handle error function that does logging already
|
||||
}
|
||||
|
||||
if (count($mailAddressResults) < 1) {
|
||||
$this->logger->Write("Could not find user $username", \LOG_NOTICE, self::LOG_KEY);
|
||||
return false;
|
||||
} else if (count($mailAddressResults) == 1) {
|
||||
$this->logger->Write("Found only one match for user $username, no additional mail adresses found", \LOG_NOTICE, self::LOG_KEY);
|
||||
return true;
|
||||
}
|
||||
|
||||
//Basing on https://github.com/the-djmaze/snappymail/issues/616
|
||||
|
||||
$oActions = \RainLoop\Api::Actions();
|
||||
|
||||
//Check if SnappyMail is configured to allow additional accounts
|
||||
if (!$oActions->GetCapa(Capa::ADDITIONAL_ACCOUNTS)) {
|
||||
return $oActions->FalseResponse(__FUNCTION__);
|
||||
}
|
||||
|
||||
$aAccounts = $oActions->GetAccounts($oAccount);
|
||||
|
|
@ -189,6 +188,25 @@ class LdapMailAccounts
|
|||
}
|
||||
}
|
||||
|
||||
//SnappyMail saves the passwords of the additional accounts by encrypting them using a cryptkey that is saved in the file .cryptkey
|
||||
//When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword.
|
||||
//On a password change using ldap (or when the password has been forgotten by the user) this makes us some problems. Therefore overwrite
|
||||
//the .cryptkey file in order to always accept the actual ldap password of the user. This has side effects on pgp keys!
|
||||
//See https://github.com/the-djmaze/snappymail/issues/1570#issuecomment-2085528061
|
||||
if ($this->config->bool_overwrite_cryptkey) {
|
||||
if (!$oActions->StorageProvider()->Put($oAccount, StorageType::ROOT, '.cryptkey', "")) {
|
||||
$this->logger->Write("Could not overwrite the .cryptkey file!", \LOG_WARNING, self::LOG_KEY);
|
||||
return $oActions->FalseResponse(__FUNCTION__);
|
||||
}
|
||||
}
|
||||
|
||||
if (count($mailAddressResults) == 1) {
|
||||
$this->logger->Write("Found only one match for user $username, no additional mail adresses found", \LOG_NOTICE, self::LOG_KEY);
|
||||
//Write back the accounts even if no additional account was found. This ensures, that previous additional accounts are always removed
|
||||
$oActions->SetAccounts($oAccount, $aAccounts);
|
||||
return true;
|
||||
}
|
||||
|
||||
foreach($mailAddressResults as $mailAddressResult)
|
||||
{
|
||||
$sUsername = $mailAddressResult->username;
|
||||
|
|
@ -210,7 +228,18 @@ class LdapMailAccounts
|
|||
//if this fails the user will see the new mail addresses but will be asked for the correct password
|
||||
$sPass = new \SnappyMail\SensitiveString($oAccount->IncPassword());
|
||||
//After creating the accounts here $sUsername is used as username to login to the IMAP server (see Account.php)
|
||||
$oNewAccount = RainLoop\Model\AdditionalAccount::NewInstanceFromCredentials($oActions, $sEmail, $sUsername, $sPass);
|
||||
//$oNewAccount = RainLoop\Model\AdditionalAccount::NewInstanceFromCredentials($oActions, $sEmail, $sUsername, $sPass);
|
||||
|
||||
$oDomain = $oActions->DomainProvider()->Load($sDomain, false);
|
||||
|
||||
$oNewAccount = new AdditionalAccount;
|
||||
$oNewAccount->setCredentials(
|
||||
$oDomain,
|
||||
$sEmail,
|
||||
$sUsername,
|
||||
$sPass,
|
||||
$sUsername
|
||||
);
|
||||
|
||||
$aAccounts[$sEmail] = $oNewAccount->asTokenArray($oAccount);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ class LdapMailAccountsConfig
|
|||
public const CONFIG_FIELD_MAIL_ADDRESS_ADDITIONAL_ACCOUNT = "field_mail_address_additional_account";
|
||||
public const CONFIG_BOOL_OVERWRITE_MAIL_ADDRESS_MAIN_ACCOUNT = "bool_overwrite_mail_address_main_account";
|
||||
public const CONFIG_FIELD_MAIL_ADDRESS_MAIN_ACCOUNT = "field_mail_address_main_account";
|
||||
public const CONFIG_BOOL_OVERWRITE_CRYPTKEY = "bool_overwrite_cryptkey";
|
||||
|
||||
public $server;
|
||||
public $protocol;
|
||||
|
|
@ -36,6 +37,7 @@ class LdapMailAccountsConfig
|
|||
public $field_mail_address_main_account;
|
||||
public $field_mail_address_additional_account;
|
||||
public $bool_overwrite_mail_address_main_account;
|
||||
public $bool_overwrite_cryptkey;
|
||||
|
||||
public static function MakeConfig(Plugin $config): LdapMailAccountsConfig
|
||||
{
|
||||
|
|
@ -54,6 +56,7 @@ class LdapMailAccountsConfig
|
|||
$ldap->field_mail_address_additional_account = trim($config->Get("plugin", self::CONFIG_FIELD_MAIL_ADDRESS_ADDITIONAL_ACCOUNT));
|
||||
$ldap->bool_overwrite_mail_address_main_account = $config->Get("plugin", self::CONFIG_BOOL_OVERWRITE_MAIL_ADDRESS_MAIN_ACCOUNT);
|
||||
$ldap->field_mail_address_main_account = trim($config->Get("plugin", self::CONFIG_FIELD_MAIL_ADDRESS_MAIN_ACCOUNT));
|
||||
$ldap->bool_overwrite_cryptkey = $config->Get("plugin", self::CONFIG_BOOL_OVERWRITE_CRYPTKEY);
|
||||
|
||||
return $ldap;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ Version 2.0.0 changes the way additional mail accounts get their e-mail address:
|
|||
Now it is also possible to overwrite the mail address of the main account: if a user logs into SnappyMail with a username and SnappyMail added the configured default domain the mail address of the main account could have been some not existing address like "username@default-domain.com". This could have happend when using the Nextcloud SnappyMail integration that offers an automatic login using the Nextcloud username.
|
||||
The plugin now can be configured to overwrite the username or mail address used at login with a mail address found inside ldap.
|
||||
|
||||
Version 2.2.0 adds compatibility with SnappyMail 2.36.1 and later where some changes were introduced that made the plugin unusable. This version also adds the possibility to delete the .cryptkey file on evere login. For more information see the `Configuration` section below.
|
||||
|
||||
### Configuration
|
||||
- Install and activate the plugin using the SnappyMail Admin Panel -> menu Extensions.
|
||||
- Click on the gear symbol beside the plugin to open the configration dialog.
|
||||
|
|
@ -20,4 +22,8 @@ The plugin now can be configured to overwrite the username or mail address used
|
|||
|
||||
Section `Overwrite mail address of main account` can be used to overwrite the username or mail address used at login with a value found in ldap. If activated, the username or mail address used at login will be looked up inside the `Username field` in ldap (for details see how a search for additional accounts is made). If the username is found, the value of the field `Mail address field for main account` will be used to overwrite the mail address of the main account.
|
||||
|
||||
`Overwrite user cryptkey` can be activated to prevent SnappyMail from asking the user for his old LDAP password when this password was changed or reseted. SnappyMail saves the passwords of the additional accounts by encrypting them using a cryptkey that is saved in the file `.cryptkey`. When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword.
|
||||
On a password change using ldap (or when the password has been forgotten by the user) this makes problems and asks the user to insert the old password. Therefore activating this option overwrites the .cryptkey file on login in order to always accept the actual ldap password of the user.
|
||||
**ATTENTION:** This has side effects on pgp keys because these are also secured by the cryptkey and could therefore not be accessible anymore! See https://github.com/the-djmaze/snappymail/issues/1570#issuecomment-2085528061 . This has also an impact on additional mail accounts that aren't created by this plugin because without the cryptkey saved passwords of additional mail accounts can not be decrypted anymore.
|
||||
|
||||
**Important:** SnappyMail normally needs a mail address as username. This plugin handles some special circumstances (login with an ldap username, not a mail address) so that you can login to your IMAP server with the ldap username but send mails with a mail address connected to this ldap user.
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@ class LdapMailAccountsPlugin extends AbstractPlugin
|
|||
{
|
||||
const
|
||||
NAME = 'LDAP Mail Accounts',
|
||||
VERSION = '2.1.1',
|
||||
VERSION = '2.2.0',
|
||||
AUTHOR = 'cm-schl',
|
||||
URL = 'https://github.com/cm-sch',
|
||||
RELEASE = '2024-03-16',
|
||||
REQUIRED = '2.35.3',
|
||||
RELEASE = '2024-05-28',
|
||||
REQUIRED = '2.36.1',
|
||||
CATEGORY = 'Accounts',
|
||||
DESCRIPTION = 'Add additional mail accounts the SnappyMail user has access to by a LDAP query. Basing on the work of FWest98 (https://github.com/FWest98).';
|
||||
|
||||
|
|
@ -40,11 +40,13 @@ class LdapMailAccountsPlugin extends AbstractPlugin
|
|||
* Overwrite the MainAccount mail address by looking up the new one in the ldap directory
|
||||
*
|
||||
* @param string &$sEmail
|
||||
* @param string &$sLogin
|
||||
* @param string &$sImapUser
|
||||
* @param string &$sPassword
|
||||
* @param string &$sSmtpUser
|
||||
*/
|
||||
public function overwriteMainAccountEmail(&$sEmail, &$sLogin)
|
||||
public function overwriteMainAccountEmail(&$sEmail, &$sImapUser, &$sPassword, &$sSmtpUser)
|
||||
{
|
||||
$this->Manager()->Actions()->Logger()->Write("Login DATA: login: $sLogin email: $sEmail", \LOG_WARNING, "LDAP MAIL ACCOUNTS PLUGIN");
|
||||
$this->Manager()->Actions()->Logger()->Write("Login DATA: login: $sImapUser email: $sEmail", \LOG_WARNING, "LDAP MAIL ACCOUNTS PLUGIN");
|
||||
|
||||
// Set up config
|
||||
$config = LdapMailAccountsConfig::MakeConfig($this->Config());
|
||||
|
|
@ -52,10 +54,10 @@ class LdapMailAccountsPlugin extends AbstractPlugin
|
|||
if ($config->bool_overwrite_mail_address_main_account)
|
||||
{
|
||||
$oldapMailAccounts = new LdapMailAccounts($config, $this->Manager()->Actions()->Logger());
|
||||
$oldapMailAccounts->overwriteEmail($sEmail, $sLogin);
|
||||
$oldapMailAccounts->overwriteEmail($sEmail);
|
||||
}
|
||||
|
||||
$this->Manager()->Actions()->Logger()->Write("Login DATA: login: $sLogin email: $sEmail", \LOG_WARNING, "LDAP MAIL ACCOUNTS PLUGIN");
|
||||
$this->Manager()->Actions()->Logger()->Write("Login DATA: login: $sImapUser email: $sEmail", \LOG_WARNING, "LDAP MAIL ACCOUNTS PLUGIN");
|
||||
}
|
||||
|
||||
// Function gets called by RainLoop/Actions/User.php
|
||||
|
|
@ -92,6 +94,17 @@ class LdapMailAccountsPlugin extends AbstractPlugin
|
|||
->SetDefaultValue("mail"),
|
||||
]);
|
||||
|
||||
$groupAdditionalSettings = new \RainLoop\Plugins\PropertyCollection('Additional settings');
|
||||
$groupAdditionalSettings->exchangeArray([
|
||||
\RainLoop\Plugins\Property::NewInstance(LdapMailAccountsConfig::CONFIG_BOOL_OVERWRITE_CRYPTKEY)->SetLabel('Overwrite user cryptkey')
|
||||
->SetType(\RainLoop\Enumerations\PluginPropertyType::BOOL)
|
||||
->SetDescription("SnappyMail saves the passwords of the additional accounts by encrypting them using a cryptkey that is saved in the file \".cryptkey\". When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword.
|
||||
\nOn a password change using ldap (or when the password has been forgotten by the user) this makes problems and asks the user to insert the old password. Therefore activating this option overwrites the .cryptkey file on login in order to always accept the actual ldap password of the user.
|
||||
\nATTENTION: This has side effects on pgp keys because these are also secured by the cryptkey and could therefore not be accessible anymore!
|
||||
\nSee https://github.com/the-djmaze/snappymail/issues/1570#issuecomment-2085528061")
|
||||
->SetDefaultValue(false),
|
||||
]);
|
||||
|
||||
return [
|
||||
\RainLoop\Plugins\Property::NewInstance(LdapMailAccountsConfig::CONFIG_SERVER)
|
||||
->SetLabel("LDAP Server URL")
|
||||
|
|
@ -171,8 +184,9 @@ class LdapMailAccountsPlugin extends AbstractPlugin
|
|||
->SetDescription("The field containing the default sender name of the found additional mail account.")
|
||||
->SetDefaultValue("displayName"),
|
||||
|
||||
$groupOverwriteMainAccount
|
||||
$groupOverwriteMainAccount,
|
||||
|
||||
$groupAdditionalSettings
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,9 @@ class Settings extends \MailSo\Net\ConnectSettings
|
|||
$message_all_headers = false;
|
||||
|
||||
public string
|
||||
$search_filter = '';
|
||||
$search_filter = '',
|
||||
$spam_headers = 'rspamd,spamassassin,bogofilter',
|
||||
$virus_headers = 'rspamd,clamav';
|
||||
|
||||
public array
|
||||
$disabled_capabilities = [];
|
||||
|
|
@ -41,6 +43,8 @@ class Settings extends \MailSo\Net\ConnectSettings
|
|||
public static function fromArray(array $aSettings) : self
|
||||
{
|
||||
$object = parent::fromArray($aSettings);
|
||||
|
||||
// Boolean options
|
||||
$options = [
|
||||
'expunge_all_on_delete',
|
||||
'fast_simple_search',
|
||||
|
|
@ -53,6 +57,8 @@ class Settings extends \MailSo\Net\ConnectSettings
|
|||
$object->$option = !empty($aSettings[$option]);
|
||||
}
|
||||
}
|
||||
|
||||
// Integer options
|
||||
$options = [
|
||||
// 'body_text_limit',
|
||||
// 'folder_list_limit',
|
||||
|
|
@ -65,6 +71,18 @@ class Settings extends \MailSo\Net\ConnectSettings
|
|||
}
|
||||
}
|
||||
|
||||
// String options
|
||||
$options = [
|
||||
'search_filter',
|
||||
'spam_headers',
|
||||
'virus_headers',
|
||||
];
|
||||
foreach ($options as $option) {
|
||||
if (isset($aSettings[$option])) {
|
||||
$object->$option = (string) $aSettings[$option];
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($aSettings['disabled_capabilities']) && \is_array($aSettings['disabled_capabilities'])) {
|
||||
$object->disabled_capabilities = $aSettings['disabled_capabilities'];
|
||||
}
|
||||
|
|
@ -119,6 +137,8 @@ class Settings extends \MailSo\Net\ConnectSettings
|
|||
'message_all_headers' => $this->message_all_headers,
|
||||
'message_list_limit' => $this->message_list_limit,
|
||||
'search_filter' => $this->search_filter,
|
||||
'spam_headers' => $this->spam_headers,
|
||||
'virus_headers' => $this->virus_headers,
|
||||
// 'thread_limit' => $this->thread_limit
|
||||
'disabled_capabilities' => \array_values(\array_unique($this->disabled_capabilities))
|
||||
]
|
||||
|
|
|
|||
|
|
@ -76,19 +76,33 @@ class MailClient
|
|||
MimeHeader::X_DKIM_AUTHENTICATION_RESULTS,
|
||||
MimeHeader::LIST_UNSUBSCRIBE,
|
||||
// https://autocrypt.org/level1.html#the-autocrypt-header
|
||||
MimeHeader::AUTOCRYPT,
|
||||
// SPAM
|
||||
MimeHeader::X_SPAM_STATUS,
|
||||
MimeHeader::X_SPAM_FLAG,
|
||||
MimeHeader::X_SPAM_INFO,
|
||||
MimeHeader::X_SPAMD_RESULT,
|
||||
MimeHeader::X_BOGOSITY,
|
||||
// Virus
|
||||
MimeHeader::X_VIRUS,
|
||||
MimeHeader::X_VIRUS_SCANNED,
|
||||
MimeHeader::X_VIRUS_STATUS
|
||||
MimeHeader::AUTOCRYPT
|
||||
);
|
||||
|
||||
// SPAM
|
||||
$spam_headers = \explode(',', $this->oImapClient->Settings->spam_headers);
|
||||
if (\in_array('rspamd', $spam_headers)) {
|
||||
$aHeaders[] = MimeHeader::X_SPAMD_RESULT;
|
||||
}
|
||||
if (\in_array('spamassassin', $spam_headers)) {
|
||||
$aHeaders[] = MimeHeader::X_SPAM_STATUS;
|
||||
$aHeaders[] = MimeHeader::X_SPAM_FLAG;
|
||||
$aHeaders[] = MimeHeader::X_SPAM_INFO;
|
||||
}
|
||||
if (\in_array('bogofilter', $spam_headers)) {
|
||||
$aHeaders[] = MimeHeader::X_BOGOSITY;
|
||||
}
|
||||
|
||||
// Virus
|
||||
$virus_headers = \explode(',', $this->oImapClient->Settings->virus_headers);
|
||||
if (\in_array('rspamd', $virus_headers)) {
|
||||
$aHeaders[] = MimeHeader::X_VIRUS;
|
||||
}
|
||||
if (\in_array('clamav', $virus_headers)) {
|
||||
$aHeaders[] = MimeHeader::X_VIRUS_SCANNED;
|
||||
$aHeaders[] = MimeHeader::X_VIRUS_STATUS;
|
||||
}
|
||||
|
||||
\RainLoop\Api::Actions()->Plugins()->RunHook('imap.message-headers', array(&$aHeaders));
|
||||
|
||||
return FetchType::BuildBodyCustomHeaderRequest($aHeaders, true);
|
||||
|
|
|
|||
|
|
@ -506,7 +506,9 @@ class Message implements \JsonSerializable
|
|||
'spamScore' => $this->bIsSpam ? 100 : $this->SpamScore,
|
||||
'spamResult' => $this->sSpamResult,
|
||||
'isSpam' => $this->bIsSpam,
|
||||
// RainLoop had the date_from_headers option
|
||||
'dateTimestamp' => $this->iHeaderTimeStampInUTC ?: $this->iInternalTimeStampInUTC,
|
||||
'dateTimestampSource' => $this->iHeaderTimeStampInUTC ? 'header' : 'internal',
|
||||
|
||||
// \MailSo\Mime\EmailCollection
|
||||
'from' => $this->oFrom,
|
||||
|
|
|
|||
|
|
@ -67,8 +67,9 @@ trait AdminDomains
|
|||
$this->GetActionParam('username'),
|
||||
new \SnappyMail\SensitiveString('********')
|
||||
);
|
||||
$sEmail = $sCredentials['email'];
|
||||
return $this->DefaultResponse(array(
|
||||
'email' => $sCredentials['email'],
|
||||
'email' => $sEmail,
|
||||
'login' => $sCredentials['imapUser'],
|
||||
'domain' => $sCredentials['domain'],
|
||||
'whitelist' => $sCredentials['domain'] ? $sCredentials['domain']->ValidateWhiteList($sEmail) : null
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ class Application extends \RainLoop\Config\AbstractConfig
|
|||
{
|
||||
// Workarounds for the changed application structure
|
||||
if ('webmail' === $sSectionKey) {
|
||||
if ('language_admin' === $sSectionKey) {
|
||||
if ('language_admin' === $sParamKey) {
|
||||
$sSectionKey = 'admin_panel';
|
||||
$sParamKey = 'language';
|
||||
}
|
||||
|
|
@ -137,6 +137,16 @@ class Application extends \RainLoop\Config\AbstractConfig
|
|||
$sParamKey = 'json_response_write_limit';
|
||||
}
|
||||
}
|
||||
if ('language' === $sParamKey) {
|
||||
$aLang = \SnappyMail\L10n::getLanguages('admin_panel' === $sSectionKey);
|
||||
$sLanguage = \strtr($mParamValue, '_', '-');
|
||||
if (!\in_array($sLanguage, $aLang)) {
|
||||
if (\str_contains($sLanguage, '-')) {
|
||||
$sLanguage = \strtok($sLanguage, '-');
|
||||
}
|
||||
}
|
||||
$mParamValue = \in_array($sLanguage, $aLang) ? $sLanguage : 'en';
|
||||
}
|
||||
parent::Set($sSectionKey, $sParamKey, $mParamValue);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "لم يقرأ",
|
||||
"DATE": "التاريخ",
|
||||
"DATE_ALL": "الكل",
|
||||
"DATE_3_DAYS": "منذ 3 أيام",
|
||||
"DATE_7_DAYS": "منذ أسبوع",
|
||||
"DATE_MONTH": "منذ شهر",
|
||||
"DATE_3_MONTHS": "منذ 3 أشهر",
|
||||
"DATE_6_MONTHS": "منذ 6 أشهر",
|
||||
"DATE_YEAR": "منذ سنة",
|
||||
"SINCE_3_DAYS": "منذ 3 أيام",
|
||||
"SINCE_7_DAYS": "منذ أسبوع",
|
||||
"SINCE_MONTH": "منذ شهر",
|
||||
"SINCE_3_MONTHS": "منذ 3 أشهر",
|
||||
"SINCE_6_MONTHS": "منذ 6 أشهر",
|
||||
"SINCE_YEAR": "منذ سنة",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Назад",
|
||||
"BUTTON_UPDATE": "Абнавіць",
|
||||
"NEW_DOMAIN_DESC": "Гэтая канфігурацыя дазволіць вам працаваць з <strong>%NAME%<\/strong> адрасамі.",
|
||||
"WHITE_LIST_ALERT": "Спіс карыстальнікаў дамена да якіх дазволены доступ.\nВыкарыстоўвайце прабел у якасці раздзяляльніка.\n"
|
||||
"WHITE_LIST_ALERT": "Спіс карыстальнікаў дамена да якіх дазволены доступ.\nВыкарыстоўвайце прабел у якасці раздзяляльніка.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Убудова",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Непрачытаныя",
|
||||
"DATE": "Дата",
|
||||
"DATE_ALL": "За ўвесь час",
|
||||
"DATE_3_DAYS": "За тры дні",
|
||||
"DATE_7_DAYS": "За тыдзень",
|
||||
"DATE_MONTH": "За месяц",
|
||||
"DATE_3_MONTHS": "За 3 месяцы",
|
||||
"DATE_6_MONTHS": "За паўгода",
|
||||
"DATE_YEAR": "За год",
|
||||
"SINCE_3_DAYS": "За тры дні",
|
||||
"SINCE_7_DAYS": "За тыдзень",
|
||||
"SINCE_MONTH": "За месяц",
|
||||
"SINCE_3_MONTHS": "За 3 месяцы",
|
||||
"SINCE_6_MONTHS": "За паўгода",
|
||||
"SINCE_YEAR": "За год",
|
||||
"SUBFOLDERS": "Падкаталогі",
|
||||
"SUBFOLDERS_NONE": "Нічога",
|
||||
"SUBFOLDERS_SUBTREE": "Усе",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Невидяно",
|
||||
"DATE": "Дата",
|
||||
"DATE_ALL": "Всички",
|
||||
"DATE_3_DAYS": "До 3 дена",
|
||||
"DATE_7_DAYS": "До 1 седмица",
|
||||
"DATE_MONTH": "До 1 месец",
|
||||
"DATE_3_MONTHS": "До 3 месеца",
|
||||
"DATE_6_MONTHS": "До 6 месеца",
|
||||
"DATE_YEAR": "До 1 година",
|
||||
"SINCE_3_DAYS": "До 3 дена",
|
||||
"SINCE_7_DAYS": "До 1 седмица",
|
||||
"SINCE_MONTH": "До 1 месец",
|
||||
"SINCE_3_MONTHS": "До 3 месеца",
|
||||
"SINCE_6_MONTHS": "До 6 месеца",
|
||||
"SINCE_YEAR": "До 1 година",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Zpět",
|
||||
"BUTTON_UPDATE": "Aktualizovat",
|
||||
"NEW_DOMAIN_DESC": "Konfigurace této domény umožní používat <strong>%NAME%<\/strong> adresy.",
|
||||
"WHITE_LIST_ALERT": "Seznam domén s povoleným uživatelským přístupem\nPoužijte mezeru pro jejich oddělení.\n"
|
||||
"WHITE_LIST_ALERT": "Seznam domén s povoleným uživatelským přístupem\nPoužijte mezeru pro jejich oddělení.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Plugin",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Nepřečtené",
|
||||
"DATE": "Datum",
|
||||
"DATE_ALL": "Kdykoliv",
|
||||
"DATE_3_DAYS": "Ne starší než 3 dny",
|
||||
"DATE_7_DAYS": "Ne starší než týden",
|
||||
"DATE_MONTH": "Ne starší než měsíc",
|
||||
"DATE_3_MONTHS": "Ne starší než 3 měsíce",
|
||||
"DATE_6_MONTHS": "Ne starší než 6 měsíců",
|
||||
"DATE_YEAR": "Ne starší než 1 rok",
|
||||
"SINCE_3_DAYS": "Ne starší než 3 dny",
|
||||
"SINCE_7_DAYS": "Ne starší než týden",
|
||||
"SINCE_MONTH": "Ne starší než měsíc",
|
||||
"SINCE_3_MONTHS": "Ne starší než 3 měsíce",
|
||||
"SINCE_6_MONTHS": "Ne starší než 6 měsíců",
|
||||
"SINCE_YEAR": "Ne starší než 1 rok",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Tilbage",
|
||||
"BUTTON_UPDATE": "Opdater",
|
||||
"NEW_DOMAIN_DESC": "Denne domæne konfiguration tillader <strong>%NAME%<\/strong> e-mail adresser.",
|
||||
"WHITE_LIST_ALERT": "Liste med godkendte domæne for webmail opsætning.\nBrug mellemrum til at separere domæner.\n"
|
||||
"WHITE_LIST_ALERT": "Liste med godkendte domæne for webmail opsætning.\nBrug mellemrum til at separere domæner.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Tilføjelse",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Ulæst",
|
||||
"DATE": "Dato",
|
||||
"DATE_ALL": "Alle",
|
||||
"DATE_3_DAYS": "Nyere end 3 dage",
|
||||
"DATE_7_DAYS": "Nyere end 1 uge",
|
||||
"DATE_MONTH": "Nyere end 1 måned",
|
||||
"DATE_3_MONTHS": "Nyere end 3 måneder",
|
||||
"DATE_6_MONTHS": "Nyere end 6 måneder",
|
||||
"DATE_YEAR": "Nyere end 1 år",
|
||||
"SINCE_3_DAYS": "Nyere end 3 dage",
|
||||
"SINCE_7_DAYS": "Nyere end 1 uge",
|
||||
"SINCE_MONTH": "Nyere end 1 måned",
|
||||
"SINCE_3_MONTHS": "Nyere end 3 måneder",
|
||||
"SINCE_6_MONTHS": "Nyere end 6 måneder",
|
||||
"SINCE_YEAR": "Nyere end 1 år",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Zurück",
|
||||
"BUTTON_UPDATE": "Aktualisieren",
|
||||
"NEW_DOMAIN_DESC": "Diese Domain Konfiguration wird es dir möglich machen mit <strong>%NAME%<\/strong> Mailadressen zu arbeiten.",
|
||||
"WHITE_LIST_ALERT": "Liste der User, die Webmail abrufen darf.\nVerwenden Sie Leerzeichen als Trennsymbol."
|
||||
"WHITE_LIST_ALERT": "Liste der User, die Webmail abrufen darf.\nVerwenden Sie Leerzeichen als Trennsymbol.",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Erweiterung",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Ungelesen",
|
||||
"DATE": "Datum",
|
||||
"DATE_ALL": "Alle",
|
||||
"DATE_3_DAYS": "Nicht älter als 3 Tage",
|
||||
"DATE_7_DAYS": "Nicht älter als 1 Woche",
|
||||
"DATE_MONTH": "Nicht älter als 1 Monat",
|
||||
"DATE_3_MONTHS": "Nicht älter als 3 Monate",
|
||||
"DATE_6_MONTHS": "Nicht älter als 6 Monate",
|
||||
"DATE_YEAR": "Nicht älter als 1 Jahr",
|
||||
"SINCE_3_DAYS": "Nicht älter als 3 Tage",
|
||||
"SINCE_7_DAYS": "Nicht älter als 1 Woche",
|
||||
"SINCE_MONTH": "Nicht älter als 1 Monat",
|
||||
"SINCE_3_MONTHS": "Nicht älter als 3 Monate",
|
||||
"SINCE_6_MONTHS": "Nicht älter als 6 Monate",
|
||||
"SINCE_YEAR": "Nicht älter als 1 Jahr",
|
||||
"SUBFOLDERS": "Unterordner",
|
||||
"SUBFOLDERS_NONE": "Keine",
|
||||
"SUBFOLDERS_SUBTREE": "Alle",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Δεν έχουν διαβαστεί",
|
||||
"DATE": "Ημερομηνία",
|
||||
"DATE_ALL": "Όλα",
|
||||
"DATE_3_DAYS": "Έως 3 ημέρες πρίν",
|
||||
"DATE_7_DAYS": "Έως 1 εβδομάδα πριν",
|
||||
"DATE_MONTH": "Έως 1 μήνα πριν",
|
||||
"DATE_3_MONTHS": "Έως 3 μήνες πριν",
|
||||
"DATE_6_MONTHS": "Έως 6 μήνες πριν",
|
||||
"DATE_YEAR": "Έως 1 χρόνο πριν",
|
||||
"SINCE_3_DAYS": "Έως 3 ημέρες πρίν",
|
||||
"SINCE_7_DAYS": "Έως 1 εβδομάδα πριν",
|
||||
"SINCE_MONTH": "Έως 1 μήνα πριν",
|
||||
"SINCE_3_MONTHS": "Έως 3 μήνες πριν",
|
||||
"SINCE_6_MONTHS": "Έως 6 μήνες πριν",
|
||||
"SINCE_YEAR": "Έως 1 χρόνο πριν",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Back",
|
||||
"BUTTON_UPDATE": "Update",
|
||||
"NEW_DOMAIN_DESC": "This domain configuration will allow you to work with <strong>%NAME%<\/strong> email addresses.",
|
||||
"WHITE_LIST_ALERT": "List of domain users webmail is allowed to access.\nUse a space as delimiter.\n"
|
||||
"WHITE_LIST_ALERT": "List of domain users webmail is allowed to access.\nUse a space as delimiter.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Extension",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Unseen",
|
||||
"DATE": "Date",
|
||||
"DATE_ALL": "All",
|
||||
"DATE_3_DAYS": "Up to 3 days old",
|
||||
"DATE_7_DAYS": "Up to 1 week old",
|
||||
"DATE_MONTH": "Up to 1 month old",
|
||||
"DATE_3_MONTHS": "Up to 3 months old",
|
||||
"DATE_6_MONTHS": "Up to 6 months old",
|
||||
"DATE_YEAR": "Up to 1 year old",
|
||||
"SINCE_3_DAYS": "Up to 3 days old",
|
||||
"SINCE_7_DAYS": "Up to 1 week old",
|
||||
"SINCE_MONTH": "Up to 1 month old",
|
||||
"SINCE_3_MONTHS": "Up to 3 months old",
|
||||
"SINCE_6_MONTHS": "Up to 6 months old",
|
||||
"SINCE_YEAR": "Up to 1 year old",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Volver",
|
||||
"BUTTON_UPDATE": "Actualizar",
|
||||
"NEW_DOMAIN_DESC": "Esta configuración de Dominio le permitirá trabajar con direcciones de correo tipo @<strong>%NAME%<\/strong>.",
|
||||
"WHITE_LIST_ALERT": "Lista de dominios con que los usuarios pueden ingresar.\nUse un espacio como delimitador.\n"
|
||||
"WHITE_LIST_ALERT": "Lista de dominios con que los usuarios pueden ingresar.\nUse un espacio como delimitador.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Extensión",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "No leído",
|
||||
"DATE": "Fecha",
|
||||
"DATE_ALL": "Todo",
|
||||
"DATE_3_DAYS": "Hasta 3 días de antigüedad",
|
||||
"DATE_7_DAYS": "Hasta una semana de antigüedad",
|
||||
"DATE_MONTH": "Hasta 1 mes de antigüedad",
|
||||
"DATE_3_MONTHS": "Hasta 3 meses de antigüedad",
|
||||
"DATE_6_MONTHS": "Hasta 6 meses de antigüedad",
|
||||
"DATE_YEAR": "Hasta 1 año de antigüedad",
|
||||
"SINCE_3_DAYS": "Hasta 3 días de antigüedad",
|
||||
"SINCE_7_DAYS": "Hasta una semana de antigüedad",
|
||||
"SINCE_MONTH": "Hasta 1 mes de antigüedad",
|
||||
"SINCE_3_MONTHS": "Hasta 3 meses de antigüedad",
|
||||
"SINCE_6_MONTHS": "Hasta 6 meses de antigüedad",
|
||||
"SINCE_YEAR": "Hasta 1 año de antigüedad",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Lugemata",
|
||||
"DATE": "Kuupäev",
|
||||
"DATE_ALL": "Kõik",
|
||||
"DATE_3_DAYS": "Kuni 3 päeva vanune",
|
||||
"DATE_7_DAYS": "Kuni 1 nädal vanune",
|
||||
"DATE_MONTH": "Kuni 1 kuu vanune",
|
||||
"DATE_3_MONTHS": "Kuni 3 kuu vanune ",
|
||||
"DATE_6_MONTHS": "Kuni 6 kuu vanune",
|
||||
"DATE_YEAR": "Kuni 1 aasta vanune",
|
||||
"SINCE_3_DAYS": "Kuni 3 päeva vanune",
|
||||
"SINCE_7_DAYS": "Kuni 1 nädal vanune",
|
||||
"SINCE_MONTH": "Kuni 1 kuu vanune",
|
||||
"SINCE_3_MONTHS": "Kuni 3 kuu vanune ",
|
||||
"SINCE_6_MONTHS": "Kuni 6 kuu vanune",
|
||||
"SINCE_YEAR": "Kuni 1 aasta vanune",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Atzera",
|
||||
"BUTTON_UPDATE": "Eguneratu",
|
||||
"NEW_DOMAIN_DESC": "Domeinu honen konfigurazioak <strong>%NAME%<\/strong> email kontuarekin lan egitea ahalbideratuko dizu.",
|
||||
"WHITE_LIST_ALERT": "Webmailak sartzeko baimena duen domeinuko erabiltzaileen zerrenda.\nErabili hutsunea banatzaile bezala.\n"
|
||||
"WHITE_LIST_ALERT": "Webmailak sartzeko baimena duen domeinuko erabiltzaileen zerrenda.\nErabili hutsunea banatzaile bezala.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Gehigarria",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Irakurri gabe",
|
||||
"DATE": "Data",
|
||||
"DATE_ALL": "Denak",
|
||||
"DATE_3_DAYS": "3 egun arterakoak",
|
||||
"DATE_7_DAYS": "Astebetako arterakoak",
|
||||
"DATE_MONTH": "Hilabete arterakoak",
|
||||
"DATE_3_MONTHS": "3 hilabete arterakoak",
|
||||
"DATE_6_MONTHS": "6 hilabete arterakoak",
|
||||
"DATE_YEAR": "Urtebete arterakoak",
|
||||
"SINCE_3_DAYS": "3 egun arterakoak",
|
||||
"SINCE_7_DAYS": "Astebetako arterakoak",
|
||||
"SINCE_MONTH": "Hilabete arterakoak",
|
||||
"SINCE_3_MONTHS": "3 hilabete arterakoak",
|
||||
"SINCE_6_MONTHS": "6 hilabete arterakoak",
|
||||
"SINCE_YEAR": "Urtebete arterakoak",
|
||||
"SUBFOLDERS": "Azpikarpetak",
|
||||
"SUBFOLDERS_NONE": "Bat ere ez",
|
||||
"SUBFOLDERS_SUBTREE": "Denak",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "برگشت",
|
||||
"BUTTON_UPDATE": "بروزرسانی",
|
||||
"NEW_DOMAIN_DESC": "این تنظیمات دامنه به شما اجازه کار کردن با پست الکترونیک <strong>%NAME%<\/strong> را میدهد.",
|
||||
"WHITE_LIST_ALERT": "لیستی از دامنهها که کاربران وبمیل میتوانند به آنها دسترسی داشته باشند.\nاز فاصله جهت جدا کردن استفاده کنید.\n"
|
||||
"WHITE_LIST_ALERT": "لیستی از دامنهها که کاربران وبمیل میتوانند به آنها دسترسی داشته باشند.\nاز فاصله جهت جدا کردن استفاده کنید.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "افزونه",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "خوانده نشده",
|
||||
"DATE": "تاریخ",
|
||||
"DATE_ALL": "همه",
|
||||
"DATE_3_DAYS": "تا 3 روز گذشته",
|
||||
"DATE_7_DAYS": "تا 1 هفته گذشته",
|
||||
"DATE_MONTH": "تا 1 ماه گذشته",
|
||||
"DATE_3_MONTHS": "تا 3 ماه گذشته",
|
||||
"DATE_6_MONTHS": "تا 6 ماه گذشته",
|
||||
"DATE_YEAR": "تا 1 سال گذشته",
|
||||
"SINCE_3_DAYS": "تا 3 روز گذشته",
|
||||
"SINCE_7_DAYS": "تا 1 هفته گذشته",
|
||||
"SINCE_MONTH": "تا 1 ماه گذشته",
|
||||
"SINCE_3_MONTHS": "تا 3 ماه گذشته",
|
||||
"SINCE_6_MONTHS": "تا 6 ماه گذشته",
|
||||
"SINCE_YEAR": "تا 1 سال گذشته",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Takaisin",
|
||||
"BUTTON_UPDATE": "Päivitä",
|
||||
"NEW_DOMAIN_DESC": "Tämän verkkotunnuksen asetukset sallivat käyttää <strong>%NAME%<strong> säkhöpostiosoitteita.",
|
||||
"WHITE_LIST_ALERT": "Lista domain käyttäjistä joihin webmaililla on oikeus.\nErottele välilyönnillä.\n"
|
||||
"WHITE_LIST_ALERT": "Lista domain käyttäjistä joihin webmaililla on oikeus.\nErottele välilyönnillä.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Lisäosa",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Ei luettu",
|
||||
"DATE": "Pvm",
|
||||
"DATE_ALL": "Kaikki",
|
||||
"DATE_3_DAYS": "3 päivän ajalta",
|
||||
"DATE_7_DAYS": "1 viikon ajalta",
|
||||
"DATE_MONTH": "1 kk ajalta",
|
||||
"DATE_3_MONTHS": "3 kk ajalta",
|
||||
"DATE_6_MONTHS": "6 kk ajalta",
|
||||
"DATE_YEAR": "1 vuoden ajalta",
|
||||
"SINCE_3_DAYS": "3 päivän ajalta",
|
||||
"SINCE_7_DAYS": "1 viikon ajalta",
|
||||
"SINCE_MONTH": "1 kk ajalta",
|
||||
"SINCE_3_MONTHS": "3 kk ajalta",
|
||||
"SINCE_6_MONTHS": "6 kk ajalta",
|
||||
"SINCE_YEAR": "1 vuoden ajalta",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Retour",
|
||||
"BUTTON_UPDATE": "Modifier",
|
||||
"NEW_DOMAIN_DESC": "Cette configuration de domaine vous permettra de travailler avec <strong>%NAME%<\/strong> dans les adresses électroniques.",
|
||||
"WHITE_LIST_ALERT": "Liste des utilisateurs du domaine auxquels le webmail est autorisé à accéder.\nUtilisez un espace comme séparateur."
|
||||
"WHITE_LIST_ALERT": "Liste des utilisateurs du domaine auxquels le webmail est autorisé à accéder.\nUtilisez un espace comme séparateur.",
|
||||
"VALID_SPAM_HEADERS": "En-têtes SPAM valides",
|
||||
"VALID_VIRUS_HEADERS": "En-têtes de virus valides"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Extension",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Non lu",
|
||||
"DATE": "Date",
|
||||
"DATE_ALL": "Tous",
|
||||
"DATE_3_DAYS": "Jusqu'à 3 jours",
|
||||
"DATE_7_DAYS": "Jusqu'à 1 semaine",
|
||||
"DATE_MONTH": "Jusqu'à 1 mois",
|
||||
"DATE_3_MONTHS": "Jusqu'à 3 mois",
|
||||
"DATE_6_MONTHS": "Jusqu'à 6 mois",
|
||||
"DATE_YEAR": "Jusqu'à 1 an",
|
||||
"SINCE_3_DAYS": "Jusqu'à 3 jours",
|
||||
"SINCE_7_DAYS": "Jusqu'à 1 semaine",
|
||||
"SINCE_MONTH": "Jusqu'à 1 mois",
|
||||
"SINCE_3_MONTHS": "Jusqu'à 3 mois",
|
||||
"SINCE_6_MONTHS": "Jusqu'à 6 mois",
|
||||
"SINCE_YEAR": "Jusqu'à 1 an",
|
||||
"SUBFOLDERS": "Sous-dossiers",
|
||||
"SUBFOLDERS_NONE": "Aucun",
|
||||
"SUBFOLDERS_SUBTREE": "Tous",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Vissza",
|
||||
"BUTTON_UPDATE": "Frissítés",
|
||||
"NEW_DOMAIN_DESC": "Ez a domain konfiguráció lehetővé teszi a <strong>%NAME%<\/strong> email címek használatát.",
|
||||
"WHITE_LIST_ALERT": "Hozzáféréshez engedélyezett domainek listája.\nElválasztáshoz használd a szóközt.\n"
|
||||
"WHITE_LIST_ALERT": "Hozzáféréshez engedélyezett domainek listája.\nElválasztáshoz használd a szóközt.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Bővítményt",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Észrevétlen",
|
||||
"DATE": "Dátum",
|
||||
"DATE_ALL": "Összes",
|
||||
"DATE_3_DAYS": "Legfeljebb 3 napos",
|
||||
"DATE_7_DAYS": "Legfeljebb 1 hetes",
|
||||
"DATE_MONTH": "Legfeljebb 1 hónapos",
|
||||
"DATE_3_MONTHS": "Legfeljebb 3 hónapos",
|
||||
"DATE_6_MONTHS": "Legfeljebb 6 hónapos",
|
||||
"DATE_YEAR": "Legfeljebb 1 éves",
|
||||
"SINCE_3_DAYS": "Legfeljebb 3 napos",
|
||||
"SINCE_7_DAYS": "Legfeljebb 1 hetes",
|
||||
"SINCE_MONTH": "Legfeljebb 1 hónapos",
|
||||
"SINCE_3_MONTHS": "Legfeljebb 3 hónapos",
|
||||
"SINCE_6_MONTHS": "Legfeljebb 6 hónapos",
|
||||
"SINCE_YEAR": "Legfeljebb 1 éves",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Kembali",
|
||||
"BUTTON_UPDATE": "Perbarui",
|
||||
"NEW_DOMAIN_DESC": "Domain ini mengizinkan anda bekerja dengan alamat email juga<strong>%NAME%<\/strong> ",
|
||||
"WHITE_LIST_ALERT": "Daftar domain webmail user yang diizinkan diakses.\nGunakan spasi untuk pemisahnya\n"
|
||||
"WHITE_LIST_ALERT": "Daftar domain webmail user yang diizinkan diakses.\nGunakan spasi untuk pemisahnya\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Plugin",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Belum dilihat",
|
||||
"DATE": "Tanggal",
|
||||
"DATE_ALL": "Semua",
|
||||
"DATE_3_DAYS": "Sudah 3 hari lalu",
|
||||
"DATE_7_DAYS": "Sudah 1 bulan lalu",
|
||||
"DATE_MONTH": "Lebih dari 1 bulan lalu",
|
||||
"DATE_3_MONTHS": "Lebih dari 3 bulan lalu",
|
||||
"DATE_6_MONTHS": "Lebih dari 6 bulan lalu",
|
||||
"DATE_YEAR": "Lebih dari 1 tahun lalu",
|
||||
"SINCE_3_DAYS": "Sudah 3 hari lalu",
|
||||
"SINCE_7_DAYS": "Sudah 1 bulan lalu",
|
||||
"SINCE_MONTH": "Lebih dari 1 bulan lalu",
|
||||
"SINCE_3_MONTHS": "Lebih dari 3 bulan lalu",
|
||||
"SINCE_6_MONTHS": "Lebih dari 6 bulan lalu",
|
||||
"SINCE_YEAR": "Lebih dari 1 tahun lalu",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Ólesið",
|
||||
"DATE": "Dagsetning",
|
||||
"DATE_ALL": "Allt",
|
||||
"DATE_3_DAYS": "Allt að 3 daga gömlu",
|
||||
"DATE_7_DAYS": "Allt að viku gömlu",
|
||||
"DATE_MONTH": "Allt að mánaðar gömlu",
|
||||
"DATE_3_MONTHS": "Allt að 3 mánaða gömlu",
|
||||
"DATE_6_MONTHS": "Allt að 6 mánaða gömlu",
|
||||
"DATE_YEAR": "Allt að 1 árs gömlu",
|
||||
"SINCE_3_DAYS": "Allt að 3 daga gömlu",
|
||||
"SINCE_7_DAYS": "Allt að viku gömlu",
|
||||
"SINCE_MONTH": "Allt að mánaðar gömlu",
|
||||
"SINCE_3_MONTHS": "Allt að 3 mánaða gömlu",
|
||||
"SINCE_6_MONTHS": "Allt að 6 mánaða gömlu",
|
||||
"SINCE_YEAR": "Allt að 1 árs gömlu",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Indietro",
|
||||
"BUTTON_UPDATE": "Aggiorna",
|
||||
"NEW_DOMAIN_DESC": "This domain configuration will allow you to work with <strong>%NAME%<\/strong> email addresses.",
|
||||
"WHITE_LIST_ALERT": "Lista degli utenti del dominio ai quali webmail può accedere.\nUsa uno spazio come delimitatore."
|
||||
"WHITE_LIST_ALERT": "Lista degli utenti del dominio ai quali webmail può accedere.\nUsa uno spazio come delimitatore.",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Estensione",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Non letti",
|
||||
"DATE": "Data",
|
||||
"DATE_ALL": "Tutte",
|
||||
"DATE_3_DAYS": "Meno di 3 giorni fa",
|
||||
"DATE_7_DAYS": "Meno di una settimana fa",
|
||||
"DATE_MONTH": "Meno di un mese fa",
|
||||
"DATE_3_MONTHS": "Meno di 3 mesi fa",
|
||||
"DATE_6_MONTHS": "Meno di 6 mesi fa",
|
||||
"DATE_YEAR": "Meno di un anno fa",
|
||||
"SINCE_3_DAYS": "Meno di 3 giorni fa",
|
||||
"SINCE_7_DAYS": "Meno di una settimana fa",
|
||||
"SINCE_MONTH": "Meno di un mese fa",
|
||||
"SINCE_3_MONTHS": "Meno di 3 mesi fa",
|
||||
"SINCE_6_MONTHS": "Meno di 6 mesi fa",
|
||||
"SINCE_YEAR": "Meno di un anno fa",
|
||||
"SUBFOLDERS": "Sottocartelle",
|
||||
"SUBFOLDERS_NONE": "Nessuna",
|
||||
"SUBFOLDERS_SUBTREE": "Tutte",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "戻る",
|
||||
"BUTTON_UPDATE": "更新",
|
||||
"NEW_DOMAIN_DESC": "このドメイン設定を使用すると、<strong>%NAME%<\/strong>メールアドレスで動作するようになります。",
|
||||
"WHITE_LIST_ALERT": "ドメインの一覧は、Webメールのアクセスを許可されています。\n区切り文字としてスペースを使用してください。\n"
|
||||
"WHITE_LIST_ALERT": "ドメインの一覧は、Webメールのアクセスを許可されています。\n区切り文字としてスペースを使用してください。\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "プラグイン",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "未読メール",
|
||||
"DATE": "日付",
|
||||
"DATE_ALL": "全て",
|
||||
"DATE_3_DAYS": "3日前まで",
|
||||
"DATE_7_DAYS": "1週間前まで",
|
||||
"DATE_MONTH": "1ヶ月前まで",
|
||||
"DATE_3_MONTHS": "3ヶ月前まで",
|
||||
"DATE_6_MONTHS": "6ヶ月前まで",
|
||||
"DATE_YEAR": "1年前まで",
|
||||
"SINCE_3_DAYS": "3日前まで",
|
||||
"SINCE_7_DAYS": "1週間前まで",
|
||||
"SINCE_MONTH": "1ヶ月前まで",
|
||||
"SINCE_3_MONTHS": "3ヶ月前まで",
|
||||
"SINCE_6_MONTHS": "6ヶ月前まで",
|
||||
"SINCE_YEAR": "1年前まで",
|
||||
"SUBFOLDERS": "サブフォルダ",
|
||||
"SUBFOLDERS_NONE": "なし",
|
||||
"SUBFOLDERS_SUBTREE": "全て",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "읽지 않음",
|
||||
"DATE": "날짜",
|
||||
"DATE_ALL": "모두",
|
||||
"DATE_3_DAYS": "3일 이내",
|
||||
"DATE_7_DAYS": "1주일 이내",
|
||||
"DATE_MONTH": "1개월 이내",
|
||||
"DATE_3_MONTHS": "3개월 이내",
|
||||
"DATE_6_MONTHS": "6개월 이내",
|
||||
"DATE_YEAR": "1년 이내",
|
||||
"SINCE_3_DAYS": "3일 이내",
|
||||
"SINCE_7_DAYS": "1주일 이내",
|
||||
"SINCE_MONTH": "1개월 이내",
|
||||
"SINCE_3_MONTHS": "3개월 이내",
|
||||
"SINCE_6_MONTHS": "6개월 이내",
|
||||
"SINCE_YEAR": "1년 이내",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Atgal",
|
||||
"BUTTON_UPDATE": "Atnaujinti",
|
||||
"NEW_DOMAIN_DESC": "Šie nustatymai leis jums dirbti su <strong>%NAME%<\/strong> domeno pašto adresais.",
|
||||
"WHITE_LIST_ALERT": "Domeno vartotojų sąrašas, kuriems leista naudotis web paštu.\nNaudokite tarpo simbolį kaip skyriklį.\n"
|
||||
"WHITE_LIST_ALERT": "Domeno vartotojų sąrašas, kuriems leista naudotis web paštu.\nNaudokite tarpo simbolį kaip skyriklį.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Įskiepis",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Neskaitytas",
|
||||
"DATE": "Data",
|
||||
"DATE_ALL": "Visi",
|
||||
"DATE_3_DAYS": "Nesenesni kaip 3 dienų",
|
||||
"DATE_7_DAYS": "Nesenesni kaip 1 savaitės",
|
||||
"DATE_MONTH": "Nesenesni kaip 1 mėnesio",
|
||||
"DATE_3_MONTHS": "Nesenesni kaip 3 mėnesių",
|
||||
"DATE_6_MONTHS": "Nesenesni kaip 6 mėnesių",
|
||||
"DATE_YEAR": "Nesenesni kaip 1 metų",
|
||||
"SINCE_3_DAYS": "Nesenesni kaip 3 dienų",
|
||||
"SINCE_7_DAYS": "Nesenesni kaip 1 savaitės",
|
||||
"SINCE_MONTH": "Nesenesni kaip 1 mėnesio",
|
||||
"SINCE_3_MONTHS": "Nesenesni kaip 3 mėnesių",
|
||||
"SINCE_6_MONTHS": "Nesenesni kaip 6 mėnesių",
|
||||
"SINCE_YEAR": "Nesenesni kaip 1 metų",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Unseen",
|
||||
"DATE": "Datums",
|
||||
"DATE_ALL": "Viss periods",
|
||||
"DATE_3_DAYS": "Līdz 3 dienas vecs",
|
||||
"DATE_7_DAYS": "Līdz 1 nedēļu vecs",
|
||||
"DATE_MONTH": "Līdz 1 mēnesi vecs",
|
||||
"DATE_3_MONTHS": "Līdz 3 mēnešus vecs",
|
||||
"DATE_6_MONTHS": "Līdz 6 mēnešus vecs",
|
||||
"DATE_YEAR": "Līdz 1 gadu vecs",
|
||||
"SINCE_3_DAYS": "Līdz 3 dienas vecs",
|
||||
"SINCE_7_DAYS": "Līdz 1 nedēļu vecs",
|
||||
"SINCE_MONTH": "Līdz 1 mēnesi vecs",
|
||||
"SINCE_3_MONTHS": "Līdz 3 mēnešus vecs",
|
||||
"SINCE_6_MONTHS": "Līdz 6 mēnešus vecs",
|
||||
"SINCE_YEAR": "Līdz 1 gadu vecs",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Tilbake",
|
||||
"BUTTON_UPDATE": "Oppdater",
|
||||
"NEW_DOMAIN_DESC": "Dette domeneoppsettet lar deg jobbe med e-postadresser ved <strong>%NAME%<\/strong>.",
|
||||
"WHITE_LIST_ALERT": "Liste over domenebrukere som programmet skal ha tilgang til.\nHold verdier adskilt med mellomrom."
|
||||
"WHITE_LIST_ALERT": "Liste over domenebrukere som programmet skal ha tilgang til.\nHold verdier adskilt med mellomrom.",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Tillegg",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Ulest",
|
||||
"DATE": "Dato",
|
||||
"DATE_ALL": "Alle",
|
||||
"DATE_3_DAYS": "Inntil 3 dager gamle",
|
||||
"DATE_7_DAYS": "Inntil 1 uke gamle",
|
||||
"DATE_MONTH": "Inntil 1 måned gamle",
|
||||
"DATE_3_MONTHS": "Inntil 3 måneder gamle",
|
||||
"DATE_6_MONTHS": "Inntil 6 måneder gamle",
|
||||
"DATE_YEAR": "Inntil 1 år gamle",
|
||||
"SINCE_3_DAYS": "Inntil 3 dager gamle",
|
||||
"SINCE_7_DAYS": "Inntil 1 uke gamle",
|
||||
"SINCE_MONTH": "Inntil 1 måned gamle",
|
||||
"SINCE_3_MONTHS": "Inntil 3 måneder gamle",
|
||||
"SINCE_6_MONTHS": "Inntil 6 måneder gamle",
|
||||
"SINCE_YEAR": "Inntil 1 år gamle",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "Alle",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Terug",
|
||||
"BUTTON_UPDATE": "Update",
|
||||
"NEW_DOMAIN_DESC": "Dit domein stelt u in staat om met <strong>%NAME%<\/strong> e-mail adressen te werken.",
|
||||
"WHITE_LIST_ALERT": "Lijst van gebruikers die dit domein mogen gebruiken.\nGebruik een spatie als scheidingsteken."
|
||||
"WHITE_LIST_ALERT": "Lijst van gebruikers die dit domein mogen gebruiken.\nGebruik een spatie als scheidingsteken.",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Extensie",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Ongelezen",
|
||||
"DATE": "Datum",
|
||||
"DATE_ALL": "Alles",
|
||||
"DATE_3_DAYS": "Tot 3 dagen oud",
|
||||
"DATE_7_DAYS": "Tot 1 week oud",
|
||||
"DATE_MONTH": "Tot 1 maand oud",
|
||||
"DATE_3_MONTHS": "Tot 3 maanden oud",
|
||||
"DATE_6_MONTHS": "Tot 6 maanden oud",
|
||||
"DATE_YEAR": "Tot 1 jaar oud",
|
||||
"SINCE_3_DAYS": "Tot 3 dagen oud",
|
||||
"SINCE_7_DAYS": "Tot 1 week oud",
|
||||
"SINCE_MONTH": "Tot 1 maand oud",
|
||||
"SINCE_3_MONTHS": "Tot 3 maanden oud",
|
||||
"SINCE_6_MONTHS": "Tot 6 maanden oud",
|
||||
"SINCE_YEAR": "Tot 1 jaar oud",
|
||||
"SUBFOLDERS": "Submappen",
|
||||
"SUBFOLDERS_NONE": "Geen",
|
||||
"SUBFOLDERS_SUBTREE": "Alle",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Wstecz",
|
||||
"BUTTON_UPDATE": "Zaktualizuj",
|
||||
"NEW_DOMAIN_DESC": "Konfiguracja tej domeny pozwala na pracę z adresami e-mail: <strong>%NAME%<\/strong>",
|
||||
"WHITE_LIST_ALERT": "Lista użytkowników domeny, którzy mogą uzyskać dostęp z tego webmaila.\nUżyj spacji do rozdzielenia.\n"
|
||||
"WHITE_LIST_ALERT": "Lista użytkowników domeny, którzy mogą uzyskać dostęp z tego webmaila.\nUżyj spacji do rozdzielenia.\n",
|
||||
"VALID_SPAM_HEADERS": "Prawidłowe nagłówki informacji o SPAMie",
|
||||
"VALID_VIRUS_HEADERS": "Prawidłowe nagłówki informacji o wirusach"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Wtyczka",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Nieprzeczytana",
|
||||
"DATE": "Data",
|
||||
"DATE_ALL": "Wszystkie",
|
||||
"DATE_3_DAYS": "do 3 dni",
|
||||
"DATE_7_DAYS": "do tygodnia",
|
||||
"DATE_MONTH": "do miesiąca",
|
||||
"DATE_3_MONTHS": "do 3 miesięcy",
|
||||
"DATE_6_MONTHS": "do 6 miesięcy",
|
||||
"DATE_YEAR": "do roku",
|
||||
"SINCE_3_DAYS": "do 3 dni",
|
||||
"SINCE_7_DAYS": "do tygodnia",
|
||||
"SINCE_MONTH": "do miesiąca",
|
||||
"SINCE_3_MONTHS": "do 3 miesięcy",
|
||||
"SINCE_6_MONTHS": "do 6 miesięcy",
|
||||
"SINCE_YEAR": "do roku",
|
||||
"SUBFOLDERS": "Podfoldery",
|
||||
"SUBFOLDERS_NONE": "Brak",
|
||||
"SUBFOLDERS_SUBTREE": "Wszystkie",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Voltar",
|
||||
"BUTTON_UPDATE": "Atualizar",
|
||||
"NEW_DOMAIN_DESC": "Esta configuração de domínio lhe permitirá trabalhar com endereços de e-mail do <strong>%NAME%<\/strong>.",
|
||||
"WHITE_LIST_ALERT": "Filtrar com lista dos únicos usuários do domínio que terão acesso ao webmail.\nUse um espaço como delimitador.\n"
|
||||
"WHITE_LIST_ALERT": "Filtrar com lista dos únicos usuários do domínio que terão acesso ao webmail.\nUse um espaço como delimitador.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Plugin",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Não Lida",
|
||||
"DATE": "Data",
|
||||
"DATE_ALL": "Qualquer",
|
||||
"DATE_3_DAYS": "Até 3 dias atrás",
|
||||
"DATE_7_DAYS": "Até 1 semana atrás",
|
||||
"DATE_MONTH": "Até 1 mês atrás",
|
||||
"DATE_3_MONTHS": "Até 3 meses atrás",
|
||||
"DATE_6_MONTHS": "Até 6 meses atrás",
|
||||
"DATE_YEAR": "Até 1 ano atrás",
|
||||
"SINCE_3_DAYS": "Até 3 dias atrás",
|
||||
"SINCE_7_DAYS": "Até 1 semana atrás",
|
||||
"SINCE_MONTH": "Até 1 mês atrás",
|
||||
"SINCE_3_MONTHS": "Até 3 meses atrás",
|
||||
"SINCE_6_MONTHS": "Até 6 meses atrás",
|
||||
"SINCE_YEAR": "Até 1 ano atrás",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
"LABEL_ALLOW_THEMES_ON_SETTINGS": "Permitir personalização da interface nas definições",
|
||||
"LABEL_ALLOW_BACKGROUND_ON_SETTINGS": "Permitir alterar a imagem de fundo nas definições",
|
||||
"LABEL_SHOW_THUMBNAILS": "Mostrar miniaturas (anexos)",
|
||||
"LEGEND_MAIN": "Prinicpal",
|
||||
"LEGEND_MAIN": "Principal",
|
||||
"LABEL_ATTACHMENT_SIZE_LIMIT": "Tamanho limite dos anexos",
|
||||
"LABEL_ALLOW_ADDITIONAL_ACCOUNTS": "Permitir contas adicionais",
|
||||
"LABEL_ALLOW_IDENTITIES": "Permitir múltiplas identidades",
|
||||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Voltar",
|
||||
"BUTTON_UPDATE": "Atualizar",
|
||||
"NEW_DOMAIN_DESC": "Esta configuração de domínio vai permitir trabalhar com endereços email <strong>%NAME%<\/strong>.",
|
||||
"WHITE_LIST_ALERT": "Lista de utilizadores do domínio aos quais o webmail terá permissão para aceder.\nUsar espaços para delimitar.\n"
|
||||
"WHITE_LIST_ALERT": "Lista de utilizadores do domínio aos quais o webmail terá permissão para aceder.\nUsar espaços para delimitar.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Extensão",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Não lida",
|
||||
"DATE": "Data",
|
||||
"DATE_ALL": "Qualquer",
|
||||
"DATE_3_DAYS": "Até 3 dias atrás",
|
||||
"DATE_7_DAYS": "Até 1 semana atrás",
|
||||
"DATE_MONTH": "Até 1 mês atrás",
|
||||
"DATE_3_MONTHS": "Até 3 meses atrás",
|
||||
"DATE_6_MONTHS": "Até 6 meses atrás",
|
||||
"DATE_YEAR": "Até 1 ano atrás",
|
||||
"SINCE_3_DAYS": "Até 3 dias atrás",
|
||||
"SINCE_7_DAYS": "Até 1 semana atrás",
|
||||
"SINCE_MONTH": "Até 1 mês atrás",
|
||||
"SINCE_3_MONTHS": "Até 3 meses atrás",
|
||||
"SINCE_6_MONTHS": "Até 6 meses atrás",
|
||||
"SINCE_YEAR": "Até 1 ano atrás",
|
||||
"SUBFOLDERS": "Subpastas",
|
||||
"SUBFOLDERS_NONE": "Nenhuma",
|
||||
"SUBFOLDERS_SUBTREE": "Todas",
|
||||
|
|
@ -140,7 +140,7 @@
|
|||
"MENU_VIEW_ORIGINAL": "Mostrar original",
|
||||
"HTML_VIEW": "Ver mensagem em HTML",
|
||||
"PLAIN_VIEW": "Ver mensagem em texto simples",
|
||||
"SWAP_COLORS": "Swap default (background)color",
|
||||
"SWAP_COLORS": "Trocar a cor (de fundo) predefinida",
|
||||
"MENU_DOWNLOAD_ORIGINAL": "Transferir como ficheiro .eml",
|
||||
"MENU_FILTER_SIMILAR": "Filtrar mensagens semelhantes a esta",
|
||||
"MENU_PRINT": "Imprimir",
|
||||
|
|
@ -283,7 +283,7 @@
|
|||
"VERIFY": "Validar",
|
||||
"GOOD_SIGNATURE": "Boa assinatura de %USER%",
|
||||
"ERROR": "Erro %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Criar auto-assinado",
|
||||
"CREATE_SELF_SIGNED": "Criar autoassinado",
|
||||
"VALID_UNTIL": "Válido até",
|
||||
"PRIVATE_KEY": "Chave privada",
|
||||
"CHANGE_PASS": "Alterar frase secreta",
|
||||
|
|
@ -328,13 +328,13 @@
|
|||
"SELECT_ACTION_VACATION_MESSAGE": "Mensagem de férias",
|
||||
"SELECT_ACTION_DISCARD": "Descartar",
|
||||
"SELECT_FIELD_RECIPIENTS": "Destinatários (Para ou Cc)",
|
||||
"SELECT_FIELD_HEADER": "Cebeçalho",
|
||||
"SELECT_FIELD_HEADER": "Cabeçalho",
|
||||
"SELECT_FIELD_BODY": "Corpo",
|
||||
"SELECT_FIELD_SIZE": "Tamanho",
|
||||
"SELECT_TYPE_CONTAINS": "Contém",
|
||||
"SELECT_TYPE_NOT_CONTAINS": "Não contém",
|
||||
"SELECT_TYPE_MATCHES": "Corresponde (* e ? suportados)",
|
||||
"SELECT_TYPE_NOT_MATCHES": "Não correponde (* e ? suportados)",
|
||||
"SELECT_TYPE_NOT_MATCHES": "Não corresponde (* e ? suportados)",
|
||||
"SELECT_TYPE_REGEXP": "RegExp",
|
||||
"SELECT_TYPE_NOT_REGEXP": "Diferente de RegExp",
|
||||
"SELECT_TYPE_EQUAL_TO": "Igual a",
|
||||
|
|
@ -358,10 +358,10 @@
|
|||
"POPUPS_SIEVE_SCRIPT": {
|
||||
"TITLE_CREATE": "Criar script",
|
||||
"TITLE_EDIT": "Editar script",
|
||||
"BUTTON_ADD_FILTER": "Adiscionar um filtro",
|
||||
"BUTTON_ADD_FILTER": "Adicionar um filtro",
|
||||
"BUTTON_RAW_SCRIPT": "Usar um script de utilizador personalizado",
|
||||
"CAPABILITY_LABEL": "Capacidades",
|
||||
"CHANGES_NEED_TO_BE_SAVED_DESC": "Estas alterações têm que ser guardadas no sevidor."
|
||||
"CHANGES_NEED_TO_BE_SAVED_DESC": "Estas alterações têm que ser guardadas no servidor."
|
||||
},
|
||||
"POPUPS_SYSTEM_FOLDERS": {
|
||||
"TITLE_SYSTEM_FOLDERS": "Escolha as pastas de sistema",
|
||||
|
|
@ -426,7 +426,7 @@
|
|||
},
|
||||
"SETTINGS_FILTERS": {
|
||||
"SIMPLE": "Simples",
|
||||
"ADVANCED": "Advançado",
|
||||
"ADVANCED": "Avançado",
|
||||
"BUTTON_ADD_SCRIPT": "Adicionar um script",
|
||||
"SUBNAME_MOVE_TO": "Mover para \"%FOLDER%\"",
|
||||
"SUBNAME_FORWARD_TO": "Encaminhar para \"%EMAIL%\"",
|
||||
|
|
@ -449,7 +449,7 @@
|
|||
"LAYOUT_HORIZONTAL_SPLIT": "Separação horizontal",
|
||||
"SHOW_NEXT_MESSAGE": "Mostrar a próxima mensagem quando (re)mover a mensagem atual",
|
||||
"EDITOR": "Editor de texto padrão",
|
||||
"EDITOR_HTML": "Html",
|
||||
"EDITOR_HTML": "HTML",
|
||||
"EDITOR_PLAIN": "Texto simples",
|
||||
"VIEW_OPTIONS": "Ver opções",
|
||||
"USE_PREVIEW_PANE": "Use o painel de pré-visualização",
|
||||
|
|
@ -591,7 +591,7 @@
|
|||
"DomainAlreadyExists": "O domínio já existe",
|
||||
"DomainNotAllowed": "Este domínio não é permitido",
|
||||
"AccountNotAllowed": "Esta conta não é permitida",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"CryptKeyError": "A sua palavra-passe de autenticação foi alterada",
|
||||
"ContactsSyncError": "Erro na sincronização de contactos",
|
||||
"CantGetMessageList": "Não é possível obter a lista de mensagens",
|
||||
"CantGetMessage": "Não é possível obter a mensagem",
|
||||
|
|
@ -611,7 +611,7 @@
|
|||
"CantDeleteFolder": "Não é possível eliminar a pasta",
|
||||
"CantDeleteNonEmptyFolder": "Não é possível eliminar pastas com conteúdos",
|
||||
"CantSubscribeFolder": "Não é possível subscrever a esta pasta",
|
||||
"CantUnsubscribeFolder": "Não é possível anular a subsrição desta pasta",
|
||||
"CantUnsubscribeFolder": "Não é possível anular a subscrição desta pasta",
|
||||
"DemoSendMessageError": "Por motivos de segurança, esta conta de demonstração não tem permissão para enviar mensagens para endereços de e-mail externos!",
|
||||
"DemoAccountError": "Por motivos de segurança, esta conta não tem permissão de executar esta ação!",
|
||||
"AccountAlreadyExists": "Esta conta já existe",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Necitit",
|
||||
"DATE": "Data",
|
||||
"DATE_ALL": "Tot timpul",
|
||||
"DATE_3_DAYS": "З zile",
|
||||
"DATE_7_DAYS": "7 zile",
|
||||
"DATE_MONTH": "în această lună",
|
||||
"DATE_3_MONTHS": "3 luni",
|
||||
"DATE_6_MONTHS": "6 luni",
|
||||
"DATE_YEAR": "în acest an",
|
||||
"SINCE_3_DAYS": "З zile",
|
||||
"SINCE_7_DAYS": "7 zile",
|
||||
"SINCE_MONTH": "în această lună",
|
||||
"SINCE_3_MONTHS": "3 luni",
|
||||
"SINCE_6_MONTHS": "6 luni",
|
||||
"SINCE_YEAR": "în acest an",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Назад",
|
||||
"BUTTON_UPDATE": "Обновить",
|
||||
"NEW_DOMAIN_DESC": "Эта конфигурация позволит вам работать с <strong>%NAME%<\/strong> адресами.",
|
||||
"WHITE_LIST_ALERT": "Список пользователей домена к которым разрешен доступ.\nИспользуйте пробел в качестве разделителя.\n"
|
||||
"WHITE_LIST_ALERT": "Список пользователей домена к которым разрешен доступ.\nИспользуйте пробел в качестве разделителя.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Плагин",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Непрочитанные",
|
||||
"DATE": "Дата",
|
||||
"DATE_ALL": "За всё время",
|
||||
"DATE_3_DAYS": "За три дня",
|
||||
"DATE_7_DAYS": "За неделю",
|
||||
"DATE_MONTH": "За месяц",
|
||||
"DATE_3_MONTHS": "За 3 месяца",
|
||||
"DATE_6_MONTHS": "За полгода",
|
||||
"DATE_YEAR": "За год",
|
||||
"SINCE_3_DAYS": "За три дня",
|
||||
"SINCE_7_DAYS": "За неделю",
|
||||
"SINCE_MONTH": "За месяц",
|
||||
"SINCE_3_MONTHS": "За 3 месяца",
|
||||
"SINCE_6_MONTHS": "За полгода",
|
||||
"SINCE_YEAR": "За год",
|
||||
"SUBFOLDERS": "Подпапки",
|
||||
"SUBFOLDERS_NONE": "Ничего",
|
||||
"SUBFOLDERS_SUBTREE": "Все",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Späť",
|
||||
"BUTTON_UPDATE": "Aktualizovať",
|
||||
"NEW_DOMAIN_DESC": "This domain configuration will allow you to work with <strong>%NAME%<\/strong> email addresses.",
|
||||
"WHITE_LIST_ALERT": "List of domain users webmail is allowed to access.\nUse a space as delimiter.\n"
|
||||
"WHITE_LIST_ALERT": "List of domain users webmail is allowed to access.\nUse a space as delimiter.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Doplnok",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Neprečítané",
|
||||
"DATE": "Dátum",
|
||||
"DATE_ALL": "Kedykoľvek",
|
||||
"DATE_3_DAYS": "Nie staršie ako 3 dni",
|
||||
"DATE_7_DAYS": "Nie staršie ako týždeň",
|
||||
"DATE_MONTH": "Nie staršie ako mesiac",
|
||||
"DATE_3_MONTHS": "Nie staršie ako 3 mesiace",
|
||||
"DATE_6_MONTHS": "Nie staršie ako 6 mesiacov",
|
||||
"DATE_YEAR": "Nie staršie ako 1 rok",
|
||||
"SINCE_3_DAYS": "Nie staršie ako 3 dni",
|
||||
"SINCE_7_DAYS": "Nie staršie ako týždeň",
|
||||
"SINCE_MONTH": "Nie staršie ako mesiac",
|
||||
"SINCE_3_MONTHS": "Nie staršie ako 3 mesiace",
|
||||
"SINCE_6_MONTHS": "Nie staršie ako 6 mesiacov",
|
||||
"SINCE_YEAR": "Nie staršie ako 1 rok",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Nazaj",
|
||||
"BUTTON_UPDATE": "Posodobi",
|
||||
"NEW_DOMAIN_DESC": "Ta konfiguiracija domene bo omogočala delo z <strong>%NAME%<\/strong> e-naslovi.",
|
||||
"WHITE_LIST_ALERT": "Seznam uporabnikov domene, do katerih je omogočen dostop.\nUporabnike ločite s presledkom.\n"
|
||||
"WHITE_LIST_ALERT": "Seznam uporabnikov domene, do katerih je omogočen dostop.\nUporabnike ločite s presledkom.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Vtičnik",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Neprebrano",
|
||||
"DATE": "Datum",
|
||||
"DATE_ALL": "Vsa",
|
||||
"DATE_3_DAYS": "Do 3 dni nazaj",
|
||||
"DATE_7_DAYS": "Do 1 tedna nazaj",
|
||||
"DATE_MONTH": "Do 1 meseca nazaj",
|
||||
"DATE_3_MONTHS": "Do 3 mesecev nazaj",
|
||||
"DATE_6_MONTHS": "Do 6 mesecev nazaj",
|
||||
"DATE_YEAR": "Do 1 leta nazaj",
|
||||
"SINCE_3_DAYS": "Do 3 dni nazaj",
|
||||
"SINCE_7_DAYS": "Do 1 tedna nazaj",
|
||||
"SINCE_MONTH": "Do 1 meseca nazaj",
|
||||
"SINCE_3_MONTHS": "Do 3 mesecev nazaj",
|
||||
"SINCE_6_MONTHS": "Do 6 mesecev nazaj",
|
||||
"SINCE_YEAR": "Do 1 leta nazaj",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Tillbaka",
|
||||
"BUTTON_UPDATE": "Uppdatera",
|
||||
"NEW_DOMAIN_DESC": "Denna domän konfiguration gör att du kan arbeta med <strong>%NAME%<\/strong> e-postadresser.",
|
||||
"WHITE_LIST_ALERT": "Lista över domänanvändare som tillåts.\nAnvända ett utrymme som avgränsare.\n"
|
||||
"WHITE_LIST_ALERT": "Lista över domänanvändare som tillåts.\nAnvända ett utrymme som avgränsare.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Tillägget",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Oläst",
|
||||
"DATE": "Datum",
|
||||
"DATE_ALL": "Alla",
|
||||
"DATE_3_DAYS": "Upp till 3 dagar gammalt",
|
||||
"DATE_7_DAYS": "Upp till 1 vecka gammalt",
|
||||
"DATE_MONTH": "Upp till 1 månad gammalt",
|
||||
"DATE_3_MONTHS": "Upp till 3 månader gammalt",
|
||||
"DATE_6_MONTHS": "Upp till 6 månader gammalt",
|
||||
"DATE_YEAR": "Upp till 1 år gammalt",
|
||||
"SINCE_3_DAYS": "Upp till 3 dagar gammalt",
|
||||
"SINCE_7_DAYS": "Upp till 1 vecka gammalt",
|
||||
"SINCE_MONTH": "Upp till 1 månad gammalt",
|
||||
"SINCE_3_MONTHS": "Upp till 3 månader gammalt",
|
||||
"SINCE_6_MONTHS": "Upp till 6 månader gammalt",
|
||||
"SINCE_YEAR": "Upp till 1 år gammalt",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Görünmeyen",
|
||||
"DATE": "Tarih",
|
||||
"DATE_ALL": "Hepsi",
|
||||
"DATE_3_DAYS": "3 gün önceki",
|
||||
"DATE_7_DAYS": "1 hafta önceki",
|
||||
"DATE_MONTH": "1 ay önceki",
|
||||
"DATE_3_MONTHS": "3 ay önceki",
|
||||
"DATE_6_MONTHS": "6 ay önceki",
|
||||
"DATE_YEAR": "1 yıl önceki",
|
||||
"SINCE_3_DAYS": "3 gün önceki",
|
||||
"SINCE_7_DAYS": "1 hafta önceki",
|
||||
"SINCE_MONTH": "1 ay önceki",
|
||||
"SINCE_3_MONTHS": "3 ay önceki",
|
||||
"SINCE_6_MONTHS": "6 ay önceki",
|
||||
"SINCE_YEAR": "1 yıl önceki",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Непрочитані",
|
||||
"DATE": "Дата",
|
||||
"DATE_ALL": "За весь час",
|
||||
"DATE_3_DAYS": "За три дні",
|
||||
"DATE_7_DAYS": "За тиждень",
|
||||
"DATE_MONTH": "За місяць",
|
||||
"DATE_3_MONTHS": "За 3 місяці",
|
||||
"DATE_6_MONTHS": "За півроку",
|
||||
"DATE_YEAR": "За рік",
|
||||
"SINCE_3_DAYS": "За три дні",
|
||||
"SINCE_7_DAYS": "За тиждень",
|
||||
"SINCE_MONTH": "За місяць",
|
||||
"SINCE_3_MONTHS": "За 3 місяці",
|
||||
"SINCE_6_MONTHS": "За півроку",
|
||||
"SINCE_YEAR": "За рік",
|
||||
"SUBFOLDERS": "Subfolders",
|
||||
"SUBFOLDERS_NONE": "None",
|
||||
"SUBFOLDERS_SUBTREE": "All",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "Trở về",
|
||||
"BUTTON_UPDATE": "Cập nhật",
|
||||
"NEW_DOMAIN_DESC": "Thiết lập tên miền cho phép bạn thao tác với với địa chỉ email của <strong>%NAME%<\/strong>.",
|
||||
"WHITE_LIST_ALERT": "Danh sách những người dùng tên miền mà webmail được quyền truy cập.\nSử dụng dấu cách làm dấu phân cách mỗi tên.\n"
|
||||
"WHITE_LIST_ALERT": "Danh sách những người dùng tên miền mà webmail được quyền truy cập.\nSử dụng dấu cách làm dấu phân cách mỗi tên.\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "Tiện ích mở rộng",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "Chưa được xem",
|
||||
"DATE": "Ngày",
|
||||
"DATE_ALL": "Tất cả",
|
||||
"DATE_3_DAYS": "Khoảng 3 ngày trước",
|
||||
"DATE_7_DAYS": "Khoảng 1 tuần trước",
|
||||
"DATE_MONTH": "Khoảng 1 tháng trước",
|
||||
"DATE_3_MONTHS": "Khoảng 3 tháng trước",
|
||||
"DATE_6_MONTHS": "Khoảng 6 tháng trước",
|
||||
"DATE_YEAR": "Khoảng 1 năm trước",
|
||||
"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ả",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "未讀取",
|
||||
"DATE": "日期",
|
||||
"DATE_ALL": "全部",
|
||||
"DATE_3_DAYS": "三天以內",
|
||||
"DATE_7_DAYS": "一週以內",
|
||||
"DATE_MONTH": "一個月以內",
|
||||
"DATE_3_MONTHS": "三個月以內",
|
||||
"DATE_6_MONTHS": "半年以內",
|
||||
"DATE_YEAR": "一年以內",
|
||||
"SINCE_3_DAYS": "三天以內",
|
||||
"SINCE_7_DAYS": "一週以內",
|
||||
"SINCE_MONTH": "一個月以內",
|
||||
"SINCE_3_MONTHS": "三個月以內",
|
||||
"SINCE_6_MONTHS": "半年以內",
|
||||
"SINCE_YEAR": "一年以內",
|
||||
"SUBFOLDERS": "子資料夾",
|
||||
"SUBFOLDERS_NONE": "無",
|
||||
"SUBFOLDERS_SUBTREE": "全部",
|
||||
|
|
|
|||
|
|
@ -146,7 +146,9 @@
|
|||
"BUTTON_BACK": "返回",
|
||||
"BUTTON_UPDATE": "更新",
|
||||
"NEW_DOMAIN_DESC": "此域名配置将允许您和<strong>%NAME%<\/strong>电子邮件地址一起工作.",
|
||||
"WHITE_LIST_ALERT": "允许访问的域用户;使用空格分隔。\n"
|
||||
"WHITE_LIST_ALERT": "允许访问的域用户;使用空格分隔。\n",
|
||||
"VALID_SPAM_HEADERS": "Valid SPAM headers",
|
||||
"VALID_VIRUS_HEADERS": "Valid virus headers"
|
||||
},
|
||||
"POPUPS_PLUGIN": {
|
||||
"TITLE_PLUGIN": "插件",
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@
|
|||
"UNSEEN": "不可见",
|
||||
"DATE": "日期",
|
||||
"DATE_ALL": "所有邮件",
|
||||
"DATE_3_DAYS": "3天以内",
|
||||
"DATE_7_DAYS": "1周以内",
|
||||
"DATE_MONTH": "1个月以内",
|
||||
"DATE_3_MONTHS": "3个月以内",
|
||||
"DATE_6_MONTHS": "半年以内",
|
||||
"DATE_YEAR": "1年以内",
|
||||
"SINCE_3_DAYS": "3天以内",
|
||||
"SINCE_7_DAYS": "1周以内",
|
||||
"SINCE_MONTH": "1个月以内",
|
||||
"SINCE_3_MONTHS": "3个月以内",
|
||||
"SINCE_6_MONTHS": "半年以内",
|
||||
"SINCE_YEAR": "1年以内",
|
||||
"SUBFOLDERS": "子文件夹",
|
||||
"SUBFOLDERS_NONE": "无",
|
||||
"SUBFOLDERS_SUBTREE": "全部",
|
||||
|
|
|
|||
|
|
@ -120,8 +120,19 @@
|
|||
"fast_simple_search": true,
|
||||
"force_select": false,
|
||||
"message_all_headers": false,
|
||||
"search_filter": null,
|
||||
<div class="control-group">
|
||||
<label>Search filter</label>
|
||||
<input name="IMAP[search_filter]" type="text" class="span3" data-bind="textInput: imapSearch_filter">
|
||||
</div>
|
||||
-->
|
||||
<div class="control-group">
|
||||
<label data-i18n="POPUPS_DOMAIN/VALID_SPAM_HEADERS"></label>
|
||||
<input name="IMAP[spam_headers]" type="text" class="span3" data-bind="textInput: imapSpam_headers" title="rspamd,spamassassin,bogofilter">
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label data-i18n="POPUPS_DOMAIN/VALID_VIRUS_HEADERS"></label>
|
||||
<input name="IMAP[virus_headers]" type="text" class="span3" data-bind="textInput: imapVirus_headers" title="rspamd,clamav">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="radio" name="tabs" id="tab-smtp">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue