Localazy Download (#32808)
* [create-pull-request] automated change * test: update SC tests * test: update SC screenshots * test: update EW snapshots * test: update EW tests * test: update EW e2e tests --------- Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com> Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
@@ -57,7 +57,7 @@ test.describe("Encryption state after registration", () => {
|
||||
await page.getByRole("textbox", { name: "Name" }).fill("test room");
|
||||
await page.getByRole("button", { name: "Create room" }).click();
|
||||
|
||||
await expect(page.getByRole("heading", { name: "Set up recovery" })).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "Back up your chats" })).toBeVisible();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ test.describe("Complete security", () => {
|
||||
async ({ page, credentials, homeserver }) => {
|
||||
await createBot(page, homeserver, credentials, true);
|
||||
await logIntoElement(page, credentials);
|
||||
await expect(page.getByRole("heading", { name: "Confirm your identity" })).toBeVisible();
|
||||
await expect(page.getByRole("heading", { name: "Confirm your digital identity" })).toBeVisible();
|
||||
await expect(page.getByRole("main")).toMatchScreenshot("complete-security.png");
|
||||
},
|
||||
);
|
||||
|
||||
@@ -45,6 +45,8 @@ test.describe("Cryptography", function () {
|
||||
|
||||
// Log in again, and see how the message looks.
|
||||
await logIntoElement(page, credentials);
|
||||
// Dismiss the "Back up your chats" toast, otherwise it gets in the way of clicking the room list
|
||||
await page.getByRole("button", { name: "Dismiss" }).click();
|
||||
await app.viewRoomByName("Test room");
|
||||
const lastTile = page.locator(".mx_EventTile").last();
|
||||
await expect(lastTile).toContainText("Historical messages are not available on this device");
|
||||
|
||||
@@ -42,7 +42,7 @@ test.describe("Dehydration", () => {
|
||||
await page.getByRole("button", { name: "Continue" }).click();
|
||||
|
||||
// Set up recovery
|
||||
await page.getByRole("button", { name: "Set up recovery" }).click();
|
||||
await page.getByRole("button", { name: "Get recovery key" }).click();
|
||||
await page.getByRole("button", { name: "Continue" }).click();
|
||||
const recoveryKey = await page.getByTestId("recoveryKey").innerText();
|
||||
await page.getByRole("button", { name: "Continue" }).click();
|
||||
@@ -59,14 +59,14 @@ test.describe("Dehydration", () => {
|
||||
await expect(sessionsTab.getByText("Dehydrated device")).not.toBeVisible();
|
||||
});
|
||||
|
||||
test("'Set up recovery' creates dehydrated device", async ({ app, credentials, page }) => {
|
||||
test("'Get recovery key' creates dehydrated device", async ({ app, credentials, page }) => {
|
||||
await logIntoElement(page, credentials);
|
||||
|
||||
const settingsDialogLocator = await app.settings.openUserSettings("Encryption");
|
||||
await settingsDialogLocator.getByRole("button", { name: "Set up recovery" }).click();
|
||||
await settingsDialogLocator.getByRole("button", { name: "Get recovery key" }).click();
|
||||
|
||||
// First it displays an informative panel about the recovery key
|
||||
await expect(settingsDialogLocator.getByRole("heading", { name: "Set up recovery" })).toBeVisible();
|
||||
await expect(settingsDialogLocator.getByRole("heading", { name: "Get recovery key" })).toBeVisible();
|
||||
await settingsDialogLocator.getByRole("button", { name: "Continue" }).click();
|
||||
|
||||
// Next, it displays the new recovery key. We click on the copy button.
|
||||
@@ -86,7 +86,7 @@ test.describe("Dehydration", () => {
|
||||
await expectDehydratedDeviceEnabled(app);
|
||||
});
|
||||
|
||||
test("Reset identity during login and set up recovery re-creates dehydrated device", async ({
|
||||
test("Reset identity during login and back up your chats re-creates dehydrated device", async ({
|
||||
page,
|
||||
homeserver,
|
||||
app,
|
||||
@@ -108,7 +108,7 @@ test.describe("Dehydration", () => {
|
||||
// Oh no, we forgot our recovery key - reset our identity
|
||||
await page.locator(".mx_AuthPage").getByRole("button", { name: "Can't confirm" }).click();
|
||||
await expect(
|
||||
page.getByRole("heading", { name: "Are you sure you want to reset your identity?" }),
|
||||
page.getByRole("heading", { name: "Are you sure you want to reset your digital identity?" }),
|
||||
).toBeVisible();
|
||||
await page.getByRole("button", { name: "Continue", exact: true }).click();
|
||||
await page.getByPlaceholder("Password").fill(credentials.password);
|
||||
@@ -116,7 +116,7 @@ test.describe("Dehydration", () => {
|
||||
|
||||
// And set up recovery
|
||||
const settings = await app.settings.openUserSettings("Encryption");
|
||||
await settings.getByRole("button", { name: "Set up recovery" }).click();
|
||||
await settings.getByRole("button", { name: "Get recovery key" }).click();
|
||||
await settings.getByRole("button", { name: "Continue" }).click();
|
||||
const recoveryKey = await settings.getByTestId("recoveryKey").innerText();
|
||||
await settings.getByRole("button", { name: "Continue" }).click();
|
||||
@@ -133,10 +133,10 @@ test.describe("Dehydration", () => {
|
||||
// Create a dehydrated device by setting up recovery (see "'Set up
|
||||
// recovery' creates dehydrated device" test above)
|
||||
const settingsDialogLocator = await app.settings.openUserSettings("Encryption");
|
||||
await settingsDialogLocator.getByRole("button", { name: "Set up recovery" }).click();
|
||||
await settingsDialogLocator.getByRole("button", { name: "Get recovery key" }).click();
|
||||
|
||||
// First it displays an informative panel about the recovery key
|
||||
await expect(settingsDialogLocator.getByRole("heading", { name: "Set up recovery" })).toBeVisible();
|
||||
await expect(settingsDialogLocator.getByRole("heading", { name: "Get recovery key" })).toBeVisible();
|
||||
await settingsDialogLocator.getByRole("button", { name: "Continue" }).click();
|
||||
|
||||
// Next, it displays the new recovery key. We click on the copy button.
|
||||
|
||||
@@ -302,7 +302,7 @@ test.describe("Cryptography", function () {
|
||||
const last = page.locator(".mx_EventTile_last");
|
||||
await expect(last).toContainText("test encrypted from user that was previously verified");
|
||||
const lastE2eIcon = last.locator(".mx_EventTile_e2eIcon");
|
||||
await expect(lastE2eIcon).toHaveAccessibleName("Sender's verified identity was reset");
|
||||
await expect(lastE2eIcon).toHaveAccessibleName("Sender's verified digital identity was reset");
|
||||
await expect(lastE2eIcon).toMatchScreenshot("event-shield-identity-reset.png");
|
||||
},
|
||||
);
|
||||
|
||||
@@ -52,6 +52,6 @@ test.describe("Invisible cryptography", () => {
|
||||
/* should show an error for a message from a previously verified device */
|
||||
await bobSecondDevice.sendMessage(testRoomId, "test encrypted from user that was previously verified");
|
||||
const lastTile = page.locator(".mx_EventTile_last");
|
||||
await expect(lastTile).toContainText("Sender's verified identity was reset");
|
||||
await expect(lastTile).toContainText("Sender's verified digital identity was reset");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -23,7 +23,7 @@ test.describe("Logout tests", () => {
|
||||
await sendMessageInCurrentRoom(page, "Hello secret world");
|
||||
|
||||
const locator = await app.settings.openUserMenu();
|
||||
await locator.getByRole("menuitem", { name: "Sign out", exact: true }).click();
|
||||
await locator.getByRole("menuitem", { name: "Remove this device", exact: true }).click();
|
||||
|
||||
const currentDialogLocator = page.locator(".mx_Dialog");
|
||||
|
||||
@@ -41,11 +41,11 @@ test.describe("Logout tests", () => {
|
||||
await sendMessageInCurrentRoom(page, "Hello secret world");
|
||||
|
||||
const locator = await app.settings.openUserMenu();
|
||||
await locator.getByRole("menuitem", { name: "Sign out", exact: true }).click();
|
||||
await locator.getByRole("menuitem", { name: "Remove this device", exact: true }).click();
|
||||
|
||||
const currentDialogLocator = page.locator(".mx_Dialog");
|
||||
|
||||
await expect(currentDialogLocator.getByText("Are you sure you want to sign out?")).toBeVisible();
|
||||
await expect(currentDialogLocator.getByText("Are you sure you want to Remove this device?")).toBeVisible();
|
||||
});
|
||||
|
||||
test("Logout directly if the user has no room keys", async ({ page, app }) => {
|
||||
@@ -54,7 +54,7 @@ test.describe("Logout tests", () => {
|
||||
await sendMessageInCurrentRoom(page, "Hello public world!");
|
||||
|
||||
const locator = await app.settings.openUserMenu();
|
||||
await locator.getByRole("menuitem", { name: "Sign out", exact: true }).click();
|
||||
await locator.getByRole("menuitem", { name: "Remove this device", exact: true }).click();
|
||||
|
||||
// Should have logged out directly
|
||||
await expect(page.getByRole("heading", { name: "Sign in" })).toBeVisible();
|
||||
|
||||
@@ -61,7 +61,9 @@ test.describe("Key storage out of sync toast", () => {
|
||||
await page.getByRole("button", { name: "Forgot recovery key?" }).click();
|
||||
|
||||
await expect(
|
||||
page.getByRole("heading", { name: "Forgot your recovery key? You’ll need to reset your identity." }),
|
||||
page.getByRole("heading", {
|
||||
name: "Forgot your recovery key? You’ll need to reset your digital identity.",
|
||||
}),
|
||||
).toBeVisible();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -252,11 +252,11 @@ export async function logIntoElementAndVerify(page: Page, credentials: Credentia
|
||||
*/
|
||||
export async function logOutOfElement(page: Page, discardKeys: boolean = false) {
|
||||
await page.getByRole("button", { name: "User menu" }).click();
|
||||
await page.locator(".mx_UserMenu_contextMenu").getByRole("menuitem", { name: "Sign out" }).click();
|
||||
await page.locator(".mx_UserMenu_contextMenu").getByRole("menuitem", { name: "Remove this device" }).click();
|
||||
if (discardKeys) {
|
||||
await page.getByRole("button", { name: "I don't want my encrypted messages" }).click();
|
||||
} else {
|
||||
await page.locator(".mx_Dialog .mx_QuestionDialog").getByRole("button", { name: "Sign out" }).click();
|
||||
await page.locator(".mx_Dialog .mx_QuestionDialog").getByRole("button", { name: "Remove this device" }).click();
|
||||
}
|
||||
|
||||
// Wait for the login page to load
|
||||
@@ -315,7 +315,7 @@ export async function enableKeyBackup(app: ElementAppPage): Promise<string> {
|
||||
await encryptionTab.getByRole("switch", { name: "Allow key storage" }).click();
|
||||
}
|
||||
|
||||
await encryptionTab.getByRole("button", { name: "Set up recovery" }).click();
|
||||
await encryptionTab.getByRole("button", { name: "Get recovery key" }).click();
|
||||
await encryptionTab.getByRole("button", { name: "Continue" }).click();
|
||||
|
||||
const recoveryKey = await encryptionTab.getByTestId("recoveryKey").innerText();
|
||||
|
||||
@@ -185,7 +185,9 @@ test.describe("Login", () => {
|
||||
await page.goto("/");
|
||||
await login(page, homeserver, credentials);
|
||||
|
||||
await expect(page.getByRole("heading", { name: "Confirm your identity", level: 2 })).toBeVisible();
|
||||
await expect(
|
||||
page.getByRole("heading", { name: "Confirm your digital identity", level: 2 }),
|
||||
).toBeVisible();
|
||||
|
||||
await expect(page.getByRole("button", { name: "Skip verification for now" })).toBeVisible();
|
||||
});
|
||||
@@ -218,7 +220,9 @@ test.describe("Login", () => {
|
||||
await page.goto("/");
|
||||
await login(page, homeserver, credentials);
|
||||
|
||||
await expect(page.getByRole("heading", { name: "Confirm your identity", level: 2 })).toBeVisible();
|
||||
await expect(
|
||||
page.getByRole("heading", { name: "Confirm your digital identity", level: 2 }),
|
||||
).toBeVisible();
|
||||
|
||||
await expect(page.getByRole("button", { name: "Skip verification for now" })).toBeVisible();
|
||||
});
|
||||
@@ -253,7 +257,7 @@ test.describe("Login", () => {
|
||||
await page.goto("/");
|
||||
await login(page, homeserver, credentials);
|
||||
|
||||
const h2 = page.getByRole("heading", { name: "Confirm your identity", level: 2 });
|
||||
const h2 = page.getByRole("heading", { name: "Confirm your digital identity", level: 2 });
|
||||
await expect(h2).toBeVisible();
|
||||
|
||||
await expect(h2.locator(".mx_CompleteSecurity_skip")).toHaveCount(0);
|
||||
@@ -273,7 +277,7 @@ test.describe("Login", () => {
|
||||
// Load the page and see that we are asked to verify
|
||||
await page.goto("/#/welcome");
|
||||
await login(page, homeserver, credentials);
|
||||
let h2 = page.getByRole("heading", { name: "Confirm your identity", level: 2 });
|
||||
let h2 = page.getByRole("heading", { name: "Confirm your digital identity", level: 2 });
|
||||
await expect(h2).toBeVisible();
|
||||
|
||||
// Click "Use another device"
|
||||
@@ -283,7 +287,7 @@ test.describe("Login", () => {
|
||||
await page.getByRole("button", { name: "Close dialog" }).click();
|
||||
|
||||
// Check that we are still being asked to verify
|
||||
h2 = page.getByRole("heading", { name: "Confirm your identity", level: 2 });
|
||||
h2 = page.getByRole("heading", { name: "Confirm your digital identity", level: 2 });
|
||||
await expect(h2).toBeVisible();
|
||||
});
|
||||
});
|
||||
@@ -302,7 +306,9 @@ test.describe("Login", () => {
|
||||
await page.goto("/");
|
||||
await login(page, homeserver, credentials);
|
||||
|
||||
await expect(page.getByRole("heading", { name: "Confirm your identity", level: 2 })).toBeVisible();
|
||||
await expect(
|
||||
page.getByRole("heading", { name: "Confirm your digital identity", level: 2 }),
|
||||
).toBeVisible();
|
||||
|
||||
// Start the reset process
|
||||
await page.getByRole("button", { name: "Can't confirm?" }).click();
|
||||
@@ -335,7 +341,10 @@ test.describe("Login", () => {
|
||||
// Allow the outstanding requests queue to settle before logging out
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.locator(".mx_UserMenu_contextMenu").getByRole("menuitem", { name: "Sign out" }).click();
|
||||
await page
|
||||
.locator(".mx_UserMenu_contextMenu")
|
||||
.getByRole("menuitem", { name: "Remove this device" })
|
||||
.click();
|
||||
await expect(page).toHaveURL(/\/#\/login$/);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -29,7 +29,7 @@ test.describe("logout with logout_redirect_url", () => {
|
||||
// give a change for the outstanding requests queue to settle before logging out
|
||||
await page.waitForTimeout(2000);
|
||||
|
||||
await page.locator(".mx_UserMenu_contextMenu").getByRole("menuitem", { name: "Sign out" }).click();
|
||||
await page.locator(".mx_UserMenu_contextMenu").getByRole("menuitem", { name: "Remove this device" }).click();
|
||||
await expect(page).toHaveURL(/\/decoder-ring\/$/);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -74,7 +74,7 @@ test.describe("OIDC Native", { tag: ["@no-firefox", "@no-webkit"] }, () => {
|
||||
(request) => request.url() === revokeUri && request.postDataJSON()["token_type_hint"] === "refresh_token",
|
||||
);
|
||||
const locator = await app.settings.openUserMenu();
|
||||
await locator.getByRole("menuitem", { name: "Sign out", exact: true }).click();
|
||||
await locator.getByRole("menuitem", { name: "Remove this device", exact: true }).click();
|
||||
await revokeAccessTokenPromise;
|
||||
await revokeRefreshTokenPromise;
|
||||
});
|
||||
@@ -98,7 +98,7 @@ test.describe("OIDC Native", { tag: ["@no-firefox", "@no-webkit"] }, () => {
|
||||
|
||||
await page.goto("http://localhost:8080");
|
||||
await expect(
|
||||
page.getByText("For security, this session has been signed out. Please sign in again."),
|
||||
page.getByText("For security, this session has been removed. Please sign in again."),
|
||||
).toBeVisible();
|
||||
//await expect(page).toMatchScreenshot("token-expired.png", { includeDialogBackground: true });
|
||||
|
||||
@@ -122,7 +122,7 @@ test.describe("OIDC Native", { tag: ["@no-firefox", "@no-webkit"] }, () => {
|
||||
|
||||
// Allow the outstanding requests queue to settle before logging out
|
||||
await page.waitForTimeout(2000);
|
||||
await page.locator(".mx_UserMenu_contextMenu").getByRole("menuitem", { name: "Sign out" }).click();
|
||||
await page.locator(".mx_UserMenu_contextMenu").getByRole("menuitem", { name: "Remove this device" }).click();
|
||||
await expect(page).toHaveURL(/\/#\/login$/);
|
||||
|
||||
// Log in again
|
||||
@@ -131,7 +131,7 @@ test.describe("OIDC Native", { tag: ["@no-firefox", "@no-webkit"] }, () => {
|
||||
await page.getByRole("button", { name: "Continue" }).click();
|
||||
|
||||
// We should be in
|
||||
await expect(page.getByText("Confirm your identity")).toBeVisible();
|
||||
await expect(page.getByText("Confirm your digital identity")).toBeVisible();
|
||||
});
|
||||
|
||||
test.describe("with force_verification on", () => {
|
||||
@@ -154,7 +154,10 @@ test.describe("OIDC Native", { tag: ["@no-firefox", "@no-webkit"] }, () => {
|
||||
await page.getByRole("button", { name: "User menu" }).click();
|
||||
await expect(page.getByText(userId, { exact: true })).toBeVisible();
|
||||
await page.waitForTimeout(2000);
|
||||
await page.locator(".mx_UserMenu_contextMenu").getByRole("menuitem", { name: "Sign out" }).click();
|
||||
await page
|
||||
.locator(".mx_UserMenu_contextMenu")
|
||||
.getByRole("menuitem", { name: "Remove this device" })
|
||||
.click();
|
||||
await expect(page).toHaveURL(/\/#\/login$/);
|
||||
|
||||
// Log in again
|
||||
@@ -163,7 +166,7 @@ test.describe("OIDC Native", { tag: ["@no-firefox", "@no-webkit"] }, () => {
|
||||
await page.getByRole("button", { name: "Continue" }).click();
|
||||
|
||||
// We should be being warned that we need to verify (but we can't)
|
||||
await expect(page.getByText("Confirm your identity")).toBeVisible();
|
||||
await expect(page.getByText("Confirm your digital identity")).toBeVisible();
|
||||
|
||||
// And there should be no way to close this prompt
|
||||
await expect(page.getByRole("button", { name: "Skip verification for now" })).not.toBeVisible();
|
||||
@@ -198,7 +201,10 @@ test.describe("OIDC Native", { tag: ["@no-firefox", "@no-webkit"] }, () => {
|
||||
await page.getByRole("button", { name: "User menu" }).click();
|
||||
await expect(page.getByText(userId, { exact: true })).toBeVisible();
|
||||
await page.waitForTimeout(2000);
|
||||
await page.locator(".mx_UserMenu_contextMenu").getByRole("menuitem", { name: "Sign out" }).click();
|
||||
await page
|
||||
.locator(".mx_UserMenu_contextMenu")
|
||||
.getByRole("menuitem", { name: "Remove this device" })
|
||||
.click();
|
||||
await expect(page).toHaveURL(/\/#\/login$/);
|
||||
|
||||
// Log in again
|
||||
|
||||
@@ -59,7 +59,7 @@ test.describe("Device manager", () => {
|
||||
await filteredDeviceListItems.last().click({ force: true });
|
||||
|
||||
// sign out from list selection action buttons
|
||||
await tab.getByRole("button", { name: "Sign out", exact: true }).click();
|
||||
await tab.getByRole("button", { name: "Remove this device", exact: true }).click();
|
||||
await page.getByRole("dialog").getByTestId("dialog-primary-button").click();
|
||||
|
||||
// list updated after sign out
|
||||
@@ -88,7 +88,7 @@ test.describe("Device manager", () => {
|
||||
await expect(firstSession.locator(".mx_DeviceTile h4").getByText(sessionName)).toBeVisible();
|
||||
|
||||
// sign out using the device details sign out
|
||||
await firstSession.getByRole("button", { name: "Sign out of this session" }).click();
|
||||
await firstSession.getByRole("button", { name: "Remove this session" }).click();
|
||||
|
||||
// confirm the signout
|
||||
await page.getByRole("dialog").getByTestId("dialog-primary-button").click();
|
||||
|
||||
@@ -64,7 +64,7 @@ test.describe("Advanced section in Encryption tab", () => {
|
||||
|
||||
// After resetting the identity, the user should set up a new recovery key
|
||||
await expect(
|
||||
util.getEncryptionRecoverySection().getByRole("button", { name: "Set up recovery" }),
|
||||
util.getEncryptionRecoverySection().getByRole("button", { name: "Get recovery key" }),
|
||||
).toBeVisible();
|
||||
|
||||
await checkDeviceIsCrossSigned(app);
|
||||
|
||||
@@ -111,7 +111,7 @@ test.describe("Encryption tab", () => {
|
||||
|
||||
// The user is prompted to reset their identity
|
||||
await expect(
|
||||
dialog.getByText("Forgot your recovery key? You’ll need to reset your identity."),
|
||||
dialog.getByText("Forgot your recovery key? You’ll need to reset your digital identity."),
|
||||
).toBeVisible();
|
||||
});
|
||||
|
||||
|
||||
@@ -59,13 +59,13 @@ test.describe("Recovery section in Encryption tab", () => {
|
||||
|
||||
// The key backup is deleted and the user needs to set it up
|
||||
const dialog = await util.openEncryptionTab();
|
||||
const setupButton = dialog.getByRole("button", { name: "Set up recovery" });
|
||||
const setupButton = dialog.getByRole("button", { name: "Get recovery key" });
|
||||
await expect(setupButton).toBeVisible();
|
||||
await expect(util.getEncryptionRecoverySection()).toMatchScreenshot("set-up-recovery.png");
|
||||
await setupButton.click();
|
||||
|
||||
// Display an informative panel about the recovery key
|
||||
await expect(dialog.getByRole("heading", { name: "Set up recovery" })).toBeVisible();
|
||||
await expect(dialog.getByRole("heading", { name: "Get recovery key" })).toBeVisible();
|
||||
await expect(util.getEncryptionTabContent()).toMatchScreenshot("set-up-key-1-encryption-tab.png");
|
||||
await dialog.getByRole("button", { name: "Continue" }).click();
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 15 KiB |
@@ -1495,8 +1495,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Umožnit požádat o vstup",
|
||||
"automatic_debug_logs": "Automaticky odesílat ladící protokoly při jakékoli chybě",
|
||||
"automatic_debug_logs_decryption": "Automaticky odesílat ladící protokoly při chybách dešifrování",
|
||||
"beta_description": "Co se chystá pro %(brand)s? Experimentální funkce jsou nejlepším způsobem, jak se dostat k novým věcem v raném stádiu, vyzkoušet nové funkce a pomoci je formovat ještě před jejich spuštěním.",
|
||||
"beta_feature": "Jedná se o funkci ve vývoji",
|
||||
"beta_feedback_leave_button": "Chcete-li opustit beta verzi, jděte do nastavení.",
|
||||
@@ -3408,8 +3406,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s zahájil(a) hovor. (není podporováno tímto prohlížečem)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Chyba při dešifrování přílohy",
|
||||
"error_invalid": "Neplatný soubor"
|
||||
"error_decrypting": "Chyba při dešifrování přílohy"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Obrázek nelze zobrazit kvůli chybě",
|
||||
@@ -3750,14 +3747,7 @@
|
||||
"one_user": "%(displayName)s píše …",
|
||||
"two_users": "%(names)s a %(lastPerson)s píšou …"
|
||||
},
|
||||
"undecryptable_tooltip": "Tuto zprávu se nepodařilo dešifrovat",
|
||||
"url_preview": {
|
||||
"close": "Zavřít náhled",
|
||||
"show_n_more": {
|
||||
"one": "Zobrazit %(count)s další náhled",
|
||||
"other": "Zobrazit %(count)s dalších náhledů"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Tuto zprávu se nepodařilo dešifrovat"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "A %(count)s dalších..."
|
||||
|
||||
@@ -1507,8 +1507,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Galluogi gofyn i ymuno",
|
||||
"automatic_debug_logs": "Anfon logiau dadfygio yn awtomatig ar unrhyw wall",
|
||||
"automatic_debug_logs_decryption": "Anfon logiau dadgryptio yn awtomatig ar wallau dadgryptio",
|
||||
"beta_description": "Beth sydd nesaf i %(brand)s? Labs yw'r ffordd orau o gael pethau'n gynnar, profi nodweddion newydd a helpu i'w siapio cyn iddynt gael eu lansio.",
|
||||
"beta_feature": "Mae hon yn nodwedd beta",
|
||||
"beta_feedback_leave_button": "I adael y beta, ewch i'ch gosodiadau.",
|
||||
@@ -3400,8 +3398,7 @@
|
||||
"voice_call_unsupported": "Gosododd %(senderName)s alwad llais. (heb ei gefnogi gan y porwr hwn)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Gwall wrth ddadgryptio atodiad",
|
||||
"error_invalid": "Ffeil annilys"
|
||||
"error_decrypting": "Gwall wrth ddadgryptio atodiad"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Methu dangos delwedd oherwydd gwall",
|
||||
@@ -3749,13 +3746,7 @@
|
||||
"one_user": "Mae %(displayName)s yn teipio…",
|
||||
"two_users": "Mae %(materes)s a %(lastPerson)s yn teipio…"
|
||||
},
|
||||
"undecryptable_tooltip": "Nid oedd modd dadgryptio'r neges hon",
|
||||
"url_preview": {
|
||||
"close": "Cau rhagolwg",
|
||||
"show_n_more": {
|
||||
"Dangos %(count)s rhagolwg arall": "other"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Nid oedd modd dadgryptio'r neges hon"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"A %(count)s yn rhagor...": "other"
|
||||
|
||||
@@ -1302,8 +1302,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Aktivér spørg om at deltage",
|
||||
"automatic_debug_logs": "Send automatisk fejlfindingslogfiler ved enhver fejl",
|
||||
"automatic_debug_logs_decryption": "Send automatisk fejlfindingslogfiler ved dekrypteringsfejl",
|
||||
"beta_description": "Hvad er det næste skridt for %(brand)s? Labs er den bedste måde at få adgang til tingene tidligt, afprøve nye funktioner og være med til at forme dem, inden de faktisk lanceres.",
|
||||
"beta_feature": "Dette er en betafunktion",
|
||||
"beta_feedback_leave_button": "For at forlade betaversionen skal du gå til dine indstillinger.",
|
||||
@@ -2957,8 +2955,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s foretog et stemmeopkald. (ikke understøttet af denne browser)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Fejl ved dekryptering af vedhæftet fil",
|
||||
"error_invalid": "Ugyldig fil"
|
||||
"error_decrypting": "Fejl ved dekryptering af vedhæftet fil"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Billedet kunne ikke vises på grund af en fejl",
|
||||
@@ -3292,14 +3289,7 @@
|
||||
"one_user": "%(displayName)s skriver …",
|
||||
"two_users": "%(names)s og %(lastPerson)s skriver …"
|
||||
},
|
||||
"undecryptable_tooltip": "Denne besked kunne ikke dekrypteres",
|
||||
"url_preview": {
|
||||
"close": "Luk forhåndsvisning",
|
||||
"show_n_more": {
|
||||
"one": "Vis %(count)s anden forhåndsvisning",
|
||||
"other": "Vis %(count)s andre forhåndsvisninger"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Denne besked kunne ikke dekrypteres"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Og %(count)s mere..."
|
||||
|
||||
@@ -1495,8 +1495,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Beitrittsanfragen erlauben",
|
||||
"automatic_debug_logs": "Sende bei Fehlern automatisch Protokolle zur Fehlerkorrektur",
|
||||
"automatic_debug_logs_decryption": "Sende bei Entschlüsselungsfehlern automatisch Protokolle zur Fehlerkorrektur",
|
||||
"beta_description": "Was passiert als nächstes in %(brand)s? Das Labor ist deine erste Anlaufstelle, um Funktionen früh zu erhalten, zu testen und mitzugestalten, bevor sie tatsächlich veröffentlicht werden.",
|
||||
"beta_feature": "Dies ist eine Betafunktion",
|
||||
"beta_feedback_leave_button": "Du kannst die Beta in den Einstellungen deaktivieren.",
|
||||
@@ -3398,8 +3396,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s hat einen Sprachanruf getätigt. (Nicht von diesem Browser unterstützt)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Fehler beim Entschlüsseln des Anhangs",
|
||||
"error_invalid": "Ungültige Datei"
|
||||
"error_decrypting": "Fehler beim Entschlüsseln des Anhangs"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Kann Bild aufgrund eines Fehlers nicht anzeigen",
|
||||
@@ -3740,14 +3737,7 @@
|
||||
"one_user": "%(displayName)s tippt …",
|
||||
"two_users": "%(names)s und %(lastPerson)s tippen …"
|
||||
},
|
||||
"undecryptable_tooltip": "Diese Nachricht konnte nicht enschlüsselt werden",
|
||||
"url_preview": {
|
||||
"close": "Vorschau schließen",
|
||||
"show_n_more": {
|
||||
"one": "%(count)s andere Vorschau zeigen",
|
||||
"other": "%(count)s weitere Vorschauen zeigen"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Diese Nachricht konnte nicht enschlüsselt werden"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Und %(count)s weitere …"
|
||||
|
||||
@@ -1217,8 +1217,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Ενεργοποίηση αίτησης συμμετοχής",
|
||||
"automatic_debug_logs": "Αυτόματη αποστολή αρχείων καταγραφής εντοπισμού σφαλμάτων για οποιοδήποτε σφάλμα",
|
||||
"automatic_debug_logs_decryption": "Αυτόματη αποστολή αρχείων καταγραφής εντοπισμού σφαλμάτων για σφάλματα αποκρυπτογράφησης",
|
||||
"beta_feature": "Αυτή είναι μια δυνατότητα beta",
|
||||
"beta_feedback_leave_button": "Για να αποχωρήσετε από την έκδοση beta, μεταβείτε στις ρυθμίσεις σας.",
|
||||
"bridge_state": "Εμφάνιση πληροφοριών σχετικά με τις γέφυρες στις ρυθμίσεις δωματίου",
|
||||
@@ -2669,8 +2667,7 @@
|
||||
"voice_call_unsupported": "Ο %(senderName)s έκανε μια ηχητική κλήση. (δεν υποστηρίζεται από το πρόγραμμα περιήγησης)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Σφάλμα κατά την αποκρυπτογράφηση της επισύναψης",
|
||||
"error_invalid": "Μη έγκυρο αρχείο %(extra)s"
|
||||
"error_decrypting": "Σφάλμα κατά την αποκρυπτογράφηση της επισύναψης"
|
||||
},
|
||||
"m.image": {
|
||||
"error_decrypting": "Σφάλμα κατά την αποκρυπτογράφηση της εικόνας",
|
||||
@@ -2998,13 +2995,6 @@
|
||||
},
|
||||
"one_user": "%(displayName)s πληκτρολογεί …",
|
||||
"two_users": "%(names)s και %(lastPerson)s πληκτρολογούν …"
|
||||
},
|
||||
"url_preview": {
|
||||
"close": "Κλείσιμο προεπισκόπησης",
|
||||
"show_n_more": {
|
||||
"other": "Εμφάνιση %(count)s άλλων προεπισκοπήσεων",
|
||||
"one": "Εμφάνιση%(count)s άλλων προεπισκοπήσεων"
|
||||
}
|
||||
}
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"show_advanced": "Show advanced",
|
||||
"show_all": "Show all",
|
||||
"sign_in": "Sign in",
|
||||
"sign_out": "Sign out",
|
||||
"sign_out": "Remove this device",
|
||||
"skip": "Skip",
|
||||
"start": "Start",
|
||||
"start_chat": "Start chat",
|
||||
@@ -221,11 +221,11 @@
|
||||
"incorrect_password": "Incorrect password",
|
||||
"log_in_new_account": "<a>Log in</a> to your new account.",
|
||||
"logout_dialog": {
|
||||
"description": "Are you sure you want to sign out?",
|
||||
"description": "Are you sure you want to remove this device?",
|
||||
"megolm_export": "Manually export keys",
|
||||
"setup_key_backup_title": "You'll lose access to your encrypted messages",
|
||||
"setup_secure_backup_description_1": "Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.",
|
||||
"setup_secure_backup_description_2": "When you sign out, these keys will be deleted from this device, which means you won't be able to read encrypted messages unless you have the keys for them on your other devices, or backed them up to the server.",
|
||||
"setup_secure_backup_description_2": "When you remove this device you won't be able to read encrypted messages unless you have the keys for them on your other devices, or backed them up to the server.",
|
||||
"skip_key_backup": "I don't want my encrypted messages"
|
||||
},
|
||||
"misconfigured_body": "Ask your %(brand)s admin to check <a>your config</a> for incorrect or duplicate entries.",
|
||||
@@ -298,16 +298,16 @@
|
||||
"registration_username_validation": "Use lowercase letters, numbers, dashes and underscores only",
|
||||
"reset_password": {
|
||||
"confirm_new_password": "Confirm new password",
|
||||
"devices_logout_success": "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device.",
|
||||
"other_devices_logout_warning_1": "Signing out your devices will delete the message encryption keys stored on them, making encrypted chat history unreadable.",
|
||||
"other_devices_logout_warning_2": "If you want to retain access to your chat history in encrypted rooms, set up Key Backup or export your message keys from one of your other devices before proceeding.",
|
||||
"devices_logout_success": "All your devices have been removed and will no longer receive push notifications. To re-enable notifications, sign in again on each device.",
|
||||
"other_devices_logout_warning_1": "Removing your devices will delete the message encryption keys stored on them, making encrypted chat history unreadable.",
|
||||
"other_devices_logout_warning_2": "If you want to retain access to your chat history in encrypted rooms, get a recovery key or export your message keys from one of your other devices before proceeding.",
|
||||
"password_not_entered": "A new password must be entered.",
|
||||
"passwords_mismatch": "New passwords must match each other.",
|
||||
"rate_limit_error": "Too many attempts in a short time. Wait some time before trying again.",
|
||||
"rate_limit_error_with_time": "Too many attempts in a short time. Retry after %(timeout)s.",
|
||||
"reset_successful": "Your password has been reset.",
|
||||
"return_to_login": "Return to login screen",
|
||||
"sign_out_other_devices": "Sign out of all devices"
|
||||
"sign_out_other_devices": "Remove other devices"
|
||||
},
|
||||
"reset_password_action": "Reset password",
|
||||
"reset_password_button": "Forgot password?",
|
||||
@@ -330,8 +330,8 @@
|
||||
"server_picker_title": "Sign into your homeserver",
|
||||
"server_picker_title_default": "Server Options",
|
||||
"server_picker_title_registration": "Host account on",
|
||||
"session_logged_out_description": "For security, this session has been signed out. Please sign in again.",
|
||||
"session_logged_out_title": "Signed Out",
|
||||
"session_logged_out_description": "For security, this session has been removed. Please sign in again.",
|
||||
"session_logged_out_title": "Session removed",
|
||||
"set_email": {
|
||||
"description": "This will allow you to reset your password and receive notifications.",
|
||||
"verification_pending_description": "Please check your email and click on the link it contains. Once this is done, click continue.",
|
||||
@@ -371,8 +371,8 @@
|
||||
"email_resent": "Resent!",
|
||||
"fallback_button": "Start authentication",
|
||||
"mas_cross_signing_reset_cta": "Continue to account",
|
||||
"mas_cross_signing_reset_description": "You're about to go to your %(serverName)s account to reset your identity. Once you have completed reset on your account, please return here and click Retry.",
|
||||
"mas_cross_signing_reset_title": "Go to your account to reset your identity",
|
||||
"mas_cross_signing_reset_description": "You're about to go to your %(serverName)s account to reset your digital identity. Once you have completed reset on your account, please return here and click Retry.",
|
||||
"mas_cross_signing_reset_title": "Go to your account to reset your digital identity",
|
||||
"msisdn": "A text message has been sent to %(msisdn)s",
|
||||
"msisdn_token_incorrect": "Token incorrect",
|
||||
"msisdn_token_prompt": "Please enter the code it contains:",
|
||||
@@ -774,7 +774,7 @@
|
||||
"cross_signing_public_keys_on_device_status": "Cross-signing public keys:",
|
||||
"cross_signing_ready": "Cross-signing is ready for use.",
|
||||
"cross_signing_status": "Cross-signing status:",
|
||||
"cross_signing_untrusted": "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.",
|
||||
"cross_signing_untrusted": "Your account has a digital identity in secret storage, but it is not yet trusted by this session.",
|
||||
"crypto_not_available": "Cryptographic module is not available",
|
||||
"device_id": "Device ID",
|
||||
"key_backup_active_version": "Active backup version:",
|
||||
@@ -902,10 +902,10 @@
|
||||
"user_read_up_to_private_ignore_synthetic": "User read up to (m.read.private;ignoreSynthetic): ",
|
||||
"user_room_membership": "Membership: %(membership)s",
|
||||
"user_verification_status": {
|
||||
"identity_changed": "Verification status: <E2EIcon /> Unverified, and identity changed",
|
||||
"identity_changed": "Verification status: <E2EIcon /> Unverified, and digital identity changed",
|
||||
"unverified": "Verification status: <E2EIcon /> Unverified",
|
||||
"verified": "Verification status: <E2EIcon /> Verified",
|
||||
"was_verified": "Verification status: <E2EIcon /> Was verified, but identity changed"
|
||||
"was_verified": "Verification status: <E2EIcon /> Was verified, but digital identity changed"
|
||||
},
|
||||
"users": "Users",
|
||||
"value": "Value",
|
||||
@@ -971,7 +971,7 @@
|
||||
"event_shield_reason_unverified_identity": "Encrypted by an unverified user.",
|
||||
"export_unsupported": "Your browser does not support the required cryptography extensions",
|
||||
"forgot_recovery_key": "Forgot recovery key?",
|
||||
"identity_needs_reset_description": "You have to reset your cryptographic identity in order to ensure access to your message history",
|
||||
"identity_needs_reset_description": "You have to reset your digital identity in order to ensure access to your chat history",
|
||||
"import_invalid_keyfile": "Not a valid %(brand)s keyfile",
|
||||
"import_invalid_passphrase": "Authentication check failed: incorrect password?",
|
||||
"key_storage_out_of_sync": "Your key storage is out of sync.",
|
||||
@@ -991,22 +991,22 @@
|
||||
"title": "New Recovery Method",
|
||||
"warning": "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."
|
||||
},
|
||||
"pinned_identity_changed": "%(displayName)s's (<b>%(userId)s</b>) identity was reset. <a>Learn more</a>",
|
||||
"pinned_identity_changed_no_displayname": "<b>%(userId)s</b>'s identity was reset. <a>Learn more</a>",
|
||||
"pinned_identity_changed": "%(displayName)s's (<b>%(userId)s</b>) digital identity was reset. <a>Learn more</a>",
|
||||
"pinned_identity_changed_no_displayname": "<b>%(userId)s</b>'s digital identity was reset. <a>Learn more</a>",
|
||||
"recovery_method_removed": {
|
||||
"description_1": "This session has detected that your Security Phrase and key for Secure Messages have been removed.",
|
||||
"description_2": "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.",
|
||||
"title": "Recovery Method Removed",
|
||||
"warning": "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."
|
||||
},
|
||||
"set_up_recovery": "Set up recovery",
|
||||
"set_up_recovery_toast_description": "Generate a recovery key that can be used to restore your encrypted message history in case you lose access to your devices.",
|
||||
"set_up_recovery": "Back up your chats",
|
||||
"set_up_recovery_toast_description": "Your chats are automatically backed up with end-to-end encryption. To restore this backup and retain your digital identity when you lose access to all your devices, you will need your recovery key.",
|
||||
"set_up_toast_title": "Set up Secure Backup",
|
||||
"setup_secure_backup": {
|
||||
"explainer": "Back up your keys before signing out to avoid losing them."
|
||||
"explainer": "Back up your keys before removing this device to avoid losing them."
|
||||
},
|
||||
"turn_on_key_storage": "Turn on key storage",
|
||||
"turn_on_key_storage_description": "Store your cryptographic identity and message keys securely on the server. This will allow you to view your message history on any new devices.",
|
||||
"turn_on_key_storage_description": "This will allow you to view your chat history on any new devices and is required for backup of chats and digital identity.",
|
||||
"udd": {
|
||||
"interactive_verification_button": "Interactively verify by emoji",
|
||||
"other_ask_verify_text": "Ask this user to verify their session, or manually verify it below.",
|
||||
@@ -1030,7 +1030,7 @@
|
||||
"complete_description": "You've successfully verified this user.",
|
||||
"complete_title": "Verified!",
|
||||
"confirm_identity_description": "Verify this device to set up secure messaging",
|
||||
"confirm_identity_title": "Confirm your identity",
|
||||
"confirm_identity_title": "Confirm your digital identity",
|
||||
"confirm_the_emojis": "Confirm that the emojis below match those shown on your other device.",
|
||||
"error_starting_description": "We were unable to start a chat with the other user.",
|
||||
"error_starting_title": "Error starting verification",
|
||||
@@ -1114,10 +1114,10 @@
|
||||
"waiting_other_user": "Waiting for %(displayName)s to verify…"
|
||||
},
|
||||
"verification_requested_toast_title": "Verification requested",
|
||||
"verified_identity_changed": "%(displayName)s's (<b>%(userId)s</b>) identity was reset. <a>Learn more</a>",
|
||||
"verified_identity_changed_no_displayname": "<b>%(userId)s</b>'s identity was reset. <a>Learn more</a>",
|
||||
"verify_toast_description": "Other users may not trust it",
|
||||
"verify_toast_title": "Verify this session",
|
||||
"verified_identity_changed": "%(displayName)s's (<b>%(userId)s</b>) digital identity was reset. <a>Learn more</a>",
|
||||
"verified_identity_changed_no_displayname": "<b>%(userId)s</b>'s digital identity was reset. <a>Learn more</a>",
|
||||
"verify_toast_description": "As of end of April 2026, unverified devices will not be able to send and receive messages. <a>Learn more</a>",
|
||||
"verify_toast_title": "Verify this device",
|
||||
"withdraw_verification_action": "Withdraw verification"
|
||||
},
|
||||
"error": {
|
||||
@@ -1142,15 +1142,15 @@
|
||||
"non_urgent_echo_failure_toast": "Your server isn't responding to some <a>requests</a>.",
|
||||
"resource_limits": "This homeserver has exceeded one of its resource limits.",
|
||||
"session_restore": {
|
||||
"clear_storage_button": "Clear Storage and Sign Out",
|
||||
"clear_storage_description": "Sign out and remove encryption keys?",
|
||||
"description_1": "We encountered an error trying to restore your previous session.",
|
||||
"clear_storage_button": "Remove this device",
|
||||
"clear_storage_description": "Remove this device together with its encryption keys?",
|
||||
"description_1": "We encountered an error trying to restore your session.",
|
||||
"description_2": "If you have previously used a more recent version of %(brand)s, your session may be incompatible with this version. Close this window and return to the more recent version.",
|
||||
"description_3": "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.",
|
||||
"description_3": "Clearing your browser's storage may fix the problem, but will remove this device and cause any encrypted chat history to become unreadable.",
|
||||
"title": "Unable to restore session"
|
||||
},
|
||||
"something_went_wrong": "Something went wrong!",
|
||||
"storage_evicted_description_1": "Some session data, including encrypted message keys, is missing. Sign out and sign in to fix this, restoring keys from backup.",
|
||||
"storage_evicted_description_1": "Some session data, including encrypted message keys, is missing. Remove this device and sign in again to fix this, restoring keys from backup.",
|
||||
"storage_evicted_description_2": "Your browser likely removed this data when running low on disk space.",
|
||||
"storage_evicted_title": "Missing session data",
|
||||
"sync": "Unable to connect to Homeserver. Retrying…",
|
||||
@@ -1572,7 +1572,7 @@
|
||||
"share_history_on_invite_warning": "This feature is EXPERIMENTAL and not all security precautions are implemented. Do not enable on production accounts.",
|
||||
"sliding_sync": "Sliding Sync mode",
|
||||
"sliding_sync_description": "Under active development, cannot be disabled. Currently, not compatible with Element Call.",
|
||||
"sliding_sync_disabled_notice": "Log out and back in to disable",
|
||||
"sliding_sync_disabled_notice": "Sign in again to disable",
|
||||
"sliding_sync_server_no_support": "Your server lacks support",
|
||||
"under_active_development": "Under active development.",
|
||||
"unrealiable_e2e": "Unreliable in encrypted rooms",
|
||||
@@ -1998,7 +1998,7 @@
|
||||
"error_join_incompatible_version_1": "Sorry, your homeserver is too old to participate here.",
|
||||
"error_join_incompatible_version_2": "Please contact your homeserver administrator.",
|
||||
"error_join_title": "Failed to join",
|
||||
"error_join_unknown": "An unknonw error occured.",
|
||||
"error_join_unknown": "An unknown error occured.",
|
||||
"error_jump_to_date": "Server returned %(statusCode)s with error code %(errorCode)s",
|
||||
"error_jump_to_date_connection": "A network error occurred while trying to find and jump to the given date. Your homeserver might be down or there was just a temporary problem with your internet connection. Please try again. If this continues, please contact your homeserver administrator.",
|
||||
"error_jump_to_date_details": "Error details",
|
||||
@@ -2544,10 +2544,10 @@
|
||||
"breadcrumb_page": "Reset encryption",
|
||||
"breadcrumb_second_description": "You will lose any message history that’s stored only on the server",
|
||||
"breadcrumb_third_description": "You will need to verify all your existing devices and contacts again",
|
||||
"breadcrumb_title": "Are you sure you want to reset your identity?",
|
||||
"breadcrumb_title_cant_confirm": "You need to reset your identity",
|
||||
"breadcrumb_title_forgot": "Forgot your recovery key? You’ll need to reset your identity.",
|
||||
"breadcrumb_title_sync_failed": "Failed to sync key storage. You need to reset your identity.",
|
||||
"breadcrumb_title": "Are you sure you want to reset your digital identity?",
|
||||
"breadcrumb_title_cant_confirm": "You need to reset your digital identity",
|
||||
"breadcrumb_title_forgot": "Forgot your recovery key? You’ll need to reset your digital identity.",
|
||||
"breadcrumb_title_sync_failed": "Failed to sync key storage. You need to reset your digital identity.",
|
||||
"breadcrumb_warning": "Only do this if you believe your account has been compromised.",
|
||||
"details_title": "Encryption details",
|
||||
"do_not_close_warning": "Do not close this window until the reset is finished",
|
||||
@@ -2563,13 +2563,13 @@
|
||||
"title": "Advanced"
|
||||
},
|
||||
"confirm_key_storage_off": "Are you sure you want to keep key storage turned off?",
|
||||
"confirm_key_storage_off_description": "If you sign out of all your devices you will lose your message history and will need to verify all your existing contacts again. <a>Learn more</a>",
|
||||
"confirm_key_storage_off_description": "If you remove all your devices you will lose your message history and will need to verify all your existing contacts again. <a>Learn more</a>",
|
||||
"delete_key_storage": {
|
||||
"breadcrumb_page": "Delete key storage",
|
||||
"confirm": "Delete key storage",
|
||||
"description": "Deleting key storage will remove your cryptographic identity and message keys from the server and turn off the following security features:",
|
||||
"list_first": "You will not have encrypted message history on new devices",
|
||||
"list_second": "You will lose access to your encrypted messages if you are signed out of %(brand)s everywhere",
|
||||
"list_second": "You will lose access to your encrypted messages if you're not signed in to any devices",
|
||||
"title": "Are you sure you want to turn off key storage and delete it?"
|
||||
},
|
||||
"device_not_verified_button": "Verify this device",
|
||||
@@ -2578,7 +2578,7 @@
|
||||
"dialog_title": "<strong>Settings:</strong> Encryption",
|
||||
"key_storage": {
|
||||
"allow_key_storage": "Allow key storage",
|
||||
"description": "Store your cryptographic identity and message keys securely on the server. This will allow you to view your message history on any new devices. <a>Learn more</a>",
|
||||
"description": "This will allow you to view your chat history on any new devices and is required for backup of chats and digital identity. <a>Learn more</a>",
|
||||
"title": "Key storage"
|
||||
},
|
||||
"recovery": {
|
||||
@@ -2588,14 +2588,14 @@
|
||||
"change_recovery_key": "Change recovery key",
|
||||
"change_recovery_key_description": "Write down this new recovery key somewhere safe. Then click Continue to confirm the change.",
|
||||
"change_recovery_key_title": "Change recovery key?",
|
||||
"description": "Recover your cryptographic identity and message history with a recovery key if you’ve lost all your existing devices.",
|
||||
"description": "Your chats are automatically backed up with end-to-end encryption. To restore this backup and retain your digital identity when you lose access to all your devices, you will need your recovery key.",
|
||||
"enter_key_error": "The recovery key you entered is not correct.",
|
||||
"enter_recovery_key": "Enter recovery key",
|
||||
"forgot_recovery_key": "Forgot recovery key?",
|
||||
"key_storage_warning": "Your key storage is out of sync. Click one of the buttons below to fix the problem.",
|
||||
"save_key_description": "Do not share this with anyone!",
|
||||
"save_key_title": "Recovery key",
|
||||
"set_up_recovery": "Set up recovery",
|
||||
"set_up_recovery": "Get recovery key",
|
||||
"set_up_recovery_confirm_button": "Finish set up",
|
||||
"set_up_recovery_confirm_description": "Enter the recovery key shown on the previous screen to finish setting up recovery.",
|
||||
"set_up_recovery_confirm_title": "Enter your recovery key to confirm",
|
||||
@@ -2603,7 +2603,7 @@
|
||||
"set_up_recovery_save_key_description": "Write down this recovery key somewhere safe, like a password manager, encrypted note, or a physical safe.",
|
||||
"set_up_recovery_save_key_title": "Save your recovery key somewhere safe",
|
||||
"set_up_recovery_secondary_description": "After clicking continue, we’ll generate a recovery key for you.",
|
||||
"title": "Recovery"
|
||||
"title": "Backup"
|
||||
},
|
||||
"title": "Encryption"
|
||||
},
|
||||
@@ -2893,28 +2893,28 @@
|
||||
"send_read_receipts_unsupported": "Your server doesn't support disabling sending read receipts.",
|
||||
"send_typing_notifications": "Send typing notifications",
|
||||
"sessions": {
|
||||
"best_security_note": "For best security, verify your sessions and sign out from any session that you don't recognize or use anymore.",
|
||||
"best_security_note": "For best security, verify your sessions and remove any session that you don't recognize or use anymore.",
|
||||
"browser": "Browser",
|
||||
"confirm_sign_out": {
|
||||
"one": "Confirm signing out this device",
|
||||
"other": "Confirm signing out these devices"
|
||||
"one": "Confirm removing this device",
|
||||
"other": "Confirm removing these devices"
|
||||
},
|
||||
"confirm_sign_out_body": {
|
||||
"one": "Click the button below to confirm signing out this device.",
|
||||
"other": "Click the button below to confirm signing out these devices."
|
||||
"one": "Click the button below to confirm removing this device.",
|
||||
"other": "Click the button below to confirm removing these devices."
|
||||
},
|
||||
"confirm_sign_out_continue": {
|
||||
"one": "Sign out device",
|
||||
"other": "Sign out devices"
|
||||
"one": "Remove device",
|
||||
"other": "Remove devices"
|
||||
},
|
||||
"confirm_sign_out_sso": {
|
||||
"one": "Confirm logging out this device by using Single Sign On to prove your identity.",
|
||||
"other": "Confirm logging out these devices by using Single Sign On to prove your identity."
|
||||
"one": "Confirm removing this device by using Single Sign On to prove your identity.",
|
||||
"other": "Confirm removing these devices by using Single Sign On to prove your identity."
|
||||
},
|
||||
"current_session": "Current session",
|
||||
"desktop_session": "Desktop session",
|
||||
"details_heading": "Session details",
|
||||
"device_unverified_description": "Verify or sign out from this session for best security and reliability.",
|
||||
"device_unverified_description": "Verify or remove this session for best security and reliability.",
|
||||
"device_unverified_description_current": "Verify your current session for enhanced secure messaging.",
|
||||
"device_verified_description": "This session is ready for secure messaging.",
|
||||
"device_verified_description_current": "Your current session is ready for secure messaging.",
|
||||
@@ -2932,7 +2932,7 @@
|
||||
"inactive_sessions": "Inactive sessions",
|
||||
"inactive_sessions_explainer_1": "Inactive sessions are sessions you have not used in some time, but they continue to receive encryption keys.",
|
||||
"inactive_sessions_explainer_2": "Removing inactive sessions improves security and performance, and makes it easier for you to identify if a new session is suspicious.",
|
||||
"inactive_sessions_list_description": "Consider signing out from old sessions (%(inactiveAgeDays)s days or older) you don't use anymore.",
|
||||
"inactive_sessions_list_description": "Consider removing old sessions (%(inactiveAgeDays)s days or older) you don't use anymore.",
|
||||
"ip": "IP address",
|
||||
"last_activity": "Last activity",
|
||||
"manage": "Manage this session",
|
||||
@@ -2963,15 +2963,15 @@
|
||||
"sign_in_with_qr_button": "Show QR code",
|
||||
"sign_in_with_qr_description": "Use a QR code to sign in to another device and set up secure messaging.",
|
||||
"sign_in_with_qr_unsupported": "Not supported by your account provider",
|
||||
"sign_out": "Sign out of this session",
|
||||
"sign_out_all_other_sessions": "Sign out of all other sessions (%(otherSessionsCount)s)",
|
||||
"sign_out": "Remove this session",
|
||||
"sign_out_all_other_sessions": "Remove all other sessions (%(otherSessionsCount)s)",
|
||||
"sign_out_confirm_description": {
|
||||
"one": "Are you sure you want to sign out of %(count)s session?",
|
||||
"other": "Are you sure you want to sign out of %(count)s sessions?"
|
||||
"one": "Are you sure you want to remove %(count)s session?",
|
||||
"other": "Are you sure you want to remove %(count)s sessions?"
|
||||
},
|
||||
"sign_out_n_sessions": {
|
||||
"one": "Sign out of %(count)s session",
|
||||
"other": "Sign out of %(count)s sessions"
|
||||
"one": "Remove %(count)s session",
|
||||
"other": "Remove %(count)s sessions"
|
||||
},
|
||||
"title": "Sessions",
|
||||
"unknown_session": "Unknown session type",
|
||||
@@ -2980,15 +2980,15 @@
|
||||
"unverified_session_explainer_2": "You won't be able to participate in rooms where encryption is enabled when using this session.",
|
||||
"unverified_session_explainer_3": "For best security and privacy, it is recommended to use Matrix clients that support encryption.",
|
||||
"unverified_sessions": "Unverified sessions",
|
||||
"unverified_sessions_explainer_1": "Unverified sessions are sessions that have logged in with your credentials but have not been cross-verified.",
|
||||
"unverified_sessions_explainer_1": "Unverified sessions are sessions that have been signed in with your credentials but have not been confirmed with your digital identity.",
|
||||
"unverified_sessions_explainer_2": "You should make especially certain that you recognise these sessions as they could represent an unauthorised use of your account.",
|
||||
"unverified_sessions_list_description": "Verify your sessions for enhanced secure messaging or sign out from those you don't recognize or use anymore.",
|
||||
"unverified_sessions_list_description": "Verify your sessions for enhanced secure messaging or remove from those you don't recognize or use anymore.",
|
||||
"url": "URL",
|
||||
"verified_session": "Verified session",
|
||||
"verified_sessions": "Verified sessions",
|
||||
"verified_sessions_explainer_1": "Verified sessions are anywhere you are using this account after entering your passphrase or confirming your identity with another verified session.",
|
||||
"verified_sessions_explainer_1": "Verified sessions have been confirmed your digital identity.",
|
||||
"verified_sessions_explainer_2": "This means that you have all the keys needed to unlock your encrypted messages and confirm to other users that you trust this session.",
|
||||
"verified_sessions_list_description": "For best security, sign out from any session that you don't recognize or use anymore.",
|
||||
"verified_sessions_list_description": "For best security, remove any session that you don't recognize or use anymore.",
|
||||
"verify_session": "Verify session",
|
||||
"web_session": "Web session"
|
||||
},
|
||||
@@ -3157,7 +3157,7 @@
|
||||
"view": "Views room with given address",
|
||||
"whois": "Displays information about a user"
|
||||
},
|
||||
"sliding_sync_legacy_no_longer_supported": "Legacy sliding sync is no longer supported: please log out and back in to enable the new sliding sync flag",
|
||||
"sliding_sync_legacy_no_longer_supported": "Legacy sliding sync is no longer supported: please sign in again to enable the new sliding sync flag",
|
||||
"space": {
|
||||
"add_existing_room_space": {
|
||||
"create": "Want to add a new room instead?",
|
||||
@@ -3350,7 +3350,7 @@
|
||||
"creation_summary_dm": "%(creator)s created this DM.",
|
||||
"creation_summary_room": "%(creator)s created and configured the room.",
|
||||
"decryption_failure": {
|
||||
"sender_identity_previously_verified": "Sender's verified identity was reset",
|
||||
"sender_identity_previously_verified": "Sender's verified digital identity was reset",
|
||||
"unable_to_decrypt": "Unable to decrypt message"
|
||||
},
|
||||
"disambiguated_profile": "%(displayName)s (%(matrixId)s)",
|
||||
@@ -3812,7 +3812,7 @@
|
||||
"ban_space_everything": "Ban them from everything I'm able to",
|
||||
"ban_space_specific": "Ban them from specific things I'm able to",
|
||||
"deactivate_confirm_action": "Deactivate user",
|
||||
"deactivate_confirm_description": "Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?",
|
||||
"deactivate_confirm_description": "Deactivating this user will remove their devices and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?",
|
||||
"deactivate_confirm_title": "Deactivate user?",
|
||||
"demote_button": "Demote",
|
||||
"demote_self_confirm_description_space": "You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the space it will be impossible to regain privileges.",
|
||||
|
||||
@@ -2086,8 +2086,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s ekigis voĉvokon. (mankas subteno en ĉi tiu foliumilo)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Malĉifro de aldonaĵo eraris",
|
||||
"error_invalid": "Malvalida dosiero%(extra)s"
|
||||
"error_decrypting": "Malĉifro de aldonaĵo eraris"
|
||||
},
|
||||
"m.image": {
|
||||
"error_decrypting": "Malĉifro de bildo eraris",
|
||||
@@ -2352,13 +2351,6 @@
|
||||
},
|
||||
"one_user": "%(displayName)s tajpas…",
|
||||
"two_users": "%(names)s kaj %(lastPerson)s tajpas…"
|
||||
},
|
||||
"url_preview": {
|
||||
"close": "Fermi antaŭrigardon",
|
||||
"show_n_more": {
|
||||
"one": "Montri %(count)s alian antaŭrigardon",
|
||||
"other": "Montri %(count)s aliajn antaŭrigardojn"
|
||||
}
|
||||
}
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
|
||||
@@ -1270,8 +1270,6 @@
|
||||
"upload_file": "Cargar un archivo"
|
||||
},
|
||||
"labs": {
|
||||
"automatic_debug_logs": "Mandar automáticamente los registros de depuración cuando ocurra cualquier error",
|
||||
"automatic_debug_logs_decryption": "Enviar los registros de depuración automáticamente de fallos al descifrar",
|
||||
"beta_description": "¿Qué novedades se esperan en %(brand)s? La sección de experimentos es la mejor manera de ver las cosas antes de que se publiquen, probar nuevas funcionalidades y ayudar a mejorarlas antes de su lanzamiento.",
|
||||
"beta_feature": "Esta funcionalidad está en beta",
|
||||
"beta_feedback_leave_button": "Para salir de la beta, ve a tus ajustes.",
|
||||
@@ -2755,8 +2753,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s hizo una llamada de voz. (no soportada por este navegador)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Error al descifrar adjunto",
|
||||
"error_invalid": "Archivo inválido %(extra)s"
|
||||
"error_decrypting": "Error al descifrar adjunto"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "No es posible mostrar la imagen debido a un error",
|
||||
@@ -3080,14 +3077,7 @@
|
||||
"one_user": "%(displayName)s está escribiendo…",
|
||||
"two_users": "%(names)s y %(lastPerson)s están escribiendo…"
|
||||
},
|
||||
"undecryptable_tooltip": "No se ha podido descifrar este mensaje",
|
||||
"url_preview": {
|
||||
"close": "Cerrar vista previa",
|
||||
"show_n_more": {
|
||||
"one": "Ver otras %(count)s vistas previas",
|
||||
"other": "Ver %(count)s otra vista previa"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "No se ha podido descifrar este mensaje"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Y %(count)s más…"
|
||||
|
||||
@@ -1495,8 +1495,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Võta kasutusele liitumine kasutaja sooviavalduse alusel",
|
||||
"automatic_debug_logs": "Iga vea puhul saada silumislogid automaatselt arendajatele",
|
||||
"automatic_debug_logs_decryption": "Dekrüptimisvigade puhul saada silumislogid automaatselt arendajatele",
|
||||
"beta_description": "Mida %(brand)s tulevikus teha oskab? Arendusjärgus funktsionaalsuste loendist leiad võimalusi, mis varsti on kõigile saadaval, kuid sa saad neid juba katsetada ning ka mõjutada missuguseks nad lõplikukt kujunevad.",
|
||||
"beta_feature": "See on veel katsetamisjärgus funktsionaalsus",
|
||||
"beta_feedback_leave_button": "Beetaversiooni saad välja lülitada rakenduse seadistustest.",
|
||||
@@ -3398,8 +3396,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s alustas häälkõnet. (sellel brauseril puudub niisuguste kõnede tugi)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Viga manuse dekrüptimisel",
|
||||
"error_invalid": "Vigane fail"
|
||||
"error_decrypting": "Viga manuse dekrüptimisel"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Vea tõttu ei ole võimalik pilti kuvada",
|
||||
@@ -3740,14 +3737,7 @@
|
||||
"one_user": "%(displayName)s kirjutab midagi…",
|
||||
"two_users": "%(names)s ja %(lastPerson)s kirjutavad midagi…"
|
||||
},
|
||||
"undecryptable_tooltip": "Seda sõnumit ei õnnestunud dekrüptida",
|
||||
"url_preview": {
|
||||
"close": "Sulge eelvaade",
|
||||
"show_n_more": {
|
||||
"other": "Näita %(count)s muud eelvaadet",
|
||||
"one": "Näita veel %(count)s eelvaadet"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Seda sõnumit ei õnnestunud dekrüptida"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Ja %(count)s muud..."
|
||||
|
||||
@@ -1803,8 +1803,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s تماس صوتی برقرار کرد. (توسط این مرورگر پشتیبانی نمی شود)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "خطا در رمزگشایی پیوست",
|
||||
"error_invalid": "پرونده نامعتبر%(extra)s"
|
||||
"error_decrypting": "خطا در رمزگشایی پیوست"
|
||||
},
|
||||
"m.image": {
|
||||
"error_decrypting": "خطا در رمزگشایی تصویر",
|
||||
@@ -2065,9 +2064,6 @@
|
||||
},
|
||||
"one_user": "%(displayName)s در حال نوشتن…",
|
||||
"two_users": "%(names)s و %(lastPerson)s در حال نوشتن…"
|
||||
},
|
||||
"url_preview": {
|
||||
"close": "بستن پیش نمایش"
|
||||
}
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
|
||||
@@ -1235,8 +1235,6 @@
|
||||
"upload_file": "Lähetä tiedosto"
|
||||
},
|
||||
"labs": {
|
||||
"automatic_debug_logs": "Lähetä vianjäljityslokit automaattisesti minkä tahansa virheen tapahtuessa",
|
||||
"automatic_debug_logs_decryption": "Lähetä vianjäljityslokit automaattisesti salauksen purkuun liittyvien virheiden tapahtuessa",
|
||||
"beta_description": "Mitä uutta %(brand)s sisältää seuraavaksi? Laboratoriot ovat paras tapa tutustua asioihin aikaisin, testata uusia ominaisuuksia ja auttaa muokkaamaan niitä ennen julkaisua.",
|
||||
"beta_feature": "Tämä on beetaominaisuus",
|
||||
"beta_feedback_leave_button": "Poistu beetasta asetuksista.",
|
||||
@@ -2855,8 +2853,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s soitti äänipuhelun. (selaimesi ei tue äänipuheluita)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Virhe purettaessa liitteen salausta",
|
||||
"error_invalid": "Virheellinen tiedosto"
|
||||
"error_decrypting": "Virhe purettaessa liitteen salausta"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Kuvan näyttäminen epäonnistui virheen vuoksi",
|
||||
@@ -3182,14 +3179,7 @@
|
||||
"one_user": "%(displayName)s kirjoittaa…",
|
||||
"two_users": "%(names)s ja %(lastPerson)s kirjoittavat…"
|
||||
},
|
||||
"undecryptable_tooltip": "Tämän viestin salausta ei voitu purkaa",
|
||||
"url_preview": {
|
||||
"close": "Sulje esikatselu",
|
||||
"show_n_more": {
|
||||
"one": "Näytä %(count)s muu esikatselu",
|
||||
"other": "Näytä %(count)s muuta esikatselua"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Tämän viestin salausta ei voitu purkaa"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Ja %(count)s muuta..."
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"show_advanced": "Afficher les paramètres avancés",
|
||||
"show_all": "Tout afficher",
|
||||
"sign_in": "Se connecter",
|
||||
"sign_out": "Se déconnecter",
|
||||
"sign_out": "Supprimer cet appareil",
|
||||
"skip": "Passer",
|
||||
"start": "Commencer",
|
||||
"start_chat": "Commencer une conversation privée",
|
||||
@@ -221,11 +221,11 @@
|
||||
"incorrect_password": "Mot de passe incorrect",
|
||||
"log_in_new_account": "<a>Connectez-vous</a> à votre nouveau compte.",
|
||||
"logout_dialog": {
|
||||
"description": "Voulez-vous vraiment vous déconnecter ?",
|
||||
"description": "Êtes-vous sûr de vouloir supprimer cet appareil ?",
|
||||
"megolm_export": "Exporter manuellement les clés",
|
||||
"setup_key_backup_title": "Vous perdrez l’accès à vos messages chiffrés",
|
||||
"setup_secure_backup_description_1": "Les messages chiffrés sont sécurisés avec un chiffrement de bout en bout. Seuls vous et le(s) destinataire(s) ont les clés pour lire ces messages.",
|
||||
"setup_secure_backup_description_2": "Quand vous vous déconnectez, ces clés seront supprimées de cet appareil, et vous ne pourrez plus lire les messages chiffrés à moins d’avoir les clés de ces messages sur vos autres appareils, ou de les avoir sauvegardées sur le serveur.",
|
||||
"setup_secure_backup_description_2": "Quand vous supprimez cet appareil, vous ne pourrez plus lire les messages chiffrés à moins d’avoir les clés de ces messages sur vos autres appareils, ou de les avoir sauvegardées sur le serveur.",
|
||||
"skip_key_backup": "Je ne veux pas de mes messages chiffrés"
|
||||
},
|
||||
"misconfigured_body": "Demandez à votre administrateur %(brand)s de vérifier que <a>votre configuration</a> ne contient pas d’entrées incorrectes ou en double.",
|
||||
@@ -298,16 +298,16 @@
|
||||
"registration_username_validation": "Utiliser uniquement des lettres minuscules, chiffres, traits d’union et tirets bas",
|
||||
"reset_password": {
|
||||
"confirm_new_password": "Confirmer le nouveau mot de passe",
|
||||
"devices_logout_success": "Vous avez été déconnecté de tous vos appareils et ne recevrez plus de notification. Pour réactiver les notifications, reconnectez-vous sur chaque appareil.",
|
||||
"other_devices_logout_warning_1": "La déconnexion de vos appareils va supprimer les clés de chiffrement des messages qu’ils possèdent, rendant l’historique des conversations chiffrées illisible.",
|
||||
"other_devices_logout_warning_2": "Si vous voulez garder un accès à votre historique de conversation dans les salons chiffrés, configurez la sauvegarde de clés, ou bien exportez vos clés de messages à partir de l’un de vos autres appareils avant de continuer.",
|
||||
"devices_logout_success": "Tous vos appareils ont été supprimés et ne recevront plus de notifications push. Pour réactiver les notifications, connectez-vous à nouveau sur chaque appareil.",
|
||||
"other_devices_logout_warning_1": "La suppession de vos appareils va supprimer les clés de chiffrement des messages qu’ils possèdent, rendant l’historique des discussions chiffrées illisible.",
|
||||
"other_devices_logout_warning_2": "Si vous voulez garder un accès à votre historique de discussion dans les salons chiffrés, configurez la clé de récupération, ou bien exportez vos clés de messages à partir de l’un de vos autres appareils avant de continuer.",
|
||||
"password_not_entered": "Un nouveau mot de passe doit être saisi.",
|
||||
"passwords_mismatch": "Les nouveaux mots de passe doivent être identiques.",
|
||||
"rate_limit_error": "Trop de tentatives consécutives. Attendez un peu avant de réessayer.",
|
||||
"rate_limit_error_with_time": "Trop de tentatives consécutives. Réessayez après %(timeout)s.",
|
||||
"reset_successful": "Votre mot de passe a été réinitialisé.",
|
||||
"return_to_login": "Retourner à l’écran de connexion",
|
||||
"sign_out_other_devices": "Déconnecter tous les appareils"
|
||||
"sign_out_other_devices": "Supprimer tous les appareils"
|
||||
},
|
||||
"reset_password_action": "Réinitialiser le mot de passe",
|
||||
"reset_password_button": "Mot de passe oublié ?",
|
||||
@@ -331,7 +331,7 @@
|
||||
"server_picker_title_default": "Options serveur",
|
||||
"server_picker_title_registration": "Héberger le compte sur",
|
||||
"session_logged_out_description": "Par mesure de sécurité, la session a expiré. Merci de vous authentifier à nouveau.",
|
||||
"session_logged_out_title": "Déconnecté",
|
||||
"session_logged_out_title": "Session supprimée",
|
||||
"set_email": {
|
||||
"description": "Ceci vous permettra de réinitialiser votre mot de passe et de recevoir des notifications.",
|
||||
"verification_pending_description": "Veuillez consulter vos e-mails et cliquer sur le lien que vous avez reçu. Puis cliquez sur continuer.",
|
||||
@@ -371,8 +371,8 @@
|
||||
"email_resent": "Ré-envoyé !",
|
||||
"fallback_button": "Commencer l’authentification",
|
||||
"mas_cross_signing_reset_cta": "Accédez à votre compte",
|
||||
"mas_cross_signing_reset_description": "Réinitialisez votre identité par l’intermédiaire de votre fournisseur de compte, puis revenez et cliquez sur « Réessayer ».",
|
||||
"mas_cross_signing_reset_title": "Accédez à votre compte pour réinitialiser votre identité",
|
||||
"mas_cross_signing_reset_description": "Vous êtes sur le point d'aller sur votre compte %(serverName)s pour réinitialiser votre identité numérique. Une fois la réinitialisation terminée, revenez ici et cliquez sur Réessayer.",
|
||||
"mas_cross_signing_reset_title": "Accédez à votre compte pour réinitialiser votre identité numérique.",
|
||||
"msisdn": "Un message a été envoyé à %(msisdn)s",
|
||||
"msisdn_token_incorrect": "Jeton incorrect",
|
||||
"msisdn_token_prompt": "Merci de saisir le code qu’il contient :",
|
||||
@@ -694,7 +694,7 @@
|
||||
"creating_rooms": "Création des salons…",
|
||||
"done_action": "Accéder à mon espace",
|
||||
"done_action_first_room": "Rejoindre mon premier salon",
|
||||
"explainer": "Les espaces sont une nouvelle manière de regrouper les salons et les personnes. Quel type d’espace voulez-vous créer ? Vous pouvez changer ceci plus tard.",
|
||||
"explainer": "Les espaces permettent d'organiser et de découvrir des salons. Quel type d'espace souhaitez-vous créer ?",
|
||||
"failed_create_initial_rooms": "Échec de la création des salons initiaux de l’espace",
|
||||
"failed_invite_users": "Échec de l’invitation des utilisateurs suivants à votre espace : %(csvUsers)s",
|
||||
"invite_teammates_by_username": "Inviter par nom d’utilisateur",
|
||||
@@ -705,20 +705,20 @@
|
||||
"name_required": "Veuillez renseigner un nom pour l’espace",
|
||||
"personal_space": "Seulement moi",
|
||||
"personal_space_description": "Un espace privé pour organiser vos salons",
|
||||
"private_description": "Sur invitation, idéal pour vous-même ou les équipes",
|
||||
"private_description": "Sur invitation, pour vous-même ou les équipes",
|
||||
"private_heading": "Votre espace privé",
|
||||
"private_only_heading": "Votre Espace",
|
||||
"private_personal_description": "Assurez-vous que les bonnes personnes aient accès à %(name)s",
|
||||
"private_personal_heading": "Avec qui travaillez-vous ?",
|
||||
"private_space": "Moi et mon équipe",
|
||||
"private_space_description": "Un espace privé pour vous et votre équipe",
|
||||
"public_description": "Espace ouvert à tous, idéal pour les communautés",
|
||||
"public_description": "Tout le monde peut rejoindre, idéal pour les communautés",
|
||||
"public_heading": "Votre espace public",
|
||||
"search_public_button": "Rechercher des espaces publics",
|
||||
"setup_rooms_community_description": "Créons un salon pour chacun d’entre eux.",
|
||||
"setup_rooms_community_description": "Commençons par créer quelques salons.",
|
||||
"setup_rooms_community_heading": "De quoi voulez-vous discuter dans %(spaceName)s ?",
|
||||
"setup_rooms_description": "Vous pourrez en ajouter plus tard, y compris certains déjà existant.",
|
||||
"setup_rooms_private_description": "Nous allons créer un salon pour chacun d’entre eux.",
|
||||
"setup_rooms_description": "Vous pourrez ajouter ultérieurement d'autres salons à cet espace, y compris des salons existants.",
|
||||
"setup_rooms_private_description": "Commencez par créer quelques salons.",
|
||||
"setup_rooms_private_heading": "Sur quels projets travaille votre équipe ?",
|
||||
"share_description": "Vous êtes seul pour l’instant, ce sera plus agréable avec de la compagnie.",
|
||||
"share_heading": "Partager %(name)s",
|
||||
@@ -731,7 +731,7 @@
|
||||
"subspace_join_rule_invite_only": "Espace privé (uniquement sur invitation)",
|
||||
"subspace_join_rule_label": "Visibilité de l’espace",
|
||||
"subspace_join_rule_public_description": "Quiconque pourra trouver et rejoindre cet espace, pas seulement les membres de <SpaceName/>.",
|
||||
"subspace_join_rule_restricted_description": "Tous les membres de <SpaceName/> pourront trouver et venir."
|
||||
"subspace_join_rule_restricted_description": "Tout le monde dans <SpaceName/> peut rejoindre."
|
||||
},
|
||||
"credits": {
|
||||
"default_cover_photo": "La <photo>photo d’illustration par défaut</photo> est © <author>Jesús Roncero</author> utilisée selon les termes <terms>CC-BY-SA 4.0</terms>.",
|
||||
@@ -751,6 +751,7 @@
|
||||
"category_other": "Autre",
|
||||
"category_room": "Salon",
|
||||
"caution_colon": "Attention :",
|
||||
"checking_sticky_events_support": "Vérification de la prise en charge des événements persistants...",
|
||||
"client_versions": "Versions des clients",
|
||||
"crypto": {
|
||||
"4s_public_key_in_account_data": "dans les données du compte",
|
||||
@@ -773,7 +774,7 @@
|
||||
"cross_signing_public_keys_on_device_status": "Clés publiques de signature croisée :",
|
||||
"cross_signing_ready": "La signature croisée est prête à être utilisée.",
|
||||
"cross_signing_status": "État de la signature croisée :",
|
||||
"cross_signing_untrusted": "Votre compte a une identité de signature croisée dans le coffre secret, mais cette session ne lui fait pas encore confiance.",
|
||||
"cross_signing_untrusted": "Votre compte possède une identité numérique stockée dans le coffre secret mais celle-ci n'est pas encore approuvée par cette session.",
|
||||
"crypto_not_available": "Le module cryptographique n'est pas disponible",
|
||||
"device_id": "Identifiant de l'appareil",
|
||||
"key_backup_active_version": "Version de sauvegarde active :",
|
||||
@@ -809,13 +810,18 @@
|
||||
"edit_setting": "Modifier le paramètre",
|
||||
"edit_values": "Modifier les valeurs",
|
||||
"empty_string": "<chaîne de caractères vide>",
|
||||
"error_sticky_duration_must_be_a_number": "stickyDuration doit être un nombre",
|
||||
"error_sticky_duration_out_of_range": "stickyDuration doit être compris entre 0 et 36000 millisecondes (1h)",
|
||||
"event_content": "Contenu de l’évènement",
|
||||
"event_id": "Identifiant d’événement : %(eventId)s",
|
||||
"event_sent": "Évènement envoyé !",
|
||||
"event_type": "Type d’évènement",
|
||||
"expired": "Expiré",
|
||||
"expires_in": "Expire dans",
|
||||
"explore_account_data": "Parcourir les données du compte",
|
||||
"explore_room_account_data": "Parcourir les données de compte du salon",
|
||||
"explore_room_state": "Parcourir l’état du salon",
|
||||
"explore_sticky_state": "Explorer l'état persistant",
|
||||
"failed_to_find_widget": "Erreur lors de la récupération de ce widget.",
|
||||
"failed_to_load": "Échec du chargement.",
|
||||
"failed_to_save": "Échec lors de la sauvegarde des paramètres.",
|
||||
@@ -829,6 +835,7 @@
|
||||
"main_timeline": "Historique principal",
|
||||
"manual_device_verification": "Vérification manuelle de l'appareil",
|
||||
"no_receipt_found": "Aucun accusé disponible",
|
||||
"no_sticky_events": "Il n'y a pas d'événements persistants dans ce salon.",
|
||||
"notification_state": "L’état des notifications est <strong>%(notificationState)s</strong>",
|
||||
"notifications_debug": "Débogage des notifications",
|
||||
"number_of_users": "Nombre d’utilisateurs",
|
||||
@@ -855,6 +862,7 @@
|
||||
"send_custom_account_data_event": "Envoyer des événements personnalisés de données du compte",
|
||||
"send_custom_room_account_data_event": "Envoyer des événements personnalisés de données du compte du salon",
|
||||
"send_custom_state_event": "Envoyer des événements d’état personnalisés",
|
||||
"send_custom_sticky_event": "Envoyer un événement personnalisé persistant",
|
||||
"send_custom_timeline_event": "Envoyer des événements d’historique personnalisé",
|
||||
"server_info": "Infos du serveur",
|
||||
"server_versions": "Versions des serveurs",
|
||||
@@ -874,6 +882,9 @@
|
||||
"other": "<%(count)s espaces>"
|
||||
},
|
||||
"state_key": "Clé d’état",
|
||||
"sticky_duration": "Durée de persistance (ms)",
|
||||
"sticky_events_not_supported": "Votre serveur d'accueil ne prend pas encore en charge les événements persistants.",
|
||||
"sticky_key": "Clé persistante",
|
||||
"thread_root_id": "ID du fil de discussion racine : %(threadRootId)s",
|
||||
"threads_timeline": "Historique des fils de discussion",
|
||||
"title": "Outils de développement",
|
||||
@@ -891,10 +902,10 @@
|
||||
"user_read_up_to_private_ignore_synthetic": "L’utilisateur a lu jusqu’à (m.read.private;ignoreSynthetic) : ",
|
||||
"user_room_membership": "Adhésion : %(membership)s",
|
||||
"user_verification_status": {
|
||||
"identity_changed": "Statut de la vérification : <E2EIcon /> Non vérifié, et identité modifiée",
|
||||
"identity_changed": "Statut de la vérification : <E2EIcon /> Non vérifié, et identité numérique changée",
|
||||
"unverified": "Statut de la vérification vérification : <E2EIcon /> Non vérifié",
|
||||
"verified": "Statut de la vérification : <E2EIcon /> Vérifié",
|
||||
"was_verified": "Statut de la vérifcation vérification : <E2EIcon /> Etait vérifié, mais l'identité a changé."
|
||||
"was_verified": "Statut de la vérifcation vérification : <E2EIcon /> Etait vérifié, mais l'identité numérique a changé."
|
||||
},
|
||||
"users": "Utilisateurs",
|
||||
"value": "Valeur",
|
||||
@@ -960,7 +971,7 @@
|
||||
"event_shield_reason_unverified_identity": "Chiffré par un utilisateur non vérifié.",
|
||||
"export_unsupported": "Votre navigateur ne prend pas en charge les extensions cryptographiques nécessaires",
|
||||
"forgot_recovery_key": "Clé de récupération oubliée ?",
|
||||
"identity_needs_reset_description": "Vous devez réinitialiser votre identité cryptographique pour garantir l'accès à votre historique de messages.",
|
||||
"identity_needs_reset_description": "Vous devez réinitialiser votre identité numérique pour garantir l'accès à votre historique de discussions.",
|
||||
"import_invalid_keyfile": "Fichier de clé %(brand)s non valide",
|
||||
"import_invalid_passphrase": "Erreur d’authentification : mot de passe incorrect ?",
|
||||
"key_storage_out_of_sync": "Le stockage de vos clés n'est pas synchronisé.",
|
||||
@@ -980,22 +991,22 @@
|
||||
"title": "Nouvelle méthode de récupération",
|
||||
"warning": "Si vous n’avez pas activé de nouvelle méthode de récupération, un attaquant essaye peut-être d’accéder à votre compte. Changez immédiatement le mot de passe de votre compte et configurez une nouvelle méthode de récupération dans les paramètres."
|
||||
},
|
||||
"pinned_identity_changed": "L'identité de %(displayName)s (<b>%(userId)s</b>) semble avoir changé. <a>En savoir plus</a>",
|
||||
"pinned_identity_changed_no_displayname": "<b>%(userId)s</b>semble avoir changé d'identité. <a>En savoir plus</a>",
|
||||
"pinned_identity_changed": "L'identité numérique de %(displayName)s (<b>%(userId)s</b> a été réinitialisée.<a>En savoir plus</a>",
|
||||
"pinned_identity_changed_no_displayname": "L' identité numérique de <b>%(userId)s</b> a été réinitialisée.<a>En savoir plus</a>",
|
||||
"recovery_method_removed": {
|
||||
"description_1": "Cette session a détecté que votre phrase de sécurité et clé de sécurité pour les messages sécurisés ont été supprimées.",
|
||||
"description_2": "Si vous l’avez fait accidentellement, vous pouvez configurer les messages sécurisés sur cette session ce qui re-chiffrera l’historique des messages de cette session avec une nouvelle méthode de récupération.",
|
||||
"title": "Méthode de récupération supprimée",
|
||||
"warning": "Si vous n’avez pas supprimé la méthode de récupération, un attaquant peut être en train d’essayer d’accéder à votre compte. Modifiez le mot de passe de votre compte et configurez une nouvelle méthode de récupération dans les réglages."
|
||||
},
|
||||
"set_up_recovery": "Configurer la récupération",
|
||||
"set_up_recovery_toast_description": "Générez une clé de récupération qui peut être utilisée pour restaurer l'historique de vos messages chiffrés au cas où vous perdriez l'accès à vos appareils.",
|
||||
"set_up_recovery": "Sauvegardez vos discussions",
|
||||
"set_up_recovery_toast_description": "Vos discussions sont automatiquement sauvegardées grâce à un chiffrement de bout en bout. Pour restaurer cette sauvegarde et conserver votre identité numérique en cas de perte d'accès à tous vos appareils, vous aurez besoin de votre clé de récupération.",
|
||||
"set_up_toast_title": "Configurer la sauvegarde sécurisée",
|
||||
"setup_secure_backup": {
|
||||
"explainer": "Sauvegardez vos clés avant de vous déconnecter pour éviter de les perdre."
|
||||
"explainer": "Sauvegardez vos clés avant de supprimer cet appareil pour éviter de les perdre."
|
||||
},
|
||||
"turn_on_key_storage": "Activer le stockage des clés",
|
||||
"turn_on_key_storage_description": "Stockez votre identité cryptographique et vos clés de message en toute sécurité sur le serveur. Cela vous permettra de consulter l'historique de vos messages sur tous les nouveaux appareils.",
|
||||
"turn_on_key_storage_description": "Cela vous permettra de consulter votre historique de conversations sur tous vos nouveaux appareils et est nécessaire pour la sauvegarde de vos discussions et de votre identité numérique.",
|
||||
"udd": {
|
||||
"interactive_verification_button": "Vérifier de façon interactive avec des émojis",
|
||||
"other_ask_verify_text": "Demandez à cet utilisateur de vérifier sa session, ou vérifiez-la manuellement ci-dessous.",
|
||||
@@ -1019,7 +1030,7 @@
|
||||
"complete_description": "Vous avez vérifié cet utilisateur avec succès.",
|
||||
"complete_title": "Vérifié !",
|
||||
"confirm_identity_description": "Vérifier cet appareil pour configurer votre messagerie sécurisée",
|
||||
"confirm_identity_title": "Confirmez votre identité",
|
||||
"confirm_identity_title": "Confirmez votre identité numérique",
|
||||
"confirm_the_emojis": "Confirmez que les émojis ci-dessous correspondent à ceux affichés sur votre autre appareil.",
|
||||
"error_starting_description": "Nous n’avons pas pu démarrer une conversation avec l’autre utilisateur.",
|
||||
"error_starting_title": "Erreur en démarrant la vérification",
|
||||
@@ -1103,10 +1114,10 @@
|
||||
"waiting_other_user": "En attente de la vérification de %(displayName)s…"
|
||||
},
|
||||
"verification_requested_toast_title": "Vérification requise",
|
||||
"verified_identity_changed": "L'identité de %(displayName)s (<b>%(userId)s</b>) a été réinitialisée. <a>En savoir plus</a>",
|
||||
"verified_identity_changed": "L'identité numérique de %(displayName)s (<b>%(userId)s</b>) a été réinitialisée. <a>En savoir plus</a>",
|
||||
"verified_identity_changed_no_displayname": "L'identité de <b>%(userId)s</b> a été réinitialisée. <a>En savoir plus </a>",
|
||||
"verify_toast_description": "D’autres utilisateurs pourraient ne pas lui faire confiance",
|
||||
"verify_toast_title": "Vérifier cette session",
|
||||
"verify_toast_description": "À compter de fin avril 2026, les appareils non vérifiés ne pourront plus envoyer ni recevoir de messages.<a>En savoir plus</a>",
|
||||
"verify_toast_title": "Vérifiez cet appareil",
|
||||
"withdraw_verification_action": "Révoquer la vérification"
|
||||
},
|
||||
"error": {
|
||||
@@ -1131,15 +1142,15 @@
|
||||
"non_urgent_echo_failure_toast": "Votre serveur ne répond pas à certaines <a>requêtes</a>.",
|
||||
"resource_limits": "Ce serveur d’accueil a dépassé une de ses limites de ressources.",
|
||||
"session_restore": {
|
||||
"clear_storage_button": "Effacer le stockage et se déconnecter",
|
||||
"clear_storage_description": "Se déconnecter et supprimer les clés de chiffrement ?",
|
||||
"description_1": "Une erreur est survenue lors de la restauration de la dernière session.",
|
||||
"clear_storage_button": "Supprimer cet appareil",
|
||||
"clear_storage_description": "Supprimer cet appareil avec ses les clés de chiffrement ?",
|
||||
"description_1": "Une erreur est survenue lors de la restauration de la session.",
|
||||
"description_2": "Si vous avez utilisé une version plus récente de %(brand)s précédemment, votre session risque d’être incompatible avec cette version. Fermez cette fenêtre et retournez à la version plus récente.",
|
||||
"description_3": "Effacer le stockage de votre navigateur peut résoudre le problème. Ceci vous déconnectera et tous les historiques de conversations chiffrées seront illisibles.",
|
||||
"description_3": "Effacer le stockage de votre navigateur peut résoudre le problème. Ceci supprimera cet appareil et les historiques de conversations chiffrées seront illisibles.",
|
||||
"title": "Impossible de restaurer la session"
|
||||
},
|
||||
"something_went_wrong": "Quelque chose s’est mal déroulé !",
|
||||
"storage_evicted_description_1": "Des données de la session, dont les clés des messages chiffrés, sont manquantes. Déconnectez-vous et reconnectez-vous pour régler ce problème, en restaurant les clés depuis la sauvegarde.",
|
||||
"storage_evicted_description_1": "Certaines données de session, notamment les clés de chiffrement des messages, sont manquantes. Supprimez cet appareil et reconnectez-vous pour résoudre ce problème et restaurer les clés à partir de votre sauvegarde.",
|
||||
"storage_evicted_description_2": "Votre navigateur a sûrement supprimé ces données car il restait peu d’espace sur le disque.",
|
||||
"storage_evicted_title": "Données de la session manquantes",
|
||||
"sync": "Impossible de se connecter au serveur d’accueil. Reconnexion…",
|
||||
@@ -1495,8 +1506,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Activer demander à venir",
|
||||
"automatic_debug_logs": "Envoyer automatiquement les journaux de débogage en cas d’erreur",
|
||||
"automatic_debug_logs_decryption": "Envoyer automatiquement les journaux de débogage en cas d’erreurs de déchiffrement",
|
||||
"beta_description": "Que va-t-il se passer dans %(brand)s ? La section expérimentale est la meilleure manière d’avoir des choses en avance, tester les nouvelles fonctionnalités et d’aider à les affiner avant leur lancement officiel.",
|
||||
"beta_feature": "Il s'agit d'une fonctionnalité bêta",
|
||||
"beta_feedback_leave_button": "Pour quitter la bêta, consultez les paramètres.",
|
||||
@@ -1563,7 +1572,7 @@
|
||||
"share_history_on_invite_warning": "Cette fonctionnalité est EXPÉRIMENTALE et toutes les précautions de sécurité ne sont pas mises en œuvre. Ne l'activez pas sur les comptes en production.",
|
||||
"sliding_sync": "Mode synchronisation progressive",
|
||||
"sliding_sync_description": "En cours de développement, ne peut être désactivé.",
|
||||
"sliding_sync_disabled_notice": "Déconnectez et revenez pour désactiver",
|
||||
"sliding_sync_disabled_notice": "Connectez-vous à nouveau pour désactiver",
|
||||
"sliding_sync_server_no_support": "Votre serveur n'est pas pris en charge",
|
||||
"under_active_development": "En cours de développement.",
|
||||
"unrealiable_e2e": "Non fiable dans les salons chiffrés",
|
||||
@@ -1988,6 +1997,7 @@
|
||||
"error_join_incompatible_version_1": "Désolé, votre serveur d'accueil est trop vieux pour participer ici.",
|
||||
"error_join_incompatible_version_2": "Veuillez contacter l’administrateur de votre serveur d’accueil.",
|
||||
"error_join_title": "Impossible de rejoindre",
|
||||
"error_join_unknown": "Une erreur inconnue s'est produite",
|
||||
"error_jump_to_date": "Le serveur a renvoyé %(statusCode)s avec le code d’erreur %(errorCode)s",
|
||||
"error_jump_to_date_connection": "Une erreur réseau s’est produite en tentant de chercher et d’aller à la date choisie. Votre serveur d’accueil est peut-être hors-ligne, ou bien c’est un problème temporaire avec connexion Internet. Veuillez réessayer. Si cela persiste, veuillez contacter l’administrateur de votre serveur d’accueil.",
|
||||
"error_jump_to_date_details": "Détails de l’erreur",
|
||||
@@ -2357,21 +2367,22 @@
|
||||
"join_rule_invite_description": "Seules les personnes invitées peuvent venir.",
|
||||
"join_rule_knock": "Demander à venir",
|
||||
"join_rule_knock_description": "Les personnes ne peuvent pas venir tant que l’accès ne leur est pas autorisé.",
|
||||
"join_rule_public": "Quiconque",
|
||||
"join_rule_public_description": "Tout le monde peut joindre",
|
||||
"join_rule_restricted": "Membres de l’espace",
|
||||
"join_rule_restricted_description": "Tout le monde dans un espace peut trouver et venir. <a>Modifier les accès des espaces ici.</a>",
|
||||
"join_rule_restricted_description_active_space": "Quiconque dans <spaceName/> peut trouver et rejoindre. Vous pouvez également choisir d’autres espaces.",
|
||||
"join_rule_restricted_description_prompt": "Tout le monde dans un espace peut trouver et venir. Vous pouvez sélectionner plusieurs espaces.",
|
||||
"join_rule_restricted_description_spaces": "Espaces avec accès",
|
||||
"join_rule_restricted_dialog_description": "Choisir quels espaces peuvent accéder à ce salon. Si un espace est sélectionné, ses membres pourront trouver et rejoindre <RoomName/>.",
|
||||
"join_rule_restricted_dialog_empty_warning": "Vous allez supprimer tous les espaces. L’accès se fera sur invitation uniquement par défaut",
|
||||
"join_rule_restricted_description": "Toute personne se trouvant dans un espace autorisé peut rejoindre sans invitation.<a> Gérer les espaces</a>",
|
||||
"join_rule_restricted_description_active_space": "N'importe qui dans<spaceName/> peut joindre.",
|
||||
"join_rule_restricted_description_prompt": "Toute personne présente dans un espace peut rejoindre.",
|
||||
"join_rule_restricted_description_spaces": "Espaces autorisés",
|
||||
"join_rule_restricted_dialog_description": "Espaces où les membres peuvent rejoindre <RoomName/> sans invitation.",
|
||||
"join_rule_restricted_dialog_empty_warning": "Vous supprimez tous les espaces autorisés. L'accès sera par défaut limité aux invitations.",
|
||||
"join_rule_restricted_dialog_filter_placeholder": "Rechercher des espaces",
|
||||
"join_rule_restricted_dialog_heading_known": "Autres espaces que vous connaissez",
|
||||
"join_rule_restricted_dialog_heading_other": "Autres espaces ou salons que vous pourriez ne pas connaître",
|
||||
"join_rule_restricted_dialog_heading_room": "Les espaces connus qui contiennent ce salon",
|
||||
"join_rule_restricted_dialog_heading_known": "Vos espaces qui ne contiennent pas ce salon",
|
||||
"join_rule_restricted_dialog_heading_other": "Autres espaces dont vous n'êtes pas membre",
|
||||
"join_rule_restricted_dialog_heading_room": "Vos espaces qui contiennent ce salon",
|
||||
"join_rule_restricted_dialog_heading_space": "Les espaces connus qui contiennent cet espace",
|
||||
"join_rule_restricted_dialog_heading_unknown": "Ces autres administrateurs du salon en font probablement partie.",
|
||||
"join_rule_restricted_dialog_title": "Sélectionner des espaces",
|
||||
"join_rule_restricted_dialog_title": "Gérer les espaces",
|
||||
"join_rule_restricted_n_more": {
|
||||
"other": "& %(count)s de plus",
|
||||
"one": "& %(count)s autres"
|
||||
@@ -2404,17 +2415,17 @@
|
||||
"upload_avatar_label": "Envoyer un avatar",
|
||||
"visibility": {
|
||||
"alias_section": "Adresse",
|
||||
"error_failed_save": "Échec de la mise à jour de la visibilité de cet espace",
|
||||
"error_failed_save": "Impossible de mettre à jour les paramètres de cet espace.",
|
||||
"error_update_guest_access": "Échec de la mise à jour de l’accès visiteur de cet espace",
|
||||
"error_update_history_visibility": "Échec de la mise à jour de la visibilité de l’historique pour cet espace",
|
||||
"guest_access_disabled": "Vous n'êtes pas autorisé à modifier les accès invités.",
|
||||
"guest_access_explainer": "Les visiteurs peuvent rejoindre un espace sans disposer d’un compte. Ceci est utile pour les espaces publiques.",
|
||||
"guest_access_label": "Activer l’accès visiteur",
|
||||
"history_visibility_anyone_space": "Aperçu de l’espace",
|
||||
"history_visibility_anyone_space": "Aperçu de l'espace",
|
||||
"history_visibility_anyone_space_description": "Permettre aux personnes d’avoir un aperçu de l’espace avant de le rejoindre.",
|
||||
"history_visibility_anyone_space_disabled": "Vous n'êtes pas autorisé à modifier la visibilité de l'historique.",
|
||||
"history_visibility_anyone_space_recommendation": "Recommandé pour les espaces publics.",
|
||||
"title": "Visibilité"
|
||||
"title": "Sécurité et confidentialité"
|
||||
},
|
||||
"voip": {
|
||||
"call_type_section": "Type d’appel",
|
||||
@@ -2532,10 +2543,10 @@
|
||||
"breadcrumb_page": "Réinitialiser le chiffrement",
|
||||
"breadcrumb_second_description": "Vous perdrez l’historique de vos messages",
|
||||
"breadcrumb_third_description": "Vous devrez vérifier à nouveau tous vos appareils et tous vos contacts",
|
||||
"breadcrumb_title": "Êtes-vous sûr de vouloir réinitialiser votre identité ?",
|
||||
"breadcrumb_title_cant_confirm": "Vous devez réinitialiser votre identité",
|
||||
"breadcrumb_title_forgot": "Vous avez oublié votre clé de récupération ? Vous devez réinitialiser votre identité.",
|
||||
"breadcrumb_title_sync_failed": "Impossible de synchroniser le stockage des clés. Vous devez réinitialiser votre identité.",
|
||||
"breadcrumb_title": "Êtes-vous sûr de vouloir réinitialiser votre identité numérique ?",
|
||||
"breadcrumb_title_cant_confirm": "Vous devez réinitialiser votre identité numérique",
|
||||
"breadcrumb_title_forgot": "Vous avez oublié votre clé de récupération ? Vous devez réinitialiser votre identité numérique.",
|
||||
"breadcrumb_title_sync_failed": "Impossible de synchroniser le stockage des clés. Vous devez réinitialiser votre identité numérique.",
|
||||
"breadcrumb_warning": "Ne faites cela que si vous pensez que votre compte a été compromis.",
|
||||
"details_title": "Détails du chiffrement",
|
||||
"do_not_close_warning": "Ne fermez pas cette fenêtre tant que la réinitialisation n'est pas terminée",
|
||||
@@ -2551,13 +2562,13 @@
|
||||
"title": "Avancé"
|
||||
},
|
||||
"confirm_key_storage_off": "Êtes-vous sûr de vouloir désactiver le stockage des clés ?",
|
||||
"confirm_key_storage_off_description": "Si vous vous déconnectez de tous vos appareils, vous perdrez l'historique de vos messages et vous devrez vérifier à nouveau tous vos contacts existants. <a>En savoir plus </a>",
|
||||
"confirm_key_storage_off_description": "Si vous supprimez tous vos appareils, vous perdrez l'historique de vos messages et devrez vérifier à nouveau tous vos contacts existants.<a>En savoir plus</a>",
|
||||
"delete_key_storage": {
|
||||
"breadcrumb_page": "Désactiver la sauvegarde",
|
||||
"confirm": "Désactiver la sauvegarde",
|
||||
"description": "Désactiver la sauvegarde supprimera votre clé de récupération actuelle et désactivera d’autres mesures de sécurité. Dans ce cas :",
|
||||
"list_first": "Pas d’accès à l’historique des discussions chiffrées sur vos nouveaux appareils",
|
||||
"list_second": "Vous perdrez l'accès à vos messages chiffrés si vous êtes déconnecté de %(brand)s sur tout vos appareils",
|
||||
"list_second": "Vous perdrez l'accès à vos messages chiffrés si vous n'êtes connecté à aucun appareil.",
|
||||
"title": "Êtes-vous certain de vouloir désactiver la sauvegarde ?"
|
||||
},
|
||||
"device_not_verified_button": "Vérifiez cet appareil",
|
||||
@@ -2566,7 +2577,7 @@
|
||||
"dialog_title": "<strong>Paramètres : </strong> Chiffrement",
|
||||
"key_storage": {
|
||||
"allow_key_storage": "Autoriser le stockage des clés",
|
||||
"description": "Stockez votre identité cryptographique et vos clés de message en toute sécurité sur le serveur. Cela vous permettra de consulter l'historique de vos messages sur tous les nouveaux appareils. <a>En savoir plus</a>",
|
||||
"description": "Cela vous permettra de consulter votre historique de discussions sur tous vos nouveaux appareils. Nécessaire pour la sauvegarde de vos discussions et de votre identité numérique.<a>En savoir plus</a>",
|
||||
"title": "Stockage des clés"
|
||||
},
|
||||
"recovery": {
|
||||
@@ -2576,14 +2587,14 @@
|
||||
"change_recovery_key": "Changer la clé de récupération",
|
||||
"change_recovery_key_description": "Notez cette nouvelle clé de récupération dans un endroit sûr. Cliquez ensuite sur Continuer pour confirmer la modification.",
|
||||
"change_recovery_key_title": "Changer la clé de récupération ?",
|
||||
"description": "Récupérez votre identité cryptographique et l'historique de vos messages à l'aide d'une clé de récupération si vous avez perdu tous vos appareils existants.",
|
||||
"description": "Vos discussions sont automatiquement sauvegardées grâce à un chiffrement de bout en bout. Pour restaurer cette sauvegarde et conserver votre identité numérique en cas de perte d'accès à tous vos appareils, vous aurez besoin de votre clé de récupération.",
|
||||
"enter_key_error": "La clé de récupération que vous avez saisie est incorrecte.",
|
||||
"enter_recovery_key": "Saisir la clé de récupération",
|
||||
"forgot_recovery_key": "Clé de récupération oubliée ?",
|
||||
"key_storage_warning": "Le stockage de vos clés n'est pas synchronisé. Cliquez sur l'un des boutons ci-dessous pour résoudre le problème.",
|
||||
"save_key_description": "Ne partagez cela avec personne !",
|
||||
"save_key_title": "Clé de récupération",
|
||||
"set_up_recovery": "Configurer la sauvegarde",
|
||||
"set_up_recovery": "Obtenir la clé de récupération",
|
||||
"set_up_recovery_confirm_button": "Terminer la configuration",
|
||||
"set_up_recovery_confirm_description": "Saisissez la clé de récupération affichée sur l’écran précédent pour terminer la configuration de la récupération.",
|
||||
"set_up_recovery_confirm_title": "Saisissez votre clé de récupération pour confirmer",
|
||||
@@ -2591,7 +2602,7 @@
|
||||
"set_up_recovery_save_key_description": "Recopier cette clé de récupération dans un endroit sûr, comme un gestionnaire de mots de passe, une note chiffrée ou un coffre-fort physique.",
|
||||
"set_up_recovery_save_key_title": "Enregistrez votre clé de récupération dans un endroit sûr",
|
||||
"set_up_recovery_secondary_description": "Après avoir cliqué sur continuer, nous allons générer une clé de récupération pour vous.",
|
||||
"title": "Récupération"
|
||||
"title": "Sauvegarde"
|
||||
},
|
||||
"title": "Chiffrement"
|
||||
},
|
||||
@@ -2881,28 +2892,28 @@
|
||||
"send_read_receipts_unsupported": "Votre serveur ne supporte pas la désactivation de l’envoi des accusés de réception.",
|
||||
"send_typing_notifications": "Envoyer des notifications de saisie",
|
||||
"sessions": {
|
||||
"best_security_note": "Pour une sécurité optimale, vérifiez vos sessions et déconnectez-vous de toute session que vous ne reconnaissez pas ou que vous n’utilisez plus.",
|
||||
"best_security_note": "Pour une sécurité optimale, vérifiez vos sessions et supprimez toutes sessions que vous ne reconnaissez pas ou que vous n’utilisez plus.",
|
||||
"browser": "Navigateur",
|
||||
"confirm_sign_out": {
|
||||
"one": "Confirmer la déconnexion de cet appareil",
|
||||
"other": "Confirmer la déconnexion de ces appareils"
|
||||
"one": "Confirmer la suppression de cet appareil",
|
||||
"other": "Confirmer la suppression de ces appareils"
|
||||
},
|
||||
"confirm_sign_out_body": {
|
||||
"one": "Cliquer sur le bouton ci-dessous pour confirmer la déconnexion de cet appareil.",
|
||||
"other": "Cliquer sur le bouton ci-dessous pour confirmer la déconnexion de ces appareils."
|
||||
"one": "Cliquez sur le bouton ci-dessous pour confirmer la suppression de cet appareil.",
|
||||
"other": "Cliquez sur le bouton ci-dessous pour confirmer la suppression de ces périphériques."
|
||||
},
|
||||
"confirm_sign_out_continue": {
|
||||
"one": "Déconnecter l’appareil",
|
||||
"other": "Déconnecter les appareils"
|
||||
"one": "Supprimer l'appareil",
|
||||
"other": "Supprimer les appareils"
|
||||
},
|
||||
"confirm_sign_out_sso": {
|
||||
"one": "Confirmez la déconnexion de cet appareil en utilisant l’authentification unique pour prouver votre identité.",
|
||||
"other": "Confirmez la déconnexion de ces appareils en utilisant l’authentification unique pour prouver votre identité."
|
||||
"one": "Confirmez la suppression de cet appareil en utilisant l'Authentification Unique pour prouver votre identitée.",
|
||||
"other": "Confirmez la suppression de ces appareils en utilisant l'Authentification Unique pour prouver votre identitée."
|
||||
},
|
||||
"current_session": "Cette session",
|
||||
"desktop_session": "Session de bureau",
|
||||
"details_heading": "Détails de session",
|
||||
"device_unverified_description": "Vérifiez ou déconnectez cette session pour une meilleure sécurité et fiabilité.",
|
||||
"device_unverified_description": "Vérifiez ou supprimez cette session pour une meilleure sécurité et fiabilité.",
|
||||
"device_unverified_description_current": "Vérifiez cette session pour renforcer la sécurité de votre messagerie.",
|
||||
"device_verified_description": "Cette session est prête pour l’envoi de messages sécurisés.",
|
||||
"device_verified_description_current": "Votre session actuelle est prête pour une messagerie sécurisée.",
|
||||
@@ -2951,11 +2962,11 @@
|
||||
"sign_in_with_qr_button": "Afficher le QR code",
|
||||
"sign_in_with_qr_description": "Utilisez un code QR pour vous connecter à un autre appareil et configurer votre messagerie sécurisée.",
|
||||
"sign_in_with_qr_unsupported": "Non pris en charge par votre fournisseur de compte",
|
||||
"sign_out": "Se déconnecter de cette session",
|
||||
"sign_out_all_other_sessions": "Déconnecter toutes les autres sessions (%(otherSessionsCount)s)",
|
||||
"sign_out": "Supprimer cette session",
|
||||
"sign_out_all_other_sessions": "Supprimer toutes les autres sessions (%(otherSessionsCount)s )",
|
||||
"sign_out_confirm_description": {
|
||||
"one": "Voulez-vous vraiment déconnecter %(count)s session ?",
|
||||
"other": "Voulez-vous vraiment déconnecter %(count)s de vos sessions ?"
|
||||
"one": "Voulez-vous vraiment supprimer %(count)s session ?",
|
||||
"other": "Voulez-vous vraiment supprimer %(count)s sessions ?"
|
||||
},
|
||||
"sign_out_n_sessions": {
|
||||
"one": "Déconnecter %(count)s session",
|
||||
@@ -2968,15 +2979,15 @@
|
||||
"unverified_session_explainer_2": "Vous ne pourrez pas participer aux salons qui ont activé le chiffrement en utilisant cette session.",
|
||||
"unverified_session_explainer_3": "Pour de meilleures sécurité et confidentialité, il est recommandé d’utiliser des clients Matrix qui prennent en charge le chiffrement.",
|
||||
"unverified_sessions": "Sessions non vérifiées",
|
||||
"unverified_sessions_explainer_1": "Les sessions non vérifiées se sont identifiées avec vos identifiants mais n’ont pas fait de vérification croisée.",
|
||||
"unverified_sessions_explainer_1": "Les sessions non vérifiées sont des sessions pour lesquelles vous vous êtes connecté avec vos identifiants, mais qui n'ont pas été confirmées avec votre identité numérique.",
|
||||
"unverified_sessions_explainer_2": "Vous devriez vous tout particulièrement vous assurer que vous connaissez ces sessions, car elles peuvent représenter un usage frauduleux de votre compte.",
|
||||
"unverified_sessions_list_description": "Vérifiez vos sessions pour améliorer la sécurité de votre messagerie, ou déconnectez celles que vous ne connaissez pas ou n’utilisez plus.",
|
||||
"url": "URL",
|
||||
"verified_session": "Session vérifiée",
|
||||
"verified_sessions": "Sessions vérifiées",
|
||||
"verified_sessions_explainer_1": "Les sessions vérifiées sont toutes celles qui utilisent ce compte après avoir saisie la phrase de sécurité ou confirmé votre identité à l’aide d’une autre session vérifiée.",
|
||||
"verified_sessions_explainer_1": "Les sessions vérifiées ont confirmé votre identité numérique.",
|
||||
"verified_sessions_explainer_2": "Cela veut dire qu’elles disposent de toutes les clés nécessaires pour lire les messages chiffrés, et confirment aux autres utilisateur que vous faites confiance à cette session.",
|
||||
"verified_sessions_list_description": "Pour une meilleure sécurité, déconnectez toutes les sessions que vous ne connaissez pas ou que vous n’utilisez plus.",
|
||||
"verified_sessions_list_description": "Pour une meilleure sécurité, supprimez toutes les sessions que vous ne connaissez pas ou que vous n’utilisez plus.",
|
||||
"verify_session": "Vérifier la session",
|
||||
"web_session": "session internet"
|
||||
},
|
||||
@@ -3145,7 +3156,7 @@
|
||||
"view": "Affiche le salon avec cette adresse",
|
||||
"whois": "Affiche des informations à propos de l’utilisateur"
|
||||
},
|
||||
"sliding_sync_legacy_no_longer_supported": "L'ancienne fonctionnalité Sliding Sync n'est plus prise en charge : veuillez vous déconnecter puis vous reconnecter pour activer la nouvelle fonctionnalité Sliding Sync",
|
||||
"sliding_sync_legacy_no_longer_supported": "L'ancienne fonctionnalité Sliding Sync n'est plus prise en charge : veuillez vous déconnecter puis vous reconnecter pour activer la nouvelle version de la fonctionnalité Sliding Sync",
|
||||
"space": {
|
||||
"add_existing_room_space": {
|
||||
"create": "Voulez-vous plutôt ajouter un nouveau salon ?",
|
||||
@@ -3338,7 +3349,7 @@
|
||||
"creation_summary_dm": "%(creator)s a créé cette conversation privée.",
|
||||
"creation_summary_room": "%(creator)s a créé et configuré le salon.",
|
||||
"decryption_failure": {
|
||||
"sender_identity_previously_verified": "L'identité vérifiée de l'expéditeur a changé",
|
||||
"sender_identity_previously_verified": "L'identité numérique vérifiée de l'expéditeur a été réinitialisée.",
|
||||
"unable_to_decrypt": "Impossible de déchiffrer le message"
|
||||
},
|
||||
"disambiguated_profile": "%(displayName)s (%(matrixId)s)",
|
||||
@@ -3398,8 +3409,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s a passé un appel audio. (non pris en charge par ce navigateur)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Erreur lors du déchiffrement de la pièce jointe",
|
||||
"error_invalid": "Fichier invalide"
|
||||
"error_decrypting": "Erreur lors du déchiffrement de la pièce jointe"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Impossible d’afficher l’image à cause d’une erreur",
|
||||
@@ -3740,14 +3750,7 @@
|
||||
"one_user": "%(displayName)s est en train d'écrire…",
|
||||
"two_users": "%(names)s et %(lastPerson)s sont en train d’écrire…"
|
||||
},
|
||||
"undecryptable_tooltip": "Ce message n’a pas pu être déchiffré",
|
||||
"url_preview": {
|
||||
"close": "Fermer l’aperçu",
|
||||
"show_n_more": {
|
||||
"one": "Afficher %(count)s autre aperçu",
|
||||
"other": "Afficher %(count)s autres aperçus"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Ce message n’a pas pu être déchiffré"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Et %(count)s autres…"
|
||||
@@ -3806,7 +3809,7 @@
|
||||
"ban_space_everything": "Les bannir de partout où j’ai le droit de le faire",
|
||||
"ban_space_specific": "Les bannir de certains endroits où j’ai le droit de le faire",
|
||||
"deactivate_confirm_action": "Désactiver l’utilisateur",
|
||||
"deactivate_confirm_description": "Désactiver cet utilisateur le déconnectera et l’empêchera de se reconnecter. De plus, il quittera tous les salons qu’il a rejoints. Cette action ne peut pas être annulée. Voulez-vous vraiment désactiver cet utilisateur ?",
|
||||
"deactivate_confirm_description": "La désactivation de cet utilisateur entraînera la suppression de ses appareils et l\"empêchera de se reconnecter. De plus, il quittera tous les salons auxquels il participe. Cette action est irréversible. Êtes-vous sûr de vouloir désactiver cet utilisateur ?",
|
||||
"deactivate_confirm_title": "Désactiver l’utilisateur ?",
|
||||
"demote_button": "Rétrograder",
|
||||
"demote_self_confirm_description_space": "Vous ne pourrez pas annuler ce changement puisque vous vous rétrogradez. Si vous êtes le dernier utilisateur a privilèges de cet espace, il deviendra impossible d’en reprendre contrôle.",
|
||||
|
||||
@@ -1088,8 +1088,6 @@
|
||||
"upload_file": "Subir ficheiro"
|
||||
},
|
||||
"labs": {
|
||||
"automatic_debug_logs": "Enviar automáticamente rexistros de depuración para calquera fallo",
|
||||
"automatic_debug_logs_decryption": "Envía automáticamente rexistro de depuración se hai erros no cifrado",
|
||||
"beta_feature": "Esta é unha característica beta",
|
||||
"beta_feedback_leave_button": "Para saír da beta, vai aos axustes.",
|
||||
"beta_feedback_title": "Informe sobre %(featureName)s Beta",
|
||||
@@ -2423,8 +2421,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s fixo unha chamada de voz. (non soportado neste navegador)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Fallo descifrando o anexo",
|
||||
"error_invalid": "Ficheiro non válido %(extra)s"
|
||||
"error_decrypting": "Fallo descifrando o anexo"
|
||||
},
|
||||
"m.image": {
|
||||
"error_decrypting": "Fallo ao descifrar a imaxe",
|
||||
@@ -2742,13 +2739,6 @@
|
||||
},
|
||||
"one_user": "%(displayName)s está escribindo…",
|
||||
"two_users": "%(names)s e %(lastPerson)s están escribindo…"
|
||||
},
|
||||
"url_preview": {
|
||||
"close": "Pechar vista previa",
|
||||
"show_n_more": {
|
||||
"one": "Mostrar %(count)s outra vista previa",
|
||||
"other": "Mostrar outras %(count)s vistas previas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
|
||||
@@ -1971,8 +1971,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s התחיל שיחה קולית. (אינו נתמך בדפדפן זה)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "שגיאה בפענוח קבצים מצורפים",
|
||||
"error_invalid": "קובץ לא תקין %(extra)s"
|
||||
"error_decrypting": "שגיאה בפענוח קבצים מצורפים"
|
||||
},
|
||||
"m.image": {
|
||||
"error_decrypting": "שגיאה בפענוח הודעה",
|
||||
@@ -2239,9 +2238,6 @@
|
||||
},
|
||||
"one_user": "%(displayName)s כותב…",
|
||||
"two_users": "%(names)s ו%(lastPerson)s כותבים…"
|
||||
},
|
||||
"url_preview": {
|
||||
"close": "סגור תצוגה מקדימה"
|
||||
}
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
|
||||
@@ -1508,8 +1508,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Omogući traženje pridruživanja",
|
||||
"automatic_debug_logs": "Automatsko slanje zapisnika o svakoj pogrešci",
|
||||
"automatic_debug_logs_decryption": "Automatsko slanje zapisnika o otklanjanju pogrešaka dešifriranja",
|
||||
"beta_description": "Što je sljedeće za %(brand)s? Labs su najbolji način da među prvima isprobate novosti, testirate nove značajke i pomognete ih oblikovati prije nego što službeno postanu dostupne.",
|
||||
"beta_feature": "Ovo je beta značajka",
|
||||
"beta_feedback_leave_button": "Da biste napustili beta inačicu, idite na postavke.",
|
||||
@@ -3442,8 +3440,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s uputio/la je glasovni poziv. (Ne podržava ovaj preglednik.)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Pogreška pri dešifriranju privitka",
|
||||
"error_invalid": "Nevažeća datoteka"
|
||||
"error_decrypting": "Pogreška pri dešifriranju privitka"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Nije moguće prikazati sliku zbog pogreške",
|
||||
@@ -3821,15 +3818,7 @@
|
||||
"one_user": "%(displayName)s tipka…",
|
||||
"two_users": "%(names)s i %(lastPerson)s tipkaju…"
|
||||
},
|
||||
"undecryptable_tooltip": "Ova se poruka nije mogla dešifrirati",
|
||||
"url_preview": {
|
||||
"close": "Zatvori pretpregled",
|
||||
"show_n_more": {
|
||||
"one": "Prikaži %(count)s drugi pregled",
|
||||
"few": "Prikaži %(count)s druga pregleda",
|
||||
"other": "Prikaži %(count)s drugih pregleda"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Ova se poruka nije mogla dešifrirati"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"one": "I još %(count)s...",
|
||||
|
||||
@@ -371,8 +371,8 @@
|
||||
"email_resent": "Újraküldve!",
|
||||
"fallback_button": "Hitelesítés indítása",
|
||||
"mas_cross_signing_reset_cta": "Ugrás a fiókjához",
|
||||
"mas_cross_signing_reset_description": "Állítsa alaphelyzetbe személyazonosságát a fiókszolgáltatón keresztül, majd térjen vissza, és kattintson az „Újra” gombra.",
|
||||
"mas_cross_signing_reset_title": "Ugorjon a fiókjához a személyazonossága alaphelyzetbe állításához",
|
||||
"mas_cross_signing_reset_description": "Arra készül, hogy a(z) %(serverName)s kiszolgálón lévő fiókjához menjen, hogy alaphelyzetbe állítsa a digitiális személyazonosságát. Amint befejezte a fiókja alaphelyezbe állítását, térjen vissza, és kattintson az „Újra” gombra.",
|
||||
"mas_cross_signing_reset_title": "Ugorjon a fiókjához a digitális személyazonossága alaphelyzetbe állításához",
|
||||
"msisdn": "Szöveges üzenet küldve ide: %(msisdn)s",
|
||||
"msisdn_token_incorrect": "Helytelen token",
|
||||
"msisdn_token_prompt": "Adja meg a benne lévő kódot:",
|
||||
@@ -666,8 +666,8 @@
|
||||
"join_rule_knock_label": "Bárki kérheti a belépést, de az adminisztrátoroknak vagy moderátoroknak kell engedélyezniük. Ezt később megváltoztathatja.",
|
||||
"join_rule_public_label": "Bárki megtalálhatja és beléphet ebbe a szobába.",
|
||||
"join_rule_public_parent_space_label": "Bárki megtalálhatja és beléphet a szobába, nem csak <SpaceName/> tér tagsága.",
|
||||
"join_rule_restricted": "Tér tagsága számára látható",
|
||||
"join_rule_restricted_label": "A(z) <SpaceName/> térben bárki megtalálhatja és beléphet a szobába.",
|
||||
"join_rule_restricted": "Szokásos",
|
||||
"join_rule_restricted_label": "A(z) <SpaceName/> térből bárki beléphet.",
|
||||
"name_validation_required": "Adjon meg egy nevet a szobához",
|
||||
"room_visibility_label": "Szoba láthatósága",
|
||||
"state_encrypted_warning": "Engedélyezi az állapotesemények titkosításának kísérleti támogatását, amely elrejti a metaadatokat, például a szobák nevét és témáit a kiszolgáló elől. Ezek a metaadatok a később a szobákhoz csatlakozók, valamint az MSC4362 szabványt nem támogató ügyfelek elől is rejtve lesznek.",
|
||||
@@ -692,7 +692,7 @@
|
||||
"creating_rooms": "Szobák létrehozása…",
|
||||
"done_action": "Ugrás a saját teréhez",
|
||||
"done_action_first_room": "Ugrás az első szobájához",
|
||||
"explainer": "A terek a szobák és emberek csoportosításának új módja. Milyen teret szeretne létrehozni? Később megváltoztathatja.",
|
||||
"explainer": "A terek a szobák és emberek csoportosításának egy módja. Milyen teret szeretne létrehozni?",
|
||||
"failed_create_initial_rooms": "Térhez tartozó kezdő szobákat nem sikerült elkészíteni",
|
||||
"failed_invite_users": "Az alábbi felhasználókat nem sikerült meghívni a térbe: %(csvUsers)s",
|
||||
"invite_teammates_by_username": "Meghívás felhasználónévvel",
|
||||
@@ -703,20 +703,20 @@
|
||||
"name_required": "Adjon meg egy nevet a térhez",
|
||||
"personal_space": "Csak én",
|
||||
"personal_space_description": "Privát tér a szobái csoportosításához",
|
||||
"private_description": "Csak meghívóval, saját célra és csoportok számára ideális",
|
||||
"private_description": "Csak meghívóval, személyes beszélgetéshez vagy a csapatok számára",
|
||||
"private_heading": "Saját privát tér",
|
||||
"private_only_heading": "Saját tér",
|
||||
"private_personal_description": "Ellenőrizze, hogy a megfelelő személyeknek hozzáférése van ehhez: %(name)s",
|
||||
"private_personal_heading": "Kivel dolgozik együtt?",
|
||||
"private_space": "Én és a csoporttársaim",
|
||||
"private_space_description": "Privát tér önnek és a csoporttársainak",
|
||||
"public_description": "Mindenki számára nyílt tér, a közösségek számára ideális",
|
||||
"public_description": "Bárki csatlakozhat, a közösségek számára a legjobb",
|
||||
"public_heading": "Saját nyilvános tér",
|
||||
"search_public_button": "Nyilvános terek keresése",
|
||||
"setup_rooms_community_description": "Készítsünk szobát mindhez.",
|
||||
"setup_rooms_community_description": "Kezdésként hozzunk létre néhány szobát.",
|
||||
"setup_rooms_community_heading": "Mik azok amikről beszélni szeretne itt: %(spaceName)s?",
|
||||
"setup_rooms_description": "Később is hozzáadhat többet, beleértve meglévőket is.",
|
||||
"setup_rooms_private_description": "Mindenhez készítünk egy szobát.",
|
||||
"setup_rooms_description": "Később további szobákat is hozzáadhat a térhez, beleértve a meglévő szobákat is.",
|
||||
"setup_rooms_private_description": "Kezdésként hozzunk létre néhány szobát.",
|
||||
"setup_rooms_private_heading": "Milyen projekteken dolgozik a csoportja?",
|
||||
"share_description": "Egyenlőre csak ön, még jobb lehet másokkal együtt.",
|
||||
"share_heading": "Megosztás: %(name)s",
|
||||
@@ -729,7 +729,7 @@
|
||||
"subspace_join_rule_invite_only": "Privát tér (csak meghívóval)",
|
||||
"subspace_join_rule_label": "Tér láthatósága",
|
||||
"subspace_join_rule_public_description": "Bárki megtalálhatja és beléphet a térbe, nem csak a(z) <SpaceName/> tér tagsága.",
|
||||
"subspace_join_rule_restricted_description": "A(z) <SpaceName/> téren bárki megtalálhatja és beléphet."
|
||||
"subspace_join_rule_restricted_description": "A(z) <SpaceName/> térből bárki beléphet."
|
||||
},
|
||||
"credits": {
|
||||
"default_cover_photo": "Az <photo>alapértelmezett borítóképre</photo> a következő vonatkozik: © <author>Jesús Roncero</author>, a <terms>CC BY-SA 4.0</terms> licenc feltételei szerint használva.",
|
||||
@@ -771,7 +771,7 @@
|
||||
"cross_signing_public_keys_on_device_status": "Az eszközök közti hitelesítés nyilvános kulcsai:",
|
||||
"cross_signing_ready": "Az eszközök közti hitelesítés használatra kész.",
|
||||
"cross_signing_status": "Eszközök közti hitelesítés állapota:",
|
||||
"cross_signing_untrusted": "A fiókjához tartozik egy eszközök közti hitelesítési személyazonosság, de ez a munkamenet még nem jelölte megbízhatónak.",
|
||||
"cross_signing_untrusted": "A fiókjához tartozik egy digitális személyazonosság a titkos tárolóban, de ez a munkamenet még nem lett megbízhatónak jelölve.",
|
||||
"crypto_not_available": "A kriptográfiai modul nem érhető el",
|
||||
"device_id": "Eszközazonosító",
|
||||
"key_backup_active_version": "Aktív biztonsági mentés verziója:",
|
||||
@@ -888,10 +888,10 @@
|
||||
"user_read_up_to_private_ignore_synthetic": "A felhasználó eddig olvasott felfelé (m.read.private;ignoreSynthetic): ",
|
||||
"user_room_membership": "Tagság: %(membership)s",
|
||||
"user_verification_status": {
|
||||
"identity_changed": "Ellenőrzés állapota: <E2EIcon /> Nincs ellenőrizve, és a személyazonosság megváltozott",
|
||||
"identity_changed": "Ellenőrzés állapota: <E2EIcon /> Nincs ellenőrizve, és a digitális személyazonosság megváltozott",
|
||||
"unverified": "Ellenőrzés állapota: <E2EIcon /> Nem ellenőrzött",
|
||||
"verified": "Ellenőrzés állapota: <E2EIcon /> Ellenőrzött",
|
||||
"was_verified": "Ellenőrzési állapot:<E2EIcon /> Ellenőrzés megtörtént, de a személyazonosság megváltozott"
|
||||
"was_verified": "Ellenőrzési állapot: <E2EIcon /> Ellenőrizve, de a digitális személyazonosság megváltozott"
|
||||
},
|
||||
"users": "Felhasználók",
|
||||
"value": "Érték",
|
||||
@@ -957,7 +957,7 @@
|
||||
"event_shield_reason_unverified_identity": "Nem ellenőrzött felhasználó által titkosítva.",
|
||||
"export_unsupported": "A böngészője nem támogatja a szükséges titkosítási kiterjesztéseket",
|
||||
"forgot_recovery_key": "Elfelejtette a helyreállítási kulcsot?",
|
||||
"identity_needs_reset_description": "Az üzenetelőzményekhez való hozzáférés biztosítása érdekében vissza kell állítania titkosítási személyazonosságát.",
|
||||
"identity_needs_reset_description": "Az csevegéselőzményekhez való hozzáférés biztosítása érdekében alaphelyzetbe kell állítania a digitális személyazonosságát.",
|
||||
"import_invalid_keyfile": "Nem érvényes %(brand)s kulcsfájl",
|
||||
"import_invalid_passphrase": "Hitelesítési ellenőrzés sikertelen: hibás jelszó?",
|
||||
"key_storage_out_of_sync": "A kulcstároló nincs szinkronban.",
|
||||
@@ -977,22 +977,22 @@
|
||||
"title": "Új helyreállítási mód",
|
||||
"warning": "Ha nem Ön állította be az új helyreállítási módot, akkor lehet, hogy egy támadó próbálja elérni a fiókját. Változtassa meg a fiókja jelszavát, és amint csak lehet, állítsa be az új helyreállítási módot a Beállításokban."
|
||||
},
|
||||
"pinned_identity_changed": "Úgy tűnik, hogy %(displayName)s (<b>%(userId)s</b>) személyazonossága megváltozott. <a>További információ</a>",
|
||||
"pinned_identity_changed_no_displayname": "Úgy tűnik, hogy <b>%(userId)s</b> személyazonossága megváltozott. <a>További információ</a>",
|
||||
"pinned_identity_changed": "Úgy tűnik, hogy %(displayName)s (<b>%(userId)s</b>) digitális személyazonossága alaphelyzetbe lett állítva. <a>További információ</a>",
|
||||
"pinned_identity_changed_no_displayname": "<b>%(userId)s</b> digitális személyazonossága alaphelyzetbe lett állítva. <a>További információ</a>",
|
||||
"recovery_method_removed": {
|
||||
"description_1": "Ez a munkamenet azt észlelte, hogy a biztonságos üzenetek biztonsági jelmondata és kulcsa törölve lett.",
|
||||
"description_2": "Ha véletlenül tette, akkor beállíthatja a biztonságos üzeneteket ebben a munkamenetben, ami újra titkosítja a régi üzeneteket a helyreállítási móddal.",
|
||||
"title": "Helyreállítási mód eltávolítva",
|
||||
"warning": "Ha nem Ön távolított el a helyreállítási módot, akkor lehet, hogy egy támadó hozzá akar férni a fiókjához. Azonnal változtassa meg a jelszavát, és állítson be egy helyreállítási módot a Beállításokban."
|
||||
},
|
||||
"set_up_recovery": "Helyreállítás beállítása",
|
||||
"set_up_recovery_toast_description": "Létrehozhat egy helyreállítási kulcsot, amellyel helyreállíthatja a titkosított üzenetelőzményeit, ha elveszíti a hozzáférést az eszközeihez.",
|
||||
"set_up_recovery": "Csevegések biztonsági mentése",
|
||||
"set_up_recovery_toast_description": "A csevegései automatikusan mentve vannak, végpontok közti titkosítással Ahhoz, hogy az eszközei elvesztése esetén helyre tudja állítani a biztonsági mentést és megtartsa a digitális személyazonosságát, egy helyreállítási kulcsra van szüksége.",
|
||||
"set_up_toast_title": "Biztonsági mentés beállítása",
|
||||
"setup_secure_backup": {
|
||||
"explainer": "Mentse a kulcsait a kiszolgálóra kijelentkezés előtt, hogy ne veszítse el azokat."
|
||||
},
|
||||
"turn_on_key_storage": "A kulcstárolás bekapcsolása",
|
||||
"turn_on_key_storage_description": "Tárolja biztonságosan a kriptográfiai azonosító- és üzenetkulcsokat a kiszolgálón. Ez lehetővé teszi az üzenetek előzményeinek megtekintését bármely új eszközön.",
|
||||
"turn_on_key_storage_description": "Ez lehetővé teszi az üzenetelőzmények megtekintését bármely új eszközön, és szükséges a csevegések és a digitális személyazonossága biztonsági mentéséhez.",
|
||||
"udd": {
|
||||
"interactive_verification_button": "Interaktív ellenőrzés emodzsikkal",
|
||||
"other_ask_verify_text": "Kérje meg a felhasználót, hogy hitelesítse a munkamenetét, vagy ellenőrizze kézzel lentebb.",
|
||||
@@ -1016,7 +1016,7 @@
|
||||
"complete_description": "Sikeresen ellenőrizte ezt a felhasználót.",
|
||||
"complete_title": "Ellenőrizve!",
|
||||
"confirm_identity_description": "A biztonságos üzenetkezelés beállításához ellenőrizze ezt az eszközt.",
|
||||
"confirm_identity_title": "Erősítse meg, hogy Ön az",
|
||||
"confirm_identity_title": "Erősítse meg digitális személyazonosságát",
|
||||
"confirm_the_emojis": "Erősítse meg, hogy a lenti emodzsik megegyeznek a másik eszközön megjelenítettekkel.",
|
||||
"error_starting_description": "A beszélgetést a másik felhasználóval nem lehetett elindítani.",
|
||||
"error_starting_title": "Hiba az ellenőrzés indításakor",
|
||||
@@ -1100,8 +1100,8 @@
|
||||
"waiting_other_user": "Várakozás %(displayName)s felhasználóra az ellenőrzéshez…"
|
||||
},
|
||||
"verification_requested_toast_title": "Hitelesítés kérés elküldve",
|
||||
"verified_identity_changed": "%(displayName)s (<b>%(userId)s</b> ) ellenőrzött személyazonossága megváltozott. <a>További információ</a>",
|
||||
"verified_identity_changed_no_displayname": "<b>%(userId)s</b> ellenőrzött személyazonossága megváltozott. <a>További információ</a>",
|
||||
"verified_identity_changed": "%(displayName)s (<b>%(userId)s</b> ) digitális személyazonossága alaphelyzetbe lett állítva. <a>További információ</a>",
|
||||
"verified_identity_changed_no_displayname": "<b>%(userId)s</b> digitális személyazonossága alaphelyzetbe lett állítva. <a>További információ</a>",
|
||||
"verify_toast_description": "Más felhasználók lehet, hogy nem bíznak benne",
|
||||
"verify_toast_title": "Munkamenet ellenőrzése",
|
||||
"withdraw_verification_action": "Ellenőrzés visszavonása"
|
||||
@@ -1487,8 +1487,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "A kérést igénylő csatlakozás engedélyezése",
|
||||
"automatic_debug_logs": "Hibakeresési naplók automatikus küldése bármilyen hiba esetén",
|
||||
"automatic_debug_logs_decryption": "Hibakeresési naplók automatikus küldése titkosítás-visszafejtési hiba esetén",
|
||||
"beta_description": "Mi várható a(z) %(brand)s fejlesztésében? A labor a legjobb hely az új dolgok kipróbálásához, visszajelzés adásához és a funkciók éles indulás előtti kialakításában történő segítséghez.",
|
||||
"beta_feature": "Ez egy beta állapotú funkció",
|
||||
"beta_feedback_leave_button": "A beállításokban tudja elhagyni a bétát.",
|
||||
@@ -2336,31 +2334,32 @@
|
||||
"history_visibility_warning": "A változtatások nem érintik a korábbi üzeneteket, csak az újakat.<a>Tudjon meg többet</a>",
|
||||
"history_visibility_world_readable": "Bárki (az előzmények nyilvánosak)",
|
||||
"join_rule_description": "Döntse el ki léphet be ide: %(roomName)s.",
|
||||
"join_rule_invite": "Privát (csak meghívóval)",
|
||||
"join_rule_invite": "Csak meghívóval",
|
||||
"join_rule_invite_description": "Csak a meghívott emberek léphetnek be.",
|
||||
"join_rule_knock": "Kérjen csatlakozást",
|
||||
"join_rule_knock_description": "Az emberek nem léphetnek be, hacsak nem kapnak engedélyt a belépéshez.",
|
||||
"join_rule_public_description": "Bárki megtalálhatja és beléphet.",
|
||||
"join_rule_public": "Bárki",
|
||||
"join_rule_public_description": "Bárki csatlakozhat.",
|
||||
"join_rule_restricted": "Tértagság",
|
||||
"join_rule_restricted_description": "A téren bárki megtalálhatja és beléphet. <a>Szerkessze, hogy melyik tér férhet hozzá.</a>",
|
||||
"join_rule_restricted_description_active_space": "A(z) <spaceName/> téren bárki megtalálhatja és beléphet. Kiválaszthat más tereket is.",
|
||||
"join_rule_restricted_description_prompt": "A téren bárki megtalálhatja és beléphet. Több teret is kiválaszthat.",
|
||||
"join_rule_restricted_description_spaces": "Terek hozzáféréssel",
|
||||
"join_rule_restricted_dialog_description": "Döntse el melyik terek férhetnek hozzá ehhez a szobához. Ha a tér ki van választva a tagsága megtalálhatja és beléphet ebbe a szobába: <RoomName/>.",
|
||||
"join_rule_restricted_dialog_empty_warning": "Az összes teret törli. A hozzáférés alapállapota „csak meghívóval” lesz.",
|
||||
"join_rule_restricted_description": "Az engedélyezett terekben bárki csatlakozhat meghívó nélkül. <a>Terek kezelése</a>",
|
||||
"join_rule_restricted_description_active_space": "A(z) <spaceName/> térből bárki beléphet.",
|
||||
"join_rule_restricted_description_prompt": "Bárki csatlakozhat, aki a téren van.",
|
||||
"join_rule_restricted_description_spaces": "Engedélyezett terek",
|
||||
"join_rule_restricted_dialog_description": "Terek, ahol a tagok meghívás nélkül csatlakozhatnak ide: <RoomName/>.",
|
||||
"join_rule_restricted_dialog_empty_warning": "Az összes engedélyezett teret eltávolítja. A hozzáférés alapértelmezés szerint csak meghívóval lesz elérhető.",
|
||||
"join_rule_restricted_dialog_filter_placeholder": "Terek keresése",
|
||||
"join_rule_restricted_dialog_heading_known": "Más terek, amelyeket ismerhet",
|
||||
"join_rule_restricted_dialog_heading_other": "Más terek vagy szobák melyről lehet, hogy nem tud",
|
||||
"join_rule_restricted_dialog_heading_room": "Terek melyről tudja, hogy ezt a szobát tartalmazzák",
|
||||
"join_rule_restricted_dialog_heading_known": "Az Ön terei közül azok, amelyek nem tartalmazzák ezt a szobát",
|
||||
"join_rule_restricted_dialog_heading_other": "Egyéb terek, amelyeknek nem tagja",
|
||||
"join_rule_restricted_dialog_heading_room": "Az Ön terei, amelyek ezt a szobát tartalmazzák",
|
||||
"join_rule_restricted_dialog_heading_space": "Terek melyről tudja, hogy ezt a teret tartalmazzák",
|
||||
"join_rule_restricted_dialog_heading_unknown": "Ezek valószínűleg olyanok, amelyeknek más szobaadminisztrátorok is tagjai.",
|
||||
"join_rule_restricted_dialog_title": "Terek kiválasztása",
|
||||
"join_rule_restricted_dialog_title": "Terek kezelése",
|
||||
"join_rule_restricted_n_more": {
|
||||
"és még %(count)s": "one"
|
||||
},
|
||||
"join_rule_restricted_summary": {
|
||||
"Jelenleg %(count)s tér rendelkezik hozzáféréssel": "other",
|
||||
"Jelenleg egy tér rendelkezik hozzáféréssel": "one"
|
||||
"one": "Jelenleg egy tér engedélyezett",
|
||||
"other": "Jelenleg %(count)s tér engedélyezett"
|
||||
},
|
||||
"join_rule_restricted_upgrade_description": "Ez a fejlesztés lehetővé teszi, hogy a kiválasztott terek tagjai meghívó nélkül is elérjék ezt a szobát.",
|
||||
"join_rule_restricted_upgrade_warning": "Ez a szoba olyan terekben is benne van, amelynek nem Ön az adminisztrátora. Ezekben a terekben továbbra is a régi szoba jelenik meg, de az emberek jelzést kapnak, hogy lépjenek be az újba.",
|
||||
@@ -2386,7 +2385,7 @@
|
||||
"upload_avatar_label": "Profilkép feltöltése",
|
||||
"visibility": {
|
||||
"alias_section": "Cím",
|
||||
"error_failed_save": "A tér láthatóságának frissítése sikertelen",
|
||||
"error_failed_save": "Nem sikerült frissíteni a tér beállításait",
|
||||
"error_update_guest_access": "A tér vendéghozzáférésének frissítése sikertelen",
|
||||
"error_update_history_visibility": "A tér régi üzeneteinek láthatóságának frissítése sikertelen",
|
||||
"guest_access_disabled": "Nincs jogosultsága a vendéghozzáférés módosítására.",
|
||||
@@ -2396,7 +2395,7 @@
|
||||
"history_visibility_anyone_space_description": "A tér előnézetének engedélyezése a belépés előtt.",
|
||||
"history_visibility_anyone_space_disabled": "Nincs jogosultsága az előzmények láthatóságának módosítására.",
|
||||
"history_visibility_anyone_space_recommendation": "A nyilvános terekhez ajánlott.",
|
||||
"title": "Láthatóság"
|
||||
"title": "Biztonság és adatvédelem"
|
||||
},
|
||||
"voip": {
|
||||
"call_type_section": "Hívás típusa",
|
||||
@@ -2514,10 +2513,10 @@
|
||||
"breadcrumb_page": "Titkosítás alaphelyzetbe állítása",
|
||||
"breadcrumb_second_description": "Elveszít minden olyan üzenetelőzményt, amely csak a kiszolgálón van tárolva.",
|
||||
"breadcrumb_third_description": "Újra ellenőriznie kell az összes meglévő eszközét és névjegyét",
|
||||
"breadcrumb_title": "Biztos, hogy alaphelyzetbe állítja a személyazonosságát?",
|
||||
"breadcrumb_title_cant_confirm": "Alaphelyzetbe kell állítania a személyazonosságát",
|
||||
"breadcrumb_title_forgot": "Elfelejtette a helyreállítási kulcsot? Alaphelyzetbe kell állítania a személyazonosságát.",
|
||||
"breadcrumb_title_sync_failed": "A kulcstároló szinkronizálása sikertelen. Alaphelyzetbe kell állítania személyazonosságát.",
|
||||
"breadcrumb_title": "Biztos, hogy alaphelyzetbe állítja a digitális személyazonosságát?",
|
||||
"breadcrumb_title_cant_confirm": "Alaphelyzetbe kell állítania a digitális személyazonosságát",
|
||||
"breadcrumb_title_forgot": "Elfelejtette a helyreállítási kulcsot? Alaphelyzetbe kell állítania a digitális személyazonosságát.",
|
||||
"breadcrumb_title_sync_failed": "A kulcstároló szinkronizálása sikertelen. Alaphelyzetbe kell állítania a digitális személyazonosságát.",
|
||||
"breadcrumb_warning": "Csak akkor tegye ezt, ha úgy gondolja, hogy fiókját feltörték.",
|
||||
"details_title": "Titkosítás részletei",
|
||||
"do_not_close_warning": "Ne zárja be ezt az ablakot, amíg az alaphelyzetbe állítás be nem fejeződik",
|
||||
@@ -2548,7 +2547,7 @@
|
||||
"dialog_title": "<strong>Beállítások:</strong> Titkosítás",
|
||||
"key_storage": {
|
||||
"allow_key_storage": "Kulcstárolás engedélyezése",
|
||||
"description": "Tárolja biztonságosan a kriptográfiai személyazonosságát és az üzenetkulcsait a kiszolgálón. Ez lehetővé teszi az üzenetek előzményeinek megtekintését bármely új eszközön. <a>További információ</a>",
|
||||
"description": "Ez lehetővé teszi az üzenetelőzmények megtekintését bármely új eszközön, és szükséges a csevegések és a digitális személyazonossága biztonsági mentéséhez. <a>További információ</a>",
|
||||
"title": "Kulcstároló"
|
||||
},
|
||||
"recovery": {
|
||||
@@ -2558,14 +2557,14 @@
|
||||
"change_recovery_key": "Helyreállítási kulcs módosítása",
|
||||
"change_recovery_key_description": "Írja le ezt az új helyreállítási kulcsot egy biztonságos helyre. Ezután kattintson a Folytatás gombra a módosítás megerősítéséhez.",
|
||||
"change_recovery_key_title": "Módosítja a helyreállítási kulcsot?",
|
||||
"description": "Ha az összes meglévő eszközét elvesztette, akkor egy helyreállítási kulccsal visszaszerezheti a kriptográfiai személyazonosságát és az üzenetelőzményeit.",
|
||||
"description": "A csevegései automatikusan mentve vannak, végpontok közti titkosítással Ahhoz, hogy az eszközei elvesztése esetén helyre tudja állítani a biztonsági mentést és megtartsa a digitális személyazonosságát, egy helyreállítási kulcsra van szüksége.",
|
||||
"enter_key_error": "A megadott helyreállítási kulcs helytelen.",
|
||||
"enter_recovery_key": "Adja meg a helyreállítási kulcsot",
|
||||
"forgot_recovery_key": "Elfelejtette a helyreállítási kulcsot?",
|
||||
"key_storage_warning": "A kulcstároló nincs szinkronban. Kattintson az alábbi gombra a probléma megoldásához.",
|
||||
"save_key_description": "Ne ossza meg ezt senkivel!",
|
||||
"save_key_title": "Helyreállítási kulcs",
|
||||
"set_up_recovery": "A helyreállítás beállítása",
|
||||
"set_up_recovery": "Helyreállítási kulcs beszerzése",
|
||||
"set_up_recovery_confirm_button": "Beállítás befejezése",
|
||||
"set_up_recovery_confirm_description": "Adja meg az előző képernyőn látható helyreállítási kulcsot a helyreállítás beállításának befejezéséhez.",
|
||||
"set_up_recovery_confirm_title": "A megerősítéshez adja meg a helyreállítási kulcsot",
|
||||
@@ -2573,7 +2572,7 @@
|
||||
"set_up_recovery_save_key_description": "Jegyezze fel ezt a helyreállítási kulcsot egy biztonságos helyre, például jelszókezelőbe, titkosított jegyzetbe vagy fizikai széfbe.",
|
||||
"set_up_recovery_save_key_title": "Mentse a helyreállítási kulcsot egy biztonságos helyre",
|
||||
"set_up_recovery_secondary_description": "Miután rákattintott a folytatásra, létrehozunk Önnek egy helyreállítási kulcsot.",
|
||||
"title": "Helyreállítás"
|
||||
"title": "Biztonsági mentés"
|
||||
},
|
||||
"title": "Titkosítás"
|
||||
},
|
||||
@@ -2946,13 +2945,13 @@
|
||||
"unverified_session_explainer_2": "Ezzel a munkamenettel azokban szobákban nem tud részt venni, ahol a titkosítás be van kapcsolva.",
|
||||
"unverified_session_explainer_3": "A biztonság és adatvédelem érdekében javasolt olyan Matrix klienst használni, amely támogatja a titkosítást.",
|
||||
"unverified_sessions": "Nem ellenőrzött munkamenetek",
|
||||
"unverified_sessions_explainer_1": "A nem ellenőrzött munkamenetek olyanok, amelyek a jelszavával bejelentkeztek, de nem lettek ellenőrizve.",
|
||||
"unverified_sessions_explainer_1": "A nem ellenőrzött munkamenetek olyanok, amelyek a hitelesítő adataival bejelentkeztek, de a digitális személyazonosságát nem ellenőrizték.",
|
||||
"unverified_sessions_explainer_2": "Egészen bizonyosodjon meg arról, hogy ismeri ezeket a munkameneteket, mivel elképzelhető, hogy jogosulatlan fiókhasználatot jeleznek.",
|
||||
"unverified_sessions_list_description": "Erősítse meg a munkameneteit a még biztonságosabb csevegéshez vagy jelentkezzen ki ezekből, ha nem ismeri fel vagy már nem használja őket.",
|
||||
"url": "Webcím",
|
||||
"verified_session": "Ellenőrzött munkamenet",
|
||||
"verified_sessions": "Ellenőrzött munkamenetek",
|
||||
"verified_sessions_explainer_1": "Mindenhol ellenőrzött munkamenetek vannak ahol ezt a fiókot használja a jelmondattal vagy azonosította magát egy másik ellenőrzött munkamenetből.",
|
||||
"verified_sessions_explainer_1": "Az ellenőrzött munkamenetek megerősítették a digitális személyazonosságát.",
|
||||
"verified_sessions_explainer_2": "Ez azt jelenti, hogy a titkosított üzenetek visszafejtéséhez minden kulccsal rendelkezik valamint a többi felhasználó megbízhat ebben a munkamenetben.",
|
||||
"verified_sessions_list_description": "A legbiztonságosabb, ha minden olyan munkamenetből kijelentkezel, melyet már nem ismersz fel vagy nem használsz.",
|
||||
"verify_session": "Munkamenet ellenőrzése",
|
||||
@@ -3314,7 +3313,7 @@
|
||||
"creation_summary_dm": "%(creator)s hozta létre ezt az üzenetet.",
|
||||
"creation_summary_room": "%(creator)s elkészítette és beállította a szobát.",
|
||||
"decryption_failure": {
|
||||
"sender_identity_previously_verified": "A feladó ellenőrzött személyazonossága megváltozott",
|
||||
"sender_identity_previously_verified": "A feladó ellenőrzött digitális személyazonossága alaphelyzetbe lett állítva",
|
||||
"unable_to_decrypt": "Nem sikerült visszafejteni az üzenetet"
|
||||
},
|
||||
"disambiguated_profile": "%(displayName)s (%(matrixId)s)",
|
||||
@@ -3374,8 +3373,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s hanghívást indított. (ebben a böngészőben nem támogatott)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Csatolmány visszafejtése sikertelen",
|
||||
"error_invalid": "Hibás fájl"
|
||||
"error_decrypting": "Csatolmány visszafejtése sikertelen"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Kép megjelenítése egy hiba miatt nem lehetséges",
|
||||
@@ -3714,13 +3712,7 @@
|
||||
"one_user": "%(displayName)s gépel…",
|
||||
"two_users": "%(names)s és %(lastPerson)s gépelnek…"
|
||||
},
|
||||
"undecryptable_tooltip": "Ezt az üzenetet nem lehet visszafejteni",
|
||||
"url_preview": {
|
||||
"close": "Előnézet bezárása",
|
||||
"show_n_more": {
|
||||
"%(count)s további előnézet megjelenítése": "other"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Ezt az üzenetet nem lehet visszafejteni"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"És még %(count)s...": "other"
|
||||
|
||||
@@ -1439,8 +1439,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Միացնել միանալու հարցումը",
|
||||
"automatic_debug_logs": "Ավտոմատ կերպով ուղարկել կարգաբերման տեղեկամատյանները(debug logs) ցանկացած սխալի վերաբերյալ",
|
||||
"automatic_debug_logs_decryption": "Ավտոմատ կերպով ուղարկել կարգաբերման տեղեկամատյանները(debug logs) վերծանման սխալների վերաբերյալ",
|
||||
"beta_description": "Ի՞նչ է սպասվում %(brand)s-ին հաջորդիվ։ Լաբորատորիաները լավագույն միջոցն են ամեն ինչ վաղ փուլում սկսելու, նոր գործառույթները փորձարկելու և դրանք ձևավորելու համար, նախքան դրանց թողարկումը։",
|
||||
"beta_feature": "Սա բետա առանձնահատկություն է",
|
||||
"beta_feedback_leave_button": "Բետա տարբերակից դուրս գալու համար այցելեք ձեր կարգավորումները:",
|
||||
@@ -3301,8 +3299,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s-ը տեղադրել է ձայնային զանգ․ (չի աջակցվում այս զննարկիչի կողմից)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Կցորդի վերծանման սխալ",
|
||||
"error_invalid": "Անվավեր ֆայլ"
|
||||
"error_decrypting": "Կցորդի վերծանման սխալ"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Սխալի պատճառով նկարը չի կարող ցուցադրվել",
|
||||
@@ -3643,14 +3640,7 @@
|
||||
"one_user": "%(displayName)s-ը գրում է ...",
|
||||
"two_users": "%(names)s-ը և %(lastPerson)s-ը գրում են ․․․"
|
||||
},
|
||||
"undecryptable_tooltip": "Անհնար է վերծանել այս հաղորդագրությունը",
|
||||
"url_preview": {
|
||||
"close": "Փակել նախադիտումը",
|
||||
"show_n_more": {
|
||||
"one": "Ցույց տալ %(count)s այլ նախադիտում",
|
||||
"other": "Ցույց տալ %(count)s այլ նախադիտումներ"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Անհնար է վերծանել այս հաղորդագրությունը"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"one": "",
|
||||
|
||||
@@ -1494,8 +1494,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Aktifkan bertanya untuk bergabung",
|
||||
"automatic_debug_logs": "Kirim catatan pengawakutu secara otomatis saat ada kesalahan",
|
||||
"automatic_debug_logs_decryption": "Kirim catatan pengawakutu secara otomatis ketika terjadi kesalahan pendekripsian",
|
||||
"beta_description": "Apa berikutnya untuk %(brand)s? Fitur Uji Coba merupakan cara yang terbaik untuk mendapatkan hal-hal baru lebih awal, mencoba fitur baru dan membantu memperbaikinya sebelum diluncurkan.",
|
||||
"beta_feature": "Ini adalah fitur beta",
|
||||
"beta_feedback_leave_button": "Untuk keluar dari beta, pergi ke pengaturan Anda.",
|
||||
@@ -3385,8 +3383,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s melakukan panggilan suara. (tidak didukung oleh browser ini)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Terjadi kesalahan mendekripsi lampiran",
|
||||
"error_invalid": "Berkas tidak valid"
|
||||
"error_decrypting": "Terjadi kesalahan mendekripsi lampiran"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Tidak dapat menampilkan gambar karena kesalahan",
|
||||
@@ -3727,14 +3724,7 @@
|
||||
"one_user": "%(displayName)s sedang mengetik …",
|
||||
"two_users": "%(names)s dan %(lastPerson)s sedang mengetik …"
|
||||
},
|
||||
"undecryptable_tooltip": "Pesan ini tidak dapat didekripsi",
|
||||
"url_preview": {
|
||||
"close": "Tutup tampilan",
|
||||
"show_n_more": {
|
||||
"one": "Tampilkan %(count)s tampilan lainnya",
|
||||
"other": "Tampilkan %(count)s tampilan lainnya"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Pesan ini tidak dapat didekripsi"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Dan %(count)s lagi..."
|
||||
|
||||
@@ -1049,8 +1049,6 @@
|
||||
"upload_file": "Senda inn skrá"
|
||||
},
|
||||
"labs": {
|
||||
"automatic_debug_logs": "Senda atvikaskrár sjálfkrafa við allar villur",
|
||||
"automatic_debug_logs_decryption": "Senda atvikaskrár sjálfkrafa við afkóðunarvillur",
|
||||
"beta_description": "Hvað er væntanlegt í %(brand)s? Að taka þátt í tilraunum gefur færi á að sjá nýja hluti fyrr, prófa nýja eiginleika og vera með í að móta þá áður en þeir fara í almenna notkun.",
|
||||
"beta_feature": "Þetta er beta-prófunareiginleiki",
|
||||
"beta_feedback_leave_button": "Til að hætta í beta-prófunarútgáfunni, skaltu fara í stillingarnar þínar.",
|
||||
@@ -2357,8 +2355,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s hringdi raddsímtal. (Ekki stutt af þessum vafra)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Villa við afkóðun viðhengis",
|
||||
"error_invalid": "Ógild skrá%(extra)s"
|
||||
"error_decrypting": "Villa við afkóðun viðhengis"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Get ekki birt mynd vegna villu",
|
||||
@@ -2669,14 +2666,7 @@
|
||||
"one_user": "%(displayName)s er að skrifa…",
|
||||
"two_users": "%(names)s og %(lastPerson)s eru að skrifa…… …"
|
||||
},
|
||||
"undecryptable_tooltip": "Þessi skilaboð er ekki hægt að afkóða",
|
||||
"url_preview": {
|
||||
"close": "Loka forskoðun",
|
||||
"show_n_more": {
|
||||
"one": "Sýna %(count)s forskoðun til viðbótar",
|
||||
"other": "Sýna %(count)s forskoðanir til viðbótar"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Þessi skilaboð er ekki hægt að afkóða"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Og %(count)s til viðbótar..."
|
||||
|
||||
@@ -1265,8 +1265,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Attiva \"Chiedi di entrare\"",
|
||||
"automatic_debug_logs": "Invia automaticamente log di debug per qualsiasi errore",
|
||||
"automatic_debug_logs_decryption": "Invia automaticamente log di debug per errori di decifrazione",
|
||||
"beta_description": "Cosa riserva il futuro di %(brand)s? I laboratori sono il miglior modo di provare cose in anticipo, testare nuove funzioni ed aiutare a plasmarle prima che vengano distribuite.",
|
||||
"beta_feature": "Questa è una funzionalità beta",
|
||||
"beta_feedback_leave_button": "Per abbandonare la beta, vai nelle impostazioni.",
|
||||
@@ -2896,8 +2894,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s ha iniziato una telefonata. (non supportata da questo browser)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Errore decifratura allegato",
|
||||
"error_invalid": "File non valido %(extra)s"
|
||||
"error_decrypting": "Errore decifratura allegato"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Impossibile mostrare l'immagine per un errore",
|
||||
@@ -3234,14 +3231,7 @@
|
||||
"one_user": "%(displayName)s sta scrivendo …",
|
||||
"two_users": "%(names)s e %(lastPerson)s stanno scrivendo …"
|
||||
},
|
||||
"undecryptable_tooltip": "Non è stato possibile decifrare questo messaggio",
|
||||
"url_preview": {
|
||||
"close": "Chiudi anteprima",
|
||||
"show_n_more": {
|
||||
"one": "Mostra %(count)s altra anteprima",
|
||||
"other": "Mostra altre %(count)s anteprime"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Non è stato possibile decifrare questo messaggio"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "E altri %(count)s ..."
|
||||
|
||||
@@ -1181,8 +1181,6 @@
|
||||
"upload_file": "ファイルをアップロード"
|
||||
},
|
||||
"labs": {
|
||||
"automatic_debug_logs": "エラーが生じた際に、自動的にデバッグログを送信",
|
||||
"automatic_debug_logs_decryption": "復号化エラーが生じた際に、自動的にデバッグログを送信",
|
||||
"beta_description": "%(brand)sのラボでは、最新の機能をいち早く使用したり、テストしたりできるほか、機能が実際にリリースされる前の改善作業を支援することができます。",
|
||||
"beta_feature": "この機能はベータ版です",
|
||||
"beta_feedback_leave_button": "ベータ版の使用を終了するには、設定を開いてください。",
|
||||
@@ -2640,8 +2638,7 @@
|
||||
"voice_call_unsupported": "%(senderName)sが音声通話を行いました。(このブラウザーではサポートされていません)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "添付ファイルを復号化する際にエラーが発生しました",
|
||||
"error_invalid": "無効なファイル %(extra)s"
|
||||
"error_decrypting": "添付ファイルを復号化する際にエラーが発生しました"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "エラーにより画像を表示できません",
|
||||
@@ -2965,14 +2962,7 @@
|
||||
"one_user": "%(displayName)sが入力しています…",
|
||||
"two_users": "%(names)sと%(lastPerson)sが入力しています…"
|
||||
},
|
||||
"undecryptable_tooltip": "このメッセージを復号化できませんでした",
|
||||
"url_preview": {
|
||||
"close": "プレビューを閉じる",
|
||||
"show_n_more": {
|
||||
"one": "他%(count)s個のプレビューを表示",
|
||||
"other": "他%(count)s個のプレビューを表示"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "このメッセージを復号化できませんでした"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "他%(count)s人以上…"
|
||||
|
||||
@@ -977,8 +977,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "ჩართეთ შეერთების მოთხოვნა",
|
||||
"automatic_debug_logs": "ავტომატურად გაგზავნეთ გამართვის ჟურნალი ნებისმიერი შეცდომის შესახებ",
|
||||
"automatic_debug_logs_decryption": "გაშიფვრის შეცდომებზე გამართვის ჟურნალების ავტომატურად გაგზავნა",
|
||||
"beta_description": "რა არის შემდეგი%(brand)s ? ლაბორატორიები საუკეთესო საშუალებაა ნივთების ადრეულ ეტაპზე მისაღებად, ახალი ფუნქციების შესამოწმებლად და მათ ჩამოყალიბებაში, სანამ ისინი რეალურად დაიწყება.",
|
||||
"beta_feature": "ეს არის ბეტა ფუნქცია",
|
||||
"beta_feedback_leave_button": "ბეტადან გასასვლელად ეწვიეთ თქვენს პარამეტრებს.",
|
||||
@@ -2252,8 +2250,7 @@
|
||||
"voice_call_unsupported": "%(senderName)sმოახდინა ხმოვანი ზარი. (ამ ბრაუზერის მიერ არ არის მხარდაჭერილი)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "შეცდომა დანართის გაშიფვრისას",
|
||||
"error_invalid": "არასწორი ფაილი"
|
||||
"error_decrypting": "შეცდომა დანართის გაშიფვრისას"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "შეცდომის გამო სურათის ჩვენება შეუძლებელია",
|
||||
@@ -2583,14 +2580,7 @@
|
||||
"one_user": "%(displayName)sაკრეფებს...",
|
||||
"two_users": "%(names)sდა აკ %(lastPerson)s რეფენ..."
|
||||
},
|
||||
"undecryptable_tooltip": "ამ შეტყობინების გაშიფვრა ვერ მოხერხდა",
|
||||
"url_preview": {
|
||||
"close": "გადახედვის დახურვა",
|
||||
"show_n_more": {
|
||||
"one": "ჩვენება%(count)s სხვა გადახედვა",
|
||||
"other": "ჩვენება%(count)s სხვა გადახედვები"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "ამ შეტყობინების გაშიფვრა ვერ მოხერხდა"
|
||||
},
|
||||
"unsupported_server_description": "ეს სერვერი იყენებს Matrix-ის ძველ ვერსიას. განაახლეთ Matrix-ზე%(version)s გამოიყენოს%(brand)s შეცდომების გარეშე.",
|
||||
"unsupported_server_title": "თქვენი სერვერი მხარდაჭერილი არ არის",
|
||||
|
||||
@@ -1481,8 +1481,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "참가 요청 허용",
|
||||
"automatic_debug_logs": "오류 발생 시 자동으로 디버그 로그를 전송합니다",
|
||||
"automatic_debug_logs_decryption": "복호화 오류 시 디버그 로그 자동 전송",
|
||||
"beta_description": "%(brand)s 의 다음 단계는 무엇일까요? Labs는 새로운 기능을 가장 먼저 접하고 테스트해 볼 수 있는 최고의 방법이며, 정식 출시 전에 기능 개발에 기여할 수 있는 기회입니다.",
|
||||
"beta_feature": "이것은 베타 기능입니다",
|
||||
"beta_feedback_leave_button": "베타를 종료하려면 설정을 방문하세요.",
|
||||
@@ -3338,8 +3336,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s님이 음성 통화를 시작했습니다. (이 브라우저에서는 지원되지 않음)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "첨부 파일 복호화 중 오류",
|
||||
"error_invalid": "잘못된 파일입니다."
|
||||
"error_decrypting": "첨부 파일 복호화 중 오류"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "오류로 인해 이미지를 표시할 수 없습니다",
|
||||
@@ -3643,13 +3640,7 @@
|
||||
"one_user": "%(displayName)s님이 적고 있습니다 …",
|
||||
"two_users": "%(names)s님과 %(lastPerson)s님이 적고 있습니다 …"
|
||||
},
|
||||
"undecryptable_tooltip": "이 메일은 복호화할 수 없습니다.",
|
||||
"url_preview": {
|
||||
"close": "미리보기 닫기",
|
||||
"show_n_more": {
|
||||
"other": "%(count)s 개의 다른 미리보기를 표시"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "이 메일은 복호화할 수 없습니다."
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "외 %(count)s개 더..."
|
||||
|
||||
@@ -1072,8 +1072,6 @@
|
||||
"upload_file": "ອັບໂຫຼດໄຟລ໌"
|
||||
},
|
||||
"labs": {
|
||||
"automatic_debug_logs": "ສົ່ງບັນທຶກ ບັນຫາບັກ ໂດຍອັດຕະໂນມັດກ່ຽວກັບຂໍ້ຜິດພາດໃດໆ",
|
||||
"automatic_debug_logs_decryption": "ສົ່ງບັນທຶກການດີບັ໊ກໂດຍອັດຕະໂນມັດໃນຄວາມຜິດພາດການຖອດລະຫັດ",
|
||||
"beta_feature": "ນີ້ແມ່ນຄຸນສົມບັດເບຕ້າ",
|
||||
"beta_feedback_leave_button": "ເພື່ອອອກຈາກເບຕ້າ, ໃຫ້ເຂົ້າໄປທີ່ການຕັ້ງຄ່າຂອງທ່ານ.",
|
||||
"beta_feedback_title": "%(featureName)s ຄຳຕິຊົມເບຕ້າ",
|
||||
@@ -2327,8 +2325,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s ການໂທດ້ວຍສຽງ. (ບຣາວເຊີນີ້ບໍ່ຮອງຮັບ)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "ເກີດຄວາມຜິດພາດໃນການຖອດລະຫັດໄຟລ໌ຄັດຕິດ",
|
||||
"error_invalid": "ໄຟລ໌ບໍ່ຖືກຕ້ອງ%(extra)s"
|
||||
"error_decrypting": "ເກີດຄວາມຜິດພາດໃນການຖອດລະຫັດໄຟລ໌ຄັດຕິດ"
|
||||
},
|
||||
"m.image": {
|
||||
"error_decrypting": "ການຖອດລະຫັດຮູບພາບຜິດພາດ",
|
||||
@@ -2647,13 +2644,6 @@
|
||||
},
|
||||
"one_user": "%(displayName)s ກຳລັງພິມ…",
|
||||
"two_users": "%(names)s ແລະ %(lastPerson)s ກຳລັງພິມ…"
|
||||
},
|
||||
"url_preview": {
|
||||
"close": "ປິດຕົວຢ່າງ",
|
||||
"show_n_more": {
|
||||
"one": "ສະແດງຕົວຢ່າງ %(count)s ອື່ນໆ",
|
||||
"other": "ສະແດງຕົວຢ່າງອື່ນໆ %(count)s"
|
||||
}
|
||||
}
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
|
||||
@@ -824,8 +824,6 @@
|
||||
"upload_file": "Įkelti failą"
|
||||
},
|
||||
"labs": {
|
||||
"automatic_debug_logs": "Automatiškai siųsti derinimo žurnalus esant bet kokiai klaidai",
|
||||
"automatic_debug_logs_decryption": "Automatiškai siųsti derinimo žurnalus apie iššifravimo klaidas",
|
||||
"beta_feedback_leave_button": "Norėdami išeiti iš beta versijos, apsilankykite savo nustatymuose.",
|
||||
"bridge_state": "Rodyti informaciją apie tiltus kambario nustatymuose",
|
||||
"bridge_state_channel": "Kanalas: <channelLink/>",
|
||||
@@ -1852,8 +1850,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s pradėjo vaizdo skambutį. (nepalaikoma šios naršyklės)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Klaida iššifruojant priedą",
|
||||
"error_invalid": "Neteisingas failas %(extra)s"
|
||||
"error_decrypting": "Klaida iššifruojant priedą"
|
||||
},
|
||||
"m.image": {
|
||||
"error_decrypting": "Klaida iššifruojant vaizdą",
|
||||
@@ -2125,13 +2122,6 @@
|
||||
},
|
||||
"one_user": "%(displayName)s rašo …",
|
||||
"two_users": "%(names)s ir %(lastPerson)s rašo …"
|
||||
},
|
||||
"url_preview": {
|
||||
"close": "Uždaryti peržiūrą",
|
||||
"show_n_more": {
|
||||
"one": "Rodyti %(count)s kitą peržiūrą",
|
||||
"other": "Rodyti %(count)s kitas peržiūras"
|
||||
}
|
||||
}
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
|
||||
@@ -1225,8 +1225,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Iespējot aicinājumus pievienoties",
|
||||
"automatic_debug_logs": "Automātiski nosūtīt atkļūdošanas žurnālus par jebkuru kļūdu",
|
||||
"automatic_debug_logs_decryption": "Automātiski nosūtīt atkļūdošanas žurnālus par atšifrēšanas kļūdām",
|
||||
"beta_description": "Kas gaidāms %(brand)s? Laboratorijas ir labākais veids, kā agri iegūt un izmēģināt jaunas iespējas un palīdzēt tās pilnveidot, pirms tās tiek izlaistas.",
|
||||
"beta_feature": "Šī ir beta funkcija",
|
||||
"beta_feedback_leave_button": "Lai izietu no beta versijas, atveriet iestatījumus.",
|
||||
@@ -2822,8 +2820,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s uzsāka balss zvanu. (Netiek atbalstīts šajā pārlūkā)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Kļūda pielikuma atšifrēšanā",
|
||||
"error_invalid": "Nederīga datne %(extra)s"
|
||||
"error_decrypting": "Kļūda pielikuma atšifrēšanā"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Nevar parādīt attēlu kļūdas dēļ",
|
||||
@@ -3192,14 +3189,7 @@
|
||||
"one_user": "%(displayName)s raksta…",
|
||||
"two_users": "%(names)s un %(lastPerson)s raksta…"
|
||||
},
|
||||
"undecryptable_tooltip": "Šo ziņu nevarēja atšifrēt",
|
||||
"url_preview": {
|
||||
"close": "Aizvērt priekšskatījumu",
|
||||
"show_n_more": {
|
||||
"one": "Rādīt %(count)s citu priekšskatījumu",
|
||||
"other": "Rādīt %(count)s citus priekšskatījumus"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Šo ziņu nevarēja atšifrēt"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Un par %(count)s vairāk..."
|
||||
|
||||
@@ -1250,8 +1250,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Alefaso ny fangatahana hiditra",
|
||||
"automatic_debug_logs": "Alefaso ho azy ny log debug amin'ny lesoka rehetra",
|
||||
"automatic_debug_logs_decryption": "Alefaso ho azy ny diarin'ny debug momba ny lesoka decryption",
|
||||
"beta_description": "Inona no manaraka%(brand)s ? Labs no fomba tsara indrindra hahazoana zavatra mialoha, hizaha toetra vaovao ary hanampy amin'ny famolavolana azy ireo alohany hanombohany.",
|
||||
"beta_feature": "Ity dia endri-javatra beta",
|
||||
"beta_feedback_leave_button": "Raha te hiala amin'ny beta dia tsidiho ny kiranao.",
|
||||
@@ -2879,8 +2877,7 @@
|
||||
"voice_call_unsupported": "%(senderName)snametraka antso an-tariby. (tsy tohanan'ity toeram-pivohizana ity)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Nisy olana teo am-pamakiana ny famaha",
|
||||
"error_invalid": "Rakitra tsy mety %(Supplémentaires"
|
||||
"error_decrypting": "Nisy olana teo am-pamakiana ny famaha"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Tsy afaka mampiseho sary noho ny fahadisoana",
|
||||
@@ -3214,14 +3211,7 @@
|
||||
"one_user": "%(displayName)sdia manoratra",
|
||||
"two_users": "%(names)sSY%(lastPerson)s mitendry…"
|
||||
},
|
||||
"undecryptable_tooltip": "Ity hafatra ity dia tsy azo decryption",
|
||||
"url_preview": {
|
||||
"close": "Akatona mialoha",
|
||||
"show_n_more": {
|
||||
"one": "FAMPISEHOANA%(count)s preview hafa",
|
||||
"other": "FAMPISEHOANA%(count)s fijery hafa"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Ity hafatra ity dia tsy azo decryption"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"one": "",
|
||||
|
||||
@@ -1495,8 +1495,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Aktiver be om å bli med",
|
||||
"automatic_debug_logs": "Send automatisk feilsøkingslogger ved eventuelle feil",
|
||||
"automatic_debug_logs_decryption": "Send automatisk feilsøkingslogger ved dekrypteringsfeil",
|
||||
"beta_description": "Hva er det neste for %(brand)s? Labs er den beste måten å få ting tidlig på, teste ut nye funksjoner og hjelpe til med å forme dem før de lanseres.",
|
||||
"beta_feature": "Dette er en betafunksjon",
|
||||
"beta_feedback_leave_button": "For å forlate betaen, gå til innstillingene dine.",
|
||||
@@ -3395,8 +3393,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s gjorde et taleanrop. (støttes ikke av denne nettleseren)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Feil ved dekryptering av vedlegg",
|
||||
"error_invalid": "Ugyldig fil"
|
||||
"error_decrypting": "Feil ved dekryptering av vedlegg"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Kan ikke vise bilde på grunn av feil",
|
||||
@@ -3734,14 +3731,7 @@
|
||||
"one_user": "%(displayName)s skriver …",
|
||||
"two_users": "%(names)s og %(lastPerson)s skriver …"
|
||||
},
|
||||
"undecryptable_tooltip": "Denne meldingen kunne ikke dekrypteres",
|
||||
"url_preview": {
|
||||
"close": "Lukk forhåndsvisning",
|
||||
"show_n_more": {
|
||||
"one": "Vis %(count)s annen forhåndsvisning",
|
||||
"other": "Vis %(count)s andre forhåndsvisninger"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Denne meldingen kunne ikke dekrypteres"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"Og %(count)s til...": "other"
|
||||
|
||||
@@ -1101,8 +1101,6 @@
|
||||
"upload_file": "Bestand uploaden"
|
||||
},
|
||||
"labs": {
|
||||
"automatic_debug_logs": "Automatisch foutenlogboek versturen bij een fout",
|
||||
"automatic_debug_logs_decryption": "Automatisch foutopsporingslogboeken versturen bij decoderingsfouten",
|
||||
"beta_feature": "Dit is een bètafunctie",
|
||||
"beta_feedback_leave_button": "Om de beta te verlaten, ga naar je instellingen.",
|
||||
"beta_feedback_title": "%(featureName)s Bèta-feedback",
|
||||
@@ -2474,8 +2472,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s poogt je te bellen, maar jouw browser ondersteunt dat niet"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Fout bij het ontsleutelen van de bijlage",
|
||||
"error_invalid": "Ongeldig bestand %(extra)s"
|
||||
"error_decrypting": "Fout bij het ontsleutelen van de bijlage"
|
||||
},
|
||||
"m.image": {
|
||||
"error_decrypting": "Fout bij het ontsleutelen van de afbeelding",
|
||||
@@ -2793,13 +2790,6 @@
|
||||
},
|
||||
"one_user": "%(displayName)s is aan het typen…",
|
||||
"two_users": "%(names)s en %(lastPerson)s zijn aan het typen…"
|
||||
},
|
||||
"url_preview": {
|
||||
"close": "Voorbeeld sluiten",
|
||||
"show_n_more": {
|
||||
"one": "%(count)s andere preview weergeven",
|
||||
"other": "%(count)s andere previews weergeven"
|
||||
}
|
||||
}
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
|
||||
@@ -1472,8 +1472,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Włącz prośby o dołączenie",
|
||||
"automatic_debug_logs": "Automatycznie wysyłaj logi debugowania po wystąpieniu jakiegokolwiek błędu",
|
||||
"automatic_debug_logs_decryption": "Automatycznie wysyłaj logi debugowania po wystąpieniu błędów deszyfrowania",
|
||||
"beta_description": "Co następne dla %(brand)s? Laboratoria to najlepsze miejsce do przetestowania nowych funkcji i możliwość pomocy w testowaniu, zanim dotrą one do szerszego grona użytkowników.",
|
||||
"beta_feature": "To jest funkcja beta",
|
||||
"beta_feedback_leave_button": "Aby wyjść z bety, odwiedź swoje ustawienia.",
|
||||
@@ -3356,8 +3354,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s wykonał połączenie głosowe. (nie wspierane przez tę przeglądarkę)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Błąd odszyfrowywania załącznika",
|
||||
"error_invalid": "Nieprawidłowy plik"
|
||||
"error_decrypting": "Błąd odszyfrowywania załącznika"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Nie można pokazać zdjęcia z powodu błędu",
|
||||
@@ -3704,15 +3701,7 @@
|
||||
"one_user": "%(displayName)s pisze…",
|
||||
"two_users": "%(names)s i %(lastPerson)s piszą…"
|
||||
},
|
||||
"undecryptable_tooltip": "Wiadomość nie mogła zostać rozszyfrowana",
|
||||
"url_preview": {
|
||||
"close": "Zamknij podgląd",
|
||||
"show_n_more": {
|
||||
"one": "Pokaż %(count)s inny podgląd",
|
||||
"few": "Pokaż %(count)s inne podglądy",
|
||||
"many": "Pokaż %(count)s innych podglądów"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Wiadomość nie mogła zostać rozszyfrowana"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "I %(count)s więcej…"
|
||||
|
||||
@@ -1391,8 +1391,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Permitir pedir para participar",
|
||||
"automatic_debug_logs": "Envia automaticamente registos de depuração em qualquer erro",
|
||||
"automatic_debug_logs_decryption": "Envia automaticamente registos de depuração em caso de erros de desencriptação",
|
||||
"beta_description": "O que vais fazer a seguir em %(brand)s? Os laboratórios são a melhor forma de obteres informações antecipadas, testares novas funcionalidades e ajudares a moldá-las antes do seu lançamento efetivo.",
|
||||
"beta_feature": "Esta é uma funcionalidade beta",
|
||||
"beta_feedback_leave_button": "Para sair da versão beta, visita as tuas definições.",
|
||||
@@ -3211,8 +3209,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s fez uma chamada de voz. (não suportada por este navegador)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Erro ao descriptografar o anexo",
|
||||
"error_invalid": "Ficheiro inválido"
|
||||
"error_decrypting": "Erro ao descriptografar o anexo"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Não é possível mostrar a imagem devido a um erro",
|
||||
@@ -3552,14 +3549,7 @@
|
||||
"one_user": "%(displayName)s está a escrever ...",
|
||||
"two_users": "%(names)s e %(lastPerson)s estão a escrever …"
|
||||
},
|
||||
"undecryptable_tooltip": "Esta mensagem não pôde ser desencriptada",
|
||||
"url_preview": {
|
||||
"close": "Fechar pré-visualização",
|
||||
"show_n_more": {
|
||||
"one": "Mostra %(count)s outra pré-visualização",
|
||||
"other": "Mostra %(count)s outras pré-visualizações"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Esta mensagem não pôde ser desencriptada"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"one": "",
|
||||
|
||||
@@ -1488,8 +1488,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Habilitar pedir para participar",
|
||||
"automatic_debug_logs": "Enviar automaticamente logs de depuração em qualquer erro",
|
||||
"automatic_debug_logs_decryption": "Enviar automaticamente logs sobre erros de descriptografia",
|
||||
"beta_description": "O que vem por aí no %(brand)s? Os laboratórios são a melhor maneira de obter informações antecipadas, testar novos recursos e ajudar a moldá-los antes do lançamento.",
|
||||
"beta_feature": "Este é um recurso beta",
|
||||
"beta_feedback_leave_button": "Para sair do beta, vá nas suas configurações.",
|
||||
@@ -3367,8 +3365,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s iniciou uma chamada de voz. (não suportada por este navegador)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Erro ao descriptografar o anexo",
|
||||
"error_invalid": "Arquivo inválido"
|
||||
"error_decrypting": "Erro ao descriptografar o anexo"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Não é possível mostrar a imagem devido a um erro",
|
||||
@@ -3709,14 +3706,7 @@
|
||||
"one_user": "%(displayName)s está digitando…",
|
||||
"two_users": "%(names)s e %(lastPerson)s estão digitando…"
|
||||
},
|
||||
"undecryptable_tooltip": "Esta mensagem não pôde ser descriptografada",
|
||||
"url_preview": {
|
||||
"close": "Fechar a visualização",
|
||||
"show_n_more": {
|
||||
"one": "Exibir a %(count)s outra prévia",
|
||||
"other": "Exibir as %(count)s outras prévias"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Esta mensagem não pôde ser descriptografada"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "E %(count)s mais..."
|
||||
|
||||
@@ -1493,8 +1493,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Включить запрос на присоединение",
|
||||
"automatic_debug_logs": "Автоматическая отправка журналов отладки при любой ошибке",
|
||||
"automatic_debug_logs_decryption": "Автоматическая отправка журналов отладки при ошибках расшифровки",
|
||||
"beta_description": "Что нового в %(brand)s? Labs — это лучший способ получить и испытать новые функции, помогая сформировать их перед выходом в свет.",
|
||||
"beta_feature": "Это бета-функция",
|
||||
"beta_feedback_leave_button": "Чтобы выйти из бета-версии, зайдите в настройки.",
|
||||
@@ -3401,8 +3399,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s сделал голосовой вызов. (не поддерживается этим браузером)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Ошибка расшифровки вложения",
|
||||
"error_invalid": "Недопустимый формат файла"
|
||||
"error_decrypting": "Ошибка расшифровки вложения"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Невозможно показать изображение из-за ошибки",
|
||||
@@ -3745,14 +3742,7 @@
|
||||
"one_user": "%(displayName)s печатает…",
|
||||
"two_users": "%(names)s и %(lastPerson)s печатают…"
|
||||
},
|
||||
"undecryptable_tooltip": "Это сообщение не удалось расшифровать",
|
||||
"url_preview": {
|
||||
"close": "Закрыть предпросмотр",
|
||||
"show_n_more": {
|
||||
"one": "Показать %(count)s другой предварительный просмотр",
|
||||
"other": "Показать %(count)s других предварительных просмотров"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Это сообщение не удалось расшифровать"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"one": "%(count)s...",
|
||||
|
||||
@@ -1509,8 +1509,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Umožniť požiadať o pripojenie",
|
||||
"automatic_debug_logs": "Automatické odosielanie záznamov ladenia pri akejkoľvek chybe",
|
||||
"automatic_debug_logs_decryption": "Automatické odosielanie záznamov ladenia pri chybe dešifrovania",
|
||||
"beta_description": "Čo vás čaká v aplikácii %(brand)s? Laboratóriá sú najlepším spôsobom, ako získať funkcie v predstihu, otestovať nové funkcie a pomôcť ich vytvoriť ešte pred ich skutočným spustením.",
|
||||
"beta_feature": "Toto je funkcia vo verzii beta",
|
||||
"beta_feedback_leave_button": "Ak chcete opustiť beta verziu, navštívte svoje nastavenia.",
|
||||
@@ -3437,8 +3435,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s uskutočnil telefonát. (Nepodporované týmto prehliadačom)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Chyba pri dešifrovaní prílohy",
|
||||
"error_invalid": "Neplatný súbor"
|
||||
"error_decrypting": "Chyba pri dešifrovaní prílohy"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Nie je možné zobraziť obrázok kvôli chybe",
|
||||
@@ -3811,14 +3808,7 @@
|
||||
"one_user": "%(displayName)s píše …",
|
||||
"two_users": "%(names)s a %(lastPerson)s píšu …"
|
||||
},
|
||||
"undecryptable_tooltip": "Túto správu sa nepodarilo dešifrovať",
|
||||
"url_preview": {
|
||||
"close": "Zatvoriť náhľad",
|
||||
"show_n_more": {
|
||||
"one": "Zobraziť %(count)s ďalší náhľad",
|
||||
"other": "Zobraziť %(count)s ďalších náhľadov"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Túto správu sa nepodarilo dešifrovať"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "A %(count)s ďalších…"
|
||||
|
||||
@@ -1191,8 +1191,6 @@
|
||||
"upload_file": "Ngarkoni një kartelë"
|
||||
},
|
||||
"labs": {
|
||||
"automatic_debug_logs": "Me çdo gabim, dërgo automatikisht regjistra diagnostikimi",
|
||||
"automatic_debug_logs_decryption": "Dërgo automatikisht regjistra diagnostikimi, gjatë gabimesh shfshehtëzimi",
|
||||
"beta_description": "Ç’vjen më pas për %(brand)s? Labs janë mënyra më e mirë për t’i pasur gjërat që herët, për të testuar veçori të reja dhe për të ndihmuar t’u jepet formë para se të hidhen faktikisht në qarkullim.",
|
||||
"beta_feature": "Kjo është një veçori beta",
|
||||
"beta_feedback_leave_button": "Që të braktisni beta-n, vizitoni rregullimet tuaja.",
|
||||
@@ -2702,8 +2700,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s bëri një thirrje zanore. (e pambuluar nga ky shfletues)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Gabim në shfshehtëzim bashkëngjitjeje",
|
||||
"error_invalid": "Kartelë e pavlefshme%(extra)s"
|
||||
"error_decrypting": "Gabim në shfshehtëzim bashkëngjitjeje"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "S’arrihet të shihet figurë, për shkak gabimi",
|
||||
@@ -3029,14 +3026,7 @@
|
||||
"one_user": "%(displayName)s po shtyp …",
|
||||
"two_users": "%(names)s dhe %(lastPerson)s të tjerë po shtypin …"
|
||||
},
|
||||
"undecryptable_tooltip": "Ky mesazh s’u shfshehtëzua dot",
|
||||
"url_preview": {
|
||||
"close": "Mbylle paraparjen",
|
||||
"show_n_more": {
|
||||
"one": "Shfaq %(count)s paraparje tjetër",
|
||||
"other": "Shfaq %(count)s paraparje të tjera"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Ky mesazh s’u shfshehtëzua dot"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Dhe %(count)s të tjerë…"
|
||||
|
||||
@@ -1438,8 +1438,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Aktivera fråga om att gå med",
|
||||
"automatic_debug_logs": "Skicka automatiskt felsökningsloggar vid fel",
|
||||
"automatic_debug_logs_decryption": "Skicka automatiskt avbuggningsloggar vid avkrypteringsfel",
|
||||
"beta_description": "Vad händer härnäst med %(brand)s? Experiment är det bästa sättet att få saker tidigt, pröva nya funktioner, och hjälpa till att forma dem innan de egentligen släpps.",
|
||||
"beta_feature": "Det här är en betafunktion",
|
||||
"beta_feedback_leave_button": "För att lämna betan, besök dina inställningar.",
|
||||
@@ -3299,8 +3297,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s ringde ett röstsamtal. (stöds inte av denna webbläsare)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Fel vid avkryptering av bilagan",
|
||||
"error_invalid": "Ogiltig fil"
|
||||
"error_decrypting": "Fel vid avkryptering av bilagan"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Kunde inte visa bild på grund av fel",
|
||||
@@ -3641,14 +3638,7 @@
|
||||
"one_user": "%(displayName)s skriver …",
|
||||
"two_users": "%(names)s och %(lastPerson)s skriver …"
|
||||
},
|
||||
"undecryptable_tooltip": "Det här meddelandet kunde inte avkrypteras",
|
||||
"url_preview": {
|
||||
"close": "Stäng förhandsgranskning",
|
||||
"show_n_more": {
|
||||
"one": "Visa %(count)s annan förhandsgranskning",
|
||||
"other": "Visa %(count)s andra förhandsgranskningar"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Det här meddelandet kunde inte avkrypteras"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Och %(count)s till…"
|
||||
|
||||
@@ -1389,8 +1389,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Katılma isteğini etkinleştir",
|
||||
"automatic_debug_logs": "Herhangi bir hatada otomatik olarak hata ayıklama günlükleri gönder",
|
||||
"automatic_debug_logs_decryption": "Şifre çözme hatalarında otomatik olarak hata ayıklama günlükleri gönder",
|
||||
"beta_description": "%(brand)s için sırada ne var? Labsr, bir şeyleri erkenden elde etmenin, yeni özellikleri test etmenin ve piyasaya sürülmeden önce şekillendirmeye yardımcı olmanın en iyi yoludur.",
|
||||
"beta_feature": "Bu bir beta özelliğidir",
|
||||
"beta_feedback_leave_button": "Beta sürümünden çıkmak için ayarlarınızı ziyaret edin.",
|
||||
@@ -3201,8 +3199,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s bir çağrı başlattı. (Bu tarayıcı tarafından desteklenmiyor)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Ek şifresini çözme hatası",
|
||||
"error_invalid": "Geçersiz dosya"
|
||||
"error_decrypting": "Ek şifresini çözme hatası"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Hata nedeniyle görüntü gösterilemiyor",
|
||||
@@ -3538,14 +3535,7 @@
|
||||
"one_user": "%(displayName)s yazıyor…",
|
||||
"two_users": "%(names)s ve %(lastPerson)s yazıyor…"
|
||||
},
|
||||
"undecryptable_tooltip": "Bu mesajın şifresi çözülemedi",
|
||||
"url_preview": {
|
||||
"close": "Önizlemeyi kapat",
|
||||
"show_n_more": {
|
||||
"one": "%(count)s diğer önizlemeyi göster",
|
||||
"other": "%(count)s diğer önizlemeyi göster"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Bu mesajın şifresi çözülemedi"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "ve %(count)s kez daha..."
|
||||
|
||||
@@ -1492,8 +1492,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Увімкнути запити на приєднання",
|
||||
"automatic_debug_logs": "Автоматично надсилати журнал зневадження про всі помилки",
|
||||
"automatic_debug_logs_decryption": "Автоматично надсилати журнали зневадження при збоях розшифрування",
|
||||
"beta_description": "Що далі для %(brand)s? Експериментальні — це найкращий спосіб спробувати функції на ранній стадії розробки, протестувати їх і допомогти сформувати їх до фактичного запуску.",
|
||||
"beta_feature": "Це бета-можливість",
|
||||
"beta_feedback_leave_button": "Щоб вийти з бета-тестування, перейдіть до налаштувань.",
|
||||
@@ -3392,8 +3390,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s розпочинає голосовий виклик. (не підтримується цим браузером)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Помилка розшифрування вкладення",
|
||||
"error_invalid": "Недійсний файл"
|
||||
"error_decrypting": "Помилка розшифрування вкладення"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Не вдалося показати зображення через помилку",
|
||||
@@ -3743,14 +3740,7 @@
|
||||
"one_user": "%(displayName)s пише…",
|
||||
"two_users": "%(names)s та %(lastPerson)s пишуть…"
|
||||
},
|
||||
"undecryptable_tooltip": "Не вдалося розшифрувати це повідомлення",
|
||||
"url_preview": {
|
||||
"close": "Закрити попередній перегляд",
|
||||
"show_n_more": {
|
||||
"one": "Показати %(count)s інший попередній перегляд",
|
||||
"other": "Показати %(count)s інших попередніх переглядів"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Не вдалося розшифрувати це повідомлення"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"one": "",
|
||||
|
||||
@@ -1186,8 +1186,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "Bật yêu cầu để tham gia",
|
||||
"automatic_debug_logs": "Tự động gửi debug log khi có bất kỳ lỗi nào",
|
||||
"automatic_debug_logs_decryption": "Tự động gửi nhật ký gỡ lỗi mỗi lúc gặp lỗi khi giải mã",
|
||||
"beta_description": "Những gì sắp đến với %(brand)s? Phòng thí điểm là nơi tốt nhất để có mọi thứ sớm, thử nghiệm tính năng mới và giúp hoàn thiện trước khi chúng thực sự ra mắt.",
|
||||
"beta_feature": "Đây là một tính năng thử nghiệm beta",
|
||||
"beta_feedback_leave_button": "Để rời khỏi bản beta, hãy truy cập mục cài đặt của bạn.",
|
||||
@@ -2653,8 +2651,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s đã thực hiện một cuộc gọi thoại. (không được hỗ trợ bởi trình duyệt này)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "Lỗi khi giải mã tệp đính kèm",
|
||||
"error_invalid": "Tệp%(extra)s không hợp lệ"
|
||||
"error_decrypting": "Lỗi khi giải mã tệp đính kèm"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "Không thể hiển thị hình ảnh do lỗi",
|
||||
@@ -2970,14 +2967,7 @@
|
||||
"one_user": "%(displayName)s đang gõ …",
|
||||
"two_users": "%(names)s và %(lastPerson)s đang gõ …"
|
||||
},
|
||||
"undecryptable_tooltip": "Không giải mã được tin nhắn",
|
||||
"url_preview": {
|
||||
"close": "Đóng bản xem trước",
|
||||
"show_n_more": {
|
||||
"one": "Hiển thị %(count)s bản xem trước khác",
|
||||
"other": "Hiển thị %(count)s bản xem trước khác"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "Không giải mã được tin nhắn"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "Và %(count)s thêm…"
|
||||
|
||||
@@ -1158,8 +1158,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "启用 “需要验证加入请求”",
|
||||
"automatic_debug_logs": "遇到任何错误自动发送调试日志",
|
||||
"automatic_debug_logs_decryption": "自动发送有关解密错误的debug日志",
|
||||
"beta_description": "%(brand)s的下一步是什么?实验室是早期获得东西、测试新功能和在它们发布前帮助塑造的最好方式。",
|
||||
"beta_feature": "这是beta功能",
|
||||
"beta_feedback_leave_button": "要离开beta,请访问你的设置。",
|
||||
@@ -2576,8 +2574,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s 发起了语音通话。(此浏览器不支持)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "解密附件时出错",
|
||||
"error_invalid": "无效文件 %(extra)s"
|
||||
"error_decrypting": "解密附件时出错"
|
||||
},
|
||||
"m.image": {
|
||||
"error_decrypting": "解密图像时出错",
|
||||
@@ -2897,13 +2894,6 @@
|
||||
},
|
||||
"one_user": "%(displayName)s 正在输入…",
|
||||
"two_users": "%(names)s和%(lastPerson)s正在输入……"
|
||||
},
|
||||
"url_preview": {
|
||||
"close": "关闭预览",
|
||||
"show_n_more": {
|
||||
"one": "显示 %(count)s 个其他预览",
|
||||
"other": "显示 %(count)s 个其他预览"
|
||||
}
|
||||
}
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
|
||||
@@ -1256,8 +1256,6 @@
|
||||
},
|
||||
"labs": {
|
||||
"ask_to_join": "啟用要求加入",
|
||||
"automatic_debug_logs": "自動在發生錯誤時傳送除錯日誌",
|
||||
"automatic_debug_logs_decryption": "自動傳送關於解密錯誤的除錯紀錄檔",
|
||||
"beta_description": "%(brand)s 的下一步是什麼?實驗室是提早取得資訊、測試新功能,並在實際釋出前協助塑造它們的最佳方式。",
|
||||
"beta_feature": "這是 Beta 測試功能",
|
||||
"beta_feedback_leave_button": "請到設定頁面離開 Beta 測試版。",
|
||||
@@ -2892,8 +2890,7 @@
|
||||
"voice_call_unsupported": "%(senderName)s 撥打了語音通話。(不被此瀏覽器支援)"
|
||||
},
|
||||
"m.file": {
|
||||
"error_decrypting": "解密附件時出錯",
|
||||
"error_invalid": "不存在的文件 %(extra)s"
|
||||
"error_decrypting": "解密附件時出錯"
|
||||
},
|
||||
"m.image": {
|
||||
"error": "因為錯誤而無法顯示圖片",
|
||||
@@ -3228,14 +3225,7 @@
|
||||
"one_user": "%(displayName)s 正在打字…",
|
||||
"two_users": "%(names)s 與 %(lastPerson)s 正在打字…"
|
||||
},
|
||||
"undecryptable_tooltip": "此訊息無法解密",
|
||||
"url_preview": {
|
||||
"close": "關閉預覽",
|
||||
"show_n_more": {
|
||||
"one": "顯示 %(count)s 個其他預覽",
|
||||
"other": "顯示 %(count)s 個其他預覽"
|
||||
}
|
||||
}
|
||||
"undecryptable_tooltip": "此訊息無法解密"
|
||||
},
|
||||
"truncated_list_n_more": {
|
||||
"other": "與更多 %(count)s 個…"
|
||||
|
||||
@@ -1086,10 +1086,10 @@ describe("<MatrixChat />", () => {
|
||||
getComponent();
|
||||
|
||||
// Then we are asked to verify our device
|
||||
await screen.findByRole("heading", { name: "Confirm your identity", level: 2 });
|
||||
await screen.findByRole("heading", { name: "Confirm your digital identity", level: 2 });
|
||||
|
||||
// Sanity: we are not racing with another screen update, so this heading stays visible
|
||||
await screen.findByRole("heading", { name: "Confirm your identity", level: 2 });
|
||||
await screen.findByRole("heading", { name: "Confirm your digital identity", level: 2 });
|
||||
});
|
||||
it("should not open app after cancelling device verify if unskippable verification is on", async () => {
|
||||
// See https://github.com/element-hq/element-web/issues/29230
|
||||
@@ -1106,7 +1106,7 @@ describe("<MatrixChat />", () => {
|
||||
getComponent();
|
||||
|
||||
// When we click "Use another device"
|
||||
await screen.findByRole("heading", { name: "Confirm your identity", level: 2 });
|
||||
await screen.findByRole("heading", { name: "Confirm your digital identity", level: 2 });
|
||||
const verify = screen.getByRole("button", { name: "Use another device" });
|
||||
act(() => verify.click());
|
||||
|
||||
@@ -1115,7 +1115,7 @@ describe("<MatrixChat />", () => {
|
||||
act(() => closeButton.click());
|
||||
|
||||
// Then we are not allowed in - we are still being asked to verify
|
||||
await screen.findByRole("heading", { name: "Confirm your identity", level: 2 });
|
||||
await screen.findByRole("heading", { name: "Confirm your digital identity", level: 2 });
|
||||
});
|
||||
|
||||
describe("when query params have a loginToken", () => {
|
||||
@@ -1160,7 +1160,7 @@ describe("<MatrixChat />", () => {
|
||||
);
|
||||
|
||||
// Then we are not allowed in - we are being asked to verify
|
||||
await screen.findByRole("heading", { name: "Confirm your identity", level: 2 });
|
||||
await screen.findByRole("heading", { name: "Confirm your digital identity", level: 2 });
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1382,7 +1382,7 @@ describe("<MatrixChat />", () => {
|
||||
await getComponentAndLogin();
|
||||
|
||||
// Complete security begin screen is rendered
|
||||
await screen.findByText("Confirm your identity");
|
||||
await screen.findByText("Confirm your digital identity");
|
||||
|
||||
expect(loginClient.getCrypto()!.userHasCrossSigningKeys).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
@@ -53,7 +53,7 @@ describe("<UserMenu>", () => {
|
||||
|
||||
const spy = jest.spyOn(defaultDispatcher, "dispatch");
|
||||
screen.getByRole("button", { name: /User menu/i }).click();
|
||||
(await screen.findByRole("menuitem", { name: /Sign out/i })).click();
|
||||
(await screen.findByRole("menuitem", { name: /Remove this device/i })).click();
|
||||
await waitFor(() => {
|
||||
expect(spy).toHaveBeenCalledWith({ action: "logout" });
|
||||
});
|
||||
@@ -77,7 +77,7 @@ describe("<UserMenu>", () => {
|
||||
|
||||
const spy = jest.spyOn(defaultDispatcher, "dispatch");
|
||||
screen.getByRole("button", { name: /User menu/i }).click();
|
||||
(await screen.findByRole("menuitem", { name: /Sign out/i })).click();
|
||||
(await screen.findByRole("menuitem", { name: /Remove this device/i })).click();
|
||||
await waitFor(() => {
|
||||
expect(spy).toHaveBeenCalledWith({ action: "logout" });
|
||||
});
|
||||
@@ -103,7 +103,7 @@ describe("<UserMenu>", () => {
|
||||
|
||||
const spy = jest.spyOn(Modal, "createDialog");
|
||||
screen.getByRole("button", { name: /User menu/i }).click();
|
||||
(await screen.findByRole("menuitem", { name: /Sign out/i })).click();
|
||||
(await screen.findByRole("menuitem", { name: /Remove this device/i })).click();
|
||||
|
||||
await waitFor(() => {
|
||||
expect(spy).toHaveBeenCalledWith(LogoutDialog);
|
||||
|
||||
@@ -92,7 +92,7 @@ describe("CompleteSecurity", () => {
|
||||
await act(async () => panel.getByRole("button", { name: "Can't confirm?" }).click());
|
||||
|
||||
// Then the reset identity dialog appears
|
||||
expect(screen.getByRole("heading", { name: "You need to reset your identity" })).toBeInTheDocument();
|
||||
expect(screen.getByRole("heading", { name: "You need to reset your digital identity" })).toBeInTheDocument();
|
||||
expect(panel.getByRole("button", { name: "Continue" })).toBeInTheDocument();
|
||||
});
|
||||
|
||||
@@ -117,7 +117,7 @@ describe("CompleteSecurity", () => {
|
||||
// Then the reset identity dialog appears, and should have a different
|
||||
// title from when there were no verification methods available.
|
||||
expect(
|
||||
screen.getByRole("heading", { name: "Are you sure you want to reset your identity?" }),
|
||||
screen.getByRole("heading", { name: "Are you sure you want to reset your digital identity?" }),
|
||||
).toBeInTheDocument();
|
||||
});
|
||||
|
||||
@@ -142,7 +142,7 @@ describe("CompleteSecurity", () => {
|
||||
// Then the reset identity dialog appears, and should have a different
|
||||
// title from when there were no verification methods available.
|
||||
expect(
|
||||
screen.getByRole("heading", { name: "Are you sure you want to reset your identity?" }),
|
||||
screen.getByRole("heading", { name: "Are you sure you want to reset your digital identity?" }),
|
||||
).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -367,16 +367,16 @@ describe("<ForgotPassword>", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("and clicking »Sign out of all devices« and »Reset password«", () => {
|
||||
describe("and clicking »Remove other devices« and »Reset password«", () => {
|
||||
beforeEach(async () => {
|
||||
await click(screen.getByText("Sign out of all devices"));
|
||||
await click(screen.getByText("Remove other devices"));
|
||||
await click(screen.getByText("Reset password"));
|
||||
});
|
||||
|
||||
it("should show the sign out warning dialog", async () => {
|
||||
it("should show the removing warning dialog", async () => {
|
||||
await expect(
|
||||
screen.findByText(
|
||||
"Signing out your devices will delete the message encryption keys stored on them, making encrypted chat history unreadable.",
|
||||
"Removing your devices will delete the message encryption keys stored on them, making encrypted chat history unreadable.",
|
||||
),
|
||||
).resolves.toBeInTheDocument();
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ exports[`CompleteSecurity Allows verifying with another device if one is availab
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93"
|
||||
>
|
||||
Confirm your identity
|
||||
Confirm your digital identity
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
@@ -146,7 +146,7 @@ exports[`CompleteSecurity Allows verifying with another device if one is availab
|
||||
role="button"
|
||||
tabindex="0"
|
||||
>
|
||||
Sign out
|
||||
Remove this device
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -263,7 +263,7 @@ exports[`CompleteSecurity Allows verifying with recovery key if one is available
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93"
|
||||
>
|
||||
Confirm your identity
|
||||
Confirm your digital identity
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
@@ -327,7 +327,7 @@ exports[`CompleteSecurity Allows verifying with recovery key if one is available
|
||||
role="button"
|
||||
tabindex="0"
|
||||
>
|
||||
Sign out
|
||||
Remove this device
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -136,9 +136,9 @@ describe("useUserInfoHeaderViewModel", () => {
|
||||
danger: true,
|
||||
description: (
|
||||
<div>
|
||||
Deactivating this user will log them out and prevent them from logging back in. Additionally,
|
||||
they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want
|
||||
to deactivate this user?
|
||||
Deactivating this user will remove their devices and prevent them from logging back in.
|
||||
Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you
|
||||
sure you want to deactivate this user?
|
||||
</div>
|
||||
),
|
||||
title: "Deactivate user?",
|
||||
|
||||
@@ -63,10 +63,10 @@ exports[`<MasUnlockCrossSigningAuthEntry/> should render 1`] = `
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93"
|
||||
>
|
||||
Go to your account to reset your identity
|
||||
Go to your account to reset your digital identity
|
||||
</h2>
|
||||
<span>
|
||||
You're about to go to your matrix.org account to reset your identity. Once you have completed reset on your account, please return here and click Retry.
|
||||
You're about to go to your matrix.org account to reset your digital identity. Once you have completed reset on your account, please return here and click Retry.
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
|
||||
@@ -41,7 +41,7 @@ describe("LogoutDialog", () => {
|
||||
it("shows a regular dialog when crypto is disabled", async () => {
|
||||
mocked(mockClient.getCrypto).mockReturnValue(undefined);
|
||||
const rendered = renderComponent();
|
||||
await rendered.findByText("Are you sure you want to sign out?");
|
||||
await rendered.findByText("Are you sure you want to remove this device?");
|
||||
expect(rendered.container).toMatchSnapshot();
|
||||
});
|
||||
|
||||
@@ -49,7 +49,7 @@ describe("LogoutDialog", () => {
|
||||
mockCrypto.getActiveSessionBackupVersion.mockResolvedValue("1");
|
||||
mockCrypto.isSecretStorageReady.mockResolvedValue(true);
|
||||
const rendered = renderComponent();
|
||||
await rendered.findByText("Are you sure you want to sign out?");
|
||||
await rendered.findByText("Are you sure you want to remove this device?");
|
||||
});
|
||||
|
||||
it("prompts user to set up recovery if backups are enabled but recovery isn't", async () => {
|
||||
|
||||
@@ -31,7 +31,7 @@ exports[`ConfirmKeyStorageOffDialog renders 1`] = `
|
||||
</h2>
|
||||
</div>
|
||||
<span>
|
||||
If you sign out of all your devices you will lose your message history and will need to verify all your existing contacts again.
|
||||
If you remove all your devices you will lose your message history and will need to verify all your existing contacts again.
|
||||
<br />
|
||||
<a
|
||||
href="https://element.io/help#encryption5"
|
||||
|
||||
@@ -35,10 +35,10 @@ exports[`LogoutDialog Prompts user to go to settings if there is a backup on the
|
||||
Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.
|
||||
</p>
|
||||
<p>
|
||||
When you sign out, these keys will be deleted from this device, which means you won't be able to read encrypted messages unless you have the keys for them on your other devices, or backed them up to the server.
|
||||
When you remove this device you won't be able to read encrypted messages unless you have the keys for them on your other devices, or backed them up to the server.
|
||||
</p>
|
||||
<p>
|
||||
Back up your keys before signing out to avoid losing them.
|
||||
Back up your keys before removing this device to avoid losing them.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -136,10 +136,10 @@ exports[`LogoutDialog Prompts user to go to settings if there is no backup on th
|
||||
Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.
|
||||
</p>
|
||||
<p>
|
||||
When you sign out, these keys will be deleted from this device, which means you won't be able to read encrypted messages unless you have the keys for them on your other devices, or backed them up to the server.
|
||||
When you remove this device you won't be able to read encrypted messages unless you have the keys for them on your other devices, or backed them up to the server.
|
||||
</p>
|
||||
<p>
|
||||
Back up your keys before signing out to avoid losing them.
|
||||
Back up your keys before removing this device to avoid losing them.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -224,14 +224,14 @@ exports[`LogoutDialog shows a regular dialog when crypto is disabled 1`] = `
|
||||
class="mx_Heading_h3 mx_Dialog_title"
|
||||
id="mx_BaseDialog_title"
|
||||
>
|
||||
Sign out
|
||||
Remove this device
|
||||
</h1>
|
||||
</div>
|
||||
<div
|
||||
class="mx_Dialog_content"
|
||||
id="mx_Dialog_content"
|
||||
>
|
||||
Are you sure you want to sign out?
|
||||
Are you sure you want to remove this device?
|
||||
</div>
|
||||
<div
|
||||
class="mx_Dialog_buttons"
|
||||
@@ -250,7 +250,7 @@ exports[`LogoutDialog shows a regular dialog when crypto is disabled 1`] = `
|
||||
data-testid="dialog-primary-button"
|
||||
type="button"
|
||||
>
|
||||
Sign out
|
||||
Remove this device
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -309,7 +309,7 @@ describe("EventTile", () => {
|
||||
],
|
||||
[EventShieldReason.MISMATCHED_SENDER_KEY, "Encrypted by an unverified session"],
|
||||
[EventShieldReason.SENT_IN_CLEAR, "Not encrypted"],
|
||||
[EventShieldReason.VERIFICATION_VIOLATION, "Sender's verified identity was reset"],
|
||||
[EventShieldReason.VERIFICATION_VIOLATION, "Sender's verified digital identity was reset"],
|
||||
[
|
||||
EventShieldReason.MISMATCHED_SENDER,
|
||||
"The sender of the event does not match the owner of the device that sent it.",
|
||||
|
||||
@@ -145,7 +145,7 @@ describe("UserIdentityWarning", () => {
|
||||
renderComponent(client, room);
|
||||
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("Alice's (@alice:example.org) identity was reset.")).toBeInTheDocument(),
|
||||
expect(getWarningByText("Alice's (@alice:example.org) digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
await userEvent.click(screen.getByRole("button")!);
|
||||
await waitFor(() => expect(crypto.pinCurrentUserIdentity).toHaveBeenCalledWith("@alice:example.org"));
|
||||
@@ -166,7 +166,7 @@ describe("UserIdentityWarning", () => {
|
||||
renderComponent(client, room);
|
||||
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("Alice's (@alice:example.org) identity was reset.")).toBeInTheDocument(),
|
||||
expect(getWarningByText("Alice's (@alice:example.org) digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
|
||||
expect(
|
||||
@@ -190,7 +190,7 @@ describe("UserIdentityWarning", () => {
|
||||
renderComponent(client, room);
|
||||
await sleep(10); // give it some time to finish initialising
|
||||
|
||||
expect(() => getWarningByText("Alice's (@alice:example.org) identity was reset.")).toThrow();
|
||||
expect(() => getWarningByText("Alice's (@alice:example.org) digital identity was reset.")).toThrow();
|
||||
});
|
||||
|
||||
// We don't display warnings in non-encrypted rooms, but if encryption is
|
||||
@@ -210,7 +210,7 @@ describe("UserIdentityWarning", () => {
|
||||
renderComponent(client, room);
|
||||
|
||||
await sleep(10); // give it some time to finish initialising
|
||||
expect(() => getWarningByText("Alice's (@alice:example.org) identity was reset.")).toThrow();
|
||||
expect(() => getWarningByText("Alice's (@alice:example.org) digital identity was reset.")).toThrow();
|
||||
|
||||
// Encryption gets enabled in the room. We should now warn that Alice's
|
||||
// identity changed.
|
||||
@@ -231,7 +231,7 @@ describe("UserIdentityWarning", () => {
|
||||
null,
|
||||
);
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("Alice's (@alice:example.org) identity was reset.")).toBeInTheDocument(),
|
||||
expect(getWarningByText("Alice's (@alice:example.org) digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
});
|
||||
|
||||
@@ -250,7 +250,9 @@ describe("UserIdentityWarning", () => {
|
||||
crypto.pinCurrentUserIdentity = jest.fn();
|
||||
renderComponent(client, room);
|
||||
|
||||
await waitFor(() => expect(getWarningByText("@a:example.org's identity was reset.")).toBeInTheDocument());
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("@a:example.org's digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
});
|
||||
|
||||
it("Ensure existing prompt stays even if a new violation with lower lexicographic order detected", async () => {
|
||||
@@ -266,7 +268,9 @@ describe("UserIdentityWarning", () => {
|
||||
crypto.pinCurrentUserIdentity = jest.fn();
|
||||
renderComponent(client, room);
|
||||
|
||||
await waitFor(() => expect(getWarningByText("@b:example.org's identity was reset.")).toBeInTheDocument());
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("@b:example.org's digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
|
||||
// Simulate a new member joined with lower lexico order and also in violation
|
||||
mockMembershipForRoom(room, ["@a:example.org", "@b:example.org"]);
|
||||
@@ -276,7 +280,9 @@ describe("UserIdentityWarning", () => {
|
||||
});
|
||||
|
||||
// We should still display the warning for @b:example.org
|
||||
await waitFor(() => expect(getWarningByText("@b:example.org's identity was reset.")).toBeInTheDocument());
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("@b:example.org's digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -296,7 +302,7 @@ describe("UserIdentityWarning", () => {
|
||||
await sleep(50);
|
||||
});
|
||||
|
||||
expect(() => getWarningByText("Alice's (@alice:example.org) identity was reset.")).toThrow();
|
||||
expect(() => getWarningByText("Alice's (@alice:example.org) digital identity was reset.")).toThrow();
|
||||
|
||||
// The user changes their identity, so we should show the warning.
|
||||
act(() => {
|
||||
@@ -306,7 +312,7 @@ describe("UserIdentityWarning", () => {
|
||||
});
|
||||
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("Alice's (@alice:example.org) identity was reset.")).toBeInTheDocument(),
|
||||
expect(getWarningByText("Alice's (@alice:example.org) digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
|
||||
// Simulate the user's new identity having been approved, so we no
|
||||
@@ -317,7 +323,7 @@ describe("UserIdentityWarning", () => {
|
||||
client.emit(CryptoEvent.UserTrustStatusChanged, "@alice:example.org", newStatus);
|
||||
});
|
||||
await waitFor(() =>
|
||||
expect(() => getWarningByText("Alice's (@alice:example.org) identity was reset.")).toThrow(),
|
||||
expect(() => getWarningByText("Alice's (@alice:example.org) digital identity was reset.")).toThrow(),
|
||||
);
|
||||
});
|
||||
|
||||
@@ -342,7 +348,7 @@ describe("UserIdentityWarning", () => {
|
||||
});
|
||||
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("@alice:example.org's identity was reset.")).toBeInTheDocument(),
|
||||
expect(getWarningByText("@alice:example.org's digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
|
||||
// Bob is invited. His identity needs approval, so we should show a
|
||||
@@ -359,8 +365,12 @@ describe("UserIdentityWarning", () => {
|
||||
emitMembershipChange(client, "@alice:example.org", "leave");
|
||||
});
|
||||
|
||||
await waitFor(() => expect(() => getWarningByText("@alice:example.org's identity was reset.")).toThrow());
|
||||
await waitFor(() => expect(getWarningByText("@bob:example.org's identity was reset.")).toBeInTheDocument());
|
||||
await waitFor(() =>
|
||||
expect(() => getWarningByText("@alice:example.org's digital identity was reset.")).toThrow(),
|
||||
);
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("@bob:example.org's digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
});
|
||||
|
||||
it("when invited users cannot see encrypted messages", async () => {
|
||||
@@ -382,7 +392,7 @@ describe("UserIdentityWarning", () => {
|
||||
emitMembershipChange(client, "@alice:example.org", "join");
|
||||
});
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("@alice:example.org's identity was reset.")).toBeInTheDocument(),
|
||||
expect(getWarningByText("@alice:example.org's digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
|
||||
// Bob is invited. His identity needs approval, but we don't encrypt
|
||||
@@ -402,8 +412,12 @@ describe("UserIdentityWarning", () => {
|
||||
mockMembershipForRoom(room, [["@bob:example.org", "invited"]]);
|
||||
emitMembershipChange(client, "@alice:example.org", "leave");
|
||||
});
|
||||
await waitFor(() => expect(() => getWarningByText("@alice:example.org's identity was reset.")).toThrow());
|
||||
await waitFor(() => expect(() => getWarningByText("@bob:example.org's identity was reset.")).toThrow());
|
||||
await waitFor(() =>
|
||||
expect(() => getWarningByText("@alice:example.org's digital identity was reset.")).toThrow(),
|
||||
);
|
||||
await waitFor(() =>
|
||||
expect(() => getWarningByText("@bob:example.org's digital identity was reset.")).toThrow(),
|
||||
);
|
||||
});
|
||||
|
||||
it("when member leaves immediately after component is loaded", async () => {
|
||||
@@ -427,7 +441,7 @@ describe("UserIdentityWarning", () => {
|
||||
renderComponent(client, room);
|
||||
await sleep(10);
|
||||
});
|
||||
expect(() => getWarningByText("@alice:example.org's identity was reset.")).toThrow();
|
||||
expect(() => getWarningByText("@alice:example.org's digital identity was reset.")).toThrow();
|
||||
});
|
||||
|
||||
it("when member leaves immediately after joining", async () => {
|
||||
@@ -475,7 +489,7 @@ describe("UserIdentityWarning", () => {
|
||||
null,
|
||||
);
|
||||
await sleep(10); // give it some time to finish
|
||||
expect(() => getWarningByText("@alice:example.org's identity was reset.")).toThrow();
|
||||
expect(() => getWarningByText("@alice:example.org's digital identity was reset.")).toThrow();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -495,7 +509,7 @@ describe("UserIdentityWarning", () => {
|
||||
renderComponent(client, room);
|
||||
// We should warn about Alice's identity first.
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("Alice's (@alice:example.org) identity was reset.")).toBeInTheDocument(),
|
||||
expect(getWarningByText("Alice's (@alice:example.org) digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
|
||||
// Simulate Alice's new identity having been approved, so now we warn
|
||||
@@ -511,7 +525,9 @@ describe("UserIdentityWarning", () => {
|
||||
});
|
||||
client.emit(CryptoEvent.UserTrustStatusChanged, "@alice:example.org", newStatus);
|
||||
});
|
||||
await waitFor(() => expect(getWarningByText("@bob:example.org's identity was reset.")).toBeInTheDocument());
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("@bob:example.org's digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
});
|
||||
|
||||
it("displays the next user when the verification requirement is withdrawn", async () => {
|
||||
@@ -531,7 +547,7 @@ describe("UserIdentityWarning", () => {
|
||||
renderComponent(client, room);
|
||||
// We should warn about Alice's identity first.
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("Alice's (@alice:example.org) identity was reset.")).toBeInTheDocument(),
|
||||
expect(getWarningByText("Alice's (@alice:example.org) digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
|
||||
// Simulate Alice's new identity having been approved, so now we warn
|
||||
@@ -550,6 +566,8 @@ describe("UserIdentityWarning", () => {
|
||||
new UserVerificationStatus(false, false, false, false),
|
||||
);
|
||||
});
|
||||
await waitFor(() => expect(getWarningByText("@bob:example.org's identity was reset.")).toBeInTheDocument());
|
||||
await waitFor(() =>
|
||||
expect(getWarningByText("@bob:example.org's digital identity was reset.")).toBeInTheDocument(),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -221,7 +221,7 @@ describe("ProfileSettings", () => {
|
||||
it("signs out directly if no rooms are encrypted", async () => {
|
||||
renderProfileSettings(toastRack, client);
|
||||
|
||||
const signOutButton = await screen.findByText("Sign out");
|
||||
const signOutButton = await screen.findByText("Remove this device");
|
||||
await userEvent.click(signOutButton);
|
||||
|
||||
expect(dis.dispatch).toHaveBeenCalledWith({ action: "logout" });
|
||||
@@ -238,7 +238,7 @@ describe("ProfileSettings", () => {
|
||||
|
||||
renderProfileSettings(toastRack, client);
|
||||
|
||||
const signOutButton = await screen.findByText("Sign out");
|
||||
const signOutButton = await screen.findByText("Remove this device");
|
||||
await userEvent.click(signOutButton);
|
||||
|
||||
expect(Modal.createDialog).toHaveBeenCalled();
|
||||
|
||||
@@ -120,7 +120,7 @@ HTMLCollection [
|
||||
<span
|
||||
class="mx_DeviceDetails_signOutButtonContent"
|
||||
>
|
||||
Sign out of this session
|
||||
Remove this session
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -110,7 +110,7 @@ exports[`<DeviceDetails /> renders a verified device 1`] = `
|
||||
<span
|
||||
class="mx_DeviceDetails_signOutButtonContent"
|
||||
>
|
||||
Sign out of this session
|
||||
Remove this session
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
@@ -174,7 +174,7 @@ exports[`<DeviceDetails /> renders device with metadata 1`] = `
|
||||
<p
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
Verify or sign out from this session for best security and reliability.
|
||||
Verify or remove this session for best security and reliability.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
@@ -326,7 +326,7 @@ exports[`<DeviceDetails /> renders device with metadata 1`] = `
|
||||
<span
|
||||
class="mx_DeviceDetails_signOutButtonContent"
|
||||
>
|
||||
Sign out of this session
|
||||
Remove this session
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
@@ -390,7 +390,7 @@ exports[`<DeviceDetails /> renders device without metadata 1`] = `
|
||||
<p
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
Verify or sign out from this session for best security and reliability.
|
||||
Verify or remove this session for best security and reliability.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
@@ -442,7 +442,7 @@ exports[`<DeviceDetails /> renders device without metadata 1`] = `
|
||||
<span
|
||||
class="mx_DeviceDetails_signOutButtonContent"
|
||||
>
|
||||
Sign out of this session
|
||||
Remove this session
|
||||
</span>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -123,7 +123,7 @@ exports[`<DeviceVerificationStatusCard /> renders an unverified device 1`] = `
|
||||
<p
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
Verify or sign out from this session for best security and reliability.
|
||||
Verify or remove this session for best security and reliability.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
|
||||
@@ -38,7 +38,7 @@ HTMLCollection [
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
<span>
|
||||
Consider signing out from old sessions (90 days or older) you don't use anymore.
|
||||
Consider removing old sessions (90 days or older) you don't use anymore.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
@@ -89,7 +89,7 @@ HTMLCollection [
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
<span>
|
||||
Verify your sessions for enhanced secure messaging or sign out from those you don't recognize or use anymore.
|
||||
Verify your sessions for enhanced secure messaging or remove from those you don't recognize or use anymore.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
@@ -142,7 +142,7 @@ HTMLCollection [
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
<span>
|
||||
For best security, sign out from any session that you don't recognize or use anymore.
|
||||
For best security, remove any session that you don't recognize or use anymore.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
|
||||
@@ -56,7 +56,7 @@ exports[`<SecurityRecommendations /> renders both cards when user has both unver
|
||||
<p
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
Verify your sessions for enhanced secure messaging or sign out from those you don't recognize or use anymore.
|
||||
Verify your sessions for enhanced secure messaging or remove from those you don't recognize or use anymore.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
@@ -104,7 +104,7 @@ exports[`<SecurityRecommendations /> renders both cards when user has both unver
|
||||
<p
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
Consider signing out from old sessions (90 days or older) you don't use anymore.
|
||||
Consider removing old sessions (90 days or older) you don't use anymore.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
@@ -188,7 +188,7 @@ exports[`<SecurityRecommendations /> renders inactive devices section when user
|
||||
<p
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
Verify your sessions for enhanced secure messaging or sign out from those you don't recognize or use anymore.
|
||||
Verify your sessions for enhanced secure messaging or remove from those you don't recognize or use anymore.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
@@ -236,7 +236,7 @@ exports[`<SecurityRecommendations /> renders inactive devices section when user
|
||||
<p
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
Consider signing out from old sessions (90 days or older) you don't use anymore.
|
||||
Consider removing old sessions (90 days or older) you don't use anymore.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
@@ -320,7 +320,7 @@ exports[`<SecurityRecommendations /> renders unverified devices section when use
|
||||
<p
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
Verify your sessions for enhanced secure messaging or sign out from those you don't recognize or use anymore.
|
||||
Verify your sessions for enhanced secure messaging or remove from those you don't recognize or use anymore.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
@@ -368,7 +368,7 @@ exports[`<SecurityRecommendations /> renders unverified devices section when use
|
||||
<p
|
||||
class="mx_DeviceSecurityCard_description"
|
||||
>
|
||||
Consider signing out from old sessions (90 days or older) you don't use anymore.
|
||||
Consider removing old sessions (90 days or older) you don't use anymore.
|
||||
<div
|
||||
class="mx_AccessibleButton mx_LearnMore_button mx_AccessibleButton_hasKind mx_AccessibleButton_kind_link_inline"
|
||||
role="button"
|
||||
|
||||
@@ -4,30 +4,30 @@ exports[`deleteDevices() opens interactive auth dialog when delete fails with 40
|
||||
{
|
||||
"m.login.sso": {
|
||||
"1": {
|
||||
"body": "Confirm logging out these devices by using Single Sign On to prove your identity.",
|
||||
"body": "Confirm removing these devices by using Single Sign On to prove your identity.",
|
||||
"continueKind": "primary",
|
||||
"continueText": "Single Sign On",
|
||||
"title": "Use Single Sign On to continue",
|
||||
},
|
||||
"2": {
|
||||
"body": "Click the button below to confirm signing out these devices.",
|
||||
"body": "Click the button below to confirm removing these devices.",
|
||||
"continueKind": "danger",
|
||||
"continueText": "Sign out devices",
|
||||
"title": "Confirm signing out these devices",
|
||||
"continueText": "Remove devices",
|
||||
"title": "Confirm removing these devices",
|
||||
},
|
||||
},
|
||||
"org.matrix.login.sso": {
|
||||
"1": {
|
||||
"body": "Confirm logging out these devices by using Single Sign On to prove your identity.",
|
||||
"body": "Confirm removing these devices by using Single Sign On to prove your identity.",
|
||||
"continueKind": "primary",
|
||||
"continueText": "Single Sign On",
|
||||
"title": "Use Single Sign On to continue",
|
||||
},
|
||||
"2": {
|
||||
"body": "Click the button below to confirm signing out these devices.",
|
||||
"body": "Click the button below to confirm removing these devices.",
|
||||
"continueKind": "danger",
|
||||
"continueText": "Sign out devices",
|
||||
"title": "Confirm signing out these devices",
|
||||
"continueText": "Remove devices",
|
||||
"title": "Confirm removing these devices",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -42,10 +42,10 @@ describe("<RecoveryPanel />", () => {
|
||||
const onChangeRecoveryKeyClick = jest.fn();
|
||||
const { asFragment } = renderRecoverPanel(onChangeRecoveryKeyClick);
|
||||
|
||||
await waitFor(() => screen.getByRole("button", { name: "Set up recovery" }));
|
||||
await waitFor(() => screen.getByRole("button", { name: "Get recovery key" }));
|
||||
expect(asFragment()).toMatchSnapshot();
|
||||
|
||||
await user.click(screen.getByRole("button", { name: "Set up recovery" }));
|
||||
await user.click(screen.getByRole("button", { name: "Get recovery key" }));
|
||||
expect(onChangeRecoveryKeyClick).toHaveBeenCalledWith(true);
|
||||
});
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@ exports[`<ChangeRecoveryKey /> flow to set up a recovery key should ask the user
|
||||
aria-current="page"
|
||||
class="_last-page_1xygz_30"
|
||||
>
|
||||
Set up recovery
|
||||
Get recovery key
|
||||
</span>
|
||||
</li>
|
||||
</ol>
|
||||
@@ -371,7 +371,7 @@ exports[`<ChangeRecoveryKey /> flow to set up a recovery key should ask the user
|
||||
aria-current="page"
|
||||
class="_last-page_1xygz_30"
|
||||
>
|
||||
Set up recovery
|
||||
Get recovery key
|
||||
</span>
|
||||
</li>
|
||||
</ol>
|
||||
@@ -552,7 +552,7 @@ exports[`<ChangeRecoveryKey /> flow to set up a recovery key should display info
|
||||
aria-current="page"
|
||||
class="_last-page_1xygz_30"
|
||||
>
|
||||
Set up recovery
|
||||
Get recovery key
|
||||
</span>
|
||||
</li>
|
||||
</ol>
|
||||
@@ -582,7 +582,7 @@ exports[`<ChangeRecoveryKey /> flow to set up a recovery key should display info
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93"
|
||||
>
|
||||
Set up recovery
|
||||
Get recovery key
|
||||
</h2>
|
||||
<span>
|
||||
Your key storage is protected by a recovery key. If you need a new recovery key after setup, you can recreate it by selecting ‘Change recovery key’.
|
||||
@@ -669,7 +669,7 @@ exports[`<ChangeRecoveryKey /> flow to set up a recovery key should display the
|
||||
aria-current="page"
|
||||
class="_last-page_1xygz_30"
|
||||
>
|
||||
Set up recovery
|
||||
Get recovery key
|
||||
</span>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
@@ -125,7 +125,7 @@ exports[`<DeleteKeyStoragePanel /> should match snapshot 1`] = `
|
||||
d="M6.293 6.293a1 1 0 0 1 1.414 0L12 10.586l4.293-4.293a1 1 0 1 1 1.414 1.414L13.414 12l4.293 4.293a1 1 0 0 1-1.414 1.414L12 13.414l-4.293 4.293a1 1 0 0 1-1.414-1.414L10.586 12 6.293 7.707a1 1 0 0 1 0-1.414"
|
||||
/>
|
||||
</svg>
|
||||
You will lose access to your encrypted messages if you are signed out of Element everywhere
|
||||
You will lose access to your encrypted messages if you're not signed in to any devices
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -12,9 +12,9 @@ exports[`<RecoveryPanel /> should allow to change the recovery key when everythi
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93 mx_SettingsHeader"
|
||||
>
|
||||
Recovery
|
||||
Backup
|
||||
</h2>
|
||||
Recover your cryptographic identity and message history with a recovery key if you’ve lost all your existing devices.
|
||||
Your chats are automatically backed up with end-to-end encryption. To restore this backup and retain your digital identity when you lose access to all your devices, you will need your recovery key.
|
||||
</div>
|
||||
<button
|
||||
class="_button_13vu4_8 _has-icon_13vu4_60"
|
||||
@@ -53,9 +53,9 @@ exports[`<RecoveryPanel /> should ask to set up a recovery key when there is no
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93 mx_SettingsHeader mx_SettingsHeader_recommended"
|
||||
>
|
||||
Recovery
|
||||
Backup
|
||||
</h2>
|
||||
Recover your cryptographic identity and message history with a recovery key if you’ve lost all your existing devices.
|
||||
Your chats are automatically backed up with end-to-end encryption. To restore this backup and retain your digital identity when you lose access to all your devices, you will need your recovery key.
|
||||
</div>
|
||||
<button
|
||||
class="_button_13vu4_8 _has-icon_13vu4_60"
|
||||
@@ -76,7 +76,7 @@ exports[`<RecoveryPanel /> should ask to set up a recovery key when there is no
|
||||
d="M7 14q-.824 0-1.412-.588A1.93 1.93 0 0 1 5 12q0-.825.588-1.412A1.93 1.93 0 0 1 7 10q.824 0 1.412.588Q9 11.175 9 12t-.588 1.412A1.93 1.93 0 0 1 7 14m0 4q-2.5 0-4.25-1.75T1 12t1.75-4.25T7 6q1.676 0 3.037.825A6.2 6.2 0 0 1 12.2 9h8.375q.2 0 .387.075.188.075.338.225l2 2q.15.15.212.325.063.175.063.375t-.062.375a.9.9 0 0 1-.213.325l-3.175 3.175a1 1 0 0 1-.3.2q-.175.075-.35.1a.8.8 0 0 1-.35-.025.9.9 0 0 1-.325-.175L17.5 15l-1.425 1.075a.95.95 0 0 1-.887.15.9.9 0 0 1-.288-.15L13.375 15H12.2a6.2 6.2 0 0 1-2.162 2.175Q8.675 18 7 18m0-2q1.4 0 2.463-.85A4.03 4.03 0 0 0 10.875 13H14l1.45 1.025L17.5 12.5l1.775 1.375L21.15 12l-1-1h-9.275a4.03 4.03 0 0 0-1.412-2.15Q8.4 8 7 8 5.35 8 4.175 9.175T3 12t1.175 2.825T7 16"
|
||||
/>
|
||||
</svg>
|
||||
Set up recovery
|
||||
Get recovery key
|
||||
</button>
|
||||
</div>
|
||||
</DocumentFragment>
|
||||
@@ -94,9 +94,9 @@ exports[`<RecoveryPanel /> should be in loading state when checking the recovery
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93 mx_SettingsHeader"
|
||||
>
|
||||
Recovery
|
||||
Backup
|
||||
</h2>
|
||||
Recover your cryptographic identity and message history with a recovery key if you’ve lost all your existing devices.
|
||||
Your chats are automatically backed up with end-to-end encryption. To restore this backup and retain your digital identity when you lose access to all your devices, you will need your recovery key.
|
||||
</div>
|
||||
<svg
|
||||
aria-label="Loading…"
|
||||
|
||||
@@ -12,12 +12,12 @@ exports[`<RecoveyPanelOutOfSync /> should render 1`] = `
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93 mx_SettingsHeader"
|
||||
>
|
||||
Recovery
|
||||
Backup
|
||||
</h2>
|
||||
<div
|
||||
class="mx_SettingsSubheader"
|
||||
>
|
||||
Recover your cryptographic identity and message history with a recovery key if you’ve lost all your existing devices.
|
||||
Your chats are automatically backed up with end-to-end encryption. To restore this backup and retain your digital identity when you lose access to all your devices, you will need your recovery key.
|
||||
<span
|
||||
class="mx_SettingsSubheader_error"
|
||||
>
|
||||
|
||||
@@ -80,7 +80,7 @@ exports[`<ResetIdentityPanel /> should display the 'forgot recovery key' variant
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93"
|
||||
>
|
||||
Forgot your recovery key? You’ll need to reset your identity.
|
||||
Forgot your recovery key? You’ll need to reset your digital identity.
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
@@ -263,7 +263,7 @@ exports[`<ResetIdentityPanel /> should display the 'sync failed' variant correct
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93"
|
||||
>
|
||||
Failed to sync key storage. You need to reset your identity.
|
||||
Failed to sync key storage. You need to reset your digital identity.
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
@@ -446,7 +446,7 @@ exports[`<ResetIdentityPanel /> should reset the encryption when the continue bu
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93"
|
||||
>
|
||||
Are you sure you want to reset your identity?
|
||||
Are you sure you want to reset your digital identity?
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
@@ -632,7 +632,7 @@ exports[`<ResetIdentityPanel /> should reset the encryption when the continue bu
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93"
|
||||
>
|
||||
Are you sure you want to reset your identity?
|
||||
Are you sure you want to reset your digital identity?
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
|
||||
@@ -71,7 +71,7 @@ describe("<EncryptionUserSettingsTab />", () => {
|
||||
it("should display the recovery panel when key storage is enabled", async () => {
|
||||
jest.spyOn(matrixClient.getCrypto()!, "getActiveSessionBackupVersion").mockResolvedValue("1");
|
||||
renderComponent();
|
||||
await waitFor(() => expect(screen.getByText("Recovery")).toBeInTheDocument());
|
||||
await waitFor(() => expect(screen.getByText("Backup")).toBeInTheDocument());
|
||||
});
|
||||
|
||||
it("should not display the recovery panel when key storage is not enabled", async () => {
|
||||
@@ -92,7 +92,9 @@ describe("<EncryptionUserSettingsTab />", () => {
|
||||
|
||||
await user.click(screen.getByRole("button", { name: "Forgot recovery key?" }));
|
||||
expect(
|
||||
screen.getByRole("heading", { name: "Forgot your recovery key? You’ll need to reset your identity." }),
|
||||
screen.getByRole("heading", {
|
||||
name: "Forgot your recovery key? You’ll need to reset your digital identity.",
|
||||
}),
|
||||
).toBeVisible();
|
||||
});
|
||||
|
||||
@@ -117,11 +119,11 @@ describe("<EncryptionUserSettingsTab />", () => {
|
||||
|
||||
const { asFragment } = renderComponent();
|
||||
await waitFor(() => {
|
||||
const button = screen.getByRole("button", { name: "Set up recovery" });
|
||||
const button = screen.getByRole("button", { name: "Get recovery key" });
|
||||
expect(button).toBeInTheDocument();
|
||||
user.click(button);
|
||||
});
|
||||
await waitFor(() => expect(screen.getByText("Set up recovery")).toBeInTheDocument());
|
||||
await waitFor(() => expect(screen.getByText("Get recovery key")).toBeInTheDocument());
|
||||
expect(asFragment()).toMatchSnapshot();
|
||||
});
|
||||
|
||||
@@ -137,7 +139,7 @@ describe("<EncryptionUserSettingsTab />", () => {
|
||||
user.click(button);
|
||||
});
|
||||
await waitFor(() =>
|
||||
expect(screen.getByText("Are you sure you want to reset your identity?")).toBeInTheDocument(),
|
||||
expect(screen.getByText("Are you sure you want to reset your digital identity?")).toBeInTheDocument(),
|
||||
);
|
||||
expect(asFragment()).toMatchSnapshot();
|
||||
});
|
||||
@@ -149,7 +151,7 @@ describe("<EncryptionUserSettingsTab />", () => {
|
||||
|
||||
expect(
|
||||
await screen.findByRole("heading", {
|
||||
name: "Forgot your recovery key? You’ll need to reset your identity.",
|
||||
name: "Forgot your recovery key? You’ll need to reset your digital identity.",
|
||||
}),
|
||||
).toBeVisible();
|
||||
});
|
||||
@@ -161,7 +163,7 @@ describe("<EncryptionUserSettingsTab />", () => {
|
||||
|
||||
expect(
|
||||
await screen.findByRole("heading", {
|
||||
name: "Failed to sync key storage. You need to reset your identity.",
|
||||
name: "Failed to sync key storage. You need to reset your digital identity.",
|
||||
}),
|
||||
).toBeVisible();
|
||||
});
|
||||
@@ -171,7 +173,7 @@ describe("<EncryptionUserSettingsTab />", () => {
|
||||
|
||||
renderComponent();
|
||||
|
||||
await expect(await screen.findByRole("heading", { name: "Recovery" })).toBeVisible();
|
||||
await expect(await screen.findByRole("heading", { name: "Backup" })).toBeVisible();
|
||||
|
||||
jest.spyOn(matrixClient.getCrypto()!, "getActiveSessionBackupVersion").mockResolvedValue(null);
|
||||
|
||||
@@ -180,7 +182,7 @@ describe("<EncryptionUserSettingsTab />", () => {
|
||||
});
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.queryByRole("heading", { name: "Recovery" })).toBeNull();
|
||||
expect(screen.queryByRole("heading", { name: "Backup" })).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -192,7 +194,9 @@ describe("<EncryptionUserSettingsTab />", () => {
|
||||
renderComponent({ initialState: "reset_identity_forgot" });
|
||||
|
||||
expect(
|
||||
screen.getByRole("heading", { name: "Forgot your recovery key? You’ll need to reset your identity." }),
|
||||
screen.getByRole("heading", {
|
||||
name: "Forgot your recovery key? You’ll need to reset your digital identity.",
|
||||
}),
|
||||
).toBeVisible();
|
||||
|
||||
await user.click(screen.getByRole("button", { name: "Back" }));
|
||||
@@ -211,6 +215,6 @@ describe("<EncryptionUserSettingsTab />", () => {
|
||||
expect(asFragment()).toMatchSnapshot();
|
||||
|
||||
await user.click(screen.getByRole("button", { name: "Continue with reset" }));
|
||||
expect(screen.getByRole("heading", { name: "You need to reset your identity" })).toBeVisible();
|
||||
expect(screen.getByRole("heading", { name: "You need to reset your digital identity" })).toBeVisible();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -806,7 +806,7 @@ describe("<SessionManagerTab />", () => {
|
||||
});
|
||||
|
||||
fireEvent.click(getByTestId("current-session-menu"));
|
||||
fireEvent.click(getByLabelText("Sign out"));
|
||||
fireEvent.click(getByLabelText("Remove this device"));
|
||||
|
||||
// logout dialog opened
|
||||
expect(modalSpy).toHaveBeenCalledWith(LogoutDialog, {}, undefined, false, true);
|
||||
@@ -823,7 +823,7 @@ describe("<SessionManagerTab />", () => {
|
||||
});
|
||||
|
||||
fireEvent.click(getByTestId("current-session-menu"));
|
||||
expect(queryByLabelText("Sign out of all other sessions")).toBeFalsy();
|
||||
expect(queryByLabelText("Remove all other sessions")).toBeFalsy();
|
||||
});
|
||||
|
||||
it("signs out of all other devices from current session context menu", async () => {
|
||||
@@ -837,7 +837,7 @@ describe("<SessionManagerTab />", () => {
|
||||
});
|
||||
|
||||
fireEvent.click(getByTestId("current-session-menu"));
|
||||
fireEvent.click(getByLabelText("Sign out of all other sessions (2)"));
|
||||
fireEvent.click(getByLabelText("Remove all other sessions (2)"));
|
||||
await confirmSignout(getByTestId);
|
||||
|
||||
// other devices deleted, excluding current device
|
||||
@@ -878,7 +878,7 @@ describe("<SessionManagerTab />", () => {
|
||||
expect(mockClient.deleteAccountData).not.toHaveBeenCalled();
|
||||
|
||||
fireEvent.click(getByTestId("current-session-menu"));
|
||||
fireEvent.click(getByLabelText("Sign out of all other sessions (2)"));
|
||||
fireEvent.click(getByLabelText("Remove all other sessions (2)"));
|
||||
await confirmSignout(getByTestId);
|
||||
|
||||
// only called once for signed out device with account data event
|
||||
@@ -1165,7 +1165,7 @@ describe("<SessionManagerTab />", () => {
|
||||
});
|
||||
|
||||
fireEvent.click(getByTestId("other-sessions-menu"));
|
||||
fireEvent.click(getByLabelText("Sign out of 2 sessions"));
|
||||
fireEvent.click(getByLabelText("Remove 2 sessions"));
|
||||
await confirmSignout(getByTestId);
|
||||
|
||||
// other devices deleted, excluding current device
|
||||
@@ -1219,7 +1219,7 @@ describe("<SessionManagerTab />", () => {
|
||||
});
|
||||
|
||||
fireEvent.click(getByTestId("current-session-menu"));
|
||||
expect(screen.queryByLabelText("Sign out of all other sessions (2)")).not.toBeInTheDocument();
|
||||
expect(screen.queryByLabelText("Remove all other sessions (2)")).not.toBeInTheDocument();
|
||||
});
|
||||
|
||||
describe("other devices", () => {
|
||||
@@ -1534,7 +1534,7 @@ describe("<SessionManagerTab />", () => {
|
||||
|
||||
expect(isSelectAllChecked(getByTestId)).toBeTruthy();
|
||||
|
||||
// sign out of all selected sessions
|
||||
// Remove of all selected sessions
|
||||
fireEvent.click(getByTestId("sign-out-selection-cta"));
|
||||
await confirmSignout(getByTestId);
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ exports[`<EncryptionUserSettingsTab /> should display the identity needs reset p
|
||||
d="M12 17q.424 0 .713-.288A.97.97 0 0 0 13 16a.97.97 0 0 0-.287-.713A.97.97 0 0 0 12 15a.97.97 0 0 0-.713.287A.97.97 0 0 0 11 16q0 .424.287.712.288.288.713.288m0-4q.424 0 .713-.287A.97.97 0 0 0 13 12V8a.97.97 0 0 0-.287-.713A.97.97 0 0 0 12 7a.97.97 0 0 0-.713.287A.97.97 0 0 0 11 8v4q0 .424.287.713.288.287.713.287m0 9a9.7 9.7 0 0 1-3.9-.788 10.1 10.1 0 0 1-3.175-2.137q-1.35-1.35-2.137-3.175A9.7 9.7 0 0 1 2 12q0-2.075.788-3.9a10.1 10.1 0 0 1 2.137-3.175q1.35-1.35 3.175-2.137A9.7 9.7 0 0 1 12 2q2.075 0 3.9.788a10.1 10.1 0 0 1 3.175 2.137q1.35 1.35 2.137 3.175A9.7 9.7 0 0 1 22 12a9.7 9.7 0 0 1-.788 3.9 10.1 10.1 0 0 1-2.137 3.175q-1.35 1.35-3.175 2.137A9.7 9.7 0 0 1 12 22"
|
||||
/>
|
||||
</svg>
|
||||
You have to reset your cryptographic identity in order to ensure access to your message history
|
||||
You have to reset your digital identity in order to ensure access to your chat history
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -158,12 +158,12 @@ exports[`<EncryptionUserSettingsTab /> should display the recovery out of sync p
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93 mx_SettingsHeader"
|
||||
>
|
||||
Recovery
|
||||
Backup
|
||||
</h2>
|
||||
<div
|
||||
class="mx_SettingsSubheader"
|
||||
>
|
||||
Recover your cryptographic identity and message history with a recovery key if you’ve lost all your existing devices.
|
||||
Your chats are automatically backed up with end-to-end encryption. To restore this backup and retain your digital identity when you lose access to all your devices, you will need your recovery key.
|
||||
<span
|
||||
class="mx_SettingsSubheader_error"
|
||||
>
|
||||
@@ -309,7 +309,7 @@ exports[`<EncryptionUserSettingsTab /> should display the reset identity panel w
|
||||
<h2
|
||||
class="_typography_6v6n8_153 _font-heading-sm-semibold_6v6n8_93"
|
||||
>
|
||||
Are you sure you want to reset your identity?
|
||||
Are you sure you want to reset your digital identity?
|
||||
</h2>
|
||||
</div>
|
||||
<div
|
||||
|
||||
@@ -55,7 +55,7 @@ exports[`<SessionManagerTab /> Sign out Signs out of current device 1`] = `
|
||||
<span
|
||||
class="mx_DeviceDetails_signOutButtonContent"
|
||||
>
|
||||
Sign out of this session
|
||||
Remove this session
|
||||
</span>
|
||||
</div>
|
||||
`;
|
||||
@@ -70,7 +70,7 @@ exports[`<SessionManagerTab /> Sign out for an OIDC-aware server Signs out of cu
|
||||
<span
|
||||
class="mx_DeviceDetails_signOutButtonContent"
|
||||
>
|
||||
Sign out of this session
|
||||
Remove this session
|
||||
</span>
|
||||
</div>
|
||||
`;
|
||||
|
||||
@@ -36,11 +36,11 @@ describe("SetupEncryptionToast", () => {
|
||||
render(<ToastContainer />);
|
||||
});
|
||||
|
||||
describe("Set up recovery", () => {
|
||||
describe("Back up your chats", () => {
|
||||
it("should render the toast", async () => {
|
||||
act(() => showToast("set_up_recovery"));
|
||||
|
||||
expect(await screen.findByRole("heading", { name: "Set up recovery" })).toBeInTheDocument();
|
||||
expect(await screen.findByRole("heading", { name: "Back up your chats" })).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("should dismiss the toast when 'Dismiss' button clicked, and remember it", async () => {
|
||||
@@ -334,11 +334,11 @@ describe("SetupEncryptionToast", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("Verify this session", () => {
|
||||
describe("Verify this device", () => {
|
||||
it("should render the toast", async () => {
|
||||
act(() => showToast("verify_this_session"));
|
||||
|
||||
await expect(screen.findByText("Verify this session")).resolves.toBeInTheDocument();
|
||||
await expect(screen.findByText("Verify this device")).resolves.toBeInTheDocument();
|
||||
await expect(screen.findByRole("button", { name: "Later" })).resolves.toBeInTheDocument();
|
||||
await expect(screen.findByRole("button", { name: "Continue" })).resolves.toBeInTheDocument();
|
||||
});
|
||||
@@ -375,7 +375,7 @@ describe("SetupEncryptionToast", () => {
|
||||
await expect(screen.findByText("Your key storage is out of sync.")).resolves.toBeInTheDocument();
|
||||
await expect(
|
||||
screen.findByText(
|
||||
"You have to reset your cryptographic identity in order to ensure access to your message history",
|
||||
"You have to reset your digital identity in order to ensure access to your chat history",
|
||||
),
|
||||
).resolves.toBeInTheDocument();
|
||||
await expect(screen.findByRole("button", { name: "Continue with reset" })).resolves.toBeInTheDocument();
|
||||
|
||||
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 22 KiB |