Ask old login password on CryptKey decrypt failure, to reseal with new password

This commit is contained in:
the-djmaze 2024-03-18 12:25:24 +01:00
parent a241149b6b
commit 9bc56a5abd
47 changed files with 199 additions and 67 deletions

View file

@ -11,6 +11,8 @@ import { LoginAdminScreen } from 'Screen/Admin/Login';
import { startScreens } from 'Knoin/Knoin'; import { startScreens } from 'Knoin/Knoin';
import { AbstractApp } from 'App/Abstract'; import { AbstractApp } from 'App/Abstract';
import { AskPopupView } from 'View/Popup/Ask';
export class AdminApp extends AbstractApp { export class AdminApp extends AbstractApp {
constructor() { constructor() {
super(Remote); 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
]);
});
};

View file

@ -86,6 +86,8 @@ export class AppUser extends AbstractApp {
this.folderList = FolderUserStore.folderList; this.folderList = FolderUserStore.folderList;
this.messageList = MessagelistUserStore; this.messageList = MessagelistUserStore;
this.ask = AskPopupView;
} }
/** /**
@ -248,3 +250,46 @@ export class AppUser extends AbstractApp {
showScreenPopup(ComposePopupView, params); 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();
});

View file

@ -50,6 +50,7 @@ Notifications = {
ConnectionError: 104, ConnectionError: 104,
DomainNotAllowed: 109, DomainNotAllowed: 109,
AccountNotAllowed: 110, AccountNotAllowed: 110,
CryptKeyError: 111,
ContactsSyncError: 140, ContactsSyncError: 140,

View file

@ -132,7 +132,7 @@ export class AbstractFetchRemote
fetchJSON(sAction, getURL(sGetAdd), fetchJSON(sAction, getURL(sGetAdd),
sGetAdd ? null : (params || {}), sGetAdd ? null : (params || {}),
undefined === iTimeout ? 30000 : pInt(iTimeout), undefined === iTimeout ? 30000 : pInt(iTimeout),
data => { async data => {
let iError = 0; let iError = 0;
if (data) { 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( fCallback && fCallback(
iError, iError,
data, data,
@ -185,12 +189,16 @@ export class AbstractFetchRemote
post(action, fTrigger, params, timeOut) { post(action, fTrigger, params, timeOut) {
this.setTrigger(fTrigger, true); this.setTrigger(fTrigger, true);
return fetchJSON(action, getURL(), params || {}, pInt(timeOut, 30000), return fetchJSON(action, getURL(), params || {}, pInt(timeOut, 30000),
data => { async data => {
abort(action, 0, 1); abort(action, 0, 1);
if (!data) { if (!data) {
return Promise.reject(new FetchError(Notifications.JsonParse)); 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 = ''; let isCached = false, type = '';
if (data?.epoch) { if (data?.epoch) {

View file

@ -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
]);
});
}

View file

@ -20,6 +20,15 @@ trait UserAuth
private $oAdditionalAuthAccount = false; private $oAdditionalAuthAccount = false;
private $oMainAuthAccount = false; private $oMainAuthAccount = false;
public function DoResealCryptKey() : array
{
return $this->DefaultResponse(
$this->getMainAccountFromToken()->resealCryptKey(
new \SnappyMail\SensitiveString($this->GetActionParam('passphrase', ''))
)
);
}
/** /**
* @throws \RainLoop\Exceptions\ClientException * @throws \RainLoop\Exceptions\ClientException
*/ */

View file

@ -4,6 +4,7 @@ namespace RainLoop\Model;
use RainLoop\Utils; use RainLoop\Utils;
use RainLoop\Exceptions\ClientException; use RainLoop\Exceptions\ClientException;
use RainLoop\Notifications;
use RainLoop\Providers\Storage\Enumerations\StorageType; use RainLoop\Providers\Storage\Enumerations\StorageType;
use SnappyMail\SensitiveString; use SnappyMail\SensitiveString;
@ -45,6 +46,8 @@ class MainAccount extends Account
$sKey = \SnappyMail\Crypt::DecryptFromJSON($sKey, $this->IncPassword()); $sKey = \SnappyMail\Crypt::DecryptFromJSON($sKey, $this->IncPassword());
if ($sKey) { if ($sKey) {
$this->sCryptKey = new SensitiveString(\hex2bin($sKey)); $this->sCryptKey = new SensitiveString(\hex2bin($sKey));
} else {
throw new ClientException(Notifications::CryptKeyError);
} }
} }
return $this->sCryptKey; return $this->sCryptKey;

View file

@ -17,6 +17,7 @@ class Notifications
const ConnectionError = 104; const ConnectionError = 104;
const DomainNotAllowed = 109; const DomainNotAllowed = 109;
const AccountNotAllowed = 110; const AccountNotAllowed = 110;
const CryptKeyError = 111;
const ContactsSyncError = 140; const ContactsSyncError = 140;

View file

@ -49,7 +49,6 @@ class Backup
\RainLoop\Providers\Storage\Enumerations\StorageType::PGP, \RainLoop\Providers\Storage\Enumerations\StorageType::PGP,
true true
); );
$hash = $oAccount->CryptKey();
foreach (\glob("{$dir}*") as $file) { foreach (\glob("{$dir}*") as $file) {
if (\is_file($file)) { if (\is_file($file)) {
if ('_public.asc' === \substr($file, -11)) { if ('_public.asc' === \substr($file, -11)) {
@ -61,6 +60,7 @@ class Backup
$key = \json_decode(\file_get_contents($file)); $key = \json_decode(\file_get_contents($file));
if (\is_array($key)) { if (\is_array($key)) {
$mac = \array_pop($key); $mac = \array_pop($key);
$hash = $oAccount->CryptKey();
if (!empty($key[2]) && \hash_hmac('sha1', $key[2], $hash) === $mac) { if (!empty($key[2]) && \hash_hmac('sha1', $key[2], $hash) === $mac) {
$key[1] = \base64_decode($key[1]); $key[1] = \base64_decode($key[1]);
$key[2] = \base64_decode($key[2]); $key[2] = \base64_decode($key[2]);

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% error: %ERROR%", "ERROR": "%TYPE% error: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "OpenPGP استيراد مفتاح", "POPUP_IMPORT_TITLE": "OpenPGP استيراد مفتاح",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "الموقع موجود مسبقاَ", "DomainAlreadyExists": "الموقع موجود مسبقاَ",
"DomainNotAllowed": "غير مسموح لهذا الموقع", "DomainNotAllowed": "غير مسموح لهذا الموقع",
"AccountNotAllowed": "الحساب غير مسموح له", "AccountNotAllowed": "الحساب غير مسموح له",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "خطأ في مزامنة جهات الإتصال", "ContactsSyncError": "خطأ في مزامنة جهات الإتصال",
"CantGetMessageList": "لايمكن الوصول الى قائمة الرسائل", "CantGetMessageList": "لايمكن الوصول الى قائمة الرسائل",
"CantGetMessage": "لايمكن الوصول الى الرسالة", "CantGetMessage": "لايمكن الوصول الى الرسالة",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% грешка: %ERROR%", "ERROR": "%TYPE% грешка: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Внасяне на OpenPGP ключ", "POPUP_IMPORT_TITLE": "Внасяне на OpenPGP ключ",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Домейна вече съществува", "DomainAlreadyExists": "Домейна вече съществува",
"DomainNotAllowed": "Този домейн не е разрешен", "DomainNotAllowed": "Този домейн не е разрешен",
"AccountNotAllowed": "Този акаунт не е разрешен", "AccountNotAllowed": "Този акаунт не е разрешен",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Грешка при синхронизацията", "ContactsSyncError": "Грешка при синхронизацията",
"CantGetMessageList": "Не може да се изтегли списъка със съобщения", "CantGetMessageList": "Не може да се изтегли списъка със съобщения",
"CantGetMessage": "Не може да се изтегли съобщението", "CantGetMessage": "Не може да се изтегли съобщението",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% chyba: %ERROR%", "ERROR": "%TYPE% chyba: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Import OpenPGP klíče", "POPUP_IMPORT_TITLE": "Import OpenPGP klíče",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Tato doména již existuje", "DomainAlreadyExists": "Tato doména již existuje",
"DomainNotAllowed": "Doména není povolená", "DomainNotAllowed": "Doména není povolená",
"AccountNotAllowed": "Účet není povolený", "AccountNotAllowed": "Účet není povolený",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Chyba při synchronizaci kontaktů", "ContactsSyncError": "Chyba při synchronizaci kontaktů",
"CantGetMessageList": "Chyba při vytváření seznamu zpráv", "CantGetMessageList": "Chyba při vytváření seznamu zpráv",
"CantGetMessage": "Zprávu se nepodařilo načíst", "CantGetMessage": "Zprávu se nepodařilo načíst",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% fejl: %ERROR%", "ERROR": "%TYPE% fejl: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importer OpenPGP nøgle", "POPUP_IMPORT_TITLE": "Importer OpenPGP nøgle",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domæne eksisterer allerede", "DomainAlreadyExists": "Domæne eksisterer allerede",
"DomainNotAllowed": "Domæne ikke tilladt", "DomainNotAllowed": "Domæne ikke tilladt",
"AccountNotAllowed": "Konto ikke tilladt", "AccountNotAllowed": "Konto ikke tilladt",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Fejl ved synkronisering af kontakter", "ContactsSyncError": "Fejl ved synkronisering af kontakter",
"CantGetMessageList": "Kan ikke indlæse meddelelsesoversigt ", "CantGetMessageList": "Kan ikke indlæse meddelelsesoversigt ",
"CantGetMessage": "Kan ikke indlæse meddelelse", "CantGetMessage": "Kan ikke indlæse meddelelse",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE%-Fehler: %ERROR%", "ERROR": "%TYPE%-Fehler: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "OpenPGP-Schlüssel importieren", "POPUP_IMPORT_TITLE": "OpenPGP-Schlüssel importieren",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Diese Domain existiert bereits", "DomainAlreadyExists": "Diese Domain existiert bereits",
"DomainNotAllowed": "Diese Domain ist nicht zugelassen.", "DomainNotAllowed": "Diese Domain ist nicht zugelassen.",
"AccountNotAllowed": "Konto ist nicht zugelassen.", "AccountNotAllowed": "Konto ist nicht zugelassen.",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Fehler bei Kontakte-Synchronisierung", "ContactsSyncError": "Fehler bei Kontakte-Synchronisierung",
"CantGetMessageList": "Die Nachrichtenliste ist nicht verfügbar", "CantGetMessageList": "Die Nachrichtenliste ist nicht verfügbar",
"CantGetMessage": "Diese Nachricht ist nicht verfügbar", "CantGetMessage": "Diese Nachricht ist nicht verfügbar",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% error: %ERROR%", "ERROR": "%TYPE% error: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Εισαγωγή κλειδιού OpenPGP", "POPUP_IMPORT_TITLE": "Εισαγωγή κλειδιού OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domain already exists", "DomainAlreadyExists": "Domain already exists",
"DomainNotAllowed": "Domain is not allowed", "DomainNotAllowed": "Domain is not allowed",
"AccountNotAllowed": "Account is not allowed", "AccountNotAllowed": "Account is not allowed",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Contacts synchronization error", "ContactsSyncError": "Contacts synchronization error",
"CantGetMessageList": "Can't get message list", "CantGetMessageList": "Can't get message list",
"CantGetMessage": "Can't get message", "CantGetMessage": "Can't get message",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% error: %ERROR%", "ERROR": "%TYPE% error: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Import OpenPGP key", "POPUP_IMPORT_TITLE": "Import OpenPGP key",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domain already exists", "DomainAlreadyExists": "Domain already exists",
"DomainNotAllowed": "Domain is not allowed", "DomainNotAllowed": "Domain is not allowed",
"AccountNotAllowed": "Account is not allowed", "AccountNotAllowed": "Account is not allowed",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Contacts synchronization error", "ContactsSyncError": "Contacts synchronization error",
"CantGetMessageList": "Can't get message list", "CantGetMessageList": "Can't get message list",
"CantGetMessage": "Can't get message", "CantGetMessage": "Can't get message",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% error: %ERROR%", "ERROR": "%TYPE% error: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Import OpenPGP key", "POPUP_IMPORT_TITLE": "Import OpenPGP key",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domain already exists", "DomainAlreadyExists": "Domain already exists",
"DomainNotAllowed": "Domain is not allowed", "DomainNotAllowed": "Domain is not allowed",
"AccountNotAllowed": "Account is not allowed", "AccountNotAllowed": "Account is not allowed",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Contacts synchronization error", "ContactsSyncError": "Contacts synchronization error",
"CantGetMessageList": "Can't get message list", "CantGetMessageList": "Can't get message list",
"CantGetMessage": "Can't get message", "CantGetMessage": "Can't get message",

View file

@ -284,7 +284,8 @@
"ERROR": "Error %TYPE%: %ERROR%", "ERROR": "Error %TYPE%: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importar clave OpenPGP", "POPUP_IMPORT_TITLE": "Importar clave OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "El Dominio ya existe", "DomainAlreadyExists": "El Dominio ya existe",
"DomainNotAllowed": "Dominio no permitido", "DomainNotAllowed": "Dominio no permitido",
"AccountNotAllowed": "La cuenta no está permitida", "AccountNotAllowed": "La cuenta no está permitida",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Error de sincronización de Contactos", "ContactsSyncError": "Error de sincronización de Contactos",
"CantGetMessageList": "No se puede obtener la lista de mensajes", "CantGetMessageList": "No se puede obtener la lista de mensajes",
"CantGetMessage": "No se puede obtener el mensaje", "CantGetMessage": "No se puede obtener el mensaje",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% viga: %ERROR%", "ERROR": "%TYPE% viga: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Impordi OpenPGP võti", "POPUP_IMPORT_TITLE": "Impordi OpenPGP võti",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domeen juba eksisteerib", "DomainAlreadyExists": "Domeen juba eksisteerib",
"DomainNotAllowed": "Domeenil ei ole lubatud siseneda", "DomainNotAllowed": "Domeenil ei ole lubatud siseneda",
"AccountNotAllowed": "Kasutajakontol ei ole lubatud siseneda", "AccountNotAllowed": "Kasutajakontol ei ole lubatud siseneda",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Kontaktide sünkroniseerimise viga", "ContactsSyncError": "Kontaktide sünkroniseerimise viga",
"CantGetMessageList": "Kirjade nimekirja laadimine ebaõnnestus", "CantGetMessageList": "Kirjade nimekirja laadimine ebaõnnestus",
"CantGetMessage": "Kirja laadimine ebaõnnestus", "CantGetMessage": "Kirja laadimine ebaõnnestus",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% errorea: %ERROR%", "ERROR": "%TYPE% errorea: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Inportatu OpenPGP gakoa", "POPUP_IMPORT_TITLE": "Inportatu OpenPGP gakoa",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domeinua jadanik existitzen da", "DomainAlreadyExists": "Domeinua jadanik existitzen da",
"DomainNotAllowed": "Domeinu ez baimendua", "DomainNotAllowed": "Domeinu ez baimendua",
"AccountNotAllowed": "Kontu ez baimendua", "AccountNotAllowed": "Kontu ez baimendua",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Kontaktu sinkronizazio errorea", "ContactsSyncError": "Kontaktu sinkronizazio errorea",
"CantGetMessageList": "Ezin da mezuen zerrenda eskuratu", "CantGetMessageList": "Ezin da mezuen zerrenda eskuratu",
"CantGetMessage": "Ezin da mezua eskuratu", "CantGetMessage": "Ezin da mezua eskuratu",

View file

@ -284,7 +284,8 @@
"ERROR": "خطای %TYPE%: %ERROR%", "ERROR": "خطای %TYPE%: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "واردکردن کلید OpenPGP", "POPUP_IMPORT_TITLE": "واردکردن کلید OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "دامنه در حال حاضر موجود است", "DomainAlreadyExists": "دامنه در حال حاضر موجود است",
"DomainNotAllowed": "به دامنه اجازه داده نشده است", "DomainNotAllowed": "به دامنه اجازه داده نشده است",
"AccountNotAllowed": "به حساب کاربری اجازه داده نشده است", "AccountNotAllowed": "به حساب کاربری اجازه داده نشده است",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "همگام‌سازی تماس‌ها با خطا همراه بود", "ContactsSyncError": "همگام‌سازی تماس‌ها با خطا همراه بود",
"CantGetMessageList": "امکان دریافت لیست پیام‌ها نیست", "CantGetMessageList": "امکان دریافت لیست پیام‌ها نیست",
"CantGetMessage": "امکان دریافت پیام نیست", "CantGetMessage": "امکان دریافت پیام نیست",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% virhe: %ERROR%", "ERROR": "%TYPE% virhe: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Tuo OpenPGP avain", "POPUP_IMPORT_TITLE": "Tuo OpenPGP avain",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Verkkotunnus on jo olemassa", "DomainAlreadyExists": "Verkkotunnus on jo olemassa",
"DomainNotAllowed": "Verkkotunnus ei ole sallittu", "DomainNotAllowed": "Verkkotunnus ei ole sallittu",
"AccountNotAllowed": "Tili ei ole sallittu", "AccountNotAllowed": "Tili ei ole sallittu",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Yhteystietojen synkronointivirhe", "ContactsSyncError": "Yhteystietojen synkronointivirhe",
"CantGetMessageList": "Viestilistaa ei voi näyttää", "CantGetMessageList": "Viestilistaa ei voi näyttää",
"CantGetMessage": "Viestiä ei voi näyttää", "CantGetMessage": "Viestiä ei voi näyttää",

View file

@ -284,7 +284,8 @@
"ERROR": "Erreur %TYPE%: %ERROR%", "ERROR": "Erreur %TYPE%: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valable jusque", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importer la clef OpenPGP", "POPUP_IMPORT_TITLE": "Importer la clef OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Le domaine existe déjà", "DomainAlreadyExists": "Le domaine existe déjà",
"DomainNotAllowed": "Ce domaine n'est pas autorisé", "DomainNotAllowed": "Ce domaine n'est pas autorisé",
"AccountNotAllowed": "Ce compte n'est pas autorisé", "AccountNotAllowed": "Ce compte n'est pas autorisé",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Erreur de synchronisation des contacts", "ContactsSyncError": "Erreur de synchronisation des contacts",
"CantGetMessageList": "Impossible d'obtenir la liste des messages", "CantGetMessageList": "Impossible d'obtenir la liste des messages",
"CantGetMessage": "Impossible d'obtenir le message", "CantGetMessage": "Impossible d'obtenir le message",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% hiba: %ERROR%", "ERROR": "%TYPE% hiba: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "OpenPGP kulcs importálás", "POPUP_IMPORT_TITLE": "OpenPGP kulcs importálás",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "A domain már létezik", "DomainAlreadyExists": "A domain már létezik",
"DomainNotAllowed": "A domain nem engedélyezett", "DomainNotAllowed": "A domain nem engedélyezett",
"AccountNotAllowed": "A fiók 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", "ContactsSyncError": "Hiba lépett fel a névjegyek szinkronizálása közben",
"CantGetMessageList": "Nem tudom letölteni az üzenetlistát", "CantGetMessageList": "Nem tudom letölteni az üzenetlistát",
"CantGetMessage": "Nem tudom letölteni az üzenetet", "CantGetMessage": "Nem tudom letölteni az üzenetet",

View file

@ -284,7 +284,8 @@
"ERROR": "Kesalahan %TYPE%: %ERROR%", "ERROR": "Kesalahan %TYPE%: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Impor kunci OpenPGP", "POPUP_IMPORT_TITLE": "Impor kunci OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domain telah ada", "DomainAlreadyExists": "Domain telah ada",
"DomainNotAllowed": "Domain tidak diizinkan", "DomainNotAllowed": "Domain tidak diizinkan",
"AccountNotAllowed": "Akun ini tidak diizinkan", "AccountNotAllowed": "Akun ini tidak diizinkan",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Kesalahan sinkronisasi kontak", "ContactsSyncError": "Kesalahan sinkronisasi kontak",
"CantGetMessageList": "Gagal memperoleh daftar pesan", "CantGetMessageList": "Gagal memperoleh daftar pesan",
"CantGetMessage": "Gagal memperoleh pesan", "CantGetMessage": "Gagal memperoleh pesan",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% villa: %ERROR%", "ERROR": "%TYPE% villa: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Flytja inn OpenPGP-lykil", "POPUP_IMPORT_TITLE": "Flytja inn OpenPGP-lykil",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Lén er nú þegar til staðar", "DomainAlreadyExists": "Lén er nú þegar til staðar",
"DomainNotAllowed": "Lén ekki leyft", "DomainNotAllowed": "Lén ekki leyft",
"AccountNotAllowed": "Aðgangur er ekki leyfður", "AccountNotAllowed": "Aðgangur er ekki leyfður",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Villa í samstillingu tengiliða", "ContactsSyncError": "Villa í samstillingu tengiliða",
"CantGetMessageList": "Get ekki sótt skilaboðlista", "CantGetMessageList": "Get ekki sótt skilaboðlista",
"CantGetMessage": "Get ekki sótt skilaboð", "CantGetMessage": "Get ekki sótt skilaboð",

View file

@ -284,7 +284,8 @@
"ERROR": "Errore di %TYPE%: %ERROR%", "ERROR": "Errore di %TYPE%: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importa chiave OpenPGP", "POPUP_IMPORT_TITLE": "Importa chiave OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Il dominio esiste già", "DomainAlreadyExists": "Il dominio esiste già",
"DomainNotAllowed": "Il dominio non è autorizzato", "DomainNotAllowed": "Il dominio non è autorizzato",
"AccountNotAllowed": "L'account non è autorizzato", "AccountNotAllowed": "L'account non è autorizzato",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Errore durante la sincronizzazione dei contatti", "ContactsSyncError": "Errore durante la sincronizzazione dei contatti",
"CantGetMessageList": "Impossibile ottenere la lista dei messaggi", "CantGetMessageList": "Impossibile ottenere la lista dei messaggi",
"CantGetMessage": "Impossibile caricare il messaggio", "CantGetMessage": "Impossibile caricare il messaggio",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% エラー: %ERROR%", "ERROR": "%TYPE% エラー: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "OpenPGPキーをインポート", "POPUP_IMPORT_TITLE": "OpenPGPキーをインポート",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "ドメインが既に存在しています", "DomainAlreadyExists": "ドメインが既に存在しています",
"DomainNotAllowed": "ドメインは、許可されていません", "DomainNotAllowed": "ドメインは、許可されていません",
"AccountNotAllowed": "アカウントは、許可されていません", "AccountNotAllowed": "アカウントは、許可されていません",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "連絡先 同期 エラー", "ContactsSyncError": "連絡先 同期 エラー",
"CantGetMessageList": "メッセージ一覧が取得できません", "CantGetMessageList": "メッセージ一覧が取得できません",
"CantGetMessage": "メッセージを取得できません", "CantGetMessage": "メッセージを取得できません",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% 오류: %ERROR%", "ERROR": "%TYPE% 오류: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "OpenPGP 키 가져오기", "POPUP_IMPORT_TITLE": "OpenPGP 키 가져오기",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "이미 존재하는 도메인입니다.", "DomainAlreadyExists": "이미 존재하는 도메인입니다.",
"DomainNotAllowed": "허용된 도메인이 아닙니다.", "DomainNotAllowed": "허용된 도메인이 아닙니다.",
"AccountNotAllowed": "허용된 계정이 아닙니다.", "AccountNotAllowed": "허용된 계정이 아닙니다.",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "연락처 동기화 오류", "ContactsSyncError": "연락처 동기화 오류",
"CantGetMessageList": "메시지 목록을 불러 올 수 없습니다.", "CantGetMessageList": "메시지 목록을 불러 올 수 없습니다.",
"CantGetMessage": "메시지를 가져올 수 없습니다.", "CantGetMessage": "메시지를 가져올 수 없습니다.",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% klaida: %ERROR%", "ERROR": "%TYPE% klaida: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importuoti OpenPGP raktą", "POPUP_IMPORT_TITLE": "Importuoti OpenPGP raktą",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Subdomenas jau egzistuoja", "DomainAlreadyExists": "Subdomenas jau egzistuoja",
"DomainNotAllowed": "Šis subdomenas neleidžiamas", "DomainNotAllowed": "Šis subdomenas neleidžiamas",
"AccountNotAllowed": "Paskyra neleidžiama", "AccountNotAllowed": "Paskyra neleidžiama",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Kontaktų sinchronizavimo klaida", "ContactsSyncError": "Kontaktų sinchronizavimo klaida",
"CantGetMessageList": "Nepavyksta gauti laiškų sąrašo", "CantGetMessageList": "Nepavyksta gauti laiškų sąrašo",
"CantGetMessage": "Nepavyksta gauti laiško", "CantGetMessage": "Nepavyksta gauti laiško",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% error: %ERROR%", "ERROR": "%TYPE% error: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Import OpenPGP key", "POPUP_IMPORT_TITLE": "Import OpenPGP key",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domeņes jau eksistē", "DomainAlreadyExists": "Domeņes jau eksistē",
"DomainNotAllowed": "Šis domēns nav atļauts", "DomainNotAllowed": "Šis domēns nav atļauts",
"AccountNotAllowed": "Account is not allowed", "AccountNotAllowed": "Account is not allowed",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Contacts synchronization error", "ContactsSyncError": "Contacts synchronization error",
"CantGetMessageList": "Nevar ielādēt ziņojumu sarakstu", "CantGetMessageList": "Nevar ielādēt ziņojumu sarakstu",
"CantGetMessage": "Nevar ielādēt ziņojumu", "CantGetMessage": "Nevar ielādēt ziņojumu",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE%-feil: %ERROR%", "ERROR": "%TYPE%-feil: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importer OpenPGP-nøkkel", "POPUP_IMPORT_TITLE": "Importer OpenPGP-nøkkel",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domenet finnes allerede", "DomainAlreadyExists": "Domenet finnes allerede",
"DomainNotAllowed": "Dette domenet tillates ikke", "DomainNotAllowed": "Dette domenet tillates ikke",
"AccountNotAllowed": "Denne kontoen tillates ikke", "AccountNotAllowed": "Denne kontoen tillates ikke",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Synkronisering av kontakter mislyktes", "ContactsSyncError": "Synkronisering av kontakter mislyktes",
"CantGetMessageList": "Klarte ikke å hente liste over meldinger", "CantGetMessageList": "Klarte ikke å hente liste over meldinger",
"CantGetMessage": "Klarte ikke å hente melding", "CantGetMessage": "Klarte ikke å hente melding",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% foutmelding: %ERROR%", "ERROR": "%TYPE% foutmelding: %ERROR%",
"CREATE_SELF_SIGNED": "Zelfondertekend certificaat aanmaken", "CREATE_SELF_SIGNED": "Zelfondertekend certificaat aanmaken",
"VALID_UNTIL": "Geldig tot", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importeer OpenPGP sleutel", "POPUP_IMPORT_TITLE": "Importeer OpenPGP sleutel",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domein bestaat reeds", "DomainAlreadyExists": "Domein bestaat reeds",
"DomainNotAllowed": "Domein is niet toegestaan", "DomainNotAllowed": "Domein is niet toegestaan",
"AccountNotAllowed": "Account is niet toegestaan", "AccountNotAllowed": "Account is niet toegestaan",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Contactpersonen synchronisatie fout", "ContactsSyncError": "Contactpersonen synchronisatie fout",
"CantGetMessageList": "Berichtenlijst kan niet worden opgehaald", "CantGetMessageList": "Berichtenlijst kan niet worden opgehaald",
"CantGetMessage": "Bericht kan niet worden opgehaald", "CantGetMessage": "Bericht kan niet worden opgehaald",

View file

@ -284,7 +284,8 @@
"ERROR": "Błąd %TYPE%: %ERROR%", "ERROR": "Błąd %TYPE%: %ERROR%",
"CREATE_SELF_SIGNED": "Utwórz samodzielnie podpisany certyfikat", "CREATE_SELF_SIGNED": "Utwórz samodzielnie podpisany certyfikat",
"VALID_UNTIL": "Ważny do", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importowanie klucza OpenPGP", "POPUP_IMPORT_TITLE": "Importowanie klucza OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domena już istnieje", "DomainAlreadyExists": "Domena już istnieje",
"DomainNotAllowed": "Domena jest niedozwolona", "DomainNotAllowed": "Domena jest niedozwolona",
"AccountNotAllowed": "Konto nie jest dozwolone", "AccountNotAllowed": "Konto nie jest dozwolone",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Błąd synchronizacji kontaktów", "ContactsSyncError": "Błąd synchronizacji kontaktów",
"CantGetMessageList": "Nie można pobrać listy wiadomości", "CantGetMessageList": "Nie można pobrać listy wiadomości",
"CantGetMessage": "Nie można pobrać wiadomości", "CantGetMessage": "Nie można pobrać wiadomości",

View file

@ -284,7 +284,8 @@
"ERROR": "Erro %TYPE%: %ERROR%", "ERROR": "Erro %TYPE%: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP", "POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "O domínio já existe", "DomainAlreadyExists": "O domínio já existe",
"DomainNotAllowed": "Este domínio não é permitido", "DomainNotAllowed": "Este domínio não é permitido",
"AccountNotAllowed": "Conta não permitida", "AccountNotAllowed": "Conta não permitida",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Erro na sincronização dos contatos", "ContactsSyncError": "Erro na sincronização dos contatos",
"CantGetMessageList": "Não foi possível obter a lista de mensagens", "CantGetMessageList": "Não foi possível obter a lista de mensagens",
"CantGetMessage": "Não foi possível obter a mensagem", "CantGetMessage": "Não foi possível obter a mensagem",

View file

@ -284,7 +284,8 @@
"ERROR": "Erro %TYPE%: %ERROR%", "ERROR": "Erro %TYPE%: %ERROR%",
"CREATE_SELF_SIGNED": "Criar auto-assinado", "CREATE_SELF_SIGNED": "Criar auto-assinado",
"VALID_UNTIL": "Válido até", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP", "POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "O domínio já existe", "DomainAlreadyExists": "O domínio já existe",
"DomainNotAllowed": "Este domínio não é permitido", "DomainNotAllowed": "Este domínio não é permitido",
"AccountNotAllowed": "Esta conta não é permitida", "AccountNotAllowed": "Esta conta não é permitida",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Erro na sincronização de contactos", "ContactsSyncError": "Erro na sincronização de contactos",
"CantGetMessageList": "Não é possível obter a lista de mensagens", "CantGetMessageList": "Não é possível obter a lista de mensagens",
"CantGetMessage": "Não é possível obter a mensagem", "CantGetMessage": "Não é possível obter a mensagem",

View file

@ -284,7 +284,8 @@
"ERROR": "Erro %TYPE%: %ERROR%", "ERROR": "Erro %TYPE%: %ERROR%",
"CREATE_SELF_SIGNED": "Criar auto-assinado", "CREATE_SELF_SIGNED": "Criar auto-assinado",
"VALID_UNTIL": "Válido até", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importar chave OpenPGP", "POPUP_IMPORT_TITLE": "Importar chave OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "O domínio já existe", "DomainAlreadyExists": "O domínio já existe",
"DomainNotAllowed": "Este domínio não é permitido", "DomainNotAllowed": "Este domínio não é permitido",
"AccountNotAllowed": "Esta conta não é permitida", "AccountNotAllowed": "Esta conta não é permitida",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Erro na sincronização de contactos", "ContactsSyncError": "Erro na sincronização de contactos",
"CantGetMessageList": "Não é possível obter a lista de mensagens", "CantGetMessageList": "Não é possível obter a lista de mensagens",
"CantGetMessage": "Não é possível obter a mensagem", "CantGetMessage": "Não é possível obter a mensagem",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% error: %ERROR%", "ERROR": "%TYPE% error: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Import OpenPGP key", "POPUP_IMPORT_TITLE": "Import OpenPGP key",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domeniu există deja.", "DomainAlreadyExists": "Domeniu există deja.",
"DomainNotAllowed": "Domeniul nu apartine de Wey5", "DomainNotAllowed": "Domeniul nu apartine de Wey5",
"AccountNotAllowed": "Contul nu are permisiunea de conectare", "AccountNotAllowed": "Contul nu are permisiunea de conectare",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Contacts synchronization error", "ContactsSyncError": "Contacts synchronization error",
"CantGetMessageList": "Nu găsesc o lista de scrisori", "CantGetMessageList": "Nu găsesc o lista de scrisori",
"CantGetMessage": "Nu pot obține scrisoarea. Încercați din nou", "CantGetMessage": "Nu pot obține scrisoarea. Încercați din nou",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% ошибка: %ERROR%", "ERROR": "%TYPE% ошибка: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Импорт OpenPGP ключа", "POPUP_IMPORT_TITLE": "Импорт OpenPGP ключа",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Домен уже существует", "DomainAlreadyExists": "Домен уже существует",
"DomainNotAllowed": "Данный домен не разрешен", "DomainNotAllowed": "Данный домен не разрешен",
"AccountNotAllowed": "Данный аккаунт не разрешен", "AccountNotAllowed": "Данный аккаунт не разрешен",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Ошибка синхронизации контактов", "ContactsSyncError": "Ошибка синхронизации контактов",
"CantGetMessageList": "Не могу получить список писем", "CantGetMessageList": "Не могу получить список писем",
"CantGetMessage": "Не могу получить письмо", "CantGetMessage": "Не могу получить письмо",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% error: %ERROR%", "ERROR": "%TYPE% error: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Importovať kľúč OpenPGP", "POPUP_IMPORT_TITLE": "Importovať kľúč OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Táto Doména už existuje", "DomainAlreadyExists": "Táto Doména už existuje",
"DomainNotAllowed": "Doména nie je povolená", "DomainNotAllowed": "Doména nie je povolená",
"AccountNotAllowed": "Účet nie je povolený", "AccountNotAllowed": "Účet nie je povolený",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Contacts synchronization error", "ContactsSyncError": "Contacts synchronization error",
"CantGetMessageList": "Chyba pri vytváraní zoznamu správ.", "CantGetMessageList": "Chyba pri vytváraní zoznamu správ.",
"CantGetMessage": "Správu sa nepodarilo načítať", "CantGetMessage": "Správu sa nepodarilo načítať",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% napaka: %ERROR%", "ERROR": "%TYPE% napaka: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Uvoz OpenPGP ključa", "POPUP_IMPORT_TITLE": "Uvoz OpenPGP ključa",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domena že obstaja", "DomainAlreadyExists": "Domena že obstaja",
"DomainNotAllowed": "Domena ni dovoljena", "DomainNotAllowed": "Domena ni dovoljena",
"AccountNotAllowed": "Račun ni dovoljen", "AccountNotAllowed": "Račun ni dovoljen",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Napaka sinhronizacije stikov", "ContactsSyncError": "Napaka sinhronizacije stikov",
"CantGetMessageList": "Ni mogoče pridobiti seznama sporočil", "CantGetMessageList": "Ni mogoče pridobiti seznama sporočil",
"CantGetMessage": "Ni mogoče pridobiti sporočila", "CantGetMessage": "Ni mogoče pridobiti sporočila",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE%-fel: %ERROR%", "ERROR": "%TYPE%-fel: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Import av OpenPGP-nyckel", "POPUP_IMPORT_TITLE": "Import av OpenPGP-nyckel",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Domänen finns redan", "DomainAlreadyExists": "Domänen finns redan",
"DomainNotAllowed": "Domän är inte tillåtet", "DomainNotAllowed": "Domän är inte tillåtet",
"AccountNotAllowed": "Konto är inte tillåtet", "AccountNotAllowed": "Konto är inte tillåtet",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Kontakt-synkroniseringsfel", "ContactsSyncError": "Kontakt-synkroniseringsfel",
"CantGetMessageList": "Kan inte hämta meddelandelista", "CantGetMessageList": "Kan inte hämta meddelandelista",
"CantGetMessage": "Kan inte hämta meddelande", "CantGetMessage": "Kan inte hämta meddelande",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% hatası: %ERROR%", "ERROR": "%TYPE% hatası: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "OpenPGP key'i içe aktar", "POPUP_IMPORT_TITLE": "OpenPGP key'i içe aktar",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Alanadı bulunuyor", "DomainAlreadyExists": "Alanadı bulunuyor",
"DomainNotAllowed": "Alan Adına izin verilmemiş", "DomainNotAllowed": "Alan Adına izin verilmemiş",
"AccountNotAllowed": "Hesaba izin verilmemiş", "AccountNotAllowed": "Hesaba izin verilmemiş",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Kişi listesi senkronizasyon hatası", "ContactsSyncError": "Kişi listesi senkronizasyon hatası",
"CantGetMessageList": "Mesaj listesi alınamadı", "CantGetMessageList": "Mesaj listesi alınamadı",
"CantGetMessage": "Mesaj alınamadı", "CantGetMessage": "Mesaj alınamadı",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% помилка: %ERROR%", "ERROR": "%TYPE% помилка: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Імпорт OpenPGP ключа", "POPUP_IMPORT_TITLE": "Імпорт OpenPGP ключа",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Домен вже існує", "DomainAlreadyExists": "Домен вже існує",
"DomainNotAllowed": "Цей домен заборонений", "DomainNotAllowed": "Цей домен заборонений",
"AccountNotAllowed": "Цей акаунт заборонений", "AccountNotAllowed": "Цей акаунт заборонений",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "Помилка синхронізації контактів", "ContactsSyncError": "Помилка синхронізації контактів",
"CantGetMessageList": "Не можу отримати список листів", "CantGetMessageList": "Не можу отримати список листів",
"CantGetMessage": "Не можу отримати листа", "CantGetMessage": "Не можу отримати листа",

View file

@ -284,7 +284,8 @@
"ERROR": "Lỗi %TYPE%: %ERROR%", "ERROR": "Lỗi %TYPE%: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "Nhập mật mã OpenPGP", "POPUP_IMPORT_TITLE": "Nhập mật mã OpenPGP",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "Tên miền đã tồn tại", "DomainAlreadyExists": "Tên miền đã tồn tại",
"DomainNotAllowed": "Tên miền không được cho phép truy cập", "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", "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ạ", "ContactsSyncError": "Lỗi đồng bộ danh bạ",
"CantGetMessageList": "Không thể lấy được danh sách thư", "CantGetMessageList": "Không thể lấy được danh sách thư",
"CantGetMessage": "Không lấy được thư", "CantGetMessage": "Không lấy được thư",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% 错误: %ERROR%", "ERROR": "%TYPE% 错误: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "导入 OpenPGP 密钥", "POPUP_IMPORT_TITLE": "导入 OpenPGP 密钥",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "域已经存在", "DomainAlreadyExists": "域已经存在",
"DomainNotAllowed": "不允许此域名", "DomainNotAllowed": "不允许此域名",
"AccountNotAllowed": "不允许此账户", "AccountNotAllowed": "不允许此账户",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "联系人同步错误", "ContactsSyncError": "联系人同步错误",
"CantGetMessageList": "无法获取邮件列表", "CantGetMessageList": "无法获取邮件列表",
"CantGetMessage": "无法获取邮件", "CantGetMessage": "无法获取邮件",

View file

@ -284,7 +284,8 @@
"ERROR": "%TYPE% 錯誤: %ERROR%", "ERROR": "%TYPE% 錯誤: %ERROR%",
"CREATE_SELF_SIGNED": "Create self-signed", "CREATE_SELF_SIGNED": "Create self-signed",
"VALID_UNTIL": "Valid until", "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": { "OPENPGP": {
"POPUP_IMPORT_TITLE": "匯入 OpenPGP 金鑰", "POPUP_IMPORT_TITLE": "匯入 OpenPGP 金鑰",
@ -585,6 +586,7 @@
"DomainAlreadyExists": "域名已經存在", "DomainAlreadyExists": "域名已經存在",
"DomainNotAllowed": "不可使用該域名", "DomainNotAllowed": "不可使用該域名",
"AccountNotAllowed": "不可使用該帳戶", "AccountNotAllowed": "不可使用該帳戶",
"CryptKeyError": "Your login passphrase has changed",
"ContactsSyncError": "連絡人同步錯誤", "ContactsSyncError": "連絡人同步錯誤",
"CantGetMessageList": "無法取得郵件清單", "CantGetMessageList": "無法取得郵件清單",
"CantGetMessage": "無法取得郵件", "CantGetMessage": "無法取得郵件",