Use recovery passphrase
and recovery key
everywhere
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
parent
135cecbd4f
commit
a9a2999ccc
8 changed files with 49 additions and 53 deletions
|
@ -262,7 +262,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
|
||||||
let helpText;
|
let helpText;
|
||||||
if (this.state.zxcvbnResult) {
|
if (this.state.zxcvbnResult) {
|
||||||
if (this.state.zxcvbnResult.score >= PASSWORD_MIN_SCORE) {
|
if (this.state.zxcvbnResult.score >= PASSWORD_MIN_SCORE) {
|
||||||
helpText = _t("Great! This passphrase looks strong enough.");
|
helpText = _t("Great! This recovery passphrase looks strong enough.");
|
||||||
} else {
|
} else {
|
||||||
const suggestions = [];
|
const suggestions = [];
|
||||||
for (let i = 0; i < this.state.zxcvbnResult.feedback.suggestions.length; ++i) {
|
for (let i = 0; i < this.state.zxcvbnResult.feedback.suggestions.length; ++i) {
|
||||||
|
@ -287,7 +287,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
|
||||||
)}</p>
|
)}</p>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"We'll store an encrypted copy of your keys on our server. " +
|
"We'll store an encrypted copy of your keys on our server. " +
|
||||||
"Protect your backup with a passphrase to keep it secure.",
|
"Protect your backup with a recovery passphrase to keep it secure.",
|
||||||
)}</p>
|
)}</p>
|
||||||
<p>{_t("For maximum security, this should be different from your account password.")}</p>
|
<p>{_t("For maximum security, this should be different from your account password.")}</p>
|
||||||
|
|
||||||
|
@ -297,7 +297,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
|
||||||
onChange={this._onPassPhraseChange}
|
onChange={this._onPassPhraseChange}
|
||||||
value={this.state.passPhrase}
|
value={this.state.passPhrase}
|
||||||
className="mx_CreateKeyBackupDialog_passPhraseInput"
|
className="mx_CreateKeyBackupDialog_passPhraseInput"
|
||||||
placeholder={_t("Enter a passphrase...")}
|
placeholder={_t("Enter a recovery passphrase...")}
|
||||||
autoFocus={true}
|
autoFocus={true}
|
||||||
/>
|
/>
|
||||||
<div className="mx_CreateKeyBackupDialog_passPhraseHelp">
|
<div className="mx_CreateKeyBackupDialog_passPhraseHelp">
|
||||||
|
@ -354,7 +354,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
|
||||||
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
|
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
|
||||||
return <form onSubmit={this._onPassPhraseConfirmNextClick}>
|
return <form onSubmit={this._onPassPhraseConfirmNextClick}>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"Please enter your passphrase a second time to confirm.",
|
"Please enter your recovery passphrase a second time to confirm.",
|
||||||
)}</p>
|
)}</p>
|
||||||
<div className="mx_CreateKeyBackupDialog_primaryContainer">
|
<div className="mx_CreateKeyBackupDialog_primaryContainer">
|
||||||
<div className="mx_CreateKeyBackupDialog_passPhraseContainer">
|
<div className="mx_CreateKeyBackupDialog_passPhraseContainer">
|
||||||
|
@ -363,7 +363,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
|
||||||
onChange={this._onPassPhraseConfirmChange}
|
onChange={this._onPassPhraseConfirmChange}
|
||||||
value={this.state.passPhraseConfirm}
|
value={this.state.passPhraseConfirm}
|
||||||
className="mx_CreateKeyBackupDialog_passPhraseInput"
|
className="mx_CreateKeyBackupDialog_passPhraseInput"
|
||||||
placeholder={_t("Repeat your passphrase...")}
|
placeholder={_t("Repeat your recovery passphrase...")}
|
||||||
autoFocus={true}
|
autoFocus={true}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -383,7 +383,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
|
||||||
return <div>
|
return <div>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"Your recovery key is a safety net - you can use it to restore " +
|
"Your recovery key is a safety net - you can use it to restore " +
|
||||||
"access to your encrypted messages if you forget your passphrase.",
|
"access to your encrypted messages if you forget your recovery passphrase.",
|
||||||
)}</p>
|
)}</p>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"Keep a copy of it somewhere secure, like a password manager or even a safe.",
|
"Keep a copy of it somewhere secure, like a password manager or even a safe.",
|
||||||
|
@ -479,7 +479,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
|
||||||
case PHASE_PASSPHRASE:
|
case PHASE_PASSPHRASE:
|
||||||
return _t('Secure your backup with a passphrase');
|
return _t('Secure your backup with a passphrase');
|
||||||
case PHASE_PASSPHRASE_CONFIRM:
|
case PHASE_PASSPHRASE_CONFIRM:
|
||||||
return _t('Confirm your passphrase');
|
return _t('Confirm your recovery passphrase');
|
||||||
case PHASE_OPTOUT_CONFIRM:
|
case PHASE_OPTOUT_CONFIRM:
|
||||||
return _t('Warning!');
|
return _t('Warning!');
|
||||||
case PHASE_SHOWKEY:
|
case PHASE_SHOWKEY:
|
||||||
|
|
|
@ -57,8 +57,7 @@ export default class NewRecoveryMethodDialog extends React.PureComponent {
|
||||||
</span>;
|
</span>;
|
||||||
|
|
||||||
const newMethodDetected = <p>{_t(
|
const newMethodDetected = <p>{_t(
|
||||||
"A new recovery passphrase and key for Secure " +
|
"A new recovery passphrase and recovery key for Secure Messages have been detected.",
|
||||||
"Messages have been detected.",
|
|
||||||
)}</p>;
|
)}</p>;
|
||||||
|
|
||||||
const hackWarning = <p className="warning">{_t(
|
const hackWarning = <p className="warning">{_t(
|
||||||
|
|
|
@ -55,7 +55,7 @@ export default class RecoveryMethodRemovedDialog extends React.PureComponent {
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"This session has detected that your recovery passphrase and key " +
|
"This session has detected that your recovery passphrase and recovery key " +
|
||||||
"for Secure Messages have been removed.",
|
"for Secure Messages have been removed.",
|
||||||
)}</p>
|
)}</p>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
|
|
|
@ -462,7 +462,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
let helpText;
|
let helpText;
|
||||||
if (this.state.zxcvbnResult) {
|
if (this.state.zxcvbnResult) {
|
||||||
if (this.state.zxcvbnResult.score >= PASSWORD_MIN_SCORE) {
|
if (this.state.zxcvbnResult.score >= PASSWORD_MIN_SCORE) {
|
||||||
helpText = _t("Great! This passphrase looks strong enough.");
|
helpText = _t("Great! This recovery passphrase looks strong enough.");
|
||||||
} else {
|
} else {
|
||||||
// We take the warning from zxcvbn or failing that, the first
|
// We take the warning from zxcvbn or failing that, the first
|
||||||
// suggestion. In practice The first is generally the most relevant
|
// suggestion. In practice The first is generally the most relevant
|
||||||
|
@ -491,7 +491,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
"granting them access to encrypted messages and marking them as trusted for other users.",
|
"granting them access to encrypted messages and marking them as trusted for other users.",
|
||||||
)}</p>
|
)}</p>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"Secure your encryption keys with a passphrase. For maximum security " +
|
"Secure your encryption keys with a recovery passphrase. For maximum security " +
|
||||||
"this should be different to your account password:",
|
"this should be different to your account password:",
|
||||||
)}</p>
|
)}</p>
|
||||||
|
|
||||||
|
@ -501,7 +501,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
className="mx_CreateSecretStorageDialog_passPhraseField"
|
className="mx_CreateSecretStorageDialog_passPhraseField"
|
||||||
onChange={this._onPassPhraseChange}
|
onChange={this._onPassPhraseChange}
|
||||||
value={this.state.passPhrase}
|
value={this.state.passPhrase}
|
||||||
label={_t("Enter a passphrase")}
|
label={_t("Enter a recovery passphrase")}
|
||||||
autoFocus={true}
|
autoFocus={true}
|
||||||
autoComplete="new-password"
|
autoComplete="new-password"
|
||||||
/>
|
/>
|
||||||
|
@ -512,7 +512,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<LabelledToggleSwitch
|
<LabelledToggleSwitch
|
||||||
label={ _t("Back up my encryption keys, securing them with the same passphrase")}
|
label={ _t("Back up my encryption keys, securing them with the same recovery passphrase")}
|
||||||
onChange={this._onUseKeyBackupChange} value={this.state.useKeyBackup}
|
onChange={this._onUseKeyBackupChange} value={this.state.useKeyBackup}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -569,7 +569,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
|
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
|
||||||
return <form onSubmit={this._onPassPhraseConfirmNextClick}>
|
return <form onSubmit={this._onPassPhraseConfirmNextClick}>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"Enter your passphrase a second time to confirm it.",
|
"Enter your recovery passphrase a second time to confirm it.",
|
||||||
)}</p>
|
)}</p>
|
||||||
<div className="mx_CreateSecretStorageDialog_passPhraseContainer">
|
<div className="mx_CreateSecretStorageDialog_passPhraseContainer">
|
||||||
<Field
|
<Field
|
||||||
|
@ -577,7 +577,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
onChange={this._onPassPhraseConfirmChange}
|
onChange={this._onPassPhraseConfirmChange}
|
||||||
value={this.state.passPhraseConfirm}
|
value={this.state.passPhraseConfirm}
|
||||||
className="mx_CreateSecretStorageDialog_passPhraseField"
|
className="mx_CreateSecretStorageDialog_passPhraseField"
|
||||||
label={_t("Confirm your passphrase")}
|
label={_t("Confirm your recovery passphrase")}
|
||||||
autoFocus={true}
|
autoFocus={true}
|
||||||
autoComplete="new-password"
|
autoComplete="new-password"
|
||||||
/>
|
/>
|
||||||
|
@ -604,7 +604,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
return <div>
|
return <div>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"Your recovery key is a safety net - you can use it to restore " +
|
"Your recovery key is a safety net - you can use it to restore " +
|
||||||
"access to your encrypted messages if you forget your passphrase.",
|
"access to your encrypted messages if you forget your recovery passphrase.",
|
||||||
)}</p>
|
)}</p>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"Keep a copy of it somewhere secure, like a password manager or even a safe.",
|
"Keep a copy of it somewhere secure, like a password manager or even a safe.",
|
||||||
|
@ -703,7 +703,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent {
|
||||||
case PHASE_PASSPHRASE:
|
case PHASE_PASSPHRASE:
|
||||||
return _t('Set up encryption');
|
return _t('Set up encryption');
|
||||||
case PHASE_PASSPHRASE_CONFIRM:
|
case PHASE_PASSPHRASE_CONFIRM:
|
||||||
return _t('Confirm passphrase');
|
return _t('Confirm recovery passphrase');
|
||||||
case PHASE_CONFIRM_SKIP:
|
case PHASE_CONFIRM_SKIP:
|
||||||
return _t('Are you sure?');
|
return _t('Are you sure?');
|
||||||
case PHASE_SHOWKEY:
|
case PHASE_SHOWKEY:
|
||||||
|
|
|
@ -116,7 +116,7 @@ export default class SetupEncryptionBody extends React.Component {
|
||||||
"granting it access to encrypted messages.",
|
"granting it access to encrypted messages.",
|
||||||
)}</p>
|
)}</p>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"If you can’t access one, <button>use your recovery key or passphrase.</button>",
|
"If you can’t access one, <button>use your recovery key or recovery passphrase.</button>",
|
||||||
{}, {
|
{}, {
|
||||||
button: sub => <AccessibleButton element="span"
|
button: sub => <AccessibleButton element="span"
|
||||||
className="mx_linkButton"
|
className="mx_linkButton"
|
||||||
|
|
|
@ -283,7 +283,7 @@ export default class RestoreKeyBackupDialog extends React.PureComponent {
|
||||||
title = _t("Recovery key mismatch");
|
title = _t("Recovery key mismatch");
|
||||||
content = <div>
|
content = <div>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"Backup could not be decrypted with this key: " +
|
"Backup could not be decrypted with this recovery key: " +
|
||||||
"please verify that you entered the correct recovery key.",
|
"please verify that you entered the correct recovery key.",
|
||||||
)}</p>
|
)}</p>
|
||||||
</div>;
|
</div>;
|
||||||
|
@ -291,7 +291,7 @@ export default class RestoreKeyBackupDialog extends React.PureComponent {
|
||||||
title = _t("Incorrect recovery passphrase");
|
title = _t("Incorrect recovery passphrase");
|
||||||
content = <div>
|
content = <div>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"Backup could not be decrypted with this passphrase: " +
|
"Backup could not be decrypted with this recovery passphrase: " +
|
||||||
"please verify that you entered the correct recovery passphrase.",
|
"please verify that you entered the correct recovery passphrase.",
|
||||||
)}</p>
|
)}</p>
|
||||||
</div>;
|
</div>;
|
||||||
|
|
|
@ -119,14 +119,13 @@ export default class AccessSecretStorageDialog extends React.PureComponent {
|
||||||
if (hasPassphrase && !this.state.forceRecoveryKey) {
|
if (hasPassphrase && !this.state.forceRecoveryKey) {
|
||||||
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
|
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
|
||||||
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
|
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
|
||||||
title = _t("Enter secret storage passphrase");
|
title = _t("Enter recovery passphrase");
|
||||||
|
|
||||||
let keyStatus;
|
let keyStatus;
|
||||||
if (this.state.keyMatches === false) {
|
if (this.state.keyMatches === false) {
|
||||||
keyStatus = <div className="mx_AccessSecretStorageDialog_keyStatus">
|
keyStatus = <div className="mx_AccessSecretStorageDialog_keyStatus">
|
||||||
{"\uD83D\uDC4E "}{_t(
|
{"\uD83D\uDC4E "}{_t(
|
||||||
"Unable to access secret storage. Please verify that you " +
|
"Unable to access. Please verify that you entered the correct recovery passphrase.",
|
||||||
"entered the correct passphrase.",
|
|
||||||
)}
|
)}
|
||||||
</div>;
|
</div>;
|
||||||
} else {
|
} else {
|
||||||
|
@ -141,7 +140,7 @@ export default class AccessSecretStorageDialog extends React.PureComponent {
|
||||||
)}</p>
|
)}</p>
|
||||||
<p>{_t(
|
<p>{_t(
|
||||||
"Access your secure message history and your cross-signing " +
|
"Access your secure message history and your cross-signing " +
|
||||||
"identity for verifying other sessions by entering your passphrase.",
|
"identity for verifying other sessions by entering your recovery passphrase.",
|
||||||
)}</p>
|
)}</p>
|
||||||
|
|
||||||
<form className="mx_AccessSecretStorageDialog_primaryContainer" onSubmit={this._onPassPhraseNext}>
|
<form className="mx_AccessSecretStorageDialog_primaryContainer" onSubmit={this._onPassPhraseNext}>
|
||||||
|
@ -164,7 +163,7 @@ export default class AccessSecretStorageDialog extends React.PureComponent {
|
||||||
/>
|
/>
|
||||||
</form>
|
</form>
|
||||||
{_t(
|
{_t(
|
||||||
"If you've forgotten your passphrase you can "+
|
"If you've forgotten your recovery passphrase you can "+
|
||||||
"<button1>use your recovery key</button1> or " +
|
"<button1>use your recovery key</button1> or " +
|
||||||
"<button2>set up new recovery options</button2>."
|
"<button2>set up new recovery options</button2>."
|
||||||
, {}, {
|
, {}, {
|
||||||
|
@ -183,7 +182,7 @@ export default class AccessSecretStorageDialog extends React.PureComponent {
|
||||||
})}
|
})}
|
||||||
</div>;
|
</div>;
|
||||||
} else {
|
} else {
|
||||||
title = _t("Enter secret storage recovery key");
|
title = _t("Enter recovery key");
|
||||||
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
|
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
|
||||||
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
|
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
|
||||||
|
|
||||||
|
@ -193,8 +192,7 @@ export default class AccessSecretStorageDialog extends React.PureComponent {
|
||||||
} else if (this.state.keyMatches === false) {
|
} else if (this.state.keyMatches === false) {
|
||||||
keyStatus = <div className="mx_AccessSecretStorageDialog_keyStatus">
|
keyStatus = <div className="mx_AccessSecretStorageDialog_keyStatus">
|
||||||
{"\uD83D\uDC4E "}{_t(
|
{"\uD83D\uDC4E "}{_t(
|
||||||
"Unable to access secret storage. Please verify that you " +
|
"Unable to access. Please verify that you entered the correct recovery key.",
|
||||||
"entered the correct recovery key.",
|
|
||||||
)}
|
)}
|
||||||
</div>;
|
</div>;
|
||||||
} else if (this.state.recoveryKeyValid) {
|
} else if (this.state.recoveryKeyValid) {
|
||||||
|
|
|
@ -1778,32 +1778,30 @@
|
||||||
"Remember my selection for this widget": "Remember my selection for this widget",
|
"Remember my selection for this widget": "Remember my selection for this widget",
|
||||||
"Allow": "Allow",
|
"Allow": "Allow",
|
||||||
"Deny": "Deny",
|
"Deny": "Deny",
|
||||||
"Enter secret storage passphrase": "Enter secret storage passphrase",
|
"Enter recovery passphrase": "Enter recovery passphrase",
|
||||||
"Unable to access secret storage. Please verify that you entered the correct passphrase.": "Unable to access secret storage. Please verify that you entered the correct passphrase.",
|
"Unable to access. Please verify that you entered the correct recovery passphrase.": "Unable to access. Please verify that you entered the correct recovery passphrase.",
|
||||||
"<b>Warning</b>: You should only access secret storage from a trusted computer.": "<b>Warning</b>: You should only access secret storage from a trusted computer.",
|
"<b>Warning</b>: You should only access secret storage from a trusted computer.": "<b>Warning</b>: You should only access secret storage from a trusted computer.",
|
||||||
"Access your secure message history and your cross-signing identity for verifying other sessions by entering your passphrase.": "Access your secure message history and your cross-signing identity for verifying other sessions by entering your passphrase.",
|
"Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery passphrase.": "Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery passphrase.",
|
||||||
"If you've forgotten your passphrase you can <button1>use your recovery key</button1> or <button2>set up new recovery options</button2>.": "If you've forgotten your passphrase you can <button1>use your recovery key</button1> or <button2>set up new recovery options</button2>.",
|
"If you've forgotten your recovery passphrase you can <button1>use your recovery key</button1> or <button2>set up new recovery options</button2>.": "If you've forgotten your recovery passphrase you can <button1>use your recovery key</button1> or <button2>set up new recovery options</button2>.",
|
||||||
"Enter secret storage recovery key": "Enter secret storage recovery key",
|
"Enter recovery key": "Enter recovery key",
|
||||||
"Unable to access secret storage. Please verify that you entered the correct recovery key.": "Unable to access secret storage. Please verify that you entered the correct recovery key.",
|
"Unable to access. Please verify that you entered the correct recovery key.": "Unable to access. Please verify that you entered the correct recovery key.",
|
||||||
"This looks like a valid recovery key!": "This looks like a valid recovery key!",
|
"This looks like a valid recovery key!": "This looks like a valid recovery key!",
|
||||||
"Not a valid recovery key": "Not a valid recovery key",
|
"Not a valid recovery key": "Not a valid recovery key",
|
||||||
"Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery key.": "Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery key.",
|
"Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery key.": "Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery key.",
|
||||||
"If you've forgotten your recovery key you can <button>set up new recovery options</button>.": "If you've forgotten your recovery key you can <button>set up new recovery options</button>.",
|
"If you've forgotten your recovery key you can <button>set up new recovery options</button>.": "If you've forgotten your recovery key you can <button>set up new recovery options</button>.",
|
||||||
"Unable to load backup status": "Unable to load backup status",
|
"Unable to load backup status": "Unable to load backup status",
|
||||||
"Recovery key mismatch": "Recovery key mismatch",
|
"Recovery key mismatch": "Recovery key mismatch",
|
||||||
"Backup could not be decrypted with this key: please verify that you entered the correct recovery key.": "Backup could not be decrypted with this key: please verify that you entered the correct recovery key.",
|
"Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.": "Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.",
|
||||||
"Incorrect recovery passphrase": "Incorrect recovery passphrase",
|
"Incorrect recovery passphrase": "Incorrect recovery passphrase",
|
||||||
"Backup could not be decrypted with this passphrase: please verify that you entered the correct recovery passphrase.": "Backup could not be decrypted with this passphrase: please verify that you entered the correct recovery passphrase.",
|
"Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.": "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.",
|
||||||
"Unable to restore backup": "Unable to restore backup",
|
"Unable to restore backup": "Unable to restore backup",
|
||||||
"No backup found!": "No backup found!",
|
"No backup found!": "No backup found!",
|
||||||
"Backup restored": "Backup restored",
|
"Backup restored": "Backup restored",
|
||||||
"Failed to decrypt %(failedCount)s sessions!": "Failed to decrypt %(failedCount)s sessions!",
|
"Failed to decrypt %(failedCount)s sessions!": "Failed to decrypt %(failedCount)s sessions!",
|
||||||
"Restored %(sessionCount)s session keys": "Restored %(sessionCount)s session keys",
|
"Restored %(sessionCount)s session keys": "Restored %(sessionCount)s session keys",
|
||||||
"Enter recovery passphrase": "Enter recovery passphrase",
|
|
||||||
"<b>Warning</b>: you should only set up key backup from a trusted computer.": "<b>Warning</b>: you should only set up key backup from a trusted computer.",
|
"<b>Warning</b>: you should only set up key backup from a trusted computer.": "<b>Warning</b>: you should only set up key backup from a trusted computer.",
|
||||||
"Access your secure message history and set up secure messaging by entering your recovery passphrase.": "Access your secure message history and set up secure messaging by entering your recovery passphrase.",
|
"Access your secure message history and set up secure messaging by entering your recovery passphrase.": "Access your secure message history and set up secure messaging by entering your recovery passphrase.",
|
||||||
"If you've forgotten your recovery passphrase you can <button1>use your recovery key</button1> or <button2>set up new recovery options</button2>": "If you've forgotten your recovery passphrase you can <button1>use your recovery key</button1> or <button2>set up new recovery options</button2>",
|
"If you've forgotten your recovery passphrase you can <button1>use your recovery key</button1> or <button2>set up new recovery options</button2>": "If you've forgotten your recovery passphrase you can <button1>use your recovery key</button1> or <button2>set up new recovery options</button2>",
|
||||||
"Enter recovery key": "Enter recovery key",
|
|
||||||
"<b>Warning</b>: You should only set up key backup from a trusted computer.": "<b>Warning</b>: You should only set up key backup from a trusted computer.",
|
"<b>Warning</b>: You should only set up key backup from a trusted computer.": "<b>Warning</b>: You should only set up key backup from a trusted computer.",
|
||||||
"Access your secure message history and set up secure messaging by entering your recovery key.": "Access your secure message history and set up secure messaging by entering your recovery key.",
|
"Access your secure message history and set up secure messaging by entering your recovery key.": "Access your secure message history and set up secure messaging by entering your recovery key.",
|
||||||
"If you've forgotten your recovery key you can <button>set up new recovery options</button>": "If you've forgotten your recovery key you can <button>set up new recovery options</button>",
|
"If you've forgotten your recovery key you can <button>set up new recovery options</button>": "If you've forgotten your recovery key you can <button>set up new recovery options</button>",
|
||||||
|
@ -2119,7 +2117,7 @@
|
||||||
"Registration Successful": "Registration Successful",
|
"Registration Successful": "Registration Successful",
|
||||||
"Create your account": "Create your account",
|
"Create your account": "Create your account",
|
||||||
"Use an existing session to verify this one, granting it access to encrypted messages.": "Use an existing session to verify this one, granting it access to encrypted messages.",
|
"Use an existing session to verify this one, granting it access to encrypted messages.": "Use an existing session to verify this one, granting it access to encrypted messages.",
|
||||||
"If you can’t access one, <button>use your recovery key or passphrase.</button>": "If you can’t access one, <button>use your recovery key or passphrase.</button>",
|
"If you can’t access one, <button>use your recovery key or recovery passphrase.</button>": "If you can’t access one, <button>use your recovery key or recovery passphrase.</button>",
|
||||||
"Use your other device to continue…": "Use your other device to continue…",
|
"Use your other device to continue…": "Use your other device to continue…",
|
||||||
"Your new session is now verified. It has access to your encrypted messages, and other users will see it as trusted.": "Your new session is now verified. It has access to your encrypted messages, and other users will see it as trusted.",
|
"Your new session is now verified. It has access to your encrypted messages, and other users will see it as trusted.": "Your new session is now verified. It has access to your encrypted messages, and other users will see it as trusted.",
|
||||||
"Your new session is now verified. Other users will see it as trusted.": "Your new session is now verified. Other users will see it as trusted.",
|
"Your new session is now verified. Other users will see it as trusted.": "Your new session is now verified. Other users will see it as trusted.",
|
||||||
|
@ -2182,18 +2180,18 @@
|
||||||
"Restore": "Restore",
|
"Restore": "Restore",
|
||||||
"You'll need to authenticate with the server to confirm the upgrade.": "You'll need to authenticate with the server to confirm the upgrade.",
|
"You'll need to authenticate with the server to confirm the upgrade.": "You'll need to authenticate with the server to confirm the upgrade.",
|
||||||
"Upgrade this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.": "Upgrade this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.",
|
"Upgrade this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.": "Upgrade this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.",
|
||||||
"Great! This passphrase looks strong enough.": "Great! This passphrase looks strong enough.",
|
"Great! This recovery passphrase looks strong enough.": "Great! This recovery passphrase looks strong enough.",
|
||||||
"Set up encryption on this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.": "Set up encryption on this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.",
|
"Set up encryption on this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.": "Set up encryption on this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.",
|
||||||
"Secure your encryption keys with a passphrase. For maximum security this should be different to your account password:": "Secure your encryption keys with a passphrase. For maximum security this should be different to your account password:",
|
"Secure your encryption keys with a recovery passphrase. For maximum security this should be different to your account password:": "Secure your encryption keys with a recovery passphrase. For maximum security this should be different to your account password:",
|
||||||
"Enter a passphrase": "Enter a passphrase",
|
"Enter a recovery passphrase": "Enter a recovery passphrase",
|
||||||
"Back up my encryption keys, securing them with the same passphrase": "Back up my encryption keys, securing them with the same passphrase",
|
"Back up my encryption keys, securing them with the same recovery passphrase": "Back up my encryption keys, securing them with the same recovery passphrase",
|
||||||
"Set up with a recovery key": "Set up with a recovery key",
|
"Set up with a recovery key": "Set up with a recovery key",
|
||||||
"That matches!": "That matches!",
|
"That matches!": "That matches!",
|
||||||
"That doesn't match.": "That doesn't match.",
|
"That doesn't match.": "That doesn't match.",
|
||||||
"Go back to set it again.": "Go back to set it again.",
|
"Go back to set it again.": "Go back to set it again.",
|
||||||
"Enter your passphrase a second time to confirm it.": "Enter your passphrase a second time to confirm it.",
|
"Enter your recovery passphrase a second time to confirm it.": "Enter your recovery passphrase a second time to confirm it.",
|
||||||
"Confirm your passphrase": "Confirm your passphrase",
|
"Confirm your recovery passphrase": "Confirm your recovery passphrase",
|
||||||
"Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your passphrase.": "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your passphrase.",
|
"Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.": "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.",
|
||||||
"Keep a copy of it somewhere secure, like a password manager or even a safe.": "Keep a copy of it somewhere secure, like a password manager or even a safe.",
|
"Keep a copy of it somewhere secure, like a password manager or even a safe.": "Keep a copy of it somewhere secure, like a password manager or even a safe.",
|
||||||
"Your recovery key": "Your recovery key",
|
"Your recovery key": "Your recovery key",
|
||||||
"Copy": "Copy",
|
"Copy": "Copy",
|
||||||
|
@ -2205,15 +2203,16 @@
|
||||||
"<b>Copy it</b> to your personal cloud storage": "<b>Copy it</b> to your personal cloud storage",
|
"<b>Copy it</b> to your personal cloud storage": "<b>Copy it</b> to your personal cloud storage",
|
||||||
"You can now verify your other devices, and other users to keep your chats safe.": "You can now verify your other devices, and other users to keep your chats safe.",
|
"You can now verify your other devices, and other users to keep your chats safe.": "You can now verify your other devices, and other users to keep your chats safe.",
|
||||||
"Upgrade your encryption": "Upgrade your encryption",
|
"Upgrade your encryption": "Upgrade your encryption",
|
||||||
|
"Confirm recovery passphrase": "Confirm recovery passphrase",
|
||||||
"Make a copy of your recovery key": "Make a copy of your recovery key",
|
"Make a copy of your recovery key": "Make a copy of your recovery key",
|
||||||
"You're done!": "You're done!",
|
"You're done!": "You're done!",
|
||||||
"Unable to set up secret storage": "Unable to set up secret storage",
|
"Unable to set up secret storage": "Unable to set up secret storage",
|
||||||
"Retry": "Retry",
|
"Retry": "Retry",
|
||||||
"We'll store an encrypted copy of your keys on our server. Protect your backup with a passphrase to keep it secure.": "We'll store an encrypted copy of your keys on our server. Protect your backup with a passphrase to keep it secure.",
|
"We'll store an encrypted copy of your keys on our server. Protect your backup with a recovery passphrase to keep it secure.": "We'll store an encrypted copy of your keys on our server. Protect your backup with a recovery passphrase to keep it secure.",
|
||||||
"For maximum security, this should be different from your account password.": "For maximum security, this should be different from your account password.",
|
"For maximum security, this should be different from your account password.": "For maximum security, this should be different from your account password.",
|
||||||
"Enter a passphrase...": "Enter a passphrase...",
|
"Enter a recovery passphrase...": "Enter a recovery passphrase...",
|
||||||
"Please enter your passphrase a second time to confirm.": "Please enter your passphrase a second time to confirm.",
|
"Please enter your recovery passphrase a second time to confirm.": "Please enter your recovery passphrase a second time to confirm.",
|
||||||
"Repeat your passphrase...": "Repeat your passphrase...",
|
"Repeat your recovery passphrase...": "Repeat your recovery passphrase...",
|
||||||
"Your keys are being backed up (the first backup could take a few minutes).": "Your keys are being backed up (the first backup could take a few minutes).",
|
"Your keys are being backed up (the first backup could take a few minutes).": "Your keys are being backed up (the first backup could take a few minutes).",
|
||||||
"Without setting up Secure Message Recovery, you won't be able to restore your encrypted message history if you log out or use another session.": "Without setting up Secure Message Recovery, you won't be able to restore your encrypted message history if you log out or use another session.",
|
"Without setting up Secure Message Recovery, you won't be able to restore your encrypted message history if you log out or use another session.": "Without setting up Secure Message Recovery, you won't be able to restore your encrypted message history if you log out or use another session.",
|
||||||
"Set up Secure Message Recovery": "Set up Secure Message Recovery",
|
"Set up Secure Message Recovery": "Set up Secure Message Recovery",
|
||||||
|
@ -2227,13 +2226,13 @@
|
||||||
"Set up": "Set up",
|
"Set up": "Set up",
|
||||||
"Don't ask again": "Don't ask again",
|
"Don't ask again": "Don't ask again",
|
||||||
"New Recovery Method": "New Recovery Method",
|
"New Recovery Method": "New Recovery Method",
|
||||||
"A new recovery passphrase and key for Secure Messages have been detected.": "A new recovery passphrase and key for Secure Messages have been detected.",
|
"A new recovery passphrase and recovery key for Secure Messages have been detected.": "A new recovery passphrase and recovery key for Secure Messages have been detected.",
|
||||||
"If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.",
|
"If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.",
|
||||||
"This session is encrypting history using the new recovery method.": "This session is encrypting history using the new recovery method.",
|
"This session is encrypting history using the new recovery method.": "This session is encrypting history using the new recovery method.",
|
||||||
"Go to Settings": "Go to Settings",
|
"Go to Settings": "Go to Settings",
|
||||||
"Set up Secure Messages": "Set up Secure Messages",
|
"Set up Secure Messages": "Set up Secure Messages",
|
||||||
"Recovery Method Removed": "Recovery Method Removed",
|
"Recovery Method Removed": "Recovery Method Removed",
|
||||||
"This session has detected that your recovery passphrase and key for Secure Messages have been removed.": "This session has detected that your recovery passphrase and key for Secure Messages have been removed.",
|
"This session has detected that your recovery passphrase and recovery key for Secure Messages have been removed.": "This session has detected that your recovery passphrase and recovery key for Secure Messages have been removed.",
|
||||||
"If you did this accidentally, you can setup Secure Messages on this session which will re-encrypt this session's message history with a new recovery method.": "If you did this accidentally, you can setup Secure Messages on this session which will re-encrypt this session's message history with a new recovery method.",
|
"If you did this accidentally, you can setup Secure Messages on this session which will re-encrypt this session's message history with a new recovery method.": "If you did this accidentally, you can setup Secure Messages on this session which will re-encrypt this session's message history with a new recovery method.",
|
||||||
"If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.",
|
"If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.",
|
||||||
"If disabled, messages from encrypted rooms won't appear in search results.": "If disabled, messages from encrypted rooms won't appear in search results.",
|
"If disabled, messages from encrypted rooms won't appear in search results.": "If disabled, messages from encrypted rooms won't appear in search results.",
|
||||||
|
|
Loading…
Reference in a new issue