{_t("You'll need to authenticate with the server to confirm the upgrade.")} @@ -411,9 +463,9 @@ export default class CreateSecretStorageDialog extends React.PureComponent { return
; + } + + _renderPhasePassPhraseConfirm() { + const AccessibleButton = sdk.getComponent('elements.AccessibleButton'); + const Field = sdk.getComponent('views.elements.Field'); + + let matchText; + let changeText; + if (this.state.passPhraseConfirm === this.state.passPhrase) { + matchText = _t("That matches!"); + changeText = _t("Use a different passphrase?"); + } else if (!this.state.passPhrase.startsWith(this.state.passPhraseConfirm)) { + // only tell them they're wrong if they've actually gone wrong. + // Security concious readers will note that if you left riot-web unattended + // on this screen, this would make it easy for a malicious person to guess + // your passphrase one letter at a time, but they could get this faster by + // just opening the browser's developer tools and reading it. + // Note that not having typed anything at all will not hit this clause and + // fall through so empty box === no hint. + matchText = _t("That doesn't match."); + changeText = _t("Go back to set it again."); } + let passPhraseMatch = null; + if (matchText) { + passPhraseMatch ={_t( - "Store your Recovery Key somewhere safe, it can be used to unlock your encrypted messages & data.", + "Your recovery key is a safety net - you can use it to restore " + + "access to your encrypted messages if you forget your recovery passphrase.", + )}
+{_t( + "Keep a copy of it somewhere secure, like a password manager or even a safe.", )}
{this._recoveryKey.encodedPrivateKey}
{_t("Unable to query secret storage status")}
{_t( - "Create a Recovery Key to store encryption keys & secrets with your account data. " + - "If you lose access to this login you’ll need it to unlock your data.", + "You can now verify your other devices, " + + "and other users to keep your chats safe.", )}
-{_t("Unable to set up secret storage")}
//
to start it with a slash.": "Truco: Comeza a mensaxe con //
para comezar cun trazo.",
+ "Send as message": "Enviar como mensaxe",
+ "Failed to connect to integration manager": "Fallou a conexión co xestor de integracións",
+ "Add some now": "Engade algún agora",
+ "Failed to revoke invite": "Fallo ao revogar o convite",
+ "Could not revoke the invite. The server may be experiencing a temporary problem or you do not have sufficient permissions to revoke the invite.": "Non se revogou o convite. O servidor podería estar experimentando un problema temporal ou non tes permisos suficientes para revogar o convite.",
+ "Revoke invite": "Revogar convite",
+ "Invited by %(sender)s": "Convidada por %(sender)s",
+ "Mark all as read": "Marcar todo como lido",
+ "Error updating main address": "Fallo ao actualizar o enderezo principal",
+ "There was an error updating the room's main address. It may not be allowed by the server or a temporary failure occurred.": "Algo fallou ao actualizar o enderezo principal da sala. Podería non estar autorizado polo servidor ou ser un fallo temporal.",
+ "Error creating address": "Fallo ao crear o enderezo",
+ "There was an error creating that address. It may not be allowed by the server or a temporary failure occurred.": "Algo fallou ao crear ese enderezo. Podería non estar autorizado polo servidor ou ser un fallo temporal.",
+ "You don't have permission to delete the address.": "Non tes permiso para eliminar o enderezo.",
+ "There was an error removing that address. It may no longer exist or a temporary error occurred.": "Houbo un erro ao eliminar o enderezo. Podería non existir ou ser un fallo temporal.",
+ "Error removing address": "Erro ao eliminar o enderezo",
+ "Main address": "Enderezo principal",
+ "Local address": "Enderezo local",
+ "Published Addresses": "Enderezos publicados",
+ "Other published addresses:": "Outros enderezos publicados:",
+ "No other published addresses yet, add one below": "Aínda non hai outros enderezos publicados, engade un embaixo",
+ "New published address (e.g. #alias:server)": "Novo enderezo publicado (ex. #alias:servidor)",
+ "Local Addresses": "Enderezos locais",
+ "Room Name": "Nome da sala",
+ "Room Topic": "Asunto da sala",
+ "Room avatar": "Avatar da sala",
+ "Waiting for you to accept on your other session…": "Agardando a que aceptes na túa outra sesión…",
+ "Waiting for %(displayName)s to accept…": "Agardando a que %(displayName)s acepte…",
+ "Accepting…": "Aceptando…",
+ "Start Verification": "Comezar a Verificación",
+ "Your messages are secured and only you and the recipient have the unique keys to unlock them.": "As túas mensaxes están seguras e só ti e o correspondente tedes as únicas chaves que as desbloquean.",
+ "In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "Nas salas cifradas, as túas mensaxes están seguras e só ti e o correspondente tedes as únicas chaves que as desbloquean.",
+ "Verify User": "Verificar Usuaria",
+ "For extra security, verify this user by checking a one-time code on both of your devices.": "Para maior seguridade, verifica esta usuaria comprobando o código temporal en dous dos teus dispositivos.",
+ "Your messages are not secure": "As túas mensaxes non están aseguradas",
+ "One of the following may be compromised:": "Un dos seguintes podería estar comprometido:",
+ "Your homeserver": "O teu servidor",
+ "The homeserver the user you’re verifying is connected to": "O servidor ao que a usuaria que estás a verificar está conectada",
+ "Yours, or the other users’ internet connection": "A túa, ou a conexión a internet da outra usuaria",
+ "Yours, or the other users’ session": "A túa, ou a sesión da outra usuaria",
+ "Trusted": "Confiable",
+ "Not trusted": "Non confiable",
+ "%(count)s verified sessions|other": "%(count)s sesións verificadas"
}
diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json
index 511dac34ac..b88a71a30b 100644
--- a/src/i18n/strings/hu.json
+++ b/src/i18n/strings/hu.json
@@ -2494,5 +2494,25 @@
"All settings": "Minden beállítás",
"Archived rooms": "Archivált szobák",
"Feedback": "Visszajelzés",
- "Account settings": "Fiók beállítása"
+ "Account settings": "Fiók beállítása",
+ "Light": "Világos",
+ "Dark": "Sötét",
+ "Customise your appearance": "Szabd személyre a megjelenítést",
+ "Appearance Settings only affect this Riot session.": "A megjelenítési beállítások csak erre a munkamenetre vonatkoznak.",
+ "Activity": "Aktivitás",
+ "A-Z": "A-Z",
+ "Recovery Key": "Visszaállítási Kulcs",
+ "This isn't the recovery key for your account": "Ez nem a fiókod visszaállítási kulcsa",
+ "This isn't a valid recovery key": "Ez nem egy érvényes visszaállítási kulcs",
+ "Looks good!": "Jól néz ki!",
+ "Use Recovery Key or Passphrase": "Használd a visszaállítási kulcsot vagy jelmondatot",
+ "Use Recovery Key": "Használd a Visszaállítási Kulcsot",
+ "Enter your Recovery Key or enter a Recovery Passphrase to continue.": "A továbblépéshez add meg a Visszaállítási kulcsot vagy a Visszaállítási jelmondatot.",
+ "Enter your Recovery Key to continue.": "A továbblépéshez add meg a Visszaállítási Kulcsot.",
+ "Upgrade your Recovery Key to store encryption keys & secrets with your account data. If you lose access to this login you'll need it to unlock your data.": "Fejleszd a Visszaállítási kulcsot, hogy a fiók adatokkal tárolhasd a titkosítási kulcsokat és jelszavakat. Szükséged lesz rá hogy hozzáférj az adataidhoz ha elveszted a hozzáférésed ehhez a bejelentkezéshez.",
+ "Store your Recovery Key somewhere safe, it can be used to unlock your encrypted messages & data.": "A Visszaállítási kulcsot tárold biztonságos helyen mivel felhasználható a titkosított üzenetekhez és adatokhoz való hozzáféréshez.",
+ "Create a Recovery Key to store encryption keys & secrets with your account data. If you lose access to this login you’ll need it to unlock your data.": "Készíts Visszaállítási kulcsot, hogy a fiók adatokkal tárolhasd a titkosítási kulcsokat és jelszavakat. Szükséged lesz rá hogy hozzáférj az adataidhoz ha elveszted a hozzáférésed ehhez a bejelentkezéshez.",
+ "Create a Recovery Key": "Visszaállítási kulcs készítése",
+ "Upgrade your Recovery Key": "A Visszaállítási kulcs fejlesztése",
+ "Store your Recovery Key": "Visszaállítási kulcs tárolása"
}
diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json
index 8272dc126b..2ffe6dfef2 100644
--- a/src/i18n/strings/it.json
+++ b/src/i18n/strings/it.json
@@ -2502,5 +2502,15 @@
"Leave Room": "Lascia stanza",
"Room options": "Opzioni stanza",
"Activity": "Attività",
- "A-Z": "A-Z"
+ "A-Z": "A-Z",
+ "Light": "Chiaro",
+ "Dark": "Scuro",
+ "Customise your appearance": "Personalizza l'aspetto",
+ "Appearance Settings only affect this Riot session.": "Le impostazioni dell'aspetto hanno effetto solo in questa sessione di Riot.",
+ "Recovery Key": "Chiave di recupero",
+ "This isn't the recovery key for your account": "Questa non è la chiave di recupero del tuo account",
+ "This isn't a valid recovery key": "Questa non è una chiave di ripristino valida",
+ "Looks good!": "Sembra giusta!",
+ "Use Recovery Key or Passphrase": "Usa la chiave o password di recupero",
+ "Use Recovery Key": "Usa chiave di recupero"
}
diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json
index 69909e942e..e0565ec3dd 100644
--- a/src/i18n/strings/nl.json
+++ b/src/i18n/strings/nl.json
@@ -2211,12 +2211,18 @@
"Are you sure you want to deactivate your account? This is irreversible.": "Weet u zeker dat u uw account wil sluiten? Dit is onomkeerbaar.",
"Confirm account deactivation": "Bevestig accountsluiting",
"Room name or address": "Gespreksnaam of -adres",
- "Joins room with given address": "Treedt tot het gesprek met het opgegeven adres toe",
+ "Joins room with given address": "Neem aan het gesprek met dat adres deel",
"Unrecognised room address:": "Gespreksadres niet herkend:",
"Help us improve Riot": "Help ons Riot nog beter te maken",
"Send