mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Verify S/MIME signed messages #259
This commit is contained in:
parent
4df3766231
commit
f53d9ed6c3
56 changed files with 769 additions and 433 deletions
|
|
@ -292,6 +292,8 @@ viewMessage = (oMessage, popup) => {
|
||||||
class:'b-text-part'
|
class:'b-text-part'
|
||||||
+ (oMessage.pgpSigned() ? ' openpgp-signed' : '')
|
+ (oMessage.pgpSigned() ? ' openpgp-signed' : '')
|
||||||
+ (oMessage.pgpEncrypted() ? ' openpgp-encrypted' : '')
|
+ (oMessage.pgpEncrypted() ? ' openpgp-encrypted' : '')
|
||||||
|
+ (oMessage.smimeSigned() ? ' smime-signed' : '')
|
||||||
|
+ (oMessage.smimeEncrypted() ? ' smime-encrypted' : '')
|
||||||
});
|
});
|
||||||
MessageUserStore.purgeCache();
|
MessageUserStore.purgeCache();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,10 @@ export class MessageModel extends AbstractModel {
|
||||||
pgpEncrypted: null,
|
pgpEncrypted: null,
|
||||||
pgpDecrypted: false,
|
pgpDecrypted: false,
|
||||||
|
|
||||||
|
smimeSigned: null,
|
||||||
|
smimeVerified: null,
|
||||||
|
smimeEncrypted: null,
|
||||||
|
|
||||||
// rfc8621
|
// rfc8621
|
||||||
id: '',
|
id: '',
|
||||||
// threadId: ''
|
// threadId: ''
|
||||||
|
|
|
||||||
|
|
@ -14,11 +14,11 @@ import { AskPopupView } from 'View/Popup/Ask';
|
||||||
import { Passphrases } from 'Storage/Passphrases';
|
import { Passphrases } from 'Storage/Passphrases';
|
||||||
|
|
||||||
const
|
const
|
||||||
askPassphrase = async (privateKey, btnTxt = 'LABEL_SIGN') => {
|
askPassphrase = async (privateKey, btnTxt = 'SIGN') => {
|
||||||
const key = privateKey.id,
|
const key = privateKey.id,
|
||||||
pass = Passphrases.has(key)
|
pass = Passphrases.has(key)
|
||||||
? {password:Passphrases.get(key), remember:false}
|
? {password:Passphrases.get(key), remember:false}
|
||||||
: await AskPopupView.password('GnuPG key<br>' + key + ' ' + privateKey.emails[0], 'OPENPGP/'+btnTxt);
|
: await AskPopupView.password('GnuPG key<br>' + key + ' ' + privateKey.emails[0], 'CRYPTO/'+btnTxt);
|
||||||
pass && pass.remember && Passphrases.set(key, pass.password);
|
pass && pass.remember && Passphrases.set(key, pass.password);
|
||||||
return pass?.password;
|
return pass?.password;
|
||||||
},
|
},
|
||||||
|
|
@ -180,7 +180,7 @@ export const GnuPGUserStore = new class {
|
||||||
uid: message.uid,
|
uid: message.uid,
|
||||||
partId: pgpInfo.partId,
|
partId: pgpInfo.partId,
|
||||||
keyId: key.id,
|
keyId: key.id,
|
||||||
passphrase: await askPassphrase(key, 'BUTTON_DECRYPT'),
|
passphrase: await askPassphrase(key, 'DECRYPT'),
|
||||||
data: '' // message.plain() optional
|
data: '' // message.plain() optional
|
||||||
}
|
}
|
||||||
if (null !== params.passphrase) {
|
if (null !== params.passphrase) {
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ const
|
||||||
key.emails.includes(query) || query == key.id || query == key.fingerprint
|
key.emails.includes(query) || query == key.id || query == key.fingerprint
|
||||||
),
|
),
|
||||||
|
|
||||||
decryptKey = async (privateKey, btnTxt = 'LABEL_SIGN') => {
|
decryptKey = async (privateKey, btnTxt = 'SIGN') => {
|
||||||
if (privateKey.key.isDecrypted()) {
|
if (privateKey.key.isDecrypted()) {
|
||||||
return privateKey.key;
|
return privateKey.key;
|
||||||
}
|
}
|
||||||
|
|
@ -29,7 +29,7 @@ const
|
||||||
? {password:Passphrases.get(key), remember:false}
|
? {password:Passphrases.get(key), remember:false}
|
||||||
: await AskPopupView.password(
|
: await AskPopupView.password(
|
||||||
'OpenPGP.js key<br>' + key + ' ' + privateKey.emails[0],
|
'OpenPGP.js key<br>' + key + ' ' + privateKey.emails[0],
|
||||||
'OPENPGP/'+btnTxt
|
'CRYPTO/'+btnTxt
|
||||||
);
|
);
|
||||||
if (pass) {
|
if (pass) {
|
||||||
const passphrase = pass.password,
|
const passphrase = pass.password,
|
||||||
|
|
@ -210,7 +210,7 @@ export const OpenPGPUserStore = new class {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (privateKey) try {
|
if (privateKey) try {
|
||||||
const decryptedKey = await decryptKey(privateKey, 'BUTTON_DECRYPT');
|
const decryptedKey = await decryptKey(privateKey, 'DECRYPT');
|
||||||
if (decryptedKey) {
|
if (decryptedKey) {
|
||||||
const publicKey = findOpenPGPKey(this.publicKeys, sender/*, sign*/);
|
const publicKey = findOpenPGPKey(this.publicKeys, sender/*, sign*/);
|
||||||
return await openpgp.decrypt({
|
return await openpgp.decrypt({
|
||||||
|
|
|
||||||
|
|
@ -1538,7 +1538,7 @@ export class ComposePopupView extends AbstractViewPopup {
|
||||||
} else if (this.canSMimeSign()) {
|
} else if (this.canSMimeSign()) {
|
||||||
params.signCertificate = identity.smimeCertificate();
|
params.signCertificate = identity.smimeCertificate();
|
||||||
params.signPrivateKey = identity.smimeKey();
|
params.signPrivateKey = identity.smimeKey();
|
||||||
const pass = await AskPopupView.password('S/MIME key', 'OPENPGP/LABEL_SIGN');
|
const pass = await AskPopupView.password('S/MIME key', 'CRYPTO/SIGN');
|
||||||
params.signPassphrase = pass?.password;
|
params.signPassphrase = pass?.password;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -600,7 +600,7 @@ export class MailMessageView extends AbstractViewRight {
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
if (result?.success) {
|
if (result?.success) {
|
||||||
i18n('OPENPGP/GOOD_SIGNATURE', {
|
i18n('CRYPTO/GOOD_SIGNATURE', {
|
||||||
USER: validKey.user + ' (' + validKey.id + ')'
|
USER: validKey.user + ' (' + validKey.id + ')'
|
||||||
});
|
});
|
||||||
message.getText()
|
message.getText()
|
||||||
|
|
@ -610,7 +610,8 @@ export class MailMessageView extends AbstractViewRight {
|
||||||
? keyIds.map(item => item?.toHex?.()).filter(v => v).join(', ')
|
? keyIds.map(item => item?.toHex?.()).filter(v => v).join(', ')
|
||||||
: '';
|
: '';
|
||||||
|
|
||||||
i18n('OPENPGP/ERROR', {
|
i18n('CRYPTO/ERROR', {
|
||||||
|
TYPE: 'OpenPGP',
|
||||||
ERROR: 'message'
|
ERROR: 'message'
|
||||||
}) + (additional ? ' (' + additional + ')' : '');
|
}) + (additional ? ' (' + additional + ')' : '');
|
||||||
}
|
}
|
||||||
|
|
@ -618,4 +619,25 @@ export class MailMessageView extends AbstractViewRight {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
smimeVerify(/*self, event*/) {
|
||||||
|
const message = currentMessage();
|
||||||
|
let data = message.smimeSigned(); // { partId: "1", micAlg: "pgp-sha256" }
|
||||||
|
if (data) {
|
||||||
|
data = { ...data }; // clone
|
||||||
|
data.folder = message.folder;
|
||||||
|
data.uid = message.uid;
|
||||||
|
data.bodyPart = data.bodyPart?.raw;
|
||||||
|
Remote.post('MessageSMimeVerify', null, data).then(response => {
|
||||||
|
if (response?.Result) {
|
||||||
|
if (response.Result.body) {
|
||||||
|
MimeToMessage(response.Result.body, message);
|
||||||
|
message.html() ? message.viewHtml() : message.viewPlain();
|
||||||
|
response.Result.body = null;
|
||||||
|
}
|
||||||
|
message.smimeVerified(response.Result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -328,8 +328,9 @@ class Message implements \JsonSerializable
|
||||||
];
|
];
|
||||||
} else if ($oPart->isSMimeSigned()) {
|
} else if ($oPart->isSMimeSigned()) {
|
||||||
$oMessage->smimeSigned = [
|
$oMessage->smimeSigned = [
|
||||||
'sigPartId' => $oPart->PartID(),
|
'partId' => $oPart->PartID(),
|
||||||
'micAlg' => $oHeaders ? (string) $oHeaders->ParameterValue(MimeHeader::CONTENT_TYPE, 'micalg') : ''
|
'micAlg' => $oHeaders ? (string) $oHeaders->ParameterValue(MimeHeader::CONTENT_TYPE, 'micalg') : '',
|
||||||
|
'detached' => false
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -346,9 +347,9 @@ class Message implements \JsonSerializable
|
||||||
];
|
];
|
||||||
} else if ($oPart->isSMimeSigned()) {
|
} else if ($oPart->isSMimeSigned()) {
|
||||||
$oMessage->smimeSigned = [
|
$oMessage->smimeSigned = [
|
||||||
'bodyPartId' => $oPart->SubParts()[0]->PartID(),
|
'partId' => $oPart->PartID(),
|
||||||
'sigPartId' => $oPart->SubParts()[1]->PartID(),
|
'micAlg' => $oHeaders ? (string) $oHeaders->ParameterValue(MimeHeader::CONTENT_TYPE, 'micalg') : '',
|
||||||
'micAlg' => $oHeaders ? (string) $oHeaders->ParameterValue(MimeHeader::CONTENT_TYPE, 'micalg') : ''
|
'detached' => true
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
|
@ -549,6 +550,13 @@ class Message implements \JsonSerializable
|
||||||
$result['pgpEncrypted'] = $this->pgpEncrypted;
|
$result['pgpEncrypted'] = $this->pgpEncrypted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->smimeSigned) {
|
||||||
|
$result['smimeSigned'] = $this->smimeSigned;
|
||||||
|
}
|
||||||
|
if ($this->smimeEncrypted) {
|
||||||
|
$result['smimeEncrypted'] = $this->smimeEncrypted;
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->aThreadUIDs) {
|
if ($this->aThreadUIDs) {
|
||||||
$result['threads'] = $this->aThreadUIDs;
|
$result['threads'] = $this->aThreadUIDs;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ use RainLoop\Exceptions\ClientException;
|
||||||
use RainLoop\Model\Account;
|
use RainLoop\Model\Account;
|
||||||
use RainLoop\Notifications;
|
use RainLoop\Notifications;
|
||||||
use MailSo\Imap\SequenceSet;
|
use MailSo\Imap\SequenceSet;
|
||||||
use MailSo\Imap\Enumerations\FetchType;
|
|
||||||
use MailSo\Imap\Enumerations\MessageFlag;
|
use MailSo\Imap\Enumerations\MessageFlag;
|
||||||
use MailSo\Mime\Part as MimePart;
|
use MailSo\Mime\Part as MimePart;
|
||||||
use MailSo\Mime\Enumerations\Header as MimeEnumHeader;
|
use MailSo\Mime\Enumerations\Header as MimeEnumHeader;
|
||||||
|
|
@ -650,122 +649,6 @@ trait Messages
|
||||||
return $this->DefaultResponse($aAttachments);
|
return $this->DefaultResponse($aAttachments);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* https://datatracker.ietf.org/doc/html/rfc3156#section-5
|
|
||||||
*/
|
|
||||||
public function DoMessagePgpVerify() : array
|
|
||||||
{
|
|
||||||
$sFolderName = $this->GetActionParam('folder', '');
|
|
||||||
$iUid = (int) $this->GetActionParam('uid', 0);
|
|
||||||
$sBodyPart = $this->GetActionParam('bodyPart', '');
|
|
||||||
$sSigPart = $this->GetActionParam('sigPart', '');
|
|
||||||
if ($sBodyPart) {
|
|
||||||
$result = [
|
|
||||||
'text' => \preg_replace('/\\r?\\n/su', "\r\n", $sBodyPart),
|
|
||||||
'signature' => $this->GetActionParam('sigPart', '')
|
|
||||||
];
|
|
||||||
} else {
|
|
||||||
$sBodyPartId = $this->GetActionParam('bodyPartId', '');
|
|
||||||
$sSigPartId = $this->GetActionParam('sigPartId', '');
|
|
||||||
// $sMicAlg = $this->GetActionParam('micAlg', '');
|
|
||||||
|
|
||||||
$oAccount = $this->initMailClientConnection();
|
|
||||||
|
|
||||||
$oImapClient = $this->ImapClient();
|
|
||||||
$oImapClient->FolderExamine($sFolderName);
|
|
||||||
|
|
||||||
$aParts = [
|
|
||||||
FetchType::BODY_PEEK.'['.$sBodyPartId.']',
|
|
||||||
// An empty section specification refers to the entire message, including the header.
|
|
||||||
// But Dovecot does not return it with BODY.PEEK[1], so we also use BODY.PEEK[1.MIME].
|
|
||||||
FetchType::BODY_PEEK.'['.$sBodyPartId.'.MIME]'
|
|
||||||
];
|
|
||||||
if ($sSigPartId) {
|
|
||||||
$aParts[] = FetchType::BODY_PEEK.'['.$sSigPartId.']';
|
|
||||||
}
|
|
||||||
|
|
||||||
$oFetchResponse = $oImapClient->Fetch($aParts, $iUid, true)[0];
|
|
||||||
|
|
||||||
$sBodyMime = $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.'.MIME]');
|
|
||||||
if ($sSigPartId) {
|
|
||||||
$result = [
|
|
||||||
'text' => \preg_replace('/\\r?\\n/su', "\r\n",
|
|
||||||
$sBodyMime . $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.']')
|
|
||||||
),
|
|
||||||
'signature' => preg_replace('/[^\x00-\x7F]/', '',
|
|
||||||
$oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sSigPartId.']')
|
|
||||||
)
|
|
||||||
];
|
|
||||||
} else {
|
|
||||||
// clearsigned text
|
|
||||||
$result = [
|
|
||||||
'text' => $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.']'),
|
|
||||||
'signature' => ''
|
|
||||||
];
|
|
||||||
$decode = (new \MailSo\Mime\HeaderCollection($sBodyMime))->ValueByName(MimeEnumHeader::CONTENT_TRANSFER_ENCODING);
|
|
||||||
if ('base64' === $decode) {
|
|
||||||
$result['text'] = \base64_decode($result['text']);
|
|
||||||
} else if ('quoted-printable' === $decode) {
|
|
||||||
$result['text'] = \quoted_printable_decode($result['text']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Try by default as OpenPGP.js sets useGnuPG to 0
|
|
||||||
if ($this->GetActionParam('tryGnuPG', 1)) {
|
|
||||||
$GPG = $this->GnuPG();
|
|
||||||
if ($GPG) {
|
|
||||||
$info = $this->GnuPG()->verify($result['text'], $result['signature']);
|
|
||||||
// $info = $this->GnuPG()->verifyStream($fp, $result['signature']);
|
|
||||||
if (empty($info[0])) {
|
|
||||||
$result = false;
|
|
||||||
} else {
|
|
||||||
$info = $info[0];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* https://code.woboq.org/qt5/include/gpg-error.h.html
|
|
||||||
* status:
|
|
||||||
0 = GPG_ERR_NO_ERROR
|
|
||||||
1 = GPG_ERR_GENERAL
|
|
||||||
9 = GPG_ERR_NO_PUBKEY
|
|
||||||
117440513 = General error
|
|
||||||
117440520 = Bad signature
|
|
||||||
*/
|
|
||||||
|
|
||||||
$summary = \defined('GNUPG_SIGSUM_VALID') ? [
|
|
||||||
GNUPG_SIGSUM_VALID => 'The signature is fully valid.',
|
|
||||||
GNUPG_SIGSUM_GREEN => 'The signature is good but one might want to display some extra information. Check the other bits.',
|
|
||||||
GNUPG_SIGSUM_RED => 'The signature is bad. It might be useful to check other bits and display more information, i.e. a revoked certificate might not render a signature invalid when the message was received prior to the cause for the revocation.',
|
|
||||||
GNUPG_SIGSUM_KEY_REVOKED => 'The key or at least one certificate has been revoked.',
|
|
||||||
GNUPG_SIGSUM_KEY_EXPIRED => 'The key or one of the certificates has expired. It is probably a good idea to display the date of the expiration.',
|
|
||||||
GNUPG_SIGSUM_SIG_EXPIRED => 'The signature has expired.',
|
|
||||||
GNUPG_SIGSUM_KEY_MISSING => 'Can’t verify due to a missing key or certificate.',
|
|
||||||
GNUPG_SIGSUM_CRL_MISSING => 'The CRL (or an equivalent mechanism) is not available.',
|
|
||||||
GNUPG_SIGSUM_CRL_TOO_OLD => 'Available CRL is too old.',
|
|
||||||
GNUPG_SIGSUM_BAD_POLICY => 'A policy requirement was not met.',
|
|
||||||
GNUPG_SIGSUM_SYS_ERROR => 'A system error occurred.',
|
|
||||||
// GNUPG_SIGSUM_TOFU_CONFLICT = 'A TOFU conflict was detected.',
|
|
||||||
] : [];
|
|
||||||
|
|
||||||
// Verified, so no need to return $result['text'] and $result['signature']
|
|
||||||
$result = [
|
|
||||||
'fingerprint' => $info['fingerprint'],
|
|
||||||
'validity' => $info['validity'],
|
|
||||||
'status' => $info['status'],
|
|
||||||
'summary' => $info['summary'],
|
|
||||||
'message' => \implode("\n", \array_filter($summary, function($k) use ($info) {
|
|
||||||
return $info['summary'] & $k;
|
|
||||||
}, ARRAY_FILTER_USE_KEY))
|
|
||||||
];
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$result = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->DefaultResponse($result);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws \RainLoop\Exceptions\ClientException
|
* @throws \RainLoop\Exceptions\ClientException
|
||||||
* @throws \MailSo\Net\Exceptions\ConnectionException
|
* @throws \MailSo\Net\Exceptions\ConnectionException
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@ namespace RainLoop\Actions;
|
||||||
use SnappyMail\PGP\Backup;
|
use SnappyMail\PGP\Backup;
|
||||||
use SnappyMail\PGP\Keyservers;
|
use SnappyMail\PGP\Keyservers;
|
||||||
use SnappyMail\PGP\GnuPG;
|
use SnappyMail\PGP\GnuPG;
|
||||||
|
use MailSo\Imap\Enumerations\FetchType;
|
||||||
|
use MailSo\Mime\Enumerations\Header as MimeEnumHeader;
|
||||||
|
|
||||||
trait Pgp
|
trait Pgp
|
||||||
{
|
{
|
||||||
|
|
@ -289,4 +291,119 @@ trait Pgp
|
||||||
$keyId = $this->GetActionParam('keyId', '');
|
$keyId = $this->GetActionParam('keyId', '');
|
||||||
return $this->DefaultResponse(($key && $keyId && Backup::PGPKey($key, $keyId)));
|
return $this->DefaultResponse(($key && $keyId && Backup::PGPKey($key, $keyId)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://datatracker.ietf.org/doc/html/rfc3156#section-5
|
||||||
|
*/
|
||||||
|
public function DoMessagePgpVerify() : array
|
||||||
|
{
|
||||||
|
$sFolderName = $this->GetActionParam('folder', '');
|
||||||
|
$iUid = (int) $this->GetActionParam('uid', 0);
|
||||||
|
$sBodyPart = $this->GetActionParam('bodyPart', '');
|
||||||
|
$sSigPart = $this->GetActionParam('sigPart', '');
|
||||||
|
if ($sBodyPart) {
|
||||||
|
$result = [
|
||||||
|
'text' => \preg_replace('/\\r?\\n/su', "\r\n", $sBodyPart),
|
||||||
|
'signature' => $this->GetActionParam('sigPart', '')
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
$sBodyPartId = $this->GetActionParam('bodyPartId', '');
|
||||||
|
$sSigPartId = $this->GetActionParam('sigPartId', '');
|
||||||
|
// $sMicAlg = $this->GetActionParam('micAlg', '');
|
||||||
|
|
||||||
|
$this->initMailClientConnection();
|
||||||
|
$oImapClient = $this->ImapClient();
|
||||||
|
$oImapClient->FolderExamine($sFolderName);
|
||||||
|
|
||||||
|
$aParts = [
|
||||||
|
FetchType::BODY_PEEK.'['.$sBodyPartId.']',
|
||||||
|
// An empty section specification refers to the entire message, including the header.
|
||||||
|
// But Dovecot does not return it with BODY.PEEK[1], so we also use BODY.PEEK[1.MIME].
|
||||||
|
FetchType::BODY_PEEK.'['.$sBodyPartId.'.MIME]'
|
||||||
|
];
|
||||||
|
if ($sSigPartId) {
|
||||||
|
$aParts[] = FetchType::BODY_PEEK.'['.$sSigPartId.']';
|
||||||
|
}
|
||||||
|
|
||||||
|
$oFetchResponse = $oImapClient->Fetch($aParts, $iUid, true)[0];
|
||||||
|
|
||||||
|
$sBodyMime = $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.'.MIME]');
|
||||||
|
if ($sSigPartId) {
|
||||||
|
$result = [
|
||||||
|
'text' => \preg_replace('/\\r?\\n/su', "\r\n",
|
||||||
|
$sBodyMime . $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.']')
|
||||||
|
),
|
||||||
|
'signature' => preg_replace('/[^\x00-\x7F]/', '',
|
||||||
|
$oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sSigPartId.']')
|
||||||
|
)
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
// clearsigned text
|
||||||
|
$result = [
|
||||||
|
'text' => $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sBodyPartId.']'),
|
||||||
|
'signature' => ''
|
||||||
|
];
|
||||||
|
$decode = (new \MailSo\Mime\HeaderCollection($sBodyMime))->ValueByName(MimeEnumHeader::CONTENT_TRANSFER_ENCODING);
|
||||||
|
if ('base64' === $decode) {
|
||||||
|
$result['text'] = \base64_decode($result['text']);
|
||||||
|
} else if ('quoted-printable' === $decode) {
|
||||||
|
$result['text'] = \quoted_printable_decode($result['text']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try by default as OpenPGP.js sets useGnuPG to 0
|
||||||
|
if ($this->GetActionParam('tryGnuPG', 1)) {
|
||||||
|
$GPG = $this->GnuPG();
|
||||||
|
if ($GPG) {
|
||||||
|
$info = $this->GnuPG()->verify($result['text'], $result['signature']);
|
||||||
|
// $info = $this->GnuPG()->verifyStream($fp, $result['signature']);
|
||||||
|
if (empty($info[0])) {
|
||||||
|
$result = false;
|
||||||
|
} else {
|
||||||
|
$info = $info[0];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://code.woboq.org/qt5/include/gpg-error.h.html
|
||||||
|
* status:
|
||||||
|
0 = GPG_ERR_NO_ERROR
|
||||||
|
1 = GPG_ERR_GENERAL
|
||||||
|
9 = GPG_ERR_NO_PUBKEY
|
||||||
|
117440513 = General error
|
||||||
|
117440520 = Bad signature
|
||||||
|
*/
|
||||||
|
|
||||||
|
$summary = \defined('GNUPG_SIGSUM_VALID') ? [
|
||||||
|
GNUPG_SIGSUM_VALID => 'The signature is fully valid.',
|
||||||
|
GNUPG_SIGSUM_GREEN => 'The signature is good but one might want to display some extra information. Check the other bits.',
|
||||||
|
GNUPG_SIGSUM_RED => 'The signature is bad. It might be useful to check other bits and display more information, i.e. a revoked certificate might not render a signature invalid when the message was received prior to the cause for the revocation.',
|
||||||
|
GNUPG_SIGSUM_KEY_REVOKED => 'The key or at least one certificate has been revoked.',
|
||||||
|
GNUPG_SIGSUM_KEY_EXPIRED => 'The key or one of the certificates has expired. It is probably a good idea to display the date of the expiration.',
|
||||||
|
GNUPG_SIGSUM_SIG_EXPIRED => 'The signature has expired.',
|
||||||
|
GNUPG_SIGSUM_KEY_MISSING => 'Can’t verify due to a missing key or certificate.',
|
||||||
|
GNUPG_SIGSUM_CRL_MISSING => 'The CRL (or an equivalent mechanism) is not available.',
|
||||||
|
GNUPG_SIGSUM_CRL_TOO_OLD => 'Available CRL is too old.',
|
||||||
|
GNUPG_SIGSUM_BAD_POLICY => 'A policy requirement was not met.',
|
||||||
|
GNUPG_SIGSUM_SYS_ERROR => 'A system error occurred.',
|
||||||
|
// GNUPG_SIGSUM_TOFU_CONFLICT = 'A TOFU conflict was detected.',
|
||||||
|
] : [];
|
||||||
|
|
||||||
|
// Verified, so no need to return $result['text'] and $result['signature']
|
||||||
|
$result = [
|
||||||
|
'fingerprint' => $info['fingerprint'],
|
||||||
|
'validity' => $info['validity'],
|
||||||
|
'status' => $info['status'],
|
||||||
|
'summary' => $info['summary'],
|
||||||
|
'message' => \implode("\n", \array_filter($summary, function($k) use ($info) {
|
||||||
|
return $info['summary'] & $k;
|
||||||
|
}, ARRAY_FILTER_USE_KEY))
|
||||||
|
];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$result = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->DefaultResponse($result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ namespace RainLoop\Actions;
|
||||||
|
|
||||||
use SnappyMail\SMime\OpenSSL;
|
use SnappyMail\SMime\OpenSSL;
|
||||||
use SnappyMail\SMime\Certificate;
|
use SnappyMail\SMime\Certificate;
|
||||||
|
use MailSo\Imap\Enumerations\FetchType;
|
||||||
|
|
||||||
trait SMime
|
trait SMime
|
||||||
{
|
{
|
||||||
|
|
@ -38,4 +39,41 @@ trait SMime
|
||||||
$result = $cert->createSelfSigned('demo');
|
$result = $cert->createSelfSigned('demo');
|
||||||
return $this->DefaultResponse($result ?: false);
|
return $this->DefaultResponse($result ?: false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function DoMessageSMimeVerify() : array
|
||||||
|
{
|
||||||
|
$sFolderName = $this->GetActionParam('folder', '');
|
||||||
|
$iUid = (int) $this->GetActionParam('uid', 0);
|
||||||
|
$sPartId = $this->GetActionParam('partId', '');
|
||||||
|
$sMicAlg = $this->GetActionParam('micAlg', '');
|
||||||
|
$bDetached = !empty($this->GetActionParam('detached', 0));
|
||||||
|
|
||||||
|
$this->initMailClientConnection();
|
||||||
|
$oImapClient = $this->ImapClient();
|
||||||
|
$oImapClient->FolderExamine($sFolderName);
|
||||||
|
|
||||||
|
if ('TEXT' === $sPartId) {
|
||||||
|
$oFetchResponse = $oImapClient->Fetch([
|
||||||
|
FetchType::BODY_PEEK.'['.$sPartId.']',
|
||||||
|
// An empty section specification refers to the entire message, including the header.
|
||||||
|
// But Dovecot does not return it with BODY.PEEK[1], so we also use BODY.PEEK[1.MIME].
|
||||||
|
FetchType::BODY_HEADER_PEEK
|
||||||
|
], $iUid, true)[0];
|
||||||
|
$sBody = $oFetchResponse->GetFetchValue(FetchType::BODY_HEADER);
|
||||||
|
} else {
|
||||||
|
$oFetchResponse = $oImapClient->Fetch([
|
||||||
|
FetchType::BODY_PEEK.'['.$sPartId.']',
|
||||||
|
// An empty section specification refers to the entire message, including the header.
|
||||||
|
// But Dovecot does not return it with BODY.PEEK[1], so we also use BODY.PEEK[1.MIME].
|
||||||
|
FetchType::BODY_PEEK.'['.$sPartId.'.MIME]'
|
||||||
|
], $iUid, true)[0];
|
||||||
|
$sBody = $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sPartId.'.MIME]');
|
||||||
|
}
|
||||||
|
$sBody .= $oFetchResponse->GetFetchValue(FetchType::BODY.'['.$sPartId.']');
|
||||||
|
|
||||||
|
$SMIME = new \SnappyMail\SMime\OpenSSL;
|
||||||
|
$result = $SMIME->verify($sBody, null, !$bDetached);
|
||||||
|
|
||||||
|
return $this->DefaultResponse($result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class Temporary
|
||||||
// throw new \Exception("Failed to access directory {$tmpdir}");
|
// throw new \Exception("Failed to access directory {$tmpdir}");
|
||||||
}
|
}
|
||||||
if ($prefix) {
|
if ($prefix) {
|
||||||
$this->filename = \tempnam($tmpdir, $name);
|
$this->filename = @\tempnam($tmpdir, $name);
|
||||||
} else {
|
} else {
|
||||||
$this->filename = $tmpdir . '/' . $name;
|
$this->filename = $tmpdir . '/' . $name;
|
||||||
}
|
}
|
||||||
|
|
@ -31,7 +31,7 @@ class Temporary
|
||||||
|
|
||||||
function __toString() : string
|
function __toString() : string
|
||||||
{
|
{
|
||||||
$this->filename;
|
return $this->filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function filename() : string
|
public function filename() : string
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,10 @@ namespace SnappyMail\SMime;
|
||||||
|
|
||||||
use SnappyMail\File\Temporary;
|
use SnappyMail\File\Temporary;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PHP 8.3.0 PKCS7_NOOLDMIMETYPE
|
||||||
|
*/
|
||||||
|
|
||||||
class OpenSSL
|
class OpenSSL
|
||||||
{
|
{
|
||||||
private array $headers = [];
|
private array $headers = [];
|
||||||
|
|
@ -45,45 +49,59 @@ class OpenSSL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function decrypt(string $data) : ?string
|
public function decrypt(/*string|Temporary*/ $input) : ?string
|
||||||
{
|
{
|
||||||
$input = new Temporary('smimein-');
|
if (\is_string($input)) {
|
||||||
|
$tmp = new Temporary('smimein-');
|
||||||
|
if (!$tmp->putContents($input)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
$input = $tmp;
|
||||||
|
}
|
||||||
$output = new Temporary('smimeout-');
|
$output = new Temporary('smimeout-');
|
||||||
return ($input->putContents($data) && \openssl_pkcs7_decrypt(
|
if (!\openssl_pkcs7_decrypt(
|
||||||
$input->filename(),
|
$input->filename(),
|
||||||
$output->filename(),
|
$output->filename(),
|
||||||
$this->certificate,
|
$this->certificate,
|
||||||
$this->privateKey
|
$this->privateKey
|
||||||
)) ? $output->getContents() : null;
|
)) {
|
||||||
|
throw new \RuntimeException('OpenSSL decrypt: ' . \openssl_error_string());
|
||||||
|
}
|
||||||
|
return $output->getContents();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function encrypt(/*string|Temporary*/$input, array $certificates) : ?string
|
public function encrypt(/*string|Temporary*/$input, array $certificates) : ?string
|
||||||
{
|
{
|
||||||
if (\is_string($input)) {
|
if (\is_string($input)) {
|
||||||
$input = new Temporary('smimein-');
|
$tmp = new Temporary('smimein-');
|
||||||
if (!$input->putContents($data)) {
|
if (!$tmp->putContents($input)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
$input = $tmp;
|
||||||
}
|
}
|
||||||
$output = new Temporary('smimeout-');
|
$output = new Temporary('smimeout-');
|
||||||
$flags = \defined('PKCS7_NOOLDMIMETYPE') ? \PKCS7_NOOLDMIMETYPE : 0;
|
$flags = \defined('PKCS7_NOOLDMIMETYPE') ? \PKCS7_NOOLDMIMETYPE : 0;
|
||||||
return \openssl_pkcs7_encrypt(
|
if (!\openssl_pkcs7_encrypt(
|
||||||
$input->filename(),
|
$input->filename(),
|
||||||
$output->filename(),
|
$output->filename(),
|
||||||
$certificates,
|
$certificates,
|
||||||
$this->headers,
|
$this->headers,
|
||||||
$flags,
|
$flags,
|
||||||
$this->cipher_algo
|
$this->cipher_algo
|
||||||
) ? $output->getContents() : null;
|
)) {
|
||||||
|
throw new \RuntimeException('OpenSSL encrypt: ' . \openssl_error_string());
|
||||||
|
}
|
||||||
|
return $output->getContents();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sign(/*string|Temporary*/$input, bool $detached = true)
|
public function sign(/*string|Temporary*/$input, bool $detached = true)
|
||||||
{
|
{
|
||||||
if (\is_string($input)) {
|
if (\is_string($input)) {
|
||||||
$input = new Temporary('smimein-');
|
$tmp = new Temporary('smimein-');
|
||||||
if (!$input->putContents($data)) {
|
if (!$tmp->putContents($input)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
$input = $tmp;
|
||||||
}
|
}
|
||||||
$output = new Temporary('smimeout-');
|
$output = new Temporary('smimeout-');
|
||||||
if (!\openssl_pkcs7_sign(
|
if (!\openssl_pkcs7_sign(
|
||||||
|
|
@ -135,22 +153,31 @@ class OpenSSL
|
||||||
throw new \RuntimeException('OpenSSL sign: failed to find p7s');
|
throw new \RuntimeException('OpenSSL sign: failed to find p7s');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function verify(string $data, $signers_certificates_filename = null)
|
public function verify(/*string|Temporary*/$input, ?string $signers_certificates_filename = null, bool $returnBody)
|
||||||
{
|
{
|
||||||
if (\is_string($input)) {
|
if (\is_string($input)) {
|
||||||
$input = new Temporary('smimein-');
|
$tmp = new Temporary('smimein-');
|
||||||
if (!$input->putContents($data)) {
|
if (!$tmp->putContents($input)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
$input = $tmp;
|
||||||
}
|
}
|
||||||
return true === \openssl_pkcs7_verify(
|
$output = $returnBody ? new Temporary('smimeout-') : null;
|
||||||
|
if (true !== \openssl_pkcs7_verify(
|
||||||
$input->filename(),
|
$input->filename(),
|
||||||
$flags = 0,
|
// $flags = 0, // \PKCS7_NOVERIFY | \PKCS7_NOCHAIN | \PKCS7_NOSIGS
|
||||||
|
\PKCS7_NOVERIFY | \PKCS7_NOCHAIN | \PKCS7_NOSIGS,
|
||||||
$signers_certificates_filename ?: null,
|
$signers_certificates_filename ?: null,
|
||||||
$ca_info = [],
|
$ca_info = [],
|
||||||
$this->untrusted_certificates_filename,
|
$this->untrusted_certificates_filename,
|
||||||
$content = null,
|
$output ? $output->filename() : null,
|
||||||
$output_filename = null
|
$output_filename = null
|
||||||
);
|
)) {
|
||||||
|
throw new \RuntimeException('OpenSSL verify: ' . \openssl_error_string());
|
||||||
|
}
|
||||||
|
return [
|
||||||
|
'body' => $output ? $output->getContents() : null,
|
||||||
|
'success' => true
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "في حال بدء العملية , فلا يمكن ايقافها او الغائها",
|
"DANGER_DESC_HTML_2": "في حال بدء العملية , فلا يمكن ايقافها او الغائها",
|
||||||
"TITLE_CLEARING_PROCESS": "...يتم دمج المجلد"
|
"TITLE_CLEARING_PROCESS": "...يتم دمج المجلد"
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "تسجيل",
|
||||||
|
"ENCRYPT": "تشفير",
|
||||||
|
"DECRYPT": "فك تشفير",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "توقيع جيد من %USER%",
|
||||||
|
"ERROR": "%TYPE% error: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "OpenPGP استيراد مفتاح",
|
"POPUP_IMPORT_TITLE": "OpenPGP استيراد مفتاح",
|
||||||
"POPUP_IMPORT_BUTTON": "استيراد",
|
"POPUP_IMPORT_BUTTON": "استيراد",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "OpenPGP توليد مفتاح",
|
"POPUP_GENERATE_TITLE": "OpenPGP توليد مفتاح",
|
||||||
"POPUP_GENERATE_BUTTON": "قم بالتوليد",
|
"POPUP_GENERATE_BUTTON": "قم بالتوليد",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "تسجيل",
|
|
||||||
"LABEL_ENCRYPT": "تشفير",
|
|
||||||
"BUTTON_DECRYPT": "فك تشفير",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP signed message",
|
"SIGNED_MESSAGE": "OpenPGP signed message",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP encrypted message",
|
"ENCRYPTED_MESSAGE": "OpenPGP encrypted message",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "توقيع جيد من %USER%",
|
},
|
||||||
"ERROR": "OpenPGP error: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME signed message",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME encrypted message"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "إنشاء عامل تصفية؟",
|
"TITLE_CREATE_FILTER": "إنشاء عامل تصفية؟",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Веднъж започнат, този процес не може да бъде прекратен или отказан.",
|
"DANGER_DESC_HTML_2": "Веднъж започнат, този процес не може да бъде прекратен или отказан.",
|
||||||
"TITLE_CLEARING_PROCESS": "Прочистване на папката..."
|
"TITLE_CLEARING_PROCESS": "Прочистване на папката..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Подпиши",
|
||||||
|
"ENCRYPT": "Шифровай",
|
||||||
|
"DECRYPT": "Дешифрирай",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Валиден подпис за %USER%",
|
||||||
|
"ERROR": "%TYPE% грешка: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Внасяне на OpenPGP ключ",
|
"POPUP_IMPORT_TITLE": "Внасяне на OpenPGP ключ",
|
||||||
"POPUP_IMPORT_BUTTON": "Внеси",
|
"POPUP_IMPORT_BUTTON": "Внеси",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Създаване на OpenPGP ключове",
|
"POPUP_GENERATE_TITLE": "Създаване на OpenPGP ключове",
|
||||||
"POPUP_GENERATE_BUTTON": "Създай",
|
"POPUP_GENERATE_BUTTON": "Създай",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Подпиши",
|
|
||||||
"LABEL_ENCRYPT": "Шифровай",
|
|
||||||
"BUTTON_DECRYPT": "Дешифрирай",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "Подписано с OpenPGP",
|
"SIGNED_MESSAGE": "Подписано с OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Шифровано с OpenPGP",
|
"ENCRYPTED_MESSAGE": "Шифровано с OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Валиден подпис за %USER%",
|
},
|
||||||
"ERROR": "OpenPGP грешка: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Подписано с S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Шифровано с S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Създай филтър?",
|
"TITLE_CREATE_FILTER": "Създай филтър?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Tento proces není možné přerušit.",
|
"DANGER_DESC_HTML_2": "Tento proces není možné přerušit.",
|
||||||
"TITLE_CLEARING_PROCESS": "Odstraňuje se složka..."
|
"TITLE_CLEARING_PROCESS": "Odstraňuje se složka..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Podpis",
|
||||||
|
"ENCRYPT": "Šifrování",
|
||||||
|
"DECRYPT": "Dešifrovat",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Ověřený podpis od %USER%",
|
||||||
|
"ERROR": "%TYPE% chyba: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Import OpenPGP klíče",
|
"POPUP_IMPORT_TITLE": "Import OpenPGP klíče",
|
||||||
"POPUP_IMPORT_BUTTON": "Import",
|
"POPUP_IMPORT_BUTTON": "Import",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Generovat OpenPGP klíče",
|
"POPUP_GENERATE_TITLE": "Generovat OpenPGP klíče",
|
||||||
"POPUP_GENERATE_BUTTON": "Generovat",
|
"POPUP_GENERATE_BUTTON": "Generovat",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Podpis",
|
|
||||||
"LABEL_ENCRYPT": "Šifrování",
|
|
||||||
"BUTTON_DECRYPT": "Dešifrovat",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "Zpráva podepsaná OpenPGP",
|
"SIGNED_MESSAGE": "Zpráva podepsaná OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Zpráva šifrovaná OpenPGP",
|
"ENCRYPTED_MESSAGE": "Zpráva šifrovaná OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Ověřený podpis od %USER%",
|
},
|
||||||
"ERROR": "OpenPGP chyba: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Zpráva podepsaná S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Zpráva šifrovaná S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Vytvořit filtr?",
|
"TITLE_CREATE_FILTER": "Vytvořit filtr?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Handlingen kan ikke afbrydes når den er startet.",
|
"DANGER_DESC_HTML_2": "Handlingen kan ikke afbrydes når den er startet.",
|
||||||
"TITLE_CLEARING_PROCESS": "Tømmer mappe..."
|
"TITLE_CLEARING_PROCESS": "Tømmer mappe..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Signér",
|
||||||
|
"ENCRYPT": "Krypter",
|
||||||
|
"DECRYPT": "Dekrypter",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Accepteret signatur for %USER\"",
|
||||||
|
"ERROR": "%TYPE% fejl: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importer OpenPGP nøgle",
|
"POPUP_IMPORT_TITLE": "Importer OpenPGP nøgle",
|
||||||
"POPUP_IMPORT_BUTTON": "Importer",
|
"POPUP_IMPORT_BUTTON": "Importer",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Generér OpenPGP nøgler",
|
"POPUP_GENERATE_TITLE": "Generér OpenPGP nøgler",
|
||||||
"POPUP_GENERATE_BUTTON": "Generér",
|
"POPUP_GENERATE_BUTTON": "Generér",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Signér",
|
|
||||||
"LABEL_ENCRYPT": "Krypter",
|
|
||||||
"BUTTON_DECRYPT": "Dekrypter",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP signeret meddelelse",
|
"SIGNED_MESSAGE": "OpenPGP signeret meddelelse",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP krypteret meddelelse",
|
"ENCRYPTED_MESSAGE": "OpenPGP krypteret meddelelse",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Accepteret signatur for %USER\"",
|
},
|
||||||
"ERROR": "OpenPGP fejl: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME signeret meddelelse",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME krypteret meddelelse"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Opret filter?",
|
"TITLE_CREATE_FILTER": "Opret filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Einmal begonnen, kann dieser Vorgang nicht mehr abgebrochen werden.",
|
"DANGER_DESC_HTML_2": "Einmal begonnen, kann dieser Vorgang nicht mehr abgebrochen werden.",
|
||||||
"TITLE_CLEARING_PROCESS": "Ordner wird gelöscht ..."
|
"TITLE_CLEARING_PROCESS": "Ordner wird gelöscht ..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Unterschrift",
|
||||||
|
"ENCRYPT": "Verschlüsseln",
|
||||||
|
"DECRYPT": "Entschlüsseln",
|
||||||
|
"VERIFY": "Überprüfen",
|
||||||
|
"GOOD_SIGNATURE": "Gültige Unterschrift von %USER%",
|
||||||
|
"ERROR": "%TYPE%-Fehler: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "OpenPGP-Schlüssel importieren",
|
"POPUP_IMPORT_TITLE": "OpenPGP-Schlüssel importieren",
|
||||||
"POPUP_IMPORT_BUTTON": "Importieren",
|
"POPUP_IMPORT_BUTTON": "Importieren",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "OpenPGP-Schlüssel generieren",
|
"POPUP_GENERATE_TITLE": "OpenPGP-Schlüssel generieren",
|
||||||
"POPUP_GENERATE_BUTTON": "Generieren",
|
"POPUP_GENERATE_BUTTON": "Generieren",
|
||||||
"LABEL_KEY_TYPE": "Typ",
|
"LABEL_KEY_TYPE": "Typ",
|
||||||
"LABEL_SIGN": "Unterschrift",
|
|
||||||
"LABEL_ENCRYPT": "Verschlüsseln",
|
|
||||||
"BUTTON_DECRYPT": "Entschlüsseln",
|
|
||||||
"BUTTON_VERIFY": "Überprüfen",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP-signierte Nachricht",
|
"SIGNED_MESSAGE": "OpenPGP-signierte Nachricht",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP-verschlüsselte Nachricht",
|
"ENCRYPTED_MESSAGE": "OpenPGP-verschlüsselte Nachricht",
|
||||||
"STORE_IN_GNUPG": "Auf dem Server als GnuPG speichern",
|
"STORE_IN_GNUPG": "Auf dem Server als GnuPG speichern",
|
||||||
"BACKUP_ON_SERVER": "Auf dem Server verschlüsselt speichern",
|
"BACKUP_ON_SERVER": "Auf dem Server verschlüsselt speichern"
|
||||||
"GOOD_SIGNATURE": "Gültige Unterschrift von %USER%",
|
},
|
||||||
"ERROR": "OpenPGP-Fehler: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME-signierte Nachricht",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME-verschlüsselte Nachricht"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Filter erstellen?",
|
"TITLE_CREATE_FILTER": "Filter erstellen?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Αφού ξεκινήσει, η διαδικασία δεν σταματά ή ακυρώνεται.",
|
"DANGER_DESC_HTML_2": "Αφού ξεκινήσει, η διαδικασία δεν σταματά ή ακυρώνεται.",
|
||||||
"TITLE_CLEARING_PROCESS": "Διαγραφή όλων των μηνυμάτων στο φάκελο..."
|
"TITLE_CLEARING_PROCESS": "Διαγραφή όλων των μηνυμάτων στο φάκελο..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Υπογραφή",
|
||||||
|
"ENCRYPT": "Κρυπτογράφηση",
|
||||||
|
"DECRYPT": "Αποκρυπτογράφηση",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Good signature from %USER%",
|
||||||
|
"ERROR": "%TYPE% error: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Εισαγωγή κλειδιού OpenPGP",
|
"POPUP_IMPORT_TITLE": "Εισαγωγή κλειδιού OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Εισαγωγή",
|
"POPUP_IMPORT_BUTTON": "Εισαγωγή",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Δημιουργία κλειδιών OpenPGP",
|
"POPUP_GENERATE_TITLE": "Δημιουργία κλειδιών OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "Δημιουργία",
|
"POPUP_GENERATE_BUTTON": "Δημιουργία",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Υπογραφή",
|
|
||||||
"LABEL_ENCRYPT": "Κρυπτογράφηση",
|
|
||||||
"BUTTON_DECRYPT": "Αποκρυπτογράφηση",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "Μήνυμα υπογεγραμμένο με OpenPGP",
|
"SIGNED_MESSAGE": "Μήνυμα υπογεγραμμένο με OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Μήνυμα κωδικοποιημένο με OpenPGP",
|
"ENCRYPTED_MESSAGE": "Μήνυμα κωδικοποιημένο με OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Good signature from %USER%",
|
},
|
||||||
"ERROR": "OpenPGP error: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Μήνυμα υπογεγραμμένο με S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Μήνυμα κωδικοποιημένο με S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Δημιουργία φίλτρου;",
|
"TITLE_CREATE_FILTER": "Δημιουργία φίλτρου;",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Once started, the process cannot be aborted or cancelled.",
|
"DANGER_DESC_HTML_2": "Once started, the process cannot be aborted or cancelled.",
|
||||||
"TITLE_CLEARING_PROCESS": "Purging the folder..."
|
"TITLE_CLEARING_PROCESS": "Purging the folder..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Sign",
|
||||||
|
"ENCRYPT": "Encrypt",
|
||||||
|
"DECRYPT": "Decrypt",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Good signature from %USER%",
|
||||||
|
"ERROR": "%TYPE% error: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
||||||
"POPUP_IMPORT_BUTTON": "Import",
|
"POPUP_IMPORT_BUTTON": "Import",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Generate OpenPGP key pair",
|
"POPUP_GENERATE_TITLE": "Generate OpenPGP key pair",
|
||||||
"POPUP_GENERATE_BUTTON": "Generate",
|
"POPUP_GENERATE_BUTTON": "Generate",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Sign",
|
|
||||||
"LABEL_ENCRYPT": "Encrypt",
|
|
||||||
"BUTTON_DECRYPT": "Decrypt",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP signed message",
|
"SIGNED_MESSAGE": "OpenPGP signed message",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP encrypted message",
|
"ENCRYPTED_MESSAGE": "OpenPGP encrypted message",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Good signature from %USER%",
|
},
|
||||||
"ERROR": "OpenPGP error: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME signed message",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME encrypted message"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Create a filter?",
|
"TITLE_CREATE_FILTER": "Create a filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Once started, the process cannot be aborted or canceled.",
|
"DANGER_DESC_HTML_2": "Once started, the process cannot be aborted or canceled.",
|
||||||
"TITLE_CLEARING_PROCESS": "Purging the folder..."
|
"TITLE_CLEARING_PROCESS": "Purging the folder..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Sign",
|
||||||
|
"ENCRYPT": "Encrypt",
|
||||||
|
"DECRYPT": "Decrypt",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Good signature from %USER%",
|
||||||
|
"ERROR": "%TYPE% error: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
||||||
"POPUP_IMPORT_BUTTON": "Import",
|
"POPUP_IMPORT_BUTTON": "Import",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Generate OpenPGP key pair",
|
"POPUP_GENERATE_TITLE": "Generate OpenPGP key pair",
|
||||||
"POPUP_GENERATE_BUTTON": "Generate",
|
"POPUP_GENERATE_BUTTON": "Generate",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Sign",
|
|
||||||
"LABEL_ENCRYPT": "Encrypt",
|
|
||||||
"BUTTON_DECRYPT": "Decrypt",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP signed message",
|
"SIGNED_MESSAGE": "OpenPGP signed message",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP encrypted message",
|
"ENCRYPTED_MESSAGE": "OpenPGP encrypted message",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Good signature from %USER%",
|
},
|
||||||
"ERROR": "OpenPGP error: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S/MIME signed message",
|
||||||
|
"ENCRYPTED_MESSAGE": "S/MIME encrypted message"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Create a filter?",
|
"TITLE_CREATE_FILTER": "Create a filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Una vez comenzado el proceso no se puede abortar ni cancelar.",
|
"DANGER_DESC_HTML_2": "Una vez comenzado el proceso no se puede abortar ni cancelar.",
|
||||||
"TITLE_CLEARING_PROCESS": "Purgando carpeta..."
|
"TITLE_CLEARING_PROCESS": "Purgando carpeta..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Firmar",
|
||||||
|
"ENCRYPT": "Encriptar",
|
||||||
|
"DECRYPT": "Descifrar",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Buena firma de %USER%",
|
||||||
|
"ERROR": "Error %TYPE%: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importar clave OpenPGP",
|
"POPUP_IMPORT_TITLE": "Importar clave OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Importar",
|
"POPUP_IMPORT_BUTTON": "Importar",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Generar clave OpenPGP",
|
"POPUP_GENERATE_TITLE": "Generar clave OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "Generar",
|
"POPUP_GENERATE_BUTTON": "Generar",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Firmar",
|
|
||||||
"LABEL_ENCRYPT": "Encriptar",
|
|
||||||
"BUTTON_DECRYPT": "Descifrar",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "Mensaje firmado mediante OpenPGP",
|
"SIGNED_MESSAGE": "Mensaje firmado mediante OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Mensaje cifrado mediante OpenPGP",
|
"ENCRYPTED_MESSAGE": "Mensaje cifrado mediante OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Buena firma de %USER%",
|
},
|
||||||
"ERROR": "Error OpenPGP: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Mensaje firmado mediante S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Mensaje cifrado mediante S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "¿Crear un filtro?",
|
"TITLE_CREATE_FILTER": "¿Crear un filtro?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Juba alustatud protsessi ei saa tühistada või katkestada.",
|
"DANGER_DESC_HTML_2": "Juba alustatud protsessi ei saa tühistada või katkestada.",
|
||||||
"TITLE_CLEARING_PROCESS": "Tühjendan kausta..."
|
"TITLE_CLEARING_PROCESS": "Tühjendan kausta..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Allkirjasta",
|
||||||
|
"ENCRYPT": "Krüpteeri",
|
||||||
|
"DECRYPT": "Dekrüpteeri",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Korralik signatuur kasutajalt %USER%",
|
||||||
|
"ERROR": "%TYPE% viga: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Impordi OpenPGP võti",
|
"POPUP_IMPORT_TITLE": "Impordi OpenPGP võti",
|
||||||
"POPUP_IMPORT_BUTTON": "Impordi",
|
"POPUP_IMPORT_BUTTON": "Impordi",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Genereeri OpenPGP võtmed",
|
"POPUP_GENERATE_TITLE": "Genereeri OpenPGP võtmed",
|
||||||
"POPUP_GENERATE_BUTTON": "Genereeri",
|
"POPUP_GENERATE_BUTTON": "Genereeri",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Allkirjasta",
|
|
||||||
"LABEL_ENCRYPT": "Krüpteeri",
|
|
||||||
"BUTTON_DECRYPT": "Dekrüpteeri",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP abil signeeritud kiri",
|
"SIGNED_MESSAGE": "OpenPGP abil signeeritud kiri",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP abil krüpteeritud kiri",
|
"ENCRYPTED_MESSAGE": "OpenPGP abil krüpteeritud kiri",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Korralik signatuur kasutajalt %USER%",
|
},
|
||||||
"ERROR": "OpenPGP viga: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME abil signeeritud kiri",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME abil krüpteeritud kiri"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Filtri loomine",
|
"TITLE_CREATE_FILTER": "Filtri loomine",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Behin hasita, ekintza hau ezin da gelditu edo utzi.",
|
"DANGER_DESC_HTML_2": "Behin hasita, ekintza hau ezin da gelditu edo utzi.",
|
||||||
"TITLE_CLEARING_PROCESS": "Karpeta garbitzen..."
|
"TITLE_CLEARING_PROCESS": "Karpeta garbitzen..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Sinatu",
|
||||||
|
"ENCRYPT": "Zifratu",
|
||||||
|
"DECRYPT": "Deszifratu",
|
||||||
|
"VERIFY": "Egiaztatu",
|
||||||
|
"GOOD_SIGNATURE": "%USER%-en sinadura egokia",
|
||||||
|
"ERROR": "%TYPE% errorea: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Inportatu OpenPGP gakoa",
|
"POPUP_IMPORT_TITLE": "Inportatu OpenPGP gakoa",
|
||||||
"POPUP_IMPORT_BUTTON": "Inportatu",
|
"POPUP_IMPORT_BUTTON": "Inportatu",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Sortu OpenPGP gako parea",
|
"POPUP_GENERATE_TITLE": "Sortu OpenPGP gako parea",
|
||||||
"POPUP_GENERATE_BUTTON": "Sortu",
|
"POPUP_GENERATE_BUTTON": "Sortu",
|
||||||
"LABEL_KEY_TYPE": "Mota",
|
"LABEL_KEY_TYPE": "Mota",
|
||||||
"LABEL_SIGN": "Sinatu",
|
|
||||||
"LABEL_ENCRYPT": "Zifratu",
|
|
||||||
"BUTTON_DECRYPT": "Deszifratu",
|
|
||||||
"BUTTON_VERIFY": "Egiaztatu",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP sinatutako mezua",
|
"SIGNED_MESSAGE": "OpenPGP sinatutako mezua",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP zifratutako mezua",
|
"ENCRYPTED_MESSAGE": "OpenPGP zifratutako mezua",
|
||||||
"STORE_IN_GNUPG": "Zerbitzarian gorden GnuPG-n",
|
"STORE_IN_GNUPG": "Zerbitzarian gorden GnuPG-n",
|
||||||
"BACKUP_ON_SERVER": "Zerbitzarian gorde (zifratuta)",
|
"BACKUP_ON_SERVER": "Zerbitzarian gorde (zifratuta)"
|
||||||
"GOOD_SIGNATURE": "%USER%-en sinadura egokia",
|
},
|
||||||
"ERROR": "OpenPGP errorea: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME sinatutako mezua",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME zifratutako mezua"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Sortu iragazkia?",
|
"TITLE_CREATE_FILTER": "Sortu iragazkia?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "زمانی که این عملیات شروع شود قابل لغو یا انصراف نیست.",
|
"DANGER_DESC_HTML_2": "زمانی که این عملیات شروع شود قابل لغو یا انصراف نیست.",
|
||||||
"TITLE_CLEARING_PROCESS": "خالی کردن شاخه..."
|
"TITLE_CLEARING_PROCESS": "خالی کردن شاخه..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "امضاء",
|
||||||
|
"ENCRYPT": "رمزنگاری",
|
||||||
|
"DECRYPT": "رمزگشایی",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "امضای صحیح از %USER%",
|
||||||
|
"ERROR": "خطای %TYPE%: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "واردکردن کلید OpenPGP",
|
"POPUP_IMPORT_TITLE": "واردکردن کلید OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "واردکردن",
|
"POPUP_IMPORT_BUTTON": "واردکردن",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "تولید کلیدهای OpenPGP",
|
"POPUP_GENERATE_TITLE": "تولید کلیدهای OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "تولید",
|
"POPUP_GENERATE_BUTTON": "تولید",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "امضاء",
|
|
||||||
"LABEL_ENCRYPT": "رمزنگاری",
|
|
||||||
"BUTTON_DECRYPT": "رمزگشایی",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "پیام توسط OpenPGP امضاء شد",
|
"SIGNED_MESSAGE": "پیام توسط OpenPGP امضاء شد",
|
||||||
"ENCRYPTED_MESSAGE": "پیام توسط OpenPGP رمزنگاری شد",
|
"ENCRYPTED_MESSAGE": "پیام توسط OpenPGP رمزنگاری شد",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "امضای صحیح از %USER%",
|
},
|
||||||
"ERROR": "خطای OpenPGP: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "پیام توسط S\/MIME امضاء شد",
|
||||||
|
"ENCRYPTED_MESSAGE": "پیام توسط S\/MIME رمزنگاری شد"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "یک فیلتر ایجاد شود؟",
|
"TITLE_CREATE_FILTER": "یک فیلتر ایجاد شود؟",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Tätä toimintoa ei voi peruuttaa.",
|
"DANGER_DESC_HTML_2": "Tätä toimintoa ei voi peruuttaa.",
|
||||||
"TITLE_CLEARING_PROCESS": "Tyhjennetään kansiota..."
|
"TITLE_CLEARING_PROCESS": "Tyhjennetään kansiota..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Allekirjoita",
|
||||||
|
"ENCRYPT": "Salaa",
|
||||||
|
"DECRYPT": "Pura",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Oikea allekirjoitus %USER% lle",
|
||||||
|
"ERROR": "%TYPE% virhe: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Tuo OpenPGP avain",
|
"POPUP_IMPORT_TITLE": "Tuo OpenPGP avain",
|
||||||
"POPUP_IMPORT_BUTTON": "Tuo",
|
"POPUP_IMPORT_BUTTON": "Tuo",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Luo OpenPGP avain",
|
"POPUP_GENERATE_TITLE": "Luo OpenPGP avain",
|
||||||
"POPUP_GENERATE_BUTTON": "Generoi",
|
"POPUP_GENERATE_BUTTON": "Generoi",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Allekirjoita",
|
|
||||||
"LABEL_ENCRYPT": "Salaa",
|
|
||||||
"BUTTON_DECRYPT": "Pura",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP allekirjoitettu viesti",
|
"SIGNED_MESSAGE": "OpenPGP allekirjoitettu viesti",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP salattu visti",
|
"ENCRYPTED_MESSAGE": "OpenPGP salattu visti",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Oikea allekirjoitus %USER% lle",
|
},
|
||||||
"ERROR": "OpenPGP virhe: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME allekirjoitettu viesti",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME salattu visti"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Luo suodatin?",
|
"TITLE_CREATE_FILTER": "Luo suodatin?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Une fois lancé, le processus ne peut pas être interrompu ou annulé.",
|
"DANGER_DESC_HTML_2": "Une fois lancé, le processus ne peut pas être interrompu ou annulé.",
|
||||||
"TITLE_CLEARING_PROCESS": "Purge du dossier..."
|
"TITLE_CLEARING_PROCESS": "Purge du dossier..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Signer",
|
||||||
|
"ENCRYPT": "Chiffer",
|
||||||
|
"DECRYPT": "Déchiffrer",
|
||||||
|
"VERIFY": "Vérifier",
|
||||||
|
"GOOD_SIGNATURE": "Signature valide pour %USER%",
|
||||||
|
"ERROR": "Erreur %TYPE%: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importer la clef OpenPGP",
|
"POPUP_IMPORT_TITLE": "Importer la clef OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Importer",
|
"POPUP_IMPORT_BUTTON": "Importer",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Générer les clés OpenPGP",
|
"POPUP_GENERATE_TITLE": "Générer les clés OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "Générer",
|
"POPUP_GENERATE_BUTTON": "Générer",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Signer",
|
|
||||||
"LABEL_ENCRYPT": "Chiffer",
|
|
||||||
"BUTTON_DECRYPT": "Déchiffrer",
|
|
||||||
"BUTTON_VERIFY": "Vérifier",
|
|
||||||
"SIGNED_MESSAGE": "Message signé par OpenPGP",
|
"SIGNED_MESSAGE": "Message signé par OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Message chiffré par OpenPGP",
|
"ENCRYPTED_MESSAGE": "Message chiffré par OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Stocker sur le serveur dans GnuPG",
|
"STORE_IN_GNUPG": "Stocker sur le serveur dans GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Stocker (chiffré) sur le serveur",
|
"BACKUP_ON_SERVER": "Stocker (chiffré) sur le serveur"
|
||||||
"GOOD_SIGNATURE": "Signature valide pour %USER%",
|
},
|
||||||
"ERROR": "Erreur OpenPGP: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Message signé par S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Message chiffré par S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Créer un filtre ?",
|
"TITLE_CREATE_FILTER": "Créer un filtre ?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Ha egyszer elindult, a folyamatot nem lehet megszakítani.",
|
"DANGER_DESC_HTML_2": "Ha egyszer elindult, a folyamatot nem lehet megszakítani.",
|
||||||
"TITLE_CLEARING_PROCESS": "Mappa ürítés..."
|
"TITLE_CLEARING_PROCESS": "Mappa ürítés..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Aláírás",
|
||||||
|
"ENCRYPT": "Titkosítás",
|
||||||
|
"DECRYPT": "Visszafejtés",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Jó aláírás tőle: %USER%",
|
||||||
|
"ERROR": "%TYPE% hiba: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "OpenPGP kulcs importálás",
|
"POPUP_IMPORT_TITLE": "OpenPGP kulcs importálás",
|
||||||
"POPUP_IMPORT_BUTTON": "Importálás",
|
"POPUP_IMPORT_BUTTON": "Importálás",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "OpenPGP kulcs generálás",
|
"POPUP_GENERATE_TITLE": "OpenPGP kulcs generálás",
|
||||||
"POPUP_GENERATE_BUTTON": "Generálás",
|
"POPUP_GENERATE_BUTTON": "Generálás",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Aláírás",
|
|
||||||
"LABEL_ENCRYPT": "Titkosítás",
|
|
||||||
"BUTTON_DECRYPT": "Visszafejtés",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP aláírt üzenet",
|
"SIGNED_MESSAGE": "OpenPGP aláírt üzenet",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP kódolt üzenet",
|
"ENCRYPTED_MESSAGE": "OpenPGP kódolt üzenet",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Jó aláírás tőle: %USER%",
|
},
|
||||||
"ERROR": "OpenPGP hiba: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME aláírt üzenet",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME kódolt üzenet"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Szűrő létrehozás?",
|
"TITLE_CREATE_FILTER": "Szűrő létrehozás?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Begitu dimulai, proses tidak dapat dibatalkan atau ditunda.",
|
"DANGER_DESC_HTML_2": "Begitu dimulai, proses tidak dapat dibatalkan atau ditunda.",
|
||||||
"TITLE_CLEARING_PROCESS": "Membersihkan folder..."
|
"TITLE_CLEARING_PROCESS": "Membersihkan folder..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Tandatangan",
|
||||||
|
"ENCRYPT": "Enkripsi",
|
||||||
|
"DECRYPT": "Deskripsi",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Tandatangan sah dari user %USER%",
|
||||||
|
"ERROR": "Kesalahan %TYPE%: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Impor kunci OpenPGP",
|
"POPUP_IMPORT_TITLE": "Impor kunci OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Impor",
|
"POPUP_IMPORT_BUTTON": "Impor",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Buat kunci OpenPGP",
|
"POPUP_GENERATE_TITLE": "Buat kunci OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "Buat",
|
"POPUP_GENERATE_BUTTON": "Buat",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Tandatangan",
|
|
||||||
"LABEL_ENCRYPT": "Enkripsi",
|
|
||||||
"BUTTON_DECRYPT": "Deskripsi",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "Pesan bertanda-tangan OpenPGP",
|
"SIGNED_MESSAGE": "Pesan bertanda-tangan OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Pesan terenkripsi OpenPGP",
|
"ENCRYPTED_MESSAGE": "Pesan terenkripsi OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Tandatangan sah dari user %USER%",
|
},
|
||||||
"ERROR": "Kesalahan OpenPGP: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Pesan bertanda-tangan S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Pesan terenkripsi S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Buat filter?",
|
"TITLE_CREATE_FILTER": "Buat filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Það er ekki hægt að hætta við aðgerðina eftir að búið er að keyra hana.",
|
"DANGER_DESC_HTML_2": "Það er ekki hægt að hætta við aðgerðina eftir að búið er að keyra hana.",
|
||||||
"TITLE_CLEARING_PROCESS": "Tæmi möppu..."
|
"TITLE_CLEARING_PROCESS": "Tæmi möppu..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Undirrita",
|
||||||
|
"ENCRYPT": "Dulrita",
|
||||||
|
"DECRYPT": "Afkóða",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Gild undirritun frá %USER%",
|
||||||
|
"ERROR": "%TYPE% villa: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Flytja inn OpenPGP-lykil",
|
"POPUP_IMPORT_TITLE": "Flytja inn OpenPGP-lykil",
|
||||||
"POPUP_IMPORT_BUTTON": "Flytja inn",
|
"POPUP_IMPORT_BUTTON": "Flytja inn",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Búa til OpenPGP-lykla",
|
"POPUP_GENERATE_TITLE": "Búa til OpenPGP-lykla",
|
||||||
"POPUP_GENERATE_BUTTON": "Útbúa",
|
"POPUP_GENERATE_BUTTON": "Útbúa",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Undirrita",
|
|
||||||
"LABEL_ENCRYPT": "Dulrita",
|
|
||||||
"BUTTON_DECRYPT": "Afkóða",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "Skeyti undirritað með OpenPGP",
|
"SIGNED_MESSAGE": "Skeyti undirritað með OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Skeyti dulritað með OpenPGP",
|
"ENCRYPTED_MESSAGE": "Skeyti dulritað með OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Gild undirritun frá %USER%",
|
},
|
||||||
"ERROR": "OpenPGP villa: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Skeyti undirritað með S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Skeyti dulritað með S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Búa til síu?",
|
"TITLE_CREATE_FILTER": "Búa til síu?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Una volta iniziato, il processo non può più essere annullato.",
|
"DANGER_DESC_HTML_2": "Una volta iniziato, il processo non può più essere annullato.",
|
||||||
"TITLE_CLEARING_PROCESS": "Eliminazione cartella..."
|
"TITLE_CLEARING_PROCESS": "Eliminazione cartella..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Firma",
|
||||||
|
"ENCRYPT": "Criptazione",
|
||||||
|
"DECRYPT": "Decriptazione",
|
||||||
|
"VERIFY": "Verifica",
|
||||||
|
"GOOD_SIGNATURE": "Firma valida da %USER%",
|
||||||
|
"ERROR": "Errore di %TYPE%: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importa chiave OpenPGP",
|
"POPUP_IMPORT_TITLE": "Importa chiave OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Importa",
|
"POPUP_IMPORT_BUTTON": "Importa",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Genera chiavi OpenPGP",
|
"POPUP_GENERATE_TITLE": "Genera chiavi OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "Genera",
|
"POPUP_GENERATE_BUTTON": "Genera",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Firma",
|
|
||||||
"LABEL_ENCRYPT": "Criptazione",
|
|
||||||
"BUTTON_DECRYPT": "Decriptazione",
|
|
||||||
"BUTTON_VERIFY": "Verifica",
|
|
||||||
"SIGNED_MESSAGE": "Messaggio firmato con OpenPGP",
|
"SIGNED_MESSAGE": "Messaggio firmato con OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Messaggio cifrato con OpenPGP",
|
"ENCRYPTED_MESSAGE": "Messaggio cifrato con OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Salva nel server in GnuPG",
|
"STORE_IN_GNUPG": "Salva nel server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Salvataggio (criptato) sul server",
|
"BACKUP_ON_SERVER": "Salvataggio (criptato) sul server"
|
||||||
"GOOD_SIGNATURE": "Firma valida da %USER%",
|
},
|
||||||
"ERROR": "Errore di OpenPGP: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Messaggio firmato con S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Messaggio cifrato con S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Creo un filtro?",
|
"TITLE_CREATE_FILTER": "Creo un filtro?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "一度始めると、中止やキャンセルができません。",
|
"DANGER_DESC_HTML_2": "一度始めると、中止やキャンセルができません。",
|
||||||
"TITLE_CLEARING_PROCESS": "フォルダを消去しています..."
|
"TITLE_CLEARING_PROCESS": "フォルダを消去しています..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "署名",
|
||||||
|
"ENCRYPT": "暗号化",
|
||||||
|
"DECRYPT": "復号化",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "%USER%からの正しい署名",
|
||||||
|
"ERROR": "%TYPE% エラー: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "OpenPGPキーをインポート",
|
"POPUP_IMPORT_TITLE": "OpenPGPキーをインポート",
|
||||||
"POPUP_IMPORT_BUTTON": "インポート",
|
"POPUP_IMPORT_BUTTON": "インポート",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "OpenPGPキーを生成",
|
"POPUP_GENERATE_TITLE": "OpenPGPキーを生成",
|
||||||
"POPUP_GENERATE_BUTTON": "生成",
|
"POPUP_GENERATE_BUTTON": "生成",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "署名",
|
|
||||||
"LABEL_ENCRYPT": "暗号化",
|
|
||||||
"BUTTON_DECRYPT": "復号化",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP署名済みメッセージ",
|
"SIGNED_MESSAGE": "OpenPGP署名済みメッセージ",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP暗号化メッセージ",
|
"ENCRYPTED_MESSAGE": "OpenPGP暗号化メッセージ",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "%USER%からの正しい署名",
|
},
|
||||||
"ERROR": "OpenPGP エラー: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME署名済みメッセージ",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME暗号化メッセージ"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "フィルターを作成しますか?",
|
"TITLE_CREATE_FILTER": "フィルターを作成しますか?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "작업이 시작되면 중지하거나 취소할 수 없습니다.",
|
"DANGER_DESC_HTML_2": "작업이 시작되면 중지하거나 취소할 수 없습니다.",
|
||||||
"TITLE_CLEARING_PROCESS": "폴더를 비우는 중..."
|
"TITLE_CLEARING_PROCESS": "폴더를 비우는 중..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "로그인",
|
||||||
|
"ENCRYPT": "암호화",
|
||||||
|
"DECRYPT": "복호화",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "%USER%(으)로부터 수신한 양호한 서명",
|
||||||
|
"ERROR": "%TYPE% 오류: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "OpenPGP 키 가져오기",
|
"POPUP_IMPORT_TITLE": "OpenPGP 키 가져오기",
|
||||||
"POPUP_IMPORT_BUTTON": "가져오기",
|
"POPUP_IMPORT_BUTTON": "가져오기",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "OpenPGP 키 생성",
|
"POPUP_GENERATE_TITLE": "OpenPGP 키 생성",
|
||||||
"POPUP_GENERATE_BUTTON": "생성",
|
"POPUP_GENERATE_BUTTON": "생성",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "로그인",
|
|
||||||
"LABEL_ENCRYPT": "암호화",
|
|
||||||
"BUTTON_DECRYPT": "복호화",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP로 서명된 메세지입니다.",
|
"SIGNED_MESSAGE": "OpenPGP로 서명된 메세지입니다.",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP로 암호화된 메세지입니다.",
|
"ENCRYPTED_MESSAGE": "OpenPGP로 암호화된 메세지입니다.",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "%USER%(으)로부터 수신한 양호한 서명",
|
},
|
||||||
"ERROR": "OpenPGP 오류: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME로 서명된 메세지입니다.",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME로 암호화된 메세지입니다."
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "필터를 생성할까요?",
|
"TITLE_CREATE_FILTER": "필터를 생성할까요?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Pradėjus veiksmą, jis nebesustabdomas.",
|
"DANGER_DESC_HTML_2": "Pradėjus veiksmą, jis nebesustabdomas.",
|
||||||
"TITLE_CLEARING_PROCESS": "Valomas katalogas..."
|
"TITLE_CLEARING_PROCESS": "Valomas katalogas..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Parašas",
|
||||||
|
"ENCRYPT": "Šifravimas",
|
||||||
|
"DECRYPT": "Decrypt",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Tinkamas parašas nuo %USER%",
|
||||||
|
"ERROR": "%TYPE% klaida: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importuoti OpenPGP raktą",
|
"POPUP_IMPORT_TITLE": "Importuoti OpenPGP raktą",
|
||||||
"POPUP_IMPORT_BUTTON": "Importuoti",
|
"POPUP_IMPORT_BUTTON": "Importuoti",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Sukurti OpenPGP raktą",
|
"POPUP_GENERATE_TITLE": "Sukurti OpenPGP raktą",
|
||||||
"POPUP_GENERATE_BUTTON": "Sukurti",
|
"POPUP_GENERATE_BUTTON": "Sukurti",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Parašas",
|
|
||||||
"LABEL_ENCRYPT": "Šifravimas",
|
|
||||||
"BUTTON_DECRYPT": "Decrypt",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP pasirašytas pranešimas",
|
"SIGNED_MESSAGE": "OpenPGP pasirašytas pranešimas",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP šifruotas pranešimas",
|
"ENCRYPTED_MESSAGE": "OpenPGP šifruotas pranešimas",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Tinkamas parašas nuo %USER%",
|
},
|
||||||
"ERROR": "OpenPGP klaida: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME pasirašytas pranešimas",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME šifruotas pranešimas"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Sukurti filtrą?",
|
"TITLE_CREATE_FILTER": "Sukurti filtrą?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Šo procesu nevarēs apturēt.",
|
"DANGER_DESC_HTML_2": "Šo procesu nevarēs apturēt.",
|
||||||
"TITLE_CLEARING_PROCESS": "Mape tiek iztīrīta..."
|
"TITLE_CLEARING_PROCESS": "Mape tiek iztīrīta..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Sign",
|
||||||
|
"ENCRYPT": "Encrypt",
|
||||||
|
"DECRYPT": "Decrypt",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Good signature from %USER%",
|
||||||
|
"ERROR": "%TYPE% error: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
||||||
"POPUP_IMPORT_BUTTON": "Import",
|
"POPUP_IMPORT_BUTTON": "Import",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Generate OpenPGP keys",
|
"POPUP_GENERATE_TITLE": "Generate OpenPGP keys",
|
||||||
"POPUP_GENERATE_BUTTON": "Generate",
|
"POPUP_GENERATE_BUTTON": "Generate",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Sign",
|
|
||||||
"LABEL_ENCRYPT": "Encrypt",
|
|
||||||
"BUTTON_DECRYPT": "Decrypt",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP signed message",
|
"SIGNED_MESSAGE": "OpenPGP signed message",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP encrypted message",
|
"ENCRYPTED_MESSAGE": "OpenPGP encrypted message",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Good signature from %USER%",
|
},
|
||||||
"ERROR": "OpenPGP error: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME signed message",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME encrypted message"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Create a filter?",
|
"TITLE_CREATE_FILTER": "Create a filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Hvis du går videre, blir meldingene slettet for godt.",
|
"DANGER_DESC_HTML_2": "Hvis du går videre, blir meldingene slettet for godt.",
|
||||||
"TITLE_CLEARING_PROCESS": "Tømmer mappe …"
|
"TITLE_CLEARING_PROCESS": "Tømmer mappe …"
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Signer",
|
||||||
|
"ENCRYPT": "Krypter",
|
||||||
|
"DECRYPT": "Dekrypter",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Gyldig signatur fra %USER%",
|
||||||
|
"ERROR": "%TYPE%-feil: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importer OpenPGP-nøkkel",
|
"POPUP_IMPORT_TITLE": "Importer OpenPGP-nøkkel",
|
||||||
"POPUP_IMPORT_BUTTON": "Importer",
|
"POPUP_IMPORT_BUTTON": "Importer",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Lag OpenPGP-nøkler",
|
"POPUP_GENERATE_TITLE": "Lag OpenPGP-nøkler",
|
||||||
"POPUP_GENERATE_BUTTON": "Lag",
|
"POPUP_GENERATE_BUTTON": "Lag",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Signer",
|
|
||||||
"LABEL_ENCRYPT": "Krypter",
|
|
||||||
"BUTTON_DECRYPT": "Dekrypter",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP-signert melding",
|
"SIGNED_MESSAGE": "OpenPGP-signert melding",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP-kryptert melding",
|
"ENCRYPTED_MESSAGE": "OpenPGP-kryptert melding",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Gyldig signatur fra %USER%",
|
},
|
||||||
"ERROR": "OpenPGP-feil: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME-signert melding",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME-kryptert melding"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Vil du lage et filter?",
|
"TITLE_CREATE_FILTER": "Vil du lage et filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Eens in gang gezet kan het proces niet geannuleerd worden!",
|
"DANGER_DESC_HTML_2": "Eens in gang gezet kan het proces niet geannuleerd worden!",
|
||||||
"TITLE_CLEARING_PROCESS": "Folder aan het leegmaken..."
|
"TITLE_CLEARING_PROCESS": "Folder aan het leegmaken..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Ondertekenen",
|
||||||
|
"ENCRYPT": "Versleutelen",
|
||||||
|
"DECRYPT": "Ontsleutelen",
|
||||||
|
"VERIFY": "Verifiëren",
|
||||||
|
"GOOD_SIGNATURE": "Juiste handtekening van %USER%",
|
||||||
|
"ERROR": "%TYPE% foutmelding: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importeer OpenPGP sleutel",
|
"POPUP_IMPORT_TITLE": "Importeer OpenPGP sleutel",
|
||||||
"POPUP_IMPORT_BUTTON": "Importeer",
|
"POPUP_IMPORT_BUTTON": "Importeer",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Genereer OpenPGP sleutels",
|
"POPUP_GENERATE_TITLE": "Genereer OpenPGP sleutels",
|
||||||
"POPUP_GENERATE_BUTTON": "Genereer",
|
"POPUP_GENERATE_BUTTON": "Genereer",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Ondertekenen",
|
|
||||||
"LABEL_ENCRYPT": "Versleutelen",
|
|
||||||
"BUTTON_DECRYPT": "Ontsleutelen",
|
|
||||||
"BUTTON_VERIFY": "Verifiëren",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP ondertekend bericht",
|
"SIGNED_MESSAGE": "OpenPGP ondertekend bericht",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP versleuteld bericht",
|
"ENCRYPTED_MESSAGE": "OpenPGP versleuteld bericht",
|
||||||
"STORE_IN_GNUPG": "Bewaar op de server in GnuPG",
|
"STORE_IN_GNUPG": "Bewaar op de server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Bewaar (versleuteld) op de server",
|
"BACKUP_ON_SERVER": "Bewaar (versleuteld) op de server"
|
||||||
"GOOD_SIGNATURE": "Juiste handtekening van %USER%",
|
},
|
||||||
"ERROR": "OpenPGP foutmelding: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME ondertekend bericht",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME versleuteld bericht"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Filter toevoegen",
|
"TITLE_CREATE_FILTER": "Filter toevoegen",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Po rozpoczęciu nie będzie możliwe przerwanie lub anulowanie zadania.",
|
"DANGER_DESC_HTML_2": "Po rozpoczęciu nie będzie możliwe przerwanie lub anulowanie zadania.",
|
||||||
"TITLE_CLEARING_PROCESS": "Trwa usuwanie wszystkich wiadomości z folderu..."
|
"TITLE_CLEARING_PROCESS": "Trwa usuwanie wszystkich wiadomości z folderu..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Podpisz",
|
||||||
|
"ENCRYPT": "Zaszyfruj",
|
||||||
|
"DECRYPT": "Odszyfruj",
|
||||||
|
"VERIFY": "Weryfikuj",
|
||||||
|
"GOOD_SIGNATURE": "Poprawnie podpisana przez %USER%",
|
||||||
|
"ERROR": "Błąd %TYPE%: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importowanie klucza OpenPGP",
|
"POPUP_IMPORT_TITLE": "Importowanie klucza OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Importuj",
|
"POPUP_IMPORT_BUTTON": "Importuj",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Generowanie klucza OpenPGP",
|
"POPUP_GENERATE_TITLE": "Generowanie klucza OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "Generuj",
|
"POPUP_GENERATE_BUTTON": "Generuj",
|
||||||
"LABEL_KEY_TYPE": "Typ",
|
"LABEL_KEY_TYPE": "Typ",
|
||||||
"LABEL_SIGN": "Podpisz",
|
|
||||||
"LABEL_ENCRYPT": "Zaszyfruj",
|
|
||||||
"BUTTON_DECRYPT": "Odszyfruj",
|
|
||||||
"BUTTON_VERIFY": "Weryfikuj",
|
|
||||||
"SIGNED_MESSAGE": "Wiadomość podpisana OpenPGP",
|
"SIGNED_MESSAGE": "Wiadomość podpisana OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Wiadomość zaszyfrowana OpenPGP",
|
"ENCRYPTED_MESSAGE": "Wiadomość zaszyfrowana OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Przechowuj na serwerze w GnuPG",
|
"STORE_IN_GNUPG": "Przechowuj na serwerze w GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Przechowywanie (zaszyfrowane) na serwerze",
|
"BACKUP_ON_SERVER": "Przechowywanie (zaszyfrowane) na serwerze"
|
||||||
"GOOD_SIGNATURE": "Poprawnie podpisana przez %USER%",
|
},
|
||||||
"ERROR": "Błąd OpenPGP: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Wiadomość podpisana S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Wiadomość zaszyfrowana S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Czy stworzyć filtr?",
|
"TITLE_CREATE_FILTER": "Czy stworzyć filtr?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Uma vez iniciado, o processo não poderá ser interrompido ou cancelado.",
|
"DANGER_DESC_HTML_2": "Uma vez iniciado, o processo não poderá ser interrompido ou cancelado.",
|
||||||
"TITLE_CLEARING_PROCESS": "Excluindo a pasta..."
|
"TITLE_CLEARING_PROCESS": "Excluindo a pasta..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Assinar",
|
||||||
|
"ENCRYPT": "Criptografar",
|
||||||
|
"DECRYPT": "Decrypt",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Boa assinatura de %USER%",
|
||||||
|
"ERROR": "Erro %TYPE%: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
|
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Importar",
|
"POPUP_IMPORT_BUTTON": "Importar",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Gerar chave OpenPGP",
|
"POPUP_GENERATE_TITLE": "Gerar chave OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "Gerar",
|
"POPUP_GENERATE_BUTTON": "Gerar",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Assinar",
|
|
||||||
"LABEL_ENCRYPT": "Criptografar",
|
|
||||||
"BUTTON_DECRYPT": "Decrypt",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "Mensagem assinada com OpenPGP",
|
"SIGNED_MESSAGE": "Mensagem assinada com OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Mensagem criptografada com OpenPGP",
|
"ENCRYPTED_MESSAGE": "Mensagem criptografada com OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Boa assinatura de %USER%",
|
},
|
||||||
"ERROR": "Erro OpenPGP: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Mensagem assinada com S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Mensagem criptografada com S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Criar um filtro?",
|
"TITLE_CREATE_FILTER": "Criar um filtro?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Uma vez iniciado, o processo não pode ser interrompido ou cancelado.",
|
"DANGER_DESC_HTML_2": "Uma vez iniciado, o processo não pode ser interrompido ou cancelado.",
|
||||||
"TITLE_CLEARING_PROCESS": "A eliminar a pasta..."
|
"TITLE_CLEARING_PROCESS": "A eliminar a pasta..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Assinar",
|
||||||
|
"ENCRYPT": "Encriptar",
|
||||||
|
"DECRYPT": "Desencriptar",
|
||||||
|
"VERIFY": "Validar",
|
||||||
|
"GOOD_SIGNATURE": "Boa assinatura de %USER%",
|
||||||
|
"ERROR": "Erro %TYPE%: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
|
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Importar",
|
"POPUP_IMPORT_BUTTON": "Importar",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Gerar chaves OpenPGP",
|
"POPUP_GENERATE_TITLE": "Gerar chaves OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "Gerar",
|
"POPUP_GENERATE_BUTTON": "Gerar",
|
||||||
"LABEL_KEY_TYPE": "Tipo",
|
"LABEL_KEY_TYPE": "Tipo",
|
||||||
"LABEL_SIGN": "Assinar",
|
|
||||||
"LABEL_ENCRYPT": "Encriptar",
|
|
||||||
"BUTTON_DECRYPT": "Desencriptar",
|
|
||||||
"BUTTON_VERIFY": "Validar",
|
|
||||||
"SIGNED_MESSAGE": "Mensagem assinada com OpenPGP",
|
"SIGNED_MESSAGE": "Mensagem assinada com OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Mensagem encriptada com OpenPGP",
|
"ENCRYPTED_MESSAGE": "Mensagem encriptada com OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Guardar no servidor em GnuPG",
|
"STORE_IN_GNUPG": "Guardar no servidor em GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Guardar (encriptado) no servidor",
|
"BACKUP_ON_SERVER": "Guardar (encriptado) no servidor"
|
||||||
"GOOD_SIGNATURE": "Boa assinatura de %USER%",
|
},
|
||||||
"ERROR": "Erro OpenPGP: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Mensagem assinada com S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Mensagem encriptada com S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Criar um filtro?",
|
"TITLE_CREATE_FILTER": "Criar um filtro?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Uma vez iniciado, o processo não pode ser interrompido ou cancelado.",
|
"DANGER_DESC_HTML_2": "Uma vez iniciado, o processo não pode ser interrompido ou cancelado.",
|
||||||
"TITLE_CLEARING_PROCESS": "A eliminar a pasta..."
|
"TITLE_CLEARING_PROCESS": "A eliminar a pasta..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Assinar",
|
||||||
|
"ENCRYPT": "Encriptar",
|
||||||
|
"DECRYPT": "Desencriptar",
|
||||||
|
"VERIFY": "Validar",
|
||||||
|
"GOOD_SIGNATURE": "Boa assinatura de %USER%",
|
||||||
|
"ERROR": "Erro %TYPE%: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
|
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Importar",
|
"POPUP_IMPORT_BUTTON": "Importar",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Gerar chaves OpenPGP",
|
"POPUP_GENERATE_TITLE": "Gerar chaves OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "Gerar",
|
"POPUP_GENERATE_BUTTON": "Gerar",
|
||||||
"LABEL_KEY_TYPE": "Tipo",
|
"LABEL_KEY_TYPE": "Tipo",
|
||||||
"LABEL_SIGN": "Assinar",
|
|
||||||
"LABEL_ENCRYPT": "Encriptar",
|
|
||||||
"BUTTON_DECRYPT": "Desencriptar",
|
|
||||||
"BUTTON_VERIFY": "Validar",
|
|
||||||
"SIGNED_MESSAGE": "Mensagem assinada com OpenPGP",
|
"SIGNED_MESSAGE": "Mensagem assinada com OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Mensagem encriptada com OpenPGP",
|
"ENCRYPTED_MESSAGE": "Mensagem encriptada com OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Guardar no servidor em GnuPG",
|
"STORE_IN_GNUPG": "Guardar no servidor em GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Guardar (encriptado) no servidor",
|
"BACKUP_ON_SERVER": "Guardar (encriptado) no servidor"
|
||||||
"GOOD_SIGNATURE": "Boa assinatura de %USER%",
|
},
|
||||||
"ERROR": "Erro OpenPGP: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Mensagem assinada com S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Mensagem encriptada com S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Criar um filtro?",
|
"TITLE_CREATE_FILTER": "Criar um filtro?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "După începerea procesului de curățare <strong style=\"color:red\">nu mai puteți<\/strong> anula procesul.",
|
"DANGER_DESC_HTML_2": "După începerea procesului de curățare <strong style=\"color:red\">nu mai puteți<\/strong> anula procesul.",
|
||||||
"TITLE_CLEARING_PROCESS": "Curăț dosarul..."
|
"TITLE_CLEARING_PROCESS": "Curăț dosarul..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Sign",
|
||||||
|
"ENCRYPT": "Encrypt",
|
||||||
|
"DECRYPT": "Decrypt",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Good signature from %USER%",
|
||||||
|
"ERROR": "%TYPE% error: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
||||||
"POPUP_IMPORT_BUTTON": "Import",
|
"POPUP_IMPORT_BUTTON": "Import",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Generate OpenPGP keys",
|
"POPUP_GENERATE_TITLE": "Generate OpenPGP keys",
|
||||||
"POPUP_GENERATE_BUTTON": "Generate",
|
"POPUP_GENERATE_BUTTON": "Generate",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Sign",
|
|
||||||
"LABEL_ENCRYPT": "Encrypt",
|
|
||||||
"BUTTON_DECRYPT": "Decrypt",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP signed message",
|
"SIGNED_MESSAGE": "OpenPGP signed message",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP encrypted message",
|
"ENCRYPTED_MESSAGE": "OpenPGP encrypted message",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Good signature from %USER%",
|
},
|
||||||
"ERROR": "OpenPGP error: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME signed message",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME encrypted message"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Create a filter?",
|
"TITLE_CREATE_FILTER": "Create a filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "После начала очистки, процесс <strong style=\"color:red\">нельзя<\/strong> будет остановить или отменить.",
|
"DANGER_DESC_HTML_2": "После начала очистки, процесс <strong style=\"color:red\">нельзя<\/strong> будет остановить или отменить.",
|
||||||
"TITLE_CLEARING_PROCESS": "Очистка папки..."
|
"TITLE_CLEARING_PROCESS": "Очистка папки..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Подпись",
|
||||||
|
"ENCRYPT": "Шифрование",
|
||||||
|
"DECRYPT": "Расшифровать",
|
||||||
|
"VERIFY": "Проверить",
|
||||||
|
"GOOD_SIGNATURE": "Подтвержденная сигнатура для %USER%",
|
||||||
|
"ERROR": "%TYPE% ошибка: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Импорт OpenPGP ключа",
|
"POPUP_IMPORT_TITLE": "Импорт OpenPGP ключа",
|
||||||
"POPUP_IMPORT_BUTTON": "Импорт",
|
"POPUP_IMPORT_BUTTON": "Импорт",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Генерация OpenPGP ключа",
|
"POPUP_GENERATE_TITLE": "Генерация OpenPGP ключа",
|
||||||
"POPUP_GENERATE_BUTTON": "Создать",
|
"POPUP_GENERATE_BUTTON": "Создать",
|
||||||
"LABEL_KEY_TYPE": "Тип",
|
"LABEL_KEY_TYPE": "Тип",
|
||||||
"LABEL_SIGN": "Подпись",
|
|
||||||
"LABEL_ENCRYPT": "Шифрование",
|
|
||||||
"BUTTON_DECRYPT": "Расшифровать",
|
|
||||||
"BUTTON_VERIFY": "Проверить",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP подписанное сообщение",
|
"SIGNED_MESSAGE": "OpenPGP подписанное сообщение",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP шифрованное сообщение",
|
"ENCRYPTED_MESSAGE": "OpenPGP шифрованное сообщение",
|
||||||
"STORE_IN_GNUPG": "Хранить на сервере в GnuPG",
|
"STORE_IN_GNUPG": "Хранить на сервере в GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Хранить (с шифрованием) на сервере",
|
"BACKUP_ON_SERVER": "Хранить (с шифрованием) на сервере"
|
||||||
"GOOD_SIGNATURE": "Подтвержденная сигнатура для %USER%",
|
},
|
||||||
"ERROR": "OpenPGP ошибка: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME подписанное сообщение",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME шифрованное сообщение"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Создать фильтр?",
|
"TITLE_CREATE_FILTER": "Создать фильтр?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Tento proces nie je možné prerušiť.",
|
"DANGER_DESC_HTML_2": "Tento proces nie je možné prerušiť.",
|
||||||
"TITLE_CLEARING_PROCESS": "Odstraňujem priečinok..."
|
"TITLE_CLEARING_PROCESS": "Odstraňujem priečinok..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Sign",
|
||||||
|
"ENCRYPT": "Encrypt",
|
||||||
|
"DECRYPT": "Decrypt",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Good signature from %USER%",
|
||||||
|
"ERROR": "%TYPE% error: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Importovať kľúč OpenPGP",
|
"POPUP_IMPORT_TITLE": "Importovať kľúč OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Import",
|
"POPUP_IMPORT_BUTTON": "Import",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Generate OpenPGP keys",
|
"POPUP_GENERATE_TITLE": "Generate OpenPGP keys",
|
||||||
"POPUP_GENERATE_BUTTON": "Generate",
|
"POPUP_GENERATE_BUTTON": "Generate",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Sign",
|
|
||||||
"LABEL_ENCRYPT": "Encrypt",
|
|
||||||
"BUTTON_DECRYPT": "Decrypt",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "Správa podpísaná s OpenPGP",
|
"SIGNED_MESSAGE": "Správa podpísaná s OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Správa šifrovaná s OpenPGP",
|
"ENCRYPTED_MESSAGE": "Správa šifrovaná s OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Good signature from %USER%",
|
},
|
||||||
"ERROR": "OpenPGP error: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Správa podpísaná s S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Správa šifrovaná s S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Create a filter?",
|
"TITLE_CREATE_FILTER": "Create a filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Tega postopka ne bo mogoče preklicati ali zaustaviti.",
|
"DANGER_DESC_HTML_2": "Tega postopka ne bo mogoče preklicati ali zaustaviti.",
|
||||||
"TITLE_CLEARING_PROCESS": "Čistim mapo."
|
"TITLE_CLEARING_PROCESS": "Čistim mapo."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Podpis",
|
||||||
|
"ENCRYPT": "Šifriranje",
|
||||||
|
"DECRYPT": "Dešifriraj",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Dober podpis od %USER%",
|
||||||
|
"ERROR": "%TYPE% napaka: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Uvoz OpenPGP ključa",
|
"POPUP_IMPORT_TITLE": "Uvoz OpenPGP ključa",
|
||||||
"POPUP_IMPORT_BUTTON": "Uvozi",
|
"POPUP_IMPORT_BUTTON": "Uvozi",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Generiraj OpenPGP ključe",
|
"POPUP_GENERATE_TITLE": "Generiraj OpenPGP ključe",
|
||||||
"POPUP_GENERATE_BUTTON": "Generiraj",
|
"POPUP_GENERATE_BUTTON": "Generiraj",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Podpis",
|
|
||||||
"LABEL_ENCRYPT": "Šifriranje",
|
|
||||||
"BUTTON_DECRYPT": "Dešifriraj",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "Sporočilo, podpisano z OpenPGP",
|
"SIGNED_MESSAGE": "Sporočilo, podpisano z OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Sporočilo, šifrirano z OpenPGP",
|
"ENCRYPTED_MESSAGE": "Sporočilo, šifrirano z OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Dober podpis od %USER%",
|
},
|
||||||
"ERROR": "OpenPGP napaka: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Sporočilo, podpisano z S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Sporočilo, šifrirano z S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Ustvarim filter?",
|
"TITLE_CREATE_FILTER": "Ustvarim filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "När detta är startat kan det inte avbrytas.",
|
"DANGER_DESC_HTML_2": "När detta är startat kan det inte avbrytas.",
|
||||||
"TITLE_CLEARING_PROCESS": "Rensar mappen..."
|
"TITLE_CLEARING_PROCESS": "Rensar mappen..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Signera",
|
||||||
|
"ENCRYPT": "Kryptera",
|
||||||
|
"DECRYPT": "Avkryptera",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Godkänd signatur för %USER%",
|
||||||
|
"ERROR": "%TYPE%-fel: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Import av OpenPGP-nyckel",
|
"POPUP_IMPORT_TITLE": "Import av OpenPGP-nyckel",
|
||||||
"POPUP_IMPORT_BUTTON": "Importera",
|
"POPUP_IMPORT_BUTTON": "Importera",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Skapa OpenPGP-nycklar",
|
"POPUP_GENERATE_TITLE": "Skapa OpenPGP-nycklar",
|
||||||
"POPUP_GENERATE_BUTTON": "Skapa",
|
"POPUP_GENERATE_BUTTON": "Skapa",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Signera",
|
|
||||||
"LABEL_ENCRYPT": "Kryptera",
|
|
||||||
"BUTTON_DECRYPT": "Avkryptera",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP-signerat meddelande",
|
"SIGNED_MESSAGE": "OpenPGP-signerat meddelande",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP-krypterat meddelande",
|
"ENCRYPTED_MESSAGE": "OpenPGP-krypterat meddelande",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Godkänd signatur för %USER%",
|
},
|
||||||
"ERROR": "OpenPGP-fel: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME-signerat meddelande",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME-krypterat meddelande"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Skapa ett filter?",
|
"TITLE_CREATE_FILTER": "Skapa ett filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Bu işlem bir kez başladıktan sonra, işlem durdurulamaz veya iptal edilemez.",
|
"DANGER_DESC_HTML_2": "Bu işlem bir kez başladıktan sonra, işlem durdurulamaz veya iptal edilemez.",
|
||||||
"TITLE_CLEARING_PROCESS": "Klasör temizleniyor..."
|
"TITLE_CLEARING_PROCESS": "Klasör temizleniyor..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Giriş Yap",
|
||||||
|
"ENCRYPT": "Şifrele",
|
||||||
|
"DECRYPT": "Decrypt",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Geçerli imza %USER%",
|
||||||
|
"ERROR": "%TYPE% hatası: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "OpenPGP key'i içe aktar",
|
"POPUP_IMPORT_TITLE": "OpenPGP key'i içe aktar",
|
||||||
"POPUP_IMPORT_BUTTON": "İçe aktar",
|
"POPUP_IMPORT_BUTTON": "İçe aktar",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "OpenPGP key'leri Oluştur",
|
"POPUP_GENERATE_TITLE": "OpenPGP key'leri Oluştur",
|
||||||
"POPUP_GENERATE_BUTTON": "Oluştur",
|
"POPUP_GENERATE_BUTTON": "Oluştur",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Giriş Yap",
|
|
||||||
"LABEL_ENCRYPT": "Şifrele",
|
|
||||||
"BUTTON_DECRYPT": "Decrypt",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP imzalı mesaj",
|
"SIGNED_MESSAGE": "OpenPGP imzalı mesaj",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP şifreli mesaj",
|
"ENCRYPTED_MESSAGE": "OpenPGP şifreli mesaj",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Geçerli imza %USER%",
|
},
|
||||||
"ERROR": "OpenPGP hatası: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME imzalı mesaj",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME şifreli mesaj"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Create a filter?",
|
"TITLE_CREATE_FILTER": "Create a filter?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Після початку очищення, процес <strong style=\"color:red\">неможливо<\/strong> буде зупинити чи відмінити.",
|
"DANGER_DESC_HTML_2": "Після початку очищення, процес <strong style=\"color:red\">неможливо<\/strong> буде зупинити чи відмінити.",
|
||||||
"TITLE_CLEARING_PROCESS": "Очищення теки..."
|
"TITLE_CLEARING_PROCESS": "Очищення теки..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Підпис",
|
||||||
|
"ENCRYPT": "Шифрування",
|
||||||
|
"DECRYPT": "Дешифрувати",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "Підтверджена сигнатура для %USER%",
|
||||||
|
"ERROR": "%TYPE% помилка: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Імпорт OpenPGP ключа",
|
"POPUP_IMPORT_TITLE": "Імпорт OpenPGP ключа",
|
||||||
"POPUP_IMPORT_BUTTON": "Імпорт",
|
"POPUP_IMPORT_BUTTON": "Імпорт",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Генерація OpenPGP ключа",
|
"POPUP_GENERATE_TITLE": "Генерація OpenPGP ключа",
|
||||||
"POPUP_GENERATE_BUTTON": "Створити",
|
"POPUP_GENERATE_BUTTON": "Створити",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "Підпис",
|
|
||||||
"LABEL_ENCRYPT": "Шифрування",
|
|
||||||
"BUTTON_DECRYPT": "Дешифрувати",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "OpenPGP підписане повідомлення",
|
"SIGNED_MESSAGE": "OpenPGP підписане повідомлення",
|
||||||
"ENCRYPTED_MESSAGE": "OpenPGP шифроване повідомлення",
|
"ENCRYPTED_MESSAGE": "OpenPGP шифроване повідомлення",
|
||||||
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
"STORE_IN_GNUPG": "Store on server in GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Store (encrypted) on server",
|
"BACKUP_ON_SERVER": "Store (encrypted) on server"
|
||||||
"GOOD_SIGNATURE": "Підтверджена сигнатура для %USER%",
|
},
|
||||||
"ERROR": "OpenPGP помилка: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "S\/MIME підписане повідомлення",
|
||||||
|
"ENCRYPTED_MESSAGE": "S\/MIME шифроване повідомлення"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Створити фільтер?",
|
"TITLE_CREATE_FILTER": "Створити фільтер?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "Một khi bắt đầu, quá trình xóa này sẽ không thể ngưng giữa chừng hay hủy bỏ.",
|
"DANGER_DESC_HTML_2": "Một khi bắt đầu, quá trình xóa này sẽ không thể ngưng giữa chừng hay hủy bỏ.",
|
||||||
"TITLE_CLEARING_PROCESS": "Đang xóa thư mục..."
|
"TITLE_CLEARING_PROCESS": "Đang xóa thư mục..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "Ký xác nhận",
|
||||||
|
"ENCRYPT": "Mã hóa",
|
||||||
|
"DECRYPT": "Gỡ mã hóa",
|
||||||
|
"VERIFY": "Xác minh",
|
||||||
|
"GOOD_SIGNATURE": "Chữ ký ổn từ %USER%",
|
||||||
|
"ERROR": "Lỗi %TYPE%: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "Nhập mật mã OpenPGP",
|
"POPUP_IMPORT_TITLE": "Nhập mật mã OpenPGP",
|
||||||
"POPUP_IMPORT_BUTTON": "Nhập",
|
"POPUP_IMPORT_BUTTON": "Nhập",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "Tạo một đôi mật mã OpenPGP",
|
"POPUP_GENERATE_TITLE": "Tạo một đôi mật mã OpenPGP",
|
||||||
"POPUP_GENERATE_BUTTON": "Tạo",
|
"POPUP_GENERATE_BUTTON": "Tạo",
|
||||||
"LABEL_KEY_TYPE": "Loại",
|
"LABEL_KEY_TYPE": "Loại",
|
||||||
"LABEL_SIGN": "Ký xác nhận",
|
|
||||||
"LABEL_ENCRYPT": "Mã hóa",
|
|
||||||
"BUTTON_DECRYPT": "Gỡ mã hóa",
|
|
||||||
"BUTTON_VERIFY": "Xác minh",
|
|
||||||
"SIGNED_MESSAGE": "Thư đã được ký xác nhận bằng mã OpenPGP",
|
"SIGNED_MESSAGE": "Thư đã được ký xác nhận bằng mã OpenPGP",
|
||||||
"ENCRYPTED_MESSAGE": "Thư đã được mã hóa bởi OpenPGP",
|
"ENCRYPTED_MESSAGE": "Thư đã được mã hóa bởi OpenPGP",
|
||||||
"STORE_IN_GNUPG": "Lưu trữ trên máy chủ trong GnuPG",
|
"STORE_IN_GNUPG": "Lưu trữ trên máy chủ trong GnuPG",
|
||||||
"BACKUP_ON_SERVER": "Lưu trữ (đã được mã hóa) trên máy chủ",
|
"BACKUP_ON_SERVER": "Lưu trữ (đã được mã hóa) trên máy chủ"
|
||||||
"GOOD_SIGNATURE": "Chữ ký ổn từ %USER%",
|
},
|
||||||
"ERROR": "Lỗi OpenPGP: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "Thư đã được ký xác nhận bằng mã S\/MIME",
|
||||||
|
"ENCRYPTED_MESSAGE": "Thư đã được mã hóa bởi S\/MIME"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "Tạo một tấm lọc mới?",
|
"TITLE_CREATE_FILTER": "Tạo một tấm lọc mới?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "一旦操作执行,将不可中断和撤销!",
|
"DANGER_DESC_HTML_2": "一旦操作执行,将不可中断和撤销!",
|
||||||
"TITLE_CLEARING_PROCESS": "文件夹清理中..."
|
"TITLE_CLEARING_PROCESS": "文件夹清理中..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "签名",
|
||||||
|
"ENCRYPT": "加密",
|
||||||
|
"DECRYPT": "解密",
|
||||||
|
"VERIFY": "Verify",
|
||||||
|
"GOOD_SIGNATURE": "来自 %USER% 的可用签名",
|
||||||
|
"ERROR": "%TYPE% 错误: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "导入 OpenPGP 密钥",
|
"POPUP_IMPORT_TITLE": "导入 OpenPGP 密钥",
|
||||||
"POPUP_IMPORT_BUTTON": "导入",
|
"POPUP_IMPORT_BUTTON": "导入",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "生成 OpenPGP 密钥",
|
"POPUP_GENERATE_TITLE": "生成 OpenPGP 密钥",
|
||||||
"POPUP_GENERATE_BUTTON": "生成",
|
"POPUP_GENERATE_BUTTON": "生成",
|
||||||
"LABEL_KEY_TYPE": "Type",
|
"LABEL_KEY_TYPE": "Type",
|
||||||
"LABEL_SIGN": "签名",
|
|
||||||
"LABEL_ENCRYPT": "加密",
|
|
||||||
"BUTTON_DECRYPT": "解密",
|
|
||||||
"BUTTON_VERIFY": "Verify",
|
|
||||||
"SIGNED_MESSAGE": "由 OpenPGP 签名",
|
"SIGNED_MESSAGE": "由 OpenPGP 签名",
|
||||||
"ENCRYPTED_MESSAGE": "由 OpenPGP 加密",
|
"ENCRYPTED_MESSAGE": "由 OpenPGP 加密",
|
||||||
"STORE_IN_GNUPG": "以 GnuPG 存储在服务器",
|
"STORE_IN_GNUPG": "以 GnuPG 存储在服务器",
|
||||||
"BACKUP_ON_SERVER": "加密存储在服务器",
|
"BACKUP_ON_SERVER": "加密存储在服务器"
|
||||||
"GOOD_SIGNATURE": "来自 %USER% 的可用签名",
|
},
|
||||||
"ERROR": "OpenPGP 错误: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "由 S\/MIME 签名",
|
||||||
|
"ENCRYPTED_MESSAGE": "由 S\/MIME 加密"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "创建筛选条件?",
|
"TITLE_CREATE_FILTER": "创建筛选条件?",
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,14 @@
|
||||||
"DANGER_DESC_HTML_2": "一旦執行操作,就無法中斷或取消。",
|
"DANGER_DESC_HTML_2": "一旦執行操作,就無法中斷或取消。",
|
||||||
"TITLE_CLEARING_PROCESS": "正在清除資料夾..."
|
"TITLE_CLEARING_PROCESS": "正在清除資料夾..."
|
||||||
},
|
},
|
||||||
|
"CRYPTO": {
|
||||||
|
"SIGN": "簽署",
|
||||||
|
"ENCRYPT": "加密",
|
||||||
|
"DECRYPT": "解密",
|
||||||
|
"VERIFY": "驗證",
|
||||||
|
"GOOD_SIGNATURE": "來自「%USER%」的良好簽署",
|
||||||
|
"ERROR": "%TYPE% 錯誤: %ERROR%"
|
||||||
|
},
|
||||||
"OPENPGP": {
|
"OPENPGP": {
|
||||||
"POPUP_IMPORT_TITLE": "匯入 OpenPGP 金鑰",
|
"POPUP_IMPORT_TITLE": "匯入 OpenPGP 金鑰",
|
||||||
"POPUP_IMPORT_BUTTON": "匯入",
|
"POPUP_IMPORT_BUTTON": "匯入",
|
||||||
|
|
@ -282,16 +290,14 @@
|
||||||
"POPUP_GENERATE_TITLE": "產生 OpenPGP 金鑰",
|
"POPUP_GENERATE_TITLE": "產生 OpenPGP 金鑰",
|
||||||
"POPUP_GENERATE_BUTTON": "產生",
|
"POPUP_GENERATE_BUTTON": "產生",
|
||||||
"LABEL_KEY_TYPE": "類型",
|
"LABEL_KEY_TYPE": "類型",
|
||||||
"LABEL_SIGN": "簽署",
|
|
||||||
"LABEL_ENCRYPT": "加密",
|
|
||||||
"BUTTON_DECRYPT": "解密",
|
|
||||||
"BUTTON_VERIFY": "驗證",
|
|
||||||
"SIGNED_MESSAGE": "已透過 OpenPGP 簽署郵件",
|
"SIGNED_MESSAGE": "已透過 OpenPGP 簽署郵件",
|
||||||
"ENCRYPTED_MESSAGE": "已透過 OpenPGP 加密郵件",
|
"ENCRYPTED_MESSAGE": "已透過 OpenPGP 加密郵件",
|
||||||
"STORE_IN_GNUPG": "以 GnuPG 儲存在伺服器上",
|
"STORE_IN_GNUPG": "以 GnuPG 儲存在伺服器上",
|
||||||
"BACKUP_ON_SERVER": "在伺服器中儲存 (已加密)",
|
"BACKUP_ON_SERVER": "在伺服器中儲存 (已加密)"
|
||||||
"GOOD_SIGNATURE": "來自「%USER%」的良好簽署",
|
},
|
||||||
"ERROR": "OpenPGP 錯誤: %ERROR%"
|
"SMIME": {
|
||||||
|
"SIGNED_MESSAGE": "已透過 S\/MIME 簽署郵件",
|
||||||
|
"ENCRYPTED_MESSAGE": "已透過 S\/MIME 加密郵件"
|
||||||
},
|
},
|
||||||
"POPUPS_FILTER": {
|
"POPUPS_FILTER": {
|
||||||
"TITLE_CREATE_FILTER": "是否要建立篩選器?",
|
"TITLE_CREATE_FILTER": "是否要建立篩選器?",
|
||||||
|
|
|
||||||
|
|
@ -295,13 +295,20 @@
|
||||||
<div data-bind="visible: message().pgpEncrypted()">
|
<div data-bind="visible: message().pgpEncrypted()">
|
||||||
<div class="openpgp-control encrypted" data-bind="css: {success: message().pgpDecrypted()}">
|
<div class="openpgp-control encrypted" data-bind="css: {success: message().pgpDecrypted()}">
|
||||||
<span data-icon="🔒" data-i18n="OPENPGP/ENCRYPTED_MESSAGE"></span>
|
<span data-icon="🔒" data-i18n="OPENPGP/ENCRYPTED_MESSAGE"></span>
|
||||||
<button class="btn" data-bind="visible: pgpSupported, click: pgpDecrypt" data-i18n="OPENPGP/BUTTON_DECRYPT"></button>
|
<button class="btn" data-bind="visible: pgpSupported, click: pgpDecrypt" data-i18n="CRYPTO/DECRYPT"></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div data-bind="visible: message().pgpSigned()">
|
<div data-bind="visible: message().pgpSigned()">
|
||||||
<div class="openpgp-control signed" data-bind="css: {success: message().pgpVerified() && message().pgpVerified().success, error: message().pgpVerified() && !message().pgpVerified().success}">
|
<div class="openpgp-control signed" data-bind="css: {success: message().pgpVerified() && message().pgpVerified().success, error: message().pgpVerified() && !message().pgpVerified().success}">
|
||||||
<span data-icon="✍" data-i18n="OPENPGP/SIGNED_MESSAGE"></span>
|
<span data-icon="✍" data-i18n="OPENPGP/SIGNED_MESSAGE"></span>
|
||||||
<button class="btn" data-bind="visible: pgpSupported, click: pgpVerify" data-i18n="OPENPGP/BUTTON_VERIFY"></button>
|
<button class="btn" data-bind="visible: pgpSupported, click: pgpVerify" data-i18n="CRYPTO/VERIFY"></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div data-bind="visible: message().smimeSigned()">
|
||||||
|
<div class="openpgp-control signed" data-bind="css: {success: message().smimeVerified() && message().smimeVerified().success, error: message().smimeVerified() && !message().smimeVerified().success}">
|
||||||
|
<span data-icon="✍" data-i18n="SMIME/SIGNED_MESSAGE"></span>
|
||||||
|
<button class="btn" data-bind="click: smimeVerify" data-i18n="CRYPTO/VERIFY"></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -63,13 +63,13 @@
|
||||||
<li data-bind="toggle: doSign, visible: canSign">
|
<li data-bind="toggle: doSign, visible: canSign">
|
||||||
<a>
|
<a>
|
||||||
<i class="fontastic" data-bind="text: doSign() ? '☑' : '☐'"></i>
|
<i class="fontastic" data-bind="text: doSign() ? '☑' : '☐'"></i>
|
||||||
<span data-icon="✍" data-i18n="OPENPGP/LABEL_SIGN"></span>
|
<span data-icon="✍" data-i18n="CRYPTO/SIGN"></span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li data-bind="toggle: doEncrypt, visible: canEncrypt">
|
<li data-bind="toggle: doEncrypt, visible: canEncrypt">
|
||||||
<a>
|
<a>
|
||||||
<i class="fontastic" data-bind="text: doEncrypt() || 'mailvelope' == viewArea() ? '☑' : '☐'"></i>
|
<i class="fontastic" data-bind="text: doEncrypt() || 'mailvelope' == viewArea() ? '☑' : '☐'"></i>
|
||||||
<span data-icon="🔒" data-i18n="OPENPGP/LABEL_ENCRYPT"></span>
|
<span data-icon="🔒" data-i18n="CRYPTO/ENCRYPT"></span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</menu>
|
</menu>
|
||||||
|
|
@ -137,10 +137,10 @@
|
||||||
<div style="display:flex">
|
<div style="display:flex">
|
||||||
<div class="btn-group" style="flex-grow:1"></div>
|
<div class="btn-group" style="flex-grow:1"></div>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a class="btn fontastic" data-bind="toggle: doSign, visible: canSign, css: {'btn-success': doSign()}" data-i18n="[title]OPENPGP/LABEL_SIGN">
|
<a class="btn fontastic" data-bind="toggle: doSign, visible: canSign, css: {'btn-success': doSign()}" data-i18n="[title]CRYPTO/SIGN">
|
||||||
✍
|
✍
|
||||||
</a>
|
</a>
|
||||||
<a class="btn fontastic" data-bind="toggle: doEncrypt, visible: canEncrypt, css: {'btn-success': doEncrypt() || 'mailvelope' == viewArea()}" data-i18n="[title]OPENPGP/LABEL_ENCRYPT">
|
<a class="btn fontastic" data-bind="toggle: doEncrypt, visible: canEncrypt, css: {'btn-success': doEncrypt() || 'mailvelope' == viewArea()}" data-i18n="[title]CRYPTO/ENCRYPT">
|
||||||
🔒
|
🔒
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -255,7 +255,7 @@
|
||||||
data-i18n="CONTACTS/TAB_CRYPTO"></label>
|
data-i18n="CONTACTS/TAB_CRYPTO"></label>
|
||||||
<div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false">
|
<div class="form-horizontal tab-content" role="tabpanel" aria-hidden="false">
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label data-i18n="OPENPGP/LABEL_SIGN"></label>
|
<label data-i18n="CRYPTO/SIGN"></label>
|
||||||
<select name="x-crypto[signpref]" data-bind="value: signpref">
|
<select name="x-crypto[signpref]" data-bind="value: signpref">
|
||||||
<option value="Ask" data-i18n="CONTACTS/ASK"></option>
|
<option value="Ask" data-i18n="CONTACTS/ASK"></option>
|
||||||
<option value="Never" data-i18n="CONTACTS/NEVER"></option>
|
<option value="Never" data-i18n="CONTACTS/NEVER"></option>
|
||||||
|
|
@ -264,7 +264,7 @@
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label data-i18n="OPENPGP/LABEL_ENCRYPT"></label>
|
<label data-i18n="CRYPTO/ENCRYPT"></label>
|
||||||
<select name="x-crypto[encryptpref]" data-bind="value: encryptpref">
|
<select name="x-crypto[encryptpref]" data-bind="value: encryptpref">
|
||||||
<option value="Ask" data-i18n="CONTACTS/ASK"></option>
|
<option value="Ask" data-i18n="CONTACTS/ASK"></option>
|
||||||
<option value="Never" data-i18n="CONTACTS/NEVER"></option>
|
<option value="Never" data-i18n="CONTACTS/NEVER"></option>
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@
|
||||||
<div data-bind="component: {
|
<div data-bind="component: {
|
||||||
name: 'Checkbox',
|
name: 'Checkbox',
|
||||||
params: {
|
params: {
|
||||||
label: 'OPENPGP/LABEL_SIGN',
|
label: 'CRYPTO/SIGN',
|
||||||
value: pgpSign,
|
value: pgpSign,
|
||||||
name: 'pgpSign'
|
name: 'pgpSign'
|
||||||
}
|
}
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
<div data-bind="component: {
|
<div data-bind="component: {
|
||||||
name: 'Checkbox',
|
name: 'Checkbox',
|
||||||
params: {
|
params: {
|
||||||
label: 'OPENPGP/LABEL_ENCRYPT',
|
label: 'CRYPTO/ENCRYPT',
|
||||||
value: pgpEncrypt,
|
value: pgpEncrypt,
|
||||||
name: 'pgpEncrypt'
|
name: 'pgpEncrypt'
|
||||||
}
|
}
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
</div>
|
</div>
|
||||||
<!--
|
<!--
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label data-i18n="OPENPGP/LABEL_ENCRYPT"></label>
|
<label data-i18n="CRYPTO/ENCRYPT"></label>
|
||||||
<select name="PgpEncrypt" data-bind="value: pgpEncrypt">
|
<select name="PgpEncrypt" data-bind="value: pgpEncrypt">
|
||||||
<option value="Ask" data-i18n="CONTACTS/ASK"></option>
|
<option value="Ask" data-i18n="CONTACTS/ASK"></option>
|
||||||
<option value="Never" data-i18n="CONTACTS/NEVER"></option>
|
<option value="Never" data-i18n="CONTACTS/NEVER"></option>
|
||||||
|
|
|
||||||
|
|
@ -166,14 +166,14 @@
|
||||||
<div data-bind="component: {
|
<div data-bind="component: {
|
||||||
name: 'Checkbox',
|
name: 'Checkbox',
|
||||||
params: {
|
params: {
|
||||||
label: 'OPENPGP/LABEL_SIGN',
|
label: 'CRYPTO/SIGN',
|
||||||
value: pgpSign
|
value: pgpSign
|
||||||
}
|
}
|
||||||
}"></div>
|
}"></div>
|
||||||
<div data-bind="component: {
|
<div data-bind="component: {
|
||||||
name: 'Checkbox',
|
name: 'Checkbox',
|
||||||
params: {
|
params: {
|
||||||
label: 'OPENPGP/LABEL_ENCRYPT',
|
label: 'CRYPTO/ENCRYPT',
|
||||||
value: pgpEncrypt
|
value: pgpEncrypt
|
||||||
}
|
}
|
||||||
}"></div>
|
}"></div>
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,8 @@
|
||||||
<tbody data-bind="foreach: gnupgPrivateKeys, i18nUpdate: gnupgPrivateKeys">
|
<tbody data-bind="foreach: gnupgPrivateKeys, i18nUpdate: gnupgPrivateKeys">
|
||||||
<tr>
|
<tr>
|
||||||
<td data-bind="click: view">
|
<td data-bind="click: view">
|
||||||
<span data-bind="visible: can_sign" class="fontastic" data-i18n="[title]OPENPGP/LABEL_SIGN">✍</span>
|
<span data-bind="visible: can_sign" class="fontastic" data-i18n="[title]CRYPTO/SIGN">✍</span>
|
||||||
<span data-bind="visible: can_decrypt" class="fontastic" data-i18n="[title]OPENPGP/BUTTON_DECRYPT">🔓</span>
|
<span data-bind="visible: can_decrypt" class="fontastic" data-i18n="[title]CRYPTO/DECRYPT">🔓</span>
|
||||||
<span class="key-id" data-bind="text: id"></span>
|
<span class="key-id" data-bind="text: id"></span>
|
||||||
<!-- ko foreach: emails -->
|
<!-- ko foreach: emails -->
|
||||||
<span class="key-user" data-bind="text: $data"></span>
|
<span class="key-user" data-bind="text: $data"></span>
|
||||||
|
|
@ -50,8 +50,8 @@
|
||||||
<tbody data-bind="foreach: gnupgPublicKeys, i18nUpdate: gnupgPublicKeys">
|
<tbody data-bind="foreach: gnupgPublicKeys, i18nUpdate: gnupgPublicKeys">
|
||||||
<tr>
|
<tr>
|
||||||
<td data-bind="click: view">
|
<td data-bind="click: view">
|
||||||
<span data-bind="visible: can_verify" class="fontastic" data-i18n="[title]OPENPGP/BUTTON_VERIFY">✔</span>
|
<span data-bind="visible: can_verify" class="fontastic" data-i18n="[title]CRYPTO/VERIFY">✔</span>
|
||||||
<span data-bind="visible: can_encrypt" class="fontastic" data-i18n="[title]OPENPGP/LABEL_ENCRYPT">🔒</span>
|
<span data-bind="visible: can_encrypt" class="fontastic" data-i18n="[title]CRYPTO/ENCRYPT">🔒</span>
|
||||||
<span class="key-id" data-bind="text: id"></span>
|
<span class="key-id" data-bind="text: id"></span>
|
||||||
<!-- ko foreach: emails -->
|
<!-- ko foreach: emails -->
|
||||||
<span class="key-user" data-bind="text: $data"></span>
|
<span class="key-user" data-bind="text: $data"></span>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue