mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-31 13:09:21 +03:00
Ask old login password on CryptKey decrypt failure, to reseal with new password
This commit is contained in:
parent
a241149b6b
commit
9bc56a5abd
47 changed files with 199 additions and 67 deletions
|
|
@ -11,6 +11,8 @@ import { LoginAdminScreen } from 'Screen/Admin/Login';
|
|||
import { startScreens } from 'Knoin/Knoin';
|
||||
import { AbstractApp } from 'App/Abstract';
|
||||
|
||||
import { AskPopupView } from 'View/Popup/Ask';
|
||||
|
||||
export class AdminApp extends AbstractApp {
|
||||
constructor() {
|
||||
super(Remote);
|
||||
|
|
@ -35,3 +37,16 @@ export class AdminApp extends AbstractApp {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
AskPopupView.credentials = function(sAskDesc, btnText) {
|
||||
return new Promise(resolve => {
|
||||
this.showModal([
|
||||
sAskDesc,
|
||||
view => resolve({username:view.username(), password:view.passphrase()}),
|
||||
() => resolve(null),
|
||||
true,
|
||||
3,
|
||||
btnText
|
||||
]);
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -86,6 +86,8 @@ export class AppUser extends AbstractApp {
|
|||
|
||||
this.folderList = FolderUserStore.folderList;
|
||||
this.messageList = MessagelistUserStore;
|
||||
|
||||
this.ask = AskPopupView;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -248,3 +250,46 @@ export class AppUser extends AbstractApp {
|
|||
showScreenPopup(ComposePopupView, params);
|
||||
}
|
||||
}
|
||||
|
||||
AskPopupView.password = function(sAskDesc, btnText) {
|
||||
return new Promise(resolve => {
|
||||
this.showModal([
|
||||
sAskDesc,
|
||||
view => resolve({password:view.passphrase(), remember:view.remember()}),
|
||||
() => resolve(null),
|
||||
true,
|
||||
5,
|
||||
btnText
|
||||
]);
|
||||
});
|
||||
};
|
||||
|
||||
AskPopupView.cryptkey = () => new Promise(resolve => {
|
||||
const fn = () => AskPopupView.showModal([
|
||||
i18n('CRYPTO/ASK_CRYPTKEY_PASS'),
|
||||
view => {
|
||||
let pass = view.passphrase();
|
||||
if (pass) {
|
||||
Remote.post('ResealCryptKey', null, {
|
||||
passphrase: pass
|
||||
}).then(response => {
|
||||
resolve(response?.Result);
|
||||
}).catch(e => {
|
||||
if (111 === e.code) {
|
||||
fn();
|
||||
} else {
|
||||
console.error(e);
|
||||
resolve(null);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
resolve(null);
|
||||
}
|
||||
},
|
||||
() => resolve(null),
|
||||
true,
|
||||
1,
|
||||
i18n('CRYPTO/DECRYPT')
|
||||
]);
|
||||
fn();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ Notifications = {
|
|||
ConnectionError: 104,
|
||||
DomainNotAllowed: 109,
|
||||
AccountNotAllowed: 110,
|
||||
CryptKeyError: 111,
|
||||
|
||||
ContactsSyncError: 140,
|
||||
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ export class AbstractFetchRemote
|
|||
fetchJSON(sAction, getURL(sGetAdd),
|
||||
sGetAdd ? null : (params || {}),
|
||||
undefined === iTimeout ? 30000 : pInt(iTimeout),
|
||||
data => {
|
||||
async data => {
|
||||
let iError = 0;
|
||||
if (data) {
|
||||
/*
|
||||
|
|
@ -148,6 +148,10 @@ export class AbstractFetchRemote
|
|||
}
|
||||
}
|
||||
|
||||
if (111 === iError && rl.app.ask && await rl.app.ask.cryptkey()) {
|
||||
return this.request(sAction, fCallback, params, iTimeout, sGetAdd);
|
||||
}
|
||||
|
||||
fCallback && fCallback(
|
||||
iError,
|
||||
data,
|
||||
|
|
@ -185,12 +189,16 @@ export class AbstractFetchRemote
|
|||
post(action, fTrigger, params, timeOut) {
|
||||
this.setTrigger(fTrigger, true);
|
||||
return fetchJSON(action, getURL(), params || {}, pInt(timeOut, 30000),
|
||||
data => {
|
||||
async data => {
|
||||
abort(action, 0, 1);
|
||||
|
||||
if (!data) {
|
||||
return Promise.reject(new FetchError(Notifications.JsonParse));
|
||||
}
|
||||
|
||||
if (111 === data?.ErrorCode && rl.app.ask && await rl.app.ask.cryptkey()) {
|
||||
return this.post(action, fTrigger, params, timeOut);
|
||||
}
|
||||
/*
|
||||
let isCached = false, type = '';
|
||||
if (data?.epoch) {
|
||||
|
|
|
|||
|
|
@ -85,29 +85,3 @@ export class AskPopupView extends AbstractViewPopup {
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
AskPopupView.password = function(sAskDesc, btnText) {
|
||||
return new Promise(resolve => {
|
||||
this.showModal([
|
||||
sAskDesc,
|
||||
view => resolve({password:view.passphrase(), remember:view.remember()}),
|
||||
() => resolve(null),
|
||||
true,
|
||||
5,
|
||||
btnText
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
AskPopupView.credentials = function(sAskDesc, btnText) {
|
||||
return new Promise(resolve => {
|
||||
this.showModal([
|
||||
sAskDesc,
|
||||
view => resolve({username:view.username(), password:view.passphrase(), remember:view.remember()}),
|
||||
() => resolve(null),
|
||||
true,
|
||||
3,
|
||||
btnText
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,15 @@ trait UserAuth
|
|||
private $oAdditionalAuthAccount = false;
|
||||
private $oMainAuthAccount = false;
|
||||
|
||||
public function DoResealCryptKey() : array
|
||||
{
|
||||
return $this->DefaultResponse(
|
||||
$this->getMainAccountFromToken()->resealCryptKey(
|
||||
new \SnappyMail\SensitiveString($this->GetActionParam('passphrase', ''))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \RainLoop\Exceptions\ClientException
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ namespace RainLoop\Model;
|
|||
|
||||
use RainLoop\Utils;
|
||||
use RainLoop\Exceptions\ClientException;
|
||||
use RainLoop\Notifications;
|
||||
use RainLoop\Providers\Storage\Enumerations\StorageType;
|
||||
use SnappyMail\SensitiveString;
|
||||
|
||||
|
|
@ -45,6 +46,8 @@ class MainAccount extends Account
|
|||
$sKey = \SnappyMail\Crypt::DecryptFromJSON($sKey, $this->IncPassword());
|
||||
if ($sKey) {
|
||||
$this->sCryptKey = new SensitiveString(\hex2bin($sKey));
|
||||
} else {
|
||||
throw new ClientException(Notifications::CryptKeyError);
|
||||
}
|
||||
}
|
||||
return $this->sCryptKey;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ class Notifications
|
|||
const ConnectionError = 104;
|
||||
const DomainNotAllowed = 109;
|
||||
const AccountNotAllowed = 110;
|
||||
const CryptKeyError = 111;
|
||||
|
||||
const ContactsSyncError = 140;
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@ class Backup
|
|||
\RainLoop\Providers\Storage\Enumerations\StorageType::PGP,
|
||||
true
|
||||
);
|
||||
$hash = $oAccount->CryptKey();
|
||||
foreach (\glob("{$dir}*") as $file) {
|
||||
if (\is_file($file)) {
|
||||
if ('_public.asc' === \substr($file, -11)) {
|
||||
|
|
@ -61,6 +60,7 @@ class Backup
|
|||
$key = \json_decode(\file_get_contents($file));
|
||||
if (\is_array($key)) {
|
||||
$mac = \array_pop($key);
|
||||
$hash = $oAccount->CryptKey();
|
||||
if (!empty($key[2]) && \hash_hmac('sha1', $key[2], $hash) === $mac) {
|
||||
$key[1] = \base64_decode($key[1]);
|
||||
$key[2] = \base64_decode($key[2]);
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% error: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "OpenPGP استيراد مفتاح",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "الموقع موجود مسبقاَ",
|
||||
"DomainNotAllowed": "غير مسموح لهذا الموقع",
|
||||
"AccountNotAllowed": "الحساب غير مسموح له",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "خطأ في مزامنة جهات الإتصال",
|
||||
"CantGetMessageList": "لايمكن الوصول الى قائمة الرسائل",
|
||||
"CantGetMessage": "لايمكن الوصول الى الرسالة",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% грешка: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Внасяне на OpenPGP ключ",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Домейна вече съществува",
|
||||
"DomainNotAllowed": "Този домейн не е разрешен",
|
||||
"AccountNotAllowed": "Този акаунт не е разрешен",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Грешка при синхронизацията",
|
||||
"CantGetMessageList": "Не може да се изтегли списъка със съобщения",
|
||||
"CantGetMessage": "Не може да се изтегли съобщението",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% chyba: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Import OpenPGP klíče",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Tato doména již existuje",
|
||||
"DomainNotAllowed": "Doména není povolená",
|
||||
"AccountNotAllowed": "Účet není povolený",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Chyba při synchronizaci kontaktů",
|
||||
"CantGetMessageList": "Chyba při vytváření seznamu zpráv",
|
||||
"CantGetMessage": "Zprávu se nepodařilo načíst",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% fejl: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importer OpenPGP nøgle",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domæne eksisterer allerede",
|
||||
"DomainNotAllowed": "Domæne ikke tilladt",
|
||||
"AccountNotAllowed": "Konto ikke tilladt",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Fejl ved synkronisering af kontakter",
|
||||
"CantGetMessageList": "Kan ikke indlæse meddelelsesoversigt ",
|
||||
"CantGetMessage": "Kan ikke indlæse meddelelse",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE%-Fehler: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "OpenPGP-Schlüssel importieren",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Diese Domain existiert bereits",
|
||||
"DomainNotAllowed": "Diese Domain ist nicht zugelassen.",
|
||||
"AccountNotAllowed": "Konto ist nicht zugelassen.",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Fehler bei Kontakte-Synchronisierung",
|
||||
"CantGetMessageList": "Die Nachrichtenliste ist nicht verfügbar",
|
||||
"CantGetMessage": "Diese Nachricht ist nicht verfügbar",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% error: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Εισαγωγή κλειδιού OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domain already exists",
|
||||
"DomainNotAllowed": "Domain is not allowed",
|
||||
"AccountNotAllowed": "Account is not allowed",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Contacts synchronization error",
|
||||
"CantGetMessageList": "Can't get message list",
|
||||
"CantGetMessage": "Can't get message",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% error: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domain already exists",
|
||||
"DomainNotAllowed": "Domain is not allowed",
|
||||
"AccountNotAllowed": "Account is not allowed",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Contacts synchronization error",
|
||||
"CantGetMessageList": "Can't get message list",
|
||||
"CantGetMessage": "Can't get message",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% error: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domain already exists",
|
||||
"DomainNotAllowed": "Domain is not allowed",
|
||||
"AccountNotAllowed": "Account is not allowed",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Contacts synchronization error",
|
||||
"CantGetMessageList": "Can't get message list",
|
||||
"CantGetMessage": "Can't get message",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "Error %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importar clave OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "El Dominio ya existe",
|
||||
"DomainNotAllowed": "Dominio no permitido",
|
||||
"AccountNotAllowed": "La cuenta no está permitida",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Error de sincronización de Contactos",
|
||||
"CantGetMessageList": "No se puede obtener la lista de mensajes",
|
||||
"CantGetMessage": "No se puede obtener el mensaje",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% viga: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Impordi OpenPGP võti",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domeen juba eksisteerib",
|
||||
"DomainNotAllowed": "Domeenil ei ole lubatud siseneda",
|
||||
"AccountNotAllowed": "Kasutajakontol ei ole lubatud siseneda",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Kontaktide sünkroniseerimise viga",
|
||||
"CantGetMessageList": "Kirjade nimekirja laadimine ebaõnnestus",
|
||||
"CantGetMessage": "Kirja laadimine ebaõnnestus",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% errorea: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Inportatu OpenPGP gakoa",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domeinua jadanik existitzen da",
|
||||
"DomainNotAllowed": "Domeinu ez baimendua",
|
||||
"AccountNotAllowed": "Kontu ez baimendua",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Kontaktu sinkronizazio errorea",
|
||||
"CantGetMessageList": "Ezin da mezuen zerrenda eskuratu",
|
||||
"CantGetMessage": "Ezin da mezua eskuratu",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "خطای %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "واردکردن کلید OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "دامنه در حال حاضر موجود است",
|
||||
"DomainNotAllowed": "به دامنه اجازه داده نشده است",
|
||||
"AccountNotAllowed": "به حساب کاربری اجازه داده نشده است",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "همگامسازی تماسها با خطا همراه بود",
|
||||
"CantGetMessageList": "امکان دریافت لیست پیامها نیست",
|
||||
"CantGetMessage": "امکان دریافت پیام نیست",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% virhe: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Tuo OpenPGP avain",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Verkkotunnus on jo olemassa",
|
||||
"DomainNotAllowed": "Verkkotunnus ei ole sallittu",
|
||||
"AccountNotAllowed": "Tili ei ole sallittu",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Yhteystietojen synkronointivirhe",
|
||||
"CantGetMessageList": "Viestilistaa ei voi näyttää",
|
||||
"CantGetMessage": "Viestiä ei voi näyttää",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "Erreur %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valable jusque",
|
||||
"PRIVATE_KEY": "Clé privée"
|
||||
"PRIVATE_KEY": "Clé privée",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importer la clef OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Le domaine existe déjà",
|
||||
"DomainNotAllowed": "Ce domaine n'est pas autorisé",
|
||||
"AccountNotAllowed": "Ce compte n'est pas autorisé",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Erreur de synchronisation des contacts",
|
||||
"CantGetMessageList": "Impossible d'obtenir la liste des messages",
|
||||
"CantGetMessage": "Impossible d'obtenir le message",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% hiba: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "OpenPGP kulcs importálás",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "A domain már létezik",
|
||||
"DomainNotAllowed": "A domain nem engedélyezett",
|
||||
"AccountNotAllowed": "A fiók nem engedélyezett",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Hiba lépett fel a névjegyek szinkronizálása közben",
|
||||
"CantGetMessageList": "Nem tudom letölteni az üzenetlistát",
|
||||
"CantGetMessage": "Nem tudom letölteni az üzenetet",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "Kesalahan %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Impor kunci OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domain telah ada",
|
||||
"DomainNotAllowed": "Domain tidak diizinkan",
|
||||
"AccountNotAllowed": "Akun ini tidak diizinkan",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Kesalahan sinkronisasi kontak",
|
||||
"CantGetMessageList": "Gagal memperoleh daftar pesan",
|
||||
"CantGetMessage": "Gagal memperoleh pesan",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% villa: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Flytja inn OpenPGP-lykil",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Lén er nú þegar til staðar",
|
||||
"DomainNotAllowed": "Lén ekki leyft",
|
||||
"AccountNotAllowed": "Aðgangur er ekki leyfður",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Villa í samstillingu tengiliða",
|
||||
"CantGetMessageList": "Get ekki sótt skilaboðlista",
|
||||
"CantGetMessage": "Get ekki sótt skilaboð",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "Errore di %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importa chiave OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Il dominio esiste già",
|
||||
"DomainNotAllowed": "Il dominio non è autorizzato",
|
||||
"AccountNotAllowed": "L'account non è autorizzato",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Errore durante la sincronizzazione dei contatti",
|
||||
"CantGetMessageList": "Impossibile ottenere la lista dei messaggi",
|
||||
"CantGetMessage": "Impossibile caricare il messaggio",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% エラー: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "OpenPGPキーをインポート",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "ドメインが既に存在しています",
|
||||
"DomainNotAllowed": "ドメインは、許可されていません",
|
||||
"AccountNotAllowed": "アカウントは、許可されていません",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "連絡先 同期 エラー",
|
||||
"CantGetMessageList": "メッセージ一覧が取得できません",
|
||||
"CantGetMessage": "メッセージを取得できません",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% 오류: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "OpenPGP 키 가져오기",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "이미 존재하는 도메인입니다.",
|
||||
"DomainNotAllowed": "허용된 도메인이 아닙니다.",
|
||||
"AccountNotAllowed": "허용된 계정이 아닙니다.",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "연락처 동기화 오류",
|
||||
"CantGetMessageList": "메시지 목록을 불러 올 수 없습니다.",
|
||||
"CantGetMessage": "메시지를 가져올 수 없습니다.",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% klaida: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importuoti OpenPGP raktą",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Subdomenas jau egzistuoja",
|
||||
"DomainNotAllowed": "Šis subdomenas neleidžiamas",
|
||||
"AccountNotAllowed": "Paskyra neleidžiama",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Kontaktų sinchronizavimo klaida",
|
||||
"CantGetMessageList": "Nepavyksta gauti laiškų sąrašo",
|
||||
"CantGetMessage": "Nepavyksta gauti laiško",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% error: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domeņes jau eksistē",
|
||||
"DomainNotAllowed": "Šis domēns nav atļauts",
|
||||
"AccountNotAllowed": "Account is not allowed",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Contacts synchronization error",
|
||||
"CantGetMessageList": "Nevar ielādēt ziņojumu sarakstu",
|
||||
"CantGetMessage": "Nevar ielādēt ziņojumu",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE%-feil: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importer OpenPGP-nøkkel",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domenet finnes allerede",
|
||||
"DomainNotAllowed": "Dette domenet tillates ikke",
|
||||
"AccountNotAllowed": "Denne kontoen tillates ikke",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Synkronisering av kontakter mislyktes",
|
||||
"CantGetMessageList": "Klarte ikke å hente liste over meldinger",
|
||||
"CantGetMessage": "Klarte ikke å hente melding",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% foutmelding: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Zelfondertekend certificaat aanmaken",
|
||||
"VALID_UNTIL": "Geldig tot",
|
||||
"PRIVATE_KEY": "Privésleutel"
|
||||
"PRIVATE_KEY": "Privésleutel",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importeer OpenPGP sleutel",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domein bestaat reeds",
|
||||
"DomainNotAllowed": "Domein is niet toegestaan",
|
||||
"AccountNotAllowed": "Account is niet toegestaan",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Contactpersonen synchronisatie fout",
|
||||
"CantGetMessageList": "Berichtenlijst kan niet worden opgehaald",
|
||||
"CantGetMessage": "Bericht kan niet worden opgehaald",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "Błąd %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Utwórz samodzielnie podpisany certyfikat",
|
||||
"VALID_UNTIL": "Ważny do",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importowanie klucza OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domena już istnieje",
|
||||
"DomainNotAllowed": "Domena jest niedozwolona",
|
||||
"AccountNotAllowed": "Konto nie jest dozwolone",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Błąd synchronizacji kontaktów",
|
||||
"CantGetMessageList": "Nie można pobrać listy wiadomości",
|
||||
"CantGetMessage": "Nie można pobrać wiadomości",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "Erro %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "O domínio já existe",
|
||||
"DomainNotAllowed": "Este domínio não é permitido",
|
||||
"AccountNotAllowed": "Conta não permitida",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Erro na sincronização dos contatos",
|
||||
"CantGetMessageList": "Não foi possível obter a lista de mensagens",
|
||||
"CantGetMessage": "Não foi possível obter a mensagem",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "Erro %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Criar auto-assinado",
|
||||
"VALID_UNTIL": "Válido até",
|
||||
"PRIVATE_KEY": "Chave privada"
|
||||
"PRIVATE_KEY": "Chave privada",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "O domínio já existe",
|
||||
"DomainNotAllowed": "Este domínio não é permitido",
|
||||
"AccountNotAllowed": "Esta conta não é permitida",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Erro na sincronização de contactos",
|
||||
"CantGetMessageList": "Não é possível obter a lista de mensagens",
|
||||
"CantGetMessage": "Não é possível obter a mensagem",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "Erro %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Criar auto-assinado",
|
||||
"VALID_UNTIL": "Válido até",
|
||||
"PRIVATE_KEY": "Chave privada"
|
||||
"PRIVATE_KEY": "Chave privada",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "O domínio já existe",
|
||||
"DomainNotAllowed": "Este domínio não é permitido",
|
||||
"AccountNotAllowed": "Esta conta não é permitida",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Erro na sincronização de contactos",
|
||||
"CantGetMessageList": "Não é possível obter a lista de mensagens",
|
||||
"CantGetMessage": "Não é possível obter a mensagem",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% error: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Import OpenPGP key",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domeniu există deja.",
|
||||
"DomainNotAllowed": "Domeniul nu apartine de Wey5",
|
||||
"AccountNotAllowed": "Contul nu are permisiunea de conectare",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Contacts synchronization error",
|
||||
"CantGetMessageList": "Nu găsesc o lista de scrisori",
|
||||
"CantGetMessage": "Nu pot obține scrisoarea. Încercați din nou",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% ошибка: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Импорт OpenPGP ключа",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Домен уже существует",
|
||||
"DomainNotAllowed": "Данный домен не разрешен",
|
||||
"AccountNotAllowed": "Данный аккаунт не разрешен",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Ошибка синхронизации контактов",
|
||||
"CantGetMessageList": "Не могу получить список писем",
|
||||
"CantGetMessage": "Не могу получить письмо",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% error: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Importovať kľúč OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Táto Doména už existuje",
|
||||
"DomainNotAllowed": "Doména nie je povolená",
|
||||
"AccountNotAllowed": "Účet nie je povolený",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Contacts synchronization error",
|
||||
"CantGetMessageList": "Chyba pri vytváraní zoznamu správ.",
|
||||
"CantGetMessage": "Správu sa nepodarilo načítať",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% napaka: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Uvoz OpenPGP ključa",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domena že obstaja",
|
||||
"DomainNotAllowed": "Domena ni dovoljena",
|
||||
"AccountNotAllowed": "Račun ni dovoljen",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Napaka sinhronizacije stikov",
|
||||
"CantGetMessageList": "Ni mogoče pridobiti seznama sporočil",
|
||||
"CantGetMessage": "Ni mogoče pridobiti sporočila",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE%-fel: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Import av OpenPGP-nyckel",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Domänen finns redan",
|
||||
"DomainNotAllowed": "Domän är inte tillåtet",
|
||||
"AccountNotAllowed": "Konto är inte tillåtet",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Kontakt-synkroniseringsfel",
|
||||
"CantGetMessageList": "Kan inte hämta meddelandelista",
|
||||
"CantGetMessage": "Kan inte hämta meddelande",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% hatası: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "OpenPGP key'i içe aktar",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Alanadı bulunuyor",
|
||||
"DomainNotAllowed": "Alan Adına izin verilmemiş",
|
||||
"AccountNotAllowed": "Hesaba izin verilmemiş",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Kişi listesi senkronizasyon hatası",
|
||||
"CantGetMessageList": "Mesaj listesi alınamadı",
|
||||
"CantGetMessage": "Mesaj alınamadı",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% помилка: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Імпорт OpenPGP ключа",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Домен вже існує",
|
||||
"DomainNotAllowed": "Цей домен заборонений",
|
||||
"AccountNotAllowed": "Цей акаунт заборонений",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Помилка синхронізації контактів",
|
||||
"CantGetMessageList": "Не можу отримати список листів",
|
||||
"CantGetMessage": "Не можу отримати листа",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "Lỗi %TYPE%: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "Nhập mật mã OpenPGP",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "Tên miền đã tồn tại",
|
||||
"DomainNotAllowed": "Tên miền không được cho phép truy cập",
|
||||
"AccountNotAllowed": "Tài khoản không được cho phép truy cập",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "Lỗi đồng bộ danh bạ",
|
||||
"CantGetMessageList": "Không thể lấy được danh sách thư",
|
||||
"CantGetMessage": "Không lấy được thư",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% 错误: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "导入 OpenPGP 密钥",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "域已经存在",
|
||||
"DomainNotAllowed": "不允许此域名",
|
||||
"AccountNotAllowed": "不允许此账户",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "联系人同步错误",
|
||||
"CantGetMessageList": "无法获取邮件列表",
|
||||
"CantGetMessage": "无法获取邮件",
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@
|
|||
"ERROR": "%TYPE% 錯誤: %ERROR%",
|
||||
"CREATE_SELF_SIGNED": "Create self-signed",
|
||||
"VALID_UNTIL": "Valid until",
|
||||
"PRIVATE_KEY": "Private key"
|
||||
"PRIVATE_KEY": "Private key",
|
||||
"ASK_CRYPTKEY_PASS": "Your login passphrase has changed. Please fill in your old login password to decrypt data"
|
||||
},
|
||||
"OPENPGP": {
|
||||
"POPUP_IMPORT_TITLE": "匯入 OpenPGP 金鑰",
|
||||
|
|
@ -585,6 +586,7 @@
|
|||
"DomainAlreadyExists": "域名已經存在",
|
||||
"DomainNotAllowed": "不可使用該域名",
|
||||
"AccountNotAllowed": "不可使用該帳戶",
|
||||
"CryptKeyError": "Your login passphrase has changed",
|
||||
"ContactsSyncError": "連絡人同步錯誤",
|
||||
"CantGetMessageList": "無法取得郵件清單",
|
||||
"CantGetMessage": "無法取得郵件",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue