From 3bc0439fd218d7c2360454cf09b8df87115d7caa Mon Sep 17 00:00:00 2001 From: Florian Duros Date: Mon, 14 Oct 2024 17:08:42 +0200 Subject: [PATCH 01/39] Replace `MatrixClient.checkSecretStorageKey` by `MatrixClient.SecretStorage.checkKey` (#142) --- src/SecurityManager.ts | 2 +- .../dialogs/security/AccessSecretStorageDialog.tsx | 2 +- .../dialogs/AccessSecretStorageDialog-test.tsx | 13 +++++-------- test/test-utils/test-utils.ts | 1 + 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/SecurityManager.ts b/src/SecurityManager.ts index fb73e25389..a89427e5f3 100644 --- a/src/SecurityManager.ts +++ b/src/SecurityManager.ts @@ -121,7 +121,7 @@ async function getSecretStorageKey({ keyInfo, checkPrivateKey: async (input: KeyParams): Promise => { const key = await inputToKey(input); - return MatrixClientPeg.safeGet().checkSecretStorageKey(key, keyInfo); + return MatrixClientPeg.safeGet().secretStorage.checkKey(key, keyInfo); }, }, /* className= */ undefined, diff --git a/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx b/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx index 0c4e875607..412d88c704 100644 --- a/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx +++ b/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx @@ -102,7 +102,7 @@ export default class AccessSecretStorageDialog extends React.PureComponent { - let mockClient: Mocked; + let mockClient: MatrixClient; const defaultProps: ComponentProps = { keyInfo: {} as any, @@ -57,13 +56,11 @@ describe("AccessSecretStorageDialog", () => { }); beforeEach(() => { - mockClient = getMockClientWithEventEmitter({ - checkSecretStorageKey: jest.fn(), - }); + mockClient = stubClient(); }); it("Closes the dialog when the form is submitted with a valid key", async () => { - mockClient.checkSecretStorageKey.mockResolvedValue(true); + jest.spyOn(mockClient.secretStorage, "checkKey").mockResolvedValue(true); const onFinished = jest.fn(); const checkPrivateKey = jest.fn().mockResolvedValue(true); @@ -85,7 +82,7 @@ describe("AccessSecretStorageDialog", () => { const checkPrivateKey = jest.fn().mockResolvedValue(true); renderComponent({ onFinished, checkPrivateKey }); - mockClient.checkSecretStorageKey.mockImplementation(() => { + jest.spyOn(mockClient.secretStorage, "checkKey").mockImplementation(() => { throw new Error("invalid key"); }); diff --git a/test/test-utils/test-utils.ts b/test/test-utils/test-utils.ts index ebfc6b221b..2f534c7bd7 100644 --- a/test/test-utils/test-utils.ts +++ b/test/test-utils/test-utils.ts @@ -109,6 +109,7 @@ export function createTestClient(): MatrixClient { secretStorage: { get: jest.fn(), isStored: jest.fn().mockReturnValue(false), + checkKey: jest.fn().mockResolvedValue(false), }, store: { From 91e84f79518c704686607d095c860e05f85f0244 Mon Sep 17 00:00:00 2001 From: R Midhun Suresh Date: Mon, 14 Oct 2024 21:41:58 +0530 Subject: [PATCH 02/39] Upgrade to latest compound-web package (#84) * Upgrade to latest compound-web package * Use a custom render function for jest tests This way we don't need to manually wrap our components with * Pin wrap-ansi to fix broken yarn install * Add playwright helper to find tooltip from element and use it in the failing test * Exclude floating-ui divs/spans from axe testing This is rendered outside .MatrixChat by compound and contains all the tooltips. * Wrap outermost components with TooltipProvider * Remove onChange and use onSelect for toggle * Fix jest tests and update snapshots * Use vector-im/matrix-wysiwig --------- Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- .eslintrc.js | 4 + jest.config.ts | 1 + package.json | 6 +- playwright/e2e/crypto/event-shields.spec.ts | 18 +- playwright/element-web-test.ts | 2 +- playwright/pages/ElementAppPage.ts | 18 + src/Modal.tsx | 46 +-- src/components/structures/ContextMenu.tsx | 21 +- src/components/structures/MatrixChat.tsx | 5 +- src/components/structures/ThreadPanel.tsx | 2 +- .../auth/forgot-password/CheckEmail.tsx | 2 +- .../auth/forgot-password/VerifyEmailModal.tsx | 2 +- .../views/elements/AccessibleButton.tsx | 2 +- src/components/views/elements/InfoTooltip.tsx | 2 +- .../views/elements/PersistedElement.tsx | 9 +- src/components/views/elements/Pill.tsx | 2 +- src/components/views/elements/RoomTopic.tsx | 2 +- .../views/messages/MStickerBody.tsx | 2 +- .../views/messages/MessageTimestamp.tsx | 2 +- .../messages/ReactionsRowButtonTooltip.tsx | 2 +- src/components/views/messages/TextualBody.tsx | 7 +- .../views/right_panel/RoomSummaryCard.tsx | 4 +- src/components/views/rooms/EventTile.tsx | 2 +- .../views/rooms/MessageComposer.tsx | 2 +- .../views/rooms/ReadReceiptGroup.tsx | 2 +- src/components/views/rooms/RoomHeader.tsx | 2 +- .../rooms/RoomHeader/CallGuestLinkButton.tsx | 2 +- src/toasts/IncomingCallToast.tsx | 68 ++-- src/utils/exportUtils/HtmlExport.tsx | 41 ++- src/utils/pillify.tsx | 19 +- src/utils/tooltipify.tsx | 9 +- test/HtmlUtils-test.tsx | 2 +- test/LegacyCallHandler-test.ts | 2 +- test/Notifier-test.ts | 2 +- test/TextForEvent-test.ts | 2 +- .../accessibility/LandmarkNavigation-test.tsx | 2 +- test/accessibility/RovingTabIndex-test.tsx | 2 +- .../structures/AutocompleteInput-test.tsx | 2 +- test/components/structures/FilePanel-test.tsx | 2 +- .../structures/LargeLoader-test.tsx | 2 +- test/components/structures/LeftPanel-test.tsx | 2 +- .../structures/LoggedInView-test.tsx | 2 +- test/components/structures/MainSplit-test.tsx | 2 +- .../components/structures/MatrixChat-test.tsx | 2 +- .../MatrixClientContextProvider-test.tsx | 2 +- .../structures/MessagePanel-test.tsx | 2 +- .../PictureInPictureDragger-test.tsx | 2 +- .../structures/PipContainer-test.tsx | 2 +- .../structures/ReleaseAnnouncement-test.tsx | 2 +- .../components/structures/RightPanel-test.tsx | 2 +- .../structures/RoomSearchView-test.tsx | 2 +- .../structures/RoomStatusBar-test.tsx | 2 +- .../RoomStatusBarUnsentMessages-test.tsx | 2 +- test/components/structures/RoomView-test.tsx | 2 +- .../structures/SpaceHierarchy-test.tsx | 2 +- .../components/structures/TabbedView-test.tsx | 2 +- .../structures/ThreadPanel-test.tsx | 2 +- .../components/structures/ThreadView-test.tsx | 2 +- .../structures/TimelinePanel-test.tsx | 4 +- test/components/structures/UploadBar-test.tsx | 2 +- test/components/structures/UserMenu-test.tsx | 2 +- .../components/structures/ViewSource-test.tsx | 2 +- .../__snapshots__/FilePanel-test.tsx.snap | 1 + .../__snapshots__/RoomView-test.tsx.snap | 25 ++ .../SpaceHierarchy-test.tsx.snap | 1 + .../__snapshots__/ThreadPanel-test.tsx.snap | 4 +- .../structures/auth/CompleteSecurity-test.tsx | 2 +- .../structures/auth/ForgotPassword-test.tsx | 2 +- .../components/structures/auth/Login-test.tsx | 2 +- .../structures/auth/LoginSplashView-test.tsx | 2 +- .../structures/auth/Registration-test.tsx | 2 +- .../audio_messages/RecordingPlayback-test.tsx | 2 +- .../views/audio_messages/SeekBar-test.tsx | 2 +- .../views/auth/CountryDropdown-test.tsx | 2 +- .../InteractiveAuthEntryComponents-test.tsx | 2 +- .../views/auth/RegistrationToken-test.tsx | 2 +- ...teractiveAuthEntryComponents-test.tsx.snap | 4 +- .../avatars/DecoratedRoomAvatar-test.tsx | 6 +- .../views/avatars/MemberAvatar-test.tsx | 2 +- .../views/avatars/RoomAvatar-test.tsx | 2 +- .../avatars/WithPresenceIndicator-test.tsx | 4 +- .../DecoratedRoomAvatar-test.tsx.snap | 4 +- .../WithPresenceIndicator-test.tsx.snap | 6 +- .../views/beacon/BeaconListItem-test.tsx | 2 +- .../views/beacon/BeaconMarker-test.tsx | 2 +- .../views/beacon/BeaconStatus-test.tsx | 2 +- .../views/beacon/BeaconViewDialog-test.tsx | 2 +- .../views/beacon/DialogSidebar-test.tsx | 2 +- .../beacon/LeftPanelLiveShareWarning-test.tsx | 2 +- .../views/beacon/OwnBeaconStatus-test.tsx | 2 +- .../views/beacon/RoomCallBanner-test.tsx | 2 +- .../views/beacon/ShareLatestLocation-test.tsx | 2 +- .../beacon/StyledLiveBeaconIcon-test.tsx | 2 +- .../BeaconListItem-test.tsx.snap | 1 + .../__snapshots__/DialogSidebar-test.tsx.snap | 1 + .../ShareLatestLocation-test.tsx.snap | 1 + test/components/views/beta/BetaCard-test.tsx | 2 +- .../views/context_menus/ContextMenu-test.tsx | 2 +- .../views/context_menus/EmbeddedPage-test.tsx | 2 +- .../context_menus/MessageContextMenu-test.tsx | 2 +- .../RoomGeneralContextMenu-test.tsx | 2 +- .../context_menus/SpaceContextMenu-test.tsx | 2 +- .../ThreadListContextMenu-test.tsx | 2 +- .../context_menus/WidgetContextMenu-test.tsx | 2 +- .../AccessSecretStorageDialog-test.tsx | 2 +- .../views/dialogs/AppDownloadDialog-test.tsx | 2 +- .../dialogs/AskInviteAnywayDialog-test.tsx | 2 +- .../views/dialogs/ChangelogDialog-test.tsx | 2 +- .../dialogs/ConfirmRedactDialog-test.tsx | 2 +- .../dialogs/ConfirmUserActionDialog-test.tsx | 2 +- .../views/dialogs/CreateRoomDialog-test.tsx | 2 +- .../views/dialogs/DevtoolsDialog-test.tsx | 2 +- .../views/dialogs/ExportDialog-test.tsx | 2 +- .../views/dialogs/FeedbackDialog-test.tsx | 2 +- .../views/dialogs/ForwardDialog-test.tsx | 2 +- .../views/dialogs/IncomingSasDialog-test.tsx | 2 +- .../dialogs/InteractiveAuthDialog-test.tsx | 2 +- .../views/dialogs/InviteDialog-test.tsx | 2 +- .../views/dialogs/LogoutDialog-test.tsx | 2 +- .../ManageRestrictedJoinRuleDialog-test.tsx | 2 +- ...ManualDeviceKeyVerificationDialog-test.tsx | 2 +- .../dialogs/MessageEditHistoryDialog-test.tsx | 2 +- .../views/dialogs/RoomSettingsDialog-test.tsx | 2 +- .../views/dialogs/ServerPickerDialog-test.tsx | 2 +- .../views/dialogs/ShareDialog-test.tsx | 2 +- .../views/dialogs/SpotlightDialog-test.tsx | 2 +- .../views/dialogs/UnpinAllDialog-test.tsx | 2 +- .../views/dialogs/UserSettingsDialog-test.tsx | 2 +- .../ServerPickerDialog-test.tsx.snap | 1 + .../UnpinAllDialog-test.tsx.snap | 4 +- .../views/dialogs/devtools/Event-test.tsx | 2 +- .../devtools/RoomNotifications-test.tsx | 2 +- .../security/CreateKeyBackupDialog-test.tsx | 2 +- .../CreateSecretStorageDialog-test.tsx | 2 +- .../security/ExportE2eKeysDialog-test.tsx | 2 +- .../security/ImportE2eKeysDialog-test.tsx | 2 +- .../security/RestoreKeyBackupDialog-test.tsx | 2 +- .../PublicRoomResultDetails-test.tsx | 2 +- .../spotlight/RoomResultContextMenus-test.tsx | 2 +- .../views/elements/AccessibleButton-test.tsx | 2 +- .../views/elements/AppTile-test.tsx | 2 +- .../DesktopCapturerSourcePicker-test.tsx | 2 +- .../views/elements/EffectsOverlay-test.tsx | 2 +- .../views/elements/EventListSummary-test.tsx | 2 +- .../views/elements/ExternalLink-test.tsx | 2 +- .../views/elements/FacePile-test.tsx | 2 +- test/components/views/elements/Field-test.tsx | 2 +- .../views/elements/FilterDropdown-test.tsx | 2 +- .../views/elements/FilterTabGroup-test.tsx | 2 +- .../views/elements/ImageView-test.tsx | 2 +- .../views/elements/InfoTooltip-test.tsx | 2 +- .../views/elements/LabelledCheckbox-test.tsx | 2 +- .../views/elements/LearnMore-test.tsx | 2 +- test/components/views/elements/Pill-test.tsx | 2 +- .../views/elements/PollCreateDialog-test.tsx | 2 +- .../views/elements/PowerSelector-test.tsx | 2 +- .../views/elements/ProgressBar-test.tsx | 2 +- .../components/views/elements/QRCode-test.tsx | 2 +- .../views/elements/RoomFacePile-test.tsx | 2 +- .../views/elements/RoomTopic-test.tsx | 2 +- .../views/elements/SearchWarning-test.tsx | 2 +- .../SpellCheckLanguagesDropdown-test.tsx | 2 +- .../views/elements/StyledRadioGroup-test.tsx | 2 +- .../views/elements/SyntaxHighlight-test.tsx | 2 +- .../__snapshots__/AppTile-test.tsx.snap | 3 + .../__snapshots__/FacePile-test.tsx.snap | 1 + .../__snapshots__/RoomFacePile-test.tsx.snap | 2 + .../crypto/VerificationQRCode-test.tsx | 2 +- .../views/emojipicker/EmojiPicker-test.tsx | 2 +- .../location/LiveDurationDropdown-test.tsx | 2 +- .../views/location/LocationPicker-test.tsx | 2 +- .../views/location/LocationShareMenu-test.tsx | 2 +- .../location/LocationViewDialog-test.tsx | 2 +- test/components/views/location/Map-test.tsx | 2 +- .../views/location/MapError-test.tsx | 2 +- .../components/views/location/Marker-test.tsx | 2 +- .../views/location/SmartMarker-test.tsx | 2 +- .../views/location/ZoomButtons-test.tsx | 2 +- .../views/messages/CallEvent-test.tsx | 2 +- .../views/messages/DateSeparator-test.tsx | 2 +- .../messages/DecryptionFailureBody-test.tsx | 2 +- .../messages/DownloadActionButton-test.tsx | 2 +- .../views/messages/EncryptionEvent-test.tsx | 2 +- .../views/messages/JumpToDatePicker-test.tsx | 2 +- .../views/messages/LegacyCallEvent-test.tsx | 2 +- .../views/messages/MBeaconBody-test.tsx | 2 +- .../views/messages/MImageBody-test.tsx | 2 +- .../messages/MKeyVerificationRequest-test.tsx | 2 +- .../views/messages/MLocationBody-test.tsx | 2 +- .../views/messages/MPollBody-test.tsx | 2 +- .../views/messages/MPollEndBody-test.tsx | 2 +- .../views/messages/MStickerBody-test.tsx | 2 +- .../views/messages/MVideoBody-test.tsx | 2 +- .../views/messages/MessageActionBar-test.tsx | 2 +- .../views/messages/MessageEvent-test.tsx | 2 +- .../views/messages/MessageTimestamp-test.tsx | 2 +- .../messages/PinnedMessageBadge-test.tsx | 2 +- .../messages/ReactionsRowButton-test.tsx | 2 +- .../messages/RoomPredecessorTile-test.tsx | 2 +- .../views/messages/TextualBody-test.tsx | 2 +- .../__snapshots__/MLocationBody-test.tsx.snap | 2 + .../shared/MediaProcessingError-test.tsx | 2 +- .../polls/pollHistory/PollHistory-test.tsx | 2 +- .../polls/pollHistory/PollListItem-test.tsx | 2 +- .../pollHistory/PollListItemEnded-test.tsx | 2 +- .../__snapshots__/PollHistory-test.tsx.snap | 2 + .../__snapshots__/PollListItem-test.tsx.snap | 1 + .../PollListItemEnded-test.tsx.snap | 1 + .../views/right_panel/BaseCard-test.tsx | 2 +- .../views/right_panel/ExtensionsCard-test.tsx | 2 +- .../right_panel/PinnedMessagesCard-test.tsx | 20 +- .../right_panel/RoomSummaryCard-test.tsx | 2 +- .../views/right_panel/UserInfo-test.tsx | 4 +- .../right_panel/VerificationPanel-test.tsx | 2 +- .../__snapshots__/BaseCard-test.tsx.snap | 1 + .../ExtensionsCard-test.tsx.snap | 6 +- .../PinnedMessagesCard-test.tsx.snap | 9 +- .../RoomSummaryCard-test.tsx.snap | 303 ++++++++-------- .../__snapshots__/UserInfo-test.tsx.snap | 74 ++-- .../RoomProfileSettings-test.tsx | 2 +- .../views/rooms/AppsDrawer-test.tsx | 2 +- .../views/rooms/BasicMessageComposer-test.tsx | 2 +- .../views/rooms/EditMessageComposer-test.tsx | 2 +- .../components/views/rooms/EventTile-test.tsx | 6 +- .../EventTile/EventTileThreadToolbar-test.tsx | 2 +- .../components/views/rooms/ExtraTile-test.tsx | 2 +- .../views/rooms/MemberList-test.tsx | 15 +- .../views/rooms/MemberTile-test.tsx | 10 +- .../views/rooms/MessageComposer-test.tsx | 2 +- .../rooms/MessageComposerButtons-test.tsx | 2 +- .../views/rooms/NewRoomIntro-test.tsx | 2 +- .../NotificationBadge-test.tsx | 2 +- .../StatelessNotificationBadge-test.tsx | 2 +- .../UnreadNotificationBadge-test.tsx | 2 +- .../views/rooms/PinnedEventTile-test.tsx | 2 +- .../views/rooms/PinnedMessageBanner-test.tsx | 2 +- .../views/rooms/PresenceLabel-test.tsx | 2 +- .../views/rooms/ReadReceiptGroup-test.tsx | 5 +- .../views/rooms/ReadReceiptMarker-test.tsx | 2 +- .../views/rooms/RoomHeader-test.tsx | 138 ++++---- .../RoomHeader/CallGuestLinkButton-test.tsx | 20 +- .../RoomHeader/VideoRoomChatButton-test.tsx | 20 +- .../VideoRoomChatButton-test.tsx.snap | 1 + .../views/rooms/RoomKnocksBar-test.tsx | 2 +- test/components/views/rooms/RoomList-test.tsx | 2 +- .../views/rooms/RoomListHeader-test.tsx | 2 +- .../views/rooms/RoomPreviewBar-test.tsx | 2 +- .../views/rooms/RoomPreviewCard-test.tsx | 2 +- .../views/rooms/RoomSearchAuxPanel-test.tsx | 4 +- test/components/views/rooms/RoomTile-test.tsx | 2 +- .../views/rooms/SearchResultTile-test.tsx | 2 +- .../views/rooms/SendMessageComposer-test.tsx | 2 +- .../views/rooms/ThirdPartyMemberInfo-test.tsx | 2 +- .../rooms/VoiceRecordComposerTile-test.tsx | 2 +- .../PinnedEventTile-test.tsx.snap | 50 +-- .../PinnedMessageBanner-test.tsx.snap | 6 +- .../ReadReceiptGroup-test.tsx.snap | 8 +- .../__snapshots__/RoomHeader-test.tsx.snap | 5 +- .../ThirdPartyMemberInfo-test.tsx.snap | 2 + .../EditWysiwygComposer-test.tsx | 2 +- .../SendWysiwygComposer-test.tsx | 2 +- .../components/FormattingButtons-test.tsx | 2 +- .../components/LinkModal-test.tsx | 2 +- .../components/PlainTextComposer-test.tsx | 2 +- .../components/WysiwygAutocomplete-test.tsx | 2 +- .../components/WysiwygComposer-test.tsx | 2 +- .../hooks/usePlainTextListeners-test.tsx | 2 +- .../wysiwyg_composer/hooks/utils-test.tsx | 2 +- .../settings/AddPrivilegedUsers-test.tsx | 2 +- .../settings/AddRemoveThreepids-test.tsx | 38 +- .../views/settings/AvatarSetting-test.tsx | 2 +- .../views/settings/ChangePassword-test.tsx | 2 +- .../views/settings/CrossSigningPanel-test.tsx | 2 +- .../views/settings/CryptographyPanel-test.tsx | 2 +- .../views/settings/EventIndexPanel-test.tsx | 2 +- .../views/settings/FontScalingPanel-test.tsx | 2 +- .../views/settings/JoinRuleSettings-test.tsx | 2 +- .../views/settings/KeyboardShortcut-test.tsx | 2 +- .../views/settings/LayoutSwitcher-test.tsx | 2 +- .../views/settings/Notifications-test.tsx | 2 +- .../settings/PowerLevelSelector-test.tsx | 2 +- .../views/settings/SecureBackupPanel-test.tsx | 2 +- .../settings/SetIntegrationManager-test.tsx | 2 +- .../views/settings/SettingsFieldset-test.tsx | 2 +- .../views/settings/ThemeChoicePanel-test.tsx | 2 +- .../settings/UserProfileSettings-test.tsx | 36 +- .../PowerLevelSelector-test.tsx.snap | 4 +- .../ThemeChoicePanel-test.tsx.snap | 2 + .../devices/CurrentDeviceSection-test.tsx | 2 +- .../devices/DeviceDetailHeading-test.tsx | 2 +- .../settings/devices/DeviceDetails-test.tsx | 2 +- .../DeviceExpandDetailsButton-test.tsx | 2 +- .../devices/DeviceSecurityCard-test.tsx | 2 +- .../settings/devices/DeviceTile-test.tsx | 2 +- .../settings/devices/DeviceTypeIcon-test.tsx | 2 +- .../DeviceVerificationStatusCard-test.tsx | 2 +- .../devices/FilteredDeviceList-test.tsx | 2 +- .../devices/FilteredDeviceListHeader-test.tsx | 2 +- .../settings/devices/LoginWithQR-test.tsx | 2 +- .../settings/devices/LoginWithQRFlow-test.tsx | 2 +- .../devices/LoginWithQRSection-test.tsx | 2 +- .../devices/SecurityRecommendations-test.tsx | 2 +- .../devices/SelectableDeviceTile-test.tsx | 2 +- .../FilteredDeviceListHeader-test.tsx.snap | 2 + .../discovery/DiscoverySettings-test.tsx | 2 +- .../notifications/Notifications2-test.tsx | 2 +- .../shared/SettingsSubsection-test.tsx | 2 +- .../shared/SettingsSubsectionHeading-test.tsx | 2 +- .../views/settings/tabs/SettingsTab-test.tsx | 2 +- .../room/AdvancedRoomSettingsTab-test.tsx | 2 +- .../tabs/room/BridgeSettingsTab-test.tsx | 2 +- .../room/NotificationSettingsTab-test.tsx | 2 +- .../tabs/room/PeopleRoomSettingsTab-test.tsx | 2 +- .../tabs/room/RolesRoomSettingsTab-test.tsx | 2 +- .../room/SecurityRoomSettingsTab-test.tsx | 2 +- .../tabs/room/VoipRoomSettingsTab-test.tsx | 2 +- .../tabs/user/AccountUserSettingsTab-test.tsx | 2 +- .../user/AppearanceUserSettingsTab-test.tsx | 2 +- .../user/KeyboardUserSettingsTab-test.tsx | 2 +- .../tabs/user/LabsUserSettingsTab-test.tsx | 2 +- .../tabs/user/MjolnirUserSettingsTab-test.tsx | 2 +- .../user/PreferencesUserSettingsTab-test.tsx | 2 +- .../user/SecurityUserSettingsTab-test.tsx | 2 +- .../tabs/user/SessionManagerTab-test.tsx | 2 +- .../tabs/user/SidebarUserSettingsTab-test.tsx | 2 +- .../tabs/user/VoiceUserSettingsTab-test.tsx | 2 +- .../SessionManagerTab-test.tsx.snap | 1 + .../spaces/AddExistingToSpaceDialog-test.tsx | 2 +- .../views/spaces/QuickSettingsButton-test.tsx | 2 +- .../views/spaces/QuickThemeSwitcher-test.tsx | 2 +- .../views/spaces/SpacePanel-test.tsx | 2 +- .../SpaceSettingsVisibilityTab-test.tsx | 2 +- .../views/spaces/SpaceTreeLevel-test.tsx | 2 +- .../spaces/ThreadsActivityCentre-test.tsx | 12 +- .../__snapshots__/SpacePanel-test.tsx.snap | 5 +- .../ThreadsActivityCentre-test.tsx.snap | 145 ++++++-- .../spaces/useUnreadThreadRooms-test.tsx | 2 +- .../views/toasts/GenericToast-test.tsx | 2 +- .../toasts/VerificationRequestToast-test.tsx | 2 +- .../__snapshots__/GenericToast-test.tsx.snap | 8 +- .../VerificationRequestToast-test.tsx.snap | 8 +- .../views/typography/Caption-test.tsx | 2 +- .../views/typography/Heading-test.tsx | 2 +- .../UserOnboardingPage-test.tsx | 2 +- test/components/views/voip/CallView-test.tsx | 2 +- test/components/views/voip/DialPad-test.tsx | 2 +- .../LegacyCallViewButtons-test.tsx | 2 +- test/components/views/voip/VideoFeed-test.tsx | 2 +- test/hooks/useNotificationSettings-test.tsx | 2 +- test/hooks/useProfileInfo-test.tsx | 2 +- test/hooks/usePublicRoomDirectory-test.tsx | 2 +- test/hooks/useRoomMembers-test.tsx | 2 +- test/hooks/useSlidingSyncRoomSearch-test.tsx | 2 +- test/hooks/useUserDirectory-test.tsx | 2 +- test/hooks/useUserOnboardingTasks-test.tsx | 2 +- test/hooks/useWindowWidth-test.ts | 2 +- test/models/Call-test.ts | 2 +- test/modules/ModuleComponents-test.tsx | 2 +- test/modules/ProxiedModuleApi-test.tsx | 2 +- test/stores/widgets/StopGapWidget-test.ts | 2 +- test/test-utils/composer.ts | 2 +- test/test-utils/jest-matrix-react.tsx | 42 +++ test/test-utils/utilities.ts | 2 +- test/test-utils/wrappers.tsx | 2 +- test/toasts/IncomingCallToast-test.tsx | 2 +- test/toasts/IncomingLegacyCallToast-test.tsx | 2 +- test/toasts/UnverifiedSessionToast-test.tsx | 2 +- .../UnverifiedSessionToast-test.tsx.snap | 4 +- test/useTopic-test.tsx | 2 +- test/utils/ErrorUtils-test.ts | 2 +- test/utils/MessageDiffUtils-test.tsx | 2 +- test/utils/export-test.tsx | 2 +- .../media/requestMediaPermissions-test.tsx | 2 +- test/utils/pillify-test.tsx | 2 +- test/utils/tooltipify-test.tsx | 9 +- .../components/VoiceBroadcastBody-test.tsx | 2 +- .../components/atoms/LiveBadge-test.tsx | 2 +- .../atoms/VoiceBroadcastControl-test.tsx | 2 +- .../atoms/VoiceBroadcastHeader-test.tsx | 2 +- .../VoiceBroadcastPlaybackControl-test.tsx | 2 +- .../VoiceBroadcastPlaybackBody-test.tsx | 2 +- .../VoiceBroadcastPreRecordingPip-test.tsx | 2 +- .../VoiceBroadcastRecordingBody-test.tsx | 2 +- .../VoiceBroadcastRecordingPip-test.tsx | 2 +- .../VoiceBroadcastSmallPlaybackBody-test.tsx | 2 +- .../models/VoiceBroadcastPlayback-test.tsx | 2 +- ...textForVoiceBroadcastStoppedEvent-test.tsx | 2 +- tsconfig.json | 5 +- yarn.lock | 332 ++++++------------ 389 files changed, 1261 insertions(+), 1084 deletions(-) create mode 100644 test/test-utils/jest-matrix-react.tsx diff --git a/.eslintrc.js b/.eslintrc.js index 10e8238a77..bc7ab5ed50 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -51,6 +51,10 @@ module.exports = { "error", { paths: [ + { + name: "@testing-library/react", + message: "Please use jest-matrix-react instead", + }, { name: "matrix-js-sdk", message: "Please use matrix-js-sdk/src/matrix instead", diff --git a/jest.config.ts b/jest.config.ts index ae1051fd71..1408b5bb46 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -37,6 +37,7 @@ const config: Config = { coverageReporters: ["text-summary", "lcov"], testResultsProcessor: "@casualbot/jest-sonar-reporter", prettierPath: null, + moduleDirectories: ["node_modules", "test/test-utils"], }; // if we're running under GHA, enable the GHA reporter diff --git a/package.json b/package.json index ea3ab91b79..8f9e6fdc88 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,9 @@ "jwt-decode": "4.0.0", "@floating-ui/react": "0.26.11", "@radix-ui/react-id": "1.1.0", - "caniuse-lite": "1.0.30001655" + "caniuse-lite": "1.0.30001655", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0", + "wrap-ansi": "npm:wrap-ansi@^7.0.0" }, "dependencies": { "@babel/runtime": "^7.12.5", @@ -80,7 +82,7 @@ "@sentry/browser": "^8.0.0", "@testing-library/react-hooks": "^8.0.1", "@vector-im/compound-design-tokens": "^1.8.0", - "@vector-im/compound-web": "^5.5.0", + "@vector-im/compound-web": "^6.3.1", "@zxcvbn-ts/core": "^3.0.4", "@zxcvbn-ts/language-common": "^3.0.4", "@zxcvbn-ts/language-en": "^3.0.2", diff --git a/playwright/e2e/crypto/event-shields.spec.ts b/playwright/e2e/crypto/event-shields.spec.ts index 0544a7c904..b5d3790aaa 100644 --- a/playwright/e2e/crypto/event-shields.spec.ts +++ b/playwright/e2e/crypto/event-shields.spec.ts @@ -70,7 +70,9 @@ test.describe("Cryptography", function () { const lastE2eIcon = last.locator(".mx_EventTile_e2eIcon"); await expect(lastE2eIcon).toHaveClass(/mx_EventTile_e2eIcon_decryption_failure/); await lastE2eIcon.focus(); - await expect(page.getByRole("tooltip")).toContainText("This message could not be decrypted"); + await expect(await app.getTooltipForElement(lastE2eIcon)).toContainText( + "This message could not be decrypted", + ); /* Should show a red padlock for an unencrypted message in an e2e room */ await bob.evaluate( @@ -90,7 +92,7 @@ test.describe("Cryptography", function () { await expect(last).toContainText("test unencrypted"); await expect(lastE2eIcon).toHaveClass(/mx_EventTile_e2eIcon_warning/); await lastE2eIcon.focus(); - await expect(page.getByRole("tooltip")).toContainText("Not encrypted"); + await expect(await app.getTooltipForElement(lastE2eIcon)).toContainText("Not encrypted"); /* Should show no padlock for an unverified user */ // bob sends a valid event @@ -123,7 +125,9 @@ test.describe("Cryptography", function () { await expect(lastTile).toContainText("test encrypted from unverified"); await expect(lastTileE2eIcon).toHaveClass(/mx_EventTile_e2eIcon_warning/); await lastTileE2eIcon.focus(); - await expect(page.getByRole("tooltip")).toContainText("Encrypted by a device not verified by its owner."); + await expect(await app.getTooltipForElement(lastTileE2eIcon)).toContainText( + "Encrypted by a device not verified by its owner.", + ); /* In legacy crypto: should show a grey padlock for a message from a deleted device. * In rust crypto: should show a red padlock for a message from an unverified device. @@ -159,7 +163,7 @@ test.describe("Cryptography", function () { await expect(last).toContainText("test encrypted from unverified"); await expect(lastE2eIcon).toHaveClass(/mx_EventTile_e2eIcon_warning/); await lastE2eIcon.focus(); - await expect(page.getByRole("tooltip")).toContainText( + await expect(await app.getTooltipForElement(lastE2eIcon)).toContainText( workerInfo.project.name === "Legacy Crypto" ? "Encrypted by an unknown or deleted device." : "Encrypted by a device not verified by its owner.", @@ -212,7 +216,7 @@ test.describe("Cryptography", function () { // The key is coming from backup, so it is not anymore possible to establish if the claimed device // creator of this key is authentic. The tooltip should be "The authenticity of this encrypted message can't be guaranteed on this device." // It is not "Encrypted by an unknown or deleted device." even if the claimed device is actually deleted. - await expect(page.getByRole("tooltip")).toContainText( + await expect(await app.getTooltipForElement(lastTileE2eIcon)).toContainText( "The authenticity of this encrypted message can't be guaranteed on this device.", ); }); @@ -296,7 +300,9 @@ test.describe("Cryptography", function () { const lastE2eIcon = last.locator(".mx_EventTile_e2eIcon"); await expect(lastE2eIcon).toHaveClass(/mx_EventTile_e2eIcon_warning/); await lastE2eIcon.focus(); - await expect(page.getByRole("tooltip")).toContainText("Encrypted by a device not verified by its owner."); + await expect(await app.getTooltipForElement(lastE2eIcon)).toContainText( + "Encrypted by a device not verified by its owner.", + ); const penultimate = page.locator(".mx_EventTile").filter({ hasText: "test encrypted from verified" }); await expect(penultimate.locator(".mx_EventTile_e2eIcon")).not.toBeVisible(); diff --git a/playwright/element-web-test.ts b/playwright/element-web-test.ts index 9d9da67a08..2973f88cda 100644 --- a/playwright/element-web-test.ts +++ b/playwright/element-web-test.ts @@ -224,7 +224,7 @@ export const test = base.extend<{ }, axe: async ({ page }, use) => { - await use(new AxeBuilder({ page })); + await use(new AxeBuilder({ page }).exclude("[id^='floating-ui-']")); }, checkA11y: async ({ axe }, use, testInfo) => use(async () => { diff --git a/playwright/pages/ElementAppPage.ts b/playwright/pages/ElementAppPage.ts index c769a935f9..81c57cc6f7 100644 --- a/playwright/pages/ElementAppPage.ts +++ b/playwright/pages/ElementAppPage.ts @@ -172,4 +172,22 @@ export class ElementAppPage { await this.page.getByRole("button", { name: "Room info" }).first().click(); return this.page.locator(".mx_RightPanel"); } + + /** + * Get a locator for the tooltip associated with an element + * @param e The element with the tooltip + * @returns Locator to the tooltip + */ + public async getTooltipForElement(e: Locator): Promise { + const [labelledById, describedById] = await Promise.all([ + e.getAttribute("aria-labelledby"), + e.getAttribute("aria-describedby"), + ]); + if (!labelledById && !describedById) { + throw new Error( + "Element has no aria-labelledby or aria-describedy attributes! The tooltip should have added either one of these.", + ); + } + return this.page.locator(`#${labelledById ?? describedById}`); + } } diff --git a/src/Modal.tsx b/src/Modal.tsx index 22e8a56923..53a1935294 100644 --- a/src/Modal.tsx +++ b/src/Modal.tsx @@ -12,7 +12,7 @@ import ReactDOM from "react-dom"; import classNames from "classnames"; import { IDeferred, defer, sleep } from "matrix-js-sdk/src/utils"; import { TypedEventEmitter } from "matrix-js-sdk/src/matrix"; -import { Glass } from "@vector-im/compound-web"; +import { Glass, TooltipProvider } from "@vector-im/compound-web"; import dis, { defaultDispatcher } from "./dispatcher/dispatcher"; import AsyncWrapper from "./AsyncWrapper"; @@ -416,16 +416,18 @@ export class ModalManager extends TypedEventEmitter - -
{this.staticModal.elem}
-
-
-
+ +
+ +
{this.staticModal.elem}
+
+
+
+ ); ReactDOM.render(staticDialog, ModalManager.getOrCreateStaticContainer()); @@ -441,16 +443,18 @@ export class ModalManager extends TypedEventEmitter - -
{modal.elem}
-
-
-
+ +
+ +
{modal.elem}
+
+
+
+ ); setTimeout(() => ReactDOM.render(dialog, ModalManager.getOrCreateContainer()), 0); diff --git a/src/components/structures/ContextMenu.tsx b/src/components/structures/ContextMenu.tsx index 9085898297..d589376610 100644 --- a/src/components/structures/ContextMenu.tsx +++ b/src/components/structures/ContextMenu.tsx @@ -12,6 +12,7 @@ import React, { CSSProperties, RefObject, SyntheticEvent, useRef, useState } fro import ReactDOM from "react-dom"; import classNames from "classnames"; import FocusLock from "react-focus-lock"; +import { TooltipProvider } from "@vector-im/compound-web"; import { Writeable } from "../../@types/common"; import UIStore from "../../stores/UIStore"; @@ -621,15 +622,17 @@ export function createMenu( }; const menu = ( - - - + + + + + ); ReactDOM.render(menu, getOrCreateContainer()); diff --git a/src/components/structures/MatrixChat.tsx b/src/components/structures/MatrixChat.tsx index 7689017856..cc0357a8f1 100644 --- a/src/components/structures/MatrixChat.tsx +++ b/src/components/structures/MatrixChat.tsx @@ -24,6 +24,7 @@ import { logger } from "matrix-js-sdk/src/logger"; import { throttle } from "lodash"; import { CryptoEvent } from "matrix-js-sdk/src/crypto"; import { KeyBackupInfo } from "matrix-js-sdk/src/crypto-api"; +import { TooltipProvider } from "@vector-im/compound-web"; // what-input helps improve keyboard accessibility import "what-input"; @@ -2181,7 +2182,9 @@ export default class MatrixChat extends React.PureComponent { return ( - {view} + + {view} + ); } diff --git a/src/components/structures/ThreadPanel.tsx b/src/components/structures/ThreadPanel.tsx index b45401dd4c..eb20b05fdc 100644 --- a/src/components/structures/ThreadPanel.tsx +++ b/src/components/structures/ThreadPanel.tsx @@ -130,7 +130,7 @@ export const ThreadPanelHeader: React.FC<{ return (
- + diff --git a/src/components/structures/auth/forgot-password/CheckEmail.tsx b/src/components/structures/auth/forgot-password/CheckEmail.tsx index af563a8fa2..feca331894 100644 --- a/src/components/structures/auth/forgot-password/CheckEmail.tsx +++ b/src/components/structures/auth/forgot-password/CheckEmail.tsx @@ -58,7 +58,7 @@ export const CheckEmail: React.FC = ({
{_t("auth|check_email_resend_prompt")} - + {_t("action|resend")} diff --git a/src/components/structures/auth/forgot-password/VerifyEmailModal.tsx b/src/components/structures/auth/forgot-password/VerifyEmailModal.tsx index 238ddf2c3b..d883177d0c 100644 --- a/src/components/structures/auth/forgot-password/VerifyEmailModal.tsx +++ b/src/components/structures/auth/forgot-password/VerifyEmailModal.tsx @@ -57,7 +57,7 @@ export const VerifyEmailModal: React.FC = ({
{_t("auth|check_email_resend_prompt")} - + {_t("action|resend")} diff --git a/src/components/views/elements/AccessibleButton.tsx b/src/components/views/elements/AccessibleButton.tsx index e58b06717a..b8b5297384 100644 --- a/src/components/views/elements/AccessibleButton.tsx +++ b/src/components/views/elements/AccessibleButton.tsx @@ -212,7 +212,7 @@ const AccessibleButton = forwardRef(function { // Tooltip are forced on the right for a more natural feel to them on info icons return ( - +
{children} diff --git a/src/components/views/elements/PersistedElement.tsx b/src/components/views/elements/PersistedElement.tsx index a380723fb2..1b7b6543e9 100644 --- a/src/components/views/elements/PersistedElement.tsx +++ b/src/components/views/elements/PersistedElement.tsx @@ -8,6 +8,7 @@ Please see LICENSE files in the repository root for full details. import React, { MutableRefObject, ReactNode } from "react"; import ReactDOM from "react-dom"; import { isNullOrUndefined } from "matrix-js-sdk/src/utils"; +import { TooltipProvider } from "@vector-im/compound-web"; import dis from "../../../dispatcher/dispatcher"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; @@ -167,9 +168,11 @@ export default class PersistedElement extends React.Component { private renderApp(): void { const content = ( -
- {this.props.children} -
+ +
+ {this.props.children} +
+
); diff --git a/src/components/views/elements/Pill.tsx b/src/components/views/elements/Pill.tsx index 569dcdf313..12cec19a42 100644 --- a/src/components/views/elements/Pill.tsx +++ b/src/components/views/elements/Pill.tsx @@ -141,7 +141,7 @@ export const Pill: React.FC = ({ type: propType, url, inMessage, room ; return ( - +
{ } return ( - + {icon} {timestamp} diff --git a/src/components/views/messages/ReactionsRowButtonTooltip.tsx b/src/components/views/messages/ReactionsRowButtonTooltip.tsx index fe59f537a3..9790356762 100644 --- a/src/components/views/messages/ReactionsRowButtonTooltip.tsx +++ b/src/components/views/messages/ReactionsRowButtonTooltip.tsx @@ -51,7 +51,7 @@ export default class ReactionsRowButtonTooltip extends React.PureComponent + {children} ); diff --git a/src/components/views/messages/TextualBody.tsx b/src/components/views/messages/TextualBody.tsx index 890316fc02..eb1c94e20d 100644 --- a/src/components/views/messages/TextualBody.tsx +++ b/src/components/views/messages/TextualBody.tsx @@ -9,6 +9,7 @@ Please see LICENSE files in the repository root for full details. import React, { createRef, SyntheticEvent, MouseEvent } from "react"; import ReactDOM from "react-dom"; import { MsgType } from "matrix-js-sdk/src/matrix"; +import { TooltipProvider } from "@vector-im/compound-web"; import * as HtmlUtils from "../../../HtmlUtils"; import { formatDate } from "../../../DateUtils"; @@ -335,7 +336,11 @@ export default class TextualBody extends React.Component { const reason = node.getAttribute("data-mx-spoiler") ?? undefined; node.removeAttribute("data-mx-spoiler"); // we don't want to recurse - const spoiler = ; + const spoiler = ( + + + + ); ReactDOM.render(spoiler, spoilerContainer); node.parentNode?.replaceChild(spoilerContainer, node); diff --git a/src/components/views/right_panel/RoomSummaryCard.tsx b/src/components/views/right_panel/RoomSummaryCard.tsx index fc879c3254..7b39ee0c57 100644 --- a/src/components/views/right_panel/RoomSummaryCard.tsx +++ b/src/components/views/right_panel/RoomSummaryCard.tsx @@ -373,9 +373,7 @@ const RoomSummaryCard: React.FC = ({ Icon={FavouriteIcon} label={_t("room|context_menu|favourite")} checked={isFavorite} - onChange={() => tagRoom(room, DefaultTagID.Favourite)} - // XXX: https://github.com/element-hq/compound/issues/288 - onSelect={() => {}} + onSelect={() => tagRoom(room, DefaultTagID.Favourite)} />
-
+
{nonCssBadge} diff --git a/src/components/views/rooms/MessageComposer.tsx b/src/components/views/rooms/MessageComposer.tsx index 99e4507c15..e1677a179e 100644 --- a/src/components/views/rooms/MessageComposer.tsx +++ b/src/components/views/rooms/MessageComposer.tsx @@ -666,7 +666,7 @@ export class MessageComposer extends React.Component { }); return ( - +
{recordingTooltip}
diff --git a/src/components/views/rooms/ReadReceiptGroup.tsx b/src/components/views/rooms/ReadReceiptGroup.tsx index 8ac0db0e12..ea60518f4b 100644 --- a/src/components/views/rooms/ReadReceiptGroup.tsx +++ b/src/components/views/rooms/ReadReceiptGroup.tsx @@ -211,7 +211,7 @@ export function ReadReceiptPerson({ onAfterClick, }: ReadReceiptPersonProps): JSX.Element { return ( - +
- + diff --git a/src/components/views/rooms/RoomHeader/CallGuestLinkButton.tsx b/src/components/views/rooms/RoomHeader/CallGuestLinkButton.tsx index 3e7c1531a6..ae8e7be16b 100644 --- a/src/components/views/rooms/RoomHeader/CallGuestLinkButton.tsx +++ b/src/components/views/rooms/RoomHeader/CallGuestLinkButton.tsx @@ -80,7 +80,7 @@ export const CallGuestLinkButton: React.FC<{ room: Room }> = ({ room }) => { <> {canInviteGuests && ( - + diff --git a/src/toasts/IncomingCallToast.tsx b/src/toasts/IncomingCallToast.tsx index 5ecde7eb08..bdad2d4565 100644 --- a/src/toasts/IncomingCallToast.tsx +++ b/src/toasts/IncomingCallToast.tsx @@ -8,7 +8,7 @@ Please see LICENSE files in the repository root for full details. import React, { useCallback, useEffect, useState } from "react"; import { MatrixEvent, RoomMember } from "matrix-js-sdk/src/matrix"; -import { Button, Tooltip } from "@vector-im/compound-web"; +import { Button, Tooltip, TooltipProvider } from "@vector-im/compound-web"; import VideoCallIcon from "@vector-im/compound-design-tokens/assets/web/icons/video-call-solid"; import { _t } from "../languageHandler"; @@ -47,7 +47,7 @@ function JoinCallButtonWithCall({ onClick, call, disabledTooltip }: JoinCallButt disTooltip = disabledTooltip ?? disabledBecauseFullTooltip ?? undefined; return ( - +
)} @@ -254,14 +259,13 @@ export default class MFileBody extends React.Component {
{/* TODO: Move iframe (and dummy link) into FileDownloader. @@ -283,7 +287,10 @@ export default class MFileBody extends React.Component { ); } else if (contentUrl) { - const downloadProps: AllHTMLAttributes = { + const downloadProps: Pick< + AllHTMLAttributes, + "target" | "rel" | "href" | "onClick" | "download" + > = { target: "_blank", rel: "noreferrer noopener", @@ -332,25 +339,18 @@ export default class MFileBody extends React.Component { {placeholder} {showDownloadLink && (
- - - {_t("timeline|m.file|download_label", { text: this.linkText })} - - {this.context.timelineRenderingType === TimelineRenderingType.File && ( -
- {this.content.info?.size ? fileSize(this.content.info.size) : ""} -
- )} +
)} ); } else { - const extra = this.linkText ? ": " + this.linkText : ""; return ( {placeholder} - {_t("timeline|m.file|error_invalid", { extra: extra })} + {_t("timeline|m.file|error_invalid")} ); } diff --git a/src/components/views/rooms/EventTile.tsx b/src/components/views/rooms/EventTile.tsx index 9f7290b68b..813e5de40c 100644 --- a/src/components/views/rooms/EventTile.tsx +++ b/src/components/views/rooms/EventTile.tsx @@ -1024,6 +1024,9 @@ export class UnwrappedEventTile extends React.Component // no avatar or sender profile for continuation messages and call tiles avatarSize = null; needsSenderProfile = false; + } else if (this.context.timelineRenderingType === TimelineRenderingType.File) { + avatarSize = "20px"; + needsSenderProfile = true; } else { avatarSize = "30px"; needsSenderProfile = true; @@ -1351,6 +1354,18 @@ export class UnwrappedEventTile extends React.Component "data-scroll-tokens": scrollToken, }, [ + +
+ {avatar} + {sender} + {timestamp} +
+
,
{this.renderContextMenu()} {renderTile( @@ -1371,17 +1386,6 @@ export class UnwrappedEventTile extends React.Component this.context.showHiddenEvents, )}
, - -
- {sender} - {timestamp} -
-
, ], ); } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 4e2a0c01d5..77fecde80e 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -3328,10 +3328,8 @@ "voice_call_unsupported": "%(senderName)s placed a voice call. (not supported by this browser)" }, "m.file": { - "decrypt_label": "Decrypt %(text)s", - "download_label": "Download %(text)s", "error_decrypting": "Error decrypting attachment", - "error_invalid": "Invalid file%(extra)s" + "error_invalid": "Invalid file" }, "m.image": { "error": "Unable to show image due to error", diff --git a/src/usercontent/index.ts b/src/usercontent/index.ts index 666254d2a1..ceedf5e27a 100644 --- a/src/usercontent/index.ts +++ b/src/usercontent/index.ts @@ -36,9 +36,9 @@ function remoteRender(event: MessageEvent): void { // @ts-ignore img.style = data.imgStyle; } else { - img.style.width = "12px"; - img.style.height = "12px"; - img.style.webkitMaskSize = "12px"; + img.style.width = "20px"; + img.style.height = "20px"; + img.style.webkitMaskSize = "20px"; img.style.webkitMaskPosition = "center"; img.style.webkitMaskRepeat = "no-repeat"; img.style.display = "inline-block"; diff --git a/src/utils/FileUtils.ts b/src/utils/FileUtils.ts index 37fd181900..2fb095d53c 100644 --- a/src/utils/FileUtils.ts +++ b/src/utils/FileUtils.ts @@ -21,6 +21,17 @@ import { MediaEventContent } from "matrix-js-sdk/src/types"; import { _t } from "../languageHandler"; +export function downloadLabelForFile(content: MediaEventContent, withSize = true): string { + let text = _t("action|download"); + + if (content.info?.size && withSize) { + // If we know the size of the file then add it as human-readable string to the end of the link text + // so that the user knows how big a file they are downloading. + text += " (" + fileSize(content.info.size, { base: 2, standard: "jedec" }) + ")"; + } + return text; +} + /** * Extracts a human-readable label for the file attachment to use as * link text. diff --git a/test/components/views/messages/MFileBody-test.tsx b/test/components/views/messages/MFileBody-test.tsx new file mode 100644 index 0000000000..2d8462a02c --- /dev/null +++ b/test/components/views/messages/MFileBody-test.tsx @@ -0,0 +1,88 @@ +/* +Copyright 2024 New Vector Ltd. + +SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only +Please see LICENSE files in the repository root for full details. +*/ + +import React from "react"; +import { render } from "jest-matrix-react"; +import { EventType, getHttpUriForMxc, MatrixEvent, Room } from "matrix-js-sdk/src/matrix"; + +import { RoomPermalinkCreator } from "../../../../src/utils/permalinks/Permalinks"; +import { + getMockClientWithEventEmitter, + mockClientMethodsCrypto, + mockClientMethodsDevice, + mockClientMethodsServer, + mockClientMethodsUser, +} from "../../../test-utils"; +import { MediaEventHelper } from "../../../../src/utils/MediaEventHelper"; +import SettingsStore from "../../../../src/settings/SettingsStore"; +import MFileBody from "../../../../src/components/views/messages/MFileBody.tsx"; +import RoomContext, { TimelineRenderingType } from "../../../../src/contexts/RoomContext.ts"; + +jest.mock("matrix-encrypt-attachment", () => ({ + decryptAttachment: jest.fn(), +})); + +describe("", () => { + const userId = "@user:server"; + const deviceId = "DEADB33F"; + const cli = getMockClientWithEventEmitter({ + ...mockClientMethodsUser(userId), + ...mockClientMethodsServer(), + ...mockClientMethodsDevice(deviceId), + ...mockClientMethodsCrypto(), + getRooms: jest.fn().mockReturnValue([]), + getIgnoredUsers: jest.fn(), + getVersions: jest.fn().mockResolvedValue({ + unstable_features: { + "org.matrix.msc3882": true, + "org.matrix.msc3886": true, + }, + }), + }); + // eslint-disable-next-line no-restricted-properties + cli.mxcUrlToHttp.mockImplementation( + (mxcUrl: string, width?: number, height?: number, resizeMethod?: string, allowDirectLinks?: boolean) => { + return getHttpUriForMxc("https://server", mxcUrl, width, height, resizeMethod, allowDirectLinks); + }, + ); + const mediaEvent = new MatrixEvent({ + room_id: "!room:server", + sender: userId, + type: EventType.RoomMessage, + content: { + body: "alt for a image", + msgtype: "m.image", + url: "mxc://server/image", + }, + }); + + const props = { + onHeightChanged: jest.fn(), + onMessageAllowed: jest.fn(), + permalinkCreator: new RoomPermalinkCreator(new Room(mediaEvent.getRoomId()!, cli, cli.getUserId()!)), + }; + + beforeEach(() => { + jest.spyOn(SettingsStore, "getValue").mockRestore(); + }); + + it("should show a download button in file rendering type", async () => { + const { container, getByRole } = render( + + + , + ); + + expect(getByRole("link", { name: "Download" })).toBeInTheDocument(); + expect(container).toMatchSnapshot(); + }); +}); diff --git a/test/components/views/messages/__snapshots__/MFileBody-test.tsx.snap b/test/components/views/messages/__snapshots__/MFileBody-test.tsx.snap new file mode 100644 index 0000000000..d15b7f454e --- /dev/null +++ b/test/components/views/messages/__snapshots__/MFileBody-test.tsx.snap @@ -0,0 +1,39 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[` should show a download button in file rendering type 1`] = ` + +`; diff --git a/test/components/views/rooms/EventTile-test.tsx b/test/components/views/rooms/EventTile-test.tsx index 051cdbcf62..d53e37a5f4 100644 --- a/test/components/views/rooms/EventTile-test.tsx +++ b/test/components/views/rooms/EventTile-test.tsx @@ -169,6 +169,15 @@ describe("EventTile", () => { }); }); + describe("EventTile renderingType: File", () => { + it("should not display the pinned message badge", async () => { + jest.spyOn(PinningUtils, "isPinned").mockReturnValue(true); + getComponent({}, TimelineRenderingType.File); + + expect(screen.queryByText("Pinned message")).not.toBeInTheDocument(); + }); + }); + describe("EventTile renderingType: default", () => { it.each([[Layout.Group], [Layout.Bubble], [Layout.IRC]])( "should display the pinned message badge", diff --git a/test/utils/FileUtils-test.ts b/test/utils/FileUtils-test.ts new file mode 100644 index 0000000000..a8c447161b --- /dev/null +++ b/test/utils/FileUtils-test.ts @@ -0,0 +1,60 @@ +/* +Copyright 2024 New Vector Ltd. + +SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only +Please see LICENSE files in the repository root for full details. +*/ + +import { MediaEventContent } from "matrix-js-sdk/src/types"; + +import { downloadLabelForFile } from "../../src/utils/FileUtils.ts"; + +describe("FileUtils", () => { + describe("downloadLabelForFile", () => { + it.each([ + [ + "File with size", + { + input: { + msgtype: "m.file", + body: "Test", + info: { + size: 102434566, + }, + } as MediaEventContent, + output: "Download (97.69 MB)", + }, + ], + [ + "Image", + { + input: { + msgtype: "m.image", + body: "Test", + } as MediaEventContent, + output: "Download", + }, + ], + [ + "Video", + { + input: { + msgtype: "m.video", + body: "Test", + } as MediaEventContent, + output: "Download", + }, + ], + [ + "Audio", + { + input: { + msgtype: "m.audio", + body: "Test", + } as MediaEventContent, + output: "Download", + }, + ], + ])("should correctly label %s", (_d, { input, output }) => expect(downloadLabelForFile(input)).toBe(output)); + }); +}); From 503d9004d15df4fb50fba2605265e32ff5b837af Mon Sep 17 00:00:00 2001 From: Florian Duros Date: Tue, 15 Oct 2024 09:50:26 +0200 Subject: [PATCH 06/39] Replace `MatrixClient.userHasCrossSigningKeys` by `MatrixClient.getCrypto.userHasCrossSigningKeys` (#148) --- src/components/structures/MatrixChat.tsx | 2 +- test/components/structures/MatrixChat-test.tsx | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/structures/MatrixChat.tsx b/src/components/structures/MatrixChat.tsx index cc0357a8f1..0e5ec04d33 100644 --- a/src/components/structures/MatrixChat.tsx +++ b/src/components/structures/MatrixChat.tsx @@ -426,7 +426,7 @@ export default class MatrixChat extends React.PureComponent { // from another device. promisesList.push( (async (): Promise => { - crossSigningIsSetUp = await cli.userHasCrossSigningKeys(); + crossSigningIsSetUp = Boolean(await cli.getCrypto()?.userHasCrossSigningKeys()); })(), ); } diff --git a/test/components/structures/MatrixChat-test.tsx b/test/components/structures/MatrixChat-test.tsx index 3e8c164260..1202dc0481 100644 --- a/test/components/structures/MatrixChat-test.tsx +++ b/test/components/structures/MatrixChat-test.tsx @@ -126,7 +126,6 @@ describe("", () => { }), getVisibleRooms: jest.fn().mockReturnValue([]), getRooms: jest.fn().mockReturnValue([]), - userHasCrossSigningKeys: jest.fn(), setGlobalBlacklistUnverifiedDevices: jest.fn(), setGlobalErrorOnUnknownDevices: jest.fn(), getCrypto: jest.fn().mockReturnValue({ @@ -136,6 +135,7 @@ describe("", () => { getUserVerificationStatus: jest.fn().mockResolvedValue(new UserVerificationStatus(false, false, false)), getVersion: jest.fn().mockReturnValue("1"), setDeviceIsolationMode: jest.fn(), + userHasCrossSigningKeys: jest.fn(), }), // This needs to not finish immediately because we need to test the screen appears bootstrapCrossSigning: jest.fn().mockImplementation(() => bootstrapDeferred.promise), @@ -1010,10 +1010,10 @@ describe("", () => { .fn() .mockResolvedValue(new UserVerificationStatus(false, false, false)), setDeviceIsolationMode: jest.fn(), + userHasCrossSigningKeys: jest.fn().mockResolvedValue(false), }; loginClient.isCryptoEnabled.mockReturnValue(true); loginClient.getCrypto.mockReturnValue(mockCrypto as any); - loginClient.userHasCrossSigningKeys.mockClear().mockResolvedValue(false); }); it("should go straight to logged in view when crypto is not enabled", async () => { @@ -1021,7 +1021,7 @@ describe("", () => { await getComponentAndLogin(true); - expect(loginClient.userHasCrossSigningKeys).not.toHaveBeenCalled(); + expect(loginClient.getCrypto()!.userHasCrossSigningKeys).not.toHaveBeenCalled(); }); it("should go straight to logged in view when user does not have cross signing keys and server does not support cross signing", async () => { @@ -1042,7 +1042,7 @@ describe("", () => { describe("when server supports cross signing and user does not have cross signing setup", () => { beforeEach(() => { loginClient.doesServerSupportUnstableFeature.mockResolvedValue(true); - loginClient.userHasCrossSigningKeys.mockResolvedValue(false); + jest.spyOn(loginClient.getCrypto()!, "userHasCrossSigningKeys").mockResolvedValue(false); }); describe("when encryption is force disabled", () => { @@ -1088,7 +1088,7 @@ describe("", () => { await getComponentAndLogin(); - expect(loginClient.userHasCrossSigningKeys).toHaveBeenCalled(); + expect(loginClient.getCrypto()!.userHasCrossSigningKeys).toHaveBeenCalled(); // set up keys screen is rendered await expect(await screen.findByText("Setting up keys")).toBeInTheDocument(); @@ -1096,11 +1096,11 @@ describe("", () => { }); it("should show complete security screen when user has cross signing setup", async () => { - loginClient.userHasCrossSigningKeys.mockResolvedValue(true); + jest.spyOn(loginClient.getCrypto()!, "userHasCrossSigningKeys").mockResolvedValue(true); await getComponentAndLogin(); - expect(loginClient.userHasCrossSigningKeys).toHaveBeenCalled(); + expect(loginClient.getCrypto()!.userHasCrossSigningKeys).toHaveBeenCalled(); await flushPromises(); @@ -1113,7 +1113,7 @@ describe("", () => { await getComponentAndLogin(); - expect(loginClient.userHasCrossSigningKeys).toHaveBeenCalled(); + expect(loginClient.getCrypto()!.userHasCrossSigningKeys).toHaveBeenCalled(); await flushPromises(); From bce02634f79d6fba8d0aa8fda9e233a5ed14b192 Mon Sep 17 00:00:00 2001 From: Florian Duros Date: Tue, 15 Oct 2024 09:50:38 +0200 Subject: [PATCH 07/39] Replace `MatrixClient.prepareToEncrypt` by `MatrixClient.getCrypto.prepareToEncrypt` (#146) --- src/LegacyCallHandler.tsx | 2 +- src/components/views/rooms/SendMessageComposer.tsx | 2 +- test/LegacyCallHandler-test.ts | 1 - test/components/views/rooms/SendMessageComposer-test.tsx | 7 +++---- test/test-utils/test-utils.ts | 1 + 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/LegacyCallHandler.tsx b/src/LegacyCallHandler.tsx index a19a4d4573..ae14b31aed 100644 --- a/src/LegacyCallHandler.tsx +++ b/src/LegacyCallHandler.tsx @@ -367,7 +367,7 @@ export default class LegacyCallHandler extends EventEmitter { // the mapped one: that's where we'll send the events. const cli = MatrixClientPeg.safeGet(); const room = cli.getRoom(call.roomId); - if (room) cli.prepareToEncrypt(room); + if (room) cli.getCrypto()?.prepareToEncrypt(room); }; public getCallById(callId: string): MatrixCall | null { diff --git a/src/components/views/rooms/SendMessageComposer.tsx b/src/components/views/rooms/SendMessageComposer.tsx index 1b3fb47163..30c11428fc 100644 --- a/src/components/views/rooms/SendMessageComposer.tsx +++ b/src/components/views/rooms/SendMessageComposer.tsx @@ -268,7 +268,7 @@ export class SendMessageComposer extends React.Component { - this.props.mxClient.prepareToEncrypt(this.props.room); + this.props.mxClient.getCrypto()?.prepareToEncrypt(this.props.room); }, 60000, { leading: true, trailing: false }, diff --git a/test/LegacyCallHandler-test.ts b/test/LegacyCallHandler-test.ts index 7bd8c9cc24..08ef133b5f 100644 --- a/test/LegacyCallHandler-test.ts +++ b/test/LegacyCallHandler-test.ts @@ -588,7 +588,6 @@ describe("LegacyCallHandler without third party protocols", () => { jest.spyOn(MatrixClientPeg.safeGet(), "supportsVoip").mockReturnValue(true); MatrixClientPeg.safeGet().isFallbackICEServerAllowed = jest.fn(); - MatrixClientPeg.safeGet().prepareToEncrypt = jest.fn(); MatrixClientPeg.safeGet().pushRules = { global: { diff --git a/test/components/views/rooms/SendMessageComposer-test.tsx b/test/components/views/rooms/SendMessageComposer-test.tsx index a78c9d3e4e..1d1efca7fb 100644 --- a/test/components/views/rooms/SendMessageComposer-test.tsx +++ b/test/components/views/rooms/SendMessageComposer-test.tsx @@ -573,10 +573,9 @@ describe("", () => { const cli = stubClient(); cli.isCryptoEnabled = jest.fn().mockReturnValue(true); cli.isRoomEncrypted = jest.fn().mockReturnValue(true); - cli.prepareToEncrypt = jest.fn(); const room = mkStubRoom("!roomId:server", "Room", cli); - expect(cli.prepareToEncrypt).not.toHaveBeenCalled(); + expect(cli.getCrypto()!.prepareToEncrypt).not.toHaveBeenCalled(); const { container } = render( @@ -588,9 +587,9 @@ describe("", () => { // Does not trigger on keydown as that'll cause false negatives for global shortcuts await userEvent.type(composer, "[ControlLeft>][KeyK][/ControlLeft]"); - expect(cli.prepareToEncrypt).not.toHaveBeenCalled(); + expect(cli.getCrypto()!.prepareToEncrypt).not.toHaveBeenCalled(); await userEvent.type(composer, "Hello"); - expect(cli.prepareToEncrypt).toHaveBeenCalled(); + expect(cli.getCrypto()!.prepareToEncrypt).toHaveBeenCalled(); }); }); diff --git a/test/test-utils/test-utils.ts b/test/test-utils/test-utils.ts index 2f534c7bd7..6573285423 100644 --- a/test/test-utils/test-utils.ts +++ b/test/test-utils/test-utils.ts @@ -133,6 +133,7 @@ export function createTestClient(): MatrixClient { isEncryptionEnabledInRoom: jest.fn(), getVerificationRequestsToDeviceInProgress: jest.fn().mockReturnValue([]), setDeviceIsolationMode: jest.fn(), + prepareToEncrypt: jest.fn(), }), getPushActionsForEvent: jest.fn(), From d9e943d9a84abd55bde2f649d22b73d29b9b0c7d Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 15 Oct 2024 09:56:43 +0100 Subject: [PATCH 08/39] Update to Compound v7 (#151) * Update to Compound v7 Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update snapshots Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update test Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- package.json | 2 +- playwright/e2e/crypto/crypto.spec.ts | 2 +- .../views/right_panel/RoomSummaryCard.tsx | 8 +++--- .../RoomSummaryCard-test.tsx.snap | 12 ++++---- yarn.lock | 28 +++++++++++++++---- 5 files changed, 34 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 8f9e6fdc88..cc8b13b4b5 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "@sentry/browser": "^8.0.0", "@testing-library/react-hooks": "^8.0.1", "@vector-im/compound-design-tokens": "^1.8.0", - "@vector-im/compound-web": "^6.3.1", + "@vector-im/compound-web": "^7.0.0", "@zxcvbn-ts/core": "^3.0.4", "@zxcvbn-ts/language-common": "^3.0.4", "@zxcvbn-ts/language-en": "^3.0.2", diff --git a/playwright/e2e/crypto/crypto.spec.ts b/playwright/e2e/crypto/crypto.spec.ts index e520d971ea..e3285b898d 100644 --- a/playwright/e2e/crypto/crypto.spec.ts +++ b/playwright/e2e/crypto/crypto.spec.ts @@ -226,7 +226,7 @@ test.describe("Cryptography", function () { // Assert that verified icon is rendered await page.getByTestId("base-card-back-button").click(); await page.getByLabel("Room info").nth(1).click(); - await expect(page.locator('.mx_RoomSummaryCard_badges [data-kind="success"]')).toContainText("Encrypted"); + await expect(page.locator('.mx_RoomSummaryCard_badges [data-kind="green"]')).toContainText("Encrypted"); // Take a snapshot of RoomSummaryCard with a verified E2EE icon await expect(page.locator(".mx_RightPanel")).toMatchScreenshot("RoomSummaryCard-with-verified-e2ee.png"); diff --git a/src/components/views/right_panel/RoomSummaryCard.tsx b/src/components/views/right_panel/RoomSummaryCard.tsx index 7b39ee0c57..664977bbe2 100644 --- a/src/components/views/right_panel/RoomSummaryCard.tsx +++ b/src/components/views/right_panel/RoomSummaryCard.tsx @@ -297,28 +297,28 @@ const RoomSummaryCard: React.FC = ({ {!isDirectMessage && roomState.getJoinRule() === JoinRule.Public && ( - + {_t("common|public_room")} )} {isRoomEncrypted && e2eStatus !== E2EStatus.Warning && ( - + {_t("common|encrypted")} )} {!e2eStatus && ( - + {_t("common|unencrypted")} )} {e2eStatus === E2EStatus.Warning && ( - + {_t("common|not_trusted")} diff --git a/test/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap b/test/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap index 487933f012..3cd402653a 100644 --- a/test/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap +++ b/test/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap @@ -72,8 +72,8 @@ exports[` has button to edit topic 1`] = ` style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: start; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-2x);" > renders the room summary 1`] = ` style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: start; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-2x);" > renders the room topic in the summary 1`] = ` style="--mx-flex-display: flex; --mx-flex-direction: row; --mx-flex-align: start; --mx-flex-justify: center; --mx-flex-gap: var(--cpd-space-2x);" > Date: Tue, 15 Oct 2024 10:12:29 +0100 Subject: [PATCH 09/39] [create-pull-request] automated change (#51) Co-authored-by: dbkr Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- src/i18n/strings/cs.json | 45 ++------------------ src/i18n/strings/de_DE.json | 45 ++------------------ src/i18n/strings/el.json | 38 ++--------------- src/i18n/strings/eo.json | 31 ++------------ src/i18n/strings/es.json | 44 ++----------------- src/i18n/strings/et.json | 44 ++----------------- src/i18n/strings/fa.json | 27 +----------- src/i18n/strings/fi.json | 44 ++----------------- src/i18n/strings/fr.json | 45 ++------------------ src/i18n/strings/gl.json | 37 ++-------------- src/i18n/strings/he.json | 39 +++-------------- src/i18n/strings/hu.json | 46 ++------------------ src/i18n/strings/id.json | 44 ++----------------- src/i18n/strings/is.json | 36 ++-------------- src/i18n/strings/it.json | 45 ++------------------ src/i18n/strings/ja.json | 47 ++------------------- src/i18n/strings/lo.json | 41 +++--------------- src/i18n/strings/lt.json | 35 ++-------------- src/i18n/strings/nl.json | 43 ++----------------- src/i18n/strings/pl.json | 79 +++++++++++++---------------------- src/i18n/strings/pt_BR.json | 28 +------------ src/i18n/strings/ru.json | 44 ++----------------- src/i18n/strings/sk.json | 45 ++------------------ src/i18n/strings/sq.json | 43 ++----------------- src/i18n/strings/sv.json | 45 ++------------------ src/i18n/strings/uk.json | 44 ++----------------- src/i18n/strings/vi.json | 36 ++-------------- src/i18n/strings/zh_Hans.json | 43 ++----------------- src/i18n/strings/zh_Hant.json | 44 ++----------------- 29 files changed, 121 insertions(+), 1106 deletions(-) diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 879d381c4b..3d109f4b8a 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -868,16 +868,6 @@ "incompatible_database_disable": "Pokračovat bez šifrování", "incompatible_database_sign_out_description": "Abyste po odhlášení nepřišli o přístup k historii šifrovaných konverzací, měli byste si před odhlášením exportovat šifrovací klíče místností. Prosím vraťte se k novější verzi %(brand)su a exportujte si klíče", "incompatible_database_title": "Nekompatibilní databáze", - "key_signature_upload_cancelled": "Nahrávání podpisu zrušeno", - "key_signature_upload_completed": "Nahrávání dokončeno", - "key_signature_upload_failed": "Nelze nahrát", - "key_signature_upload_failed_body": "%(brand)s narazil na chybu při nahrávání:", - "key_signature_upload_failed_cross_signing_key_signature": "nový klíč pro křížový podpis", - "key_signature_upload_failed_device_cross_signing_key_signature": "zařízení používající křížový podpis", - "key_signature_upload_failed_key_signature": "podpis klíče", - "key_signature_upload_failed_master_key_signature": "nový podpis hlavního klíče", - "key_signature_upload_failed_title": "Podpis se nepodařilo nahrát", - "key_signature_upload_success_title": "Podpis úspěšně nahrán", "messages_not_secure": { "cause_1": "Váš domovský server", "cause_2": "Domovský server, ke kterému je ověřovaný uživatel připojen", @@ -893,8 +883,6 @@ "warning": "Pokud jste nenastavili nový způsob obnovy vy, mohou se pokoušet k vašemu účtu dostat útočníci. Změňte si raději ihned heslo a nastavte nový způsob obnovy v Nastavení." }, "not_supported": "", - "old_version_detected_description": "Byla zjištěna data ze starší verze %(brand)s. To bude mít za následek nefunkčnost koncové kryptografie ve starší verzi. Koncově šifrované zprávy vyměněné nedávno při používání starší verze nemusí být v této verzi dešifrovatelné. To může také způsobit selhání zpráv vyměňovaných s touto verzí. Pokud narazíte na problémy, odhlaste se a znovu se přihlaste. Chcete-li zachovat historii zpráv, exportujte a znovu importujte klíče.", - "old_version_detected_title": "Nalezeny starší šifrované datové zprávy", "recovery_method_removed": { "description_1": "Tato relace zjistila, že byla odstraněna vaše bezpečnostní fráze a klíč pro zabezpečené zprávy.", "description_2": "Pokud se vám to stalo neúmyslně, můžete znovu nastavit zálohu zpráv pro tuto relaci. To znovu zašifruje historii zpráv novým způsobem.", @@ -1417,14 +1405,12 @@ "location_share_live_description": "Dočasná implementace. Polohy zůstanou v historii místností.", "mjolnir": "Nové způsoby ignorování lidí", "msc3531_hide_messages_pending_moderation": "Umožnit moderátorům skrývat zprávy čekající na moderaci.", - "new_room_decoration_ui": "V aktivním vývoji, nové rozhraní pro záhlaví a detaily místnosti", "notification_settings": "Nová nastavení oznámení", "notification_settings_beta_caption": "Představujeme jednodušší způsob, jak změnit nastavení oznámení. Přizpůsobte svůj %(brand)s přesně tak, jak se vám líbí.", "notification_settings_beta_title": "Nastavení oznámení", "notifications": "Zapnout panel oznámení v záhlaví místnosti", "oidc_native_flow": "Nativní autentizace OIDC", "oidc_native_flow_description": "⚠ VAROVÁNÍ: Experimentální. Použijte nativní ověřování OIDC, pokud je serverem podporováno.", - "pinning": "Připíchnutí zprávy", "render_reaction_images": "Vykreslování vlastních obrázků v reakcích", "render_reaction_images_description": "Někdy se označují jako \"vlastní emoji\".", "report_to_moderators": "Nahlásit moderátorům", @@ -1510,9 +1496,7 @@ "error_send_description": "%(brand)s nemohl odeslat vaši polohu. Zkuste to prosím později.", "error_send_title": "Vaši polohu se nepodařilo odeslat", "error_sharing_live_location": "Při sdílení vaší polohy živě došlo k chybě", - "error_sharing_live_location_try_again": "Při sdílení vaší polohy živě došlo k chybě, zkuste to prosím znovu", "error_stopping_live_location": "Při ukončování sdílení polohy živě došlo k chybě", - "error_stopping_live_location_try_again": "Při ukončování vaší polohy živě došlo k chybě, zkuste to prosím znovu", "expand_map": "Rozbalit mapu", "failed_generic": "Nepodařilo se zjistit vaši polohu. Zkuste to prosím později.", "failed_load_map": "Nelze načíst mapu", @@ -1542,7 +1526,6 @@ "share_type_own": "Moje současná poloha", "share_type_pin": "Zvolená poloha", "share_type_prompt": "Jaký typ polohy chcete sdílet?", - "stop_and_close": "Zastavit a zavřít", "toggle_attribution": "Přepnout atribut" }, "member_list": { @@ -1789,13 +1772,11 @@ }, "right_panel": { "add_integrations": "Přidat widgety, propojení a boty", - "export_chat_button": "Exportovat chat", "files_button": "Soubory", "pinned_messages": { "limits": { "other": "Můžete připnout až %(count)s widgetů" - }, - "title": "Připnuté zprávy" + } }, "pinned_messages_button": "Připnuto", "poll": { @@ -1831,8 +1812,7 @@ }, "video_room_chat": { "title": "Chatovat" - }, - "widgets_section": "Widgety" + } }, "room": { "3pid_invite_email_not_found_account": "Tato pozvánka byla odeslána na adresu %(email)s, která není spojena s vaším účtem", @@ -1853,7 +1833,6 @@ "low_priority": "Nízká priorita", "mark_read": "Označit jako přečtené", "mark_unread": "Označit jako nepřečtené", - "mentions_only": "Pouze zmínky", "notifications_default": "Odpovídá výchozímu nastavení", "notifications_mute": "Ztlumit místnost", "title": "Možnosti místnosti", @@ -1896,23 +1875,12 @@ "forget_room": "Zapomenout na tuto místnost", "forget_space": "Zapomenout tento prostor", "header": { - "close_call_button": "Zavřít hovor", - "forget_room_button": "Zapomenout místnost", - "hide_widgets_button": "Skrýt widgety", "n_people_asking_to_join": { "one": "Žádá o vstup", "few": "%(count)s lidé žádají o vstup", "other": "%(count)s lidí žádá o vstup" }, - "room_is_public": "Tato místnost je veřejná", - "show_widgets_button": "Zobrazit widgety", - "video_call_button_ec": "Videohovor (%(brand)s)", - "video_call_button_jitsi": "Videohovor (Jitsi)", - "video_call_button_legacy": "Zastaralý způsob videohovoru", - "video_call_ec_change_layout": "Změnit rozvržení", - "video_call_ec_layout_freedom": "Svoboda", - "video_call_ec_layout_spotlight": "Reflektor", - "video_room_view_chat_button": "Zobrazit časovou osu konverzace" + "room_is_public": "Tato místnost je veřejná" }, "header_face_pile_tooltip": "Přepnout seznam členů", "header_untrusted_label": "Nedůvěryhodné", @@ -1947,7 +1915,6 @@ "inviter_unknown": "Neznámý", "invites_you_text": " vás zve", "join_button_account": "Zaregistrovat se", - "join_failed_enable_video_rooms": "Pro vstup, povolte prosím nejprve video místnosti v Experimentálních funkcích", "join_failed_needs_invite": "Pro zobrazení %(roomName)s potřebujete pozvánku", "join_the_discussion": "Zapojit se do diskuze", "join_title": "Připojte se k místnosti a zúčastněte se", @@ -1990,13 +1957,8 @@ "rejoin_button": "Znovu vstoupit", "search": { "all_rooms_button": "Vyhledávat ve všech místnostech", - "result_count": { - "other": "(~%(count)s výsledků)", - "one": "(~%(count)s výsledek)" - }, "this_room_button": "Vyhledávat v této místnosti" }, - "show_labs_settings": "Zobrazit nastavení Experimentálních funkcí", "status_bar": { "delete_all": "Smazat všechny", "exceeded_resource_limit": "Vaše zpráva nebyla odeslána, protože tento domovský server dosáhl limitu svých zdrojů. Pro další využívání služby prosím kontaktujte jejího správce.", @@ -2028,7 +1990,6 @@ }, "uploading_single_file": "Nahrávání %(filename)s" }, - "view_failed_enable_video_rooms": "Pro zobrazení, povolte prosím nejprve video místnosti v Experimentálních funkcích", "waiting_for_join_subtitle": "Jakmile se pozvaní uživatelé připojí k %(brand)s, budete moci chatovat a místnost bude koncově šifrovaná", "waiting_for_join_title": "Čekání na připojení uživatelů k %(brand)s" }, diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 26abbe22f2..cbd2962fe2 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -861,16 +861,6 @@ "incompatible_database_disable": "Mit deaktivierter Verschlüsselung fortfahren", "incompatible_database_sign_out_description": "Um zu vermeiden, dass dein Verlauf verloren geht, musst du deine Raumschlüssel exportieren, bevor du dich abmeldest. Dazu musst du auf die neuere Version von %(brand)s zurückgehen", "incompatible_database_title": "Inkompatible Datenbanken", - "key_signature_upload_cancelled": "Hochladen der Signatur abgebrochen", - "key_signature_upload_completed": "Hochladen abgeschlossen", - "key_signature_upload_failed": "Hochladen nicht möglich", - "key_signature_upload_failed_body": "%(brand)s hat einen Fehler festgestellt beim hochladen von:", - "key_signature_upload_failed_cross_signing_key_signature": "Eine neue Cross-Signing-Schlüsselsignatur", - "key_signature_upload_failed_device_cross_signing_key_signature": "Eine Geräte Schlüssel Signatur", - "key_signature_upload_failed_key_signature": "Eine Schlüssel Signatur", - "key_signature_upload_failed_master_key_signature": "Eine neue Hauptschlüssel Signatur", - "key_signature_upload_failed_title": "Hochladen der Signatur fehlgeschlagen", - "key_signature_upload_success_title": "Signatur erfolgreich hochgeladen", "messages_not_secure": { "cause_1": "Dein Heim-Server", "cause_2": "Der Heim-Server der Person, die du verifizierst", @@ -886,8 +876,6 @@ "warning": "Wenn du die neue Wiederherstellungsmethode nicht festgelegt hast, versucht ein Angreifer möglicherweise, auf dein Konto zuzugreifen. Ändere dein Kontopasswort und lege sofort eine neue Wiederherstellungsmethode in den Einstellungen fest." }, "not_supported": "", - "old_version_detected_description": "Es wurden Daten von einer älteren Version von %(brand)s entdeckt. Dies wird zu Fehlern in der Ende-zu-Ende-Verschlüsselung der älteren Version geführt haben. Ende-zu-Ende verschlüsselte Nachrichten, die ausgetauscht wruden, während die ältere Version genutzt wurde, werden in dieser Version nicht entschlüsselbar sein. Es kann auch zu Fehlern mit Nachrichten führen, die mit dieser Version versendet werden. Wenn du Probleme feststellst, melde dich ab und wieder an. Um die Historie zu behalten, ex- und reimportiere deine Schlüssel.", - "old_version_detected_title": "Alte Kryptografiedaten erkannt", "recovery_method_removed": { "description_1": "In dieser Sitzung wurde festgestellt, dass deine Sicherheitsphrase und dein Schlüssel für sichere Nachrichten entfernt wurden.", "description_2": "Wenn du dies versehentlich getan hast, kannst du in dieser Sitzung \"sichere Nachrichten\" einrichten, die den Nachrichtenverlauf dieser Sitzung mit einer neuen Wiederherstellungsmethode erneut verschlüsseln.", @@ -1406,14 +1394,12 @@ "location_share_live_description": "Vorläufige Implementierung: Standorte verbleiben im Raumverlauf.", "mjolnir": "Neue Methoden, Personen zu blockieren", "msc3531_hide_messages_pending_moderation": "Erlaube Moderatoren, noch nicht moderierte Nachrichten auszublenden.", - "new_room_decoration_ui": "In aktiver Entwicklung, neue Raumkopfzeile & Detailoberfläche", "notification_settings": "Neue Benachrichtigungseinstellungen", "notification_settings_beta_caption": "Einen einfacheren Weg um die Einstellungen für Benachrichtigungen zu ändern vorstellen. Passe Deine %(brand)s so an wie Du willst.", "notification_settings_beta_title": "Benachrichtigungseinstellungen", "notifications": "Benachrichtigungen in der Kopfleiste des Raums anschalten", "oidc_native_flow": "Native OIDC Authentifizierung", "oidc_native_flow_description": "⚠ Warnung: Experimentell. Nutze OIDC native Authentifizierung wenn dies vom Server unterstützt wird.", - "pinning": "Nachrichten anheften", "render_reaction_images": "Benutzerdefinierte Bilder in Reaktionen anzeigen", "render_reaction_images_description": "Werden manchmal auch als „benutzerdefinierte Emojis“ bezeichnet.", "report_to_moderators": "An Raummoderation melden", @@ -1499,9 +1485,7 @@ "error_send_description": "%(brand)s konnte deinen Standort nicht senden. Bitte versuche es später erneut.", "error_send_title": "Wir konnten deinen Standort nicht senden", "error_sharing_live_location": "Ein Fehler ist während des Teilens deines Echtzeit-Standorts aufgetreten", - "error_sharing_live_location_try_again": "Ein Fehler ist während des Teilens deines Echtzeit-Standorts aufgetreten, bitte versuche es erneut", "error_stopping_live_location": "Ein Fehler ist während des Beendens deines Echtzeit-Standorts aufgetreten", - "error_stopping_live_location_try_again": "Ein Fehler ist während des Beendens deines Echtzeit-Standorts aufgetreten, bitte versuche es erneut", "expand_map": "Karte vergrößern", "failed_generic": "Standort konnte nicht abgerufen werden. Bitte versuche es später erneut.", "failed_load_map": "Karte kann nicht geladen werden", @@ -1531,7 +1515,6 @@ "share_type_own": "Mein Standort", "share_type_pin": "Standort setzen", "share_type_prompt": "Wie willst du deinen Standort teilen?", - "stop_and_close": "Beenden und schließen", "toggle_attribution": "Info ein-/ausblenden" }, "member_list": { @@ -1775,13 +1758,11 @@ }, "right_panel": { "add_integrations": "Widgets, Brücken und Bots hinzufügen", - "export_chat_button": "Unterhaltung exportieren", "files_button": "Dateien", "pinned_messages": { "limits": { "other": "Du kannst nur %(count)s Widgets anheften" - }, - "title": "Angeheftete Nachrichten" + } }, "pinned_messages_button": "Angeheftet", "poll": { @@ -1817,8 +1798,7 @@ }, "video_room_chat": { "title": "Unterhaltung" - }, - "widgets_section": "Widgets" + } }, "room": { "3pid_invite_email_not_found_account": "Diese Einladung wurde an die E-Mail-Adresse %(email)s gesendet, die nicht zu deinem Konto gehört", @@ -1838,7 +1818,6 @@ "forget": "Raum vergessen", "low_priority": "Niedrige Priorität", "mark_read": "Als gelesen markieren", - "mentions_only": "Nur Erwähnungen", "notifications_default": "Standardeinstellung verwenden", "notifications_mute": "Raum stumm stellen", "title": "Raumoptionen", @@ -1881,21 +1860,11 @@ "forget_room": "Diesen Raum entfernen", "forget_space": "Diesen Space vergessen", "header": { - "close_call_button": "Anruf schließen", - "forget_room_button": "Raum entfernen", - "hide_widgets_button": "Widgets verstecken", "n_people_asking_to_join": { "one": "Möchte beitreten", "other": "%(count)s Personen möchten beitreten" }, - "room_is_public": "Dieser Raum ist öffentlich", - "show_widgets_button": "Widgets anzeigen", - "video_call_button_ec": "Videoanruf (%(brand)s)", - "video_call_button_jitsi": "Videoanruf (Jitsi)", - "video_call_ec_change_layout": "Anordnung ändern", - "video_call_ec_layout_freedom": "Freiraum", - "video_call_ec_layout_spotlight": "Rampenlicht", - "video_room_view_chat_button": "Nachrichtenverlauf anzeigen" + "room_is_public": "Dieser Raum ist öffentlich" }, "header_untrusted_label": "Nicht vertrauenswürdig", "inaccessible": "Dieser Raum oder Space ist im Moment nicht zugänglich.", @@ -1929,7 +1898,6 @@ "inviter_unknown": "Unbekannt", "invites_you_text": "Du wirst von eingeladen", "join_button_account": "Registrieren", - "join_failed_enable_video_rooms": "Zum Betreten, aktiviere bitte Videoräume in den Laboreinstellungen", "join_failed_needs_invite": "Um %(roomName)s zu betrachten, benötigst du eine Einladung", "join_the_discussion": "An Diskussion teilnehmen", "join_title": "Betrete den Raum, um teilzunehmen", @@ -1972,13 +1940,8 @@ "rejoin_button": "Erneut betreten", "search": { "all_rooms_button": "Alle Räume durchsuchen", - "result_count": { - "one": "(~%(count)s Ergebnis)", - "other": "(~%(count)s Ergebnisse)" - }, "this_room_button": "Diesen Raum durchsuchen" }, - "show_labs_settings": "Zeige die \"Labor\" Einstellungen", "status_bar": { "delete_all": "Alle löschen", "exceeded_resource_limit": "Deine Nachricht wurde nicht gesendet, weil dieser Heim-Server ein Ressourcen-Limit erreicht hat. Bitte kontaktiere deine Systemadministration, um diesen Dienst weiterzunutzen.", @@ -2009,7 +1972,6 @@ }, "uploading_single_file": "%(filename)s wird hochgeladen" }, - "view_failed_enable_video_rooms": "Zum Anzeigen, aktiviere bitte Videoräume in den Laboreinstellungen", "waiting_for_join_subtitle": "Sobald eingeladene Benutzer %(brand)s beigetreten sind, werdet ihr euch unterhalten können und der Raum wird Ende-zu-Ende-verschlüsselt sein", "waiting_for_join_title": "Warte darauf, dass Benutzer %(brand)s beitreten" }, @@ -3119,6 +3081,7 @@ "disambiguated_profile": "%(displayName)s (%(matrixId)s)", "download_action_decrypting": "Entschlüsseln", "download_action_downloading": "Herunterladen", + "e2e_state": "Status der Ende zu Ende Verschlüssellung", "edits": { "tooltip_label": "Am %(date)s geändert. Klicke, um Änderungen anzuzeigen.", "tooltip_sub": "Klicke, um Änderungen anzuzeigen", diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index e41d10084b..40c0469436 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -716,16 +716,6 @@ "incompatible_database_disable": "Συνέχεια με Απενεργοποίηση Κρυπτογράφησης", "incompatible_database_sign_out_description": "Για να αποφύγετε να χάσετε το ιστορικό των συνομιλιών σας, πρέπει να εξαγάγετε τα κλειδιά του δωματίου σας πριν αποσυνδεθείτε. Για να το κάνετε αυτό, θα χρειαστεί να επιστρέψετε στη νεότερη έκδοση του %(brand)s", "incompatible_database_title": "Μη συμβατή Βάση Δεδομένων", - "key_signature_upload_cancelled": "Ακυρώθηκε η μεταφόρτωση υπογραφής", - "key_signature_upload_completed": "Η μεταφόρτωση ολοκληρώθηκε", - "key_signature_upload_failed": "Αδυναμία μεταφόρτωσης", - "key_signature_upload_failed_body": "Το %(brand)s αντιμετώπισε ένα σφάλμα κατά τη μεταφόρτωση του:", - "key_signature_upload_failed_cross_signing_key_signature": "μια νέα υπογραφή κλειδιού διασταυρούμενης υπογραφής", - "key_signature_upload_failed_device_cross_signing_key_signature": "μια υπογραφή διασταυρούμενης υπογραφής συσκευής", - "key_signature_upload_failed_key_signature": "μια υπογραφή κλειδιού", - "key_signature_upload_failed_master_key_signature": "μια νέα υπογραφή κύριου κλειδιού", - "key_signature_upload_failed_title": "Αποτυχία μεταφόρτωσης υπογραφής", - "key_signature_upload_success_title": "Επιτυχία μεταφόρτωσης υπογραφής", "messages_not_secure": { "cause_1": "Ο κεντρικός σας διακομιστής", "cause_2": "Ο κεντρικός διακομιστής στον οποίο είναι συνδεδεμένος ο χρήστης που επαληθεύετε", @@ -741,8 +731,6 @@ "warning": "Εάν δεν έχετε ορίσει τη νέα μέθοδο ανάκτησης, ένας εισβολέας μπορεί να προσπαθεί να αποκτήσει πρόσβαση στον λογαριασμό σας. Αλλάξτε τον κωδικό πρόσβασης του λογαριασμού σας και ορίστε μια νέα μέθοδο ανάκτησης αμέσως στις Ρυθμίσεις." }, "not_supported": "<δεν υποστηρίζεται>", - "old_version_detected_description": "Έχουν εντοπιστεί δεδομένα από μια παλαιότερη έκδοση του %(brand)s. Αυτό θα έχει προκαλέσει δυσλειτουργία της κρυπτογράφησης από άκρο σε άκρο στην παλαιότερη έκδοση. Τα κρυπτογραφημένα μηνύματα από άκρο σε άκρο που ανταλλάχθηκαν πρόσφατα κατά τη χρήση της παλαιότερης έκδοσης ενδέχεται να μην μπορούν να αποκρυπτογραφηθούν σε αυτήν την έκδοση. Αυτό μπορεί επίσης να προκαλέσει την αποτυχία των μηνυμάτων που ανταλλάσσονται με αυτήν την έκδοση. Εάν αντιμετωπίζετε προβλήματα, αποσυνδεθείτε και συνδεθείτε ξανά. Για να διατηρήσετε το ιστορικό μηνυμάτων, εξάγετε και εισαγάγετε ξανά τα κλειδιά σας.", - "old_version_detected_title": "Εντοπίστηκαν παλιά δεδομένα κρυπτογράφησης", "recovery_method_removed": { "description_1": "Αυτή η συνεδρία εντόπισε ότι η φράση ασφαλείας σας και το κλειδί για τα ασφαλή μηνύματα σας έχουν αφαιρεθεί.", "description_2": "Εάν το κάνατε κατά λάθος, μπορείτε να ρυθμίσετε τα Ασφαλή Μηνύματα σε αυτήν τη συνεδρία, τα οποία θα κρυπτογραφούν εκ νέου το ιστορικό μηνυμάτων αυτής της συνεδρίας με μια νέα μέθοδο ανάκτησης.", @@ -1169,7 +1157,6 @@ "latex_maths": "Εμφανίστε μαθηματικά LaTeX σε μηνύματα", "leave_beta": "Αποχώρηση από τη beta", "msc3531_hide_messages_pending_moderation": "Επιτρέψτε στους επόπτες να αποκρύψουν μηνύματα που βρίσκονται σε εκκρεμότητα.", - "pinning": "Καρφίτσωμα Μηνυμάτων", "video_rooms": "Δωμάτια βίντεο", "video_rooms_a_new_way_to_chat": "Ένας νέος τρόπος για συνομιλία μέσω φωνής και βίντεο με το %(brand)s.", "video_rooms_beta": "Οι αίθουσες βίντεο είναι μια λειτουργία beta", @@ -1234,7 +1221,6 @@ "error_fetch_location": "Δεν ήταν δυνατή η ανάκτηση της τοποθεσίας", "error_send_description": "Το %(brand)s δεν μπόρεσε να στείλει την τοποθεσία σας. Παρακαλώ δοκιμάστε ξανά αργότερα.", "error_send_title": "Αδυναμία αποστολής της τοποθεσίας σας", - "error_stopping_live_location_try_again": "Παρουσιάστηκε σφάλμα κατά τη διακοπή της ζωντανής τοποθεσίας σας, δοκιμάστε ξανά", "expand_map": "Ανάπτυξη χάρτη", "failed_generic": "Αποτυχία λήψης της τοποθεσίας σας. Παρακαλώ δοκιμάστε ξανά αργότερα.", "failed_load_map": "Αδυναμία φόρτωσης χάρτη", @@ -1424,13 +1410,11 @@ }, "right_panel": { "add_integrations": "Προσθήκη μικροεφαρμογών, γεφυρών & bots", - "export_chat_button": "Εξαγωγή συνομιλίας", "files_button": "Αρχεία", "pinned_messages": { "limits": { "other": "Μπορείτε να καρφιτσώσετε μόνο έως %(count)s μικρεοεφαρμογές" - }, - "title": "Καρφιτσωμένα μηνύματα" + } }, "pinned_messages_button": "Καρφιτσωμένο", "poll": { @@ -1444,8 +1428,7 @@ }, "video_room_chat": { "title": "Συνομιλία" - }, - "widgets_section": "Μικροεφαρμογές" + } }, "room": { "3pid_invite_email_not_found_account": "Αυτή η πρόσκληση στάλθηκε στο %(email)s που δεν σχετίζεται με τον λογαριασμό σας", @@ -1464,7 +1447,6 @@ "favourite": "Αγαπημένο", "forget": "Ξεχάστε το δωμάτιο", "low_priority": "Χαμηλή προτεραιότητα", - "mentions_only": "Αναφορές μόνο", "title": "Επιλογές δωματίου", "unfavourite": "Αγαπημένα" }, @@ -1493,10 +1475,7 @@ "forget_room": "Ξεχάστε αυτό το δωμάτιο", "forget_space": "Ξεχάστε αυτόν τον χώρο", "header": { - "forget_room_button": "Αγνόηση δωματίου", - "hide_widgets_button": "Απόκρυψη μικροεφαρμογών", - "room_is_public": "Αυτό το δωμάτιο είναι δημόσιο", - "show_widgets_button": "Εμφάνιση μικροεφαρμογών" + "room_is_public": "Αυτό το δωμάτιο είναι δημόσιο" }, "inaccessible": "Αυτό το δωμάτιο ή ο χώρος δεν είναι προσβάσιμος αυτήν τη στιγμή.", "inaccessible_name": "Το %(roomName)s δεν είναι προσβάσιμο αυτή τη στιγμή.", @@ -1527,7 +1506,6 @@ "inviter_unknown": "Άγνωστο", "invites_you_text": " σας προσκαλεί", "join_button_account": "Εγγραφή", - "join_failed_enable_video_rooms": "Για να συμμετέχετε, ενεργοποιήστε πρώτα τις αίθουσες βίντεο στο Labs", "join_failed_needs_invite": "Για να δείτε το %(roomName)s, χρειάζεστε μια πρόσκληση", "join_the_discussion": "Λάβετε μέρος στη συζήτηση", "join_title_account": "Συμμετοχή στη συζήτηση με λογιαριασμό", @@ -1553,13 +1531,6 @@ "not_found_title_name": "Το %(roomName)s δεν υπάρχει.", "peek_join_prompt": "Κάνετε προεπισκόπηση στο %(roomName)s. Θέλετε να συμμετάσχετε;", "rejoin_button": "Επανασύνδεση", - "search": { - "result_count": { - "one": "(~%(count)s αποτέλεσμα)", - "other": "(~%(count)s αποτελέσματα)" - } - }, - "show_labs_settings": "Εμφάνιση ρυθμίσεων Labs", "status_bar": { "delete_all": "Διαγραφή όλων", "exceeded_resource_limit": "Το μήνυμά σας δεν στάλθηκε επειδή αυτός ο κεντρικός διακομιστής έχει υπερβεί ένα όριο πόρων. Παρακαλώ επικοινωνήστε με τον διαχειριστή για να συνεχίσετε να χρησιμοποιείτε την υπηρεσία.", @@ -1587,8 +1558,7 @@ "one": "Γίνεται αποστολή του %(filename)s και %(count)s υπολοίπα" }, "uploading_single_file": "Γίνεται αποστολή του %(filename)s" - }, - "view_failed_enable_video_rooms": "Για προβολή, ενεργοποιήστε πρώτα τις αίθουσες βίντεο στο Labs" + } }, "room_list": { "add_room_label": "Προσθήκη δωματίου", diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json index 75afc3a4f3..ca4084a0ed 100644 --- a/src/i18n/strings/eo.json +++ b/src/i18n/strings/eo.json @@ -645,16 +645,6 @@ "incompatible_database_disable": "Pluigi sen ĉifrado", "incompatible_database_sign_out_description": "Por eviti perdon de via babila historio, vi devas elporti la ŝlosilojn de viaj ĉambroj antaŭ adiaŭo. Por tio vi bezonos reveni al la pli nova versio de %(brand)s", "incompatible_database_title": "Neakorda datumbazo", - "key_signature_upload_cancelled": "Alŝuto de subskribo nuliĝis", - "key_signature_upload_completed": "Alŝuto finiĝis", - "key_signature_upload_failed": "Ne povas alŝuti", - "key_signature_upload_failed_body": "%(brand)s eraris dum alŝuto de:", - "key_signature_upload_failed_cross_signing_key_signature": "nova subskribo de delega ŝlosilo", - "key_signature_upload_failed_device_cross_signing_key_signature": "delega subskribo de aparato", - "key_signature_upload_failed_key_signature": "ŝlosila subskribo", - "key_signature_upload_failed_master_key_signature": "nova ĉefŝlosila subskribo", - "key_signature_upload_failed_title": "Alŝuto de subskribo malsukcesis", - "key_signature_upload_success_title": "Alŝuto de subskribo sukcesis", "messages_not_secure": { "cause_1": "Via hejmservilo", "heading": "Unu el la jenaj eble estas malkonfidencigita:", @@ -667,8 +657,6 @@ "warning": "Se vi ne agordis la novan rehavan metodon, eble atakanto provas aliri vian konton. Vi tuj ŝanĝu la pasvorton de via konto, kaj agordu novan rehavan metodon en la agordoj." }, "not_supported": "", - "old_version_detected_description": "Datumoj el malnova versio de %(brand)s troviĝis. Ĉi tio malfunkciigos tutvojan ĉifradon en la malnova versio. Tutvoje ĉifritaj mesaĝoj interŝanĝitaj freŝtempe per la malnova versio eble ne malĉifreblos. Tio povas kaŭzi malsukceson ankaŭ al mesaĝoj interŝanĝitaj kun tiu ĉi versio. Se vin trafos problemoj, adiaŭu kaj resalutu. Por reteni mesaĝan historion, elportu kaj reenportu viajn ŝlosilojn.", - "old_version_detected_title": "Malnovaj datumoj de ĉifroteĥnikaro troviĝis", "recovery_method_removed": { "description_1": "Tiu ĉi salutaĵo trovis, ke viaj Sekureca frazo kaj ŝlosilo por Sekuraj mesaĝoj foriĝis.", "description_2": "Se vi faris tion akcidente, vi povas agordi Sekurajn mesaĝojn en ĉi tiu salutaĵo, kio reĉifros la historion de mesaj de ĉi tiu salutaĵo kun nova rehava metodo.", @@ -1064,7 +1052,6 @@ "leave_beta": "Ĉesi provadon", "location_share_live": "Viva Loka Kundivido", "mjolnir": "Novaj manieroj ignori personojn", - "pinning": "Fiksado de mesaĝoj", "report_to_moderators": "Raportu al moderigaĵoj", "video_rooms": "Videoĉambroj", "video_rooms_a_new_way_to_chat": "Nova maniero babili per voĉo kaj video en %(brand)s.", @@ -1287,15 +1274,12 @@ }, "right_panel": { "add_integrations": "Aldonu fenestraĵojn, pontojn, kaj robotojn", - "export_chat_button": "Eksporti babilejon", "files_button": "Dosieroj", "pinned_messages": { "limits": { "other": "Vi povas fiksi maksimume %(count)s fenestraĵojn" - }, - "title": "Fiksitaj mesaĝoj" - }, - "widgets_section": "Fenestraĵoj" + } + } }, "room": { "3pid_invite_email_not_found_account_room": "Ĉi tiu invito al %(roomName)s sendiĝis al %(email)s, kiu ne estas ligita al via konto", @@ -1331,10 +1315,7 @@ "failed_reject_invite": "Malsukcesis rifuzi inviton", "forget_room": "Forgesi ĉi tiun ĉambron", "header": { - "forget_room_button": "Forgesi ĉambron", - "hide_widgets_button": "Kaŝi fenestraĵojn", - "room_is_public": "Ĉi tiu ĉambro estas publika", - "show_widgets_button": "Montri fenestraĵojn" + "room_is_public": "Ĉi tiu ĉambro estas publika" }, "inaccessible_name": "%(roomName)s ne estas atingebla nun.", "intro": { @@ -1375,12 +1356,6 @@ "not_found_title_name": "%(roomName)s ne ekzistas.", "peek_join_prompt": "Vi antaŭrigardas ĉambron %(roomName)s. Ĉu vi volas aliĝi?", "rejoin_button": "Re-aliĝi", - "search": { - "result_count": { - "other": "(~%(count)s rezultoj)", - "one": "(~%(count)s rezulto)" - } - }, "status_bar": { "delete_all": "Forigi ĉiujn", "exceeded_resource_limit": "Via mesaĝo ne sendiĝis, ĉar tiu ĉi hejmservilo atingis rimedan limon. Bonvolu kontakti vian administranton de servo por plue uzadi la servon.", diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 0895426524..442a71c839 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -798,16 +798,6 @@ "incompatible_database_disable": "Seguir con el cifrado desactivado", "incompatible_database_sign_out_description": "Para evitar perder tu historial de chat, debes exportar las claves de la sala antes de salir. Debes volver a la versión actual de %(brand)s para esto", "incompatible_database_title": "Base de datos incompatible", - "key_signature_upload_cancelled": "Subida de firma cancelada", - "key_signature_upload_completed": "Subida completada", - "key_signature_upload_failed": "No se ha podido enviar", - "key_signature_upload_failed_body": "%(brand)s encontró un error durante la carga de:", - "key_signature_upload_failed_cross_signing_key_signature": "una nueva firma de código de firma cruzada", - "key_signature_upload_failed_device_cross_signing_key_signature": "una firma para la firma cruzada de dispositivos", - "key_signature_upload_failed_key_signature": "un firma de clave", - "key_signature_upload_failed_master_key_signature": "una nueva firma de llave maestra", - "key_signature_upload_failed_title": "Subida de firma ha fallado", - "key_signature_upload_success_title": "Subida de firma exitosa", "messages_not_secure": { "cause_1": "Tu servidor base", "cause_2": "El servidor base del usuario al que estás invitando", @@ -823,8 +813,6 @@ "warning": "Si no configuró el nuevo método de recuperación, es posible que un atacante esté intentando acceder a su cuenta. Cambie la contraseña de su cuenta y configure un nuevo método de recuperación inmediatamente en Configuración." }, "not_supported": "", - "old_version_detected_description": "Se detectó una versión más antigua de %(brand)s. Esto habrá provocado que la criptografía de extremo a extremo funcione incorrectamente en la versión más antigua. Los mensajes cifrados de extremo a extremo intercambiados recientemente mientras usaba la versión más antigua puede que no sean descifrables con esta versión. Esto también puede hacer que fallen con la más reciente. Si experimenta problemas, desconecte y vuelva a ingresar. Para conservar el historial de mensajes, exporte y vuelva a importar sus claves.", - "old_version_detected_title": "Se detectó información de criptografía antigua", "recovery_method_removed": { "description_1": "Esta sesión ha detectado que tu frase de seguridad y clave para mensajes seguros ha sido eliminada.", "description_2": "Si hizo esto accidentalmente, puede configurar Mensajes seguros en esta sesión que volverá a cifrar el historial de mensajes de esta sesión con un nuevo método de recuperación.", @@ -1308,7 +1296,6 @@ "mjolnir": "Nuevas maneras de ignorar a otras personas", "msc3531_hide_messages_pending_moderation": "Permitir a los moderadores ocultar mensajes a la espera de revisión.", "oidc_native_flow": "Activar flujos de OIDC nativos (en desarrollo)", - "pinning": "Mensajes anclados", "report_to_moderators": "Denunciar ante los moderadores", "report_to_moderators_description": "En las salas que sean compatible con la moderación, el botón de «Denunciar» avisará a los moderadores de la sala.", "sliding_sync": "Modo de sincronización progresiva", @@ -1387,9 +1374,7 @@ "error_send_description": "%(brand)s no ha podido enviar tu ubicación. Por favor, inténtalo de nuevo más tarde.", "error_send_title": "No hemos podido enviar tu ubicación", "error_sharing_live_location": "Ocurrió un error mientras se compartía tu ubicación en tiempo real", - "error_sharing_live_location_try_again": "Ha ocurrido un error al compartir tu ubicación en tiempo real. Por favor, inténtalo de nuevo", "error_stopping_live_location": "Ha ocurrido un error al dejar de compartir tu ubicación en tiempo real", - "error_stopping_live_location_try_again": "Ha ocurrido un error al dejar de compartir tu ubicación en tiempo real. Por favor, inténtalo de nuevo", "expand_map": "Expandir mapa", "failed_generic": "No se ha podido conseguir tu ubicación. Por favor, inténtalo de nuevo más tarde.", "failed_load_map": "No se ha podido cargar el mapa", @@ -1419,7 +1404,6 @@ "share_type_own": "Mi ubicación actual", "share_type_pin": "Elige un punto en el mapa", "share_type_prompt": "¿Qué ubicación quieres compartir?", - "stop_and_close": "Parar y cerrar", "toggle_attribution": "Mostrar/ocultar fuente" }, "member_list": { @@ -1648,13 +1632,11 @@ }, "right_panel": { "add_integrations": "Añadir accesorios, puentes y bots", - "export_chat_button": "Exportar conversación", "files_button": "Archivos", "pinned_messages": { "limits": { "other": "Solo puedes anclar hasta %(count)s accesorios" - }, - "title": "Mensajes fijados" + } }, "pinned_messages_button": "Fijado", "poll": { @@ -1679,8 +1661,7 @@ }, "video_room_chat": { "title": "Conversación" - }, - "widgets_section": "Accesorios" + } }, "room": { "3pid_invite_email_not_found_account": "Esta invitación se envió originalmente a %(email)s, que no está asociada a tu cuenta", @@ -1700,7 +1681,6 @@ "forget": "Olvidar sala", "low_priority": "Prioridad baja", "mark_read": "Marcar como leído", - "mentions_only": "Solo menciones", "notifications_mute": "Silenciar sala", "title": "Opciones de la sala", "unfavourite": "Favorecido" @@ -1734,16 +1714,7 @@ "forget_room": "Olvidar esta sala", "forget_space": "Olvidar este espacio", "header": { - "close_call_button": "Terminar llamada", - "forget_room_button": "Olvidar sala", - "hide_widgets_button": "Ocultar accesorios", - "room_is_public": "Esta sala es pública", - "show_widgets_button": "Mostrar accesorios", - "video_call_button_ec": "Videollamada (%(brand)s)", - "video_call_button_jitsi": "Videollamada (Jitsi)", - "video_call_ec_change_layout": "Cambiar disposición", - "video_call_ec_layout_freedom": "Libertad", - "video_room_view_chat_button": "Ver historial del chat" + "room_is_public": "Esta sala es pública" }, "inaccessible": "Esta sala o espacio no es accesible en este momento.", "inaccessible_name": "%(roomName)s no es accesible en este momento.", @@ -1776,7 +1747,6 @@ "inviter_unknown": "Desconocido", "invites_you_text": " te ha invitado", "join_button_account": "Registrarse", - "join_failed_enable_video_rooms": "Para unirse, por favor activa las salas de vídeo en Labs primero", "join_failed_needs_invite": "Para ver %(roomName)s necesitas una invitación", "join_the_discussion": "Unirme a la Sala", "join_title": "Únete a la sala para participar", @@ -1809,13 +1779,8 @@ "rejoin_button": "Volver a entrar", "search": { "all_rooms_button": "Buscar en todas las salas", - "result_count": { - "other": "(~%(count)s resultados)", - "one": "(~%(count)s resultado)" - }, "this_room_button": "Buscar en esta sala" }, - "show_labs_settings": "Ver ajustes de los experimentos", "status_bar": { "delete_all": "Borrar todo", "exceeded_resource_limit": "Tu mensaje no se ha enviado porque este servidor base ha excedido un límite de recursos. Por favor contacta con el administrador de tu servicio para continuar utilizándolo.", @@ -1845,8 +1810,7 @@ "other": "Subiendo %(filename)s y otros %(count)s" }, "uploading_single_file": "Subiendo %(filename)s" - }, - "view_failed_enable_video_rooms": "Para verla, activa las salas de vídeos en la sección de experimentos de los ajustes" + } }, "room_list": { "add_room_label": "Añadir una sala", diff --git a/src/i18n/strings/et.json b/src/i18n/strings/et.json index e1be11559b..99bf8470bf 100644 --- a/src/i18n/strings/et.json +++ b/src/i18n/strings/et.json @@ -865,16 +865,6 @@ "incompatible_database_disable": "Jätka ilma krüptimiseta", "incompatible_database_sign_out_description": "Selleks, et sa ei kaotaks oma vestluste ajalugu, pead sa eksportima jututoa krüptovõtmed enne välja logimist. Küll, aga pead sa selleks kasutama %(brand)s uuemat versiooni", "incompatible_database_title": "Mitteühilduv andmebaas", - "key_signature_upload_cancelled": "Allkirja üleslaadimine on tühistatud", - "key_signature_upload_completed": "Üleslaadimine valmis", - "key_signature_upload_failed": "Üleslaadimine ei õnnestu", - "key_signature_upload_failed_body": "%(brand)s'is tekkis viga järgneva üleslaadimisel:", - "key_signature_upload_failed_cross_signing_key_signature": "uus risttunnustamise võtme allkiri", - "key_signature_upload_failed_device_cross_signing_key_signature": "seadme risttunnustamise allkiri", - "key_signature_upload_failed_key_signature": "võtme allkiri", - "key_signature_upload_failed_master_key_signature": "uus üldvõtme allkiri", - "key_signature_upload_failed_title": "Allkirja üleslaadimine ei õnnestunud", - "key_signature_upload_success_title": "Allkirja üleslaadimine õnnestus", "messages_not_secure": { "cause_1": "Sinu koduserver", "cause_2": "Sinu poolt verifitseeritava kasutaja koduserver", @@ -890,8 +880,6 @@ "warning": "Kui sa ei ole ise uusi taastamise meetodeid lisanud, siis võib olla tegemist ründega sinu konto vastu. Palun vaheta koheselt oma kasutajakonto salasõna ning määra seadistustes uus taastemeetod." }, "not_supported": "", - "old_version_detected_description": "%(brand)s vanema versiooni andmed on tuvastatud. See kindlasti põhjustab läbiva krüptimise tõrke vanemas versioonis. Läbivalt krüptitud sõnumid, mida on vanema versiooni kasutamise ajal hiljuti vahetatud, ei pruugi selles versioonis olla dekrüptitavad. See võib põhjustada vigu ka selle versiooniga saadetud sõnumite lugemisel. Kui teil tekib probleeme, logige välja ja uuesti sisse. Sõnumite ajaloo säilitamiseks eksportige ja uuesti importige oma krüptovõtmed.", - "old_version_detected_title": "Tuvastasin andmed, mille puhul on kasutatud vanemat tüüpi krüptimist", "recovery_method_removed": { "description_1": "Oleme tuvastanud, et selles sessioonis ei leidu turvafraasi ega krüptitud sõnumite turvavõtit.", "description_2": "Kui sa tegid seda juhuslikult, siis sa võid selles sessioonis uuesti seadistada sõnumite krüptimise, mille tulemusel krüptime uuesti kõik sõnumid ja loome uue taastamise meetodi.", @@ -1413,13 +1401,11 @@ "location_share_live_description": "Tegemist on ajutise ja esialgse lahendusega: asukohad on jututoa ajaloos näha.", "mjolnir": "Uued võimalused osalejate eiramiseks", "msc3531_hide_messages_pending_moderation": "Luba modereerimist ootavate sõnumite peitmist.", - "new_room_decoration_ui": "Uus jututoa päis ja infovaade on hetkel aktiivses arenduses", "notification_settings": "Uued teavituste seadistused", "notification_settings_beta_title": "Teavituste seadistused", "notifications": "Kasuta jututoa päises teavituste riba", "oidc_native_flow": "OIDC-põhine autentimine", "oidc_native_flow_description": "⚠ HOIATUS: Kasuta OIDC liidestust, kui server seda võimaldab (aktiivselt arendamisel).", - "pinning": "Sõnumite esiletõstmine", "report_to_moderators": "Teata moderaatoritele", "report_to_moderators_description": "Kui jututoas on modereerimine kasutusel, siis nupust „Teata sisust“ avaneva vormi abil saad jututoa reegleid rikkuvast sisust teatada moderaatoritele.", "sliding_sync": "Järkjärgulise sünkroniseerimise režiim", @@ -1501,9 +1487,7 @@ "error_send_description": "%(brand)s ei saanud sinu asukohta edastada. Palun proovi hiljem uuesti.", "error_send_title": "Sinu asukoha saatmine ei õnnestunud", "error_sharing_live_location": "Sinu asukoha jagamisel reaalajas tekkis viga", - "error_sharing_live_location_try_again": "Asukoha reaalajas jagamisel tekkis viga, palun proovi mõne hetke pärast uuesti", "error_stopping_live_location": "Sinu asukoha reaalajas jagamise lõpetamisel tekkis viga", - "error_stopping_live_location_try_again": "Asukoha jagamise lõpetamisel tekkis viga, palun proovi mõne hetke pärast uuesti", "expand_map": "Kuva kaart laiemana", "failed_generic": "Asukoha tuvastamine ei õnnestunud. Palun proovi hiljem uuesti.", "failed_load_map": "Kaardi laadimine ei õnnestu", @@ -1533,7 +1517,6 @@ "share_type_own": "Minu praegune asukoht", "share_type_pin": "Märgi nööpnõelaga", "share_type_prompt": "Missugust asukohta sa soovid jagada?", - "stop_and_close": "Peata ja sulge", "toggle_attribution": "Lülita omistamine sisse või välja" }, "member_list": { @@ -1772,13 +1755,11 @@ }, "right_panel": { "add_integrations": "Lisa vidinaid, võrgusildu ja roboteid", - "export_chat_button": "Ekspordi vestlus", "files_button": "Failid", "pinned_messages": { "limits": { "other": "Sa saad kinnitada kuni %(count)s vidinat" - }, - "title": "Klammerdatud sõnumid" + } }, "pinned_messages_button": "Klammerdatud", "poll": { @@ -1814,8 +1795,7 @@ }, "video_room_chat": { "title": "Vestle" - }, - "widgets_section": "Vidinad" + } }, "room": { "3pid_invite_email_not_found_account": "See kutse saadeti e-posti aadressile %(email)s, mis ei ole seotud sinu kontoga", @@ -1835,7 +1815,6 @@ "forget": "Unusta jututuba ära", "low_priority": "Vähetähtis", "mark_read": "Märgi loetuks", - "mentions_only": "Ainult mainimised", "notifications_default": "Sobita vaikimisi seadistusega", "notifications_mute": "Summuta jututuba", "title": "Jututoa eelistused", @@ -1878,17 +1857,7 @@ "forget_room": "Unusta see jututuba", "forget_space": "Unusta see kogukond", "header": { - "close_call_button": "Lõpeta kõne", - "forget_room_button": "Unusta jututuba", - "hide_widgets_button": "Peida vidinad", - "room_is_public": "See jututuba on avalik", - "show_widgets_button": "Näita vidinaid", - "video_call_button_ec": "Videokõne (%(brand)s)", - "video_call_button_jitsi": "Videokõne (Jitsi)", - "video_call_ec_change_layout": "Muuda paigutust", - "video_call_ec_layout_freedom": "Vabadus", - "video_call_ec_layout_spotlight": "Rambivalgus", - "video_room_view_chat_button": "Vaata vestluse ajajoont" + "room_is_public": "See jututuba on avalik" }, "inaccessible": "See jututuba või kogukond pole hetkel ligipääsetav.", "inaccessible_name": "Jututuba %(roomName)s ei ole parasjagu kättesaadav.", @@ -1921,7 +1890,6 @@ "inviter_unknown": "Teadmata olek", "invites_you_text": " saatis sulle kutse", "join_button_account": "Registreeru", - "join_failed_enable_video_rooms": "Liitumiseks võta seadistustest katsete lehelt videotoad kasutusele", "join_failed_needs_invite": "%(roomName)s jututoaga tutvumiseks vajad sa kutset", "join_the_discussion": "Liitu vestlusega", "join_title": "Osalemiseks liitu jututoaga", @@ -1962,13 +1930,8 @@ "rejoin_button": "Liitu uuesti", "search": { "all_rooms_button": "Otsi kõikidest jututubadest", - "result_count": { - "other": "(~%(count)s tulemust)", - "one": "(~%(count)s tulemus)" - }, "this_room_button": "Otsi sellest jututoast" }, - "show_labs_settings": "Näita seadistusi", "status_bar": { "delete_all": "Kustuta kõik", "exceeded_resource_limit": "Sinu sõnumit ei saadetud, kuna see koduserver on ületanud on ületanud ressursipiirangu. Teenuse kasutamiseks palun võta ühendust serveri haldajaga.", @@ -1999,7 +1962,6 @@ }, "uploading_single_file": "Laadin üles %(filename)s" }, - "view_failed_enable_video_rooms": "Jututoa nägemiseks võta seadistustest katsete lehelt videotoad kasutusele", "waiting_for_join_subtitle": "Kui kutse saanud kasutajad on liitunud %(brand)s'ga, siis saad sa nendega suhelda ja jututuba on läbivalt krüptitud", "waiting_for_join_title": "Kasutajate liitumise ootel %(brand)s'ga" }, diff --git a/src/i18n/strings/fa.json b/src/i18n/strings/fa.json index 99d60e0474..98141dd898 100644 --- a/src/i18n/strings/fa.json +++ b/src/i18n/strings/fa.json @@ -606,16 +606,6 @@ "incompatible_database_disable": "با رمزنگاری غیرفعال ادامه بده", "incompatible_database_sign_out_description": "برای جلوگیری از دست دادن تاریخچه‌ی گفتگوی خود باید قبل از ورود به برنامه ، کلیدهای اتاق خود را استخراج (Export) کنید. برای این کار باید از نسخه جدیدتر %(brand)s استفاده کنید", "incompatible_database_title": "پایگاه داده ناسازگار", - "key_signature_upload_cancelled": "بارگذاری امضا لغو شد", - "key_signature_upload_completed": "بارگذاری انجام شد", - "key_signature_upload_failed": "بارگذاری امکان پذیر نیست", - "key_signature_upload_failed_body": "%(brand)s در حین بارگذاری این دچار مشکل شد:", - "key_signature_upload_failed_cross_signing_key_signature": "یک کلید امضای متقابل جدید", - "key_signature_upload_failed_device_cross_signing_key_signature": "کلید امضای متقابل یک دستگاه", - "key_signature_upload_failed_key_signature": "یک امضای کلیدی", - "key_signature_upload_failed_master_key_signature": "یک شاه‌کلید جدید", - "key_signature_upload_failed_title": "بارگذاری امضا انجام نشد", - "key_signature_upload_success_title": "موفقیت در بارگذاری امضا", "messages_not_secure": { "cause_1": "سرور شما", "heading": "ممکن است یکی از موارد زیر به در معرض خطر باشد:", @@ -628,8 +618,6 @@ "warning": "اگر روش بازیابی جدیدی را تنظیم نکرده‌اید، ممکن است حمله‌کننده‌ای تلاش کند به حساب کاربری شما دسترسی پیدا کند. لطفا گذرواژه حساب کاربری خود را تغییر داده و فورا یک روش جدیدِ بازیابی در بخش تنظیمات انتخاب کنید." }, "not_supported": "<پشتیبانی نمی‌شود>", - "old_version_detected_description": "داده هایی از نسخه قدیمی %(brand)s شناسایی شده است. این امر باعث اختلال در رمزنگاری سرتاسر در نسخه قدیمی شده است. پیام های رمزگذاری شده سرتاسر که اخیراً رد و بدل شده اند ممکن است با استفاده از نسخه قدیمی رمزگشایی نشوند. همچنین ممکن است پیام های رد و بدل شده با این نسخه با مشکل مواجه شود. اگر مشکلی رخ داد، از سیستم خارج شوید و مجددا وارد شوید. برای حفظ سابقه پیام، کلیدهای خود را خروجی گرفته و دوباره وارد کنید.", - "old_version_detected_title": "داده‌های رمزنگاری قدیمی شناسایی شد", "recovery_method_removed": { "description_1": "نشست فعلی تشخیص داده که عبارت امنیتی و کلید لازم شما برای پیام‌رسانی امن حذف شده‌است.", "description_2": "اگر این کار را به صورت تصادفی انجام دادید، می‌توانید سازوکار پیام امن را برای این نشست تنظیم کرده که باعث می‌شود تمام تاریخچه‌ی این نشست با استفاده از یک روش جدیدِ بازیابی، مجددا رمزشود.", @@ -985,7 +973,6 @@ "join_beta": "اضافه‌شدن به نسخه‌ی بتا", "latex_maths": "نمایش لاتکس ریاضیات در پیام‌ها", "leave_beta": "ترک نسخه‌ی بتا", - "pinning": "پین کردن پیام", "video_rooms": "اتاق های تصویری", "video_rooms_a_new_way_to_chat": "راهکار جدیدی برای گفتگوی صوتی و تصویری در%(brand)sوجود دارد.", "voice_broadcast": "صدای جمعی" @@ -1172,8 +1159,7 @@ "limits": { "other": "فقط می توانید تا %(count)s ابزارک را پین کنید" } - }, - "widgets_section": "ابزارک ها" + } }, "room": { "3pid_invite_email_not_found_account_room": "این دعوت به %(roomName)s به %(email)s ارسال شده است که با حساب شما مرتبط نیست", @@ -1211,10 +1197,7 @@ "failed_reject_invite": "رد دعوتنامه با شکست همراه شد", "forget_room": "فراموش کردن این اتاق", "header": { - "forget_room_button": "فراموش کردن اتاق", - "hide_widgets_button": "پنهان‌کردن ابزارک‌ها", - "room_is_public": "این اتاق عمومی است", - "show_widgets_button": "نمایش ابزارک‌ها" + "room_is_public": "این اتاق عمومی است" }, "inaccessible_name": "در حال حاضر %(roomName)s قابل دسترسی نیست.", "intro": { @@ -1252,12 +1235,6 @@ "not_found_title_name": "%(roomName)s وجود ندارد.", "peek_join_prompt": "شما در حال پیش نمایش %(roomName)s هستید. می خواهید به آن بپیوندید؟", "rejoin_button": "دوباره بپیوندید", - "search": { - "result_count": { - "one": "(~%(count)s نتیجه)", - "other": "(~%(count)s نتیجه)" - } - }, "status_bar": { "delete_all": "حذف همه", "exceeded_resource_limit": "پیام شما ارسال نشد زیرا این سرور از محدودیت منابع فراتر رفته است. لطفاً برای ادامه استفاده از سرویس با مدیر سرور خود تماس بگیرید .", diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json index 0deae167ab..751e3e8815 100644 --- a/src/i18n/strings/fi.json +++ b/src/i18n/strings/fi.json @@ -762,16 +762,6 @@ "incompatible_database_disable": "Jatka salaus poistettuna käytöstä", "incompatible_database_sign_out_description": "Jotta et menetä keskusteluhistoriaasi, sinun täytyy tallentaa huoneen avaimet ennen kuin kirjaudut ulos. Joudut käyttämään uudempaa %(brand)sin versiota tätä varten", "incompatible_database_title": "Yhteensopimaton tietokanta", - "key_signature_upload_cancelled": "Allekirjoituksen lähetys peruutettu", - "key_signature_upload_completed": "Lähetys valmis", - "key_signature_upload_failed": "Lähettäminen ei ole mahdollista", - "key_signature_upload_failed_body": "%(brand)s kohtasi virheen lähettäessään:", - "key_signature_upload_failed_cross_signing_key_signature": "Uusi ristiinvarmennuksen allekirjoitus", - "key_signature_upload_failed_device_cross_signing_key_signature": "laitteen ristiinvarmennuksen allekirjoitus", - "key_signature_upload_failed_key_signature": "avaimen allekirjoitus", - "key_signature_upload_failed_master_key_signature": "uusi pääsalasanan avaintunnus", - "key_signature_upload_failed_title": "Allekirjoituksen lähettäminen epäonnistui", - "key_signature_upload_success_title": "Allekirjoituksen lähettäminen onnistui", "messages_not_secure": { "cause_1": "Kotipalvelimesi", "cause_3": "Sinun tai toisen osapuolen internet-yhteys", @@ -785,8 +775,6 @@ "warning": "Jos et ottanut käyttöön uutta palautustapaa, hyökkääjä saattaa yrittää käyttää tiliäsi. Vaihda tilisi salasana ja aseta uusi palautustapa asetuksissa välittömästi." }, "not_supported": "", - "old_version_detected_description": "Tunnistimme dataa, joka on lähtöisin vanhasta %(brand)sin versiosta. Tämä aiheuttaa toimintahäiriöitä päästä päähän -salauksessa vanhassa versiossa. Viestejä, jotka on salattu päästä päähän -salauksella vanhalla versiolla, ei välttämättä voida purkaa tällä versiolla. Tämä voi myös aiheuttaa epäonnistumisia viestien välityksessä tämän version kanssa. Jos kohtaat ongelmia, kirjaudu ulos ja takaisin sisään. Säilyttääksesi viestihistoriasi, vie salausavaimesi ja tuo ne uudelleen.", - "old_version_detected_title": "Vanhaa salaustietoa havaittu", "recovery_method_removed": { "title": "Palautustapa poistettu", "warning": "Jos et poistanut palautustapaa, hyökkääjä saattaa yrittää käyttää tiliäsi. Vaihda tilisi salasana ja aseta uusi palautustapa asetuksissa välittömästi." @@ -1238,7 +1226,6 @@ "location_share_live_description": "Tilapäinen toteutus. Sijainnit säilyvät huoneen historiassa.", "mjolnir": "Uusia tapoja jättää ihmiset huomiotta", "msc3531_hide_messages_pending_moderation": "Anna moderaattorien piilottaa moderointia odottavia viestejä.", - "pinning": "Viestien kiinnittäminen", "report_to_moderators": "Ilmoita moderaattoreille", "report_to_moderators_description": "Moderointia tukevissa huoneissa väärinkäytökset voi ilmoittaa Ilmoita-painikkeella huoneen moderaattoreille.", "sliding_sync": "Liukuvan synkronoinnin tila", @@ -1328,8 +1315,7 @@ "share_button": "Jaa sijainti", "share_type_own": "Tämänhetkinen sijaintini", "share_type_pin": "Sijoita karttaneula", - "share_type_prompt": "Minkä sijaintityypin haluat jakaa?", - "stop_and_close": "Pysäytä ja sulje" + "share_type_prompt": "Minkä sijaintityypin haluat jakaa?" }, "member_list": { "filter_placeholder": "Suodata huoneen jäseniä", @@ -1544,13 +1530,11 @@ }, "right_panel": { "add_integrations": "Lisää sovelmia, siltoja ja botteja", - "export_chat_button": "Vie keskustelu", "files_button": "Tiedostot", "pinned_messages": { "limits": { "other": "Voit kiinnittää enintään %(count)s sovelmaa" - }, - "title": "Kiinnitetyt viestit" + } }, "pinned_messages_button": "Kiinnitetty", "poll": { @@ -1586,8 +1570,7 @@ }, "video_room_chat": { "title": "Keskustelu" - }, - "widgets_section": "Sovelmat" + } }, "room": { "3pid_invite_email_not_found_account": "Tämä kutsu lähetettiin sähköpostiosoitteeseen %(email)s, joka ei ole yhteydessä tiliisi", @@ -1607,7 +1590,6 @@ "forget": "Unohda huone", "low_priority": "Matala prioriteetti", "mark_read": "Merkitse luetuksi", - "mentions_only": "Vain maininnat", "notifications_mute": "Mykistä huone", "title": "Huoneen asetukset", "unfavourite": "Suositut" @@ -1640,17 +1622,7 @@ "forget_room": "Unohda tämä huone", "forget_space": "Unohda tämä avaruus", "header": { - "close_call_button": "Lopeta puhelu", - "forget_room_button": "Unohda huone", - "hide_widgets_button": "Piilota sovelmat", - "room_is_public": "Tämä huone on julkinen", - "show_widgets_button": "Näytä sovelmat", - "video_call_button_ec": "Videopuhelu (%(brand)s)", - "video_call_button_jitsi": "Videopuhelu (Jitsi)", - "video_call_ec_change_layout": "Vaihda asettelua", - "video_call_ec_layout_freedom": "Vapaus", - "video_call_ec_layout_spotlight": "Valokeila", - "video_room_view_chat_button": "Näytä keskustelun aikajana" + "room_is_public": "Tämä huone on julkinen" }, "inaccessible": "Tämä huone tai avaruus ei ole käytettävissä juuri tällä hetkellä.", "inaccessible_name": "%(roomName)s ei ole saatavilla tällä hetkellä.", @@ -1681,7 +1653,6 @@ "inviter_unknown": "Tuntematon", "invites_you_text": " kutsuu sinut", "join_button_account": "Rekisteröidy", - "join_failed_enable_video_rooms": "Liittyäksesi ota videohuoneet käyttöön laboratorion kautta", "join_failed_needs_invite": "Huoneen %(roomName)s katseluun tarvitaan kutsu", "join_the_discussion": "Liity keskusteluun", "join_title": "Liity huoneeseen osallistuaksesi", @@ -1712,13 +1683,6 @@ "read_topic": "Lue aihe napsauttamalla", "rejecting": "Hylätään kutsua…", "rejoin_button": "Liity uudelleen", - "search": { - "result_count": { - "one": "(~%(count)s tulos)", - "other": "(~%(count)s tulosta)" - } - }, - "show_labs_settings": "Näytä laboratorion asetukset", "status_bar": { "delete_all": "Poista kaikki", "exceeded_resource_limit": "Viestiäsi ei lähetetty, koska tämä kotipalvelin on ylittänyt resurssirajan. Ota yhteyttä palvelun ylläpitäjään jatkaaksesi palvelun käyttämistä.", diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 715374f340..d0ba7174f7 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -901,16 +901,6 @@ "incompatible_database_disable": "Continuer avec le chiffrement désactivé", "incompatible_database_sign_out_description": "Pour éviter de perdre l’historique de vos discussions, vous devez exporter vos clés avant de vous déconnecter. Vous devez revenir à une version plus récente de %(brand)s pour pouvoir le faire", "incompatible_database_title": "Base de données incompatible", - "key_signature_upload_cancelled": "Envoi de signature annulé", - "key_signature_upload_completed": "Envoi terminé", - "key_signature_upload_failed": "Envoi impossible", - "key_signature_upload_failed_body": "%(brand)s a rencontré une erreur pendant l’envoi de :", - "key_signature_upload_failed_cross_signing_key_signature": "une nouvelle signature de clé de signature croisée", - "key_signature_upload_failed_device_cross_signing_key_signature": "une signature de signature croisée d’un appareil", - "key_signature_upload_failed_key_signature": "une signature de clé", - "key_signature_upload_failed_master_key_signature": "une nouvelle signature de clé principale", - "key_signature_upload_failed_title": "Échec de l’envoi de signature", - "key_signature_upload_success_title": "Succès de l’envoi de signature", "messages_not_secure": { "cause_1": "Votre serveur d’accueil", "cause_2": "Le serveur d’accueil auquel l’utilisateur que vous vérifiez est connecté", @@ -926,8 +916,6 @@ "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." }, "not_supported": "", - "old_version_detected_description": "Nous avons détecté des données d’une ancienne version de %(brand)s. Le chiffrement de bout en bout n’aura pas fonctionné correctement sur l’ancienne version. Les messages chiffrés échangés récemment dans l’ancienne version ne sont peut-être pas déchiffrables dans cette version. Les échanges de message avec cette version peuvent aussi échouer. Si vous rencontrez des problèmes, déconnectez-vous puis reconnectez-vous. Pour conserver l’historique des messages, exportez puis réimportez vos clés de chiffrement.", - "old_version_detected_title": "Anciennes données de chiffrement détectées", "recovery_method_removed": { "description_1": "Cette session a détecté que votre phrase secrète 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.", @@ -1452,14 +1440,12 @@ "location_share_live_description": "Implémentation temporaire. Les positions sont persistantes dans l’historique du salon.", "mjolnir": "Nouvelles manières d’ignorer des gens", "msc3531_hide_messages_pending_moderation": "Permettre aux modérateurs de cacher des messages en attente de modération.", - "new_room_decoration_ui": "En cours de développement, nouvel en-tête de salon et interface des détails", "notification_settings": "Nouveaux paramètres de notification", "notification_settings_beta_caption": "Introduit une manière plus simple de changer vos préférences de notifications. Customisez %(brand)s, comme ça vous convient.", "notification_settings_beta_title": "Paramètres de notification", "notifications": "Active le panneau de notifications dans l’en-tête du salon", "oidc_native_flow": "Authentification native OIDC", "oidc_native_flow_description": "⚠ ATTENTION : Expérimental. Utilise l’authentification OIDC native lorsqu’elle est prise en charge par le serveur.", - "pinning": "Messages épinglés", "release_announcement": "Annonce de sortie", "render_reaction_images": "Afficher les images personnalisées des réactions", "render_reaction_images_description": "Parfois appelés « émojis personnalisés ».", @@ -1548,9 +1534,7 @@ "error_send_description": "%(brand)s n'a pas pu envoyer votre position. Veuillez réessayer plus tard.", "error_send_title": "Nous n'avons pas pu envoyer votre position", "error_sharing_live_location": "Une erreur s’est produite pendant le partage de votre position", - "error_sharing_live_location_try_again": "Une erreur s’est produite pendant le partage de votre position, veuillez réessayer plus tard", "error_stopping_live_location": "Une erreur s’est produite lors de l’arrêt de votre position en continu", - "error_stopping_live_location_try_again": "Une erreur s’est produite en arrêtant le partage de votre position, veuillez réessayer", "expand_map": "Étendre la carte", "failed_generic": "Impossible de récupérer votre position. Veuillez réessayer plus tard.", "failed_load_map": "Impossible de charger la carte", @@ -1580,7 +1564,6 @@ "share_type_own": "Ma position actuelle", "share_type_pin": "Choisir sur la carte", "share_type_prompt": "Quel type de localisation voulez-vous partager ?", - "stop_and_close": "Arrêter et fermer", "toggle_attribution": "Changer l’attribution" }, "member_list": { @@ -1826,13 +1809,11 @@ }, "right_panel": { "add_integrations": "Ajouter des widgets, passerelles et robots", - "export_chat_button": "Exporter la conversation", "files_button": "Fichiers", "pinned_messages": { "limits": { "other": "Vous ne pouvez épingler que jusqu’à %(count)s widgets" - }, - "title": "Messages épinglés" + } }, "pinned_messages_button": "Épinglé", "poll": { @@ -1868,8 +1849,7 @@ }, "video_room_chat": { "title": "Conversation privée" - }, - "widgets_section": "Widgets" + } }, "room": { "3pid_invite_email_not_found_account": "Cette invitation a été envoyée à %(email)s qui n’est pas associé à votre compte", @@ -1890,7 +1870,6 @@ "low_priority": "Priorité basse", "mark_read": "Marquer comme lu", "mark_unread": "Marquer comme non lu", - "mentions_only": "Seulement les mentions", "notifications_default": "Réglage par défaut", "notifications_mute": "Salon muet", "title": "Options du salon", @@ -1933,18 +1912,7 @@ "forget_room": "Oublier ce salon", "forget_space": "Oublier cet espace", "header": { - "close_call_button": "Terminer l’appel", - "forget_room_button": "Oublier le salon", - "hide_widgets_button": "Masquer les widgets", - "room_is_public": "Ce salon est public", - "show_widgets_button": "Afficher les widgets", - "video_call_button_ec": "Appel vidéo (%(brand)s)", - "video_call_button_jitsi": "Appel vidéo (Jitsi)", - "video_call_button_legacy": "Appel vidéo ancienne génération", - "video_call_ec_change_layout": "Changer la disposition", - "video_call_ec_layout_freedom": "Liberté", - "video_call_ec_layout_spotlight": "Projecteur", - "video_room_view_chat_button": "Afficher la chronologie du chat" + "room_is_public": "Ce salon est public" }, "header_untrusted_label": "Non fiable", "inaccessible": "Ce salon ou cet espace n’est pas accessible en ce moment.", @@ -1978,7 +1946,6 @@ "inviter_unknown": "Inconnu", "invites_you_text": " vous a invité", "join_button_account": "S’inscrire", - "join_failed_enable_video_rooms": "Pour rejoindre, veuillez d’abord activer les salons vision dans la section Expérimental", "join_failed_needs_invite": "Pour afficher %(roomName)s, vous avez besoin d’une invitation", "join_the_discussion": "Rejoindre la discussion", "join_title": "Rejoindre le salon pour participer", @@ -2021,13 +1988,8 @@ "rejoin_button": "Revenir", "search": { "all_rooms_button": "Rechercher dans tous les salons", - "result_count": { - "one": "(~%(count)s résultat)", - "other": "(~%(count)s résultats)" - }, "this_room_button": "Rechercher dans ce salon" }, - "show_labs_settings": "Afficher les réglages des expérimentations", "status_bar": { "delete_all": "Tout supprimer", "exceeded_resource_limit": "Votre message n’a pas été envoyé car ce serveur d’accueil a dépassé une de ses limites de ressources. Veuillez contacter l’administrateur de votre service pour continuer à l’utiliser.", @@ -2058,7 +2020,6 @@ }, "uploading_single_file": "Envoi de %(filename)s" }, - "view_failed_enable_video_rooms": "Pour afficher, veuillez d’abord activer les salons vision dans la section Expérimental", "waiting_for_join_subtitle": "Une fois que les utilisateurs invités seront connectés sur %(brand)s, vous pourrez discuter et le salon sera chiffré de bout en bout", "waiting_for_join_title": "En attente de connexion des utilisateurs à %(brand)s" }, diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index 6a508ef4b2..576f982284 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -731,16 +731,6 @@ "incompatible_database_disable": "Continuar con Cifrado Desactivado", "incompatible_database_sign_out_description": "Para evitar perder o historial da conversa, debes exportar as chaves da sala antes de saír. Necesitarás volver á nova versión de %(brand)s para facer esto", "incompatible_database_title": "Base de datos non compatible", - "key_signature_upload_cancelled": "Cancelada a subida da sinatura", - "key_signature_upload_completed": "Subida completa", - "key_signature_upload_failed": "Non foi posible a subida", - "key_signature_upload_failed_body": "%(brand)s atopou un fallo ao subir:", - "key_signature_upload_failed_cross_signing_key_signature": "unha nova firma con chave de sinatura-cruzada", - "key_signature_upload_failed_device_cross_signing_key_signature": "unha sinatura sinatura-cruzada de dispositivo", - "key_signature_upload_failed_key_signature": "unha chave de sinatura", - "key_signature_upload_failed_master_key_signature": "unha nova firma con chave mestra", - "key_signature_upload_failed_title": "Fallou a subida da sinatura", - "key_signature_upload_success_title": "Subeuse correctamente a sinatura", "messages_not_secure": { "cause_1": "O teu servidor", "cause_2": "O servidor ao que está conectado a persoa que estás verificando", @@ -756,8 +746,6 @@ "warning": "Se non configuras o novo método de recuperación, un atacante podería intentar o acceso á túa conta. Cambia inmediatamente o contrasinal da conta e configura un novo método de recuperación nos Axustes." }, "not_supported": "", - "old_version_detected_description": "Detectáronse datos de una versión anterior de %(brand)s. Isto causará un mal funcionamento da criptografía extremo-a-extremo na versión antiga. As mensaxes cifradas extremo-a-extremo intercambiadas mentres utilizaba a versión anterior poderían non ser descifrables en esta versión. Isto tamén podería causar que mensaxes intercambiadas con esta versión tampouco funcionasen. Se ten problemas, desconéctese e conéctese de novo. Para manter o historial de mensaxes, exporte e reimporte as súas chaves.", - "old_version_detected_title": "Detectouse o uso de criptografía sobre datos antigos", "recovery_method_removed": { "description_1": "Esta sesión detectou que se eliminaron a túa Frase de Seguridade e chave para Mensaxes Seguras.", "description_2": "Se fixeches esto sen querer, podes configurar Mensaxes Seguras nesta sesión e volverá a cifrar as mensaxes da sesión cun novo método de recuperación.", @@ -1208,7 +1196,6 @@ "leave_beta": "Saír da beta", "leave_beta_reload": "Ao saír da beta volveremos a cargar %(brand)s.", "msc3531_hide_messages_pending_moderation": "Permitir que a moderación agoche mensaxes pendentes de moderar.", - "pinning": "Fixando mensaxe", "sliding_sync_server_no_support": "O teu servidor non ten soporte nativo", "video_rooms": "Salas de vídeo", "video_rooms_a_new_way_to_chat": "Un novo xeito de conversar con voz e vídeo en %(brand)s.", @@ -1279,9 +1266,7 @@ "error_send_description": "%(brand)s non enviou a túa localización. Inténtao máis tarde.", "error_send_title": "Non puidemos enviar a túa localización", "error_sharing_live_location": "Algo fallou ao intentar compartir a túa localización en directo", - "error_sharing_live_location_try_again": "Algo fallou ao compartir a túa localización en directo, inténtao outra vez", "error_stopping_live_location": "Algo fallou ao deter a compartición da localización en directo", - "error_stopping_live_location_try_again": "Algo fallou ao deter a túa localización en directo, inténtao outra vez", "expand_map": "Despregar mapa", "failed_generic": "Non se obtivo a localización, inténtao máis tarde.", "failed_load_map": "Non se cargou o mapa", @@ -1310,7 +1295,6 @@ "share_type_own": "Localización actual", "share_type_pin": "Fixa a posición", "share_type_prompt": "Que tipo de localización queres compartir?", - "stop_and_close": "Deter e pechar", "toggle_attribution": "Cambiar atribución" }, "member_list": { @@ -1533,13 +1517,11 @@ }, "right_panel": { "add_integrations": "Engade widgets, pontes e bots", - "export_chat_button": "Exportar chat", "files_button": "Ficheiros", "pinned_messages": { "limits": { "other": "Só podes fixar ata %(count)s widgets" - }, - "title": "Mensaxes fixadas" + } }, "pinned_messages_button": "Fixado", "poll": { @@ -1569,7 +1551,6 @@ "favourite": "Favorita", "forget": "Esquecer sala", "low_priority": "Baixa prioridade", - "mentions_only": "Só mencións", "title": "Opcións da Sala", "unfavourite": "Con marca de Favorita" }, @@ -1599,10 +1580,7 @@ "forget_room": "Esquecer sala", "forget_space": "Esquecer este espazo", "header": { - "forget_room_button": "Esquecer sala", - "hide_widgets_button": "Agochar Widgets", - "room_is_public": "Esta é unha sala pública", - "show_widgets_button": "Mostrar Widgets" + "room_is_public": "Esta é unha sala pública" }, "inaccessible": "Esta sala ou espazo non é accesible neste intre.", "inaccessible_name": "%(roomName)s non está accesible neste momento.", @@ -1634,7 +1612,6 @@ "inviter_unknown": "Descoñecido", "invites_you_text": " convídate", "join_button_account": "Rexistro", - "join_failed_enable_video_rooms": "Para unirte, primeiro activa as salas de vídeo en Labs", "join_failed_needs_invite": "Para ver %(roomName)s, precisas un convite", "join_the_discussion": "Súmate a conversa", "join_title": "Únete á sala para participar", @@ -1662,13 +1639,6 @@ "peek_join_prompt": "Vista previa de %(roomName)s. Queres unirte?", "read_topic": "Preme para ler o tema", "rejoin_button": "Volta a unirte", - "search": { - "result_count": { - "other": "(~%(count)s resultados)", - "one": "(~%(count)s resultado)" - } - }, - "show_labs_settings": "Mostrar axustes en Labs", "status_bar": { "delete_all": "Eliminar todo", "exceeded_resource_limit": "A súa mensaxe non foi enviada porque o servidor superou o límite de recursos. Por favor contacte coa administración do servizo para continuar utilizando o servizo.", @@ -1697,8 +1667,7 @@ "one": "Subindo %(filename)s e %(count)s máis" }, "uploading_single_file": "Subindo %(filename)s" - }, - "view_failed_enable_video_rooms": "Para ver, primeiro activa as salas de vídeo en Labs" + } }, "room_list": { "add_room_label": "Engadir sala", diff --git a/src/i18n/strings/he.json b/src/i18n/strings/he.json index 9737f7d516..47ec9b4cac 100644 --- a/src/i18n/strings/he.json +++ b/src/i18n/strings/he.json @@ -613,16 +613,6 @@ "incompatible_database_disable": "המשך כאשר ההצפנה מושבתת", "incompatible_database_sign_out_description": "כדי להימנע מאיבוד היסטוריית הצ'אט שלכם, עליכם לייצא את מפתחות החדר שלכם לפני שאתם מתנתקים. יהיה עליכם לחזור לגרסה החדשה יותר של %(brand)s כדי לעשות זאת", "incompatible_database_title": "מסד נתונים לא תואם", - "key_signature_upload_cancelled": "העלאת החתימה בוטלה", - "key_signature_upload_completed": "העלאה הושלמה", - "key_signature_upload_failed": "לא ניתן להעלות", - "key_signature_upload_failed_body": "%(brand)s נתקל בשגיאה במהלך ההעלאה של:", - "key_signature_upload_failed_cross_signing_key_signature": "חתימת מפתח צולבת חדשה", - "key_signature_upload_failed_device_cross_signing_key_signature": "חתימה צולבת של התקן", - "key_signature_upload_failed_key_signature": "חתימת מפתח", - "key_signature_upload_failed_master_key_signature": "חתימת מפתח ראשית חדשה", - "key_signature_upload_failed_title": "העלאת החתימה נכשלה", - "key_signature_upload_success_title": "הצלחה בהעלאת חתימה", "messages_not_secure": { "cause_1": "שרת הבית שלכם", "heading": "אחד מהדברים הבאים עלול להוות סיכון:", @@ -634,8 +624,6 @@ "warning": "אם לא הגדרת את שיטת השחזור החדשה, ייתכן שתוקף מנסה לגשת לחשבונך. שנה את סיסמת החשבון שלך והגדר מיד שיטת שחזור חדשה בהגדרות." }, "not_supported": "<לא נתמך>", - "old_version_detected_description": "נתגלו גרסאות ישנות יותר של %(brand)s. זה יגרום לתקלה בקריפטוגרפיה מקצה לקצה בגרסה הישנה יותר. הודעות מוצפנות מקצה לקצה שהוחלפו לאחרונה בעת השימוש בגרסה הישנה עשויות שלא להיות ניתנות לפענוח בגירסה זו. זה עלול גם לגרום להודעות שהוחלפו עם גרסה זו להיכשל. אם אתה נתקל בבעיות, צא וחזור שוב. כדי לשמור על היסטוריית ההודעות, ייצא וייבא מחדש את המפתחות שלך.", - "old_version_detected_title": "נתגלו נתוני הצפנה ישנים", "recovery_method_removed": { "description_2": "אם עשית זאת בטעות, באפשרותך להגדיר הודעות מאובטחות בהפעלה זו אשר תצפין מחדש את היסטוריית ההודעות של הפגישה בשיטת שחזור חדשה.", "title": "שיטת השחזור הוסרה", @@ -1020,8 +1008,7 @@ "join_beta_reload": "הצטרפות לפיתוח תטען מחדש את %(brand)s.", "jump_to_date": "קיפצו לתאריך (מוסיף /jumptodate וקפוץ לכותרות תאריך)", "latex_maths": "בצע מתמטיקה של LaTeX בהודעות", - "leave_beta_reload": "עזיבת הניסוי תטען מחדש את %(brand)s.", - "pinning": "נעיצת הודעות" + "leave_beta_reload": "עזיבת הניסוי תטען מחדש את %(brand)s." }, "labs_mjolnir": { "advanced_warning": "⚠ הגדרות אלה מיועדות למשתמשים מתקדמים.", @@ -1070,7 +1057,6 @@ "location_sharing": { "MapStyleUrlNotReachable": "שרת בית זה אינו מוגדר כהלכה להצגת מפות, או ששרת המפות המוגדר אינו ניתן לגישה.", "close_sidebar": "סגור סרגל צד", - "error_sharing_live_location_try_again": "אירעה שגיאה במהלך שיתוף המיקום החי שלכם, אנא נסו שוב", "failed_generic": "איתור המיקום שלך נכשל. אנא נסה שוב מאוחר יותר.", "find_my_location": "מצא את מיקומי", "live_enable_description": "שימו לב: זוהי תכונת פיתוח המשתמשת ביישום זמני. משמעות הדבר היא שלא תוכלו למחוק את היסטוריית המיקומים שלכם, ומשתמשים מתקדמים יוכלו לראות את היסטוריית המיקומים שלך גם לאחר שתפסיקו לשתף את המיקום החי שלכם עם החדר הזה.", @@ -1230,13 +1216,11 @@ }, "right_panel": { "add_integrations": "הוסף יישומונים, גשרים ובוטים", - "export_chat_button": "ייצוא צ'אט", "files_button": "קבצים", "pinned_messages": { "limits": { "other": "אתה יכול להצמיד עד%(count)s ווידג'טים בלבד" - }, - "title": "הודעות נעוצות" + } }, "pinned_messages_button": "הודעות נעוצות", "room_summary_card": { @@ -1244,8 +1228,7 @@ }, "thread_list": { "context_menu_label": "אפשרויות שרשור" - }, - "widgets_section": "ישומונים" + } }, "room": { "3pid_invite_email_not_found_account_room": "הזמנה זו ל-%(roomName)s נשלחה ל-%(email)s שאינה משויכת לחשבונך", @@ -1272,10 +1255,7 @@ "forget_room": "שכח חדר זה", "forget_space": "שכח את מרחב עבודה זה", "header": { - "forget_room_button": "שכח חדר", - "hide_widgets_button": "הסתר ישומונים", - "room_is_public": "חדר זה ציבורי", - "show_widgets_button": "הצג ישומונים" + "room_is_public": "חדר זה ציבורי" }, "inaccessible": "חדר זה או מרחב העבודה אינם זמינים כעת.", "inaccessible_name": "לא ניתן להכנס אל %(roomName)s בזמן הזה.", @@ -1301,7 +1281,6 @@ "invite_title": "האם אתם מעוניינים להצטרף אל %(roomName)s?", "inviter_unknown": "לא ידוע", "join_button_account": "הרשמה", - "join_failed_enable_video_rooms": "כדי להצטרף, נא אפשר תחילה וידאו במעבדת הפיתוח", "join_the_discussion": "הצטרף אל הדיון", "join_title_account": "הצטרף לשיחה עם חשבון", "jump_read_marker": "קפצו להודעה הראשונה שלא נקראה.", @@ -1318,13 +1297,6 @@ "not_found_title_name": "%(roomName)s לא קיים.", "peek_join_prompt": "אתם צופים ב־%(roomName)s. האם תרצו להצטרף?", "rejoin_button": "הצטרפות מחדש", - "search": { - "result_count": { - "one": "(תוצאת %(count)s)", - "other": "(תוצאת %(count)s)" - } - }, - "show_labs_settings": "הצג את אופציית מעבדת הפיתוח", "status_bar": { "exceeded_resource_limit": "ההודעה שלך לא נשלחה מכיוון ששרת הבית הזה חרג ממגבלת המשאבים. אנא פנה למנהל השירות שלך כדי להמשיך להשתמש בשירות.", "monthly_user_limit_reached": "ההודעה שלך לא נשלחה מכיוון ששרת הבתים הזה הגיע למגבלת המשתמשים הפעילים החודשיים שלה. אנא פנה למנהל השירות שלך כדי להמשיך להשתמש בשירות.", @@ -1348,8 +1320,7 @@ "other": "מעלה %(filename)s ו-%(count)s אחרים" }, "uploading_single_file": "מעלה %(filename)s" - }, - "view_failed_enable_video_rooms": "כדי לצפות, אנא הפעל תחילה חדרי וידאו במעבדת הפיתוח" + } }, "room_list": { "add_room_label": "הוסף חדר", diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 06a09abd22..cb04086867 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -857,16 +857,6 @@ "incompatible_database_disable": "Folytatás a titkosítás kikapcsolásával", "incompatible_database_sign_out_description": "Hogy a régi üzenetekhez továbbra is hozzáférhess kijelentkezés előtt ki kell mentened a szobák titkosító kulcsait. Ehhez a %(brand)s egy frissebb verzióját kell használnod", "incompatible_database_title": "Nem kompatibilis adatbázis", - "key_signature_upload_cancelled": "Az aláírás feltöltése megszakítva", - "key_signature_upload_completed": "A feltöltés befejeződött", - "key_signature_upload_failed": "Nem lehet feltölteni", - "key_signature_upload_failed_body": "%(brand)s hibába ütközött a feltöltés közben:", - "key_signature_upload_failed_cross_signing_key_signature": "az új eszközök közötti kulcs aláírása", - "key_signature_upload_failed_device_cross_signing_key_signature": "az eszköz eszközök közötti aláírása", - "key_signature_upload_failed_key_signature": "kulcs aláírás", - "key_signature_upload_failed_master_key_signature": "az új mester kulcs aláírás", - "key_signature_upload_failed_title": "Az aláírások feltöltése sikertelen", - "key_signature_upload_success_title": "Az aláírások feltöltése sikeres", "messages_not_secure": { "cause_1": "Matrix szervered", "cause_2": "Az ellenőrizendő felhasználó ehhez a Matrix-kiszolgálóhoz kapcsolódik:", @@ -882,8 +872,6 @@ "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 eljárást a Beállításokban." }, "not_supported": "", - "old_version_detected_description": "Régebbi %(brand)s verzióból származó adatok találhatók. Ezek hibás működéshez vezethettek a végpontok közti titkosításban a régebbi verzióknál. A nemrég küldött/fogadott titkosított üzenetek, ha a régi adatokat használták, lehetséges, hogy nem lesznek visszafejthetők ebben a verzióban. Ha problémákba ütközik, akkor jelentkezzen ki és be. A régi üzenetek elérésének biztosításához exportálja a kulcsokat, és importálja be újra.", - "old_version_detected_title": "Régi titkosítási adatot találhatók", "recovery_method_removed": { "description_1": "A munkamenet észrevette, 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.", @@ -1394,9 +1382,7 @@ "location_share_live_description": "Átmeneti megvalósítás. A helyadatok megmaradnak a szoba naplójában.", "mjolnir": "Új lehetőség emberek figyelmen kívül hagyására", "msc3531_hide_messages_pending_moderation": "A moderátorok kitakarhatják a még nem moderált üzeneteket.", - "new_room_decoration_ui": "Aktív fejlesztés alatt, új szobafejléc és -részletek felület", "notification_settings": "Új értesítési beállítások", - "pinning": "Üzenet kitűzése", "report_to_moderators": "Jelentés a moderátoroknak", "report_to_moderators_description": "A moderálást támogató szobákban a problémás tartalmat a „Jelentés” gombbal lehet a moderátorok felé jelezni.", "sliding_sync": "Csúszó szinkronizációs mód", @@ -1478,9 +1464,7 @@ "error_send_description": "Az %(brand)s nem tudja elküldeni a földrajzi helyzetét. Próbálja újra később.", "error_send_title": "A földrajzi helyzetet nem sikerült elküldeni", "error_sharing_live_location": "Élő pozíció megosztás közben hiba történt", - "error_sharing_live_location_try_again": "Élő pozíció megosztás közben hiba történt, kérjük próbálja újra", "error_stopping_live_location": "Élő pozíció megosztás megállítása közben hiba történt", - "error_stopping_live_location_try_again": "Élő pozíció megosztás befejezése közben hiba történt, kérjük próbálja újra", "expand_map": "Térkép szétnyitása", "failed_generic": "Nem sikerült a földrajzi helyzetének lekérése. Próbálja újra később.", "failed_load_map": "A térkép betöltése sikertelen", @@ -1510,7 +1494,6 @@ "share_type_own": "Jelenlegi saját földrajzi helyzet", "share_type_pin": "Hely kijelölése", "share_type_prompt": "Milyen jellegű földrajzi helyzetet szeretne megosztani?", - "stop_and_close": "Befejezés és kilépés", "toggle_attribution": "Forrásmegjelölés be/ki" }, "member_list": { @@ -1742,13 +1725,11 @@ }, "right_panel": { "add_integrations": "Kisalkalmazások, hidak, és botok hozzáadása", - "export_chat_button": "Beszélgetés exportálása", "files_button": "Fájlok", "pinned_messages": { "limits": { "other": "Csak %(count)s kisalkalmazást tud kitűzni" - }, - "title": "Kitűzött üzenetek" + } }, "pinned_messages_button": "Kitűzött", "poll": { @@ -1784,8 +1765,7 @@ }, "video_room_chat": { "title": "Csevegés" - }, - "widgets_section": "Kisalkalmazások" + } }, "room": { "3pid_invite_email_not_found_account": "Ez a meghívó ide lett küldve: %(email)s ami nincs összekötve a fiókjával", @@ -1805,7 +1785,6 @@ "forget": "Szoba elfelejtése", "low_priority": "Alacsony prioritás", "mark_read": "Megjelölés olvasottként", - "mentions_only": "Csak megemlítések", "notifications_default": "Az alapértelmezett beállítások szerint", "notifications_mute": "Szoba némítása", "title": "Szoba beállítások", @@ -1848,21 +1827,11 @@ "forget_room": "Szoba elfelejtése", "forget_space": "Ennek a térnek az elfelejtése", "header": { - "close_call_button": "Hívás befejezése", - "forget_room_button": "Szoba elfelejtése", - "hide_widgets_button": "Kisalkalmazások elrejtése", "n_people_asking_to_join": { "one": "Csatlakozást kér", "other": "%(count)s csatlakozást kérő ember" }, - "room_is_public": "Ez egy nyilvános szoba", - "show_widgets_button": "Kisalkalmazások megjelenítése", - "video_call_button_ec": "Videó hívás (%(brand)s)", - "video_call_button_jitsi": "Videóhívás (Jitsi)", - "video_call_ec_change_layout": "Képernyőbeosztás megváltoztatása", - "video_call_ec_layout_freedom": "Szabadság", - "video_call_ec_layout_spotlight": "Reflektor", - "video_room_view_chat_button": "Beszélgetés idővonal megjelenítése" + "room_is_public": "Ez egy nyilvános szoba" }, "header_untrusted_label": "Nem megbízható", "inaccessible": "Ez a szoba vagy tér jelenleg elérhetetlen.", @@ -1896,7 +1865,6 @@ "inviter_unknown": "Ismeretlen", "invites_you_text": " meghívta", "join_button_account": "Fiók készítés", - "join_failed_enable_video_rooms": "A belépéshez a Laborban be kell kapcsolni a videó szobákat", "join_failed_needs_invite": "A %(roomName)s megjelenítéséhez meghívó szükséges", "join_the_discussion": "Beszélgetéshez csatlakozás", "join_title": "Csatlakozz a szobához, hogy részt vehess", @@ -1931,13 +1899,8 @@ "rejoin_button": "Újra-csatlakozás", "search": { "all_rooms_button": "Keresés az összes szobában", - "result_count": { - "one": "(~%(count)s db eredmény)", - "other": "(~%(count)s db eredmény)" - }, "this_room_button": "Keresés ebben a szobában" }, - "show_labs_settings": "Labor beállítások megjelenítése", "status_bar": { "delete_all": "Mind törlése", "exceeded_resource_limit": "Az üzenete nem lett elküldve, mert a Matrix-kiszolgáló túllépett egy erőforráskorlátot. A szolgáltatás használatának folytatásához vegye fel a kapcsolatot a szolgáltatás rendszergazdájával.", @@ -1967,8 +1930,7 @@ "other": "%(filename)s és még %(count)s db másik feltöltése" }, "uploading_single_file": "%(filename)s feltöltése" - }, - "view_failed_enable_video_rooms": "A megjelenítéshez a Laborban be kell kapcsolni a videó szobákat" + } }, "room_list": { "add_room_label": "Szoba hozzáadása", diff --git a/src/i18n/strings/id.json b/src/i18n/strings/id.json index 360170f2b0..06420eac18 100644 --- a/src/i18n/strings/id.json +++ b/src/i18n/strings/id.json @@ -856,16 +856,6 @@ "incompatible_database_disable": "Lanjutkan Dengan Enkripsi Dinonaktifkan", "incompatible_database_sign_out_description": "Untuk menghindari kehilangan riwayat obrolan, Anda harus mengekspor kunci ruangan Anda sebelum keluar. Anda harus kembali ke versi %(brand)s yang baru untuk melakukannya", "incompatible_database_title": "Databasis Tidak Kompatibel", - "key_signature_upload_cancelled": "Unggahan tandatangan dibatalkan", - "key_signature_upload_completed": "Unggahan selesai", - "key_signature_upload_failed": "Tidak dapat mengunggah", - "key_signature_upload_failed_body": "%(brand)s mengalami sebuah kesalahan ketika mengunggah unggahan:", - "key_signature_upload_failed_cross_signing_key_signature": "sebuah tandatangan kunci penandatanganan silang baru", - "key_signature_upload_failed_device_cross_signing_key_signature": "sebuah tandatangan penandatanganan silang perangkat", - "key_signature_upload_failed_key_signature": "sebuah tandatangan kunci", - "key_signature_upload_failed_master_key_signature": "sebuah tandatangan kunci utama baru", - "key_signature_upload_failed_title": "Unggahan tandatangan gagal", - "key_signature_upload_success_title": "Unggahan tandatangan berhasil", "messages_not_secure": { "cause_1": "Homeserver Anda", "cause_2": "Homeserver pengguna yang Anda memverifikasi", @@ -881,8 +871,6 @@ "warning": "Jika Anda tidak menyetel metode pemulihan yang baru, sebuah penyerang mungkin mencoba mengakses akun Anda. Ubah kata sandi akun Anda dan segera tetapkan metode pemulihan yang baru di Pengaturan." }, "not_supported": "", - "old_version_detected_description": "Data dari %(brand)s versi lama telah terdeteksi. Ini akan menyebabkan kriptografi ujung ke ujung tidak berfungsi di versi yang lebih lama. Pesan terenkripsi secara ujung ke ujung yang dipertukarkan baru-baru ini saat menggunakan versi yang lebih lama mungkin tidak dapat didekripsi dalam versi ini. Ini juga dapat menyebabkan pesan yang dipertukarkan dengan versi ini gagal. Jika Anda mengalami masalah, keluar dan masuk kembali. Untuk menyimpan riwayat pesan, ekspor dan impor ulang kunci Anda.", - "old_version_detected_title": "Data kriptografi lama terdeteksi", "recovery_method_removed": { "description_1": "Sesi ini telah mendeteksi bahwa Frasa Keamanan dan kunci untuk Pesan Aman Anda telah dihapus.", "description_2": "Jika Anda melakukan ini secara tidak sengaja, Anda dapat mengatur Pesan Aman pada sesi ini yang akan mengenkripsi ulang riwayat pesan sesi ini dengan metode pemulihan baru.", @@ -1394,13 +1382,11 @@ "location_share_live_description": "Penerapan sementara. Lokasi tetap berada di riwayat ruangan.", "mjolnir": "Cara baru mengabaikan orang", "msc3531_hide_messages_pending_moderation": "Memperbolehkan moderator untuk menyembunyikan pesan yang akan dimoderasikan.", - "new_room_decoration_ui": "Dalam pengembangan aktif, tajuk ruangan & antarmuka detail baru", "notification_settings": "Pengaturan Notifikasi Baru", "notification_settings_beta_caption": "Perkenalkan cara yang lebih sederhana untuk mengubah pengaturan notifikasi Anda. Sesuaikan %(brand)s Anda, sesuai keinginan Anda.", "notification_settings_beta_title": "Pengaturan Notifikasi", "notifications": "Aktifkan panel notifikasi di tajuk ruangan", "oidc_native_flow": "Autentikasi asli OIDC", - "pinning": "Pin Pesan", "render_reaction_images": "Render gambar khusus dalam reaksi", "render_reaction_images_description": "Terkadang disebut sebagai \"emoji khusus\".", "report_to_moderators": "Laporkan ke moderator", @@ -1486,9 +1472,7 @@ "error_send_description": "%(brand)s tidak dapat mengirimkan lokasi Anda. Silakan coba lagi nanti.", "error_send_title": "Kami tidak dapat mengirimkan lokasi Anda", "error_sharing_live_location": "Sebuah kesalahan terjadi saat berbagi lokasi langsung Anda", - "error_sharing_live_location_try_again": "Sebuah kesalahan terjadi saat membagikan lokasi langsung Anda, mohon coba lagi", "error_stopping_live_location": "Sebuah kesalahan terjadi saat menghentikan lokasi langsung Anda", - "error_stopping_live_location_try_again": "Sebuah kesalahan terjadi saat menghentikan lokasi langsung Anda, mohon coba lagi", "expand_map": "Buka peta", "failed_generic": "Gagal untuk mendapatkan lokasi Anda. Silakan coba lagi nanti.", "failed_load_map": "Tidak dapat memuat peta", @@ -1518,7 +1502,6 @@ "share_type_own": "Lokasi saya saat ini", "share_type_pin": "Drop sebuah Pin", "share_type_prompt": "Tipe lokasi apa yang Anda ingin bagikan?", - "stop_and_close": "Berhenti dan tutup", "toggle_attribution": "Alih atribusi" }, "member_list": { @@ -1754,13 +1737,11 @@ }, "right_panel": { "add_integrations": "Tambahkan widget, jembatan & bot", - "export_chat_button": "Ekspor obrolan", "files_button": "File", "pinned_messages": { "limits": { "other": "Anda hanya dapat memasang pin sampai %(count)s widget" - }, - "title": "Pesan yang dipasangi pin" + } }, "pinned_messages_button": "Disematkan", "poll": { @@ -1796,8 +1777,7 @@ }, "video_room_chat": { "title": "Obrolan" - }, - "widgets_section": "Widget" + } }, "room": { "3pid_invite_email_not_found_account": "Undangan ini telah dikirim ke %(email)s yang tidak ditautkan dengan akun Anda", @@ -1817,7 +1797,6 @@ "forget": "Lupakan Ruangan", "low_priority": "Prioritas Rendah", "mark_read": "Tandai sebagai dibaca", - "mentions_only": "Sebutan saja", "notifications_default": "Sesuai dengan pengaturan bawaan", "notifications_mute": "Bisukan ruangan", "title": "Opsi ruangan", @@ -1860,20 +1839,10 @@ "forget_room": "Lupakan ruangan ini", "forget_space": "Lupakan space ini", "header": { - "close_call_button": "Tutup panggilan", - "forget_room_button": "Lupakan ruangan", - "hide_widgets_button": "Sembunyikan Widget", "n_people_asking_to_join": { "other": "%(count)s orang meminta untuk bergabung" }, - "room_is_public": "Ruangan ini publik", - "show_widgets_button": "Tampilkan Widget", - "video_call_button_ec": "Panggilan video (%(brand)s)", - "video_call_button_jitsi": "Panggilan video (Jitsi)", - "video_call_ec_change_layout": "Ubah tata letak", - "video_call_ec_layout_freedom": "Bebas", - "video_call_ec_layout_spotlight": "Sorotan", - "video_room_view_chat_button": "Tampilkan lini masa obrolan" + "room_is_public": "Ruangan ini publik" }, "header_untrusted_label": "Tidak dipercaya", "inaccessible": "Ruangan atau space ini tidak dapat diakses pada saat ini.", @@ -1907,7 +1876,6 @@ "inviter_unknown": "Tidak Dikenal", "invites_you_text": " mengundang Anda", "join_button_account": "Daftar", - "join_failed_enable_video_rooms": "Untuk bergabung, mohon aktifkan ruangan video di Uji Coba terlebih dahulu", "join_failed_needs_invite": "Untuk menampilkan %(roomName)s, Anda perlu sebuah undangan", "join_the_discussion": "Bergabung dengan diskusinya", "join_title": "Bergabung dengan ruangan ini untuk berpartisipasi", @@ -1950,13 +1918,8 @@ "rejoin_button": "Bergabung Ulang", "search": { "all_rooms_button": "Cari semua ruangan", - "result_count": { - "one": "(~%(count)s hasil)", - "other": "(~%(count)s hasil)" - }, "this_room_button": "Cari ruangan ini" }, - "show_labs_settings": "Tampilkan pengaturan Uji Coba", "status_bar": { "delete_all": "Hapus semua", "exceeded_resource_limit": "Pesan Anda tidak terkirim karena homeserver ini melebihi sebuah batas sumber daya. Mohon hubungi administrator layanan Anda untuk melanjutkan menggunakan layanannya.", @@ -1987,7 +1950,6 @@ }, "uploading_single_file": "Mengunggah %(filename)s" }, - "view_failed_enable_video_rooms": "Untuk menampilkan, mohon aktifkan ruangan video dalam Uji Coba terlebih dahulu", "waiting_for_join_subtitle": "Setelah pengguna yang diundang telah bergabung ke %(brand)s, Anda akan dapat bercakapan dan ruangan akan terenkripsi secara ujung ke ujung", "waiting_for_join_title": "Menunggu pengguna untuk bergabung ke %(brand)s" }, diff --git a/src/i18n/strings/is.json b/src/i18n/strings/is.json index 71d292ca52..8ad8922be3 100644 --- a/src/i18n/strings/is.json +++ b/src/i18n/strings/is.json @@ -726,12 +726,6 @@ "import_invalid_passphrase": "Sannvottun auðkenningar mistókst: er lykilorðið rangt?", "incompatible_database_disable": "Halda áfram með dulritun óvirka", "incompatible_database_title": "Ósamhæfður gagnagrunnur", - "key_signature_upload_completed": "Innsendingu er lokið", - "key_signature_upload_failed": "Ekki tókst að senda inn", - "key_signature_upload_failed_body": "%(brand)s rakst á villu við innsendingu á:", - "key_signature_upload_failed_cross_signing_key_signature": "ný kross-undirritun undirritunarlykils", - "key_signature_upload_failed_device_cross_signing_key_signature": "kross-undirritun undirritunarlykils tækis", - "key_signature_upload_failed_key_signature": "Fingrafar lykils", "messages_not_secure": { "cause_1": "Heimaþjónninn þinn", "heading": "Eitt af eftirfarandi gæti verið berskjaldað:", @@ -741,7 +735,6 @@ "title": "Ný endurheimtuaðferð" }, "not_supported": "", - "old_version_detected_title": "Gömul dulritunargögn fundust", "recovery_method_removed": { "title": "Endurheimtuaðferð fjarlægð" }, @@ -1161,7 +1154,6 @@ "location_share_live_description": "Bráðabirgðaútfærsla. Staðsetningar haldast í ferli spjallrása.", "mjolnir": "Nýjar leiðir til að hunsa fólk", "msc3531_hide_messages_pending_moderation": "Láta umsjónarmenn fela skilaboð sem bíða yfirferðar.", - "pinning": "Festing skilaboða", "report_to_moderators": "Tilkynna til umsjónarmanna", "report_to_moderators_description": "Í spjallrásum sem styðja eftirlit umsjónarmanna, mun 'Kæra'-hnappurinn gefa þér færi á að tilkynna misnotkun til umsjónarmanna spjallrása.", "under_active_development": "Í virkri þróun.", @@ -1253,7 +1245,6 @@ "share_type_own": "Núverandi staðsetning mín", "share_type_pin": "Sleppa pinna", "share_type_prompt": "Hvaða gerð staðsetningar vilt þú deila?", - "stop_and_close": "Hætta og loka", "toggle_attribution": "Víxla tilvísun af/á" }, "member_list": { @@ -1467,13 +1458,11 @@ }, "right_panel": { "add_integrations": "Bæta við viðmótshlutum, brúm og vélmennum", - "export_chat_button": "Flytja út spjall", "files_button": "Skrár", "pinned_messages": { "limits": { "other": "Þú getur bara fest allt að %(count)s viðmótshluta" - }, - "title": "Föst skilaboð" + } }, "pinned_messages_button": "Fest", "poll": { @@ -1490,8 +1479,7 @@ }, "video_room_chat": { "title": "Spjall" - }, - "widgets_section": "Viðmótshlutar" + } }, "room": { "3pid_invite_email_not_found_account": "Þetta boð var sent til %(email)s sem er ekki tengt notandaaðgangnum þínum", @@ -1508,7 +1496,6 @@ "forget": "Gleyma spjallrás", "low_priority": "Lítill forgangur", "mark_read": "Merkja sem lesið", - "mentions_only": "Aðeins minnst á", "title": "Valkostir spjallrásar", "unfavourite": "Í eftirlætum" }, @@ -1537,17 +1524,7 @@ "forget_room": "Gleyma þessari spjallrás", "forget_space": "Gleyma þessu svæði", "header": { - "close_call_button": "Loka samtali", - "forget_room_button": "Gleyma spjallrás", - "hide_widgets_button": "Fela viðmótshluta", - "room_is_public": "Þessi spjallrás er opinber", - "show_widgets_button": "Sýna viðmótshluta", - "video_call_button_ec": "Myndsímtal (%(brand)s)", - "video_call_button_jitsi": "Myndsímtal (Jitsi)", - "video_call_ec_change_layout": "Breyta framsetningu", - "video_call_ec_layout_freedom": "Frelsi", - "video_call_ec_layout_spotlight": "Í kastljósi", - "video_room_view_chat_button": "Skoða tímalínu spjalls" + "room_is_public": "Þessi spjallrás er opinber" }, "inaccessible": "Þessi spjallrás eða svæði er ekki aðgengilegt í augnablikinu.", "inaccessible_name": "%(roomName)s er ekki aðgengileg í augnablikinu.", @@ -1602,13 +1579,6 @@ "peek_join_prompt": "Þú ert að forskoða %(roomName)s. Viltu taka þátt í henni?", "read_topic": "Smelltu til að lesa umfjöllunarefni", "rejoin_button": "Taka þátt aftur", - "search": { - "result_count": { - "one": "(~%(count)s niðurstaða)", - "other": "(~%(count)s niðurstöður)" - } - }, - "show_labs_settings": "Sýna tilraunastillingar", "status_bar": { "delete_all": "Eyða öllu", "exceeded_resource_limit": "Skilaboðin þín voru ekki send vegna þess að þessi heimaþjónn er kominn fram yfir takmörk á notuðum tilföngum. Hafðu samband við kerfisstjóra þjónustunnar þinnar til að halda áfram að nota þjónustuna.", diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index b978a3dfbf..8d199644a7 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -867,16 +867,6 @@ "incompatible_database_disable": "Continua con la crittografia disattivata", "incompatible_database_sign_out_description": "Per evitare di perdere la cronologia della chat, devi esportare le tue chiavi della stanza prima di uscire. Dovrai tornare alla versione più recente di %(brand)s per farlo", "incompatible_database_title": "Database non compatibile", - "key_signature_upload_cancelled": "Invio della firma annullato", - "key_signature_upload_completed": "Invio completato", - "key_signature_upload_failed": "Impossibile inviare", - "key_signature_upload_failed_body": "%(brand)s ha riscontrato un errore durante l'invio di:", - "key_signature_upload_failed_cross_signing_key_signature": "una nuova firma della chiave a firma incrociata", - "key_signature_upload_failed_device_cross_signing_key_signature": "una firma incrociata di dispositivo", - "key_signature_upload_failed_key_signature": "una firma di chiave", - "key_signature_upload_failed_master_key_signature": "una nuova firma della chiave principale", - "key_signature_upload_failed_title": "Invio della firma fallito", - "key_signature_upload_success_title": "Firma inviata correttamente", "messages_not_secure": { "cause_1": "Il tuo homeserver", "cause_2": "L'homeserver al quale è connesso l'utente che stai verificando", @@ -892,8 +882,6 @@ "warning": "Se non hai impostato il nuovo metodo di recupero, un aggressore potrebbe tentare di accedere al tuo account. Cambia la password del tuo account e imposta immediatamente un nuovo metodo di recupero nelle impostazioni." }, "not_supported": "", - "old_version_detected_description": "Sono stati rilevati dati da una vecchia versione di %(brand)s. Ciò avrà causato malfunzionamenti della crittografia end-to-end nella vecchia versione. I messaggi cifrati end-to-end scambiati di recente usando la vecchia versione potrebbero essere indecifrabili in questa versione. Anche i messaggi scambiati con questa versione possono fallire. Se riscontri problemi, disconnettiti e riaccedi. Per conservare la cronologia, esporta e re-importa le tue chiavi.", - "old_version_detected_title": "Rilevati dati di crittografia obsoleti", "recovery_method_removed": { "description_1": "Questa sessione ha rilevato che la tua password di sicurezza e la chiave per i messaggi sicuri sono state rimosse.", "description_2": "Se l'hai fatto accidentalmente, puoi configurare Messaggi Sicuri su questa sessione che cripterà nuovamente la cronologia dei messaggi con un nuovo metodo di recupero.", @@ -1416,14 +1404,12 @@ "location_share_live_description": "Implementazione temporanea: le posizioni persistono nella cronologia della stanza.", "mjolnir": "Nuovi modi di ignorare le persone", "msc3531_hide_messages_pending_moderation": "Lascia che i moderatori nascondano i messaggi in attesa di moderazione.", - "new_room_decoration_ui": "In sviluppo attivo, nuova interfaccia per intestazione e dettagli della stanza", "notification_settings": "Nuove impostazioni di notifica", "notification_settings_beta_caption": "Ti presentiamo un modo più semplice per modificare le impostazioni delle notifiche. Personalizza il tuo %(brand)s, proprio come piace a te.", "notification_settings_beta_title": "Impostazioni di notifica", "notifications": "Attiva il pannello delle notifiche nell'intestazione della stanza", "oidc_native_flow": "Autenticazione nativa OIDC", "oidc_native_flow_description": "⚠ ATTENZIONE: sperimentale. Usa l'autenticazione nativa OIDC se supportata dal server.", - "pinning": "Ancoraggio messaggi", "render_reaction_images": "Mostra immagini personalizzate nelle reazioni", "render_reaction_images_description": "A volte chiamati \"emoji personalizzati\".", "report_to_moderators": "Segnala ai moderatori", @@ -1509,9 +1495,7 @@ "error_send_description": "%(brand)s non ha potuto inviare la tua posizione. Riprova più tardi.", "error_send_title": "Non siamo riusciti ad inviare la tua posizione", "error_sharing_live_location": "Si è verificato un errore condividendo la tua posizione in tempo reale", - "error_sharing_live_location_try_again": "Si è verificato un errore condividendo la tua posizione in tempo reale, riprova", "error_stopping_live_location": "Si è verificato un errore fermando la tua posizione in tempo reale", - "error_stopping_live_location_try_again": "Si è verificato un errore fermando la tua posizione in tempo reale, riprova", "expand_map": "Espandi mappa", "failed_generic": "Impossibile rilevare la tua posizione. Riprova più tardi.", "failed_load_map": "Impossibile caricare la mappa", @@ -1541,7 +1525,6 @@ "share_type_own": "La mia posizione attuale", "share_type_pin": "Lascia una puntina", "share_type_prompt": "Che tipo di posizione vuoi condividere?", - "stop_and_close": "Ferma e chiudi", "toggle_attribution": "Attiva/disattiva attribuzione" }, "member_list": { @@ -1788,13 +1771,11 @@ }, "right_panel": { "add_integrations": "Aggiungi widget, bridge e bot", - "export_chat_button": "Esporta conversazione", "files_button": "File", "pinned_messages": { "limits": { "other": "Puoi ancorare al massimo %(count)s widget" - }, - "title": "Messaggi ancorati" + } }, "pinned_messages_button": "Fissato", "poll": { @@ -1830,8 +1811,7 @@ }, "video_room_chat": { "title": "Chat" - }, - "widgets_section": "Widget" + } }, "room": { "3pid_invite_email_not_found_account": "Questo invito è stato inviato a %(email)s , la quale non è associata al tuo account", @@ -1851,7 +1831,6 @@ "forget": "Dimentica stanza", "low_priority": "Priorità bassa", "mark_read": "Segna come letto", - "mentions_only": "Solo le citazioni", "notifications_default": "Corrispondi l'impostazione predefinita", "notifications_mute": "Silenzia stanza", "title": "Opzioni stanza", @@ -1894,22 +1873,11 @@ "forget_room": "Dimentica questa stanza", "forget_space": "Dimentica questo spazio", "header": { - "close_call_button": "Chiudi chiamata", - "forget_room_button": "Dimentica la stanza", - "hide_widgets_button": "Nascondi i widget", "n_people_asking_to_join": { "one": "Richiesta di entrare", "other": "%(count)s persone chiedono di entrare" }, - "room_is_public": "Questa stanza è pubblica", - "show_widgets_button": "Mostra i widget", - "video_call_button_ec": "Videochiamata (%(brand)s)", - "video_call_button_jitsi": "Videochiamata (Jitsi)", - "video_call_button_legacy": "Videochiamata legacy", - "video_call_ec_change_layout": "Cambia disposizione", - "video_call_ec_layout_freedom": "Libertà", - "video_call_ec_layout_spotlight": "Riflettore", - "video_room_view_chat_button": "Vedi linea temporale chat" + "room_is_public": "Questa stanza è pubblica" }, "header_face_pile_tooltip": "Cambia l'elenco dei membri", "header_untrusted_label": "Non fidato", @@ -1944,7 +1912,6 @@ "inviter_unknown": "Sconosciuto", "invites_you_text": " ti ha invitato/a", "join_button_account": "Registrati", - "join_failed_enable_video_rooms": "Per entrare, prima attiva le stanze video in Laboratori", "join_failed_needs_invite": "Per vedere %(roomName)s ti serve un invito", "join_the_discussion": "Unisciti alla discussione", "join_title": "Entra nella stanza per partecipare", @@ -1987,13 +1954,8 @@ "rejoin_button": "Rientra", "search": { "all_rooms_button": "Cerca in tutte le stanze", - "result_count": { - "other": "(~%(count)s risultati)", - "one": "(~%(count)s risultato)" - }, "this_room_button": "Cerca in questa stanza" }, - "show_labs_settings": "Mostra impostazioni Laboratori", "status_bar": { "delete_all": "Elimina tutti", "exceeded_resource_limit": "Il tuo messaggio non è stato inviato perché questo homeserver ha oltrepassato un limite di risorse. Contatta l'amministratore del servizio per continuare ad usarlo.", @@ -2024,7 +1986,6 @@ }, "uploading_single_file": "Invio di %(filename)s" }, - "view_failed_enable_video_rooms": "Per vederla, prima attiva le stanze video in Laboratori", "waiting_for_join_subtitle": "Una volta che gli utenti si saranno uniti a %(brand)s, potrete scrivervi e la stanza sarà crittografata end-to-end", "waiting_for_join_title": "In attesa che gli utenti si uniscano a %(brand)s" }, diff --git a/src/i18n/strings/ja.json b/src/i18n/strings/ja.json index 4af4a7cee0..7802e60d89 100644 --- a/src/i18n/strings/ja.json +++ b/src/i18n/strings/ja.json @@ -817,16 +817,6 @@ "incompatible_database_disable": "暗号化を無効にして続行", "incompatible_database_sign_out_description": "チャットの履歴の消去を防ぐには、ログアウトする前にルームの鍵をエクスポートする必要があります。そのためには%(brand)sの新しいバージョンへと戻る必要があります", "incompatible_database_title": "互換性のないデータベース", - "key_signature_upload_cancelled": "署名のアップロードをキャンセルしました", - "key_signature_upload_completed": "アップロードが完了しました", - "key_signature_upload_failed": "アップロードできません", - "key_signature_upload_failed_body": "以下のアップロードの際に%(brand)sでエラーが発生しました:", - "key_signature_upload_failed_cross_signing_key_signature": "新しいクロス署名鍵の署名", - "key_signature_upload_failed_device_cross_signing_key_signature": "端末のクロス署名", - "key_signature_upload_failed_key_signature": "鍵の署名", - "key_signature_upload_failed_master_key_signature": "新しいマスターキーの署名", - "key_signature_upload_failed_title": "署名のアップロードに失敗しました", - "key_signature_upload_success_title": "署名のアップロードに成功しました", "messages_not_secure": { "cause_1": "あなたのホームサーバー", "cause_2": "認証しようとしているユーザーが接続しているホームサーバー", @@ -842,8 +832,6 @@ "warning": "新しい復元方法を設定しなかった場合、攻撃者がアカウントへアクセスしようとしている可能性があります。設定画面ですぐにアカウントのパスワードを変更し、新しい復元方法を設定してください。" }, "not_supported": "<サポート対象外>", - "old_version_detected_description": "%(brand)sの古いバージョンのデータを検出しました。これにより、古いバージョンではエンドツーエンドの暗号化が機能しなくなります。古いバージョンを使用している間に最近交換されたエンドツーエンドの暗号化されたメッセージは、このバージョンでは復号化できません。また、このバージョンで交換されたメッセージが失敗することもあります。問題が発生した場合は、ログアウトして再度ログインしてください。メッセージ履歴を保持するには、鍵をエクスポートして再インポートしてください。", - "old_version_detected_title": "古い暗号化データが検出されました", "recovery_method_removed": { "description_1": "セキュリティーフレーズと、セキュアメッセージの鍵が削除されました。", "description_2": "偶然削除してしまった場合は、このセッションで、メッセージの暗号化を設定することができます。設定すると、新しい復元方法でセッションのデータを改めて暗号化します。", @@ -1322,7 +1310,6 @@ "location_share_live_description": "一時的な実装。位置情報がルームの履歴に残ります。", "mjolnir": "参加者を無視する新しい方法", "msc3531_hide_messages_pending_moderation": "モデレーターに、保留中のモデレーションのメッセージを非表示にすることを許可。", - "pinning": "固定メッセージを有効にする", "report_to_moderators": "モデレーターに報告", "report_to_moderators_description": "モデレートをサポートするルームで「報告」ボタンを使用すると、ルームのモデレーターに問題を報告できます。", "sliding_sync": "スライド式同期モード", @@ -1401,9 +1388,7 @@ "error_send_description": "%(brand)sは位置情報を送信できませんでした。後でもう一度やり直してください。", "error_send_title": "位置情報を送信できませんでした", "error_sharing_live_location": "位置情報(ライブ)を共有している際にエラーが発生しました", - "error_sharing_live_location_try_again": "位置情報(ライブ)を共有している際にエラーが発生しました。もう一度やり直してください", "error_stopping_live_location": "位置情報(ライブ)を停止する際にエラーが発生しました", - "error_stopping_live_location_try_again": "位置情報(ライブ)を停止している際にエラーが発生しました。もう一度やり直してください", "expand_map": "地図を開く", "failed_generic": "位置情報の取得に失敗しました。後でもう一度やり直してください。", "failed_load_map": "地図を読み込めません", @@ -1433,7 +1418,6 @@ "share_type_own": "自分の現在の位置情報", "share_type_pin": "場所を選択", "share_type_prompt": "どのような種類の位置情報を共有したいですか?", - "stop_and_close": "停止して閉じる", "toggle_attribution": "属性を切り替える" }, "member_list": { @@ -1661,13 +1645,11 @@ }, "right_panel": { "add_integrations": "ウィジェット、ブリッジ、ボットの追加", - "export_chat_button": "チャットをエクスポート", "files_button": "ファイル", "pinned_messages": { "limits": { "other": "ウィジェットのピン留めは%(count)s件までです" - }, - "title": "固定メッセージ" + } }, "pinned_messages_button": "固定メッセージ", "poll": { @@ -1686,8 +1668,7 @@ }, "video_room_chat": { "title": "会話" - }, - "widgets_section": "ウィジェット" + } }, "room": { "3pid_invite_email_not_found_account": "この招待は、アカウントに関連付けられていないメールアドレス %(email)s に送信されました", @@ -1707,7 +1688,6 @@ "forget": "ルームを消去", "low_priority": "低優先度", "mark_read": "既読にする", - "mentions_only": "メンションのみ", "title": "ルームの設定", "unfavourite": "お気に入り登録中" }, @@ -1737,17 +1717,7 @@ "forget_room": "このルームを消去", "forget_space": "このスペースの履歴を消去", "header": { - "close_call_button": "通話を終了", - "forget_room_button": "ルームを消去", - "hide_widgets_button": "ウィジェットを非表示にする", - "room_is_public": "このルームは公開されています", - "show_widgets_button": "ウィジェットを表示", - "video_call_button_ec": "ビデオ通話(%(brand)s)", - "video_call_button_jitsi": "ビデオ通話(Jitsi)", - "video_call_ec_change_layout": "レイアウトを変更", - "video_call_ec_layout_freedom": "自由", - "video_call_ec_layout_spotlight": "スポットライト", - "video_room_view_chat_button": "チャットのタイムラインを表示" + "room_is_public": "このルームは公開されています" }, "inaccessible": "このルームまたはスペースは現在アクセスできません。", "inaccessible_name": "%(roomName)sは現在アクセスできません。", @@ -1779,7 +1749,6 @@ "inviter_unknown": "不明", "invites_you_text": "があなたを招待しています", "join_button_account": "サインアップ", - "join_failed_enable_video_rooms": "参加するには、まずラボのビデオ通話ルームを有効にしてください", "join_failed_needs_invite": "%(roomName)sを見るには招待が必要です", "join_the_discussion": "ルームに参加", "join_title": "ルームに参加", @@ -1810,13 +1779,6 @@ "read_topic": "クリックしてトピックを読む", "rejecting": "招待を拒否しています…", "rejoin_button": "再参加", - "search": { - "result_count": { - "other": "(〜%(count)s件)", - "one": "(〜%(count)s件)" - } - }, - "show_labs_settings": "ラボの設定を表示", "status_bar": { "delete_all": "全て削除", "exceeded_resource_limit": "このホームサーバーがリソース制限を超えたため、メッセージを送信できませんでした。サービスを引き続き使用するには、サービスの管理者にお問い合わせください。", @@ -1845,8 +1807,7 @@ "one": "%(filename)sと他%(count)s件をアップロードしています" }, "uploading_single_file": "%(filename)sをアップロードしています" - }, - "view_failed_enable_video_rooms": "表示するには、まずラボのビデオ通話ルームを有効にしてください" + } }, "room_list": { "add_room_label": "ルームを追加", diff --git a/src/i18n/strings/lo.json b/src/i18n/strings/lo.json index ab333ebf40..6e9fdd7e2e 100644 --- a/src/i18n/strings/lo.json +++ b/src/i18n/strings/lo.json @@ -722,16 +722,6 @@ "incompatible_database_disable": "ສືບຕໍ່ດ້ວຍການປິດການເຂົ້າລະຫັດ", "incompatible_database_sign_out_description": "ເພື່ອຫຼີກເວັ້ນການສູນເສຍປະຫວັດການສົນທະນາຂອງທ່ານ, ທ່ານຕ້ອງອອກກະແຈຫ້ອງຂອງທ່ານກ່ອນທີ່ຈະອອກຈາກລະບົບ. ທ່ານຈະຕ້ອງໄດ້ກັບຄືນໄປຫາເວີຊັ້ນໃຫມ່ຂອງ %(brand)s ເພື່ອເຮັດສິ່ງນີ້", "incompatible_database_title": "ຖານຂໍ້ມູນບໍ່ສອດຄ່ອງກັນ", - "key_signature_upload_cancelled": "ຍົກເລີກການອັບໂຫລດລາຍເຊັນແລ້ວ", - "key_signature_upload_completed": "ອັບໂຫຼດສຳເລັດ", - "key_signature_upload_failed": "ບໍ່ສາມາດອັບໂຫລດໄດ້", - "key_signature_upload_failed_body": "%(brand)s ພົບຂໍ້ຜິດພາດໃນລະຫວ່າງການອັບໂຫລດ:", - "key_signature_upload_failed_cross_signing_key_signature": "ການລົງລາຍເຊັນ cross-signing ແບບໃໝ່", - "key_signature_upload_failed_device_cross_signing_key_signature": "ການ cross-signing ອຸປະກອນ", - "key_signature_upload_failed_key_signature": "ລາຍເຊັນຫຼັກ", - "key_signature_upload_failed_master_key_signature": "ລາຍເຊັນຫຼັກອັນໃໝ່", - "key_signature_upload_failed_title": "ການອັບໂຫລດລາຍເຊັນບໍ່ສຳເລັດ", - "key_signature_upload_success_title": "ສຳເລັດການອັບໂຫລດລາຍເຊັນ", "messages_not_secure": { "cause_1": "homeserver ຂອງທ່ານ", "cause_2": "homeserver ຜູ້ໃຊ້ທີ່ທ່ານກໍາລັງຢືນຢັນແມ່ນເຊື່ອມຕໍ່ກັບ", @@ -747,8 +737,6 @@ "warning": "ຖ້າທ່ານບໍ່ໄດ້ກຳນົດວິທີການກູ້ຄືນໃໝ່, ຜູ້ໂຈມຕີອາດຈະພະຍາຍາມເຂົ້າເຖິງບັນຊີຂອງທ່ານ. ປ່ຽນລະຫັດຜ່ານບັນຊີຂອງທ່ານ ແລະກຳນົດ ວິທີການກູ້ຄືນໃໝ່ທັນທີໃນການຕັ້ງຄ່າ." }, "not_supported": "<ບໍ່ຮອງຮັບ>", - "old_version_detected_description": "ກວດພົບຂໍ້ມູນຈາກ%(brand)s ລຸ້ນເກົ່າກວ່າ. ອັນນີ້ຈະເຮັດໃຫ້ການເຂົ້າລະຫັດລັບແບບຕົ້ນທາງເຖິງປາຍທາງເຮັດວຽກຜິດປົກກະຕິໃນລຸ້ນເກົ່າ. ຂໍ້ຄວາມທີ່ເຂົ້າລະຫັດແບບຕົ້ນທາງເຖິງປາຍທາງທີ່ໄດ້ແລກປ່ຽນເມື່ອບໍ່ດົນມານີ້ ໃນຂະນະທີ່ໃຊ້ເວີຊັນເກົ່າອາດຈະບໍ່ສາມາດຖອດລະຫັດໄດ້ໃນລູ້ນນີ້. ນີ້ອາດຈະເຮັດໃຫ້ຂໍ້ຄວາມທີ່ແລກປ່ຽນກັບລູ້ນນີ້ບໍ່ສຳເລັດ. ຖ້າເຈົ້າປະສົບບັນຫາ, ໃຫ້ອອກຈາກລະບົບ ແລະ ກັບມາໃໝ່ອີກຄັ້ງ. ເພື່ອຮັກສາປະຫວັດຂໍ້ຄວາມ, ສົ່ງອອກ ແລະ ນໍາເຂົ້າລະຫັດຂອງທ່ານຄືນໃໝ່.", - "old_version_detected_title": "ກວດພົບຂໍ້ມູນການເຂົ້າລະຫັດລັບເກົ່າ", "recovery_method_removed": { "description_1": "ລະບົບນີ້ໄດ້ກວດພົບປະໂຫຍກຄວາມປອດໄພ ແລະ ກະແຈຂໍ້ຄວາມທີ່ປອດໄພຂອງທ່ານໄດ້ຖືກເອົາອອກແລ້ວ.", "description_2": "ຖ້າທ່ານດຳເນີນການສິ່ງນີ້ໂດຍບໍ່ໄດ້ຕັ້ງໃຈ, ທ່ານສາມາດຕັ້ງຄ່າຄວາມປອດໄພຂອງຂໍ້ຄວາມ ໃນລະບົບນີ້ ເຊິ່ງຈະມີການເຂົ້າລະຫັດປະຫວັດຂໍ້ຄວາມຂອງລະບົບນີ້ຄືນໃໝ່ດ້ວຍຂະບວນການກູ້ຂໍ້ມູນໃໝ່.", @@ -1187,8 +1175,7 @@ "jump_to_date": "ໄປຫາວັນທີ (ເພີ່ມ /jumptodate ແລະໄປຫາຫົວຂໍ້ວັນທີ)", "latex_maths": "ສະແດງຜົນຄະນິດສາດ LaTeX ໃນຂໍ້ຄວາມ", "leave_beta": "ອອກຈາກເບຕ້າ", - "msc3531_hide_messages_pending_moderation": "ໃຫ້ຜູ້ຄວບຄຸມການເຊື່ອງຂໍ້ຄວາມທີ່ລໍຖ້າການກັ່ນຕອງ.", - "pinning": "ການປັກໝຸດຂໍ້ຄວາມ" + "msc3531_hide_messages_pending_moderation": "ໃຫ້ຜູ້ຄວບຄຸມການເຊື່ອງຂໍ້ຄວາມທີ່ລໍຖ້າການກັ່ນຕອງ." }, "labs_mjolnir": { "advanced_warning": "⚠ ການຕັ້ງຄ່າເຫຼົ່ານີ້ແມ່ນຫມາຍເຖິງຜູ້ໃຊ້ຂັ້ນສູງ.", @@ -1247,9 +1234,7 @@ "error_send_description": "%(brand)s ບໍ່ສາມາດສົ່ງສະຖານທີ່ຂອງທ່ານໄດ້. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ.", "error_send_title": "ພວກເຮົາບໍ່ສາມາດສົ່ງສະຖານທີ່ຂອງທ່ານໄດ້", "error_sharing_live_location": "ພົບບັນຫາຕອນກຳລັງແບ່ງປັນຈຸດພິກັດຂອງທ່ານ", - "error_sharing_live_location_try_again": "ພົບບັນຫາຕອນກຳລັງແບ່ງປັນຈຸດພິກັດຂອງທ່ານ, ກະລຸນາລອງໃໝ່", "error_stopping_live_location": "ເກີດຄວາມຜິດພາດໃນຂະນະທີ່ຢຸດສະຖານທີ່ສະຖານທີ່ຂອງທ່ານ", - "error_stopping_live_location_try_again": "ເກີດຄວາມຜິດພາດໃນລະຫວ່າງການຢຸດສະຖານທີ່ປັດຈຸບັນຂອງທ່ານ, ກະລຸນາລອງໃໝ່ອີກຄັ້ງ", "expand_map": "ຂະຫຍາຍແຜນທີ່", "failed_generic": "ດຶງຂໍ້ມູນສະຖານທີ່ຂອງທ່ານບໍ່ສຳເລັດ. ກະລຸນາລອງໃໝ່ໃນພາຍຫຼັງ.", "failed_load_map": "ບໍ່ສາມາດໂຫຼດແຜນທີ່ໄດ້", @@ -1450,13 +1435,11 @@ }, "right_panel": { "add_integrations": "ເພີ່ມວິດເຈັດ, ຂົວ ແລະບັອດ", - "export_chat_button": "ສົ່ງການສົນທະນາອອກ", "files_button": "ໄຟລ໌", "pinned_messages": { "limits": { "other": "ທ່ານສາມາດປັກໝຸດໄດ້ເຖິງ %(count)s widget ເທົ່ານັ້ນ" - }, - "title": "ປັກໝຸດຂໍ້ຄວາມ" + } }, "pinned_messages_button": "ໄດ້ປັກໝຸດ", "poll": { @@ -1470,8 +1453,7 @@ }, "video_room_chat": { "title": "ສົນທະນາ" - }, - "widgets_section": "ວິດເຈັດ" + } }, "room": { "3pid_invite_email_not_found_account": "ການເຊີນນີ້ຖືກສົ່ງໄປຫາ %(email)s ທີ່ບໍ່ກ່ຽວຂ້ອງກັບບັນຊີຂອງທ່ານ", @@ -1490,7 +1472,6 @@ "favourite": "ສິ່ງທີ່ມັກ", "forget": "ລືມຫ້ອງ", "low_priority": "ຄວາມສຳຄັນຕໍ່າ", - "mentions_only": "ກ່າວເຖິງເທົ່ານັ້ນ", "title": "ຕົວເລືອກຫ້ອງ", "unfavourite": "ສີ່ງທີ່ມັກ" }, @@ -1519,10 +1500,7 @@ "forget_room": "ລືມຫ້ອງນີ້", "forget_space": "ລືມພຶ້ນທີ່ນີ້", "header": { - "forget_room_button": "ລືມຫ້ອງ", - "hide_widgets_button": "ເຊື່ອງ Widgets", - "room_is_public": "ນີ້ແມ່ນຫ້ອງສາທາລະນະ", - "show_widgets_button": "ສະແດງ Widgets" + "room_is_public": "ນີ້ແມ່ນຫ້ອງສາທາລະນະ" }, "inaccessible": "ຫ້ອງ ຫຼື ພື້ນທີ່ນີ້ບໍ່ສາມາດເຂົ້າເຖິງໄດ້ໃນເວລານີ້.", "inaccessible_name": "%(roomName)s ບໍ່ສາມາດເຂົ້າເຖິງໄດ້ໃນເວລານີ້.", @@ -1553,7 +1531,6 @@ "inviter_unknown": "ບໍ່ຮູ້ຈັກ", "invites_you_text": " ເຊີນທ່ານ", "join_button_account": "ລົງທະບຽນ", - "join_failed_enable_video_rooms": "ເພື່ອເຂົ້າຮ່ວມ, ທ່ານຕ້ອງເປີດຫ້ອງວີດີໂອໃນສູນທົດລອງກ່ອນ", "join_failed_needs_invite": "ເພື່ອເບິ່ງ %(roomName)s, ທ່ານຕ້ອງມີບັດເຊີນ", "join_the_discussion": "ເຂົ້າຮ່ວມການສົນທະນາ", "join_title_account": "ເຂົ້າຮ່ວມການສົນທະນາດ້ວຍບັນຊີ", @@ -1580,13 +1557,6 @@ "peek_join_prompt": "ທ່ານກຳລັງເບິ່ງຕົວຢ່າງ %(roomName)s. ຕ້ອງການເຂົ້າຮ່ວມບໍ?", "read_topic": "ກົດເພື່ອອ່ານຫົວຂໍ້", "rejoin_button": "ເຂົ້າຮ່ວມອີກຄັ້ງ", - "search": { - "result_count": { - "one": "(~%(count)sຜົນຮັບ)", - "other": "(~%(count)sຜົນຮັບ)" - } - }, - "show_labs_settings": "ໂຊການຕັ້ງຄ່າສູນທົດລອງ", "status_bar": { "delete_all": "ລົບທັງຫມົດ", "exceeded_resource_limit": "ຂໍ້ຄວາມຂອງທ່ານບໍ່ຖືກສົ່ງເນື່ອງຈາກ homeserver ນີ້ເກີນຂອບເຂດຈໍາກັດ. ກະລຸນາ ຕິດຕໍ່ຜູູ້ຄຸມຄອງການບໍລິການຂອງທ່ານ ເພື່ອສືບຕໍ່ໃຊ້ບໍລິການ.", @@ -1615,8 +1585,7 @@ "other": "ກຳລັງອັບໂຫລດ %(filename)s ແລະ %(count)s ອື່ນໆ" }, "uploading_single_file": "ກຳລັງອັບໂຫລດ %(filename)s" - }, - "view_failed_enable_video_rooms": "ເພື່ອເບິ່ງ, ທ່ານຕ້ອງເປີດຫ້ອງວີດີໂອໃນສູນທົດລອງກ່ອນ" + } }, "room_list": { "add_room_label": "ເພີ່ມຫ້ອງ", diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json index 9a300d5165..14c3683789 100644 --- a/src/i18n/strings/lt.json +++ b/src/i18n/strings/lt.json @@ -547,16 +547,6 @@ "incompatible_database_disable": "Tęsti išjungus šifravimą", "incompatible_database_sign_out_description": "Tam, kad neprarastumėte savo pokalbių istorijos, prieš atsijungdami turite eksportuoti kambario raktus. Norėdami tai padaryti, turėsite grįžti į naujesnę %(brand)s versiją", "incompatible_database_title": "Nesuderinama duomenų bazė", - "key_signature_upload_cancelled": "Atšauktas parašo įkėlimas", - "key_signature_upload_completed": "Įkėlimas baigtas", - "key_signature_upload_failed": "Nepavyksta įkelti", - "key_signature_upload_failed_body": "%(brand)s aptiko klaidą įkeliant:", - "key_signature_upload_failed_cross_signing_key_signature": "naujas kryžminio pasirašymo rakto parašas", - "key_signature_upload_failed_device_cross_signing_key_signature": "įrenginio kryžminio pasirašymo parašas", - "key_signature_upload_failed_key_signature": "rakto parašas", - "key_signature_upload_failed_master_key_signature": "naujas pagrindinio rakto parašas", - "key_signature_upload_failed_title": "Parašo įkėlimas nepavyko", - "key_signature_upload_success_title": "Parašo įkėlimas sėkmingas", "messages_not_secure": { "cause_1": "Jūsų serveris", "cause_2": "Namų serveris, prie kurio yra prisijungęs patvirtinamas naudotojas", @@ -571,7 +561,6 @@ "warning": "Jei jūs nenustatėte naujo paskyros atgavimo metodo, gali būti, kad užpuolikas bando patekti į jūsų paskyrą. Nedelsiant nustatymuose pakeiskite savo paskyros slaptažodį ir nustatykite naują atgavimo metodą." }, "not_supported": "", - "old_version_detected_title": "Aptikti seni kriptografijos duomenys", "recovery_method_removed": { "description_2": "Jei tai padarėte netyčia, šiame seanse galite nustatyti saugias žinutes, kurios pakartotinai užšifruos šio seanso žinučių istoriją nauju atgavimo metodu.", "title": "Atgavimo Metodas Pašalintas", @@ -883,7 +872,6 @@ "latex_maths": "Atvaizduoti LaTeX matematikas žinutėse", "leave_beta": "Palikti beta versiją", "msc3531_hide_messages_pending_moderation": "Leisti moderatoriams slėpti žinutes, laukiančias moderavimo.", - "pinning": "Žinučių prisegimas", "video_rooms": "Vaizdo kambariai", "video_rooms_a_new_way_to_chat": "Naujas būdas kalbėtis balsu ir vaizdu per %(brand)s.", "video_rooms_always_on_voip_channels": "Vaizdo kambariai - tai visada veikiantys VoIP kanalai, įterpti į %(brand)s kambarį.", @@ -1081,19 +1069,16 @@ }, "right_panel": { "add_integrations": "Pridėti valdiklius, tiltus ir botus", - "export_chat_button": "Eksportuoti pokalbį", "files_button": "Failai", "pinned_messages": { "limits": { "other": "Galite prisegti tik iki %(count)s valdiklių" - }, - "title": "Prisegtos žinutės" + } }, "pinned_messages_button": "Prisegta", "video_room_chat": { "title": "Pokalbis" - }, - "widgets_section": "Valdikliai" + } }, "room": { "3pid_invite_email_not_found_account": "Šis kvietimas buvo išsiųstas į %(email)s, kuris nėra susijęs su jūsų paskyra", @@ -1128,11 +1113,6 @@ "failed_reject_invite": "Nepavyko atmesti pakvietimo", "forget_room": "Pamiršti šį kambarį", "forget_space": "Pamiršti šią erdvę", - "header": { - "forget_room_button": "Pamiršti kambarį", - "hide_widgets_button": "Slėpti Valdiklius", - "show_widgets_button": "Rodyti Valdiklius" - }, "inaccessible": "Šiuo metu į šį kambarį ar erdvę negalima patekti.", "inaccessible_name": "%(roomName)s šiuo metu nėra pasiekiamas.", "inaccessible_subtitle_1": "Pabandykite vėliau arba paprašykite kambario ar erdvės administratoriaus patikrinti, ar turite prieigą.", @@ -1163,7 +1143,6 @@ "inviter_unknown": "Nežinoma", "invites_you_text": " kviečia jus", "join_button_account": "Registruotis", - "join_failed_enable_video_rooms": "Norint prisijungti, pirmiausia įjunkite vaizdo kambarius laboratorijose", "join_failed_needs_invite": "Norint peržiūrėti %(roomName)s, turite gauti kvietimą", "join_the_discussion": "Prisijungti prie diskusijos", "join_title": "Prisijunkite prie kambario ir dalyvaukite", @@ -1190,13 +1169,6 @@ "not_found_title_name": "%(roomName)s neegzistuoja.", "peek_join_prompt": "Jūs peržiūrite %(roomName)s. Norite prie jo prisijungti?", "rejoin_button": "Prisijungti iš naujo", - "search": { - "result_count": { - "other": "(~%(count)s rezultatų(-ai))", - "one": "(~%(count)s rezultatas)" - } - }, - "show_labs_settings": "Rodyti laboratorijų nustatymus", "status_bar": { "server_connectivity_lost_description": "Išsiųstos žinutės bus saugomos tol, kol atsiras ryšys.", "server_connectivity_lost_title": "Jungiamumas su šiuo serveriu buvo prarastas." @@ -1217,8 +1189,7 @@ "one": "Įkeliamas %(filename)s ir dar %(count)s failas" }, "uploading_single_file": "Įkeliamas %(filename)s" - }, - "view_failed_enable_video_rooms": "Norint peržiūrėti, pirmiausia įjunkite vaizdo kambarius laboratorijose" + } }, "room_list": { "add_room_label": "Sukurti kambarį", diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json index 10c9e419f4..5db42b861e 100644 --- a/src/i18n/strings/nl.json +++ b/src/i18n/strings/nl.json @@ -726,16 +726,6 @@ "incompatible_database_disable": "Verdergaan met versleuteling uitgeschakeld", "incompatible_database_sign_out_description": "Om jouw kamergeschiedenis niet te verliezen vóór het uitloggen dien je jouw veiligheidssleutel te exporteren. Dat moet vanuit de nieuwere versie van %(brand)s", "incompatible_database_title": "Incompatibele database", - "key_signature_upload_cancelled": "Geannuleerde ondertekening upload", - "key_signature_upload_completed": "Upload voltooid", - "key_signature_upload_failed": "Versturen niet mogelijk", - "key_signature_upload_failed_body": "%(brand)s is een fout tegengekomen tijdens het uploaden van:", - "key_signature_upload_failed_cross_signing_key_signature": "een nieuwe kruiselings ondertekenen ondertekening", - "key_signature_upload_failed_device_cross_signing_key_signature": "een apparaat kruiselings ondertekenen ondertekening", - "key_signature_upload_failed_key_signature": "een sleutel ondertekening", - "key_signature_upload_failed_master_key_signature": "een nieuwe hoofdsleutel ondertekening", - "key_signature_upload_failed_title": "Versturen van ondertekening mislukt", - "key_signature_upload_success_title": "Ondertekening succesvol verstuurd", "messages_not_secure": { "cause_1": "Jouw homeserver", "cause_2": "De homeserver waarmee de persoon die jij verifieert verbonden is", @@ -751,8 +741,6 @@ "warning": "Als je deze nieuwe herstelmethode niet hebt ingesteld, is het mogelijk dat een aanvaller toegang tot jouw account probeert te krijgen. Wijzig onmiddellijk je wachtwoord en stel bij instellingen een nieuwe herstelmethode in." }, "not_supported": "", - "old_version_detected_description": "Er zijn gegevens van een oudere versie van %(brand)s gevonden, die problemen veroorzaakt hebben met de eind-tot-eind-versleuteling in de oude versie. Onlangs vanuit de oude versie verzonden eind-tot-eind-versleutelde berichten zijn mogelijk onontsleutelbaar in deze versie. Ook kunnen berichten die met deze versie uitgewisseld zijn falen. Mocht je problemen ervaren, log dan opnieuw in. Exporteer je sleutels en importeer ze weer om je berichtgeschiedenis te behouden.", - "old_version_detected_title": "Oude cryptografiegegevens gedetecteerd", "recovery_method_removed": { "description_1": "Deze sessie heeft ontdekt dat je veiligheidswachtwoord en -sleutel voor versleutelde berichten zijn verwijderd.", "description_2": "Als je dit per ongeluk hebt gedaan, kan je beveiligde berichten op deze sessie instellen, waarmee de berichtgeschiedenis van deze sessie opnieuw zal versleuteld worden aan de hand van een nieuwe herstelmethode.", @@ -1192,7 +1180,6 @@ "leave_beta": "Beta verlaten", "leave_beta_reload": "Als je de bèta verlaat, wordt %(brand)s opnieuw geladen.", "msc3531_hide_messages_pending_moderation": "Laat moderators berichten verbergen in afwachting van moderatie.", - "pinning": "Berichten vastprikken", "sliding_sync_server_no_support": "Jouw server heeft geen native ondersteuning", "video_rooms": "Video kamers", "video_rooms_a_new_way_to_chat": "Een nieuwe manier om te chatten via spraak en video in %(brand)s.", @@ -1263,9 +1250,7 @@ "error_send_description": "%(brand)s kan jouw locatie niet versturen. Probeer het later opnieuw.", "error_send_title": "We kunnen jouw locatie niet versturen", "error_sharing_live_location": "Er is een fout opgetreden bij het delen van je live locatie", - "error_sharing_live_location_try_again": "Er is een fout opgetreden bij het delen van je live locatie, probeer het opnieuw", "error_stopping_live_location": "Er is een fout opgetreden bij het stoppen van je live locatie", - "error_stopping_live_location_try_again": "Er is een fout opgetreden bij het stoppen van je live locatie, probeer het opnieuw", "expand_map": "Map uitvouwen", "failed_generic": "Kan jouw locatie niet ophalen. Probeer het later opnieuw.", "failed_load_map": "Kan kaart niet laden", @@ -1293,7 +1278,6 @@ "share_type_own": "Mijn huidige locatie", "share_type_pin": "Zet een pin neer", "share_type_prompt": "Welk locatietype wil je delen?", - "stop_and_close": "Stop en sluit", "toggle_attribution": "Attributie in-/uitschakelen" }, "member_list": { @@ -1513,13 +1497,11 @@ }, "right_panel": { "add_integrations": "Widgets, bruggen & bots toevoegen", - "export_chat_button": "Chat exporteren", "files_button": "Bestanden", "pinned_messages": { "limits": { "other": "Je kunt maar %(count)s widgets vastzetten" - }, - "title": "Vastgeprikte berichten" + } }, "pinned_messages_button": "Vastgezet", "poll": { @@ -1552,7 +1534,6 @@ "favourite": "Favoriet", "forget": "Kamer vergeten", "low_priority": "Lage prioriteit", - "mentions_only": "Alleen vermeldingen", "title": "Kameropties", "unfavourite": "Favoriet" }, @@ -1582,16 +1563,7 @@ "forget_room": "Deze kamer vergeten", "forget_space": "Vergeet deze space", "header": { - "close_call_button": "Sluit oproep", - "forget_room_button": "Kamer vergeten", - "hide_widgets_button": "Widgets verbergen", - "room_is_public": "Deze kamer is publiek", - "show_widgets_button": "Widgets tonen", - "video_call_button_ec": "Videogesprek (%(brand)s)", - "video_call_button_jitsi": "Videogesprek (Jitsi)", - "video_call_ec_layout_freedom": "Vrijheid", - "video_call_ec_layout_spotlight": "Schijnwerper", - "video_room_view_chat_button": "Gesprekstijdslijn bekijken" + "room_is_public": "Deze kamer is publiek" }, "inaccessible": "Deze kamer of space is op dit moment niet toegankelijk.", "inaccessible_name": "%(roomName)s is op dit moment niet toegankelijk.", @@ -1623,7 +1595,6 @@ "inviter_unknown": "Onbekend", "invites_you_text": " nodigt je uit", "join_button_account": "Registreren", - "join_failed_enable_video_rooms": "Schakel eerst videokamers in Labs in om deel te nemen", "join_failed_needs_invite": "Om %(roomName)s te bekijken, heb je een uitnodiging nodig", "join_the_discussion": "Neem deel aan de kamer", "join_title": "Doe mee met de kamer om deel te nemen", @@ -1651,13 +1622,6 @@ "peek_join_prompt": "Je bekijkt %(roomName)s. Wilt je eraan deelnemen?", "read_topic": "Klik om het onderwerp te lezen", "rejoin_button": "Opnieuw toetreden", - "search": { - "result_count": { - "one": "(~%(count)s resultaat)", - "other": "(~%(count)s resultaten)" - } - }, - "show_labs_settings": "Lab instellingen weergeven", "status_bar": { "delete_all": "Verwijder alles", "exceeded_resource_limit": "Je bericht is niet verstuurd omdat deze homeserver een systeembronlimiet heeft overschreden. Neem contact op met je dienstbeheerder om de dienst te blijven gebruiken.", @@ -1686,8 +1650,7 @@ "other": "%(filename)s en %(count)s andere worden geüpload" }, "uploading_single_file": "%(filename)s wordt geüpload" - }, - "view_failed_enable_video_rooms": "Schakel eerst videokamers in Labs in om te bekijken" + } }, "room_list": { "add_room_label": "Kamer toevoegen", diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json index 7b14bbaf1d..db08a9bda4 100644 --- a/src/i18n/strings/pl.json +++ b/src/i18n/strings/pl.json @@ -142,7 +142,7 @@ "view_source": "Wyświetl źródło", "yes": "Tak", "zoom_in": "Powiększ", - "zoom_out": "Zmniejsz" + "zoom_out": "Pomniejsz" }, "analytics": { "accept_button": "To jest w porządku", @@ -229,6 +229,7 @@ }, "misconfigured_body": "Poproś swojego administratora %(brand)s by sprawdzić Twoją konfigurację względem niewłaściwych lub zduplikowanych elementów.", "misconfigured_title": "Twój %(brand)s jest źle skonfigurowany", + "mobile_create_account_title": "Jesteś w trakcie tworzenia konta na %(hsName)s", "msisdn_field_description": "Inni użytkownicy mogą Cię zaprosić do pokoi za pomocą Twoich danych kontaktowych", "msisdn_field_label": "Telefon", "msisdn_field_number_invalid": "Ten numer telefonu nie wygląda dobrze, sprawdź go ponownie", @@ -369,6 +370,8 @@ "email_resend_prompt": "Nic nie przyszło? Wyślij ponownie", "email_resent": "Wysłano ponownie!", "fallback_button": "Rozpocznij uwierzytelnienie", + "mas_cross_signing_reset_cta": "Przejdź do swojego konta", + "mas_cross_signing_reset_description": "Zresetuj swoją tożsamość poprzez dostawcę swojego konta, wróć i kliknij „Ponów”.", "msisdn": "Wysłano wiadomość tekstową do %(msisdn)s", "msisdn_token_incorrect": "Niepoprawny token", "msisdn_token_prompt": "Wpisz kod, który jest tam zawarty:", @@ -474,7 +477,6 @@ "encrypted": "Szyfrowane", "encryption_enabled": "Włączono szyfrowanie", "error": "Błąd", - "extensions": "Rozszerzenia", "faq": "Najczęściej zadawane pytania", "favourites": "Ulubione", "feedback": "Opinia użytkownika", @@ -904,16 +906,6 @@ "incompatible_database_disable": "Kontynuuj Z Wyłączonym Szyfrowaniem", "incompatible_database_sign_out_description": "Aby uniknąć utraty historii czatu, eksportuj swoje klucze pokoju przed wylogowaniem. Musisz powrócić do nowszej wersji %(brand)s, aby do zrobić", "incompatible_database_title": "Niekompatybilna baza danych", - "key_signature_upload_cancelled": "Przesyłanie sygnatury zostało anulowane", - "key_signature_upload_completed": "Przesyłanie zakończone", - "key_signature_upload_failed": "Nie można wysłać", - "key_signature_upload_failed_body": "%(brand)s napotkał błąd podczas wysyłania:", - "key_signature_upload_failed_cross_signing_key_signature": "nowa sygnatura kluczu weryfikacji krzyżowej", - "key_signature_upload_failed_device_cross_signing_key_signature": "sygnatura weryfikacji krzyżowej urządzenia", - "key_signature_upload_failed_key_signature": "sygnatura klucza", - "key_signature_upload_failed_master_key_signature": "nowa główna sygnatura klucza", - "key_signature_upload_failed_title": "Wysłanie podpisu nie powiodło się", - "key_signature_upload_success_title": "Wysłanie podpisu udało się", "messages_not_secure": { "cause_1": "Twój serwer domowy", "cause_2": "Użytkownik, którego weryfikujesz jest połączony z serwerem domowym", @@ -929,8 +921,6 @@ "warning": "Jeżeli nie ustawiłeś nowej metody odzyskiwania, atakujący może uzyskać dostęp do Twojego konta. Zmień hasło konta i natychmiast ustaw nową metodę odzyskiwania w Ustawieniach." }, "not_supported": "", - "old_version_detected_description": "Dane ze starszej wersji %(brand)s zostały wykryte. Spowoduje to błędne działanie kryptografii typu end-to-end w starszej wersji. Wiadomości szyfrowane end-to-end wymieniane ostatnio podczas korzystania ze starszej wersji mogą być niemożliwe do odszyfrowywane w tej wersji. Może to również spowodować niepowodzenie wiadomości wymienianych z tą wersją. Jeśli wystąpią problemy, wyloguj się i zaloguj ponownie. Aby zachować historię wiadomości, wyeksportuj i ponownie zaimportuj klucze.", - "old_version_detected_title": "Wykryto stare dane kryptograficzne", "recovery_method_removed": { "description_1": "Ta sesja wykryła, że Twoja fraza bezpieczeństwa i klucz dla bezpiecznych wiadomości zostały usunięte.", "description_2": "Jeśli zrobiłeś to przez pomyłkę, możesz ustawić bezpieczne wiadomości w tej sesji, co zaszyfruje ponownie historię wiadomości za pomocą nowej metody odzyskiwania.", @@ -1409,7 +1399,7 @@ "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", "automatic_debug_logs_key_backup": "Automatycznie wysyłaj logi debugowania gdy kopia zapasowa kluczy nie działa", - "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_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.", "beta_feedback_title": "%(featureName)s opinia Beta", @@ -1426,8 +1416,11 @@ "dynamic_room_predecessors": "Dynamiczne poprzedniki pokoju", "dynamic_room_predecessors_description": "Włącz MSC3946 (dla opóźnionych archiwów pokoju)", "element_call_video_rooms": "Pokoje rozmów wideo Element Call", + "exclude_insecure_devices": "Wyklucz niezabezpieczone urządzenia wysyłając/odbierając wiadomości", + "exclude_insecure_devices_description": "Gdy ten tryb jest włączony, wiadomości szyfrowane nie zostaną udostępnione niezweryfikowanym urządzeniom, a wiadomości odbierane od tych urządzeń wyświetlą błąd. Należy pamiętać, że jeśli włączysz ten tryb, możesz nie być w stanie komunikować się z użytkownikami, którzy nie zweryfikowali swoich urządzeń.", "experimental_description": "Chcesz poeksperymentować? Wypróbuj nasze najnowsze pomysły w trakcie rozwoju. Przedstawione funkcje nie zostały w pełni ukończone; mogą być niestabilne; mogą się zmienić lub zostać kompletnie porzucone. Dowiedz się więcej.", "experimental_section": "Wczesny podgląd", + "extended_profiles_msc_support": "Serwer musi wspierać MSC4133", "feature_disable_call_per_sender_encryption": "Wyłącz szyfrowanie nadawcy dla Element Call", "feature_wysiwyg_composer_description": "Użyj bogatego edytora tekstu zamiast edytora Markdown podczas tworzenia wiadomości.", "group_calls": "Nowe wrażenia rozmów grupowych", @@ -1457,16 +1450,12 @@ "location_share_live_description": "Implementacja tymczasowa. Lokalizacje są zapisywane w historii pokoju.", "mjolnir": "Nowe sposoby na ignorowanie osób", "msc3531_hide_messages_pending_moderation": "Daj moderatorom ukrycie wiadomości które są sprawdzane.", - "new_room_decoration_ui": "Nowy nagłówek pokoju", - "new_room_decoration_ui_beta_caption": "Nowy wygląd dla Twoich pokoi dzięki prostszemu i łatwiejszemu w użyciu nagłówkowi.", - "new_room_decoration_ui_beta_title": "Nagłówek pokoju", "notification_settings": "Ustawienia nowych powiadomień", "notification_settings_beta_caption": "Przedstawiamy prostszy sposób zmiany ustawień powiadomień. Dostosuj %(brand)s wedle swojego upodobania.", "notification_settings_beta_title": "Ustawienia powiadomień", "notifications": "Włącz panel powiadomień w nagłówku pokoju.", "oidc_native_flow": "Uwierzytelnianie natywne OIDC", "oidc_native_flow_description": "⚠ OSTRZEŻENIE: Funkcja eksperymentalna. Użyj uwierzytelniania natywnego OIDC, gdy jest wspierane przez serwer.", - "pinning": "Przypinanie wiadomości", "release_announcement": "Ogłoszenie o wydaniu", "render_reaction_images": "Renderuj niestandardowe obrazy w reakcjach", "render_reaction_images_description": "Czasami określane jako \"emoji niestandardowe\".", @@ -1555,9 +1544,7 @@ "error_send_description": "%(brand)s nie mógł wysłać Twojej lokalizacji. Spróbuj ponownie później.", "error_send_title": "Nie mogliśmy wysłać Twojej lokalizacji", "error_sharing_live_location": "Wystąpił błąd podczas udostępniania Twojej lokalizacji na żywo", - "error_sharing_live_location_try_again": "Wystąpił błąd podczas udostępniania Twojej lokalizacji na żywo, spróbuj ponownie", "error_stopping_live_location": "Wystąpił błąd podczas kończenia lokalizacji na żywo", - "error_stopping_live_location_try_again": "Wystąpił błąd podczas zatrzymywania Twojej lokalizacji na żywo, spróbuj ponownie", "expand_map": "Rozwiń mapę", "failed_generic": "Nie udało się pobrać Twojej lokalizacji. Spróbuj ponownie później.", "failed_load_map": "Nie udało się wczytać mapy", @@ -1587,7 +1574,6 @@ "share_type_own": "Moja aktualna lokalizacja", "share_type_pin": "Upuść przypinkę", "share_type_prompt": "Jaki typ lokalizacji chcesz udostępnić?", - "stop_and_close": "Zatrzymaj i zamknij", "toggle_attribution": "Przełącz atrybucje" }, "member_list": { @@ -1835,25 +1821,28 @@ "right_panel": { "add_integrations": "Dodaj rozszerzenia", "add_topic": "Dodaj temat", - "export_chat_button": "Eksportuj czat", + "extensions_button": "Rozszerzenia", "extensions_empty_description": "Wybierz “%(addIntegrations)s”, aby przeglądać i dodawać rozszerzenia do tego pokoju", "extensions_empty_title": "Zwiększ produktywność dzięki większej liczbie narzędzi, widżetów i botów", "files_button": "Pliki", - "info": "Info", "pinned_messages": { "empty_description": "Znajdź wiadomość i wybierz „%(pinAction)s”, aby załączyć ją tutaj.", "empty_title": "Przypinaj ważne wiadomości, aby można było je łatwo znaleźć", "header": { - "one": "Przypięto 1 wiadomość", - "few": "Przypięto %(count)s wiadomości", - "many": "Przypięto %(count)s wiadomości" + "one": "1 przypięta wiadomość", + "few": "%(count)s przypięte wiadomości", + "many": "%(count)s przypiętych wiadomości" }, "limits": { "other": "Możesz przypiąć do %(count)s widżetów" }, "menu": "Otwórz menu", + "release_announcement": { + "close": "Ok", + "description": "Wszystkie przypięte wiadomości są tutaj. Najedź na dowolną wiadomość i wybierz „Przypnij”, aby dodać.", + "title": "Wszystkie nowe przypięte wiadomości" + }, "reply_thread": "Odpowiedz na wiadomość w wątku", - "title": "Przypięte wiadomości", "unpin_all": { "button": "Odepnij wszystkie wiadomości", "content": "Upewnij się, czy naprawdę chcesz usunąć wszystkie przypięte wiadomości. Tej akcji nie można cofnąć.", @@ -1895,8 +1884,7 @@ }, "video_room_chat": { "title": "Czat" - }, - "widgets_section": "Widżety" + } }, "room": { "3pid_invite_email_not_found_account": "To zaproszenie zostało wysłane do %(email)s, które nie jest powiązane z Twoim kontem", @@ -1917,7 +1905,6 @@ "low_priority": "Niski priorytet", "mark_read": "Oznacz jako przeczytane", "mark_unread": "Oznacz jako nieprzeczytane", - "mentions_only": "Tylko wzmianki", "notifications_default": "Dopasuj z ustawieniami domyślnymi", "notifications_mute": "Wycisz pokój", "title": "Ustawienia pokoju", @@ -1960,24 +1947,14 @@ "forget_room": "Zapomnij o tym pokoju", "forget_space": "Zapomnij tą przestrzeń", "header": { - "close_call_button": "Zamknij połączenie", - "forget_room_button": "Zapomnij pokój", - "hide_widgets_button": "Ukryj widżety", "n_people_asking_to_join": { "one": "Prosi o dołączenie", "few": "%(count)s osoby proszą o dołączenie", "many": "%(count)s osób prosi o dołączenie" }, - "room_is_public": "Ten pokój jest publiczny", - "show_widgets_button": "Pokaż widżety", - "video_call_button_ec": "Rozmowa wideo (%(brand)s)", - "video_call_button_jitsi": "Rozmowa wideo (Jitsi)", - "video_call_button_legacy": "Stary tryb połączenia video", - "video_call_ec_change_layout": "Zmień układ", - "video_call_ec_layout_freedom": "Wolność", - "video_call_ec_layout_spotlight": "Centrum uwagi", - "video_room_view_chat_button": "Wyświetl oś czasu czatu" + "room_is_public": "Ten pokój jest publiczny" }, + "header_avatar_open_settings_label": "Otwórz ustawienia pokoju", "header_face_pile_tooltip": "Osoby", "header_untrusted_label": "Niezaufany", "inaccessible": "Ten pokój lub przestrzeń nie jest dostępna w tym momencie.", @@ -2011,7 +1988,6 @@ "inviter_unknown": "Nieznany", "invites_you_text": " zaprasza cię", "join_button_account": "Zarejestruj się", - "join_failed_enable_video_rooms": "Aby dołączyć, włącz najpierw pokoje wideo w laboratoriach", "join_failed_needs_invite": "Aby wyświetlić %(roomName)s, potrzebujesz zaproszenia", "join_the_discussion": "Dołącz do dyskusji", "join_title": "Dołącz do pokoju, aby uczestniczyć", @@ -2049,6 +2025,7 @@ "not_found_title": "Ten pokój lub przestrzeń nie istnieje.", "not_found_title_name": "%(roomName)s nie istnieje.", "peek_join_prompt": "Przeglądasz %(roomName)s. Czy chcesz dołączyć do pokoju?", + "pinned_message_badge": "Przypięta wiadomość", "pinned_message_banner": { "button_close_list": "Zamknij listę", "button_view_all": "Pokaż wszystkie", @@ -2070,10 +2047,6 @@ "search": { "all_rooms_button": "Wyszukaj wszystkie pokoje", "placeholder": "Szukaj wiadomości...", - "result_count": { - "one": "(~%(count)s wynik)", - "other": "(~%(count)s wyników)" - }, "summary": { "one": "Znaleziono 1 wynik dla \"\"", "few": "Znaleziono %(count)s wyniki dla \"\"", @@ -2081,7 +2054,6 @@ }, "this_room_button": "Wyszukaj ten pokój" }, - "show_labs_settings": "Pokaż ustawienia laboratoriów", "status_bar": { "delete_all": "Usuń wszystkie", "exceeded_resource_limit": "Wiadomość nie została wysłana, ponieważ serwer domowy przekroczył limit swoich zasobów. Skontaktuj się z administratorem serwisu, aby kontynuować.", @@ -2112,7 +2084,6 @@ }, "uploading_single_file": "Przesyłanie %(filename)s" }, - "view_failed_enable_video_rooms": "Aby wyświetlić, włącz najpierw pokoje wideo w laboratoriach", "waiting_for_join_subtitle": "Jak tylko zaproszeni użytkownicy dołączą do %(brand)s, będziesz mógł czatować w pokoju szyfrowanym end-to-end", "waiting_for_join_title": "Czekanie na użytkowników %(brand)s" }, @@ -2216,6 +2187,8 @@ "error_deleting_alias_description": "Wystąpił błąd podczas usuwania tego adresu. Może już nie istnieć lub wystąpił tymczasowy błąd.", "error_deleting_alias_description_forbidden": "Nie posiadasz uprawnień do usunięcia tego adresu.", "error_deleting_alias_title": "Wystąpił błąd podczas usuwania adresu", + "error_publishing": "Nie można opublikować pokoju", + "error_publishing_detail": "Wystąpił błąd podczas publikowania tego pokoju", "error_save_space_settings": "Nie udało się zapisać ustawień przestrzeni.", "error_updating_alias_description": "Wystąpił błąd podczas aktualizowania alternatywnego adresu pokoju. Serwer mógł odrzucić żądanie lub wystąpił błąd tymczasowy.", "error_updating_canonical_alias_description": "Wystąpił błąd podczas aktualizowania adresu głównego pokoju. Serwer mógł odrzucić żądanie lub wystąpił błąd tymczasowy.", @@ -2721,6 +2694,7 @@ "keyboard_view_shortcuts_button": "Kliknij tutaj aby wyświetlić wszystkie skróty klawiaturowe.", "media_heading": "Obrazy, GIFy i wideo", "presence_description": "Udostępnij swoją aktywność i status z innymi.", + "publish_timezone": "Opublikuj strefę czasową na profilu publicznym", "rm_lifetime": "Długość życia znacznika odczytu (ms)", "rm_lifetime_offscreen": "Długość życia znacznika odczytu poza ekranem (ms)", "room_directory_heading": "Katalog pokoju", @@ -2801,7 +2775,7 @@ "message_search_room_progress": "%(doneRooms)s z %(totalRooms)s", "message_search_section": "Wyszukiwanie wiadomości", "message_search_sleep_time": "Jak szybko powinny być pobierane wiadomości.", - "message_search_space_used": "Użyta powierzchnia:", + "message_search_space_used": "Użyte miejsce:", "message_search_unsupported": "%(brand)s brakuje niektórych komponentów wymaganych do bezpiecznego przechowywania wiadomości szyfrowanych lokalnie. Jeśli chcesz eksperymentować z tą funkcją, zbuduj własny %(brand)s Desktop z dodanymi komponentami wyszukiwania.", "message_search_unsupported_web": "%(brand)s nie jest w stanie bezpiecznie przechowywać wiadomości szyfrowanych lokalnie, gdy działa w przeglądarce. Użyj Desktop, aby wiadomości pojawiły się w wynikach wyszukiwania.", "record_session_details": "Zapisz nazwę klienta, wersję i URL, aby łatwiej rozpoznawać sesje w menedżerze sesji", @@ -3293,6 +3267,8 @@ "historical_event_no_key_backup": "Historia wiadomości nie jest dostępna na tym urządzeniu", "historical_event_unverified_device": "Musisz zweryfikować to urządzenie, aby wyświetlić historię wiadomości", "historical_event_user_not_joined": "Nie masz dostępu do tej wiadomości", + "sender_identity_previously_verified": "Zweryfikowana tożsamość uległa zmianie", + "sender_unsigned_device": "Zaszyfrowano przez urządzenie niezweryfikowane przez właściciela.", "unable_to_decrypt": "Nie można rozszyfrować wiadomości" }, "disambiguated_profile": "%(displayName)s (%(matrixId)s)", @@ -3300,6 +3276,7 @@ "download_action_downloading": "Pobieranie", "download_failed": "Błąd pobierania", "download_failed_description": "Wystąpił błąd podczas pobierania tego pliku", + "e2e_state": "Stan szyfrowania end-to-end", "edits": { "tooltip_label": "Edytowano w %(date)s. Kliknij, aby zobaczyć zmiany.", "tooltip_sub": "Kliknij, aby wyświetlić edycje", diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json index 54c74671aa..b9fb5bbcff 100644 --- a/src/i18n/strings/pt_BR.json +++ b/src/i18n/strings/pt_BR.json @@ -625,16 +625,6 @@ "incompatible_database_disable": "Continuar com criptografia desativada", "incompatible_database_sign_out_description": "Para evitar perder seu histórico de bate-papo, você precisa exportar as chaves da sua sala antes de se desconectar. Quando entrar novamente, você precisará usar a versão mais atual do %(brand)s", "incompatible_database_title": "Banco de dados incompatível", - "key_signature_upload_cancelled": "Envio cancelado da assinatura", - "key_signature_upload_completed": "Envio concluído", - "key_signature_upload_failed": "Falha no envio", - "key_signature_upload_failed_body": "%(brand)s encontrou um erro durante o envio de:", - "key_signature_upload_failed_cross_signing_key_signature": "uma nova chave de autoverificação", - "key_signature_upload_failed_device_cross_signing_key_signature": "um aparelho autoverificado", - "key_signature_upload_failed_key_signature": "uma assinatura de chave", - "key_signature_upload_failed_master_key_signature": "uma nova chave mestra de assinatura", - "key_signature_upload_failed_title": "O envio da assinatura falhou", - "key_signature_upload_success_title": "Envio bem-sucedido da assinatura", "messages_not_secure": { "cause_1": "Seu servidor local", "cause_2": "O servidor doméstico do usuário que você está verificando está conectado", @@ -650,8 +640,6 @@ "warning": "Se você não definiu a nova opção de recuperação, um invasor pode estar tentando acessar sua conta. Altere a senha da sua conta e defina uma nova opção de recuperação imediatamente nas Configurações." }, "not_supported": "", - "old_version_detected_description": "Detectamos uma versão mais antiga do %(brand)s. Isso fará com que a criptografia de ponta a ponta não funcione corretamente. As mensagens criptografadas de ponta a ponta trocadas recentemente, enquanto você usava a versão mais antiga, talvez não sejam descriptografáveis na nova versão. Isso também poderá fazer com que as mensagens trocadas nesta sessão falhem na mais atual. Se você tiver problemas, desconecte-se e entre novamente. Para manter o histórico de mensagens, exporte e reimporte suas chaves.", - "old_version_detected_title": "Dados de criptografia antigos foram detectados", "recovery_method_removed": { "description_1": "Esta sessão detectou que a sua Frase de Segurança e a chave para mensagens seguras foram removidas.", "description_2": "Se você fez isso acidentalmente, você pode configurar Mensagens Seguras nesta sessão, o que vai re-criptografar o histórico de mensagens desta sessão com uma nova opção de recuperação.", @@ -999,7 +987,6 @@ "group_threads": "Tópicos", "group_voip": "Voz e vídeo", "latex_maths": "Renderizar fórmulas matemáticas LaTeX em mensagens", - "pinning": "Fixar mensagem", "video_rooms": "Salas de vídeo" }, "labs_mjolnir": { @@ -1193,13 +1180,11 @@ }, "right_panel": { "add_integrations": "Adicionar widgets, integrações e bots", - "export_chat_button": "Exportar conversa", "files_button": "Arquivos", "pinned_messages": { "limits": { "other": "Você pode fixar até %(count)s widgets" - }, - "title": "Mensagens fixadas" + } }, "poll": { "final_result": { @@ -1248,10 +1233,7 @@ "failed_reject_invite": "Não foi possível recusar o convite", "forget_room": "Esquecer esta sala", "header": { - "forget_room_button": "Esquecer sala", - "hide_widgets_button": "Esconder widgets", - "room_is_public": "Esta sala é pública", - "show_widgets_button": "Mostrar widgets" + "room_is_public": "Esta sala é pública" }, "inaccessible_name": "%(roomName)s não está acessível neste momento.", "intro": { @@ -1292,12 +1274,6 @@ "not_found_title_name": "%(roomName)s não existe.", "peek_join_prompt": "Você está visualizando %(roomName)s. Deseja participar?", "rejoin_button": "Entrar novamente", - "search": { - "result_count": { - "one": "(~%(count)s resultado)", - "other": "(~%(count)s resultados)" - } - }, "status_bar": { "exceeded_resource_limit": "Sua mensagem não foi enviada porque este servidor local excedeu o limite de recursos. Por favor, entre em contato com o seu administrador de serviços para continuar usando o serviço.", "monthly_user_limit_reached": "Sua mensagem não foi enviada porque este homeserver atingiu seu Limite de usuário ativo mensal. Por favor, entre em contato com o seu administrador de serviços para continuar usando o serviço.", diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index da18850d71..6006756003 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -862,16 +862,6 @@ "incompatible_database_disable": "Продолжить с отключенным шифрованием", "incompatible_database_sign_out_description": "Чтобы не потерять историю чата, вы должны экспортировать ключи от комнаты перед выходом из системы. Для этого вам нужно будет вернуться к более новой версии %(brand)s", "incompatible_database_title": "Несовместимая база данных", - "key_signature_upload_cancelled": "Отправка отпечатка отменена", - "key_signature_upload_completed": "Отправка успешно завершена", - "key_signature_upload_failed": "Невозможно отправить", - "key_signature_upload_failed_body": "%(brand)s обнаружил ошибку при загрузке файла:", - "key_signature_upload_failed_cross_signing_key_signature": "новый ключ подписи для кросс-подписи", - "key_signature_upload_failed_device_cross_signing_key_signature": "подпись устройства для кросс-подписи", - "key_signature_upload_failed_key_signature": "отпечаток ключа", - "key_signature_upload_failed_master_key_signature": "новая подпись мастер-ключа", - "key_signature_upload_failed_title": "Сбой отправки отпечатка", - "key_signature_upload_success_title": "Отпечаток успешно отправлен", "messages_not_secure": { "cause_1": "Ваш домашний сервер", "cause_2": "Домашний сервер пользователя, которого вы подтверждаете", @@ -887,8 +877,6 @@ "warning": "Если вы не задали новый способ восстановления, злоумышленник может получить доступ к вашей учётной записи. Смените пароль учётной записи и сразу же задайте новый способ восстановления в настройках." }, "not_supported": "<не поддерживается>", - "old_version_detected_description": "Обнаружены данные из более старой версии %(brand)s. Это приведет к сбою криптографии в более ранней версии. В этой версии не могут быть расшифрованы сообщения, которые использовались недавно при использовании старой версии. Это также может привести к сбою обмена сообщениями с этой версией. Если возникают неполадки, выйдите и снова войдите в систему. Чтобы сохранить журнал сообщений, экспортируйте и повторно импортируйте ключи.", - "old_version_detected_title": "Обнаружены старые криптографические данные", "recovery_method_removed": { "description_1": "Этот сеанс обнаружил, что ваши секретная фраза и ключ безопасности для защищенных сообщений были удалены.", "description_2": "Если вы сделали это по ошибке, вы можете настроить защищённые сообщения в этом сеансе, что снова зашифрует историю сообщений в этом сеансе с помощью нового метода восстановления.", @@ -1405,14 +1393,12 @@ "location_share_live_description": "Временная реализация. Местоположения сохраняются в истории комнаты.", "mjolnir": "Новые способы игнорировать людей", "msc3531_hide_messages_pending_moderation": "Позволяет модераторам скрывать сообщения, ожидающие модерации.", - "new_room_decoration_ui": "Новый заголовок комнаты и интерфейс подробной информации, находится в стадии активной разработки", "notification_settings": "Новые настройки уведомлений", "notification_settings_beta_caption": "Представляем вам более простой способ изменения настроек уведомлений. Настройте свои настройки так %(brand)s, как вам удобно.", "notification_settings_beta_title": "Настройки уведомлений", "notifications": "Включить панель уведомлений в заголовке комнаты", "oidc_native_flow": "Встроенная аутентификация OIDC", "oidc_native_flow_description": "⚠ ВНИМАНИЕ: Экспериментально. Используйте встроенную аутентификацию OIDC, если она поддерживается сервером.", - "pinning": "Закреплённые сообщения", "render_reaction_images": "Обработка пользовательских изображений в реакциях", "render_reaction_images_description": "Иногда их называют \"пользовательскими эмодзи\".", "report_to_moderators": "Пожаловаться модераторам", @@ -1498,9 +1484,7 @@ "error_send_description": "%(brand)s не удаётся отправить ваше местоположение. Пожалуйста, повторите попытку позже.", "error_send_title": "Мы не смогли отправить ваше местоположение", "error_sharing_live_location": "Произошла ошибка при передаче информации о вашем местоположении в реальном времени", - "error_sharing_live_location_try_again": "При передаче информации о вашем местоположении произошла ошибка, попробуйте ещё раз", "error_stopping_live_location": "Произошла ошибка при остановке вашего местоположения в реальном времени", - "error_stopping_live_location_try_again": "При остановки передачи информации о вашем местоположении произошла ошибка, попробуйте ещё раз", "expand_map": "Развернуть карту", "failed_generic": "Не удалось определить ваше местоположение. Пожалуйста, повторите попытку позже.", "failed_load_map": "Не удается загрузить карту", @@ -1530,7 +1514,6 @@ "share_type_own": "Моё текущее местоположение", "share_type_pin": "Маркер на карте", "share_type_prompt": "Каким типом местоположения вы хотите поделиться?", - "stop_and_close": "Остановить и закрыть", "toggle_attribution": "Переключить атрибуцию" }, "member_list": { @@ -1770,13 +1753,11 @@ }, "right_panel": { "add_integrations": "Добавить виджеты, мосты и ботов", - "export_chat_button": "Экспорт чата", "files_button": "Файлы", "pinned_messages": { "limits": { "other": "Вы можете закрепить не более %(count)s виджетов" - }, - "title": "Закреплённые сообщения" + } }, "pinned_messages_button": "Закреплено", "poll": { @@ -1814,8 +1795,7 @@ }, "video_room_chat": { "title": "Чат" - }, - "widgets_section": "Виджеты" + } }, "room": { "3pid_invite_email_not_found_account": "Это приглашение отправлено на %(email)s, которая не связана с вашей учетной записью", @@ -1835,7 +1815,6 @@ "forget": "Забыть комнату", "low_priority": "Маловажные", "mark_read": "Отметить как прочитанное", - "mentions_only": "Только упоминания", "notifications_default": "Соответствует настройке по умолчанию", "notifications_mute": "Заглушить комнату", "title": "Настройки комнаты", @@ -1878,22 +1857,12 @@ "forget_room": "Забыть эту комнату", "forget_space": "Забыть это пространство", "header": { - "close_call_button": "Закрыть звонок", - "forget_room_button": "Забыть комнату", - "hide_widgets_button": "Скрыть виджеты", "n_people_asking_to_join": { "one": "Просит присоединиться", "few": "%(count)s пользователя запрашивают присоединения", "many": "%(count)s пользователей запрашивают присоединения" }, - "room_is_public": "Это публичная комната", - "show_widgets_button": "Показать виджеты", - "video_call_button_ec": "Видеозвонок (%(brand)s)", - "video_call_button_jitsi": "Видеозвонок (Jitsi)", - "video_call_ec_change_layout": "Изменить расположение", - "video_call_ec_layout_freedom": "Свободное", - "video_call_ec_layout_spotlight": "Освещение", - "video_room_view_chat_button": "Посмотреть ленту сообщений" + "room_is_public": "Это публичная комната" }, "header_untrusted_label": "Ненадёжный", "inaccessible": "Эта комната или пространство в данный момент недоступны.", @@ -1927,7 +1896,6 @@ "inviter_unknown": "Неизвестно", "invites_you_text": " пригласил(а) тебя", "join_button_account": "Зарегистрироваться", - "join_failed_enable_video_rooms": "Чтобы присоединиться, сначала включите видеокомнаты в лаборатории", "join_failed_needs_invite": "Для просмотра %(roomName)s необходимо приглашение", "join_the_discussion": "Войти в комнату", "join_title": "Присоединяйтесь к комнате для участия", @@ -1970,13 +1938,8 @@ "rejoin_button": "Пере-присоединение", "search": { "all_rooms_button": "Поиск по всем комнатам", - "result_count": { - "other": "(~%(count)s результатов)", - "one": "(~%(count)s результат)" - }, "this_room_button": "Поиск в этой комнате" }, - "show_labs_settings": "Показать настройки лаборатории", "status_bar": { "delete_all": "Удалить все", "exceeded_resource_limit": "Ваше сообщение не было отправлено, потому что этот домашний сервер превысил лимит ресурсов. обратитесь к администратору службы, чтобы продолжить использование службы.", @@ -2007,7 +1970,6 @@ }, "uploading_single_file": "Отправка %(filename)s" }, - "view_failed_enable_video_rooms": "Для просмотра сначала включите видеокомнаты в лаборатории", "waiting_for_join_subtitle": "Как только приглашенные пользователи присоединятся %(brand)s, вы сможете общаться в чате, а комната будет полностью зашифрована", "waiting_for_join_title": "Ожидание присоединения пользователей %(brand)s" }, diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 43ce04b06d..38dc69d228 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -862,16 +862,6 @@ "incompatible_database_disable": "Pokračovať s vypnutým šifrovaním", "incompatible_database_sign_out_description": "Aby ste po odhlásení neprišli o možnosť čítať históriu šifrovaných konverzácií, mali by ste si ešte pred odhlásením exportovať šifrovacie kľúče miestností. Prosím vráťte sa k novšej verzii %(brand)s a exportujte si kľúče", "incompatible_database_title": "Nekompatibilná databáza", - "key_signature_upload_cancelled": "Zrušené nahrávanie podpisu", - "key_signature_upload_completed": "Nahrávanie dokončené", - "key_signature_upload_failed": "Nie je možné nahrať", - "key_signature_upload_failed_body": "%(brand)s zaznamenal chybu pri nahrávaní:", - "key_signature_upload_failed_cross_signing_key_signature": "nový podpis kľúča pre krížové podpisovanie", - "key_signature_upload_failed_device_cross_signing_key_signature": "krížový podpis zariadenia", - "key_signature_upload_failed_key_signature": "podpis kľúča", - "key_signature_upload_failed_master_key_signature": "nový podpis hlavného kľúča", - "key_signature_upload_failed_title": "Nahrávanie podpisu zlyhalo", - "key_signature_upload_success_title": "Úspešné nahratie podpisu", "messages_not_secure": { "cause_1": "Váš domovský server", "cause_2": "Domovský server, ku ktorému je pripojený používateľ, ktorého overujete", @@ -887,8 +877,6 @@ "warning": "Ak ste si nenastavili nový spôsob obnovenia, je možné, že útočník sa pokúša dostať k vášmu účtu. Radšej si ihneď zmeňte vaše heslo a nastavte si nový spôsob obnovenia v Nastaveniach." }, "not_supported": "", - "old_version_detected_description": "Boli zistené údaje zo staršej verzie %(brand)s. To spôsobilo nefunkčnosť end-to-end kryptografie v staršej verzii. End-to-end šifrované správy, ktoré boli nedávno vymenené pri používaní staršej verzie, sa v tejto verzii nemusia dať dešifrovať. To môže spôsobiť aj zlyhanie správ vymenených pomocou tejto verzie. Ak sa vyskytnú problémy, odhláste sa a znova sa prihláste. Ak chcete zachovať históriu správ, exportujte a znovu importujte svoje kľúče.", - "old_version_detected_title": "Nájdené zastaralé kryptografické údaje", "recovery_method_removed": { "description_1": "Táto relácia zistila, že vaša bezpečnostná fráza a kľúč pre zabezpečené správy boli odstránené.", "description_2": "Ak ste to urobili omylom, môžete v tejto relácii nastaviť Zabezpečené správy, ktoré znovu zašifrujú históriu správ tejto relácie pomocou novej metódy obnovy.", @@ -1410,14 +1398,12 @@ "location_share_live_description": "Dočasná implementácia. Polohy ostávajú v histórii miestnosti.", "mjolnir": "Nové spôsoby ignorovania ľudí", "msc3531_hide_messages_pending_moderation": "Umožniť moderátorom skryť správy čakajúce na schválenie.", - "new_room_decoration_ui": "V štádiu aktívneho vývoja, nová hlavička miestnosti a rozhranie s detailmi", "notification_settings": "Nové nastavenia oznámení", "notification_settings_beta_caption": "Predstavujeme jednoduchší spôsob zmeny nastavení oznámení. Prispôsobte si svoju aplikáciu %(brand)s, presne podľa svojich predstáv.", "notification_settings_beta_title": "Nastavenia oznámení", "notifications": "Povolenie panelu oznámení v záhlaví miestnosti", "oidc_native_flow": "Povoliť nové natívne toky OIDC (v štádiu aktívneho vývoja)", "oidc_native_flow_description": "⚠ VAROVANIE: Experimentálne. Použite natívne overenie OIDC, ak je podporované serverom.", - "pinning": "Pripnutie správ", "render_reaction_images": "Vykresľovať vlastné obrázky v reakciách", "render_reaction_images_description": "Niekedy sa označujú ako „vlastné emotikony“.", "report_to_moderators": "Nahlásiť moderátorom", @@ -1503,9 +1489,7 @@ "error_send_description": "%(brand)s nemohol odoslať vašu polohu. Skúste to prosím neskôr.", "error_send_title": "Nepodarilo sa nám odoslať vašu polohu", "error_sharing_live_location": "Počas zdieľania vašej polohy v reálnom čase došlo k chybe", - "error_sharing_live_location_try_again": "Počas zdieľania vašej polohy v reálnom čase došlo k chybe, skúste to prosím znova", "error_stopping_live_location": "Pri zastavovaní zdieľania polohy v reálnom čase došlo k chybe", - "error_stopping_live_location_try_again": "Pri vypínaní polohy v reálnom čase došlo k chybe, skúste to prosím znova", "expand_map": "Zväčšiť mapu", "failed_generic": "Nepodarilo sa načítať vašu polohu. Skúste to prosím neskôr.", "failed_load_map": "Nie je možné načítať mapu", @@ -1535,7 +1519,6 @@ "share_type_own": "Moja aktuálna poloha", "share_type_pin": "Označiť špendlíkom", "share_type_prompt": "Aký typ polohy chcete zdieľať?", - "stop_and_close": "Zastaviť a zavrieť", "toggle_attribution": "Prepínanie atribútu" }, "member_list": { @@ -1776,13 +1759,11 @@ }, "right_panel": { "add_integrations": "Pridať widgety, premostenia a boty", - "export_chat_button": "Exportovať konverzáciu", "files_button": "Súbory", "pinned_messages": { "limits": { "other": "Môžete pripnúť iba %(count)s widgetov" - }, - "title": "Pripnuté správy" + } }, "pinned_messages_button": "Pripnuté", "poll": { @@ -1818,8 +1799,7 @@ }, "video_room_chat": { "title": "Konverzácia" - }, - "widgets_section": "Widgety" + } }, "room": { "3pid_invite_email_not_found_account": "Táto pozvánka bola odoslaná na %(email)s, ktorý nie je spojený s vaším účtom", @@ -1839,7 +1819,6 @@ "forget": "Zabudnúť miestnosť", "low_priority": "Nízka priorita", "mark_read": "Označiť ako prečítané", - "mentions_only": "Iba zmienky", "notifications_default": "Rovnaké ako predvolené nastavenie", "notifications_mute": "Stlmiť miestnosť", "title": "Možnosti miestnosti", @@ -1882,23 +1861,12 @@ "forget_room": "Zabudnúť túto miestnosť", "forget_space": "Zabudnúť tento priestor", "header": { - "close_call_button": "Zavrieť hovor", - "forget_room_button": "Zabudnúť miestnosť", - "hide_widgets_button": "Skryť widgety", "n_people_asking_to_join": { "one": "Žiada o pripojenie", "few": "%(count)s ľudia žiadajú o pripojenie", "other": "%(count)s ľudí žiada o pripojenie" }, - "room_is_public": "Táto miestnosť je verejná", - "show_widgets_button": "Zobraziť widgety", - "video_call_button_ec": "Videohovor (%(brand)s)", - "video_call_button_jitsi": "Videohovor (Jitsi)", - "video_call_button_legacy": "Starší typ videohovoru", - "video_call_ec_change_layout": "Zmeniť rozloženie", - "video_call_ec_layout_freedom": "Sloboda", - "video_call_ec_layout_spotlight": "Stredobod", - "video_room_view_chat_button": "Zobraziť časovú os konverzácie" + "room_is_public": "Táto miestnosť je verejná" }, "header_untrusted_label": "Nedôveryhodný", "inaccessible": "Táto miestnosť alebo priestor nie je momentálne prístupná.", @@ -1932,7 +1900,6 @@ "inviter_unknown": "Neznámy", "invites_you_text": " vás pozýva", "join_button_account": "Zaregistrovať sa", - "join_failed_enable_video_rooms": "Ak sa chcete pripojiť, povoľte najprv video miestnosti v laboratóriách", "join_failed_needs_invite": "Na zobrazenie %(roomName)s potrebujete pozvánku", "join_the_discussion": "Pripojiť sa k diskusii", "join_title": "Pripojte sa k miestnosti a zúčastnite sa", @@ -1975,13 +1942,8 @@ "rejoin_button": "Znovu sa pripojiť", "search": { "all_rooms_button": "Vyhľadávať vo všetkých miestnostiach", - "result_count": { - "other": "(~%(count)s výsledkov)", - "one": "(~%(count)s výsledok)" - }, "this_room_button": "Vyhľadávať v tejto miestnosti" }, - "show_labs_settings": "Zobraziť nastavenia laboratórií", "status_bar": { "delete_all": "Vymazať všetko", "exceeded_resource_limit": "Vaša správa nebola odoslaná, pretože bol prekročený limit prostriedkov tohoto domovského servera. Prosím, kontaktujte správcu služieb aby ste službu mohli naďalej používať.", @@ -2012,7 +1974,6 @@ }, "uploading_single_file": "Nahrávanie %(filename)s" }, - "view_failed_enable_video_rooms": "Ak ich chcete zobraziť, povoľte najprv video miestnosti v laboratóriách", "waiting_for_join_subtitle": "Keď sa pozvaní používatelia pripoja k aplikácii %(brand)s, budete môcť konverzovať a miestnosť bude end-to-end šifrovaná", "waiting_for_join_title": "Čaká sa na používateľov, kým sa pripoja k aplikácii %(brand)s" }, diff --git a/src/i18n/strings/sq.json b/src/i18n/strings/sq.json index 1d544cd7fb..31e8327fc6 100644 --- a/src/i18n/strings/sq.json +++ b/src/i18n/strings/sq.json @@ -820,16 +820,6 @@ "incompatible_database_disable": "Vazhdo Me Fshehtëzimin të Çaktivizuar", "incompatible_database_sign_out_description": "Që të shmanget humbja e historikut të fjalosjes tuaj, duhet të eksportoni kyçet e dhomës tuaj përpara se të dilni nga llogari. Që ta bëni këtë, duhe të riktheheni te versioni më i ri i %(brand)s-it", "incompatible_database_title": "Bazë të dhënash e Papërputhshme", - "key_signature_upload_cancelled": "Ngarkim i anuluar nënshkrimi", - "key_signature_upload_completed": "Ngarkimi u plotësua", - "key_signature_upload_failed": "S’arrihet të ngarkohet", - "key_signature_upload_failed_body": "%(brand)s-i hasi një gabim gjatë ngarkimit të:", - "key_signature_upload_failed_cross_signing_key_signature": "një nënshkrim i ri kyçi cross-signing", - "key_signature_upload_failed_device_cross_signing_key_signature": "një nënshkrim cross-signing pajisjeje", - "key_signature_upload_failed_key_signature": "një nënshkrim kyçi", - "key_signature_upload_failed_master_key_signature": "një nënshkrim i ri kyçi të përgjithshëm", - "key_signature_upload_failed_title": "Ngarkimi i nënshkrimit dështoi", - "key_signature_upload_success_title": "Sukses ngarkimi nënshkrimi", "messages_not_secure": { "cause_1": "Shërbyesi juaj Home", "cause_2": "Shërbyesi Home te i cili është lidhur përdoruesi që po verifikoni", @@ -845,8 +835,6 @@ "warning": "Nëse metodën e re të rimarrjeve s’e keni caktuar ju, dikush mund të jetë duke u rrekur të hyjë në llogarinë tuaj. Ndryshoni menjëherë fjalëkalimin e llogarisë tuaj, te Rregullimet, dhe caktoni një metodë të re rimarrjesh." }, "not_supported": "", - "old_version_detected_description": "Janë pikasur të dhëna nga një version i dikurshëm i %(brand)s-it. Kjo do të bëjë që kriptografia skaj-më-skaj te versioni i dikurshëm të mos punojë si duhet. Mesazhet e fshehtëzuar skaj-më-skaj tani së fundi teksa përdorej versioni i dikurshëm mund të mos jenë të shfshehtëzueshëm në këtë version. Kjo mund bëjë edhe që mesazhet e shkëmbyera me këtë version të dështojnë. Nëse ju dalin probleme, bëni daljen dhe rihyni në llogari. Që të ruhet historiku i mesazheve, eksportoni dhe riimportoni kyçet tuaj.", - "old_version_detected_title": "U pikasën të dhëna kriptografie të vjetër", "recovery_method_removed": { "description_1": "Ky sesion ka pikasur se Fraza e Sigurisë dhe kyçi juaj për Mesazhe të Sigurt janë hequr.", "description_2": "Nëse këtë e keni bërë pa dashje, mund të ujdisni Mesazhe të Sigurt në këtë sesion, gjë që do të sjellë rifshehtëzimin e historikut të mesazheve të sesionit me një metodë të re rimarrjesh.", @@ -1333,7 +1321,6 @@ "location_share_live_description": "Sendërtim i përkohshëm. Vendndodhjet mbeten te historiku i dhomës.", "mjolnir": "Rrugë të reja për të shpërfillur njerëz", "msc3531_hide_messages_pending_moderation": "Lejoni moderatorët të fshehin mesazhe në pritje të moderimit.", - "pinning": "Fiksim Mesazhi", "report_to_moderators": "Raportojeni te moderatorët", "report_to_moderators_description": "Në dhoma që mbulojnë moderimin, butoni “Raportojeni” do t’ju lejojë t’u raportoni abuzim moderatorëve të dhomës.", "sliding_sync_description": "Nën zhvillim aktiv, s’mund të çaktivizohet.", @@ -1414,9 +1401,7 @@ "error_send_description": "%(brand)s s’dërgoi dot vendndodhjen tuaj. Ju lutemi, riprovoni.", "error_send_title": "S’e dërguam dot vendndodhjen tuaj", "error_sharing_live_location": "Ndodhi një gabim teksa tregohej vendndodhja juaj “live”", - "error_sharing_live_location_try_again": "Ndodhi një gabim teksa tregohej vendndodhja juaj aty për aty, ju lutemi, riprovoni", "error_stopping_live_location": "Ndodhi një gabim teksa ndalej dhënia aty për aty e vendndodhjes tuaj", - "error_stopping_live_location_try_again": "Ndodhi një gabim teksa ndalej dhënia aty për aty e vendndodhjes tuaj, ju lutemi, riprovoni", "expand_map": "Zgjeroje hartën", "failed_generic": "S’u arrit të sillet vendndodhja juaj. Ju lutemi, riprovoni më vonë.", "failed_load_map": "S’arrihet të ngarkohet hartë", @@ -1444,7 +1429,6 @@ "share_type_own": "Vendndodhja ime e tanishme", "share_type_pin": "Lini një Piketë", "share_type_prompt": "Ç’lloj vendndodhjeje doni të jepet?", - "stop_and_close": "Resht dhe mbylle", "toggle_attribution": "Shfaq/fshih atribut" }, "member_list": { @@ -1677,13 +1661,11 @@ }, "right_panel": { "add_integrations": "Shtoni widget-e, ura & robotë", - "export_chat_button": "Eksportoni fjalosje", "files_button": "Kartela", "pinned_messages": { "limits": { "other": "Mundeni të fiksoni deri në %(count)s widget-e" - }, - "title": "Mesazhe të fiksuar" + } }, "pinned_messages_button": "I fiksuar", "poll": { @@ -1719,8 +1701,7 @@ }, "video_room_chat": { "title": "Fjalosje" - }, - "widgets_section": "Widget-e" + } }, "room": { "3pid_invite_email_not_found_account": "Kjo ftesë u dërgua për %(email)s, që s’është i përshoqëruar me llogarinë tuaj", @@ -1740,7 +1721,6 @@ "forget": "Harroje Dhomën", "low_priority": "Përparësi e Ulët", "mark_read": "Vëri shenjë si të lexuar", - "mentions_only": "Vetëm përmendje", "notifications_default": "Kërko përputhje me rregullimin parazgjedhje", "notifications_mute": "Heshtoni dhomën", "title": "Mundësi dhome", @@ -1780,17 +1760,7 @@ "forget_room": "Harroje këtë dhomë", "forget_space": "Harroje këtë hapësirë", "header": { - "close_call_button": "Mbylli krejt", - "forget_room_button": "Harroje dhomën", - "hide_widgets_button": "Fshihi Widget-et", - "room_is_public": "Kjo dhomë është publike", - "show_widgets_button": "Shfaqi Widget-et", - "video_call_button_ec": "Thirrje video (%(brand)s)", - "video_call_button_jitsi": "Thirrje me video (Jitsi)", - "video_call_ec_change_layout": "Ndryshoni skemë", - "video_call_ec_layout_freedom": "Liri", - "video_call_ec_layout_spotlight": "Projektor", - "video_room_view_chat_button": "Shihni rrjedhë kohore fjalosjeje" + "room_is_public": "Kjo dhomë është publike" }, "inaccessible": "Te kjo dhomë ose hapësirë s’hyhet dot tani.", "inaccessible_name": "Te %(roomName)s s’hyhet dot tani.", @@ -1823,7 +1793,6 @@ "inviter_unknown": "I panjohur", "invites_you_text": " ju fton", "join_button_account": "Regjistrohuni", - "join_failed_enable_video_rooms": "Për t’u bërë pjesë, ju lutemi, së pari aktivizoni te Labs dhoma me video", "join_failed_needs_invite": "Që të shihni %(roomName)s, ju duhet një ftesë", "join_the_discussion": "Merrni pjesë në diskutim", "join_title": "Që të merrni pjesë, hyni në dhomë", @@ -1856,13 +1825,8 @@ "rejoin_button": "Rihyni", "search": { "all_rooms_button": "Kërko në krejt dhomat", - "result_count": { - "other": "(~%(count)s përfundime)", - "one": "(~%(count)s përfundim)" - }, "this_room_button": "Kërko në këtë dhomë" }, - "show_labs_settings": "Shfaq rregullime për Labs", "status_bar": { "delete_all": "Fshiji krejt", "exceeded_resource_limit": "Mesazhi juaj s’u dërgua, ngaqë ky shërbyes Home ka tejkaluar kufirin e një burimi. Ju lutemi, që të vazhdoni ta përdorni këtë shërbim, lidhuni me përgjegjësin e shërbimit tuaj.", @@ -1893,7 +1857,6 @@ }, "uploading_single_file": "Po ngarkohet %(filename)s" }, - "view_failed_enable_video_rooms": "Për të parë, ju lutemi, së pari aktivizoni te Labs dhoma me video", "waiting_for_join_subtitle": "Pasi përdoruesit e ftuar të kenë ardhur në %(brand)s, do të jeni në gjendje të bisedoni dhe dhoma do të jetë e fshehtëzuar skaj-më-skaj", "waiting_for_join_title": "Po pritet që përdorues të vijnë në %(brand)s" }, diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index 1095c8dec1..98c617e607 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -867,16 +867,6 @@ "incompatible_database_disable": "Fortsätt med kryptering inaktiverad", "incompatible_database_sign_out_description": "För att undvika att förlora din chatthistorik måste du exportera dina rumsnycklar innan du loggar ut. Du behöver gå tillbaka till den nyare versionen av %(brand)s för att göra detta", "incompatible_database_title": "Inkompatibel databas", - "key_signature_upload_cancelled": "Avbröt signaturuppladdning", - "key_signature_upload_completed": "Uppladdning slutförd", - "key_signature_upload_failed": "Kunde inte ladda upp", - "key_signature_upload_failed_body": "%(brand)s stötte på ett fel vid uppladdning av:", - "key_signature_upload_failed_cross_signing_key_signature": "en ny korssigneringssignatur", - "key_signature_upload_failed_device_cross_signing_key_signature": "en enhets korssigneringssignatur", - "key_signature_upload_failed_key_signature": "en nyckelsignatur", - "key_signature_upload_failed_master_key_signature": "en ny huvudnyckelsignatur", - "key_signature_upload_failed_title": "Signaturuppladdning misslyckades", - "key_signature_upload_success_title": "Signaturuppladdning lyckades", "messages_not_secure": { "cause_1": "Din hemserver", "cause_2": "Hemservern användaren du verifierar är ansluten till", @@ -892,8 +882,6 @@ "warning": "Om du inte har ställt in den nya återställningsmetoden kan en angripare försöka komma åt ditt konto. Byt ditt kontolösenord och ställ in en ny återställningsmetod omedelbart i inställningarna." }, "not_supported": "", - "old_version_detected_description": "Data från en äldre version av %(brand)s has upptäckts. Detta ska ha orsakat att totalsträckskryptering inte fungerat i den äldre versionen. Krypterade meddelanden som nyligen har skickats medans den äldre versionen användes kanske inte kan avkrypteras i denna version. Detta kan även orsaka att meddelanden skickade med denna version inte fungerar. Om du upplever problem, logga ut och in igen. För att behålla meddelandehistoriken, exportera dina nycklar och importera dem igen.", - "old_version_detected_title": "Gammal kryptografidata upptäckt", "recovery_method_removed": { "description_1": "Den här sessionen har detekterat att din säkerhetsfras och -nyckel för säkra meddelanden har tagits bort.", "description_2": "Om du gjorde det av misstag kan du ställa in säkra meddelanden på den här sessionen som krypterar sessionens meddelandehistorik igen med en ny återställningsmetod.", @@ -1416,14 +1404,12 @@ "location_share_live_description": "Temporär implementation. Platser stannar kvar i rumshistoriken.", "mjolnir": "Nya sätt att ignorera personer", "msc3531_hide_messages_pending_moderation": "Låt moderatorer dölja meddelanden i väntan på moderering.", - "new_room_decoration_ui": "Under aktiv utveckling, ny rumsrubrik & detaljgränssnitt", "notification_settings": "Nya aviseringsinställningar", "notification_settings_beta_caption": "Vi introducerar ett enklare sätt att ändra dina aviseringsinställningar. Anpassa din %(brand)s precis som du vill ha den.", "notification_settings_beta_title": "Aviseringsinställningar", "notifications": "Aktivera aviseringspanelen i rumshuvudet", "oidc_native_flow": "Inbyggd OIDC-autentisering", "oidc_native_flow_description": "⚠ VARNING: Experimentellt. Använd inbyggd OIDC-autentisering när den stöds av servern.", - "pinning": "Fastnålning av meddelanden", "render_reaction_images": "Återge anpassade bilder i reaktioner", "render_reaction_images_description": "Ibland kallat för ”anpassade emojis”.", "report_to_moderators": "Rapportera till moderatorer", @@ -1509,9 +1495,7 @@ "error_send_description": "%(brand)s kunde inte skicka din position. Försök igen senare.", "error_send_title": "Vi kunde inte skicka din positoin", "error_sharing_live_location": "Ett fel inträffade vid delning av din realtidsplats", - "error_sharing_live_location_try_again": "Ett fel inträffade vid delning av din realtidsplats, försök igen", "error_stopping_live_location": "Ett fel inträffade vid delning av din realtidsposition", - "error_stopping_live_location_try_again": "Ett fel inträffade medans din platsdelning avslutades, försök igen", "expand_map": "Expandera karta", "failed_generic": "Misslyckades att hämta din plats. Pröva igen senare.", "failed_load_map": "Kunde inte ladda kartan", @@ -1541,7 +1525,6 @@ "share_type_own": "Min nuvarande positoin", "share_type_pin": "Sätt en nål", "share_type_prompt": "Vilken typ av positionsdelning vill du använda?", - "stop_and_close": "Sluta och stäng", "toggle_attribution": "Växla tillskrivning" }, "member_list": { @@ -1788,13 +1771,11 @@ }, "right_panel": { "add_integrations": "Lägg till widgets, bryggor och bottar", - "export_chat_button": "Exportera chatt", "files_button": "Filer", "pinned_messages": { "limits": { "other": "Du kan bara fästa upp till %(count)s widgets" - }, - "title": "Fästa meddelanden" + } }, "pinned_messages_button": "Fäst", "poll": { @@ -1830,8 +1811,7 @@ }, "video_room_chat": { "title": "Chatt" - }, - "widgets_section": "Widgets" + } }, "room": { "3pid_invite_email_not_found_account": "Denna inbjudan skickades till %(email)s vilken inte är associerad med ditt konto", @@ -1851,7 +1831,6 @@ "forget": "Glöm rum", "low_priority": "Låg prioritet", "mark_read": "Markera som läst", - "mentions_only": "Endast omnämnanden", "notifications_default": "Matcha förvalsinställning", "notifications_mute": "Tysta rum", "title": "Rumsinställningar", @@ -1894,22 +1873,11 @@ "forget_room": "Glöm det här rummet", "forget_space": "Glöm det här utrymmet", "header": { - "close_call_button": "Stäng samtal", - "forget_room_button": "Glöm bort rum", - "hide_widgets_button": "Dölj widgets", "n_people_asking_to_join": { "one": "Ber om att gå med", "other": "%(count)s personer ber om att gå med" }, - "room_is_public": "Det här rummet är offentligt", - "show_widgets_button": "Visa widgets", - "video_call_button_ec": "Videosamtal (%(brand)s)", - "video_call_button_jitsi": "Videosamtal (Jitsi)", - "video_call_button_legacy": "Äldre videosamtalsmetod", - "video_call_ec_change_layout": "Byt utseende", - "video_call_ec_layout_freedom": "Frihet", - "video_call_ec_layout_spotlight": "Rampljus", - "video_room_view_chat_button": "Visa chattidslinje" + "room_is_public": "Det här rummet är offentligt" }, "header_face_pile_tooltip": "Växla medlemslista", "header_untrusted_label": "Ej betrodd", @@ -1944,7 +1912,6 @@ "inviter_unknown": "Okänt", "invites_you_text": " bjuder in dig", "join_button_account": "Registrera dig", - "join_failed_enable_video_rooms": "För att gå med, aktivera videorum i experiment först", "join_failed_needs_invite": "För att se %(roomName)s så behöver du en inbjudan", "join_the_discussion": "Gå med i diskussionen", "join_title": "Gå med i rummet för att delta", @@ -1987,13 +1954,8 @@ "rejoin_button": "Gå med igen", "search": { "all_rooms_button": "Sök i alla rum", - "result_count": { - "other": "(~%(count)s resultat)", - "one": "(~%(count)s resultat)" - }, "this_room_button": "Sök i det här rummet" }, - "show_labs_settings": "Visa experimentinställningar", "status_bar": { "delete_all": "Radera alla", "exceeded_resource_limit": "Ditt meddelande skickades inte eftersom hemservern har överskridit en av sina resursgränser. Vänligen kontakta din serviceadministratör för att fortsätta använda tjänsten.", @@ -2024,7 +1986,6 @@ }, "uploading_single_file": "Laddar upp %(filename)s" }, - "view_failed_enable_video_rooms": "För att se, aktivera videorum i experiment först", "waiting_for_join_subtitle": "När inbjudna användare har gått med i %(brand)s kommer du att kunna chatta och rummet kommer att vara totalsträckskrypterat", "waiting_for_join_title": "Väntar på att användare går med i %(brand)s" }, diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json index 66642f5e62..3a44adc758 100644 --- a/src/i18n/strings/uk.json +++ b/src/i18n/strings/uk.json @@ -849,16 +849,6 @@ "incompatible_database_disable": "Продовжити із вимкненим шифруванням", "incompatible_database_sign_out_description": "Щоб уникнути втрати історії ваших листувань, ви маєте експортувати ключі кімнати перед виходом. Вам треба буде повернутися до новішої версії %(brand)s аби зробити це", "incompatible_database_title": "Несумісна база даних", - "key_signature_upload_cancelled": "Вивантаження підпису скасовано", - "key_signature_upload_completed": "Вивантаження виконано", - "key_signature_upload_failed": "Не вдалося вивантажити", - "key_signature_upload_failed_body": "%(brand)s зіткнувся з помилкою під час вивантаження:", - "key_signature_upload_failed_cross_signing_key_signature": "новий підпис ключа перехресного підписування", - "key_signature_upload_failed_device_cross_signing_key_signature": "підпис перехресного підписування пристрою", - "key_signature_upload_failed_key_signature": "відбиток ключа", - "key_signature_upload_failed_master_key_signature": "новий підпис головного ключа", - "key_signature_upload_failed_title": "Не вдалося вивантажити підпис", - "key_signature_upload_success_title": "Підпис успішно вивантажено", "messages_not_secure": { "cause_1": "Ваш домашній сервер", "cause_2": "Домашній сервер користувача, якого ви підтверджуєте", @@ -874,8 +864,6 @@ "warning": "Якщо ви не встановлювали нового способу відновлення, ймовірно хтось намагається зламати ваш обліковий запис. Негайно змініть пароль до свого облікового запису й встановіть новий спосіб відновлення в налаштуваннях." }, "not_supported": "<не підтримується>", - "old_version_detected_description": "Було виявлено дані зі старої версії %(brand)s. Це призведе до збоїння наскрізного шифрування у старій версії. Наскрізно зашифровані повідомлення, що обмінювані нещодавно, під час використання старої версії, можуть бути недешифровними у цій версії. Це може призвести до збоїв повідомлень, обмінюваних також і з цією версією. У разі виникнення проблем вийдіть з програми та зайдіть знову. Задля збереження історії повідомлень експортуйте та переімпортуйте ваші ключі.", - "old_version_detected_title": "Виявлено старі криптографічні дані", "recovery_method_removed": { "description_1": "Цей сеанс виявив, що ваша фраза безпеки й ключ до захищених повідомлень були видалені.", "description_2": "Якщо це ненароком зробили ви, налаштуйте захищені повідомлення для цього сеансу, щоб повторно зашифрувати історію листування цього сеансу з новим способом відновлення.", @@ -1376,11 +1364,9 @@ "location_share_live_description": "Тимчасова реалізація. Місце перебування зберігається в історії кімнати.", "mjolnir": "Нові способи нехтувати людей", "msc3531_hide_messages_pending_moderation": "Дозволити модераторам ховати повідомлення у черзі модерування.", - "new_room_decoration_ui": "В активній розробці новий заголовок кімнати та інтерфейс деталей", "notification_settings": "Нові налаштування сповіщень", "notification_settings_beta_title": "Налаштування сповіщень", "oidc_native_flow": "Увімкнути нові вбудовані потоки OIDC (в активній розробці)", - "pinning": "Закріплені повідомлення", "report_to_moderators": "Поскаржитись модераторам", "report_to_moderators_description": "У кімнатах, які підтримують модерацію, кнопка «Поскаржитися» дає змогу повідомити про зловживання модераторам кімнати.", "sliding_sync": "Режим ковзної синхронізації", @@ -1462,9 +1448,7 @@ "error_send_description": "%(brand)s не вдалося надіслати ваше місцеперебування. Повторіть спробу пізніше.", "error_send_title": "Не вдалося надіслати ваше місцеперебування", "error_sharing_live_location": "Сталася помилка під час надання доступу до вашого поточного місцеперебування", - "error_sharing_live_location_try_again": "Сталася помилка під час надання доступу до вашого поточного місцеперебування наживо", "error_stopping_live_location": "Під час припинення поширення поточного місцеперебування сталася помилка", - "error_stopping_live_location_try_again": "Сталася помилка припинення надсилання вашого місцеперебування, повторіть спробу", "expand_map": "Розгорнути карту", "failed_generic": "Не вдалося отримати ваше місцеперебування. Повторіть спробу пізніше.", "failed_load_map": "Неможливо завантажити карту", @@ -1494,7 +1478,6 @@ "share_type_own": "Лише поточне місцеперебування", "share_type_pin": "Маркер на карті", "share_type_prompt": "Який вид місцеперебування поширити?", - "stop_and_close": "Припинити й закрити", "toggle_attribution": "Перемкнути атрибуцію" }, "member_list": { @@ -1732,13 +1715,11 @@ }, "right_panel": { "add_integrations": "Додати віджети, мости та ботів", - "export_chat_button": "Експортувати бесіду", "files_button": "Файли", "pinned_messages": { "limits": { "other": "Закріпити можна до %(count)s віджетів" - }, - "title": "Закріплені повідомлення" + } }, "pinned_messages_button": "Закріплені", "poll": { @@ -1774,8 +1755,7 @@ }, "video_room_chat": { "title": "Бесіда" - }, - "widgets_section": "Віджети" + } }, "room": { "3pid_invite_email_not_found_account": "Це запрошення надіслано на %(email)s, яка не пов’язана з вашим обліковим записом", @@ -1795,7 +1775,6 @@ "forget": "Забути кімнату", "low_priority": "Неважливі", "mark_read": "Позначити прочитаним", - "mentions_only": "Лише згадки", "notifications_default": "Збігається з типовим налаштуванням", "notifications_mute": "Вимкнути сповіщення кімнати", "title": "Параметри кімнати", @@ -1838,17 +1817,7 @@ "forget_room": "Забути цю кімнату", "forget_space": "Забути цей простір", "header": { - "close_call_button": "Закрити виклик", - "forget_room_button": "Забути кімнату", - "hide_widgets_button": "Сховати віджети", - "room_is_public": "Ця кімната загальнодоступна", - "show_widgets_button": "Показати віджети", - "video_call_button_ec": "Відеовиклик (%(brand)s)", - "video_call_button_jitsi": "Відеовиклик (Jitsi)", - "video_call_ec_change_layout": "Змінити макет", - "video_call_ec_layout_freedom": "Свобода", - "video_call_ec_layout_spotlight": "У фокусі", - "video_room_view_chat_button": "Переглянути стрічку бесіди" + "room_is_public": "Ця кімната загальнодоступна" }, "inaccessible": "Ця кімната або простір на разі не доступні.", "inaccessible_name": "%(roomName)s зараз офлайн.", @@ -1881,7 +1850,6 @@ "inviter_unknown": "Невідомо", "invites_you_text": " запрошує вас", "join_button_account": "Зареєструватися", - "join_failed_enable_video_rooms": "Щоб приєднатися, спочатку ввімкніть відеокімнати в експериментальних функціях", "join_failed_needs_invite": "Щоб переглядати %(roomName)s, потрібне запрошення", "join_the_discussion": "Приєднатися до обговорення", "join_title": "Приєднуйтеся до кімнати, щоб взяти участь", @@ -1922,13 +1890,8 @@ "rejoin_button": "Перепід'єднатись", "search": { "all_rooms_button": "Вибрати всі кімнати", - "result_count": { - "one": "(~%(count)s результат)", - "other": "(~%(count)s результатів)" - }, "this_room_button": "Шукати цю кімнату" }, - "show_labs_settings": "Відкрити налаштування експериментальних функцій", "status_bar": { "delete_all": "Видалити всі", "exceeded_resource_limit": "Не вдалося надіслати повідомлення, бо домашній сервер перевищив ліміт ресурсів. Зв'яжіться з адміністратором сервісу, щоб продовжити використання.", @@ -1959,7 +1922,6 @@ }, "uploading_single_file": "Вивантаження %(filename)s" }, - "view_failed_enable_video_rooms": "Щоб переглянути, спочатку ввімкніть відеокімнати в експериментальних функціях", "waiting_for_join_subtitle": "Після того, як запрошені користувачі приєднаються до %(brand)s, ви зможете спілкуватися в бесіді, а кімната буде наскрізно зашифрована", "waiting_for_join_title": "Очікування приєднання користувача до %(brand)s" }, diff --git a/src/i18n/strings/vi.json b/src/i18n/strings/vi.json index aa240c20bf..13ee2de7f2 100644 --- a/src/i18n/strings/vi.json +++ b/src/i18n/strings/vi.json @@ -765,16 +765,6 @@ "incompatible_database_disable": "Tiếp tục với mã hóa bị tắt", "incompatible_database_sign_out_description": "Để tránh mất lịch sử trò chuyện, bạn phải xuất chìa khóa phòng trước khi đăng xuất. Bạn sẽ cần quay lại phiên bản %(brand)s mới hơn để thực hiện việc này", "incompatible_database_title": "Cơ sở dữ liệu không tương thích", - "key_signature_upload_cancelled": "Đã hủy tải lên chữ ký", - "key_signature_upload_completed": "Hoàn tất tải lên", - "key_signature_upload_failed": "Không thể tải lên", - "key_signature_upload_failed_body": "%(brand)s đã gặp lỗi khi tải lên:", - "key_signature_upload_failed_cross_signing_key_signature": "một chữ ký khóa xác thực chéo mới", - "key_signature_upload_failed_device_cross_signing_key_signature": "một chữ ký được xác thực chéo trên thiết bị", - "key_signature_upload_failed_key_signature": "một chữ ký chính", - "key_signature_upload_failed_master_key_signature": "một chữ ký khóa chính mới", - "key_signature_upload_failed_title": "Tải lên chữ ký không thành công", - "key_signature_upload_success_title": "Tải lên chữ ký thành công", "messages_not_secure": { "cause_1": "Chủ nhà của bạn", "cause_2": "Máy chủ nhà người dùng bạn đang xác thực được kết nối đến", @@ -790,8 +780,6 @@ "warning": "Nếu bạn không đặt phương pháp khôi phục mới, kẻ tấn công có thể đang cố truy cập vào tài khoản của bạn. Thay đổi mật khẩu tài khoản của bạn và đặt phương pháp khôi phục mới ngay lập tức trong Cài đặt." }, "not_supported": "", - "old_version_detected_description": "Dữ liệu từ phiên bản cũ hơn của %(brand)s đã được phát hiện. Điều này sẽ khiến mật mã end-to-end bị trục trặc trong phiên bản cũ hơn. Các tin nhắn được mã hóa end-to-end được trao đổi gần đây trong khi sử dụng phiên bản cũ hơn có thể không giải mã được trong phiên bản này. Điều này cũng có thể khiến các tin nhắn được trao đổi với phiên bản này bị lỗi. Nếu bạn gặp sự cố, hãy đăng xuất và đăng nhập lại. Để lưu lại lịch sử tin nhắn, hãy export và re-import các khóa của bạn.", - "old_version_detected_title": "Đã phát hiện dữ liệu mật mã cũ", "recovery_method_removed": { "description_1": "Phiên này đã phát hiện rằng Cụm từ bảo mật và khóa cho Tin nhắn an toàn của bạn đã bị xóa.", "description_2": "Nếu bạn vô tình làm điều này, bạn có thể Cài đặt Tin nhắn được bảo toàn trên phiên này. Tính năng này sẽ mã hóa lại lịch sử tin nhắn của phiên này bằng một phương pháp khôi phục mới.", @@ -1279,7 +1267,6 @@ "msc3531_hide_messages_pending_moderation": "Cho phép điều phối viên ẩn các tin nhắn đang chờ duyệt.", "notification_settings": "Cài đặt thông báo mới", "notification_settings_beta_title": "Cài đặt thông báo", - "pinning": "Ghim tin nhắn", "report_to_moderators": "Báo cáo cho điều phối viên", "report_to_moderators_description": "Trong các phòng hỗ trợ điều phối, nút \"Báo cáo\" sẽ giúp bạn báo cáo lạm dụng cho điều phối viên của phòng.", "sliding_sync": "Chế độ đồng bộ tối ưu (Sync v3)", @@ -1581,12 +1568,10 @@ }, "right_panel": { "add_integrations": "Thêm các widget, bridge và bot", - "export_chat_button": "Xuất trò chuyện", "pinned_messages": { "limits": { "other": "Bạn chỉ có thể ghim tối đa %(count)s widget" - }, - "title": "Tin nhắn đã ghim" + } }, "pinned_messages_button": "Đã ghim", "poll": { @@ -1607,8 +1592,7 @@ }, "video_room_chat": { "title": "Trò chuyện" - }, - "widgets_section": "Vật dụng" + } }, "room": { "3pid_invite_email_not_found_account": "Lời mời này đã được gửi đến %(email)s nhưng không liên kết với tài khoản của bạn", @@ -1627,7 +1611,6 @@ "forget": "Quên phòng", "low_priority": "Ưu tiên thấp", "mark_read": "Đánh dấu đã đọc", - "mentions_only": "Chỉ tin nhắn được đề cập", "notifications_default": "Theo cài đặt mặc định", "notifications_mute": "Tắt tiếng phòng", "title": "Tùy chọn phòng", @@ -1663,15 +1646,7 @@ "forget_room": "Quên phòng này đi", "forget_space": "Quên space này", "header": { - "close_call_button": "Đóng cuộc gọi", - "forget_room_button": "Quên phòng", - "hide_widgets_button": "Ẩn widget", - "room_is_public": "Phòng này là công cộng", - "show_widgets_button": "Hiển thị widget", - "video_call_button_ec": "Cuộc gọi truyền hình (%(brand)s)", - "video_call_button_jitsi": "Cuộc gọi truyền hình (Jitsi)", - "video_call_ec_layout_freedom": "Tự do", - "video_room_view_chat_button": "Xem dòng tin nhắn" + "room_is_public": "Phòng này là công cộng" }, "inaccessible": "Phòng hoặc space này không thể truy cập được bây giờ.", "inaccessible_name": "Không thể truy cập %(roomName)s vào lúc này.", @@ -1733,13 +1708,8 @@ "rejoin_button": "Tham gia lại", "search": { "all_rooms_button": "Tìm tất cả phòng", - "result_count": { - "one": "(~%(count)s kết quả)", - "other": "(~%(count)s kết quả)" - }, "this_room_button": "Tìm trong phòng này" }, - "show_labs_settings": "Hiện các cài đặt thử nghiệm", "status_bar": { "delete_all": "Xóa hết", "exceeded_resource_limit": "Thư của bạn không gửi được vì máy chủ(homeserver) đã vượt quá giới hạn tài nguyên. Vui lòng liên hệ với quản trị viên để tiếp tục sử dụng dịch vụ.", diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index 984d87f67d..663a420054 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -792,16 +792,6 @@ "incompatible_database_disable": "在停用加密的情况下继续", "incompatible_database_sign_out_description": "为避免丢失聊天记录,你必须在登出前导出房间密钥。你需要切换至新版 %(brand)s 方可继续执行此操作", "incompatible_database_title": "数据库不兼容", - "key_signature_upload_cancelled": "已取消签名上传", - "key_signature_upload_completed": "上传完成", - "key_signature_upload_failed": "无法上传", - "key_signature_upload_failed_body": "%(brand)s 在上传此文件时出错:", - "key_signature_upload_failed_cross_signing_key_signature": "一个新的交叉签名密钥的签名", - "key_signature_upload_failed_device_cross_signing_key_signature": "一个设备的交叉签名的签名", - "key_signature_upload_failed_key_signature": "一个密钥签名", - "key_signature_upload_failed_master_key_signature": "一个新的主密钥签名", - "key_signature_upload_failed_title": "签名上传失败", - "key_signature_upload_success_title": "签名上传成功", "messages_not_secure": { "cause_1": "你的家服务器", "cause_2": "你正在验证的用户所连接的家服务器", @@ -817,8 +807,6 @@ "warning": "如果你没有设置新恢复方式,可能有攻击者正试图侵入你的账户。请立即更改你的账户密码并在设置中设定一个新恢复方式。" }, "not_supported": "<不支持>", - "old_version_detected_description": "已检测到旧版%(brand)s的数据,这将导致端到端加密在旧版本中发生故障。在此版本中,使用旧版本交换的端到端加密消息可能无法解密。这也可能导致与此版本交换的消息失败。如果你遇到问题,请登出并重新登录。要保留历史消息,请先导出并在重新登录后导入你的密钥。", - "old_version_detected_title": "检测到旧的加密数据", "recovery_method_removed": { "description_1": "此会话已检测到你的安全短语和安全消息密钥被移除。", "description_2": "如果你出于意外这样做了,你可以在此会话上设置安全消息,以使用新的加密方式重新加密此会话的消息历史。", @@ -1295,11 +1283,9 @@ "location_share_live_description": "临时的实现。位置在房间历史中持续保留。", "mjolnir": "忽略他人的新方式", "msc3531_hide_messages_pending_moderation": "让协管员隐藏等待审核的消息。", - "new_room_decoration_ui": "新的房间标题和一些细节界面正在积极开发中", "notification_settings": "通知设置", "notification_settings_beta_caption": "引入一种更简单的方式来更改通知设置。以你喜欢的方式定制%(brand)s。", "notification_settings_beta_title": "通知设置", - "pinning": "消息置顶", "report_to_moderators": "报告给协管员", "report_to_moderators_description": "在支持审核的房间中,“报告”按钮将让你向房间协管员举报滥用行为。", "sliding_sync": "滑动同步模式", @@ -1376,9 +1362,7 @@ "error_send_description": "%(brand)s无法发送你的位置。请稍后再试。", "error_send_title": "我们无法发送你的位置", "error_sharing_live_location": "分享实时位置时出错", - "error_sharing_live_location_try_again": "分享你的实时位置时出错,请重试", "error_stopping_live_location": "停止实时位置时出错", - "error_stopping_live_location_try_again": "停止你的实时位置时出错,请重试", "expand_map": "展开地图", "failed_generic": "获取你的位置失败。请之后再试。", "failed_load_map": "无法加载地图", @@ -1406,7 +1390,6 @@ "share_type_own": "我当前的位置", "share_type_pin": "放置图钉", "share_type_prompt": "你想分享什么位置类型?", - "stop_and_close": "停止并关闭", "toggle_attribution": "切换属性" }, "member_list": { @@ -1628,13 +1611,11 @@ }, "right_panel": { "add_integrations": "添加挂件、桥接和机器人", - "export_chat_button": "导出聊天", "files_button": "文件", "pinned_messages": { "limits": { "other": "你仅能固定 %(count)s 个挂件" - }, - "title": "已固定的消息" + } }, "pinned_messages_button": "已固定", "poll": { @@ -1652,8 +1633,7 @@ }, "video_room_chat": { "title": "聊天" - }, - "widgets_section": "挂件" + } }, "room": { "3pid_invite_email_not_found_account": "该邀请被发送到了与你的账户无关的 %(email)s", @@ -1672,7 +1652,6 @@ "favourite": "收藏", "forget": "忘记房间", "low_priority": "低优先级", - "mentions_only": "仅提及", "title": "房间选项", "unfavourite": "已收藏" }, @@ -1703,12 +1682,7 @@ "forget_room": "忘记此房间", "forget_space": "忘记此空间", "header": { - "forget_room_button": "忘记房间", - "hide_widgets_button": "隐藏挂件", - "room_is_public": "此房间为公共的", - "show_widgets_button": "显示挂件", - "video_call_button_jitsi": "视频通话(Jitsi)", - "video_call_ec_change_layout": "更改布局" + "room_is_public": "此房间为公共的" }, "inaccessible": "这个房间或空间当前不可访问。", "inaccessible_name": "%(roomName)s 此时无法访问。", @@ -1740,7 +1714,6 @@ "inviter_unknown": "未知的", "invites_you_text": " 邀请了你", "join_button_account": "注册", - "join_failed_enable_video_rooms": "加入前请在实验室允许虚拟房间", "join_failed_needs_invite": "你需要一个邀请来查看 %(roomName)s", "join_the_discussion": "加入讨论", "join_title": "加入房间以参与", @@ -1768,13 +1741,6 @@ "peek_join_prompt": "你正在预览 %(roomName)s。想加入吗?", "read_topic": "点击阅读话题", "rejoin_button": "重新加入", - "search": { - "result_count": { - "one": "(~%(count)s 个结果)", - "other": "(~%(count)s 个结果)" - } - }, - "show_labs_settings": "显示实验室设置", "status_bar": { "delete_all": "删除全部", "exceeded_resource_limit": "你的消息未被发送,因为本家服务器已达到其使用量限制之一。请 联系你的服务管理员 以继续使用本服务。", @@ -1803,8 +1769,7 @@ "one": "正在上传 %(filename)s 与其他 %(count)s 个文件" }, "uploading_single_file": "正在上传 %(filename)s" - }, - "view_failed_enable_video_rooms": "查看前请在实验室允许虚拟房间" + } }, "room_list": { "add_room_label": "添加房间", diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index d7d3a74784..d6bdfd5806 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -850,16 +850,6 @@ "incompatible_database_disable": "在停用加密的情況下繼續", "incompatible_database_sign_out_description": "為了避免遺失您的聊天歷史,您必須在登出前匯出您的聊天室金鑰。您必須回到較新版的 %(brand)s 才能執行此動作", "incompatible_database_title": "不相容的資料庫", - "key_signature_upload_cancelled": "已取消簽章上傳", - "key_signature_upload_completed": "上傳完成", - "key_signature_upload_failed": "無法上傳", - "key_signature_upload_failed_body": "%(brand)s 在上傳以下內容時遇到錯誤:", - "key_signature_upload_failed_cross_signing_key_signature": "新交叉簽署金鑰的簽章", - "key_signature_upload_failed_device_cross_signing_key_signature": "裝置交叉簽署", - "key_signature_upload_failed_key_signature": "金鑰簽章", - "key_signature_upload_failed_master_key_signature": "新的主金鑰簽署", - "key_signature_upload_failed_title": "無上傳簽章", - "key_signature_upload_success_title": "簽章上傳成功", "messages_not_secure": { "cause_1": "您的家伺服器", "cause_2": "您正在驗證的使用者所連線的家伺服器", @@ -875,8 +865,6 @@ "warning": "如果您沒有設定新的復原方法,攻擊者可能會嘗試存取您的帳號。在設定中立刻變更您的密碼並設定新的復原方法。" }, "not_supported": "<不支援>", - "old_version_detected_description": "偵測到來自舊版 %(brand)s 的資料。這將會造成舊版的端對端加密失敗。在此版本中使用最近在舊版本交換的金鑰可能無法解密訊息。這也會造成與此版本的訊息交換失敗。若您遇到問題,請登出並重新登入。要保留訊息歷史,請匯出並重新匯入您的金鑰。", - "old_version_detected_title": "偵測到舊的加密資料", "recovery_method_removed": { "description_1": "此工作階段偵測到您的安全密語以及安全訊息金鑰已被移除。", "description_2": "如果您不小心這樣做了,您可以在此工作階段上設定安全訊息,這將會以新的復原方法重新加密此工作階段的訊息歷史。", @@ -1379,11 +1367,9 @@ "location_share_live_description": "暫時的實作版本。位置資訊將保留在聊天室的聊天紀錄中。", "mjolnir": "忽略人們的新方式", "msc3531_hide_messages_pending_moderation": "讓版主能夠隱藏待審核的訊息。", - "new_room_decoration_ui": "正在積極開發中,新的聊天室標題與詳細資訊介面", "notification_settings": "新通知設定", "notification_settings_beta_title": "通知設定", "oidc_native_flow": "啟用新的原生 OIDC 流程(正在積極開發中)", - "pinning": "訊息釘選功能", "report_to_moderators": "回報給版主", "report_to_moderators_description": "在支援審核的聊天室中,「回報」按鈕讓您可以回報濫用行為給聊天室管理員。", "sliding_sync": "滑動同步模式", @@ -1465,9 +1451,7 @@ "error_send_description": "%(brand)s 無法傳送您的位置。請稍後再試。", "error_send_title": "我們無法傳送您的位置", "error_sharing_live_location": "分享您的即時位置時發生錯誤", - "error_sharing_live_location_try_again": "分享您的即時位置時發生錯誤,請再試一次", "error_stopping_live_location": "停止您的即時位置時發生錯誤", - "error_stopping_live_location_try_again": "停止您的即時位置時發生錯誤,請再試一次", "expand_map": "展開地圖", "failed_generic": "無法取得您的位置。請稍後再試。", "failed_load_map": "無法載入地圖", @@ -1497,7 +1481,6 @@ "share_type_own": "我目前的位置", "share_type_pin": "自訂位置", "share_type_prompt": "您要分享哪種位置類型?", - "stop_and_close": "停止並關閉", "toggle_attribution": "切換屬性" }, "member_list": { @@ -1735,13 +1718,11 @@ }, "right_panel": { "add_integrations": "新增小工具、橋接與聊天機器人", - "export_chat_button": "匯出聊天", "files_button": "檔案", "pinned_messages": { "limits": { "other": "您最多只能釘選 %(count)s 個小工具" - }, - "title": "已釘選的訊息" + } }, "pinned_messages_button": "已釘選", "poll": { @@ -1777,8 +1758,7 @@ }, "video_room_chat": { "title": "聊天" - }, - "widgets_section": "小工具" + } }, "room": { "3pid_invite_email_not_found_account": "此邀請已傳送到與您的帳號無關聯的 %(email)s", @@ -1798,7 +1778,6 @@ "forget": "忘記聊天室", "low_priority": "低優先度", "mark_read": "標示為已讀", - "mentions_only": "僅提及", "notifications_default": "符合預設設定值", "notifications_mute": "聊天室靜音", "title": "聊天室選項", @@ -1841,17 +1820,7 @@ "forget_room": "忘記此聊天室", "forget_space": "忘記此聊天空間", "header": { - "close_call_button": "關閉通話", - "forget_room_button": "忘記聊天室", - "hide_widgets_button": "隱藏小工具", - "room_is_public": "此聊天室為公開聊天室", - "show_widgets_button": "顯示小工具", - "video_call_button_ec": "視訊通話 (%(brand)s)", - "video_call_button_jitsi": "視訊通話 (Jitsi)", - "video_call_ec_change_layout": "變更排列", - "video_call_ec_layout_freedom": "自由", - "video_call_ec_layout_spotlight": "聚焦", - "video_room_view_chat_button": "檢視聊天時間軸" + "room_is_public": "此聊天室為公開聊天室" }, "inaccessible": "目前無法存取此聊天室或聊天空間。", "inaccessible_name": "%(roomName)s 此時無法存取。", @@ -1884,7 +1853,6 @@ "inviter_unknown": "未知", "invites_you_text": " 邀請您", "join_button_account": "註冊", - "join_failed_enable_video_rooms": "要加入,請先在「實驗室」中啟用視訊聊天室", "join_failed_needs_invite": "要檢視 %(roomName)s,您需要邀請", "join_the_discussion": "加入此討論", "join_title": "加入聊天室以參與", @@ -1925,13 +1893,8 @@ "rejoin_button": "重新加入", "search": { "all_rooms_button": "搜尋所有聊天室", - "result_count": { - "one": "(~%(count)s 結果)", - "other": "(~%(count)s 結果)" - }, "this_room_button": "搜尋此聊天室" }, - "show_labs_settings": "顯示「實驗室」設定", "status_bar": { "delete_all": "刪除全部", "exceeded_resource_limit": "您的訊息未傳送,因為其家伺服器已超過一項資源限制。請聯絡您的服務管理員以繼序使用服務。", @@ -1962,7 +1925,6 @@ }, "uploading_single_file": "正在上傳 %(filename)s" }, - "view_failed_enable_video_rooms": "要檢視,請先在「實驗室」中啟用視訊聊天室", "waiting_for_join_subtitle": "被邀請的使用者加入 %(brand)s 後,您就可以聊天,聊天室將會進行端到端加密", "waiting_for_join_title": "等待使用者加入 %(brand)s" }, From d58c9fa7f66d33de0c8121252e9a20c9ff1ff002 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 15 Oct 2024 10:18:57 +0100 Subject: [PATCH 10/39] Always show link new device flow even if unsupported (#147) * Always show link new device flow even if unsupported Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update screenshot Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../user-menu.spec.ts/user-menu-linux.png | Bin 11653 -> 13408 bytes res/css/views/auth/_LoginWithQR.pcss | 18 +- src/components/structures/UserMenu.tsx | 61 +----- src/components/views/auth/LoginWithQRFlow.tsx | 22 +- .../settings/devices/LoginWithQRSection.tsx | 14 +- src/i18n/strings/en_EN.json | 5 +- .../devices/LoginWithQRSection-test.tsx | 6 +- .../LoginWithQRFlow-test.tsx.snap | 142 ++++++++++--- .../LoginWithQRSection-test.tsx.snap | 192 +++++++++++++++++- 9 files changed, 350 insertions(+), 110 deletions(-) diff --git a/playwright/snapshots/user-menu/user-menu.spec.ts/user-menu-linux.png b/playwright/snapshots/user-menu/user-menu.spec.ts/user-menu-linux.png index f713a7dc9837302c80ea7d934de5681dd3fbfd34..e06fbbda1b1a0b2d21b791e5ed5ee434213c8a20 100644 GIT binary patch literal 13408 zcmc(Gbx<5#*C#O`gy8P(Ft}R?8eo9n?(Xgo5?q7327+5~cLs;xHn_Vx%=YuX`)zI2 z?jPS;?Nl{X_4IW2y?xL5$vGXS2$uSYM1TYb2lr7%TKp><+^e_1CWZJK*fa3EARGAi z%K5957+l2|(LNj;8JvvxCl!y3W2n0h<}NA18LbJMgv8$=@H|-&GA#v}oetSrcbmh^ zqP}+dhg*v}lx1&w6>*8+aAbs~=EOE0s(?t@lUs=HR02Bs_Z+`fke;t@miLKgmh9#E zNmJx6EG#UtKnEg-qfYa;u)Z0eSVYVZ5*q~Vih+iR-zxE=BvlRB@mvTJOY*x-CihhW z(ZsNf%H!fN#6l(CexswnVc_LT(GdIfmusoGxU|@!sF)q^N^SWgT$%zImZRs4j^4*) zb=|(wT&3bP0tUo&aS{ijLPffSrzfAlpW+ms5W}cF{A5fY-41>;JClCMx8&l3!^58u z!&sR(Iz|Tn*4H7t@5H^{lZksl%`8@-MsjrNbZo6kn1V*mEWUZOCVOZ%#!|k8QDa6O zsQ9k1xy`KQCXJw6h!w8AHu`v}PFa0ZZElVCD~3@DT916Bi?+84TrG-nQkEhWP8e$e zL3^m=ulgGgI171BfT(!pL-j2XsywQFPc6 zQ!3au00B*`Cm01^aDHZ`3k)WQV=j~r%x!FZOU~&&#v~=>eIEo@n*m}Az(EXbd0E`# zoQSeDTAzo|8}!higiz|1mX6cl^n2e+Cm%Au&5@|Pi+$Bo6&7D8?2V(4tJv(e|5Zc7 zV{71CDuyKFEkbco5m}%H)34fEm%yLVU>=%y85>o5;G!jcG03#w48I$umFa0JmYu(s z=4|6x;@X;;?cTR9XR*fOK}8|!z1;zwLX+EGAG&xdgF#H?Ydg5=TR2JPyUAv_2|GB6 zxCtr=Y7W+KyOU1Z`g$Cm`{e^CF0%cmXJ$Sjy6)$-9YOjKbASG9VTN+uX-PY@=9Tcb zx*yKUYu<|#zF;90 z6tuwG5=C!Hm=XmjUTJE}IJCBgLvX|S>(tecN~K>J&bJ%W1{-41dJ*CiPz3Vou!u?P z>Sk(KTjanVMwezfU_0w^xeB#9U%o`>C0>F99Ov2n{adP?9^ zK!wp-R8}%5LuQcDSX36?xD+Zzw>D5U;Q#VxyF;hdWqYOVk+++XvDAWdaa@F%dUh;b zK!Eeg@5@2N3z$W>#jU)gWaHe!h2OWgD)(P!3?C|CtY~;PZTTf26J~gwtiQJ zDk+zz8vg*@egh#u9PPOD!9mXE;3nQ{;YNRZo2$)>3w93Yh&hlx3F7i5dyf0rC>bB2 zQ|bMv$f77-XL1kjfVb@W(SAImzwX%Pc|LV=1vJt(tMweSuUlib~Lph^LjtzqerxPL4$|F!+!*L zr%!lLegbZdGHDvN@;Z7Gef>7f^fTq`srBn3l?z`}Y~eY78#-yk#`RH+N1&(+~RgX=!Pb3U2*-8Z-8=lyNjs$v`iCAq};7 zDNw!Rg}-xBNx2H{Hn1~nvbhJfyexwSpUz&OA-AXOmtWAt6gG@-9>2? zKs2oJDY@yx%jLBJ={Q>j*w;r8f`yIq(oWN9|1d(svw|0n+%si9p8V3d+*RFyzO+2u z+EQISvqeAk`D9ty0C%;pw)RTb|2S69=gCWn4$D>5b5-}n*Hu*UOvrv!rliEGmo2w3 z-(%;J!6 zguCZ^C&zN_J0GH)!0$>+N^qETjO;9zrYdd^xL)}P!{T*$YB!r7j`lfr$pVSIQ19UV zbbgkIE8U@L*D9-9?j++QBJr||3wwBM57m`xbAzw0B@x?v?inaKhEqn_Stlw>Hh588 z7D*eI>=(;^3fxLY5wUa>r=<~OhbgP5s;F1o1wl$za6RB4=kkPa(8P+1L4ve$we|H6 zp7-p?n5)g$f-6(Ii!%{I-t!nsESeX}tL<%&C_-aP%V+?a2boz|(2*p1Pj6)UAhaHj zU^X6}$Lr+n*8ywO`!yuS{UIxD<>k;+k81E)YOh(fpH}_bo+@LAf)_Xi&kq)zmZsJD zAP-T9 z%;pex*!AvkawTwhy|6*l@83r4tMko^)~4)Usa?_L{1{e~mxlbAOSFNlZ=-*=%eWH?hwi6o0O&LL?SaQ&X$2 zeV0cC0)c3_!N4IY333St&_?`57+JNTSJ|8otPdkB(1Q*L+cuvz-$H4g)i(3&qoR`1 zQbq=b!y8_k-o4x&p*x>f)g_IM`7PzoppFVEl4v5XS>J(B;2CVJKi-mFAxA1?^M!2Q zod`Xm5DPQd`k%JH31;F55LGPoHS&Z$L`|j*`@hVLbW8fpIl1ZF+*|IzitFECMmQr4 z0b!qZpRBDxgCmQ@o*%k*x06Mqs;(|2ArW(fCzGp~#PZnGn7?JYyvbAfHIF2C*e|#j z3O)Ap`F^L|5u7tqO({l4P9E#Q>o#Hmdv}Q@cK`0(`}bkWGzv_>uo?gPlol1?u^G)z z6^`fIkD(Isi`Ua*V`IyYy45X?kB)kuZ=8BMn{%XYnKptmYiS<5FwNCGJv|5Mi!XP_ zRn=%>Hv9XJZte9kq*|#XaK|z^WET@kO2Vb77(kUp?o$1cH$Pbf_^x-Inkx0$lBQfg z3%r!)G0 z?gu%!om6yW$P#@3dmGE-FDNvh_M&z@SuR#HWjLOK+OF0w%*_c!HVefn=K-=CC;*JdtSJ0pNyN`3i~a6@2qP!bNay)jeBaU>$o2M&4i zGO@Izk1!Q41ICm*TT)h*_qF)I$_kNugG&5{U%}I}$tJ$d>t=7J26CXv$ZfaSycwfg zV?Ij8KGE*`X!g<>8PF~)wl{M)M?=#;**#~!Qad+oGY9UO=!7G`dKlGaWR%_43J{ep zV4$Wg6qkaK2zWW{p}FTh-5d*K&(u{!M`u(JE;_>hYC0{c_dO_)QZmUbs z-G(%6s&i`&VT15t*u#2Ag;TSg1tcs)g#eqpcXtlP_hJthBxYHeTQa9w>MZq<3!CN# zxZrCd9hUf~(2{)dLZum%luQAOJ=f!Tz0Y;qegzFpQt;gAqXw*TadD3~`^P-4PHQip zeFDCjnqXmKYU`*(qAk{1YFFwBjp;Y;br=X&hXn-q*-M2mYd7FxV*_hNuftK+%Pg<3 z^l@vyrr3`IkS(f;iXK<LCkSzTQnR_ARG zdK9KHn~g|jDqX)UNZ-Q68c7q%_E4~z)Av4EMNQV@NB$6j$8E&9G~Zoc*fX>`=fF#} zuLjb467t<4Dm`hF8z~c#jOp+OCD2uRm*YSj0RV(Yb}6r@sL)=&zw`j|{_h=Vd71ZE zdIu{9hpbyqV4%4DDm}1sl-YK7R6iv?UN*u1?#yw+M5I2fpzU)<-68ifN)w~Nj#jeT zVVeU}hc%x-^yXdNAr8p10$vQK#b_qV@jVw(2_lUzrSH&!qb}b==yS>n-8$d%E-un`ND0I`sD)x3c+%q875}D%k_d! zK#rQHpO@yg(mA5F@6e{{XAkEg1k=nrN&cRf9(jP?r&)9TwEth4LsG6o4nDRh~#k@v3C#W8kin$&d7>U!>wg;`R#|AUigoh(p)&T@jE@O+<+t2mjN)wo* zr0PDhIr3x{{lrzWJ7n~~=N>it_;`nV)%pJJr@_I2%Zbc?Iauw)Y5=t7_bMY0?#OjA z>H;`oLc;X)H16l%s5IUMh5FaopcHo3;KF2345V~P4EoWLXcgC^Gxzq}S?EAn*-^`_ znD@dhpTikz^rjBWT&OJxG4YR0kB`~o+|`_{?DAllKF3x7X4JFgnT8k7Ar)C}Z9Ux- zlN{{eY(8^aV_IltuvZsrnG^^zWj=<^oRFMMh?hztpGt%Rfw+g)qOioC zy?c$^1GpFyxhGOFnHn`-+dmLumUVQQn3>12TB=+I^9B%5p-`w5S5|85;O6g?o1Nh-M9Z2BvxX#wV^sidbz za=mx{()j>NW=oaZ|07OeDF^!fo2H%{YQKz3!sB*zx%*xKwydY7C8^Sh9*q{a2D99a z2bRItk+%drRX-4Jc1(On1|LGvFpz>WYx%E_mjqZ&EHypx3j*eJWVLH{ZjGf-3-a6N zYdy6odDvJv6_u5T2S>TsIjLS8-m_qYhw4tuo-Egd90RUjM1(96@sWVr(L8j~>NZQX zTAZRSj>go&qNt*RYo}-O+kL(Dn_T?9kLNcw7Ea2t$j7J0r)OqTK4V7oMXjnSDBMm2 zv_Yb?Tiu=|jSm<(Qa?QJmTM6^Tx%(snW?$BlmVFo_&PxikG=PKuNrgg4Z_4eU_Yj( z51(Te>gd9wqnfg%MgkMySdIu2SoM8g-5mx8fS1fm~OT05pC|AzFIC<@wW^bu+P(lsXK> zal+!emVLXhKLOMM>UDLxYJXjV-SO1iJ)dH0J@p)aoy??HR9xHyIuiv{Q&LjW?j75( z|ASJq+q~j!`I1{>b2Az$R7cnCsoHw)=fkQ#%yHic(DpOdZ^FaFiI0w77VjY*pzQvu zNj+ufJ;mFzvw>L3kU9LUj#m}xIqy$<-MF)%zl_19R)j|jjWli_skR<9N~ z{Y>CI5+wM3&$inU9r{B_RMga!ALr*s%<$#<7r%WRwRub4Yrq;B^z`&P@Mqf(;wZ^@ zW_1JHHS7GUe}>@m2!>wdjp+< zLZ%0iS69gQx&!zcMn-Y%xiWG#88s0tVX1Ye`Nazhe2BTbb9OFvYL{`yNQ7%43+ zJuoyR1D5G>)S<(m=SX!*v$8Pg{Y?4!jnStTXLI4~%EHRsLk`2G;QW82fZ#TNwACNcF!x6GHdbx~) zOu196^w$1%jrn+cg>DNtZL7xhvak}t$IHO=&jTd7Joond% z!X*6tXG_ZkQUREi#c_qM_s|eQL8YImUJW96C!PB_S(IK|v}mA<^M|E6hiIy%k1zxijYG?7Dv80kfMD#m&ak zAQmJ!-5yq#3=UQ<1h3S1?^a|kxt}i33PpYcNwOJgG+J2dEKdc`3P(q4UTi9io(6#n zVReTwM;SyLis_Ja&lG$?<}iV=(!ULW|-R8nL?)kz5Vq4JB^@j4j-@z=>gta@qCPx zQn9s_p!5qu8ECiKyz(og{IxcG&bD|z72S)~*V~g>l3$V-ACT;cfHZo?s#rYz=JA%U zRTEB&z$g0^97f>(pDphD>G;oVeFs2$t5@n#29}jE?T%#qEs(|Sb9*KFL1`;?eG|fo z+dv+ILh4IIe96ndvzANwLnmZsXNRk)tAt?;uz=f+9;+gmbr4Vme0MTlOKGeBTiI|B zhWVUL^x4t@*>tO@+8_4(C)X-0Os4t4W@G%P>CV=X+tyxKv-_ROz)w+Q`Yrg7KuzZz zfc*ny)WPkGMxB-19w{K~Ws_L!oqntc$3voT{T{A7&CF(JtUv7})dTLd(zL}PH5y`Q zkk@JXoeW^Q1M>TD)?Q9lR{vr1!tV_{mrA^ah=4$0RaIzXQ&FPp_%i~^AU=kL67bZ* z1?9t|e2uKE*q!@1H`bT=YQS0in1r}OM1=U16roys5W%B#Z4lYEQ+OQ3{4ipTl7Zg$hwo8$yV5Ikj%Id_H+W>UM zH!}mid2kkAXcn*vZH$Ub$0ZSg*u(oX!oa|guPc|$2l4+qsby?dqXEe7O1%$5LqjW7 zjuDmPf&Hsv3zL(AfTb!doV!9E6e2ZC+}SN5LJ=4qA)5qyDwRh?z~nfjS2hRO+JGks zK@;UFy+kIBs*1|qUbW70@X*SO=g(m@z?23?H?^1{Wc~_JL2|(#GWXdaquh5&v9ke(}b+Qzu+5!-zWR|r`l{X&5AEuSXH3>4ox zazyLF9^&~|obV9GSZNag0{`)Pb^uU>m;4Pt#|-i1kB}JTNI3v?{IsjT&|z`cTDvOr z0E%PcS2CrNp1U+&@b%udhBaIai4YB#MyTI|hK9PZpa3woA;yt~8N0dX0vBxnV*`|1 z2`^E|$}_O|u3xT?cSm3&@%FES4GY29uB7~5rD9B{dJF;PO@Z-mp+?Roqjl*uArBFL z<3O}~`3_i{$sqm23Z$4&pF6rQU_4-GrXLR5H2I@9fz?U0yD!g_E$lqDlAEo;RKaDy zk_+v%5CDxr{fOd|lUFAe%Z`p9f7t-25^2z6NIc+i{j)kf*wo|+ zq}-DQLJdX5D$l70fTN&1DK59qiB&m5OT03sdrrWHZD&D;kY zmB6BmrGx+}*wxh)5EU7$hOKd5kK;$0E^&a5kQZLP^;{O9@0Xi=0e``>zpN>B|MWme z|G>^T1g)D@P9}`~@7!*oschH>#cPy7$kO4&`Y#wtX9N*Ye)Kh(TRIdgCTb|@jw4@ea8^OI*c;2oB#k_%C8Dot-b=8}uJ95-7Ue``2R z;B$Unu)&Eiot_vWr{WDA%bButu{|Ek&Y(+AOPgPGNk%c)&0azmqlg`t8kVBN^74u% zWX0OjW%uZCYr#faqmnSNUnFYA;LLC*&p=%VUJ*F5_i1s!=S zDtmj-#wd;yg7@b)ZvrO(@)WQ9HCxD2?nr$iN?Uw1I4dOJ4Fac=RQqS!+dJMI|BgR@ z{r~_AgoFQ6irdX{P+~`ADjO7)Jb%Q5 zJ@A(1jlSRJudSi&zipl^(|S0YEMRPV85g0Lp)h zz_mlvFp`8F@whd(nrkDv;!Z+j^kfa_IX-IwBs37F$l z+8ryqxoiR##DHB?C@v0ZxoNOA%gch$MiQPf7j_?O&v{=}*_wfDyYl*mEnF7$1>9?I zMAHt_7tkfbB4rduGP=4}?Dpe=6ter~T4p`hzS)z#$4^ZKeTAVkIp0c7B+in^*7$G; zN%Yu}I;OdvNYR=lYFrdxRZDbl?`Tf`W2uYmc5oP!V&N8cyG?qBLO>Io;~f ziS0ojQ30hsYU2aY^m-v;)2V+;(wz@)CxgsRyJ!JBny;m?!3C6q4P+F&;3)jvZElad z6i2;?BqmBE+&d5enbuX0XXjbMM%9gjQGkig#&sb=2 ztgMQR^2n%#c417(NP@$IjiWUKk@?Y?PEk_wgsiNtbq61xLTT#_jQ9Fvove|Pk4L** z0~6mgCQg=9$9F#jc8^5Lu_Pbv8Gy<;a`ZbWrJ{#{IZ(!8HNW%SuJk{e9|9_J%3o{# z)R?Ll6co@>7qa3->I%5OEz^E(Vh(|#?mF-;)x!qa>kaU=nRIHg$X$f?`e}Kdj3KiV z-d)d+*YYwl#Qe*~<13>3B>=3hqPEFD1qDGpiLgHvd=+swKqS8!7kTv+gGdSyut6=~ zN4?nh|FdAwkr3Zxf^V-=4b111>9EF9_-+BskoPp2-Y{i0($6|FRxbhbF2iG}% zzK?;c9nP?o&!`SBX6YBT|GEAI+8zEIddB9GpNGgg#43uDEC9Huac=+F zRd$P=b3)yWeRCsAS~g24B3UG#MvyjVn{JKsJ$diC0|sV1x)@NlAl%~bO&RU))sU2= zIfn_*(+3T21N_@pEghIER8q-fXxr3$3Nv#C(0p?+a~LKw=)~=Fek;2grp#lD>_D=o zqNnG#-fgO^tPE6p{{t1jNeA-HFPWO}KGhqk!d`qEY@vZ@2YKaDXhEdcdUC4P(yT-T!Q#?|(vLJiI)MeIqg?iFdXiipC9e$%I~J#%RyKV}O! z1fI+|`j=d|-Vg4RU@}j}(GQJCsvziN_62_GUZ)6Ty3~`E)pM<}FiY>glG7VejyFel zfdYh5-d9&A@Z4yig-IFj%B&t$l-bt(wS4YZbg{f;K}#9$)pLID227Y>$AQ@=5?hB> zlhxQ;l#0raw(P#<=Xpk9s=yU1UCKS!6hx4T&eNcbQ|71tH+p)6JK~ft$^> z>Wmgc@pb=2*lCYTOc-MBTp7uzf`Enfq8;AeLo-1Sl!JDR1$kaC{%2(GhF2-}>9W4p zp2=KP={)N9rH{_TkDj9)hg5NsKWJTUk6DrUDOoB99!+h_ZDrj^ncfS|x;}r|lp@#S zpxM2HjYLJpi7-5KAfSuUj8n+Pizs3GxMFb!*uD1(aZk){)A74;+Rw#QDUa52e&T1& zh$>RCe5XUkB;>LY!feeI+)NROCkfvjc{JHWTY%kM_7rAm7>;((IwE5J7ls!7%im5s z;zJ;HfRz7yGuSxvgILk?*8A@<`+Y4aMJ*@^98^}`@_}gO@i-&+?LxM<1K-fZRIEZQ zF*OZ8(Tr2p?#MB&_|o~$&@5bcN6NiVE?j(EZAmQoxW}v=U|6KUG*K(C&gG*+R#syR zvJ5NvMJ#en-F=?4Og-UNcg*_qqhhLjDz1rNfJZH(;~^Wj^sN-4QVO!=tDu|Ju(}Mw zxcE^;VO{*mb6<-V!=hHd$6v!1frgV9I!w8A9H#nzkUtBBv)Az7q}B%BGUdh|b3`I1 zOwW{LQ-6^y$);sk(jZ3)Dk%;_>;5tv>SXBE-;s{qwi&l`L|~B)Jgn)AhtT06fa;dZ z$f5g5gG9Umk4+Sks%&zosG`FEAkU;x6XeXJlai(BxURLG*xwElHDm`SS+~mV1J6+| zurM~36aN^S^Mka%q2&?oO*Xr*Xw+!lk!NBOXtv%~xiD%ak0Is`Y2Q|L8%dn9S(t{W ziZT|LFl@EG)2toKM6S$aS-er7y$XseVQ6mG+s%He+mS0(Egvq~{$f>f-(ioIoK$*K ze@Jjjk_EHk1VTj(7QqTfZFuIY;opMDz8GN<2Ot%fLz*XO7ThLXZzVQRu3CqPqQAzD^mrk3)myU(G zw3)EtWLck_ct#bt%1bGat{O|B>mkF_PqoH8$^d9?KR+cfVSqeStT4eOIYC7rUkz)f|6MT+=t1O<(P{FmcBEEs6`j3s8KZ*t| z{9o@j&;%%o|58d+Nx;|9bN$zQ62051rNyj?crFad>Qn!EPr|WrW=Jj=;|I8W<4nt& z6|R;BrBW;PlloV)2?=)6c=$DeK*N+YB;_#hF9r^a)5$+t-hyzo(G8ZG2PH$C1gZet zwJ2d!ckhV>ZNP5OAZ5ltW1s~9ni!lju8sm;2kT*ISayzlAKaho>5d+ zRaZ9cw&(j^nITHIaZ$pzYy}K2GHgaA^_WWqP~@ENw_*c|SQv?mD(K@;2q!Cis}cXtgQ+#$F_fWa-eLvSD5EeY<<;0}Y!;QsFSy?t9- z``6a1tzD{`DelZ%Zg-zPKRG8{Sy2iNnGhKc4h~I5T3i(l?$sM$;3K{Uu5kL1b^tH0 zoK>Yn;lN|W`*3id;AF%_)IBnfSKRfmprr54Xfo*Nku}{gxn9#ZW4v}Y)SKQ)muqjZvY*qn*NjJY}vpnQM_;;)y=~e*lH*YQAD}x6tAlDB-{JMGh6QB zTr!?d*3VB+6tUltxPJ#LRb7WFQJS^%D|sbu1QmV=+->~iK8GuA!r-rIOLbS=$Uncx zK`9T2=&6g;pJeuF)y>bHl?+u_ibTgYuQn72}saTysh776~>2N4HO6h$>Fb&KRPY zsKWycuKODkQ$cUm>%7jO&ReIvQQ`=e^TReFYpXH-AcFjYW1nA*(Lf$S(GsekM;y38f z=1yBN36Q|)U}h;|Mf9p8QP0lJSnmIUn~1OHyq{lSTNk3o`z=zX`Z%htRCNI)N zlBl+TTjOC;h(54J!s#wJvqL$HHu+4Dik;th$qHx5^a&O2=l|*0V-kQK7PXKOs&(h2M{?uBK ziTz4`ik$M97fCFQp|#}*8FkkHHK z#r}Qsi;L~vH_z+26ym|5lNdccodSG2)2_IIRR#^pda7gN4D{o4w8KLTgF`HXbd19+ z%q(z>|bb5;n%k*Ar4rk{)o zfs!&){5RE7`49@wmNb1*IF+hMLrFNGDZLL?)}iAA59nj%k5 zPsi`NdpNG@dOX_UY~S|{s6q&lL6P%JRbOnLEf3yo-$d?kTcmIQQieQ6V87B?=e`yo z;C(GusEXP>meuwH-RXNZO|q9~v@oLGgNcQ?Ij*QQc^u=5S(0;X=di!_>?QaQo-B1Y ziW~z`)|=P=+?yf1IJyLce2t3o8p^DFKYfRia@>m(p#xkteBLP^g7_jpKqu{Y|Z=nK`iPu``Z3(wL&)+LbT!`_WKL) zVOfSZSH}cw>{9|OdLU7ldTRH^_3`P@PHJ28`)|(8R;8qUF~rnKGWjHe;8PD7Ik8GQ zDOr^oBp`d_#KuQTciF9eQuTq=Ym2%F4dz*k^`?(TbTUYSukXsMkF0?lEw39^csUVV_oA1go0R zd2im{$oZ!WoC*njxV|9SIhh(B_f|I&`NL8kNUfB$y4Ob}nq=ewyIj~jP2s)Sv+1j; ztv>kMP@Tohm9;DC$`{_;(y0UOL+;ddhtL*Q!vg^ zR@dY3-OUW!n_p<~ldO{VtV1hE@20Hz+U})rRyu8AS5a9cpJr-oTToP#oRxs(#^N)! ze0O3Ge|@@Cn46m$-}xI)K}uKb&i$&@)%{>@#pO})fPRW^*-Hg`xD$=Fm{ZUVL=ut0BLZ*rHK%biJqm zgSRY5!^6knspT7M9joh3Nt(Yoy1B({PC;b`pSNhVb(WUg_6dQD_V&yw%t^90q&yrG z&iIh!qBiH#Uk!(e#K=Inj%9QW4E5#O++=rwkui~jNsn7Q(YQHw<+B7)$hMd3*0jDm zix4K|!H9J0CsiFbV+j!H=h?+qVmn>-hl-*PUqAX{h*lYND2@+oJIzy5_a!CqL!Ozv zZ;n#=&H8{1l0qddYcD-GuuBrwG&ws?EA|mD7j+YIfA&>R8Z$rDE&F++B23cZ03dt0z2F*Q|71&S_ zb#BG38FqO2o=wCxh?Kjys9!wvCC_T=iqXbPS5rU1>BJ2FI?%We=EH|r4pw6TYzB2d z$pVbbWQ&9dzXmIZ24jZ|0zO@6%Sk2qvS?wyE}AAUIU-xA>Oksm_!17Abw66J5XYk5{{6aE$T#4jE&t-bU;WlT=bMwg5qJbwwmP_ya%4+kabPhg2w(dfX z-6=BTHbqUDK50mutzaPawuppULqkKr2cLb)h9_85yM4PqZ*!9-mh|a~_s+-#wCOI* zFCdWJOCv4h#{FjH`WQnL2`RkiXitR#9y%(5xU&PLp`=vIL{|oaQRm+u0|PGTnNxjN*QZ3R1Y zcWH9aYbZ4-V4Zr27b;)6xT-t-5Vt%qQdLw0i<3LLxD1Sqg-5mfpZzv~4;t&q3My90 zsNKwY_=At{f*aYpv$F#{pR7(@eLX(udK0zfN;p=r0RM7d41t-$+FP>3?Cbz^*hS7) z?<5!u**LFnLph6$jU7X@k!vm@*sYNZxIt1<`(>0o=x0)4@TTgWw-zIAXmIeF|Jm8f zl6#u=LSbPcB3W9+i3gU0ePB@twdkIhby+<4aOtcHKS+^%!bVG7ht7INt7iu!O zM(P_JP;PYzBH2uhSZICyCE;m7%tyYN68U`p_BN&r?%Ril)mB&NpCGBwSYq9p$Kv0f z&S43sqZxBVLuB|0EDR(M|yG*wP+X*qDuRinxFB;tQ=bfMJO#b;#N6R_SbZ)4qoJWDy6CTkV69C*wpv+LbIhjUJX&Y}(zzQ?rNfSB zEJ}|__F`Yjs4s=09xpbCA>!cR>FVlE?q8NXOu{5E;#3gHa;3%fjLGRgfx?RG1U&G? z)Ds3x@mTc9icXi&E-rFtUt+-FHF4tP7~$d}Aqe`d^FY2+D)~+VyMQIh+7D~#>+7qi zXy;E%O#Ggk+g<-d0b`bxlN--&W3`<}-~2i@Hg>)KryItQYqh_>o7@Ox(IfZcnG)H+ zXW3qiR`Sa2d;ll>v-#hRlO>DEK%l>^UHvaOzm#e18aShP_uXu(Doe+V*(^B-lSDkw#LkCR-{j+DA1|B9MWbeBWy2V&);P|;p|U@lYJ z`xH_!1LG__KHKxZMBu}#j=+X^+lPF9XFoAkP5SF?AY2E2E*>7+r(Jenhi_sb(Lj>& zB7UguvvT=9Vf}KR(C+)#(a|3!o(Du4y88%CGFZ255#qlIs4~G-6IN6{w|9fJ;J+=5BVKZo4!Nx5dckM@*~Z&32a zjLYhD>@DUm<;q`SQMY{{4%}+~%4mRvZELZ%^0#al;1`-28c#JQTHM73yUA`Scub|Z z$UEiRJJ9jeFDbY3)&R#iU5Wf@$cy?RmYB_!GSudHV%D>lrQCx*+ov*x?#?GEbO-AcX)6R@LI!x&2cP@87$22YG( zi&tfvngcl4PC~*A>%~8SSE8?{e4SxgsK?6?}PLN@C`D6Er-H+It z)LEOr55)XYMw~1OrPq>ya2%wwJ}M4}$ zt2&4AV&8q_AGo>ctgQG^K%P*-KlML(?457!*8&@0g^PQ6ef;?GNa`=U>~B2Lq%N1b zrc>CgzddrN@pmyeIB9f*|NFxQq-<^=BliLRN3xU@B7uMLkrgkT4~nYl^ad*u946@1 ze`~1Lfi^}KE-c2f9b%GSSqjp>hYvCGzCKxNusJC%E_va=O4v*WcHX|4; zF5eejRL_}6%p_*>Pg3q@sm_vX5lDDKvA&+byx!rflOSfjc6n@E92}M>$Fz?8x|YI~ z9+_!CfG4@_u5@X&X5y<;h`aG;>@G@mZjYCiw3IgY6McxZn4Q z+9MjK=#!n8p3dcZ&se3hI@G4j#+o;_O~)ReVA$?)?lkce14s=iNlA`Owm}d(c?AXU ztAi_ihqXa9^O9|UWXoniK_>-o951`8*)p)6n(ODj8n&h6Ir z=f!n2n7ef}yjSl6Z!r)bNzvWCktsWs65^5)LLOmTJUQbjIrZW~9+s9Pak7Q7t^YpB zA-6x)j{8Z73g-uj%m!u#_D31=ND7zm5ns+FcRu2>9Gi zDBgRC8+m#0=8T_i98p%y<%dpBn$Y~~6y_{S0B^+hJG&mUu$+H)r=Z?*>3iB60D(Xw zBS!_>ro{cdnBjzxg$1Se2$Cb|Y3b-#ULX08gGDJ!DEzw|yCtLC+?`$B+z9tJ?2U~d zOSj%B6xTY30O|D}Hz_5ByTjM}f%yU+`rPhgCL=?q5=cQzR&d)`{7Y%<2k~S&YRW7v zK)Y52{rKEZPG(A{Z_oWQxO^VHe)qrAWGL^lTfuhYu6M{;9UNpq_;9t@VxyGL{e~mm z`meI8>itrq(1C8N@59*Clvn=Lcezf(k}8O!-5G-M+{lc)oZR7lorh8SmhOIkW4#n!P_l%<2DcKI5yF)*pu68KN`Z+$%=YFZP@M>;5e;eozDJ_nSMXkUM z5I#GYwP9DAmI1JDxyJ6Hk%`akB>7bGw?%$B>xg0X?fDkX6_YPER@>eKY5FQk(4SkA z2M6tig&xMpUeru(Z-t50u&|PfilaIxGqHf%<3le>SmC{w7h>+jgznq7!Dv>Qy~YS* z8Cclu8~4!@BO?{%WDw|x{%<@)R8(H}w2{aZFd)49dwT4a8pS$gef4QczuEzEisXcI z7f3=23tw0apIuLuB~VZzC5iU~ic|-YT#Ss2^pI>l2{!|^Jy7i`%ikyyN#jcX!bqEy8MmxKSfF z*<5*W(=uv}kB^s%B926F_1r4U&ksV@Mfi0m-b-EbY^|EY44_~L78bn&@sHj7d)5id zdS7q%vUY8_bfU-X|6XqX@8aAKh&`s&G65O%{YOE~2gfFQ0!&NVB>v+B zR+BkBKo`d4_uu)v%3wHaB%Hax5%@VNbJI5;CBoVULvjO;KjbrRfl(*$S4lo-R*I!mf zE-uAjcyRQfDVNz*#Ze}pHQxp}ySlncMZ;SCwy0yaWV82{b4}iH;-Zk5nwoyq({tK8 zoAd;vn49#k4RyeH)z&Tr^vl=0^74$7l(ptLOLam~TAG`+d`2O|oGiY^K?|i!{uTe< z!Z9rkleYxwIpLqnxkbrkv^W}|l z1-n!I2hlJ9R4hkC5Q9Ud(rcN9hlh9c0SANO`=3ohlilhCfSj-xA`Om=AR9DIt~uy+ z=hy)tl$4P{M4F=v{Yg%qXZ_*ZbKoh4sDwnXoWGv=>7K2<6}RJ5eSN(PRh1Y#_cl>s zS$6>p<^)gCn9={O*CO}BcOuhoJ>ZH8TfGc+i_xv`l|gf0C28p%R(Z!s0EIHWuOq{v zhDJtOow+MA)T(?RJ`CY4%zrUx@nRAX*qYiYCkDIjjV`$gM)RMX=Kyejj#b33Bs(@d zu2q4BK|m!G^~X_JXdb|Nfp;IcS&f(Ycu(hBLc>7Pl(n^v($YT6 zRi2#NUa%B{aF-K z3gI{Of`NX(-#(9&pMzspx^U{=AQZuVfLq!OiuyU$*xC8wKsP-t>57)x?N{hSF_&Ea zB(+jHtLGF5IH*9Xbw625$jRw4dRhebkt7xh6;d(4N*M%^V}uy(@9*=IjL$Z7`NV~` z5jpCq8?xMI5xSg1#v#y&+4lVvMCe}3^EdkhTx`)+b$sp&M6*LUtX z1A>W_P&AsF6?Y9D+bU$fUcnH>4^b&ig!AtLd?#vV;n^>gK#0S?`|!dCN9qLU!n@_? zVk#;sYHseP>ckeaWgJdPA&@@?$qgWa*{Levv(go{2P)Ir%03_;LsQX0oXzvXw82~FJDy0 z>pmzn_9S@a9;{XjIBkGcHkSTzV554$w(fq6*giOfH5C;hE4LVOo=-D`i@W>&T7MgU z{`vtI^i!Pt{Q4X#vUhdWkk%Ntmt@BDt)3Oq#JG{A#RjjQELyUj|!++xSWOu6LR(rTaoXQP>OGto- z1xVRSMg}^Tg&`VYk>;AO9QHBBIPH|@l-**S0@%RTjI{K*7LqJUF~raKQDX0|fxLMz zPNM{=Fwi!n>7(xJnJqwoU0sn0+U{>0nOYkMqI=z(_yRsqvA-aBBg6J0TAsOYmDtPk z6Jayi+ON4b|076~l9kmyAZP(^&G+`F*ZoKfPFDp$2-!rXqkGdyc`SCSL{h3iKqBkw z=~2jL+XAdZL^9k+0v-oN<+G4OZqe|=8|Pi-b(A-KeUkV0Ugeta{DB*t8uWk#9ujZB zRmGv`$Y>oJ%F47X#Oz+C*4B#wL7`7RzSdR7=GKb6k<|h zV#xs~0p}0{6O+Cp9I*9i^1HoqS^&>7G2R4R50OO34KIhOSf@Vymw-+Tue#1Ui%pix z-AYN0jCh#Qb*6AAc+8xbL5q7Fh&6`ngO5UvL$jmPQ6@Vx`KNsfy4Wl$#DY#04no{& zjb=i4H^2&G1p}bsOv(f5ZXkj3336N}KfY=0({Av&{u?X@cJ%|5EZ94O? zyGP!4dYT5$fT8$aKTBaD8KAte!~%W~WBL?W_Tu8|(dk#dC0fw%PUD7_02CY4Pt;sv zKn4fy&S}29;EacT2)X-r4kB@%&;PR$wUUuq0`NDJzI*!8?-zXaqA5Nk?Cwjhs=e1a&lCsh{tCPv9axI`?fc>9dfc9Wd&pQztKiBHhsVNhy_$qTT zb?}veg0fYK9QglusQTiwqM~GWSw08$;$O!}{dhf5R>Fu% zMOApJriw1g?Xc2<;dOW)odKu>G7!LR>6n;ojJN(_>U)b~pY;Ldg%6{kxAmW9K|q~((xe~ll9pM7Y#D>Ei)l!U%&GNE8r)WsxR*Ksi_JA zLZ~(`ZxcWcdIGyF>(DaE@Xk&HkNL`7A~;LOG9)p;Yp}P^R;Q0vk}gm!)q5X0ya9A2 zfIv{yQVs^bjBzM;>p6p#7{I9zJ`j5B4{0PtHBJiNFFTz{s43vPxGuRLAB3UTvO*;# zR--%pS?-@Z!n~UlKpl(PS?x>YfYD&n1aU(qhWXY^P2N12Wv`;~@< zhLU65##f&NyjrST<^ZiHPgVzDbkDifC z8zZ8RPr~P4M$x4B%f3)h)U~#z+ZZwUr`9~a8f?f()YH`LYp6yuX!;Bkw`R*BChfj} z{UXA+*kO_5Jnjd0hG}Wqz>c{(A2c|;h#0Ggnxy-@=&lm@waFybw^6kiftF5neHV2`Cov#{F zV(`Bte{H3<)Tbacyx*$L?Uurrc814`xw@t(N&;;>JzxXu^5KTA2XGxeB}a&p11=M& z2MSBq5(D4t%~nYU!3wVgaxzmro^~Db9>-Q#V_Kr+sj-kHlIN}gcPF8#+WeT;IO#s* zjZQ3}fHee<)u_8|@YwcD@pugSRd+z-lR%{hj|r91yh9Q-M}UTvfnjN2KzUF{kGX%% zVYwP3e`Q54D=Q1Zs~Jnm2FSnw@{arGwNo=EAW4v;cJEy(`F$LbR|rGui1`>Snk&sX zCOy7>aVLK{<}>WVL6^JcYehl9_DBU|uLN+v@q~D7#<^=d zT>u>JN|{2}BG=D7GMXO8c6I7n<}UCUB@y+}TCOK?{Fhqkj_fVh1UnKE3{goA8k`{{ zcX<~UN~W3B78&X2!ejiJZTh*GQz%$6xm;nua{_2cr+vO- zSoH``T?x3hi))2|s9kP}#Kpx0Dyshz88MM|k7fiI7#^TI3=h}G9iG!(pr4)DB%-tc zew5qz`}%h9$|b64Y2|Qu{yq5hjXKiG%IbW3ux|K84+ZQXopTxZ!yIynWx2UL(>vQe zKeOD={d*!+Ec0_ls`l+I0)9sN4JoVg?LIV8Du$$~;gB9X!aDK8C2^}yZ*?h>7m0?8{ZX|neP3)QoHK|*e5QYEMQKUQ!4?nx0mX4wX5HeAD|87sNA9s zn>^1aPY?0&s!1;A63X&g9v%e*{j$^v4SQk2K_xKjc(A><{>n9CE=G6gY8xIH3>I`5 zKnMN&l2TsAtkad$1@?T}9gWEGKUltNOH7|n?&*a2p zk}tuL;-f1Va0&&r{a=w@yeKNS2QA9Ca^##~Z(>Ozr-70ds)?ALQj?OMn&u$Ga&10r zSHQ~i%k)gaQ~mjI(VI`8>cG59N44e;4&~NoZ~(GBKE$%ojA*L9!s9X@|H)}W#vF%F zGCy{!*ma<7yc+RMyFuCggrn6@O0nmPI;!cs3@d)B{dI*}0!LUgXy`#C`)DGj7l>p$C>5iY8b#gsK^U#_=1sb2J{gGe zOA9Q%@!15;&5rEZ({E)VeR*l!9GyRk0#}2EvV*H0r$~WMRZzsXh6QF``_@tFZC~L3mjE&pb4Tzlj-UAIzTlIA*3ev zT6sL`N7`EvUEtw=s_R%ZbQTd*IZK`*%!wh>> zw*h8$0q6(Kl&s!=UeIIm{j-OnB71th-}^UNMPGm71}QHgZHbdkMKqpHJDpaUO4m2? zB9eK%)910cy{}&tfEPuav;_9Hx?5}{N8(^CUA2Bocy;J1Vz_sofUQ$FAKDdrGJ6D3 zt9d;=lbZVL(DiqDFz`G!EA}wVXp)s+76US3hcSiMm0E}IyM^!(viKO&?W*nc?-qt% zJnM$OgV2L}6Y-SyUIc2MErgWc)e;Q#Gl=naqE&LE;%GVeeJ2WMl{W~KGsEUg-qcOD zvKCh{(dZRON#PILXIs zGgK5XS9%p9GF_NbU(aYWw|UTG>L{zTupj9;9JHvEQ}Q)554`HY?!-Oh)xSsw*+ z)}m+Tyu5ga9JyfhJn}e8bhj}XUy%u8PmztyJZLs05e+jkmWG_Bc3B7UP(|b6YSbV8 z@?ipE8Km4B-S$-^uB-{ao^>`;SdEiI9kvii?$!UkNJ|md{+Yu0z(?DRs(Zd<>q9_m zUC~TQQI`{)h8o3b$~P;SG|BOktiWWmQN88g%)E@*aw;Y}m3pB#*laDf-5p(67US3m z-QQoX+jD{hQ3>-`M@3HkBWt0IWSU0!E+_52Vw0!dFn?`}^G%GJjrBv}@ThS2)1{7A zoJnySDCId_%8VHNQQZ-8Wt-WUhW)I(jk?~|Qdr)lADH8m@wZD~3-R;X%#k0~o0?gm zz|COdWcyhq5?5`OnuK~`0(+isrviYb%l0h%@muL)C!l_y91_|+`CqI!_NS+y*ew5 zj8L%b&`N;29r>?T&k|H#eahtee_B9g$ZJ4~#VWJ2sXihaavuFm($z6H z%uTA}^$pI)p5^8F+hrE>XNAGRK@r3a9_HTjnF?}m8^wo4I~^|&97o#}Y$(Owzj^~- zg*Hqy_Y;Wr-*%7$&!4g=!*3RK(vyjSj$ZnIJ9<$?k|u<^K1Rz@B?#v#1I;1fl;|(L zj+t6im=T|Ov%r<5xs`>vg{6N2mmmQwnbM3KC}qH8vwz7($Z&Fg1xmuS*b)3l+t~pn z3X}nEcz|*KLA+~mQerz diff --git a/res/css/views/auth/_LoginWithQR.pcss b/res/css/views/auth/_LoginWithQR.pcss index c246388869..9d4744a389 100644 --- a/res/css/views/auth/_LoginWithQR.pcss +++ b/res/css/views/auth/_LoginWithQR.pcss @@ -11,6 +11,13 @@ Please see LICENSE files in the repository root for full details. margin-bottom: $spacing-16; } +.mx_LoginWithQRSection { + .mx_AccessibleButton_kind_primary + p { + color: var(--cpd-color-text-secondary); + margin-top: var(--cpd-space-2x); + } +} + .mx_LoginWithQRSection .mx_AccessibleButton svg { margin-right: $spacing-12; } @@ -135,9 +142,16 @@ Please see LICENSE files in the repository root for full details. padding: var(--cpd-space-3x); gap: 10px; - background-color: var(--cpd-color-bg-success-subtle); + background-color: var(--cpd-color-bg-subtle-secondary); svg { - color: var(--cpd-color-icon-success-primary); + color: var(--cpd-color-icon-secondary); + } + + &.mx_LoginWithQR_icon--success { + background-color: var(--cpd-color-bg-success-subtle); + svg { + color: var(--cpd-color-icon-success-primary); + } } &.mx_LoginWithQR_icon--critical { diff --git a/src/components/structures/UserMenu.tsx b/src/components/structures/UserMenu.tsx index ac6a8c8e0b..4bdb6e227b 100644 --- a/src/components/structures/UserMenu.tsx +++ b/src/components/structures/UserMenu.tsx @@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details. */ import React, { createRef, ReactNode } from "react"; -import { discoverAndValidateOIDCIssuerWellKnown, Room } from "matrix-js-sdk/src/matrix"; +import { Room } from "matrix-js-sdk/src/matrix"; import { MatrixClientPeg } from "../../MatrixClientPeg"; import defaultDispatcher from "../../dispatcher/dispatcher"; @@ -44,8 +44,6 @@ import { Icon as LiveIcon } from "../../../res/img/compound/live-8px.svg"; import { VoiceBroadcastRecording, VoiceBroadcastRecordingsStoreEvent } from "../../voice-broadcast"; import { SDKContext } from "../../contexts/SDKContext"; import { shouldShowFeedback } from "../../utils/Feedback"; -import { shouldShowQr } from "../views/settings/devices/LoginWithQRSection"; -import { Features } from "../../settings/Settings"; interface IProps { isPanelCollapsed: boolean; @@ -60,8 +58,6 @@ interface IState { isHighContrast: boolean; selectedSpace?: Room | null; showLiveAvatarAddon: boolean; - showQrLogin: boolean; - supportsQrLogin: boolean; } const toRightOf = (rect: PartialDOMRect): MenuProps => { @@ -98,8 +94,6 @@ export default class UserMenu extends React.Component { isHighContrast: this.isUserOnHighContrastTheme(), selectedSpace: SpaceStore.instance.activeSpaceRoom, showLiveAvatarAddon: this.context.voiceBroadcastRecordingsStore.hasCurrent(), - showQrLogin: false, - supportsQrLogin: false, }; OwnProfileStore.instance.on(UPDATE_EVENT, this.onProfileUpdate); @@ -123,7 +117,6 @@ export default class UserMenu extends React.Component { ); this.dispatcherRef = defaultDispatcher.register(this.onAction); this.themeWatcherRef = SettingsStore.watchSetting("theme", null, this.onThemeChanged); - this.checkQrLoginSupport(); } public componentWillUnmount(): void { @@ -138,29 +131,6 @@ export default class UserMenu extends React.Component { ); } - private checkQrLoginSupport = async (): Promise => { - if (!this.context.client || !SettingsStore.getValue(Features.OidcNativeFlow)) return; - - const { issuer } = await this.context.client.getAuthIssuer().catch(() => ({ issuer: undefined })); - if (issuer) { - const [oidcClientConfig, versions, wellKnown, isCrossSigningReady] = await Promise.all([ - discoverAndValidateOIDCIssuerWellKnown(issuer), - this.context.client.getVersions(), - this.context.client.waitForClientWellKnown(), - this.context.client.getCrypto()?.isCrossSigningReady(), - ]); - - const supportsQrLogin = shouldShowQr( - this.context.client, - !!isCrossSigningReady, - oidcClientConfig, - versions, - wellKnown, - ); - this.setState({ supportsQrLogin, showQrLogin: true }); - } - }; - private isUserOnDarkTheme(): boolean { if (SettingsStore.getValue("use_system_theme")) { return window.matchMedia("(prefers-color-scheme: dark)").matches; @@ -363,28 +333,13 @@ export default class UserMenu extends React.Component { ); } - let linkNewDeviceButton: JSX.Element | undefined; - if (this.state.showQrLogin) { - const extraProps: Omit< - React.ComponentProps, - "iconClassname" | "label" | "onClick" - > = {}; - if (!this.state.supportsQrLogin) { - extraProps.disabled = true; - extraProps.title = _t("user_menu|link_new_device_not_supported"); - extraProps.caption = _t("user_menu|link_new_device_not_supported_caption"); - extraProps.placement = "right"; - } - - linkNewDeviceButton = ( - this.onSettingsOpen(e, UserTab.SessionManager, { showMsc4108QrCode: true })} - /> - ); - } + const linkNewDeviceButton = ( + this.onSettingsOpen(e, UserTab.SessionManager, { showMsc4108QrCode: true })} + /> + ); let primaryOptionList = ( diff --git a/src/components/views/auth/LoginWithQRFlow.tsx b/src/components/views/auth/LoginWithQRFlow.tsx index 72511f2ccb..645613dafe 100644 --- a/src/components/views/auth/LoginWithQRFlow.tsx +++ b/src/components/views/auth/LoginWithQRFlow.tsx @@ -17,6 +17,7 @@ import CheckCircleSolidIcon from "@vector-im/compound-design-tokens/assets/web/i import ErrorIcon from "@vector-im/compound-design-tokens/assets/web/icons/error"; import { Heading, MFAInput, Text } from "@vector-im/compound-web"; import classNames from "classnames"; +import { QrCodeIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; import { _t } from "../../../languageHandler"; import AccessibleButton from "../elements/AccessibleButton"; @@ -94,7 +95,10 @@ export default class LoginWithQRFlow extends React.Component
- {success ? : } +
{title} diff --git a/src/components/views/settings/devices/LoginWithQRSection.tsx b/src/components/views/settings/devices/LoginWithQRSection.tsx index f776d69765..c5efb35efc 100644 --- a/src/components/views/settings/devices/LoginWithQRSection.tsx +++ b/src/components/views/settings/devices/LoginWithQRSection.tsx @@ -18,12 +18,11 @@ import { DEVICE_CODE_SCOPE, } from "matrix-js-sdk/src/matrix"; import QrCodeIcon from "@vector-im/compound-design-tokens/assets/web/icons/qr-code"; +import { Text } from "@vector-im/compound-web"; import { _t } from "../../../../languageHandler"; import AccessibleButton from "../../elements/AccessibleButton"; import SettingsSubsection from "../shared/SettingsSubsection"; -import SettingsStore from "../../../../settings/SettingsStore"; -import { Features } from "../../../../settings/Settings"; import { useMatrixClientContext } from "../../../../contexts/MatrixClientContext"; interface IProps { @@ -64,9 +63,8 @@ export function shouldShowQr( oidcClientConfig?.metadata?.grant_types_supported.includes(DEVICE_CODE_SCOPE); return ( - deviceAuthorizationGrantSupported && + !!deviceAuthorizationGrantSupported && msc4108Supported && - SettingsStore.getValue(Features.OidcNativeFlow) && !!cli.getCrypto()?.exportSecretsBundle && isCrossSigningReady ); @@ -85,19 +83,15 @@ const LoginWithQRSection: React.FC = ({ ? shouldShowQr(cli, !!isCrossSigningReady, oidcClientConfig, versions, wellKnown) : shouldShowQrLegacy(versions, wellKnown, capabilities); - // don't show anything if no method is available - if (!offerShowQr) { - return null; - } - return (

{_t("settings|sessions|sign_in_with_qr_description")}

- + {_t("settings|sessions|sign_in_with_qr_button")} + {!offerShowQr && {_t("settings|sessions|sign_in_with_qr_unsupported")}}
); diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 77fecde80e..c86520236f 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -283,6 +283,8 @@ "security_code_prompt": "If asked, enter the code below on your other device.", "select_qr_code": "Select \"%(scanQRCode)s\"", "sign_in_new_device": "Sign in new device", + "unsupported_explainer": "Your account provider doesn't support signing into a new device with a QR code.", + "unsupported_heading": "QR code not supported", "waiting_for_device": "Waiting for device to sign in" }, "register_action": "Create Account", @@ -2855,6 +2857,7 @@ "sign_in_with_qr": "Link new device", "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_confirm_description": { @@ -3829,8 +3832,6 @@ }, "user_menu": { "link_new_device": "Link new device", - "link_new_device_not_supported": "Not supported", - "link_new_device_not_supported_caption": "You need to sign in manually", "settings": "All settings", "switch_theme_dark": "Switch to dark mode", "switch_theme_light": "Switch to light mode" diff --git a/test/components/views/settings/devices/LoginWithQRSection-test.tsx b/test/components/views/settings/devices/LoginWithQRSection-test.tsx index 2a200ce3f8..6a5e043074 100644 --- a/test/components/views/settings/devices/LoginWithQRSection-test.tsx +++ b/test/components/views/settings/devices/LoginWithQRSection-test.tsx @@ -137,19 +137,19 @@ describe("", () => { test("no homeserver support", async () => { const { container } = render(getComponent({ versions: makeVersions({ "org.matrix.msc4108": false }) })); - expect(container.textContent).toBe(""); // show nothing + expect(container.textContent).toContain("Not supported by your account provider"); }); test("no support in crypto", async () => { client.getCrypto()!.exportSecretsBundle = undefined; const { container } = render(getComponent({ client })); - expect(container.textContent).toBe(""); // show nothing + expect(container.textContent).toContain("Not supported by your account provider"); }); test("failed to connect", async () => { fetchMock.catch(500); const { container } = render(getComponent({ client })); - expect(container.textContent).toBe(""); // show nothing + expect(container.textContent).toContain("Not supported by your account provider"); }); }); }); diff --git a/test/components/views/settings/devices/__snapshots__/LoginWithQRFlow-test.tsx.snap b/test/components/views/settings/devices/__snapshots__/LoginWithQRFlow-test.tsx.snap index ec3bb4a690..9b6d83f4b6 100644 --- a/test/components/views/settings/devices/__snapshots__/LoginWithQRFlow-test.tsx.snap +++ b/test/components/views/settings/devices/__snapshots__/LoginWithQRFlow-test.tsx.snap @@ -14,7 +14,7 @@ exports[` errors renders authorization_expired 1`] = ` > errors renders check_code_mismatch 1`] = ` > errors renders device_already_exists 1`] = ` > errors renders device_not_found 1`] = ` > errors renders etag_missing 1`] = ` > errors renders expired 1`] = ` > errors renders expired 2`] = ` > errors renders homeserver_lacks_support 1`] = ` data-testid="login-with-qr" >
+ + +
+
+ Sessions + / + Link new device +
+
+
+
+ + +

- Something went wrong! + QR code not supported

- An unexpected error occurred. The request to connect your other device has been cancelled. + Your account provider doesn't support signing into a new device with a QR code.

errors renders homeserver_lacks_support 2`] = ` data-testid="login-with-qr" >
+ + +
+
+ Sessions + / + Link new device +
+
+
+
+ + +

- Something went wrong! + QR code not supported

- An unexpected error occurred. The request to connect your other device has been cancelled. + Your account provider doesn't support signing into a new device with a QR code.

errors renders insecure_channel_detected 1`] = ` > errors renders invalid_code 1`] = ` > errors renders other_device_already_signed_in 1`] = class="mx_LoginWithQR_main" >
errors renders other_device_not_signed_in 1`] = ` > errors renders rate_limited 1`] = ` > errors renders unexpected_message_received 1`] = ` > errors renders unknown 1`] = ` > errors renders unknown 2`] = ` > errors renders unsupported_algorithm 1`] = ` > errors renders unsupported_protocol 1`] = ` > errors renders unsupported_protocol 2`] = ` > errors renders user_cancelled 1`] = ` > errors renders user_cancelled 2`] = ` > errors renders user_declined 1`] = ` > errors renders user_declined 2`] = ` > MSC3906 should not render MSC3886 + get_login_token disabled 1`] = `
`; +exports[` MSC3906 should not render MSC3886 + get_login_token disabled 1`] = ` +
+
+
+

+ Link new device +

+
+
+
+

+ Use a QR code to sign in to another device and set up secure messaging. +

+
+ + + + + + Show QR code +
+

+ Not supported by your account provider +

+
+
+
+
+`; -exports[` MSC3906 should not render no support at all 1`] = `
`; +exports[` MSC3906 should not render no support at all 1`] = ` +
+
+
+

+ Link new device +

+
+
+
+

+ Use a QR code to sign in to another device and set up secure messaging. +

+
+ + + + + + Show QR code +
+

+ Not supported by your account provider +

+
+
+
+
+`; -exports[` MSC3906 should not render only get_login_token enabled 1`] = `
`; +exports[` MSC3906 should not render only get_login_token enabled 1`] = ` +
+
+
+

+ Link new device +

+
+
+
+

+ Use a QR code to sign in to another device and set up secure messaging. +

+
+ + + + + + Show QR code +
+

+ Not supported by your account provider +

+
+
+
+
+`; exports[` MSC3906 should render panel get_login_token + .well-known 1`] = `
From 0f670b8dc070325949073fab6cb4793b334a1915 Mon Sep 17 00:00:00 2001 From: Andrew Ferrazzutti Date: Tue, 15 Oct 2024 05:49:43 -0400 Subject: [PATCH 11/39] Remove redundant yarn.lock entry for widget-api (#35) Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- yarn.lock | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index 25a38b1cd0..3f90275b30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6993,15 +6993,7 @@ matrix-web-i18n@^3.2.1: minimist "^1.2.8" walk "^2.3.15" -matrix-widget-api@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/matrix-widget-api/-/matrix-widget-api-1.8.2.tgz#28d344502a85593740f560b0f8120e474a054505" - integrity sha512-kdmks3CvFNPIYN669Y4rO13KrazDvX8KHC7i6jOzJs8uZ8s54FNkuRVVyiQHeVCSZG5ixUqW9UuCj9lf03qxTQ== - dependencies: - "@types/events" "^3.0.0" - events "^3.2.0" - -matrix-widget-api@^1.9.0: +matrix-widget-api@^1.8.2, matrix-widget-api@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/matrix-widget-api/-/matrix-widget-api-1.9.0.tgz#884136b405bd3c56e4ea285095c9e01ec52b6b1f" integrity sha512-au8mqralNDqrEvaVAkU37bXOb8I9SCe+ACdPk11QWw58FKstVq31q2wRz+qWA6J+42KJ6s1DggWbG/S3fEs3jw== From b084ff2313aedd7d531331827cf8aad02cfc064b Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 15 Oct 2024 11:35:21 +0100 Subject: [PATCH 12/39] Prepare for repo merge Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- test/{ => unit-tests}/Avatar-test.ts | 0 test/{ => unit-tests}/ContentMessages-test.ts | 0 .../DecryptionFailureTracker-test.ts | 0 test/{ => unit-tests}/DeviceListener-test.ts | 0 test/{ => unit-tests}/HtmlUtils-test.tsx | 0 test/{ => unit-tests}/Image-test.ts | 0 test/{ => unit-tests}/KeyBindingsManager-test.ts | 0 test/{ => unit-tests}/LegacyCallHandler-test.ts | 0 test/{ => unit-tests}/Lifecycle-test.ts | 0 test/{ => unit-tests}/Markdown-test.ts | 0 test/{ => unit-tests}/MatrixClientPeg-test.ts | 0 test/{ => unit-tests}/MediaDeviceHandler-test.ts | 0 test/{ => unit-tests}/Modal-test.ts | 0 test/{ => unit-tests}/Notifier-test.ts | 0 test/{ => unit-tests}/PosthogAnalytics-test.ts | 0 test/{ => unit-tests}/PreferredRoomVersions-test.ts | 0 test/{ => unit-tests}/Reply-test.ts | 0 test/{ => unit-tests}/RoomNotifs-test.ts | 0 test/{ => unit-tests}/Rooms-test.ts | 0 test/{ => unit-tests}/ScalarAuthClient-test.ts | 0 test/{ => unit-tests}/SdkConfig-test.ts | 0 test/{ => unit-tests}/SecurityManager-test.ts | 0 test/{ => unit-tests}/SlashCommands-test.tsx | 0 test/{ => unit-tests}/SlidingSyncManager-test.ts | 0 test/{ => unit-tests}/SupportedBrowser-test.ts | 0 test/{ => unit-tests}/Terms-test.tsx | 0 test/{ => unit-tests}/TestSdkContext.ts | 0 test/{ => unit-tests}/TextForEvent-test.ts | 0 test/{ => unit-tests}/TimezoneHandler-test.ts | 0 test/{ => unit-tests}/Unread-test.ts | 0 test/{ => unit-tests}/UserActivity-test.ts | 0 test/{ => unit-tests}/WorkerManager-test.ts | 0 .../__snapshots__/HtmlUtils-test.tsx.snap | 0 .../__snapshots__/LegacyCallHandler-test.ts.snap | 0 .../__snapshots__/Reply-test.ts.snap | 0 .../__snapshots__/SlashCommands-test.tsx.snap | 0 .../__snapshots__/TextForEvent-test.ts.snap | 0 .../__snapshots__/theme-test.ts.snap | 0 .../accessibility/KeyboardShortcutUtils-test.ts | 0 .../accessibility/LandmarkNavigation-test.tsx | 0 .../accessibility/RovingTabIndex-test.tsx | 0 .../actions/handlers/viewUserDeviceSettings-test.ts | 0 test/{ => unit-tests}/audio/Playback-test.ts | 0 .../audio/VoiceMessageRecording-test.ts | 0 test/{ => unit-tests}/audio/VoiceRecording-test.ts | 0 .../autocomplete/EmojiProvider-test.ts | 0 .../autocomplete/QueryMatcher-test.ts | 0 .../autocomplete/RoomProvider-test.ts | 0 .../autocomplete/SpaceProvider-test.ts | 0 .../structures/AutocompleteInput-test.tsx | 0 .../components/structures/ContextMenu-test.ts | 0 .../components/structures/FilePanel-test.tsx | 0 .../components/structures/LargeLoader-test.tsx | 0 .../components/structures/LeftPanel-test.tsx | 0 .../structures/LegacyCallEventGrouper-test.ts | 0 .../components/structures/LoggedInView-test.tsx | 0 .../components/structures/MainSplit-test.tsx | 0 .../components/structures/MatrixChat-test.tsx | 0 .../structures/MatrixClientContextProvider-test.tsx | 0 .../components/structures/MessagePanel-test.tsx | 0 .../structures/PictureInPictureDragger-test.tsx | 0 .../components/structures/PipContainer-test.tsx | 0 .../structures/ReleaseAnnouncement-test.tsx | 0 .../components/structures/RightPanel-test.tsx | 0 .../components/structures/RoomSearchView-test.tsx | 0 .../components/structures/RoomStatusBar-test.tsx | 0 .../structures/RoomStatusBarUnsentMessages-test.tsx | 0 .../components/structures/RoomView-test.tsx | 0 .../components/structures/SpaceHierarchy-test.tsx | 0 .../components/structures/TabbedView-test.tsx | 0 .../components/structures/ThreadPanel-test.tsx | 0 .../components/structures/ThreadView-test.tsx | 0 .../components/structures/TimelinePanel-test.tsx | 0 .../components/structures/UploadBar-test.tsx | 0 .../components/structures/UserMenu-test.tsx | 0 .../components/structures/ViewSource-test.tsx | 0 .../__snapshots__/FilePanel-test.tsx.snap | 0 .../__snapshots__/MainSplit-test.tsx.snap | 0 .../__snapshots__/MatrixChat-test.tsx.snap | 0 .../__snapshots__/MessagePanel-test.tsx.snap | 0 .../PictureInPictureDragger-test.tsx.snap | 0 .../__snapshots__/RoomStatusBar-test.tsx.snap | 0 .../structures/__snapshots__/RoomView-test.tsx.snap | 0 .../__snapshots__/SpaceHierarchy-test.tsx.snap | 0 .../__snapshots__/TabbedView-test.tsx.snap | 0 .../__snapshots__/ThreadPanel-test.tsx.snap | 0 .../structures/__snapshots__/UserMenu-test.tsx.snap | 0 .../structures/auth/CompleteSecurity-test.tsx | 0 .../structures/auth/ForgotPassword-test.tsx | 0 .../components/structures/auth/Login-test.tsx | 0 .../structures/auth/LoginSplashView-test.tsx | 0 .../structures/auth/Registration-test.tsx | 0 .../__snapshots__/LoginSplashView-test.tsx.snap | 0 .../components/views/Validation-test.ts | 0 .../components/views/VerificationShowSas-test.tsx | 0 .../views/audio_messages/RecordingPlayback-test.tsx | 0 .../views/audio_messages/SeekBar-test.tsx | 0 .../__snapshots__/SeekBar-test.tsx.snap | 0 .../components/views/auth/CountryDropdown-test.tsx | 0 .../auth/InteractiveAuthEntryComponents-test.tsx | 0 .../views/auth/RegistrationToken-test.tsx | 0 .../InteractiveAuthEntryComponents-test.tsx.snap | 0 .../views/avatars/DecoratedRoomAvatar-test.tsx | 0 .../components/views/avatars/MemberAvatar-test.tsx | 0 .../components/views/avatars/RoomAvatar-test.tsx | 0 .../views/avatars/WithPresenceIndicator-test.tsx | 0 .../__snapshots__/DecoratedRoomAvatar-test.tsx.snap | 0 .../avatars/__snapshots__/RoomAvatar-test.tsx.snap | 0 .../WithPresenceIndicator-test.tsx.snap | 0 .../components/views/beacon/BeaconListItem-test.tsx | 0 .../components/views/beacon/BeaconMarker-test.tsx | 0 .../components/views/beacon/BeaconStatus-test.tsx | 0 .../views/beacon/BeaconViewDialog-test.tsx | 0 .../components/views/beacon/DialogSidebar-test.tsx | 0 .../views/beacon/LeftPanelLiveShareWarning-test.tsx | 0 .../views/beacon/OwnBeaconStatus-test.tsx | 0 .../components/views/beacon/RoomCallBanner-test.tsx | 0 .../views/beacon/ShareLatestLocation-test.tsx | 0 .../views/beacon/StyledLiveBeaconIcon-test.tsx | 0 .../__snapshots__/BeaconListItem-test.tsx.snap | 0 .../beacon/__snapshots__/BeaconMarker-test.tsx.snap | 0 .../beacon/__snapshots__/BeaconStatus-test.tsx.snap | 0 .../__snapshots__/BeaconViewDialog-test.tsx.snap | 0 .../__snapshots__/DialogSidebar-test.tsx.snap | 0 .../LeftPanelLiveShareWarning-test.tsx.snap | 0 .../__snapshots__/OwnBeaconStatus-test.tsx.snap | 0 .../__snapshots__/ShareLatestLocation-test.tsx.snap | 0 .../StyledLiveBeaconIcon-test.tsx.snap | 0 .../components/views/beta/BetaCard-test.tsx | 0 .../views/context_menus/ContextMenu-test.tsx | 0 .../views/context_menus/EmbeddedPage-test.tsx | 0 .../views/context_menus/MessageContextMenu-test.tsx | 0 .../context_menus/RoomGeneralContextMenu-test.tsx | 0 .../views/context_menus/SpaceContextMenu-test.tsx | 0 .../context_menus/ThreadListContextMenu-test.tsx | 0 .../views/context_menus/WidgetContextMenu-test.tsx | 0 .../__snapshots__/EmbeddedPage-test.tsx.snap | 0 .../RoomGeneralContextMenu-test.tsx.snap | 0 .../__snapshots__/SpaceContextMenu-test.tsx.snap | 0 .../dialogs/AccessSecretStorageDialog-test.tsx | 0 .../views/dialogs/AppDownloadDialog-test.tsx | 0 .../views/dialogs/AskInviteAnywayDialog-test.tsx | 0 .../views/dialogs/ChangelogDialog-test.tsx | 0 .../views/dialogs/ConfirmRedactDialog-test.tsx | 0 .../views/dialogs/ConfirmUserActionDialog-test.tsx | 0 .../views/dialogs/CreateRoomDialog-test.tsx | 0 .../views/dialogs/DevtoolsDialog-test.tsx | 0 .../components/views/dialogs/ExportDialog-test.tsx | 0 .../views/dialogs/FeedbackDialog-test.tsx | 0 .../components/views/dialogs/ForwardDialog-test.tsx | 0 .../views/dialogs/IncomingSasDialog-test.tsx | 0 .../views/dialogs/InteractiveAuthDialog-test.tsx | 0 .../components/views/dialogs/InviteDialog-test.tsx | 0 .../components/views/dialogs/LogoutDialog-test.tsx | 0 .../dialogs/ManageRestrictedJoinRuleDialog-test.tsx | 0 .../ManualDeviceKeyVerificationDialog-test.tsx | 0 .../views/dialogs/MessageEditHistoryDialog-test.tsx | 0 .../views/dialogs/RoomSettingsDialog-test.tsx | 0 .../views/dialogs/ServerPickerDialog-test.tsx | 0 .../components/views/dialogs/ShareDialog-test.tsx | 0 .../views/dialogs/SpotlightDialog-test.tsx | 0 .../views/dialogs/UnpinAllDialog-test.tsx | 0 .../views/dialogs/UserSettingsDialog-test.tsx | 0 .../__snapshots__/AppDownloadDialog-test.tsx.snap | 0 .../__snapshots__/ChangelogDialog-test.tsx.snap | 0 .../ConfirmUserActionDialog-test.tsx.snap | 0 .../__snapshots__/DevtoolsDialog-test.tsx.snap | 0 .../__snapshots__/ExportDialog-test.tsx.snap | 0 .../__snapshots__/FeedbackDialog-test.tsx.snap | 0 .../__snapshots__/LogoutDialog-test.tsx.snap | 0 .../ManageRestrictedJoinRuleDialog-test.tsx.snap | 0 .../ManualDeviceKeyVerificationDialog-test.tsx.snap | 0 .../MessageEditHistoryDialog-test.tsx.snap | 0 .../__snapshots__/RoomSettingsDialog-test.tsx.snap | 0 .../__snapshots__/ServerPickerDialog-test.tsx.snap | 0 .../__snapshots__/UnpinAllDialog-test.tsx.snap | 0 .../__snapshots__/UserSettingsDialog-test.tsx.snap | 0 .../views/dialogs/devtools/Event-test.tsx | 0 .../dialogs/devtools/RoomNotifications-test.tsx | 0 .../devtools/__snapshots__/Event-test.tsx.snap | 0 .../__snapshots__/RoomNotifications-test.tsx.snap | 0 .../dialogs/security/CreateKeyBackupDialog-test.tsx | 0 .../security/CreateSecretStorageDialog-test.tsx | 0 .../dialogs/security/ExportE2eKeysDialog-test.tsx | 0 .../dialogs/security/ImportE2eKeysDialog-test.tsx | 0 .../security/RestoreKeyBackupDialog-test.tsx | 0 .../CreateKeyBackupDialog-test.tsx.snap | 0 .../CreateSecretStorageDialog-test.tsx.snap | 0 .../__snapshots__/ExportE2eKeysDialog-test.tsx.snap | 0 .../__snapshots__/ImportE2eKeysDialog-test.tsx.snap | 0 .../RestoreKeyBackupDialog-test.tsx.snap | 0 .../spotlight/PublicRoomResultDetails-test.tsx | 0 .../spotlight/RoomResultContextMenus-test.tsx | 0 .../PublicRoomResultDetails-test.tsx.snap | 0 .../views/elements/AccessibleButton-test.tsx | 0 .../components/views/elements/AppTile-test.tsx | 0 .../elements/DesktopCapturerSourcePicker-test.tsx | 0 .../views/elements/EffectsOverlay-test.tsx | 0 .../views/elements/EventListSummary-test.tsx | 0 .../components/views/elements/ExternalLink-test.tsx | 0 .../components/views/elements/FacePile-test.tsx | 0 .../components/views/elements/Field-test.tsx | 0 .../views/elements/FilterDropdown-test.tsx | 0 .../views/elements/FilterTabGroup-test.tsx | 0 .../components/views/elements/ImageView-test.tsx | 0 .../components/views/elements/InfoTooltip-test.tsx | 0 .../views/elements/InteractiveTooltip-test.ts | 0 .../views/elements/LabelledCheckbox-test.tsx | 0 .../components/views/elements/LearnMore-test.tsx | 0 .../components/views/elements/Pill-test.tsx | 0 .../views/elements/PollCreateDialog-test.tsx | 0 .../views/elements/PowerSelector-test.tsx | 0 .../components/views/elements/ProgressBar-test.tsx | 0 .../components/views/elements/QRCode-test.tsx | 0 .../components/views/elements/ReplyChain-test.tsx | 0 .../components/views/elements/RoomFacePile-test.tsx | 0 .../components/views/elements/RoomTopic-test.tsx | 0 .../views/elements/SearchWarning-test.tsx | 0 .../elements/SpellCheckLanguagesDropdown-test.tsx | 0 .../views/elements/StyledRadioGroup-test.tsx | 0 .../views/elements/SyntaxHighlight-test.tsx | 0 .../__snapshots__/AccessibleButton-test.tsx.snap | 0 .../elements/__snapshots__/AppTile-test.tsx.snap | 0 .../__snapshots__/EffectsOverlay-test.tsx.snap | 0 .../__snapshots__/ExternalLink-test.tsx.snap | 0 .../elements/__snapshots__/FacePile-test.tsx.snap | 0 .../__snapshots__/FilterDropdown-test.tsx.snap | 0 .../__snapshots__/FilterTabGroup-test.tsx.snap | 0 .../elements/__snapshots__/ImageView-test.tsx.snap | 0 .../__snapshots__/InfoTooltip-test.tsx.snap | 0 .../__snapshots__/LabelledCheckbox-test.tsx.snap | 0 .../elements/__snapshots__/LearnMore-test.tsx.snap | 0 .../views/elements/__snapshots__/Pill-test.tsx.snap | 0 .../__snapshots__/PollCreateDialog-test.tsx.snap | 0 .../elements/__snapshots__/QRCode-test.tsx.snap | 0 .../__snapshots__/RoomFacePile-test.tsx.snap | 0 .../__snapshots__/SearchWarning-test.tsx.snap | 0 .../SpellCheckLanguagesDropdown-test.tsx.snap | 0 .../__snapshots__/StyledRadioGroup-test.tsx.snap | 0 .../__snapshots__/SyntaxHighlight-test.tsx.snap | 0 .../elements/crypto/VerificationQRCode-test.tsx | 0 .../__snapshots__/VerificationQRCode-test.tsx.snap | 0 .../views/emojipicker/EmojiPicker-test.tsx | 0 .../views/location/LiveDurationDropdown-test.tsx | 0 .../views/location/LocationPicker-test.tsx | 0 .../views/location/LocationShareMenu-test.tsx | 0 .../views/location/LocationViewDialog-test.tsx | 0 .../components/views/location/Map-test.tsx | 0 .../components/views/location/MapError-test.tsx | 0 .../components/views/location/Marker-test.tsx | 0 .../components/views/location/SmartMarker-test.tsx | 0 .../components/views/location/ZoomButtons-test.tsx | 0 .../__snapshots__/LocationPicker-test.tsx.snap | 0 .../__snapshots__/LocationShareMenu-test.tsx.snap | 0 .../__snapshots__/LocationViewDialog-test.tsx.snap | 0 .../location/__snapshots__/MapError-test.tsx.snap | 0 .../location/__snapshots__/Marker-test.tsx.snap | 0 .../__snapshots__/SmartMarker-test.tsx.snap | 0 .../__snapshots__/ZoomButtons-test.tsx.snap | 0 .../components/views/location/shareLocation-test.ts | 0 .../components/views/messages/CallEvent-test.tsx | 0 .../views/messages/DateSeparator-test.tsx | 0 .../views/messages/DecryptionFailureBody-test.tsx | 0 .../views/messages/DownloadActionButton-test.tsx | 0 .../views/messages/EncryptionEvent-test.tsx | 0 .../views/messages/JumpToDatePicker-test.tsx | 0 .../views/messages/LegacyCallEvent-test.tsx | 0 .../components/views/messages/MBeaconBody-test.tsx | 0 .../components/views/messages/MFileBody-test.tsx | 0 .../components/views/messages/MImageBody-test.tsx | 0 .../views/messages/MKeyVerificationRequest-test.tsx | 0 .../views/messages/MLocationBody-test.tsx | 0 .../components/views/messages/MPollBody-test.tsx | 0 .../components/views/messages/MPollEndBody-test.tsx | 0 .../components/views/messages/MStickerBody-test.tsx | 0 .../components/views/messages/MVideoBody-test.tsx | 0 .../views/messages/MessageActionBar-test.tsx | 0 .../components/views/messages/MessageEvent-test.tsx | 0 .../views/messages/MessageTimestamp-test.tsx | 0 .../views/messages/PinnedMessageBadge-test.tsx | 0 .../views/messages/ReactionsRowButton-test.tsx | 0 .../views/messages/RoomPredecessorTile-test.tsx | 0 .../components/views/messages/TextualBody-test.tsx | 0 .../__snapshots__/DateSeparator-test.tsx.snap | 0 .../DecryptionFailureBody-test.tsx.snap | 0 .../__snapshots__/JumpToDatePicker-test.tsx.snap | 0 .../__snapshots__/MBeaconBody-test.tsx.snap | 0 .../messages/__snapshots__/MFileBody-test.tsx.snap | 0 .../messages/__snapshots__/MImageBody-test.tsx.snap | 0 .../__snapshots__/MLocationBody-test.tsx.snap | 0 .../messages/__snapshots__/MPollBody-test.tsx.snap | 0 .../__snapshots__/MPollEndBody-test.tsx.snap | 0 .../messages/__snapshots__/MVideoBody-test.tsx.snap | 0 .../__snapshots__/PinnedMessageBadge-test.tsx.snap | 0 .../__snapshots__/ReactionsRowButton-test.tsx.snap | 0 .../__snapshots__/RoomPredecessorTile-test.tsx.snap | 0 .../__snapshots__/TextualBody-test.tsx.snap | 0 .../messages/shared/MediaProcessingError-test.tsx | 0 .../MediaProcessingError-test.tsx.snap | 0 .../views/polls/pollHistory/PollHistory-test.tsx | 0 .../views/polls/pollHistory/PollListItem-test.tsx | 0 .../polls/pollHistory/PollListItemEnded-test.tsx | 0 .../__snapshots__/PollHistory-test.tsx.snap | 0 .../__snapshots__/PollListItem-test.tsx.snap | 0 .../__snapshots__/PollListItemEnded-test.tsx.snap | 0 .../components/views/right_panel/BaseCard-test.tsx | 0 .../views/right_panel/ExtensionsCard-test.tsx | 0 .../views/right_panel/PinnedMessagesCard-test.tsx | 0 .../views/right_panel/RoomSummaryCard-test.tsx | 0 .../components/views/right_panel/UserInfo-test.tsx | 0 .../views/right_panel/VerificationPanel-test.tsx | 0 .../__snapshots__/BaseCard-test.tsx.snap | 0 .../__snapshots__/ExtensionsCard-test.tsx.snap | 0 .../__snapshots__/PinnedMessagesCard-test.tsx.snap | 0 .../__snapshots__/RoomSummaryCard-test.tsx.snap | 0 .../__snapshots__/UserInfo-test.tsx.snap | 0 .../room_settings/RoomProfileSettings-test.tsx | 0 .../components/views/rooms/AppsDrawer-test.tsx | 0 .../views/rooms/BasicMessageComposer-test.tsx | 0 .../views/rooms/EditMessageComposer-test.tsx | 0 .../components/views/rooms/EventTile-test.tsx | 0 .../rooms/EventTile/EventTileThreadToolbar-test.tsx | 0 .../EventTileThreadToolbar-test.tsx.snap | 0 .../components/views/rooms/ExtraTile-test.tsx | 0 .../components/views/rooms/MemberList-test.tsx | 0 .../components/views/rooms/MemberTile-test.tsx | 0 .../components/views/rooms/MessageComposer-test.tsx | 0 .../views/rooms/MessageComposerButtons-test.tsx | 0 .../components/views/rooms/NewRoomIntro-test.tsx | 0 .../NotificationBadge/NotificationBadge-test.tsx | 0 .../StatelessNotificationBadge-test.tsx | 0 .../UnreadNotificationBadge-test.tsx | 0 .../components/views/rooms/PinnedEventTile-test.tsx | 0 .../views/rooms/PinnedMessageBanner-test.tsx | 0 .../components/views/rooms/PresenceLabel-test.tsx | 0 .../views/rooms/ReadReceiptGroup-test.tsx | 0 .../views/rooms/ReadReceiptMarker-test.tsx | 0 .../components/views/rooms/RoomHeader-test.tsx | 0 .../rooms/RoomHeader/CallGuestLinkButton-test.tsx | 0 .../rooms/RoomHeader/VideoRoomChatButton-test.tsx | 0 .../__snapshots__/VideoRoomChatButton-test.tsx.snap | 0 .../components/views/rooms/RoomKnocksBar-test.tsx | 0 .../components/views/rooms/RoomList-test.tsx | 0 .../components/views/rooms/RoomListHeader-test.tsx | 0 .../components/views/rooms/RoomPreviewBar-test.tsx | 0 .../components/views/rooms/RoomPreviewCard-test.tsx | 0 .../views/rooms/RoomSearchAuxPanel-test.tsx | 0 .../components/views/rooms/RoomTile-test.tsx | 0 .../views/rooms/SearchResultTile-test.tsx | 0 .../views/rooms/SendMessageComposer-test.tsx | 0 .../views/rooms/ThirdPartyMemberInfo-test.tsx | 0 .../views/rooms/VoiceRecordComposerTile-test.tsx | 0 .../rooms/__snapshots__/ExtraTile-test.tsx.snap | 0 .../rooms/__snapshots__/MemberTile-test.tsx.snap | 0 .../__snapshots__/PinnedEventTile-test.tsx.snap | 0 .../__snapshots__/PinnedMessageBanner-test.tsx.snap | 0 .../__snapshots__/ReadReceiptGroup-test.tsx.snap | 0 .../rooms/__snapshots__/RoomHeader-test.tsx.snap | 0 .../__snapshots__/RoomPreviewBar-test.tsx.snap | 0 .../rooms/__snapshots__/RoomTile-test.tsx.snap | 0 .../ThirdPartyMemberInfo-test.tsx.snap | 0 .../wysiwyg_composer/EditWysiwygComposer-test.tsx | 0 .../wysiwyg_composer/SendWysiwygComposer-test.tsx | 0 .../components/FormattingButtons-test.tsx | 0 .../wysiwyg_composer/components/LinkModal-test.tsx | 0 .../components/PlainTextComposer-test.tsx | 0 .../components/WysiwygAutocomplete-test.tsx | 0 .../components/WysiwygComposer-test.tsx | 0 .../__snapshots__/FormattingButtons-test.tsx.snap | 0 .../hooks/usePlainTextListeners-test.tsx | 0 .../wysiwyg_composer/hooks/useSuggestion-test.tsx | 0 .../rooms/wysiwyg_composer/hooks/utils-test.tsx | 0 .../views/rooms/wysiwyg_composer/utils.ts | 0 .../wysiwyg_composer/utils/autocomplete-test.ts | 0 .../utils/createMessageContent-test.ts | 0 .../rooms/wysiwyg_composer/utils/message-test.ts | 0 .../views/settings/AddPrivilegedUsers-test.tsx | 0 .../views/settings/AddRemoveThreepids-test.tsx | 0 .../views/settings/AvatarSetting-test.tsx | 0 .../views/settings/ChangePassword-test.tsx | 0 .../views/settings/CrossSigningPanel-test.tsx | 0 .../views/settings/CryptographyPanel-test.tsx | 0 .../views/settings/EventIndexPanel-test.tsx | 0 .../views/settings/FontScalingPanel-test.tsx | 0 .../views/settings/JoinRuleSettings-test.tsx | 0 .../views/settings/KeyboardShortcut-test.tsx | 0 .../views/settings/LayoutSwitcher-test.tsx | 0 .../views/settings/Notifications-test.tsx | 0 .../views/settings/PowerLevelSelector-test.tsx | 0 .../views/settings/SecureBackupPanel-test.tsx | 0 .../views/settings/SetIntegrationManager-test.tsx | 0 .../views/settings/SettingsFieldset-test.tsx | 0 .../views/settings/ThemeChoicePanel-test.tsx | 0 .../views/settings/UserProfileSettings-test.tsx | 0 .../__snapshots__/AddRemoveThreepids-test.tsx.snap | 0 .../__snapshots__/ChangePassword-test.tsx.snap | 0 .../__snapshots__/CrossSigningPanel-test.tsx.snap | 0 .../__snapshots__/EventIndexPanel-test.tsx.snap | 0 .../__snapshots__/FontScalingPanel-test.tsx.snap | 0 .../__snapshots__/KeyboardShortcut-test.tsx.snap | 0 .../__snapshots__/LayoutSwitcher-test.tsx.snap | 0 .../__snapshots__/Notifications-test.tsx.snap | 0 .../__snapshots__/PowerLevelSelector-test.tsx.snap | 0 .../__snapshots__/SecureBackupPanel-test.tsx.snap | 0 .../SetIntegrationManager-test.tsx.snap | 0 .../__snapshots__/SettingsFieldset-test.tsx.snap | 0 .../__snapshots__/ThemeChoicePanel-test.tsx.snap | 0 .../settings/devices/CurrentDeviceSection-test.tsx | 0 .../settings/devices/DeviceDetailHeading-test.tsx | 0 .../views/settings/devices/DeviceDetails-test.tsx | 0 .../devices/DeviceExpandDetailsButton-test.tsx | 0 .../settings/devices/DeviceSecurityCard-test.tsx | 0 .../views/settings/devices/DeviceTile-test.tsx | 0 .../views/settings/devices/DeviceTypeIcon-test.tsx | 0 .../devices/DeviceVerificationStatusCard-test.tsx | 0 .../settings/devices/FilteredDeviceList-test.tsx | 0 .../devices/FilteredDeviceListHeader-test.tsx | 0 .../views/settings/devices/LoginWithQR-test.tsx | 0 .../views/settings/devices/LoginWithQRFlow-test.tsx | 0 .../settings/devices/LoginWithQRSection-test.tsx | 0 .../devices/SecurityRecommendations-test.tsx | 0 .../settings/devices/SelectableDeviceTile-test.tsx | 0 .../CurrentDeviceSection-test.tsx.snap | 0 .../__snapshots__/DeviceDetailHeading-test.tsx.snap | 0 .../__snapshots__/DeviceDetails-test.tsx.snap | 0 .../DeviceExpandDetailsButton-test.tsx.snap | 0 .../__snapshots__/DeviceSecurityCard-test.tsx.snap | 0 .../devices/__snapshots__/DeviceTile-test.tsx.snap | 0 .../__snapshots__/DeviceTypeIcon-test.tsx.snap | 0 .../DeviceVerificationStatusCard-test.tsx.snap | 0 .../__snapshots__/FilteredDeviceList-test.tsx.snap | 0 .../FilteredDeviceListHeader-test.tsx.snap | 0 .../__snapshots__/LoginWithQRFlow-test.tsx.snap | 0 .../__snapshots__/LoginWithQRSection-test.tsx.snap | 0 .../SecurityRecommendations-test.tsx.snap | 0 .../SelectableDeviceTile-test.tsx.snap | 0 .../__snapshots__/deleteDevices-test.tsx.snap | 0 .../views/settings/devices/deleteDevices-test.tsx | 0 .../views/settings/devices/filter-test.ts | 0 .../settings/discovery/DiscoverySettings-test.tsx | 0 .../settings/notifications/Notifications2-test.tsx | 0 .../__snapshots__/Notifications2-test.tsx.snap | 0 .../settings/shared/SettingsSubsection-test.tsx | 0 .../shared/SettingsSubsectionHeading-test.tsx | 0 .../__snapshots__/SettingsSubsection-test.tsx.snap | 0 .../SettingsSubsectionHeading-test.tsx.snap | 0 .../views/settings/tabs/SettingsTab-test.tsx | 0 .../tabs/__snapshots__/SettingsTab-test.tsx.snap | 0 .../tabs/room/AdvancedRoomSettingsTab-test.tsx | 0 .../settings/tabs/room/BridgeSettingsTab-test.tsx | 0 .../tabs/room/NotificationSettingsTab-test.tsx | 0 .../tabs/room/PeopleRoomSettingsTab-test.tsx | 0 .../tabs/room/RolesRoomSettingsTab-test.tsx | 0 .../tabs/room/SecurityRoomSettingsTab-test.tsx | 0 .../settings/tabs/room/VoipRoomSettingsTab-test.tsx | 0 .../AdvancedRoomSettingsTab-test.tsx.snap | 0 .../__snapshots__/BridgeSettingsTab-test.tsx.snap | 0 .../PeopleRoomSettingsTab-test.tsx.snap | 0 .../RolesRoomSettingsTab-test.tsx.snap | 0 .../SecurityRoomSettingsTab-test.tsx.snap | 0 .../tabs/user/AccountUserSettingsTab-test.tsx | 0 .../tabs/user/AppearanceUserSettingsTab-test.tsx | 0 .../tabs/user/KeyboardUserSettingsTab-test.tsx | 0 .../settings/tabs/user/LabsUserSettingsTab-test.tsx | 0 .../tabs/user/MjolnirUserSettingsTab-test.tsx | 0 .../tabs/user/PreferencesUserSettingsTab-test.tsx | 0 .../tabs/user/SecurityUserSettingsTab-test.tsx | 0 .../settings/tabs/user/SessionManagerTab-test.tsx | 0 .../tabs/user/SidebarUserSettingsTab-test.tsx | 0 .../tabs/user/VoiceUserSettingsTab-test.tsx | 0 .../AccountUserSettingsTab-test.tsx.snap | 0 .../AppearanceUserSettingsTab-test.tsx.snap | 0 .../KeyboardUserSettingsTab-test.tsx.snap | 0 .../__snapshots__/LabsUserSettingsTab-test.tsx.snap | 0 .../MjolnirUserSettingsTab-test.tsx.snap | 0 .../PreferencesUserSettingsTab-test.tsx.snap | 0 .../SecurityUserSettingsTab-test.tsx.snap | 0 .../__snapshots__/SessionManagerTab-test.tsx.snap | 0 .../SidebarUserSettingsTab-test.tsx.snap | 0 .../views/spaces/AddExistingToSpaceDialog-test.tsx | 0 .../views/spaces/QuickSettingsButton-test.tsx | 0 .../views/spaces/QuickThemeSwitcher-test.tsx | 0 .../components/views/spaces/SpacePanel-test.tsx | 0 .../spaces/SpaceSettingsVisibilityTab-test.tsx | 0 .../components/views/spaces/SpaceTreeLevel-test.tsx | 0 .../views/spaces/ThreadsActivityCentre-test.tsx | 0 .../AddExistingToSpaceDialog-test.tsx.snap | 0 .../__snapshots__/QuickSettingsButton-test.tsx.snap | 0 .../spaces/__snapshots__/SpacePanel-test.tsx.snap | 0 .../SpaceSettingsVisibilityTab-test.tsx.snap | 0 .../__snapshots__/SpaceTreeLevel-test.tsx.snap | 0 .../ThreadsActivityCentre-test.tsx.snap | 0 .../views/spaces/useUnreadThreadRooms-test.tsx | 0 .../components/views/toasts/GenericToast-test.tsx | 0 .../views/toasts/VerificationRequestToast-test.tsx | 0 .../toasts/__snapshots__/GenericToast-test.tsx.snap | 0 .../VerificationRequestToast-test.tsx.snap | 0 .../components/views/typography/Caption-test.tsx | 0 .../components/views/typography/Heading-test.tsx | 0 .../typography/__snapshots__/Caption-test.tsx.snap | 0 .../typography/__snapshots__/Heading-test.tsx.snap | 0 .../user-onboarding/UserOnboardingList-test.tsx | 0 .../user-onboarding/UserOnboardingPage-test.tsx | 0 .../components/views/voip/CallView-test.tsx | 0 .../components/views/voip/DialPad-test.tsx | 0 .../LegacyCallView/LegacyCallViewButtons-test.tsx | 0 .../LegacyCallViewButtons-test.tsx.snap | 0 .../components/views/voip/VideoFeed-test.tsx | 0 test/{ => unit-tests}/contexts/SdkContext-test.ts | 0 test/{ => unit-tests}/contexts/ToastContext-test.ts | 0 test/{ => unit-tests}/createRoom-test.ts | 0 test/{ => unit-tests}/customisations/Media-test.ts | 0 test/{ => unit-tests}/dispatcher/dispatcher-test.ts | 0 .../editor/__snapshots__/deserialize-test.ts.snap | 0 test/{ => unit-tests}/editor/caret-test.ts | 0 test/{ => unit-tests}/editor/deserialize-test.ts | 0 test/{ => unit-tests}/editor/diff-test.ts | 0 test/{ => unit-tests}/editor/history-test.ts | 0 test/{ => unit-tests}/editor/mock.ts | 0 test/{ => unit-tests}/editor/model-test.ts | 0 test/{ => unit-tests}/editor/operations-test.ts | 0 test/{ => unit-tests}/editor/parts-test.ts | 0 test/{ => unit-tests}/editor/position-test.ts | 0 test/{ => unit-tests}/editor/range-test.ts | 0 test/{ => unit-tests}/editor/roundtrip-test.ts | 0 test/{ => unit-tests}/editor/serialize-test.ts | 0 test/{ => unit-tests}/email-test.ts | 0 .../events/EventTileFactory-test.ts | 0 .../{ => unit-tests}/events/RelationsHelper-test.ts | 0 .../events/forward/getForwardableEvent-test.ts | 0 .../location/getShareableLocationEvent-test.ts | 0 .../hooks/room/useRoomThreadNotifications-test.tsx | 0 .../hooks/useDebouncedCallback-test.tsx | 0 .../{ => unit-tests}/hooks/useLatestResult-test.tsx | 0 .../hooks/useNotificationSettings-test.tsx | 0 test/{ => unit-tests}/hooks/useProfileInfo-test.tsx | 0 .../hooks/usePublicRoomDirectory-test.tsx | 0 test/{ => unit-tests}/hooks/useRoomMembers-test.tsx | 0 .../hooks/useSlidingSyncRoomSearch-test.tsx | 0 .../hooks/useUnreadNotifications-test.ts | 0 .../hooks/useUserDirectory-test.tsx | 0 .../hooks/useUserOnboardingTasks-test.tsx | 0 test/{ => unit-tests}/hooks/useWindowWidth-test.ts | 0 test/{ => unit-tests}/i18n/languages.json | 0 test/{ => unit-tests}/images/animated-logo.apng | Bin test/{ => unit-tests}/images/animated-logo.gif | Bin test/{ => unit-tests}/images/animated-logo.webp | Bin test/{ => unit-tests}/images/static-logo.gif | Bin test/{ => unit-tests}/images/static-logo.png | Bin test/{ => unit-tests}/images/static-logo.webp | Bin test/{ => unit-tests}/img/edit.png | Bin test/{ => unit-tests}/img/icon_context_message.svg | 0 .../integrations/IntegrationManagers-test.ts | 0 test/{ => unit-tests}/languageHandler-test.tsx | 0 test/{ => unit-tests}/linkify-matrix-test.ts | 0 test/{ => unit-tests}/models/Call-test.ts | 0 test/{ => unit-tests}/models/LocalRoom-test.ts | 0 .../NotificationSettings-test.ts | 0 .../pushrules_bug_botnotices.json | 0 .../pushrules_bug_keyword_only.json | 0 .../notificationsettings/pushrules_default.json | 0 .../notificationsettings/pushrules_default_new.json | 0 .../notificationsettings/pushrules_sample.json | 0 test/{ => unit-tests}/modules/AppModule-test.ts | 0 test/{ => unit-tests}/modules/MockModule.ts | 0 .../modules/ModuleComponents-test.tsx | 0 test/{ => unit-tests}/modules/ModuleRunner-test.ts | 0 .../modules/ProxiedModuleApi-test.tsx | 0 .../__snapshots__/ModuleComponents-test.tsx.snap | 0 .../notifications/ContentRules-test.ts | 0 .../notifications/PushRuleVectorState-test.ts | 0 test/{ => unit-tests}/predictableRandom.ts | 0 .../{ => unit-tests}/settings/SettingsStore-test.ts | 0 .../controllers/AnalyticsController-test.ts | 0 .../DeviceIsolationModeController-test.ts | 0 .../controllers/FallbackIceServerController-test.ts | 0 .../settings/controllers/FontSizeController-test.ts | 0 .../controllers/IncompatibleController-test.ts | 0 .../ServerSupportUnstableFeatureController-test.ts | 0 .../controllers/SystemFontController-test.ts | 0 .../settings/controllers/ThemeController-test.ts | 0 .../settings/enums/ImageSize-test.ts | 0 .../settings/handlers/DeviceSettingsHandler-test.ts | 0 .../handlers/RoomDeviceSettingsHandler-test.ts | 0 .../settings/watchers/FontWatcher-test.tsx | 0 .../settings/watchers/ThemeWatcher-test.tsx | 0 test/{ => unit-tests}/setup/mocks.ts | 0 test/{ => unit-tests}/setup/setupConfig.ts | 0 test/{ => unit-tests}/setup/setupLanguage.ts | 0 test/{ => unit-tests}/setup/setupManualMocks.ts | 0 .../stores/AccountPasswordStore-test.ts | 0 .../stores/ActiveWidgetStore-test.ts | 0 .../stores/AutoRageshakeStore-test.ts | 0 .../stores/BreadcrumbsStore-test.ts | 0 test/{ => unit-tests}/stores/LifecycleStore-test.ts | 0 .../{ => unit-tests}/stores/MemberListStore-test.ts | 0 test/{ => unit-tests}/stores/OwnBeaconStore-test.ts | 0 .../{ => unit-tests}/stores/OwnProfileStore-test.ts | 0 .../stores/ReleaseAnnouncementStore-test.tsx | 0 .../stores/RoomNotificationStateStore-test.ts | 0 test/{ => unit-tests}/stores/RoomViewStore-test.ts | 0 .../stores/SetupEncryptionStore-test.ts | 0 test/{ => unit-tests}/stores/SpaceStore-test.ts | 0 test/{ => unit-tests}/stores/ToastStore-test.ts | 0 test/{ => unit-tests}/stores/TypingStore-test.ts | 0 .../stores/UserProfilesStore-test.ts | 0 .../stores/VoiceRecordingStore-test.ts | 0 .../stores/WidgetLayoutStore-test.ts | 0 .../stores/__snapshots__/RoomViewStore-test.ts.snap | 0 .../stores/notifications/NotificationColor-test.ts | 0 .../notifications/RoomNotificationState-test.ts | 0 .../stores/oidc/OidcClientStore-test.ts | 0 .../stores/right-panel/RightPanelStore-test.ts | 0 .../action-handlers/View3pidInvite-test.ts | 0 .../stores/room-list/MessagePreviewStore-test.ts | 0 .../stores/room-list/RoomListStore-test.ts | 0 .../stores/room-list/SlidingRoomListStore-test.ts | 0 .../stores/room-list/SpaceWatcher-test.ts | 0 .../stores/room-list/algorithms/Algorithm-test.ts | 0 .../room-list/algorithms/RecentAlgorithm-test.ts | 0 .../list-ordering/ImportanceAlgorithm-test.ts | 0 .../list-ordering/NaturalAlgorithm-test.ts | 0 .../room-list/filters/SpaceFilterCondition-test.ts | 0 .../room-list/filters/VisibilityProvider-test.ts | 0 .../room-list/previews/MessageEventPreview-test.ts | 0 .../previews/PollStartEventPreview-test.ts | 0 .../room-list/previews/ReactionEventPreview-test.ts | 0 .../previews/VoiceBroadcastPreview-test.ts | 0 .../stores/room-list/utils/roomMute-test.ts | 0 .../stores/widgets/StopGapWidget-test.ts | 0 .../stores/widgets/StopGapWidgetDriver-test.ts | 0 .../stores/widgets/WidgetPermissionStore-test.ts | 0 .../__snapshots__/StopGapWidgetDriver-test.ts.snap | 0 test/{ => unit-tests}/submit-rageshake-test.ts | 0 test/{ => unit-tests}/test-utils/audio.ts | 0 test/{ => unit-tests}/test-utils/beacon.ts | 0 test/{ => unit-tests}/test-utils/call.ts | 0 test/{ => unit-tests}/test-utils/client.ts | 0 test/{ => unit-tests}/test-utils/composer.ts | 0 test/{ => unit-tests}/test-utils/console.ts | 0 test/{ => unit-tests}/test-utils/date.ts | 0 test/{ => unit-tests}/test-utils/events.ts | 0 test/{ => unit-tests}/test-utils/index.ts | 0 .../test-utils/jest-matrix-react.tsx | 0 test/{ => unit-tests}/test-utils/location.ts | 0 test/{ => unit-tests}/test-utils/oidc.ts | 0 test/{ => unit-tests}/test-utils/platform.ts | 0 test/{ => unit-tests}/test-utils/poll.ts | 0 test/{ => unit-tests}/test-utils/pushRules.ts | 0 test/{ => unit-tests}/test-utils/relations.ts | 0 test/{ => unit-tests}/test-utils/room.ts | 0 test/{ => unit-tests}/test-utils/test-utils.ts | 0 test/{ => unit-tests}/test-utils/threads.ts | 0 test/{ => unit-tests}/test-utils/utilities.ts | 0 test/{ => unit-tests}/test-utils/wrappers.tsx | 0 test/{ => unit-tests}/theme-test.ts | 0 .../toasts/IncomingCallToast-test.tsx | 0 .../toasts/IncomingLegacyCallToast-test.tsx | 0 .../toasts/UnverifiedSessionToast-test.tsx | 0 .../IncomingLegacyCallToast-test.tsx.snap | 0 .../UnverifiedSessionToast-test.tsx.snap | 0 test/{ => unit-tests}/useTopic-test.tsx | 0 test/{ => unit-tests}/utils/AnimationUtils-test.ts | 0 .../utils/AutoDiscoveryUtils-test.tsx | 0 test/{ => unit-tests}/utils/DMRoomMap-test.ts | 0 test/{ => unit-tests}/utils/DateUtils-test.ts | 0 test/{ => unit-tests}/utils/ErrorUtils-test.ts | 0 .../utils/EventRenderingUtils-test.ts | 0 test/{ => unit-tests}/utils/EventUtils-test.ts | 0 test/{ => unit-tests}/utils/Feedback-test.ts | 0 test/{ => unit-tests}/utils/FileUtils-test.ts | 0 .../utils/FixedRollingArray-test.ts | 0 .../{ => unit-tests}/utils/FormattingUtils-test.tsx | 0 test/{ => unit-tests}/utils/LruCache-test.ts | 0 .../utils/MegolmExportEncryption-test.ts | 0 .../utils/MessageDiffUtils-test.tsx | 0 test/{ => unit-tests}/utils/MultiInviter-test.ts | 0 .../utils/PhasedRolloutFeature-test.ts | 0 test/{ => unit-tests}/utils/PinningUtils-test.ts | 0 test/{ => unit-tests}/utils/SearchInput-test.ts | 0 test/{ => unit-tests}/utils/SessionLock-test.ts | 0 test/{ => unit-tests}/utils/ShieldUtils-test.ts | 0 test/{ => unit-tests}/utils/Singleflight-test.ts | 0 test/{ => unit-tests}/utils/SnakedObject-test.ts | 0 test/{ => unit-tests}/utils/StorageAccess-test.ts | 0 test/{ => unit-tests}/utils/StorageManager-test.ts | 0 test/{ => unit-tests}/utils/UrlUtils-test.ts | 0 test/{ => unit-tests}/utils/WidgetUtils-test.ts | 0 .../__snapshots__/AutoDiscoveryUtils-test.tsx.snap | 0 .../utils/__snapshots__/ErrorUtils-test.ts.snap | 0 .../__snapshots__/FormattingUtils-test.tsx.snap | 0 .../__snapshots__/MessageDiffUtils-test.tsx.snap | 0 .../createVoiceMessageContent-test.ts.snap | 0 test/{ => unit-tests}/utils/arrays-test.ts | 0 test/{ => unit-tests}/utils/beacon/bounds-test.ts | 0 test/{ => unit-tests}/utils/beacon/duration-test.ts | 0 .../utils/beacon/geolocation-test.ts | 0 test/{ => unit-tests}/utils/beacon/timeline-test.ts | 0 test/{ => unit-tests}/utils/colour-test.ts | 0 test/{ => unit-tests}/utils/connection-test.ts | 0 .../utils/createVoiceMessageContent-test.ts | 0 .../utils/crypto/deviceInfo-test.ts | 0 .../crypto/shouldForceDisableEncryption-test.ts | 0 .../utils/device/clientInformation-test.ts | 0 .../utils/device/parseUserAgent-test.ts | 0 .../snoozeBulkUnverifiedDeviceReminder-test.ts | 0 test/{ => unit-tests}/utils/direct-messages-test.ts | 0 .../utils/dm/createDmLocalRoom-test.ts | 0 .../utils/dm/filterValidMDirect-test.ts | 0 .../{ => unit-tests}/utils/dm/findDMForUser-test.ts | 0 test/{ => unit-tests}/utils/dm/findDMRoom-test.ts | 0 test/{ => unit-tests}/utils/enums-test.ts | 0 test/{ => unit-tests}/utils/export-test.tsx | 0 .../utils/exportUtils/HTMLExport-test.ts | 0 .../utils/exportUtils/JSONExport-test.ts | 0 .../utils/exportUtils/PlainTextExport-test.ts | 0 .../__snapshots__/HTMLExport-test.ts.snap | 0 .../__snapshots__/JSONExport-test.ts.snap | 0 .../__snapshots__/PlainTextExport-test.ts.snap | 0 .../utils/exportUtils/exportCSS-test.ts | 0 .../utils/generate-megolm-test-vectors.py | 0 test/{ => unit-tests}/utils/i18n-helpers-test.ts | 0 test/{ => unit-tests}/utils/iterables-test.ts | 0 test/{ => unit-tests}/utils/leave-behaviour-test.ts | 0 test/{ => unit-tests}/utils/local-room-test.ts | 0 .../utils/localRoom/isLocalRoom-test.ts | 0 .../utils/localRoom/isRoomReady-test.ts | 0 .../utils/location/isSelfLocation-test.ts | 0 .../utils/location/locationEventGeoUri-test.ts | 0 test/{ => unit-tests}/utils/location/map-test.ts | 0 .../utils/location/parseGeoUri-test.ts | 0 .../utils/location/positionFailureMessage-test.ts | 0 test/{ => unit-tests}/utils/maps-test.ts | 0 .../utils/media/requestMediaPermissions-test.tsx | 0 test/{ => unit-tests}/utils/membership-test.ts | 0 test/{ => unit-tests}/utils/notifications-test.ts | 0 test/{ => unit-tests}/utils/numbers-test.ts | 0 test/{ => unit-tests}/utils/objects-test.ts | 0 .../utils/oidc/TokenRefresher-test.ts | 0 test/{ => unit-tests}/utils/oidc/authorize-test.ts | 0 .../utils/oidc/persistOidcSettings-test.ts | 0 .../utils/oidc/registerClient-test.ts | 0 .../MatrixSchemePermalinkConstructor-test.ts | 0 .../permalinks/MatrixToPermalinkConstructor-test.ts | 0 .../utils/permalinks/Permalinks-test.ts | 0 test/{ => unit-tests}/utils/pillify-test.tsx | 0 test/{ => unit-tests}/utils/promise-test.ts | 0 .../{ => unit-tests}/utils/room/canInviteTo-test.ts | 0 .../room/getJoinedNonFunctionalMembers-test.ts | 0 .../utils/room/getRoomFunctionalMembers-test.ts | 0 .../utils/room/inviteToRoom-test.ts | 0 ...houldEncryptRoomWithSingle3rdPartyInvite-test.ts | 0 test/{ => unit-tests}/utils/room/tagRoom-test.ts | 0 test/{ => unit-tests}/utils/rooms-test.ts | 0 test/{ => unit-tests}/utils/sets-test.ts | 0 .../{ => unit-tests}/utils/stringOrderField-test.ts | 0 test/{ => unit-tests}/utils/threepids-test.ts | 0 test/{ => unit-tests}/utils/tooltipify-test.tsx | 0 .../utils/validate/numberInRange-test.ts | 0 .../audio/VoiceBroadcastRecorder-test.ts | 0 .../components/VoiceBroadcastBody-test.tsx | 0 .../components/atoms/LiveBadge-test.tsx | 0 .../components/atoms/VoiceBroadcastControl-test.tsx | 0 .../components/atoms/VoiceBroadcastHeader-test.tsx | 0 .../atoms/VoiceBroadcastPlaybackControl-test.tsx | 0 .../atoms/__snapshots__/LiveBadge-test.tsx.snap | 0 .../VoiceBroadcastControl-test.tsx.snap | 0 .../VoiceBroadcastHeader-test.tsx.snap | 0 .../VoiceBroadcastPlaybackControl-test.tsx.snap | 0 .../molecules/VoiceBroadcastPlaybackBody-test.tsx | 0 .../VoiceBroadcastPreRecordingPip-test.tsx | 0 .../molecules/VoiceBroadcastRecordingBody-test.tsx | 0 .../molecules/VoiceBroadcastRecordingPip-test.tsx | 0 .../VoiceBroadcastSmallPlaybackBody-test.tsx | 0 .../VoiceBroadcastPlaybackBody-test.tsx.snap | 0 .../VoiceBroadcastPreRecordingPip-test.tsx.snap | 0 .../VoiceBroadcastRecordingBody-test.tsx.snap | 0 .../VoiceBroadcastRecordingPip-test.tsx.snap | 0 .../VoiceBroadcastSmallPlaybackBody-test.tsx.snap | 0 .../models/VoiceBroadcastPlayback-test.tsx | 0 .../models/VoiceBroadcastPreRecording-test.ts | 0 .../models/VoiceBroadcastRecording-test.ts | 0 .../stores/VoiceBroadcastPlaybacksStore-test.ts | 0 .../stores/VoiceBroadcastPreRecordingStore-test.ts | 0 .../stores/VoiceBroadcastRecordingsStore-test.ts | 0 .../utils/VoiceBroadcastChunkEvents-test.ts | 0 .../utils/VoiceBroadcastResumer-test.ts | 0 .../setUpVoiceBroadcastPreRecording-test.ts.snap | 0 .../startNewVoiceBroadcastRecording-test.ts.snap | 0 .../textForVoiceBroadcastStoppedEvent-test.tsx.snap | 0 .../voice-broadcast/utils/cleanUpBroadcasts-test.ts | 0 .../utils/determineVoiceBroadcastLiveness-test.ts | 0 ...dRoomLiveVoiceBroadcastFromUserAndDevice-test.ts | 0 .../voice-broadcast/utils/getChunkLength-test.ts | 0 .../utils/getMaxBroadcastLength-test.ts | 0 .../utils/hasRoomLiveVoiceBroadcast-test.ts | 0 .../utils/isRelatedToVoiceBroadcast-test.ts | 0 .../pauseNonLiveBroadcastFromOtherRoom-test.ts | 0 .../utils/retrieveStartedInfoEvent-test.ts | 0 .../utils/setUpVoiceBroadcastPreRecording-test.ts | 0 ...ouldDisplayAsVoiceBroadcastRecordingTile-test.ts | 0 .../utils/shouldDisplayAsVoiceBroadcastTile-test.ts | 0 .../utils/startNewVoiceBroadcastRecording-test.ts | 0 .../voice-broadcast/utils/test-utils.ts | 0 .../textForVoiceBroadcastStoppedEvent-test.tsx | 0 ...ForVoiceBroadcastStoppedEventWithoutLink-test.ts | 0 test/{ => unit-tests}/widgets/ManagedHybrid-test.ts | 0 807 files changed, 0 insertions(+), 0 deletions(-) rename test/{ => unit-tests}/Avatar-test.ts (100%) rename test/{ => unit-tests}/ContentMessages-test.ts (100%) rename test/{ => unit-tests}/DecryptionFailureTracker-test.ts (100%) rename test/{ => unit-tests}/DeviceListener-test.ts (100%) rename test/{ => unit-tests}/HtmlUtils-test.tsx (100%) rename test/{ => unit-tests}/Image-test.ts (100%) rename test/{ => unit-tests}/KeyBindingsManager-test.ts (100%) rename test/{ => unit-tests}/LegacyCallHandler-test.ts (100%) rename test/{ => unit-tests}/Lifecycle-test.ts (100%) rename test/{ => unit-tests}/Markdown-test.ts (100%) rename test/{ => unit-tests}/MatrixClientPeg-test.ts (100%) rename test/{ => unit-tests}/MediaDeviceHandler-test.ts (100%) rename test/{ => unit-tests}/Modal-test.ts (100%) rename test/{ => unit-tests}/Notifier-test.ts (100%) rename test/{ => unit-tests}/PosthogAnalytics-test.ts (100%) rename test/{ => unit-tests}/PreferredRoomVersions-test.ts (100%) rename test/{ => unit-tests}/Reply-test.ts (100%) rename test/{ => unit-tests}/RoomNotifs-test.ts (100%) rename test/{ => unit-tests}/Rooms-test.ts (100%) rename test/{ => unit-tests}/ScalarAuthClient-test.ts (100%) rename test/{ => unit-tests}/SdkConfig-test.ts (100%) rename test/{ => unit-tests}/SecurityManager-test.ts (100%) rename test/{ => unit-tests}/SlashCommands-test.tsx (100%) rename test/{ => unit-tests}/SlidingSyncManager-test.ts (100%) rename test/{ => unit-tests}/SupportedBrowser-test.ts (100%) rename test/{ => unit-tests}/Terms-test.tsx (100%) rename test/{ => unit-tests}/TestSdkContext.ts (100%) rename test/{ => unit-tests}/TextForEvent-test.ts (100%) rename test/{ => unit-tests}/TimezoneHandler-test.ts (100%) rename test/{ => unit-tests}/Unread-test.ts (100%) rename test/{ => unit-tests}/UserActivity-test.ts (100%) rename test/{ => unit-tests}/WorkerManager-test.ts (100%) rename test/{ => unit-tests}/__snapshots__/HtmlUtils-test.tsx.snap (100%) rename test/{ => unit-tests}/__snapshots__/LegacyCallHandler-test.ts.snap (100%) rename test/{ => unit-tests}/__snapshots__/Reply-test.ts.snap (100%) rename test/{ => unit-tests}/__snapshots__/SlashCommands-test.tsx.snap (100%) rename test/{ => unit-tests}/__snapshots__/TextForEvent-test.ts.snap (100%) rename test/{ => unit-tests}/__snapshots__/theme-test.ts.snap (100%) rename test/{ => unit-tests}/accessibility/KeyboardShortcutUtils-test.ts (100%) rename test/{ => unit-tests}/accessibility/LandmarkNavigation-test.tsx (100%) rename test/{ => unit-tests}/accessibility/RovingTabIndex-test.tsx (100%) rename test/{ => unit-tests}/actions/handlers/viewUserDeviceSettings-test.ts (100%) rename test/{ => unit-tests}/audio/Playback-test.ts (100%) rename test/{ => unit-tests}/audio/VoiceMessageRecording-test.ts (100%) rename test/{ => unit-tests}/audio/VoiceRecording-test.ts (100%) rename test/{ => unit-tests}/autocomplete/EmojiProvider-test.ts (100%) rename test/{ => unit-tests}/autocomplete/QueryMatcher-test.ts (100%) rename test/{ => unit-tests}/autocomplete/RoomProvider-test.ts (100%) rename test/{ => unit-tests}/autocomplete/SpaceProvider-test.ts (100%) rename test/{ => unit-tests}/components/structures/AutocompleteInput-test.tsx (100%) rename test/{ => unit-tests}/components/structures/ContextMenu-test.ts (100%) rename test/{ => unit-tests}/components/structures/FilePanel-test.tsx (100%) rename test/{ => unit-tests}/components/structures/LargeLoader-test.tsx (100%) rename test/{ => unit-tests}/components/structures/LeftPanel-test.tsx (100%) rename test/{ => unit-tests}/components/structures/LegacyCallEventGrouper-test.ts (100%) rename test/{ => unit-tests}/components/structures/LoggedInView-test.tsx (100%) rename test/{ => unit-tests}/components/structures/MainSplit-test.tsx (100%) rename test/{ => unit-tests}/components/structures/MatrixChat-test.tsx (100%) rename test/{ => unit-tests}/components/structures/MatrixClientContextProvider-test.tsx (100%) rename test/{ => unit-tests}/components/structures/MessagePanel-test.tsx (100%) rename test/{ => unit-tests}/components/structures/PictureInPictureDragger-test.tsx (100%) rename test/{ => unit-tests}/components/structures/PipContainer-test.tsx (100%) rename test/{ => unit-tests}/components/structures/ReleaseAnnouncement-test.tsx (100%) rename test/{ => unit-tests}/components/structures/RightPanel-test.tsx (100%) rename test/{ => unit-tests}/components/structures/RoomSearchView-test.tsx (100%) rename test/{ => unit-tests}/components/structures/RoomStatusBar-test.tsx (100%) rename test/{ => unit-tests}/components/structures/RoomStatusBarUnsentMessages-test.tsx (100%) rename test/{ => unit-tests}/components/structures/RoomView-test.tsx (100%) rename test/{ => unit-tests}/components/structures/SpaceHierarchy-test.tsx (100%) rename test/{ => unit-tests}/components/structures/TabbedView-test.tsx (100%) rename test/{ => unit-tests}/components/structures/ThreadPanel-test.tsx (100%) rename test/{ => unit-tests}/components/structures/ThreadView-test.tsx (100%) rename test/{ => unit-tests}/components/structures/TimelinePanel-test.tsx (100%) rename test/{ => unit-tests}/components/structures/UploadBar-test.tsx (100%) rename test/{ => unit-tests}/components/structures/UserMenu-test.tsx (100%) rename test/{ => unit-tests}/components/structures/ViewSource-test.tsx (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/FilePanel-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/MainSplit-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/MatrixChat-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/MessagePanel-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/PictureInPictureDragger-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/RoomStatusBar-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/RoomView-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/SpaceHierarchy-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/TabbedView-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/ThreadPanel-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/__snapshots__/UserMenu-test.tsx.snap (100%) rename test/{ => unit-tests}/components/structures/auth/CompleteSecurity-test.tsx (100%) rename test/{ => unit-tests}/components/structures/auth/ForgotPassword-test.tsx (100%) rename test/{ => unit-tests}/components/structures/auth/Login-test.tsx (100%) rename test/{ => unit-tests}/components/structures/auth/LoginSplashView-test.tsx (100%) rename test/{ => unit-tests}/components/structures/auth/Registration-test.tsx (100%) rename test/{ => unit-tests}/components/structures/auth/__snapshots__/LoginSplashView-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/Validation-test.ts (100%) rename test/{ => unit-tests}/components/views/VerificationShowSas-test.tsx (100%) rename test/{ => unit-tests}/components/views/audio_messages/RecordingPlayback-test.tsx (100%) rename test/{ => unit-tests}/components/views/audio_messages/SeekBar-test.tsx (100%) rename test/{ => unit-tests}/components/views/audio_messages/__snapshots__/SeekBar-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/auth/CountryDropdown-test.tsx (100%) rename test/{ => unit-tests}/components/views/auth/InteractiveAuthEntryComponents-test.tsx (100%) rename test/{ => unit-tests}/components/views/auth/RegistrationToken-test.tsx (100%) rename test/{ => unit-tests}/components/views/auth/__snapshots__/InteractiveAuthEntryComponents-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/avatars/DecoratedRoomAvatar-test.tsx (100%) rename test/{ => unit-tests}/components/views/avatars/MemberAvatar-test.tsx (100%) rename test/{ => unit-tests}/components/views/avatars/RoomAvatar-test.tsx (100%) rename test/{ => unit-tests}/components/views/avatars/WithPresenceIndicator-test.tsx (100%) rename test/{ => unit-tests}/components/views/avatars/__snapshots__/DecoratedRoomAvatar-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/avatars/__snapshots__/RoomAvatar-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/avatars/__snapshots__/WithPresenceIndicator-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/beacon/BeaconListItem-test.tsx (100%) rename test/{ => unit-tests}/components/views/beacon/BeaconMarker-test.tsx (100%) rename test/{ => unit-tests}/components/views/beacon/BeaconStatus-test.tsx (100%) rename test/{ => unit-tests}/components/views/beacon/BeaconViewDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/beacon/DialogSidebar-test.tsx (100%) rename test/{ => unit-tests}/components/views/beacon/LeftPanelLiveShareWarning-test.tsx (100%) rename test/{ => unit-tests}/components/views/beacon/OwnBeaconStatus-test.tsx (100%) rename test/{ => unit-tests}/components/views/beacon/RoomCallBanner-test.tsx (100%) rename test/{ => unit-tests}/components/views/beacon/ShareLatestLocation-test.tsx (100%) rename test/{ => unit-tests}/components/views/beacon/StyledLiveBeaconIcon-test.tsx (100%) rename test/{ => unit-tests}/components/views/beacon/__snapshots__/BeaconListItem-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/beacon/__snapshots__/BeaconMarker-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/beacon/__snapshots__/BeaconStatus-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/beacon/__snapshots__/BeaconViewDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/beacon/__snapshots__/DialogSidebar-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/beacon/__snapshots__/LeftPanelLiveShareWarning-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/beacon/__snapshots__/OwnBeaconStatus-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/beacon/__snapshots__/ShareLatestLocation-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/beacon/__snapshots__/StyledLiveBeaconIcon-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/beta/BetaCard-test.tsx (100%) rename test/{ => unit-tests}/components/views/context_menus/ContextMenu-test.tsx (100%) rename test/{ => unit-tests}/components/views/context_menus/EmbeddedPage-test.tsx (100%) rename test/{ => unit-tests}/components/views/context_menus/MessageContextMenu-test.tsx (100%) rename test/{ => unit-tests}/components/views/context_menus/RoomGeneralContextMenu-test.tsx (100%) rename test/{ => unit-tests}/components/views/context_menus/SpaceContextMenu-test.tsx (100%) rename test/{ => unit-tests}/components/views/context_menus/ThreadListContextMenu-test.tsx (100%) rename test/{ => unit-tests}/components/views/context_menus/WidgetContextMenu-test.tsx (100%) rename test/{ => unit-tests}/components/views/context_menus/__snapshots__/EmbeddedPage-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/context_menus/__snapshots__/RoomGeneralContextMenu-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/context_menus/__snapshots__/SpaceContextMenu-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/AccessSecretStorageDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/AppDownloadDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/AskInviteAnywayDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/ChangelogDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/ConfirmRedactDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/ConfirmUserActionDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/CreateRoomDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/DevtoolsDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/ExportDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/FeedbackDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/ForwardDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/IncomingSasDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/InteractiveAuthDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/InviteDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/LogoutDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/ManageRestrictedJoinRuleDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/ManualDeviceKeyVerificationDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/MessageEditHistoryDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/RoomSettingsDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/ServerPickerDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/ShareDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/SpotlightDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/UnpinAllDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/UserSettingsDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/AppDownloadDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/ChangelogDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/ConfirmUserActionDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/DevtoolsDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/ExportDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/FeedbackDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/LogoutDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/ManageRestrictedJoinRuleDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/ManualDeviceKeyVerificationDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/MessageEditHistoryDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/RoomSettingsDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/ServerPickerDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/UnpinAllDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/__snapshots__/UserSettingsDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/devtools/Event-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/devtools/RoomNotifications-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/devtools/__snapshots__/Event-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/devtools/__snapshots__/RoomNotifications-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/security/CreateKeyBackupDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/security/CreateSecretStorageDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/security/ExportE2eKeysDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/security/ImportE2eKeysDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/security/RestoreKeyBackupDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/security/__snapshots__/CreateKeyBackupDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/security/__snapshots__/CreateSecretStorageDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/security/__snapshots__/ExportE2eKeysDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/security/__snapshots__/ImportE2eKeysDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/security/__snapshots__/RestoreKeyBackupDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/dialogs/spotlight/PublicRoomResultDetails-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/spotlight/RoomResultContextMenus-test.tsx (100%) rename test/{ => unit-tests}/components/views/dialogs/spotlight/__snapshots__/PublicRoomResultDetails-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/AccessibleButton-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/AppTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/DesktopCapturerSourcePicker-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/EffectsOverlay-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/EventListSummary-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/ExternalLink-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/FacePile-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/Field-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/FilterDropdown-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/FilterTabGroup-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/ImageView-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/InfoTooltip-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/InteractiveTooltip-test.ts (100%) rename test/{ => unit-tests}/components/views/elements/LabelledCheckbox-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/LearnMore-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/Pill-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/PollCreateDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/PowerSelector-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/ProgressBar-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/QRCode-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/ReplyChain-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/RoomFacePile-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/RoomTopic-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/SearchWarning-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/SpellCheckLanguagesDropdown-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/StyledRadioGroup-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/SyntaxHighlight-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/AccessibleButton-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/AppTile-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/EffectsOverlay-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/ExternalLink-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/FacePile-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/FilterDropdown-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/FilterTabGroup-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/ImageView-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/InfoTooltip-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/LabelledCheckbox-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/LearnMore-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/Pill-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/PollCreateDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/QRCode-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/RoomFacePile-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/SearchWarning-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/SpellCheckLanguagesDropdown-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/StyledRadioGroup-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/__snapshots__/SyntaxHighlight-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/elements/crypto/VerificationQRCode-test.tsx (100%) rename test/{ => unit-tests}/components/views/elements/crypto/__snapshots__/VerificationQRCode-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/emojipicker/EmojiPicker-test.tsx (100%) rename test/{ => unit-tests}/components/views/location/LiveDurationDropdown-test.tsx (100%) rename test/{ => unit-tests}/components/views/location/LocationPicker-test.tsx (100%) rename test/{ => unit-tests}/components/views/location/LocationShareMenu-test.tsx (100%) rename test/{ => unit-tests}/components/views/location/LocationViewDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/location/Map-test.tsx (100%) rename test/{ => unit-tests}/components/views/location/MapError-test.tsx (100%) rename test/{ => unit-tests}/components/views/location/Marker-test.tsx (100%) rename test/{ => unit-tests}/components/views/location/SmartMarker-test.tsx (100%) rename test/{ => unit-tests}/components/views/location/ZoomButtons-test.tsx (100%) rename test/{ => unit-tests}/components/views/location/__snapshots__/LocationPicker-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/location/__snapshots__/LocationShareMenu-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/location/__snapshots__/LocationViewDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/location/__snapshots__/MapError-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/location/__snapshots__/Marker-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/location/__snapshots__/SmartMarker-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/location/__snapshots__/ZoomButtons-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/location/shareLocation-test.ts (100%) rename test/{ => unit-tests}/components/views/messages/CallEvent-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/DateSeparator-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/DecryptionFailureBody-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/DownloadActionButton-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/EncryptionEvent-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/JumpToDatePicker-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/LegacyCallEvent-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MBeaconBody-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MFileBody-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MImageBody-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MKeyVerificationRequest-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MLocationBody-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MPollBody-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MPollEndBody-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MStickerBody-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MVideoBody-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MessageActionBar-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MessageEvent-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/MessageTimestamp-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/PinnedMessageBadge-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/ReactionsRowButton-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/RoomPredecessorTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/TextualBody-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/DateSeparator-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/DecryptionFailureBody-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/JumpToDatePicker-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/MBeaconBody-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/MFileBody-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/MImageBody-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/MLocationBody-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/MPollBody-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/MPollEndBody-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/MVideoBody-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/PinnedMessageBadge-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/ReactionsRowButton-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/RoomPredecessorTile-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/__snapshots__/TextualBody-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/messages/shared/MediaProcessingError-test.tsx (100%) rename test/{ => unit-tests}/components/views/messages/shared/__snapshots__/MediaProcessingError-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/polls/pollHistory/PollHistory-test.tsx (100%) rename test/{ => unit-tests}/components/views/polls/pollHistory/PollListItem-test.tsx (100%) rename test/{ => unit-tests}/components/views/polls/pollHistory/PollListItemEnded-test.tsx (100%) rename test/{ => unit-tests}/components/views/polls/pollHistory/__snapshots__/PollHistory-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/polls/pollHistory/__snapshots__/PollListItem-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/polls/pollHistory/__snapshots__/PollListItemEnded-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/right_panel/BaseCard-test.tsx (100%) rename test/{ => unit-tests}/components/views/right_panel/ExtensionsCard-test.tsx (100%) rename test/{ => unit-tests}/components/views/right_panel/PinnedMessagesCard-test.tsx (100%) rename test/{ => unit-tests}/components/views/right_panel/RoomSummaryCard-test.tsx (100%) rename test/{ => unit-tests}/components/views/right_panel/UserInfo-test.tsx (100%) rename test/{ => unit-tests}/components/views/right_panel/VerificationPanel-test.tsx (100%) rename test/{ => unit-tests}/components/views/right_panel/__snapshots__/BaseCard-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/right_panel/__snapshots__/ExtensionsCard-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/right_panel/__snapshots__/PinnedMessagesCard-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/room_settings/RoomProfileSettings-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/AppsDrawer-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/BasicMessageComposer-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/EditMessageComposer-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/EventTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/EventTile/EventTileThreadToolbar-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/EventTile/__snapshots__/EventTileThreadToolbar-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/ExtraTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/MemberList-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/MemberTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/MessageComposer-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/MessageComposerButtons-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/NewRoomIntro-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/NotificationBadge/NotificationBadge-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/NotificationBadge/StatelessNotificationBadge-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/NotificationBadge/UnreadNotificationBadge-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/PinnedEventTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/PinnedMessageBanner-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/PresenceLabel-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/ReadReceiptGroup-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/ReadReceiptMarker-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/RoomHeader-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/RoomHeader/CallGuestLinkButton-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/RoomHeader/VideoRoomChatButton-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/RoomHeader/__snapshots__/VideoRoomChatButton-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/RoomKnocksBar-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/RoomList-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/RoomListHeader-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/RoomPreviewBar-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/RoomPreviewCard-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/RoomSearchAuxPanel-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/RoomTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/SearchResultTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/SendMessageComposer-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/ThirdPartyMemberInfo-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/VoiceRecordComposerTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/__snapshots__/ExtraTile-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/__snapshots__/MemberTile-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/__snapshots__/PinnedEventTile-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/__snapshots__/PinnedMessageBanner-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/__snapshots__/ReadReceiptGroup-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/__snapshots__/RoomHeader-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/__snapshots__/RoomPreviewBar-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/__snapshots__/ThirdPartyMemberInfo-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/EditWysiwygComposer-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/SendWysiwygComposer-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/components/FormattingButtons-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/components/LinkModal-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/components/PlainTextComposer-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/components/WysiwygAutocomplete-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/components/WysiwygComposer-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/components/__snapshots__/FormattingButtons-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/hooks/usePlainTextListeners-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/hooks/useSuggestion-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/hooks/utils-test.tsx (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/utils.ts (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/utils/autocomplete-test.ts (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/utils/createMessageContent-test.ts (100%) rename test/{ => unit-tests}/components/views/rooms/wysiwyg_composer/utils/message-test.ts (100%) rename test/{ => unit-tests}/components/views/settings/AddPrivilegedUsers-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/AddRemoveThreepids-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/AvatarSetting-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/ChangePassword-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/CrossSigningPanel-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/CryptographyPanel-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/EventIndexPanel-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/FontScalingPanel-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/JoinRuleSettings-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/KeyboardShortcut-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/LayoutSwitcher-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/Notifications-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/PowerLevelSelector-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/SecureBackupPanel-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/SetIntegrationManager-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/SettingsFieldset-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/ThemeChoicePanel-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/UserProfileSettings-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/AddRemoveThreepids-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/ChangePassword-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/CrossSigningPanel-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/EventIndexPanel-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/FontScalingPanel-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/KeyboardShortcut-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/LayoutSwitcher-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/Notifications-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/PowerLevelSelector-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/SecureBackupPanel-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/SetIntegrationManager-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/SettingsFieldset-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/__snapshots__/ThemeChoicePanel-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/CurrentDeviceSection-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/DeviceDetailHeading-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/DeviceDetails-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/DeviceExpandDetailsButton-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/DeviceSecurityCard-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/DeviceTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/DeviceTypeIcon-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/DeviceVerificationStatusCard-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/FilteredDeviceList-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/FilteredDeviceListHeader-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/LoginWithQR-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/LoginWithQRFlow-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/LoginWithQRSection-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/SecurityRecommendations-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/SelectableDeviceTile-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/CurrentDeviceSection-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/DeviceDetailHeading-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/DeviceDetails-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/DeviceExpandDetailsButton-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/DeviceSecurityCard-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/DeviceTile-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/DeviceTypeIcon-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/DeviceVerificationStatusCard-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/FilteredDeviceList-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/FilteredDeviceListHeader-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/LoginWithQRFlow-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/LoginWithQRSection-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/SecurityRecommendations-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/SelectableDeviceTile-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/__snapshots__/deleteDevices-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/devices/deleteDevices-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/devices/filter-test.ts (100%) rename test/{ => unit-tests}/components/views/settings/discovery/DiscoverySettings-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/notifications/Notifications2-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/notifications/__snapshots__/Notifications2-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/shared/SettingsSubsection-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/shared/SettingsSubsectionHeading-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/shared/__snapshots__/SettingsSubsection-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/shared/__snapshots__/SettingsSubsectionHeading-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/SettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/__snapshots__/SettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/AdvancedRoomSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/BridgeSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/PeopleRoomSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/RolesRoomSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/SecurityRoomSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/VoipRoomSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/__snapshots__/AdvancedRoomSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/__snapshots__/BridgeSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/__snapshots__/PeopleRoomSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/__snapshots__/RolesRoomSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/room/__snapshots__/SecurityRoomSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/AccountUserSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/AppearanceUserSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/KeyboardUserSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/LabsUserSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/MjolnirUserSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/PreferencesUserSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/SecurityUserSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/SessionManagerTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/SidebarUserSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/VoiceUserSettingsTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/__snapshots__/AccountUserSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/__snapshots__/AppearanceUserSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/__snapshots__/KeyboardUserSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/__snapshots__/LabsUserSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/__snapshots__/MjolnirUserSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/__snapshots__/PreferencesUserSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/__snapshots__/SecurityUserSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/__snapshots__/SessionManagerTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/settings/tabs/user/__snapshots__/SidebarUserSettingsTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/spaces/AddExistingToSpaceDialog-test.tsx (100%) rename test/{ => unit-tests}/components/views/spaces/QuickSettingsButton-test.tsx (100%) rename test/{ => unit-tests}/components/views/spaces/QuickThemeSwitcher-test.tsx (100%) rename test/{ => unit-tests}/components/views/spaces/SpacePanel-test.tsx (100%) rename test/{ => unit-tests}/components/views/spaces/SpaceSettingsVisibilityTab-test.tsx (100%) rename test/{ => unit-tests}/components/views/spaces/SpaceTreeLevel-test.tsx (100%) rename test/{ => unit-tests}/components/views/spaces/ThreadsActivityCentre-test.tsx (100%) rename test/{ => unit-tests}/components/views/spaces/__snapshots__/AddExistingToSpaceDialog-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/spaces/__snapshots__/QuickSettingsButton-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/spaces/__snapshots__/SpacePanel-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/spaces/__snapshots__/SpaceSettingsVisibilityTab-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/spaces/__snapshots__/SpaceTreeLevel-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/spaces/__snapshots__/ThreadsActivityCentre-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/spaces/useUnreadThreadRooms-test.tsx (100%) rename test/{ => unit-tests}/components/views/toasts/GenericToast-test.tsx (100%) rename test/{ => unit-tests}/components/views/toasts/VerificationRequestToast-test.tsx (100%) rename test/{ => unit-tests}/components/views/toasts/__snapshots__/GenericToast-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/toasts/__snapshots__/VerificationRequestToast-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/typography/Caption-test.tsx (100%) rename test/{ => unit-tests}/components/views/typography/Heading-test.tsx (100%) rename test/{ => unit-tests}/components/views/typography/__snapshots__/Caption-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/typography/__snapshots__/Heading-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/user-onboarding/UserOnboardingList-test.tsx (100%) rename test/{ => unit-tests}/components/views/user-onboarding/UserOnboardingPage-test.tsx (100%) rename test/{ => unit-tests}/components/views/voip/CallView-test.tsx (100%) rename test/{ => unit-tests}/components/views/voip/DialPad-test.tsx (100%) rename test/{ => unit-tests}/components/views/voip/LegacyCallView/LegacyCallViewButtons-test.tsx (100%) rename test/{ => unit-tests}/components/views/voip/LegacyCallView/__snapshots__/LegacyCallViewButtons-test.tsx.snap (100%) rename test/{ => unit-tests}/components/views/voip/VideoFeed-test.tsx (100%) rename test/{ => unit-tests}/contexts/SdkContext-test.ts (100%) rename test/{ => unit-tests}/contexts/ToastContext-test.ts (100%) rename test/{ => unit-tests}/createRoom-test.ts (100%) rename test/{ => unit-tests}/customisations/Media-test.ts (100%) rename test/{ => unit-tests}/dispatcher/dispatcher-test.ts (100%) rename test/{ => unit-tests}/editor/__snapshots__/deserialize-test.ts.snap (100%) rename test/{ => unit-tests}/editor/caret-test.ts (100%) rename test/{ => unit-tests}/editor/deserialize-test.ts (100%) rename test/{ => unit-tests}/editor/diff-test.ts (100%) rename test/{ => unit-tests}/editor/history-test.ts (100%) rename test/{ => unit-tests}/editor/mock.ts (100%) rename test/{ => unit-tests}/editor/model-test.ts (100%) rename test/{ => unit-tests}/editor/operations-test.ts (100%) rename test/{ => unit-tests}/editor/parts-test.ts (100%) rename test/{ => unit-tests}/editor/position-test.ts (100%) rename test/{ => unit-tests}/editor/range-test.ts (100%) rename test/{ => unit-tests}/editor/roundtrip-test.ts (100%) rename test/{ => unit-tests}/editor/serialize-test.ts (100%) rename test/{ => unit-tests}/email-test.ts (100%) rename test/{ => unit-tests}/events/EventTileFactory-test.ts (100%) rename test/{ => unit-tests}/events/RelationsHelper-test.ts (100%) rename test/{ => unit-tests}/events/forward/getForwardableEvent-test.ts (100%) rename test/{ => unit-tests}/events/location/getShareableLocationEvent-test.ts (100%) rename test/{ => unit-tests}/hooks/room/useRoomThreadNotifications-test.tsx (100%) rename test/{ => unit-tests}/hooks/useDebouncedCallback-test.tsx (100%) rename test/{ => unit-tests}/hooks/useLatestResult-test.tsx (100%) rename test/{ => unit-tests}/hooks/useNotificationSettings-test.tsx (100%) rename test/{ => unit-tests}/hooks/useProfileInfo-test.tsx (100%) rename test/{ => unit-tests}/hooks/usePublicRoomDirectory-test.tsx (100%) rename test/{ => unit-tests}/hooks/useRoomMembers-test.tsx (100%) rename test/{ => unit-tests}/hooks/useSlidingSyncRoomSearch-test.tsx (100%) rename test/{ => unit-tests}/hooks/useUnreadNotifications-test.ts (100%) rename test/{ => unit-tests}/hooks/useUserDirectory-test.tsx (100%) rename test/{ => unit-tests}/hooks/useUserOnboardingTasks-test.tsx (100%) rename test/{ => unit-tests}/hooks/useWindowWidth-test.ts (100%) rename test/{ => unit-tests}/i18n/languages.json (100%) rename test/{ => unit-tests}/images/animated-logo.apng (100%) rename test/{ => unit-tests}/images/animated-logo.gif (100%) rename test/{ => unit-tests}/images/animated-logo.webp (100%) rename test/{ => unit-tests}/images/static-logo.gif (100%) rename test/{ => unit-tests}/images/static-logo.png (100%) rename test/{ => unit-tests}/images/static-logo.webp (100%) rename test/{ => unit-tests}/img/edit.png (100%) rename test/{ => unit-tests}/img/icon_context_message.svg (100%) rename test/{ => unit-tests}/integrations/IntegrationManagers-test.ts (100%) rename test/{ => unit-tests}/languageHandler-test.tsx (100%) rename test/{ => unit-tests}/linkify-matrix-test.ts (100%) rename test/{ => unit-tests}/models/Call-test.ts (100%) rename test/{ => unit-tests}/models/LocalRoom-test.ts (100%) rename test/{ => unit-tests}/models/notificationsettings/NotificationSettings-test.ts (100%) rename test/{ => unit-tests}/models/notificationsettings/pushrules_bug_botnotices.json (100%) rename test/{ => unit-tests}/models/notificationsettings/pushrules_bug_keyword_only.json (100%) rename test/{ => unit-tests}/models/notificationsettings/pushrules_default.json (100%) rename test/{ => unit-tests}/models/notificationsettings/pushrules_default_new.json (100%) rename test/{ => unit-tests}/models/notificationsettings/pushrules_sample.json (100%) rename test/{ => unit-tests}/modules/AppModule-test.ts (100%) rename test/{ => unit-tests}/modules/MockModule.ts (100%) rename test/{ => unit-tests}/modules/ModuleComponents-test.tsx (100%) rename test/{ => unit-tests}/modules/ModuleRunner-test.ts (100%) rename test/{ => unit-tests}/modules/ProxiedModuleApi-test.tsx (100%) rename test/{ => unit-tests}/modules/__snapshots__/ModuleComponents-test.tsx.snap (100%) rename test/{ => unit-tests}/notifications/ContentRules-test.ts (100%) rename test/{ => unit-tests}/notifications/PushRuleVectorState-test.ts (100%) rename test/{ => unit-tests}/predictableRandom.ts (100%) rename test/{ => unit-tests}/settings/SettingsStore-test.ts (100%) rename test/{ => unit-tests}/settings/controllers/AnalyticsController-test.ts (100%) rename test/{ => unit-tests}/settings/controllers/DeviceIsolationModeController-test.ts (100%) rename test/{ => unit-tests}/settings/controllers/FallbackIceServerController-test.ts (100%) rename test/{ => unit-tests}/settings/controllers/FontSizeController-test.ts (100%) rename test/{ => unit-tests}/settings/controllers/IncompatibleController-test.ts (100%) rename test/{ => unit-tests}/settings/controllers/ServerSupportUnstableFeatureController-test.ts (100%) rename test/{ => unit-tests}/settings/controllers/SystemFontController-test.ts (100%) rename test/{ => unit-tests}/settings/controllers/ThemeController-test.ts (100%) rename test/{ => unit-tests}/settings/enums/ImageSize-test.ts (100%) rename test/{ => unit-tests}/settings/handlers/DeviceSettingsHandler-test.ts (100%) rename test/{ => unit-tests}/settings/handlers/RoomDeviceSettingsHandler-test.ts (100%) rename test/{ => unit-tests}/settings/watchers/FontWatcher-test.tsx (100%) rename test/{ => unit-tests}/settings/watchers/ThemeWatcher-test.tsx (100%) rename test/{ => unit-tests}/setup/mocks.ts (100%) rename test/{ => unit-tests}/setup/setupConfig.ts (100%) rename test/{ => unit-tests}/setup/setupLanguage.ts (100%) rename test/{ => unit-tests}/setup/setupManualMocks.ts (100%) rename test/{ => unit-tests}/stores/AccountPasswordStore-test.ts (100%) rename test/{ => unit-tests}/stores/ActiveWidgetStore-test.ts (100%) rename test/{ => unit-tests}/stores/AutoRageshakeStore-test.ts (100%) rename test/{ => unit-tests}/stores/BreadcrumbsStore-test.ts (100%) rename test/{ => unit-tests}/stores/LifecycleStore-test.ts (100%) rename test/{ => unit-tests}/stores/MemberListStore-test.ts (100%) rename test/{ => unit-tests}/stores/OwnBeaconStore-test.ts (100%) rename test/{ => unit-tests}/stores/OwnProfileStore-test.ts (100%) rename test/{ => unit-tests}/stores/ReleaseAnnouncementStore-test.tsx (100%) rename test/{ => unit-tests}/stores/RoomNotificationStateStore-test.ts (100%) rename test/{ => unit-tests}/stores/RoomViewStore-test.ts (100%) rename test/{ => unit-tests}/stores/SetupEncryptionStore-test.ts (100%) rename test/{ => unit-tests}/stores/SpaceStore-test.ts (100%) rename test/{ => unit-tests}/stores/ToastStore-test.ts (100%) rename test/{ => unit-tests}/stores/TypingStore-test.ts (100%) rename test/{ => unit-tests}/stores/UserProfilesStore-test.ts (100%) rename test/{ => unit-tests}/stores/VoiceRecordingStore-test.ts (100%) rename test/{ => unit-tests}/stores/WidgetLayoutStore-test.ts (100%) rename test/{ => unit-tests}/stores/__snapshots__/RoomViewStore-test.ts.snap (100%) rename test/{ => unit-tests}/stores/notifications/NotificationColor-test.ts (100%) rename test/{ => unit-tests}/stores/notifications/RoomNotificationState-test.ts (100%) rename test/{ => unit-tests}/stores/oidc/OidcClientStore-test.ts (100%) rename test/{ => unit-tests}/stores/right-panel/RightPanelStore-test.ts (100%) rename test/{ => unit-tests}/stores/right-panel/action-handlers/View3pidInvite-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/MessagePreviewStore-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/RoomListStore-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/SlidingRoomListStore-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/SpaceWatcher-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/algorithms/Algorithm-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/algorithms/RecentAlgorithm-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/algorithms/list-ordering/ImportanceAlgorithm-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/algorithms/list-ordering/NaturalAlgorithm-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/filters/SpaceFilterCondition-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/filters/VisibilityProvider-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/previews/MessageEventPreview-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/previews/PollStartEventPreview-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/previews/ReactionEventPreview-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/previews/VoiceBroadcastPreview-test.ts (100%) rename test/{ => unit-tests}/stores/room-list/utils/roomMute-test.ts (100%) rename test/{ => unit-tests}/stores/widgets/StopGapWidget-test.ts (100%) rename test/{ => unit-tests}/stores/widgets/StopGapWidgetDriver-test.ts (100%) rename test/{ => unit-tests}/stores/widgets/WidgetPermissionStore-test.ts (100%) rename test/{ => unit-tests}/stores/widgets/__snapshots__/StopGapWidgetDriver-test.ts.snap (100%) rename test/{ => unit-tests}/submit-rageshake-test.ts (100%) rename test/{ => unit-tests}/test-utils/audio.ts (100%) rename test/{ => unit-tests}/test-utils/beacon.ts (100%) rename test/{ => unit-tests}/test-utils/call.ts (100%) rename test/{ => unit-tests}/test-utils/client.ts (100%) rename test/{ => unit-tests}/test-utils/composer.ts (100%) rename test/{ => unit-tests}/test-utils/console.ts (100%) rename test/{ => unit-tests}/test-utils/date.ts (100%) rename test/{ => unit-tests}/test-utils/events.ts (100%) rename test/{ => unit-tests}/test-utils/index.ts (100%) rename test/{ => unit-tests}/test-utils/jest-matrix-react.tsx (100%) rename test/{ => unit-tests}/test-utils/location.ts (100%) rename test/{ => unit-tests}/test-utils/oidc.ts (100%) rename test/{ => unit-tests}/test-utils/platform.ts (100%) rename test/{ => unit-tests}/test-utils/poll.ts (100%) rename test/{ => unit-tests}/test-utils/pushRules.ts (100%) rename test/{ => unit-tests}/test-utils/relations.ts (100%) rename test/{ => unit-tests}/test-utils/room.ts (100%) rename test/{ => unit-tests}/test-utils/test-utils.ts (100%) rename test/{ => unit-tests}/test-utils/threads.ts (100%) rename test/{ => unit-tests}/test-utils/utilities.ts (100%) rename test/{ => unit-tests}/test-utils/wrappers.tsx (100%) rename test/{ => unit-tests}/theme-test.ts (100%) rename test/{ => unit-tests}/toasts/IncomingCallToast-test.tsx (100%) rename test/{ => unit-tests}/toasts/IncomingLegacyCallToast-test.tsx (100%) rename test/{ => unit-tests}/toasts/UnverifiedSessionToast-test.tsx (100%) rename test/{ => unit-tests}/toasts/__snapshots__/IncomingLegacyCallToast-test.tsx.snap (100%) rename test/{ => unit-tests}/toasts/__snapshots__/UnverifiedSessionToast-test.tsx.snap (100%) rename test/{ => unit-tests}/useTopic-test.tsx (100%) rename test/{ => unit-tests}/utils/AnimationUtils-test.ts (100%) rename test/{ => unit-tests}/utils/AutoDiscoveryUtils-test.tsx (100%) rename test/{ => unit-tests}/utils/DMRoomMap-test.ts (100%) rename test/{ => unit-tests}/utils/DateUtils-test.ts (100%) rename test/{ => unit-tests}/utils/ErrorUtils-test.ts (100%) rename test/{ => unit-tests}/utils/EventRenderingUtils-test.ts (100%) rename test/{ => unit-tests}/utils/EventUtils-test.ts (100%) rename test/{ => unit-tests}/utils/Feedback-test.ts (100%) rename test/{ => unit-tests}/utils/FileUtils-test.ts (100%) rename test/{ => unit-tests}/utils/FixedRollingArray-test.ts (100%) rename test/{ => unit-tests}/utils/FormattingUtils-test.tsx (100%) rename test/{ => unit-tests}/utils/LruCache-test.ts (100%) rename test/{ => unit-tests}/utils/MegolmExportEncryption-test.ts (100%) rename test/{ => unit-tests}/utils/MessageDiffUtils-test.tsx (100%) rename test/{ => unit-tests}/utils/MultiInviter-test.ts (100%) rename test/{ => unit-tests}/utils/PhasedRolloutFeature-test.ts (100%) rename test/{ => unit-tests}/utils/PinningUtils-test.ts (100%) rename test/{ => unit-tests}/utils/SearchInput-test.ts (100%) rename test/{ => unit-tests}/utils/SessionLock-test.ts (100%) rename test/{ => unit-tests}/utils/ShieldUtils-test.ts (100%) rename test/{ => unit-tests}/utils/Singleflight-test.ts (100%) rename test/{ => unit-tests}/utils/SnakedObject-test.ts (100%) rename test/{ => unit-tests}/utils/StorageAccess-test.ts (100%) rename test/{ => unit-tests}/utils/StorageManager-test.ts (100%) rename test/{ => unit-tests}/utils/UrlUtils-test.ts (100%) rename test/{ => unit-tests}/utils/WidgetUtils-test.ts (100%) rename test/{ => unit-tests}/utils/__snapshots__/AutoDiscoveryUtils-test.tsx.snap (100%) rename test/{ => unit-tests}/utils/__snapshots__/ErrorUtils-test.ts.snap (100%) rename test/{ => unit-tests}/utils/__snapshots__/FormattingUtils-test.tsx.snap (100%) rename test/{ => unit-tests}/utils/__snapshots__/MessageDiffUtils-test.tsx.snap (100%) rename test/{ => unit-tests}/utils/__snapshots__/createVoiceMessageContent-test.ts.snap (100%) rename test/{ => unit-tests}/utils/arrays-test.ts (100%) rename test/{ => unit-tests}/utils/beacon/bounds-test.ts (100%) rename test/{ => unit-tests}/utils/beacon/duration-test.ts (100%) rename test/{ => unit-tests}/utils/beacon/geolocation-test.ts (100%) rename test/{ => unit-tests}/utils/beacon/timeline-test.ts (100%) rename test/{ => unit-tests}/utils/colour-test.ts (100%) rename test/{ => unit-tests}/utils/connection-test.ts (100%) rename test/{ => unit-tests}/utils/createVoiceMessageContent-test.ts (100%) rename test/{ => unit-tests}/utils/crypto/deviceInfo-test.ts (100%) rename test/{ => unit-tests}/utils/crypto/shouldForceDisableEncryption-test.ts (100%) rename test/{ => unit-tests}/utils/device/clientInformation-test.ts (100%) rename test/{ => unit-tests}/utils/device/parseUserAgent-test.ts (100%) rename test/{ => unit-tests}/utils/device/snoozeBulkUnverifiedDeviceReminder-test.ts (100%) rename test/{ => unit-tests}/utils/direct-messages-test.ts (100%) rename test/{ => unit-tests}/utils/dm/createDmLocalRoom-test.ts (100%) rename test/{ => unit-tests}/utils/dm/filterValidMDirect-test.ts (100%) rename test/{ => unit-tests}/utils/dm/findDMForUser-test.ts (100%) rename test/{ => unit-tests}/utils/dm/findDMRoom-test.ts (100%) rename test/{ => unit-tests}/utils/enums-test.ts (100%) rename test/{ => unit-tests}/utils/export-test.tsx (100%) rename test/{ => unit-tests}/utils/exportUtils/HTMLExport-test.ts (100%) rename test/{ => unit-tests}/utils/exportUtils/JSONExport-test.ts (100%) rename test/{ => unit-tests}/utils/exportUtils/PlainTextExport-test.ts (100%) rename test/{ => unit-tests}/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap (100%) rename test/{ => unit-tests}/utils/exportUtils/__snapshots__/JSONExport-test.ts.snap (100%) rename test/{ => unit-tests}/utils/exportUtils/__snapshots__/PlainTextExport-test.ts.snap (100%) rename test/{ => unit-tests}/utils/exportUtils/exportCSS-test.ts (100%) rename test/{ => unit-tests}/utils/generate-megolm-test-vectors.py (100%) rename test/{ => unit-tests}/utils/i18n-helpers-test.ts (100%) rename test/{ => unit-tests}/utils/iterables-test.ts (100%) rename test/{ => unit-tests}/utils/leave-behaviour-test.ts (100%) rename test/{ => unit-tests}/utils/local-room-test.ts (100%) rename test/{ => unit-tests}/utils/localRoom/isLocalRoom-test.ts (100%) rename test/{ => unit-tests}/utils/localRoom/isRoomReady-test.ts (100%) rename test/{ => unit-tests}/utils/location/isSelfLocation-test.ts (100%) rename test/{ => unit-tests}/utils/location/locationEventGeoUri-test.ts (100%) rename test/{ => unit-tests}/utils/location/map-test.ts (100%) rename test/{ => unit-tests}/utils/location/parseGeoUri-test.ts (100%) rename test/{ => unit-tests}/utils/location/positionFailureMessage-test.ts (100%) rename test/{ => unit-tests}/utils/maps-test.ts (100%) rename test/{ => unit-tests}/utils/media/requestMediaPermissions-test.tsx (100%) rename test/{ => unit-tests}/utils/membership-test.ts (100%) rename test/{ => unit-tests}/utils/notifications-test.ts (100%) rename test/{ => unit-tests}/utils/numbers-test.ts (100%) rename test/{ => unit-tests}/utils/objects-test.ts (100%) rename test/{ => unit-tests}/utils/oidc/TokenRefresher-test.ts (100%) rename test/{ => unit-tests}/utils/oidc/authorize-test.ts (100%) rename test/{ => unit-tests}/utils/oidc/persistOidcSettings-test.ts (100%) rename test/{ => unit-tests}/utils/oidc/registerClient-test.ts (100%) rename test/{ => unit-tests}/utils/permalinks/MatrixSchemePermalinkConstructor-test.ts (100%) rename test/{ => unit-tests}/utils/permalinks/MatrixToPermalinkConstructor-test.ts (100%) rename test/{ => unit-tests}/utils/permalinks/Permalinks-test.ts (100%) rename test/{ => unit-tests}/utils/pillify-test.tsx (100%) rename test/{ => unit-tests}/utils/promise-test.ts (100%) rename test/{ => unit-tests}/utils/room/canInviteTo-test.ts (100%) rename test/{ => unit-tests}/utils/room/getJoinedNonFunctionalMembers-test.ts (100%) rename test/{ => unit-tests}/utils/room/getRoomFunctionalMembers-test.ts (100%) rename test/{ => unit-tests}/utils/room/inviteToRoom-test.ts (100%) rename test/{ => unit-tests}/utils/room/shouldEncryptRoomWithSingle3rdPartyInvite-test.ts (100%) rename test/{ => unit-tests}/utils/room/tagRoom-test.ts (100%) rename test/{ => unit-tests}/utils/rooms-test.ts (100%) rename test/{ => unit-tests}/utils/sets-test.ts (100%) rename test/{ => unit-tests}/utils/stringOrderField-test.ts (100%) rename test/{ => unit-tests}/utils/threepids-test.ts (100%) rename test/{ => unit-tests}/utils/tooltipify-test.tsx (100%) rename test/{ => unit-tests}/utils/validate/numberInRange-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/audio/VoiceBroadcastRecorder-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/components/VoiceBroadcastBody-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/components/atoms/LiveBadge-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/components/atoms/VoiceBroadcastControl-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/components/atoms/VoiceBroadcastHeader-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/components/atoms/VoiceBroadcastPlaybackControl-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/components/atoms/__snapshots__/LiveBadge-test.tsx.snap (100%) rename test/{ => unit-tests}/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastControl-test.tsx.snap (100%) rename test/{ => unit-tests}/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastHeader-test.tsx.snap (100%) rename test/{ => unit-tests}/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastPlaybackControl-test.tsx.snap (100%) rename test/{ => unit-tests}/voice-broadcast/components/molecules/VoiceBroadcastPlaybackBody-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/components/molecules/VoiceBroadcastPreRecordingPip-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/components/molecules/VoiceBroadcastRecordingBody-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/components/molecules/VoiceBroadcastRecordingPip-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/components/molecules/VoiceBroadcastSmallPlaybackBody-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPlaybackBody-test.tsx.snap (100%) rename test/{ => unit-tests}/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPreRecordingPip-test.tsx.snap (100%) rename test/{ => unit-tests}/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastRecordingBody-test.tsx.snap (100%) rename test/{ => unit-tests}/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastRecordingPip-test.tsx.snap (100%) rename test/{ => unit-tests}/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastSmallPlaybackBody-test.tsx.snap (100%) rename test/{ => unit-tests}/voice-broadcast/models/VoiceBroadcastPlayback-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/models/VoiceBroadcastPreRecording-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/models/VoiceBroadcastRecording-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/stores/VoiceBroadcastPlaybacksStore-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/stores/VoiceBroadcastPreRecordingStore-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/stores/VoiceBroadcastRecordingsStore-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/VoiceBroadcastChunkEvents-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/VoiceBroadcastResumer-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/__snapshots__/setUpVoiceBroadcastPreRecording-test.ts.snap (100%) rename test/{ => unit-tests}/voice-broadcast/utils/__snapshots__/startNewVoiceBroadcastRecording-test.ts.snap (100%) rename test/{ => unit-tests}/voice-broadcast/utils/__snapshots__/textForVoiceBroadcastStoppedEvent-test.tsx.snap (100%) rename test/{ => unit-tests}/voice-broadcast/utils/cleanUpBroadcasts-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/determineVoiceBroadcastLiveness-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/findRoomLiveVoiceBroadcastFromUserAndDevice-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/getChunkLength-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/getMaxBroadcastLength-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/hasRoomLiveVoiceBroadcast-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/isRelatedToVoiceBroadcast-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/pauseNonLiveBroadcastFromOtherRoom-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/retrieveStartedInfoEvent-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/setUpVoiceBroadcastPreRecording-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/shouldDisplayAsVoiceBroadcastRecordingTile-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/shouldDisplayAsVoiceBroadcastTile-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/startNewVoiceBroadcastRecording-test.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/test-utils.ts (100%) rename test/{ => unit-tests}/voice-broadcast/utils/textForVoiceBroadcastStoppedEvent-test.tsx (100%) rename test/{ => unit-tests}/voice-broadcast/utils/textForVoiceBroadcastStoppedEventWithoutLink-test.ts (100%) rename test/{ => unit-tests}/widgets/ManagedHybrid-test.ts (100%) diff --git a/test/Avatar-test.ts b/test/unit-tests/Avatar-test.ts similarity index 100% rename from test/Avatar-test.ts rename to test/unit-tests/Avatar-test.ts diff --git a/test/ContentMessages-test.ts b/test/unit-tests/ContentMessages-test.ts similarity index 100% rename from test/ContentMessages-test.ts rename to test/unit-tests/ContentMessages-test.ts diff --git a/test/DecryptionFailureTracker-test.ts b/test/unit-tests/DecryptionFailureTracker-test.ts similarity index 100% rename from test/DecryptionFailureTracker-test.ts rename to test/unit-tests/DecryptionFailureTracker-test.ts diff --git a/test/DeviceListener-test.ts b/test/unit-tests/DeviceListener-test.ts similarity index 100% rename from test/DeviceListener-test.ts rename to test/unit-tests/DeviceListener-test.ts diff --git a/test/HtmlUtils-test.tsx b/test/unit-tests/HtmlUtils-test.tsx similarity index 100% rename from test/HtmlUtils-test.tsx rename to test/unit-tests/HtmlUtils-test.tsx diff --git a/test/Image-test.ts b/test/unit-tests/Image-test.ts similarity index 100% rename from test/Image-test.ts rename to test/unit-tests/Image-test.ts diff --git a/test/KeyBindingsManager-test.ts b/test/unit-tests/KeyBindingsManager-test.ts similarity index 100% rename from test/KeyBindingsManager-test.ts rename to test/unit-tests/KeyBindingsManager-test.ts diff --git a/test/LegacyCallHandler-test.ts b/test/unit-tests/LegacyCallHandler-test.ts similarity index 100% rename from test/LegacyCallHandler-test.ts rename to test/unit-tests/LegacyCallHandler-test.ts diff --git a/test/Lifecycle-test.ts b/test/unit-tests/Lifecycle-test.ts similarity index 100% rename from test/Lifecycle-test.ts rename to test/unit-tests/Lifecycle-test.ts diff --git a/test/Markdown-test.ts b/test/unit-tests/Markdown-test.ts similarity index 100% rename from test/Markdown-test.ts rename to test/unit-tests/Markdown-test.ts diff --git a/test/MatrixClientPeg-test.ts b/test/unit-tests/MatrixClientPeg-test.ts similarity index 100% rename from test/MatrixClientPeg-test.ts rename to test/unit-tests/MatrixClientPeg-test.ts diff --git a/test/MediaDeviceHandler-test.ts b/test/unit-tests/MediaDeviceHandler-test.ts similarity index 100% rename from test/MediaDeviceHandler-test.ts rename to test/unit-tests/MediaDeviceHandler-test.ts diff --git a/test/Modal-test.ts b/test/unit-tests/Modal-test.ts similarity index 100% rename from test/Modal-test.ts rename to test/unit-tests/Modal-test.ts diff --git a/test/Notifier-test.ts b/test/unit-tests/Notifier-test.ts similarity index 100% rename from test/Notifier-test.ts rename to test/unit-tests/Notifier-test.ts diff --git a/test/PosthogAnalytics-test.ts b/test/unit-tests/PosthogAnalytics-test.ts similarity index 100% rename from test/PosthogAnalytics-test.ts rename to test/unit-tests/PosthogAnalytics-test.ts diff --git a/test/PreferredRoomVersions-test.ts b/test/unit-tests/PreferredRoomVersions-test.ts similarity index 100% rename from test/PreferredRoomVersions-test.ts rename to test/unit-tests/PreferredRoomVersions-test.ts diff --git a/test/Reply-test.ts b/test/unit-tests/Reply-test.ts similarity index 100% rename from test/Reply-test.ts rename to test/unit-tests/Reply-test.ts diff --git a/test/RoomNotifs-test.ts b/test/unit-tests/RoomNotifs-test.ts similarity index 100% rename from test/RoomNotifs-test.ts rename to test/unit-tests/RoomNotifs-test.ts diff --git a/test/Rooms-test.ts b/test/unit-tests/Rooms-test.ts similarity index 100% rename from test/Rooms-test.ts rename to test/unit-tests/Rooms-test.ts diff --git a/test/ScalarAuthClient-test.ts b/test/unit-tests/ScalarAuthClient-test.ts similarity index 100% rename from test/ScalarAuthClient-test.ts rename to test/unit-tests/ScalarAuthClient-test.ts diff --git a/test/SdkConfig-test.ts b/test/unit-tests/SdkConfig-test.ts similarity index 100% rename from test/SdkConfig-test.ts rename to test/unit-tests/SdkConfig-test.ts diff --git a/test/SecurityManager-test.ts b/test/unit-tests/SecurityManager-test.ts similarity index 100% rename from test/SecurityManager-test.ts rename to test/unit-tests/SecurityManager-test.ts diff --git a/test/SlashCommands-test.tsx b/test/unit-tests/SlashCommands-test.tsx similarity index 100% rename from test/SlashCommands-test.tsx rename to test/unit-tests/SlashCommands-test.tsx diff --git a/test/SlidingSyncManager-test.ts b/test/unit-tests/SlidingSyncManager-test.ts similarity index 100% rename from test/SlidingSyncManager-test.ts rename to test/unit-tests/SlidingSyncManager-test.ts diff --git a/test/SupportedBrowser-test.ts b/test/unit-tests/SupportedBrowser-test.ts similarity index 100% rename from test/SupportedBrowser-test.ts rename to test/unit-tests/SupportedBrowser-test.ts diff --git a/test/Terms-test.tsx b/test/unit-tests/Terms-test.tsx similarity index 100% rename from test/Terms-test.tsx rename to test/unit-tests/Terms-test.tsx diff --git a/test/TestSdkContext.ts b/test/unit-tests/TestSdkContext.ts similarity index 100% rename from test/TestSdkContext.ts rename to test/unit-tests/TestSdkContext.ts diff --git a/test/TextForEvent-test.ts b/test/unit-tests/TextForEvent-test.ts similarity index 100% rename from test/TextForEvent-test.ts rename to test/unit-tests/TextForEvent-test.ts diff --git a/test/TimezoneHandler-test.ts b/test/unit-tests/TimezoneHandler-test.ts similarity index 100% rename from test/TimezoneHandler-test.ts rename to test/unit-tests/TimezoneHandler-test.ts diff --git a/test/Unread-test.ts b/test/unit-tests/Unread-test.ts similarity index 100% rename from test/Unread-test.ts rename to test/unit-tests/Unread-test.ts diff --git a/test/UserActivity-test.ts b/test/unit-tests/UserActivity-test.ts similarity index 100% rename from test/UserActivity-test.ts rename to test/unit-tests/UserActivity-test.ts diff --git a/test/WorkerManager-test.ts b/test/unit-tests/WorkerManager-test.ts similarity index 100% rename from test/WorkerManager-test.ts rename to test/unit-tests/WorkerManager-test.ts diff --git a/test/__snapshots__/HtmlUtils-test.tsx.snap b/test/unit-tests/__snapshots__/HtmlUtils-test.tsx.snap similarity index 100% rename from test/__snapshots__/HtmlUtils-test.tsx.snap rename to test/unit-tests/__snapshots__/HtmlUtils-test.tsx.snap diff --git a/test/__snapshots__/LegacyCallHandler-test.ts.snap b/test/unit-tests/__snapshots__/LegacyCallHandler-test.ts.snap similarity index 100% rename from test/__snapshots__/LegacyCallHandler-test.ts.snap rename to test/unit-tests/__snapshots__/LegacyCallHandler-test.ts.snap diff --git a/test/__snapshots__/Reply-test.ts.snap b/test/unit-tests/__snapshots__/Reply-test.ts.snap similarity index 100% rename from test/__snapshots__/Reply-test.ts.snap rename to test/unit-tests/__snapshots__/Reply-test.ts.snap diff --git a/test/__snapshots__/SlashCommands-test.tsx.snap b/test/unit-tests/__snapshots__/SlashCommands-test.tsx.snap similarity index 100% rename from test/__snapshots__/SlashCommands-test.tsx.snap rename to test/unit-tests/__snapshots__/SlashCommands-test.tsx.snap diff --git a/test/__snapshots__/TextForEvent-test.ts.snap b/test/unit-tests/__snapshots__/TextForEvent-test.ts.snap similarity index 100% rename from test/__snapshots__/TextForEvent-test.ts.snap rename to test/unit-tests/__snapshots__/TextForEvent-test.ts.snap diff --git a/test/__snapshots__/theme-test.ts.snap b/test/unit-tests/__snapshots__/theme-test.ts.snap similarity index 100% rename from test/__snapshots__/theme-test.ts.snap rename to test/unit-tests/__snapshots__/theme-test.ts.snap diff --git a/test/accessibility/KeyboardShortcutUtils-test.ts b/test/unit-tests/accessibility/KeyboardShortcutUtils-test.ts similarity index 100% rename from test/accessibility/KeyboardShortcutUtils-test.ts rename to test/unit-tests/accessibility/KeyboardShortcutUtils-test.ts diff --git a/test/accessibility/LandmarkNavigation-test.tsx b/test/unit-tests/accessibility/LandmarkNavigation-test.tsx similarity index 100% rename from test/accessibility/LandmarkNavigation-test.tsx rename to test/unit-tests/accessibility/LandmarkNavigation-test.tsx diff --git a/test/accessibility/RovingTabIndex-test.tsx b/test/unit-tests/accessibility/RovingTabIndex-test.tsx similarity index 100% rename from test/accessibility/RovingTabIndex-test.tsx rename to test/unit-tests/accessibility/RovingTabIndex-test.tsx diff --git a/test/actions/handlers/viewUserDeviceSettings-test.ts b/test/unit-tests/actions/handlers/viewUserDeviceSettings-test.ts similarity index 100% rename from test/actions/handlers/viewUserDeviceSettings-test.ts rename to test/unit-tests/actions/handlers/viewUserDeviceSettings-test.ts diff --git a/test/audio/Playback-test.ts b/test/unit-tests/audio/Playback-test.ts similarity index 100% rename from test/audio/Playback-test.ts rename to test/unit-tests/audio/Playback-test.ts diff --git a/test/audio/VoiceMessageRecording-test.ts b/test/unit-tests/audio/VoiceMessageRecording-test.ts similarity index 100% rename from test/audio/VoiceMessageRecording-test.ts rename to test/unit-tests/audio/VoiceMessageRecording-test.ts diff --git a/test/audio/VoiceRecording-test.ts b/test/unit-tests/audio/VoiceRecording-test.ts similarity index 100% rename from test/audio/VoiceRecording-test.ts rename to test/unit-tests/audio/VoiceRecording-test.ts diff --git a/test/autocomplete/EmojiProvider-test.ts b/test/unit-tests/autocomplete/EmojiProvider-test.ts similarity index 100% rename from test/autocomplete/EmojiProvider-test.ts rename to test/unit-tests/autocomplete/EmojiProvider-test.ts diff --git a/test/autocomplete/QueryMatcher-test.ts b/test/unit-tests/autocomplete/QueryMatcher-test.ts similarity index 100% rename from test/autocomplete/QueryMatcher-test.ts rename to test/unit-tests/autocomplete/QueryMatcher-test.ts diff --git a/test/autocomplete/RoomProvider-test.ts b/test/unit-tests/autocomplete/RoomProvider-test.ts similarity index 100% rename from test/autocomplete/RoomProvider-test.ts rename to test/unit-tests/autocomplete/RoomProvider-test.ts diff --git a/test/autocomplete/SpaceProvider-test.ts b/test/unit-tests/autocomplete/SpaceProvider-test.ts similarity index 100% rename from test/autocomplete/SpaceProvider-test.ts rename to test/unit-tests/autocomplete/SpaceProvider-test.ts diff --git a/test/components/structures/AutocompleteInput-test.tsx b/test/unit-tests/components/structures/AutocompleteInput-test.tsx similarity index 100% rename from test/components/structures/AutocompleteInput-test.tsx rename to test/unit-tests/components/structures/AutocompleteInput-test.tsx diff --git a/test/components/structures/ContextMenu-test.ts b/test/unit-tests/components/structures/ContextMenu-test.ts similarity index 100% rename from test/components/structures/ContextMenu-test.ts rename to test/unit-tests/components/structures/ContextMenu-test.ts diff --git a/test/components/structures/FilePanel-test.tsx b/test/unit-tests/components/structures/FilePanel-test.tsx similarity index 100% rename from test/components/structures/FilePanel-test.tsx rename to test/unit-tests/components/structures/FilePanel-test.tsx diff --git a/test/components/structures/LargeLoader-test.tsx b/test/unit-tests/components/structures/LargeLoader-test.tsx similarity index 100% rename from test/components/structures/LargeLoader-test.tsx rename to test/unit-tests/components/structures/LargeLoader-test.tsx diff --git a/test/components/structures/LeftPanel-test.tsx b/test/unit-tests/components/structures/LeftPanel-test.tsx similarity index 100% rename from test/components/structures/LeftPanel-test.tsx rename to test/unit-tests/components/structures/LeftPanel-test.tsx diff --git a/test/components/structures/LegacyCallEventGrouper-test.ts b/test/unit-tests/components/structures/LegacyCallEventGrouper-test.ts similarity index 100% rename from test/components/structures/LegacyCallEventGrouper-test.ts rename to test/unit-tests/components/structures/LegacyCallEventGrouper-test.ts diff --git a/test/components/structures/LoggedInView-test.tsx b/test/unit-tests/components/structures/LoggedInView-test.tsx similarity index 100% rename from test/components/structures/LoggedInView-test.tsx rename to test/unit-tests/components/structures/LoggedInView-test.tsx diff --git a/test/components/structures/MainSplit-test.tsx b/test/unit-tests/components/structures/MainSplit-test.tsx similarity index 100% rename from test/components/structures/MainSplit-test.tsx rename to test/unit-tests/components/structures/MainSplit-test.tsx diff --git a/test/components/structures/MatrixChat-test.tsx b/test/unit-tests/components/structures/MatrixChat-test.tsx similarity index 100% rename from test/components/structures/MatrixChat-test.tsx rename to test/unit-tests/components/structures/MatrixChat-test.tsx diff --git a/test/components/structures/MatrixClientContextProvider-test.tsx b/test/unit-tests/components/structures/MatrixClientContextProvider-test.tsx similarity index 100% rename from test/components/structures/MatrixClientContextProvider-test.tsx rename to test/unit-tests/components/structures/MatrixClientContextProvider-test.tsx diff --git a/test/components/structures/MessagePanel-test.tsx b/test/unit-tests/components/structures/MessagePanel-test.tsx similarity index 100% rename from test/components/structures/MessagePanel-test.tsx rename to test/unit-tests/components/structures/MessagePanel-test.tsx diff --git a/test/components/structures/PictureInPictureDragger-test.tsx b/test/unit-tests/components/structures/PictureInPictureDragger-test.tsx similarity index 100% rename from test/components/structures/PictureInPictureDragger-test.tsx rename to test/unit-tests/components/structures/PictureInPictureDragger-test.tsx diff --git a/test/components/structures/PipContainer-test.tsx b/test/unit-tests/components/structures/PipContainer-test.tsx similarity index 100% rename from test/components/structures/PipContainer-test.tsx rename to test/unit-tests/components/structures/PipContainer-test.tsx diff --git a/test/components/structures/ReleaseAnnouncement-test.tsx b/test/unit-tests/components/structures/ReleaseAnnouncement-test.tsx similarity index 100% rename from test/components/structures/ReleaseAnnouncement-test.tsx rename to test/unit-tests/components/structures/ReleaseAnnouncement-test.tsx diff --git a/test/components/structures/RightPanel-test.tsx b/test/unit-tests/components/structures/RightPanel-test.tsx similarity index 100% rename from test/components/structures/RightPanel-test.tsx rename to test/unit-tests/components/structures/RightPanel-test.tsx diff --git a/test/components/structures/RoomSearchView-test.tsx b/test/unit-tests/components/structures/RoomSearchView-test.tsx similarity index 100% rename from test/components/structures/RoomSearchView-test.tsx rename to test/unit-tests/components/structures/RoomSearchView-test.tsx diff --git a/test/components/structures/RoomStatusBar-test.tsx b/test/unit-tests/components/structures/RoomStatusBar-test.tsx similarity index 100% rename from test/components/structures/RoomStatusBar-test.tsx rename to test/unit-tests/components/structures/RoomStatusBar-test.tsx diff --git a/test/components/structures/RoomStatusBarUnsentMessages-test.tsx b/test/unit-tests/components/structures/RoomStatusBarUnsentMessages-test.tsx similarity index 100% rename from test/components/structures/RoomStatusBarUnsentMessages-test.tsx rename to test/unit-tests/components/structures/RoomStatusBarUnsentMessages-test.tsx diff --git a/test/components/structures/RoomView-test.tsx b/test/unit-tests/components/structures/RoomView-test.tsx similarity index 100% rename from test/components/structures/RoomView-test.tsx rename to test/unit-tests/components/structures/RoomView-test.tsx diff --git a/test/components/structures/SpaceHierarchy-test.tsx b/test/unit-tests/components/structures/SpaceHierarchy-test.tsx similarity index 100% rename from test/components/structures/SpaceHierarchy-test.tsx rename to test/unit-tests/components/structures/SpaceHierarchy-test.tsx diff --git a/test/components/structures/TabbedView-test.tsx b/test/unit-tests/components/structures/TabbedView-test.tsx similarity index 100% rename from test/components/structures/TabbedView-test.tsx rename to test/unit-tests/components/structures/TabbedView-test.tsx diff --git a/test/components/structures/ThreadPanel-test.tsx b/test/unit-tests/components/structures/ThreadPanel-test.tsx similarity index 100% rename from test/components/structures/ThreadPanel-test.tsx rename to test/unit-tests/components/structures/ThreadPanel-test.tsx diff --git a/test/components/structures/ThreadView-test.tsx b/test/unit-tests/components/structures/ThreadView-test.tsx similarity index 100% rename from test/components/structures/ThreadView-test.tsx rename to test/unit-tests/components/structures/ThreadView-test.tsx diff --git a/test/components/structures/TimelinePanel-test.tsx b/test/unit-tests/components/structures/TimelinePanel-test.tsx similarity index 100% rename from test/components/structures/TimelinePanel-test.tsx rename to test/unit-tests/components/structures/TimelinePanel-test.tsx diff --git a/test/components/structures/UploadBar-test.tsx b/test/unit-tests/components/structures/UploadBar-test.tsx similarity index 100% rename from test/components/structures/UploadBar-test.tsx rename to test/unit-tests/components/structures/UploadBar-test.tsx diff --git a/test/components/structures/UserMenu-test.tsx b/test/unit-tests/components/structures/UserMenu-test.tsx similarity index 100% rename from test/components/structures/UserMenu-test.tsx rename to test/unit-tests/components/structures/UserMenu-test.tsx diff --git a/test/components/structures/ViewSource-test.tsx b/test/unit-tests/components/structures/ViewSource-test.tsx similarity index 100% rename from test/components/structures/ViewSource-test.tsx rename to test/unit-tests/components/structures/ViewSource-test.tsx diff --git a/test/components/structures/__snapshots__/FilePanel-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/FilePanel-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/FilePanel-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/FilePanel-test.tsx.snap diff --git a/test/components/structures/__snapshots__/MainSplit-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/MainSplit-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/MainSplit-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/MainSplit-test.tsx.snap diff --git a/test/components/structures/__snapshots__/MatrixChat-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/MatrixChat-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/MatrixChat-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/MatrixChat-test.tsx.snap diff --git a/test/components/structures/__snapshots__/MessagePanel-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/MessagePanel-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/MessagePanel-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/MessagePanel-test.tsx.snap diff --git a/test/components/structures/__snapshots__/PictureInPictureDragger-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/PictureInPictureDragger-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/PictureInPictureDragger-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/PictureInPictureDragger-test.tsx.snap diff --git a/test/components/structures/__snapshots__/RoomStatusBar-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/RoomStatusBar-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/RoomStatusBar-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/RoomStatusBar-test.tsx.snap diff --git a/test/components/structures/__snapshots__/RoomView-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/RoomView-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/RoomView-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/RoomView-test.tsx.snap diff --git a/test/components/structures/__snapshots__/SpaceHierarchy-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/SpaceHierarchy-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/SpaceHierarchy-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/SpaceHierarchy-test.tsx.snap diff --git a/test/components/structures/__snapshots__/TabbedView-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/TabbedView-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/TabbedView-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/TabbedView-test.tsx.snap diff --git a/test/components/structures/__snapshots__/ThreadPanel-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/ThreadPanel-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/ThreadPanel-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/ThreadPanel-test.tsx.snap diff --git a/test/components/structures/__snapshots__/UserMenu-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/UserMenu-test.tsx.snap similarity index 100% rename from test/components/structures/__snapshots__/UserMenu-test.tsx.snap rename to test/unit-tests/components/structures/__snapshots__/UserMenu-test.tsx.snap diff --git a/test/components/structures/auth/CompleteSecurity-test.tsx b/test/unit-tests/components/structures/auth/CompleteSecurity-test.tsx similarity index 100% rename from test/components/structures/auth/CompleteSecurity-test.tsx rename to test/unit-tests/components/structures/auth/CompleteSecurity-test.tsx diff --git a/test/components/structures/auth/ForgotPassword-test.tsx b/test/unit-tests/components/structures/auth/ForgotPassword-test.tsx similarity index 100% rename from test/components/structures/auth/ForgotPassword-test.tsx rename to test/unit-tests/components/structures/auth/ForgotPassword-test.tsx diff --git a/test/components/structures/auth/Login-test.tsx b/test/unit-tests/components/structures/auth/Login-test.tsx similarity index 100% rename from test/components/structures/auth/Login-test.tsx rename to test/unit-tests/components/structures/auth/Login-test.tsx diff --git a/test/components/structures/auth/LoginSplashView-test.tsx b/test/unit-tests/components/structures/auth/LoginSplashView-test.tsx similarity index 100% rename from test/components/structures/auth/LoginSplashView-test.tsx rename to test/unit-tests/components/structures/auth/LoginSplashView-test.tsx diff --git a/test/components/structures/auth/Registration-test.tsx b/test/unit-tests/components/structures/auth/Registration-test.tsx similarity index 100% rename from test/components/structures/auth/Registration-test.tsx rename to test/unit-tests/components/structures/auth/Registration-test.tsx diff --git a/test/components/structures/auth/__snapshots__/LoginSplashView-test.tsx.snap b/test/unit-tests/components/structures/auth/__snapshots__/LoginSplashView-test.tsx.snap similarity index 100% rename from test/components/structures/auth/__snapshots__/LoginSplashView-test.tsx.snap rename to test/unit-tests/components/structures/auth/__snapshots__/LoginSplashView-test.tsx.snap diff --git a/test/components/views/Validation-test.ts b/test/unit-tests/components/views/Validation-test.ts similarity index 100% rename from test/components/views/Validation-test.ts rename to test/unit-tests/components/views/Validation-test.ts diff --git a/test/components/views/VerificationShowSas-test.tsx b/test/unit-tests/components/views/VerificationShowSas-test.tsx similarity index 100% rename from test/components/views/VerificationShowSas-test.tsx rename to test/unit-tests/components/views/VerificationShowSas-test.tsx diff --git a/test/components/views/audio_messages/RecordingPlayback-test.tsx b/test/unit-tests/components/views/audio_messages/RecordingPlayback-test.tsx similarity index 100% rename from test/components/views/audio_messages/RecordingPlayback-test.tsx rename to test/unit-tests/components/views/audio_messages/RecordingPlayback-test.tsx diff --git a/test/components/views/audio_messages/SeekBar-test.tsx b/test/unit-tests/components/views/audio_messages/SeekBar-test.tsx similarity index 100% rename from test/components/views/audio_messages/SeekBar-test.tsx rename to test/unit-tests/components/views/audio_messages/SeekBar-test.tsx diff --git a/test/components/views/audio_messages/__snapshots__/SeekBar-test.tsx.snap b/test/unit-tests/components/views/audio_messages/__snapshots__/SeekBar-test.tsx.snap similarity index 100% rename from test/components/views/audio_messages/__snapshots__/SeekBar-test.tsx.snap rename to test/unit-tests/components/views/audio_messages/__snapshots__/SeekBar-test.tsx.snap diff --git a/test/components/views/auth/CountryDropdown-test.tsx b/test/unit-tests/components/views/auth/CountryDropdown-test.tsx similarity index 100% rename from test/components/views/auth/CountryDropdown-test.tsx rename to test/unit-tests/components/views/auth/CountryDropdown-test.tsx diff --git a/test/components/views/auth/InteractiveAuthEntryComponents-test.tsx b/test/unit-tests/components/views/auth/InteractiveAuthEntryComponents-test.tsx similarity index 100% rename from test/components/views/auth/InteractiveAuthEntryComponents-test.tsx rename to test/unit-tests/components/views/auth/InteractiveAuthEntryComponents-test.tsx diff --git a/test/components/views/auth/RegistrationToken-test.tsx b/test/unit-tests/components/views/auth/RegistrationToken-test.tsx similarity index 100% rename from test/components/views/auth/RegistrationToken-test.tsx rename to test/unit-tests/components/views/auth/RegistrationToken-test.tsx diff --git a/test/components/views/auth/__snapshots__/InteractiveAuthEntryComponents-test.tsx.snap b/test/unit-tests/components/views/auth/__snapshots__/InteractiveAuthEntryComponents-test.tsx.snap similarity index 100% rename from test/components/views/auth/__snapshots__/InteractiveAuthEntryComponents-test.tsx.snap rename to test/unit-tests/components/views/auth/__snapshots__/InteractiveAuthEntryComponents-test.tsx.snap diff --git a/test/components/views/avatars/DecoratedRoomAvatar-test.tsx b/test/unit-tests/components/views/avatars/DecoratedRoomAvatar-test.tsx similarity index 100% rename from test/components/views/avatars/DecoratedRoomAvatar-test.tsx rename to test/unit-tests/components/views/avatars/DecoratedRoomAvatar-test.tsx diff --git a/test/components/views/avatars/MemberAvatar-test.tsx b/test/unit-tests/components/views/avatars/MemberAvatar-test.tsx similarity index 100% rename from test/components/views/avatars/MemberAvatar-test.tsx rename to test/unit-tests/components/views/avatars/MemberAvatar-test.tsx diff --git a/test/components/views/avatars/RoomAvatar-test.tsx b/test/unit-tests/components/views/avatars/RoomAvatar-test.tsx similarity index 100% rename from test/components/views/avatars/RoomAvatar-test.tsx rename to test/unit-tests/components/views/avatars/RoomAvatar-test.tsx diff --git a/test/components/views/avatars/WithPresenceIndicator-test.tsx b/test/unit-tests/components/views/avatars/WithPresenceIndicator-test.tsx similarity index 100% rename from test/components/views/avatars/WithPresenceIndicator-test.tsx rename to test/unit-tests/components/views/avatars/WithPresenceIndicator-test.tsx diff --git a/test/components/views/avatars/__snapshots__/DecoratedRoomAvatar-test.tsx.snap b/test/unit-tests/components/views/avatars/__snapshots__/DecoratedRoomAvatar-test.tsx.snap similarity index 100% rename from test/components/views/avatars/__snapshots__/DecoratedRoomAvatar-test.tsx.snap rename to test/unit-tests/components/views/avatars/__snapshots__/DecoratedRoomAvatar-test.tsx.snap diff --git a/test/components/views/avatars/__snapshots__/RoomAvatar-test.tsx.snap b/test/unit-tests/components/views/avatars/__snapshots__/RoomAvatar-test.tsx.snap similarity index 100% rename from test/components/views/avatars/__snapshots__/RoomAvatar-test.tsx.snap rename to test/unit-tests/components/views/avatars/__snapshots__/RoomAvatar-test.tsx.snap diff --git a/test/components/views/avatars/__snapshots__/WithPresenceIndicator-test.tsx.snap b/test/unit-tests/components/views/avatars/__snapshots__/WithPresenceIndicator-test.tsx.snap similarity index 100% rename from test/components/views/avatars/__snapshots__/WithPresenceIndicator-test.tsx.snap rename to test/unit-tests/components/views/avatars/__snapshots__/WithPresenceIndicator-test.tsx.snap diff --git a/test/components/views/beacon/BeaconListItem-test.tsx b/test/unit-tests/components/views/beacon/BeaconListItem-test.tsx similarity index 100% rename from test/components/views/beacon/BeaconListItem-test.tsx rename to test/unit-tests/components/views/beacon/BeaconListItem-test.tsx diff --git a/test/components/views/beacon/BeaconMarker-test.tsx b/test/unit-tests/components/views/beacon/BeaconMarker-test.tsx similarity index 100% rename from test/components/views/beacon/BeaconMarker-test.tsx rename to test/unit-tests/components/views/beacon/BeaconMarker-test.tsx diff --git a/test/components/views/beacon/BeaconStatus-test.tsx b/test/unit-tests/components/views/beacon/BeaconStatus-test.tsx similarity index 100% rename from test/components/views/beacon/BeaconStatus-test.tsx rename to test/unit-tests/components/views/beacon/BeaconStatus-test.tsx diff --git a/test/components/views/beacon/BeaconViewDialog-test.tsx b/test/unit-tests/components/views/beacon/BeaconViewDialog-test.tsx similarity index 100% rename from test/components/views/beacon/BeaconViewDialog-test.tsx rename to test/unit-tests/components/views/beacon/BeaconViewDialog-test.tsx diff --git a/test/components/views/beacon/DialogSidebar-test.tsx b/test/unit-tests/components/views/beacon/DialogSidebar-test.tsx similarity index 100% rename from test/components/views/beacon/DialogSidebar-test.tsx rename to test/unit-tests/components/views/beacon/DialogSidebar-test.tsx diff --git a/test/components/views/beacon/LeftPanelLiveShareWarning-test.tsx b/test/unit-tests/components/views/beacon/LeftPanelLiveShareWarning-test.tsx similarity index 100% rename from test/components/views/beacon/LeftPanelLiveShareWarning-test.tsx rename to test/unit-tests/components/views/beacon/LeftPanelLiveShareWarning-test.tsx diff --git a/test/components/views/beacon/OwnBeaconStatus-test.tsx b/test/unit-tests/components/views/beacon/OwnBeaconStatus-test.tsx similarity index 100% rename from test/components/views/beacon/OwnBeaconStatus-test.tsx rename to test/unit-tests/components/views/beacon/OwnBeaconStatus-test.tsx diff --git a/test/components/views/beacon/RoomCallBanner-test.tsx b/test/unit-tests/components/views/beacon/RoomCallBanner-test.tsx similarity index 100% rename from test/components/views/beacon/RoomCallBanner-test.tsx rename to test/unit-tests/components/views/beacon/RoomCallBanner-test.tsx diff --git a/test/components/views/beacon/ShareLatestLocation-test.tsx b/test/unit-tests/components/views/beacon/ShareLatestLocation-test.tsx similarity index 100% rename from test/components/views/beacon/ShareLatestLocation-test.tsx rename to test/unit-tests/components/views/beacon/ShareLatestLocation-test.tsx diff --git a/test/components/views/beacon/StyledLiveBeaconIcon-test.tsx b/test/unit-tests/components/views/beacon/StyledLiveBeaconIcon-test.tsx similarity index 100% rename from test/components/views/beacon/StyledLiveBeaconIcon-test.tsx rename to test/unit-tests/components/views/beacon/StyledLiveBeaconIcon-test.tsx diff --git a/test/components/views/beacon/__snapshots__/BeaconListItem-test.tsx.snap b/test/unit-tests/components/views/beacon/__snapshots__/BeaconListItem-test.tsx.snap similarity index 100% rename from test/components/views/beacon/__snapshots__/BeaconListItem-test.tsx.snap rename to test/unit-tests/components/views/beacon/__snapshots__/BeaconListItem-test.tsx.snap diff --git a/test/components/views/beacon/__snapshots__/BeaconMarker-test.tsx.snap b/test/unit-tests/components/views/beacon/__snapshots__/BeaconMarker-test.tsx.snap similarity index 100% rename from test/components/views/beacon/__snapshots__/BeaconMarker-test.tsx.snap rename to test/unit-tests/components/views/beacon/__snapshots__/BeaconMarker-test.tsx.snap diff --git a/test/components/views/beacon/__snapshots__/BeaconStatus-test.tsx.snap b/test/unit-tests/components/views/beacon/__snapshots__/BeaconStatus-test.tsx.snap similarity index 100% rename from test/components/views/beacon/__snapshots__/BeaconStatus-test.tsx.snap rename to test/unit-tests/components/views/beacon/__snapshots__/BeaconStatus-test.tsx.snap diff --git a/test/components/views/beacon/__snapshots__/BeaconViewDialog-test.tsx.snap b/test/unit-tests/components/views/beacon/__snapshots__/BeaconViewDialog-test.tsx.snap similarity index 100% rename from test/components/views/beacon/__snapshots__/BeaconViewDialog-test.tsx.snap rename to test/unit-tests/components/views/beacon/__snapshots__/BeaconViewDialog-test.tsx.snap diff --git a/test/components/views/beacon/__snapshots__/DialogSidebar-test.tsx.snap b/test/unit-tests/components/views/beacon/__snapshots__/DialogSidebar-test.tsx.snap similarity index 100% rename from test/components/views/beacon/__snapshots__/DialogSidebar-test.tsx.snap rename to test/unit-tests/components/views/beacon/__snapshots__/DialogSidebar-test.tsx.snap diff --git a/test/components/views/beacon/__snapshots__/LeftPanelLiveShareWarning-test.tsx.snap b/test/unit-tests/components/views/beacon/__snapshots__/LeftPanelLiveShareWarning-test.tsx.snap similarity index 100% rename from test/components/views/beacon/__snapshots__/LeftPanelLiveShareWarning-test.tsx.snap rename to test/unit-tests/components/views/beacon/__snapshots__/LeftPanelLiveShareWarning-test.tsx.snap diff --git a/test/components/views/beacon/__snapshots__/OwnBeaconStatus-test.tsx.snap b/test/unit-tests/components/views/beacon/__snapshots__/OwnBeaconStatus-test.tsx.snap similarity index 100% rename from test/components/views/beacon/__snapshots__/OwnBeaconStatus-test.tsx.snap rename to test/unit-tests/components/views/beacon/__snapshots__/OwnBeaconStatus-test.tsx.snap diff --git a/test/components/views/beacon/__snapshots__/ShareLatestLocation-test.tsx.snap b/test/unit-tests/components/views/beacon/__snapshots__/ShareLatestLocation-test.tsx.snap similarity index 100% rename from test/components/views/beacon/__snapshots__/ShareLatestLocation-test.tsx.snap rename to test/unit-tests/components/views/beacon/__snapshots__/ShareLatestLocation-test.tsx.snap diff --git a/test/components/views/beacon/__snapshots__/StyledLiveBeaconIcon-test.tsx.snap b/test/unit-tests/components/views/beacon/__snapshots__/StyledLiveBeaconIcon-test.tsx.snap similarity index 100% rename from test/components/views/beacon/__snapshots__/StyledLiveBeaconIcon-test.tsx.snap rename to test/unit-tests/components/views/beacon/__snapshots__/StyledLiveBeaconIcon-test.tsx.snap diff --git a/test/components/views/beta/BetaCard-test.tsx b/test/unit-tests/components/views/beta/BetaCard-test.tsx similarity index 100% rename from test/components/views/beta/BetaCard-test.tsx rename to test/unit-tests/components/views/beta/BetaCard-test.tsx diff --git a/test/components/views/context_menus/ContextMenu-test.tsx b/test/unit-tests/components/views/context_menus/ContextMenu-test.tsx similarity index 100% rename from test/components/views/context_menus/ContextMenu-test.tsx rename to test/unit-tests/components/views/context_menus/ContextMenu-test.tsx diff --git a/test/components/views/context_menus/EmbeddedPage-test.tsx b/test/unit-tests/components/views/context_menus/EmbeddedPage-test.tsx similarity index 100% rename from test/components/views/context_menus/EmbeddedPage-test.tsx rename to test/unit-tests/components/views/context_menus/EmbeddedPage-test.tsx diff --git a/test/components/views/context_menus/MessageContextMenu-test.tsx b/test/unit-tests/components/views/context_menus/MessageContextMenu-test.tsx similarity index 100% rename from test/components/views/context_menus/MessageContextMenu-test.tsx rename to test/unit-tests/components/views/context_menus/MessageContextMenu-test.tsx diff --git a/test/components/views/context_menus/RoomGeneralContextMenu-test.tsx b/test/unit-tests/components/views/context_menus/RoomGeneralContextMenu-test.tsx similarity index 100% rename from test/components/views/context_menus/RoomGeneralContextMenu-test.tsx rename to test/unit-tests/components/views/context_menus/RoomGeneralContextMenu-test.tsx diff --git a/test/components/views/context_menus/SpaceContextMenu-test.tsx b/test/unit-tests/components/views/context_menus/SpaceContextMenu-test.tsx similarity index 100% rename from test/components/views/context_menus/SpaceContextMenu-test.tsx rename to test/unit-tests/components/views/context_menus/SpaceContextMenu-test.tsx diff --git a/test/components/views/context_menus/ThreadListContextMenu-test.tsx b/test/unit-tests/components/views/context_menus/ThreadListContextMenu-test.tsx similarity index 100% rename from test/components/views/context_menus/ThreadListContextMenu-test.tsx rename to test/unit-tests/components/views/context_menus/ThreadListContextMenu-test.tsx diff --git a/test/components/views/context_menus/WidgetContextMenu-test.tsx b/test/unit-tests/components/views/context_menus/WidgetContextMenu-test.tsx similarity index 100% rename from test/components/views/context_menus/WidgetContextMenu-test.tsx rename to test/unit-tests/components/views/context_menus/WidgetContextMenu-test.tsx diff --git a/test/components/views/context_menus/__snapshots__/EmbeddedPage-test.tsx.snap b/test/unit-tests/components/views/context_menus/__snapshots__/EmbeddedPage-test.tsx.snap similarity index 100% rename from test/components/views/context_menus/__snapshots__/EmbeddedPage-test.tsx.snap rename to test/unit-tests/components/views/context_menus/__snapshots__/EmbeddedPage-test.tsx.snap diff --git a/test/components/views/context_menus/__snapshots__/RoomGeneralContextMenu-test.tsx.snap b/test/unit-tests/components/views/context_menus/__snapshots__/RoomGeneralContextMenu-test.tsx.snap similarity index 100% rename from test/components/views/context_menus/__snapshots__/RoomGeneralContextMenu-test.tsx.snap rename to test/unit-tests/components/views/context_menus/__snapshots__/RoomGeneralContextMenu-test.tsx.snap diff --git a/test/components/views/context_menus/__snapshots__/SpaceContextMenu-test.tsx.snap b/test/unit-tests/components/views/context_menus/__snapshots__/SpaceContextMenu-test.tsx.snap similarity index 100% rename from test/components/views/context_menus/__snapshots__/SpaceContextMenu-test.tsx.snap rename to test/unit-tests/components/views/context_menus/__snapshots__/SpaceContextMenu-test.tsx.snap diff --git a/test/components/views/dialogs/AccessSecretStorageDialog-test.tsx b/test/unit-tests/components/views/dialogs/AccessSecretStorageDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/AccessSecretStorageDialog-test.tsx rename to test/unit-tests/components/views/dialogs/AccessSecretStorageDialog-test.tsx diff --git a/test/components/views/dialogs/AppDownloadDialog-test.tsx b/test/unit-tests/components/views/dialogs/AppDownloadDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/AppDownloadDialog-test.tsx rename to test/unit-tests/components/views/dialogs/AppDownloadDialog-test.tsx diff --git a/test/components/views/dialogs/AskInviteAnywayDialog-test.tsx b/test/unit-tests/components/views/dialogs/AskInviteAnywayDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/AskInviteAnywayDialog-test.tsx rename to test/unit-tests/components/views/dialogs/AskInviteAnywayDialog-test.tsx diff --git a/test/components/views/dialogs/ChangelogDialog-test.tsx b/test/unit-tests/components/views/dialogs/ChangelogDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/ChangelogDialog-test.tsx rename to test/unit-tests/components/views/dialogs/ChangelogDialog-test.tsx diff --git a/test/components/views/dialogs/ConfirmRedactDialog-test.tsx b/test/unit-tests/components/views/dialogs/ConfirmRedactDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/ConfirmRedactDialog-test.tsx rename to test/unit-tests/components/views/dialogs/ConfirmRedactDialog-test.tsx diff --git a/test/components/views/dialogs/ConfirmUserActionDialog-test.tsx b/test/unit-tests/components/views/dialogs/ConfirmUserActionDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/ConfirmUserActionDialog-test.tsx rename to test/unit-tests/components/views/dialogs/ConfirmUserActionDialog-test.tsx diff --git a/test/components/views/dialogs/CreateRoomDialog-test.tsx b/test/unit-tests/components/views/dialogs/CreateRoomDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/CreateRoomDialog-test.tsx rename to test/unit-tests/components/views/dialogs/CreateRoomDialog-test.tsx diff --git a/test/components/views/dialogs/DevtoolsDialog-test.tsx b/test/unit-tests/components/views/dialogs/DevtoolsDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/DevtoolsDialog-test.tsx rename to test/unit-tests/components/views/dialogs/DevtoolsDialog-test.tsx diff --git a/test/components/views/dialogs/ExportDialog-test.tsx b/test/unit-tests/components/views/dialogs/ExportDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/ExportDialog-test.tsx rename to test/unit-tests/components/views/dialogs/ExportDialog-test.tsx diff --git a/test/components/views/dialogs/FeedbackDialog-test.tsx b/test/unit-tests/components/views/dialogs/FeedbackDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/FeedbackDialog-test.tsx rename to test/unit-tests/components/views/dialogs/FeedbackDialog-test.tsx diff --git a/test/components/views/dialogs/ForwardDialog-test.tsx b/test/unit-tests/components/views/dialogs/ForwardDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/ForwardDialog-test.tsx rename to test/unit-tests/components/views/dialogs/ForwardDialog-test.tsx diff --git a/test/components/views/dialogs/IncomingSasDialog-test.tsx b/test/unit-tests/components/views/dialogs/IncomingSasDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/IncomingSasDialog-test.tsx rename to test/unit-tests/components/views/dialogs/IncomingSasDialog-test.tsx diff --git a/test/components/views/dialogs/InteractiveAuthDialog-test.tsx b/test/unit-tests/components/views/dialogs/InteractiveAuthDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/InteractiveAuthDialog-test.tsx rename to test/unit-tests/components/views/dialogs/InteractiveAuthDialog-test.tsx diff --git a/test/components/views/dialogs/InviteDialog-test.tsx b/test/unit-tests/components/views/dialogs/InviteDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/InviteDialog-test.tsx rename to test/unit-tests/components/views/dialogs/InviteDialog-test.tsx diff --git a/test/components/views/dialogs/LogoutDialog-test.tsx b/test/unit-tests/components/views/dialogs/LogoutDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/LogoutDialog-test.tsx rename to test/unit-tests/components/views/dialogs/LogoutDialog-test.tsx diff --git a/test/components/views/dialogs/ManageRestrictedJoinRuleDialog-test.tsx b/test/unit-tests/components/views/dialogs/ManageRestrictedJoinRuleDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/ManageRestrictedJoinRuleDialog-test.tsx rename to test/unit-tests/components/views/dialogs/ManageRestrictedJoinRuleDialog-test.tsx diff --git a/test/components/views/dialogs/ManualDeviceKeyVerificationDialog-test.tsx b/test/unit-tests/components/views/dialogs/ManualDeviceKeyVerificationDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/ManualDeviceKeyVerificationDialog-test.tsx rename to test/unit-tests/components/views/dialogs/ManualDeviceKeyVerificationDialog-test.tsx diff --git a/test/components/views/dialogs/MessageEditHistoryDialog-test.tsx b/test/unit-tests/components/views/dialogs/MessageEditHistoryDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/MessageEditHistoryDialog-test.tsx rename to test/unit-tests/components/views/dialogs/MessageEditHistoryDialog-test.tsx diff --git a/test/components/views/dialogs/RoomSettingsDialog-test.tsx b/test/unit-tests/components/views/dialogs/RoomSettingsDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/RoomSettingsDialog-test.tsx rename to test/unit-tests/components/views/dialogs/RoomSettingsDialog-test.tsx diff --git a/test/components/views/dialogs/ServerPickerDialog-test.tsx b/test/unit-tests/components/views/dialogs/ServerPickerDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/ServerPickerDialog-test.tsx rename to test/unit-tests/components/views/dialogs/ServerPickerDialog-test.tsx diff --git a/test/components/views/dialogs/ShareDialog-test.tsx b/test/unit-tests/components/views/dialogs/ShareDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/ShareDialog-test.tsx rename to test/unit-tests/components/views/dialogs/ShareDialog-test.tsx diff --git a/test/components/views/dialogs/SpotlightDialog-test.tsx b/test/unit-tests/components/views/dialogs/SpotlightDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/SpotlightDialog-test.tsx rename to test/unit-tests/components/views/dialogs/SpotlightDialog-test.tsx diff --git a/test/components/views/dialogs/UnpinAllDialog-test.tsx b/test/unit-tests/components/views/dialogs/UnpinAllDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/UnpinAllDialog-test.tsx rename to test/unit-tests/components/views/dialogs/UnpinAllDialog-test.tsx diff --git a/test/components/views/dialogs/UserSettingsDialog-test.tsx b/test/unit-tests/components/views/dialogs/UserSettingsDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/UserSettingsDialog-test.tsx rename to test/unit-tests/components/views/dialogs/UserSettingsDialog-test.tsx diff --git a/test/components/views/dialogs/__snapshots__/AppDownloadDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/AppDownloadDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/AppDownloadDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/AppDownloadDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/ChangelogDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/ChangelogDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/ChangelogDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/ChangelogDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/ConfirmUserActionDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/ConfirmUserActionDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/ConfirmUserActionDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/ConfirmUserActionDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/DevtoolsDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/DevtoolsDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/DevtoolsDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/DevtoolsDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/ExportDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/ExportDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/ExportDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/ExportDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/FeedbackDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/FeedbackDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/FeedbackDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/FeedbackDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/LogoutDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/LogoutDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/LogoutDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/LogoutDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/ManageRestrictedJoinRuleDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/ManageRestrictedJoinRuleDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/ManageRestrictedJoinRuleDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/ManageRestrictedJoinRuleDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/ManualDeviceKeyVerificationDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/ManualDeviceKeyVerificationDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/ManualDeviceKeyVerificationDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/ManualDeviceKeyVerificationDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/MessageEditHistoryDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/MessageEditHistoryDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/MessageEditHistoryDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/MessageEditHistoryDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/RoomSettingsDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/RoomSettingsDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/RoomSettingsDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/RoomSettingsDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/ServerPickerDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/ServerPickerDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/ServerPickerDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/ServerPickerDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/UnpinAllDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/UnpinAllDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/UnpinAllDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/UnpinAllDialog-test.tsx.snap diff --git a/test/components/views/dialogs/__snapshots__/UserSettingsDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/UserSettingsDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/__snapshots__/UserSettingsDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/__snapshots__/UserSettingsDialog-test.tsx.snap diff --git a/test/components/views/dialogs/devtools/Event-test.tsx b/test/unit-tests/components/views/dialogs/devtools/Event-test.tsx similarity index 100% rename from test/components/views/dialogs/devtools/Event-test.tsx rename to test/unit-tests/components/views/dialogs/devtools/Event-test.tsx diff --git a/test/components/views/dialogs/devtools/RoomNotifications-test.tsx b/test/unit-tests/components/views/dialogs/devtools/RoomNotifications-test.tsx similarity index 100% rename from test/components/views/dialogs/devtools/RoomNotifications-test.tsx rename to test/unit-tests/components/views/dialogs/devtools/RoomNotifications-test.tsx diff --git a/test/components/views/dialogs/devtools/__snapshots__/Event-test.tsx.snap b/test/unit-tests/components/views/dialogs/devtools/__snapshots__/Event-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/devtools/__snapshots__/Event-test.tsx.snap rename to test/unit-tests/components/views/dialogs/devtools/__snapshots__/Event-test.tsx.snap diff --git a/test/components/views/dialogs/devtools/__snapshots__/RoomNotifications-test.tsx.snap b/test/unit-tests/components/views/dialogs/devtools/__snapshots__/RoomNotifications-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/devtools/__snapshots__/RoomNotifications-test.tsx.snap rename to test/unit-tests/components/views/dialogs/devtools/__snapshots__/RoomNotifications-test.tsx.snap diff --git a/test/components/views/dialogs/security/CreateKeyBackupDialog-test.tsx b/test/unit-tests/components/views/dialogs/security/CreateKeyBackupDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/security/CreateKeyBackupDialog-test.tsx rename to test/unit-tests/components/views/dialogs/security/CreateKeyBackupDialog-test.tsx diff --git a/test/components/views/dialogs/security/CreateSecretStorageDialog-test.tsx b/test/unit-tests/components/views/dialogs/security/CreateSecretStorageDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/security/CreateSecretStorageDialog-test.tsx rename to test/unit-tests/components/views/dialogs/security/CreateSecretStorageDialog-test.tsx diff --git a/test/components/views/dialogs/security/ExportE2eKeysDialog-test.tsx b/test/unit-tests/components/views/dialogs/security/ExportE2eKeysDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/security/ExportE2eKeysDialog-test.tsx rename to test/unit-tests/components/views/dialogs/security/ExportE2eKeysDialog-test.tsx diff --git a/test/components/views/dialogs/security/ImportE2eKeysDialog-test.tsx b/test/unit-tests/components/views/dialogs/security/ImportE2eKeysDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/security/ImportE2eKeysDialog-test.tsx rename to test/unit-tests/components/views/dialogs/security/ImportE2eKeysDialog-test.tsx diff --git a/test/components/views/dialogs/security/RestoreKeyBackupDialog-test.tsx b/test/unit-tests/components/views/dialogs/security/RestoreKeyBackupDialog-test.tsx similarity index 100% rename from test/components/views/dialogs/security/RestoreKeyBackupDialog-test.tsx rename to test/unit-tests/components/views/dialogs/security/RestoreKeyBackupDialog-test.tsx diff --git a/test/components/views/dialogs/security/__snapshots__/CreateKeyBackupDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/security/__snapshots__/CreateKeyBackupDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/security/__snapshots__/CreateKeyBackupDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/security/__snapshots__/CreateKeyBackupDialog-test.tsx.snap diff --git a/test/components/views/dialogs/security/__snapshots__/CreateSecretStorageDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/security/__snapshots__/CreateSecretStorageDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/security/__snapshots__/CreateSecretStorageDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/security/__snapshots__/CreateSecretStorageDialog-test.tsx.snap diff --git a/test/components/views/dialogs/security/__snapshots__/ExportE2eKeysDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/security/__snapshots__/ExportE2eKeysDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/security/__snapshots__/ExportE2eKeysDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/security/__snapshots__/ExportE2eKeysDialog-test.tsx.snap diff --git a/test/components/views/dialogs/security/__snapshots__/ImportE2eKeysDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/security/__snapshots__/ImportE2eKeysDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/security/__snapshots__/ImportE2eKeysDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/security/__snapshots__/ImportE2eKeysDialog-test.tsx.snap diff --git a/test/components/views/dialogs/security/__snapshots__/RestoreKeyBackupDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/security/__snapshots__/RestoreKeyBackupDialog-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/security/__snapshots__/RestoreKeyBackupDialog-test.tsx.snap rename to test/unit-tests/components/views/dialogs/security/__snapshots__/RestoreKeyBackupDialog-test.tsx.snap diff --git a/test/components/views/dialogs/spotlight/PublicRoomResultDetails-test.tsx b/test/unit-tests/components/views/dialogs/spotlight/PublicRoomResultDetails-test.tsx similarity index 100% rename from test/components/views/dialogs/spotlight/PublicRoomResultDetails-test.tsx rename to test/unit-tests/components/views/dialogs/spotlight/PublicRoomResultDetails-test.tsx diff --git a/test/components/views/dialogs/spotlight/RoomResultContextMenus-test.tsx b/test/unit-tests/components/views/dialogs/spotlight/RoomResultContextMenus-test.tsx similarity index 100% rename from test/components/views/dialogs/spotlight/RoomResultContextMenus-test.tsx rename to test/unit-tests/components/views/dialogs/spotlight/RoomResultContextMenus-test.tsx diff --git a/test/components/views/dialogs/spotlight/__snapshots__/PublicRoomResultDetails-test.tsx.snap b/test/unit-tests/components/views/dialogs/spotlight/__snapshots__/PublicRoomResultDetails-test.tsx.snap similarity index 100% rename from test/components/views/dialogs/spotlight/__snapshots__/PublicRoomResultDetails-test.tsx.snap rename to test/unit-tests/components/views/dialogs/spotlight/__snapshots__/PublicRoomResultDetails-test.tsx.snap diff --git a/test/components/views/elements/AccessibleButton-test.tsx b/test/unit-tests/components/views/elements/AccessibleButton-test.tsx similarity index 100% rename from test/components/views/elements/AccessibleButton-test.tsx rename to test/unit-tests/components/views/elements/AccessibleButton-test.tsx diff --git a/test/components/views/elements/AppTile-test.tsx b/test/unit-tests/components/views/elements/AppTile-test.tsx similarity index 100% rename from test/components/views/elements/AppTile-test.tsx rename to test/unit-tests/components/views/elements/AppTile-test.tsx diff --git a/test/components/views/elements/DesktopCapturerSourcePicker-test.tsx b/test/unit-tests/components/views/elements/DesktopCapturerSourcePicker-test.tsx similarity index 100% rename from test/components/views/elements/DesktopCapturerSourcePicker-test.tsx rename to test/unit-tests/components/views/elements/DesktopCapturerSourcePicker-test.tsx diff --git a/test/components/views/elements/EffectsOverlay-test.tsx b/test/unit-tests/components/views/elements/EffectsOverlay-test.tsx similarity index 100% rename from test/components/views/elements/EffectsOverlay-test.tsx rename to test/unit-tests/components/views/elements/EffectsOverlay-test.tsx diff --git a/test/components/views/elements/EventListSummary-test.tsx b/test/unit-tests/components/views/elements/EventListSummary-test.tsx similarity index 100% rename from test/components/views/elements/EventListSummary-test.tsx rename to test/unit-tests/components/views/elements/EventListSummary-test.tsx diff --git a/test/components/views/elements/ExternalLink-test.tsx b/test/unit-tests/components/views/elements/ExternalLink-test.tsx similarity index 100% rename from test/components/views/elements/ExternalLink-test.tsx rename to test/unit-tests/components/views/elements/ExternalLink-test.tsx diff --git a/test/components/views/elements/FacePile-test.tsx b/test/unit-tests/components/views/elements/FacePile-test.tsx similarity index 100% rename from test/components/views/elements/FacePile-test.tsx rename to test/unit-tests/components/views/elements/FacePile-test.tsx diff --git a/test/components/views/elements/Field-test.tsx b/test/unit-tests/components/views/elements/Field-test.tsx similarity index 100% rename from test/components/views/elements/Field-test.tsx rename to test/unit-tests/components/views/elements/Field-test.tsx diff --git a/test/components/views/elements/FilterDropdown-test.tsx b/test/unit-tests/components/views/elements/FilterDropdown-test.tsx similarity index 100% rename from test/components/views/elements/FilterDropdown-test.tsx rename to test/unit-tests/components/views/elements/FilterDropdown-test.tsx diff --git a/test/components/views/elements/FilterTabGroup-test.tsx b/test/unit-tests/components/views/elements/FilterTabGroup-test.tsx similarity index 100% rename from test/components/views/elements/FilterTabGroup-test.tsx rename to test/unit-tests/components/views/elements/FilterTabGroup-test.tsx diff --git a/test/components/views/elements/ImageView-test.tsx b/test/unit-tests/components/views/elements/ImageView-test.tsx similarity index 100% rename from test/components/views/elements/ImageView-test.tsx rename to test/unit-tests/components/views/elements/ImageView-test.tsx diff --git a/test/components/views/elements/InfoTooltip-test.tsx b/test/unit-tests/components/views/elements/InfoTooltip-test.tsx similarity index 100% rename from test/components/views/elements/InfoTooltip-test.tsx rename to test/unit-tests/components/views/elements/InfoTooltip-test.tsx diff --git a/test/components/views/elements/InteractiveTooltip-test.ts b/test/unit-tests/components/views/elements/InteractiveTooltip-test.ts similarity index 100% rename from test/components/views/elements/InteractiveTooltip-test.ts rename to test/unit-tests/components/views/elements/InteractiveTooltip-test.ts diff --git a/test/components/views/elements/LabelledCheckbox-test.tsx b/test/unit-tests/components/views/elements/LabelledCheckbox-test.tsx similarity index 100% rename from test/components/views/elements/LabelledCheckbox-test.tsx rename to test/unit-tests/components/views/elements/LabelledCheckbox-test.tsx diff --git a/test/components/views/elements/LearnMore-test.tsx b/test/unit-tests/components/views/elements/LearnMore-test.tsx similarity index 100% rename from test/components/views/elements/LearnMore-test.tsx rename to test/unit-tests/components/views/elements/LearnMore-test.tsx diff --git a/test/components/views/elements/Pill-test.tsx b/test/unit-tests/components/views/elements/Pill-test.tsx similarity index 100% rename from test/components/views/elements/Pill-test.tsx rename to test/unit-tests/components/views/elements/Pill-test.tsx diff --git a/test/components/views/elements/PollCreateDialog-test.tsx b/test/unit-tests/components/views/elements/PollCreateDialog-test.tsx similarity index 100% rename from test/components/views/elements/PollCreateDialog-test.tsx rename to test/unit-tests/components/views/elements/PollCreateDialog-test.tsx diff --git a/test/components/views/elements/PowerSelector-test.tsx b/test/unit-tests/components/views/elements/PowerSelector-test.tsx similarity index 100% rename from test/components/views/elements/PowerSelector-test.tsx rename to test/unit-tests/components/views/elements/PowerSelector-test.tsx diff --git a/test/components/views/elements/ProgressBar-test.tsx b/test/unit-tests/components/views/elements/ProgressBar-test.tsx similarity index 100% rename from test/components/views/elements/ProgressBar-test.tsx rename to test/unit-tests/components/views/elements/ProgressBar-test.tsx diff --git a/test/components/views/elements/QRCode-test.tsx b/test/unit-tests/components/views/elements/QRCode-test.tsx similarity index 100% rename from test/components/views/elements/QRCode-test.tsx rename to test/unit-tests/components/views/elements/QRCode-test.tsx diff --git a/test/components/views/elements/ReplyChain-test.tsx b/test/unit-tests/components/views/elements/ReplyChain-test.tsx similarity index 100% rename from test/components/views/elements/ReplyChain-test.tsx rename to test/unit-tests/components/views/elements/ReplyChain-test.tsx diff --git a/test/components/views/elements/RoomFacePile-test.tsx b/test/unit-tests/components/views/elements/RoomFacePile-test.tsx similarity index 100% rename from test/components/views/elements/RoomFacePile-test.tsx rename to test/unit-tests/components/views/elements/RoomFacePile-test.tsx diff --git a/test/components/views/elements/RoomTopic-test.tsx b/test/unit-tests/components/views/elements/RoomTopic-test.tsx similarity index 100% rename from test/components/views/elements/RoomTopic-test.tsx rename to test/unit-tests/components/views/elements/RoomTopic-test.tsx diff --git a/test/components/views/elements/SearchWarning-test.tsx b/test/unit-tests/components/views/elements/SearchWarning-test.tsx similarity index 100% rename from test/components/views/elements/SearchWarning-test.tsx rename to test/unit-tests/components/views/elements/SearchWarning-test.tsx diff --git a/test/components/views/elements/SpellCheckLanguagesDropdown-test.tsx b/test/unit-tests/components/views/elements/SpellCheckLanguagesDropdown-test.tsx similarity index 100% rename from test/components/views/elements/SpellCheckLanguagesDropdown-test.tsx rename to test/unit-tests/components/views/elements/SpellCheckLanguagesDropdown-test.tsx diff --git a/test/components/views/elements/StyledRadioGroup-test.tsx b/test/unit-tests/components/views/elements/StyledRadioGroup-test.tsx similarity index 100% rename from test/components/views/elements/StyledRadioGroup-test.tsx rename to test/unit-tests/components/views/elements/StyledRadioGroup-test.tsx diff --git a/test/components/views/elements/SyntaxHighlight-test.tsx b/test/unit-tests/components/views/elements/SyntaxHighlight-test.tsx similarity index 100% rename from test/components/views/elements/SyntaxHighlight-test.tsx rename to test/unit-tests/components/views/elements/SyntaxHighlight-test.tsx diff --git a/test/components/views/elements/__snapshots__/AccessibleButton-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/AccessibleButton-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/AccessibleButton-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/AccessibleButton-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/AppTile-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/AppTile-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/AppTile-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/AppTile-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/EffectsOverlay-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/EffectsOverlay-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/EffectsOverlay-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/EffectsOverlay-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/ExternalLink-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/ExternalLink-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/ExternalLink-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/ExternalLink-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/FacePile-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/FacePile-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/FacePile-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/FacePile-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/FilterDropdown-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/FilterDropdown-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/FilterDropdown-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/FilterDropdown-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/FilterTabGroup-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/FilterTabGroup-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/FilterTabGroup-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/FilterTabGroup-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/ImageView-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/ImageView-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/ImageView-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/ImageView-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/InfoTooltip-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/InfoTooltip-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/InfoTooltip-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/InfoTooltip-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/LabelledCheckbox-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/LabelledCheckbox-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/LabelledCheckbox-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/LabelledCheckbox-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/LearnMore-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/LearnMore-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/LearnMore-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/LearnMore-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/Pill-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/Pill-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/Pill-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/Pill-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/PollCreateDialog-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/PollCreateDialog-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/PollCreateDialog-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/PollCreateDialog-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/QRCode-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/QRCode-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/QRCode-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/QRCode-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/RoomFacePile-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/RoomFacePile-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/RoomFacePile-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/RoomFacePile-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/SearchWarning-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/SearchWarning-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/SearchWarning-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/SearchWarning-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/SpellCheckLanguagesDropdown-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/SpellCheckLanguagesDropdown-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/SpellCheckLanguagesDropdown-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/SpellCheckLanguagesDropdown-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/StyledRadioGroup-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/StyledRadioGroup-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/StyledRadioGroup-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/StyledRadioGroup-test.tsx.snap diff --git a/test/components/views/elements/__snapshots__/SyntaxHighlight-test.tsx.snap b/test/unit-tests/components/views/elements/__snapshots__/SyntaxHighlight-test.tsx.snap similarity index 100% rename from test/components/views/elements/__snapshots__/SyntaxHighlight-test.tsx.snap rename to test/unit-tests/components/views/elements/__snapshots__/SyntaxHighlight-test.tsx.snap diff --git a/test/components/views/elements/crypto/VerificationQRCode-test.tsx b/test/unit-tests/components/views/elements/crypto/VerificationQRCode-test.tsx similarity index 100% rename from test/components/views/elements/crypto/VerificationQRCode-test.tsx rename to test/unit-tests/components/views/elements/crypto/VerificationQRCode-test.tsx diff --git a/test/components/views/elements/crypto/__snapshots__/VerificationQRCode-test.tsx.snap b/test/unit-tests/components/views/elements/crypto/__snapshots__/VerificationQRCode-test.tsx.snap similarity index 100% rename from test/components/views/elements/crypto/__snapshots__/VerificationQRCode-test.tsx.snap rename to test/unit-tests/components/views/elements/crypto/__snapshots__/VerificationQRCode-test.tsx.snap diff --git a/test/components/views/emojipicker/EmojiPicker-test.tsx b/test/unit-tests/components/views/emojipicker/EmojiPicker-test.tsx similarity index 100% rename from test/components/views/emojipicker/EmojiPicker-test.tsx rename to test/unit-tests/components/views/emojipicker/EmojiPicker-test.tsx diff --git a/test/components/views/location/LiveDurationDropdown-test.tsx b/test/unit-tests/components/views/location/LiveDurationDropdown-test.tsx similarity index 100% rename from test/components/views/location/LiveDurationDropdown-test.tsx rename to test/unit-tests/components/views/location/LiveDurationDropdown-test.tsx diff --git a/test/components/views/location/LocationPicker-test.tsx b/test/unit-tests/components/views/location/LocationPicker-test.tsx similarity index 100% rename from test/components/views/location/LocationPicker-test.tsx rename to test/unit-tests/components/views/location/LocationPicker-test.tsx diff --git a/test/components/views/location/LocationShareMenu-test.tsx b/test/unit-tests/components/views/location/LocationShareMenu-test.tsx similarity index 100% rename from test/components/views/location/LocationShareMenu-test.tsx rename to test/unit-tests/components/views/location/LocationShareMenu-test.tsx diff --git a/test/components/views/location/LocationViewDialog-test.tsx b/test/unit-tests/components/views/location/LocationViewDialog-test.tsx similarity index 100% rename from test/components/views/location/LocationViewDialog-test.tsx rename to test/unit-tests/components/views/location/LocationViewDialog-test.tsx diff --git a/test/components/views/location/Map-test.tsx b/test/unit-tests/components/views/location/Map-test.tsx similarity index 100% rename from test/components/views/location/Map-test.tsx rename to test/unit-tests/components/views/location/Map-test.tsx diff --git a/test/components/views/location/MapError-test.tsx b/test/unit-tests/components/views/location/MapError-test.tsx similarity index 100% rename from test/components/views/location/MapError-test.tsx rename to test/unit-tests/components/views/location/MapError-test.tsx diff --git a/test/components/views/location/Marker-test.tsx b/test/unit-tests/components/views/location/Marker-test.tsx similarity index 100% rename from test/components/views/location/Marker-test.tsx rename to test/unit-tests/components/views/location/Marker-test.tsx diff --git a/test/components/views/location/SmartMarker-test.tsx b/test/unit-tests/components/views/location/SmartMarker-test.tsx similarity index 100% rename from test/components/views/location/SmartMarker-test.tsx rename to test/unit-tests/components/views/location/SmartMarker-test.tsx diff --git a/test/components/views/location/ZoomButtons-test.tsx b/test/unit-tests/components/views/location/ZoomButtons-test.tsx similarity index 100% rename from test/components/views/location/ZoomButtons-test.tsx rename to test/unit-tests/components/views/location/ZoomButtons-test.tsx diff --git a/test/components/views/location/__snapshots__/LocationPicker-test.tsx.snap b/test/unit-tests/components/views/location/__snapshots__/LocationPicker-test.tsx.snap similarity index 100% rename from test/components/views/location/__snapshots__/LocationPicker-test.tsx.snap rename to test/unit-tests/components/views/location/__snapshots__/LocationPicker-test.tsx.snap diff --git a/test/components/views/location/__snapshots__/LocationShareMenu-test.tsx.snap b/test/unit-tests/components/views/location/__snapshots__/LocationShareMenu-test.tsx.snap similarity index 100% rename from test/components/views/location/__snapshots__/LocationShareMenu-test.tsx.snap rename to test/unit-tests/components/views/location/__snapshots__/LocationShareMenu-test.tsx.snap diff --git a/test/components/views/location/__snapshots__/LocationViewDialog-test.tsx.snap b/test/unit-tests/components/views/location/__snapshots__/LocationViewDialog-test.tsx.snap similarity index 100% rename from test/components/views/location/__snapshots__/LocationViewDialog-test.tsx.snap rename to test/unit-tests/components/views/location/__snapshots__/LocationViewDialog-test.tsx.snap diff --git a/test/components/views/location/__snapshots__/MapError-test.tsx.snap b/test/unit-tests/components/views/location/__snapshots__/MapError-test.tsx.snap similarity index 100% rename from test/components/views/location/__snapshots__/MapError-test.tsx.snap rename to test/unit-tests/components/views/location/__snapshots__/MapError-test.tsx.snap diff --git a/test/components/views/location/__snapshots__/Marker-test.tsx.snap b/test/unit-tests/components/views/location/__snapshots__/Marker-test.tsx.snap similarity index 100% rename from test/components/views/location/__snapshots__/Marker-test.tsx.snap rename to test/unit-tests/components/views/location/__snapshots__/Marker-test.tsx.snap diff --git a/test/components/views/location/__snapshots__/SmartMarker-test.tsx.snap b/test/unit-tests/components/views/location/__snapshots__/SmartMarker-test.tsx.snap similarity index 100% rename from test/components/views/location/__snapshots__/SmartMarker-test.tsx.snap rename to test/unit-tests/components/views/location/__snapshots__/SmartMarker-test.tsx.snap diff --git a/test/components/views/location/__snapshots__/ZoomButtons-test.tsx.snap b/test/unit-tests/components/views/location/__snapshots__/ZoomButtons-test.tsx.snap similarity index 100% rename from test/components/views/location/__snapshots__/ZoomButtons-test.tsx.snap rename to test/unit-tests/components/views/location/__snapshots__/ZoomButtons-test.tsx.snap diff --git a/test/components/views/location/shareLocation-test.ts b/test/unit-tests/components/views/location/shareLocation-test.ts similarity index 100% rename from test/components/views/location/shareLocation-test.ts rename to test/unit-tests/components/views/location/shareLocation-test.ts diff --git a/test/components/views/messages/CallEvent-test.tsx b/test/unit-tests/components/views/messages/CallEvent-test.tsx similarity index 100% rename from test/components/views/messages/CallEvent-test.tsx rename to test/unit-tests/components/views/messages/CallEvent-test.tsx diff --git a/test/components/views/messages/DateSeparator-test.tsx b/test/unit-tests/components/views/messages/DateSeparator-test.tsx similarity index 100% rename from test/components/views/messages/DateSeparator-test.tsx rename to test/unit-tests/components/views/messages/DateSeparator-test.tsx diff --git a/test/components/views/messages/DecryptionFailureBody-test.tsx b/test/unit-tests/components/views/messages/DecryptionFailureBody-test.tsx similarity index 100% rename from test/components/views/messages/DecryptionFailureBody-test.tsx rename to test/unit-tests/components/views/messages/DecryptionFailureBody-test.tsx diff --git a/test/components/views/messages/DownloadActionButton-test.tsx b/test/unit-tests/components/views/messages/DownloadActionButton-test.tsx similarity index 100% rename from test/components/views/messages/DownloadActionButton-test.tsx rename to test/unit-tests/components/views/messages/DownloadActionButton-test.tsx diff --git a/test/components/views/messages/EncryptionEvent-test.tsx b/test/unit-tests/components/views/messages/EncryptionEvent-test.tsx similarity index 100% rename from test/components/views/messages/EncryptionEvent-test.tsx rename to test/unit-tests/components/views/messages/EncryptionEvent-test.tsx diff --git a/test/components/views/messages/JumpToDatePicker-test.tsx b/test/unit-tests/components/views/messages/JumpToDatePicker-test.tsx similarity index 100% rename from test/components/views/messages/JumpToDatePicker-test.tsx rename to test/unit-tests/components/views/messages/JumpToDatePicker-test.tsx diff --git a/test/components/views/messages/LegacyCallEvent-test.tsx b/test/unit-tests/components/views/messages/LegacyCallEvent-test.tsx similarity index 100% rename from test/components/views/messages/LegacyCallEvent-test.tsx rename to test/unit-tests/components/views/messages/LegacyCallEvent-test.tsx diff --git a/test/components/views/messages/MBeaconBody-test.tsx b/test/unit-tests/components/views/messages/MBeaconBody-test.tsx similarity index 100% rename from test/components/views/messages/MBeaconBody-test.tsx rename to test/unit-tests/components/views/messages/MBeaconBody-test.tsx diff --git a/test/components/views/messages/MFileBody-test.tsx b/test/unit-tests/components/views/messages/MFileBody-test.tsx similarity index 100% rename from test/components/views/messages/MFileBody-test.tsx rename to test/unit-tests/components/views/messages/MFileBody-test.tsx diff --git a/test/components/views/messages/MImageBody-test.tsx b/test/unit-tests/components/views/messages/MImageBody-test.tsx similarity index 100% rename from test/components/views/messages/MImageBody-test.tsx rename to test/unit-tests/components/views/messages/MImageBody-test.tsx diff --git a/test/components/views/messages/MKeyVerificationRequest-test.tsx b/test/unit-tests/components/views/messages/MKeyVerificationRequest-test.tsx similarity index 100% rename from test/components/views/messages/MKeyVerificationRequest-test.tsx rename to test/unit-tests/components/views/messages/MKeyVerificationRequest-test.tsx diff --git a/test/components/views/messages/MLocationBody-test.tsx b/test/unit-tests/components/views/messages/MLocationBody-test.tsx similarity index 100% rename from test/components/views/messages/MLocationBody-test.tsx rename to test/unit-tests/components/views/messages/MLocationBody-test.tsx diff --git a/test/components/views/messages/MPollBody-test.tsx b/test/unit-tests/components/views/messages/MPollBody-test.tsx similarity index 100% rename from test/components/views/messages/MPollBody-test.tsx rename to test/unit-tests/components/views/messages/MPollBody-test.tsx diff --git a/test/components/views/messages/MPollEndBody-test.tsx b/test/unit-tests/components/views/messages/MPollEndBody-test.tsx similarity index 100% rename from test/components/views/messages/MPollEndBody-test.tsx rename to test/unit-tests/components/views/messages/MPollEndBody-test.tsx diff --git a/test/components/views/messages/MStickerBody-test.tsx b/test/unit-tests/components/views/messages/MStickerBody-test.tsx similarity index 100% rename from test/components/views/messages/MStickerBody-test.tsx rename to test/unit-tests/components/views/messages/MStickerBody-test.tsx diff --git a/test/components/views/messages/MVideoBody-test.tsx b/test/unit-tests/components/views/messages/MVideoBody-test.tsx similarity index 100% rename from test/components/views/messages/MVideoBody-test.tsx rename to test/unit-tests/components/views/messages/MVideoBody-test.tsx diff --git a/test/components/views/messages/MessageActionBar-test.tsx b/test/unit-tests/components/views/messages/MessageActionBar-test.tsx similarity index 100% rename from test/components/views/messages/MessageActionBar-test.tsx rename to test/unit-tests/components/views/messages/MessageActionBar-test.tsx diff --git a/test/components/views/messages/MessageEvent-test.tsx b/test/unit-tests/components/views/messages/MessageEvent-test.tsx similarity index 100% rename from test/components/views/messages/MessageEvent-test.tsx rename to test/unit-tests/components/views/messages/MessageEvent-test.tsx diff --git a/test/components/views/messages/MessageTimestamp-test.tsx b/test/unit-tests/components/views/messages/MessageTimestamp-test.tsx similarity index 100% rename from test/components/views/messages/MessageTimestamp-test.tsx rename to test/unit-tests/components/views/messages/MessageTimestamp-test.tsx diff --git a/test/components/views/messages/PinnedMessageBadge-test.tsx b/test/unit-tests/components/views/messages/PinnedMessageBadge-test.tsx similarity index 100% rename from test/components/views/messages/PinnedMessageBadge-test.tsx rename to test/unit-tests/components/views/messages/PinnedMessageBadge-test.tsx diff --git a/test/components/views/messages/ReactionsRowButton-test.tsx b/test/unit-tests/components/views/messages/ReactionsRowButton-test.tsx similarity index 100% rename from test/components/views/messages/ReactionsRowButton-test.tsx rename to test/unit-tests/components/views/messages/ReactionsRowButton-test.tsx diff --git a/test/components/views/messages/RoomPredecessorTile-test.tsx b/test/unit-tests/components/views/messages/RoomPredecessorTile-test.tsx similarity index 100% rename from test/components/views/messages/RoomPredecessorTile-test.tsx rename to test/unit-tests/components/views/messages/RoomPredecessorTile-test.tsx diff --git a/test/components/views/messages/TextualBody-test.tsx b/test/unit-tests/components/views/messages/TextualBody-test.tsx similarity index 100% rename from test/components/views/messages/TextualBody-test.tsx rename to test/unit-tests/components/views/messages/TextualBody-test.tsx diff --git a/test/components/views/messages/__snapshots__/DateSeparator-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/DateSeparator-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/DateSeparator-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/DateSeparator-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/DecryptionFailureBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/DecryptionFailureBody-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/DecryptionFailureBody-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/DecryptionFailureBody-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/JumpToDatePicker-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/JumpToDatePicker-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/JumpToDatePicker-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/JumpToDatePicker-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/MBeaconBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/MBeaconBody-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/MBeaconBody-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/MBeaconBody-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/MFileBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/MFileBody-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/MFileBody-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/MFileBody-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/MImageBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/MImageBody-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/MImageBody-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/MImageBody-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/MLocationBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/MLocationBody-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/MLocationBody-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/MLocationBody-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/MPollBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/MPollBody-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/MPollBody-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/MPollBody-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/MPollEndBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/MPollEndBody-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/MPollEndBody-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/MPollEndBody-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/MVideoBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/MVideoBody-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/MVideoBody-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/MVideoBody-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/PinnedMessageBadge-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/PinnedMessageBadge-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/PinnedMessageBadge-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/PinnedMessageBadge-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/ReactionsRowButton-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/ReactionsRowButton-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/ReactionsRowButton-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/ReactionsRowButton-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/RoomPredecessorTile-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/RoomPredecessorTile-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/RoomPredecessorTile-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/RoomPredecessorTile-test.tsx.snap diff --git a/test/components/views/messages/__snapshots__/TextualBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/TextualBody-test.tsx.snap similarity index 100% rename from test/components/views/messages/__snapshots__/TextualBody-test.tsx.snap rename to test/unit-tests/components/views/messages/__snapshots__/TextualBody-test.tsx.snap diff --git a/test/components/views/messages/shared/MediaProcessingError-test.tsx b/test/unit-tests/components/views/messages/shared/MediaProcessingError-test.tsx similarity index 100% rename from test/components/views/messages/shared/MediaProcessingError-test.tsx rename to test/unit-tests/components/views/messages/shared/MediaProcessingError-test.tsx diff --git a/test/components/views/messages/shared/__snapshots__/MediaProcessingError-test.tsx.snap b/test/unit-tests/components/views/messages/shared/__snapshots__/MediaProcessingError-test.tsx.snap similarity index 100% rename from test/components/views/messages/shared/__snapshots__/MediaProcessingError-test.tsx.snap rename to test/unit-tests/components/views/messages/shared/__snapshots__/MediaProcessingError-test.tsx.snap diff --git a/test/components/views/polls/pollHistory/PollHistory-test.tsx b/test/unit-tests/components/views/polls/pollHistory/PollHistory-test.tsx similarity index 100% rename from test/components/views/polls/pollHistory/PollHistory-test.tsx rename to test/unit-tests/components/views/polls/pollHistory/PollHistory-test.tsx diff --git a/test/components/views/polls/pollHistory/PollListItem-test.tsx b/test/unit-tests/components/views/polls/pollHistory/PollListItem-test.tsx similarity index 100% rename from test/components/views/polls/pollHistory/PollListItem-test.tsx rename to test/unit-tests/components/views/polls/pollHistory/PollListItem-test.tsx diff --git a/test/components/views/polls/pollHistory/PollListItemEnded-test.tsx b/test/unit-tests/components/views/polls/pollHistory/PollListItemEnded-test.tsx similarity index 100% rename from test/components/views/polls/pollHistory/PollListItemEnded-test.tsx rename to test/unit-tests/components/views/polls/pollHistory/PollListItemEnded-test.tsx diff --git a/test/components/views/polls/pollHistory/__snapshots__/PollHistory-test.tsx.snap b/test/unit-tests/components/views/polls/pollHistory/__snapshots__/PollHistory-test.tsx.snap similarity index 100% rename from test/components/views/polls/pollHistory/__snapshots__/PollHistory-test.tsx.snap rename to test/unit-tests/components/views/polls/pollHistory/__snapshots__/PollHistory-test.tsx.snap diff --git a/test/components/views/polls/pollHistory/__snapshots__/PollListItem-test.tsx.snap b/test/unit-tests/components/views/polls/pollHistory/__snapshots__/PollListItem-test.tsx.snap similarity index 100% rename from test/components/views/polls/pollHistory/__snapshots__/PollListItem-test.tsx.snap rename to test/unit-tests/components/views/polls/pollHistory/__snapshots__/PollListItem-test.tsx.snap diff --git a/test/components/views/polls/pollHistory/__snapshots__/PollListItemEnded-test.tsx.snap b/test/unit-tests/components/views/polls/pollHistory/__snapshots__/PollListItemEnded-test.tsx.snap similarity index 100% rename from test/components/views/polls/pollHistory/__snapshots__/PollListItemEnded-test.tsx.snap rename to test/unit-tests/components/views/polls/pollHistory/__snapshots__/PollListItemEnded-test.tsx.snap diff --git a/test/components/views/right_panel/BaseCard-test.tsx b/test/unit-tests/components/views/right_panel/BaseCard-test.tsx similarity index 100% rename from test/components/views/right_panel/BaseCard-test.tsx rename to test/unit-tests/components/views/right_panel/BaseCard-test.tsx diff --git a/test/components/views/right_panel/ExtensionsCard-test.tsx b/test/unit-tests/components/views/right_panel/ExtensionsCard-test.tsx similarity index 100% rename from test/components/views/right_panel/ExtensionsCard-test.tsx rename to test/unit-tests/components/views/right_panel/ExtensionsCard-test.tsx diff --git a/test/components/views/right_panel/PinnedMessagesCard-test.tsx b/test/unit-tests/components/views/right_panel/PinnedMessagesCard-test.tsx similarity index 100% rename from test/components/views/right_panel/PinnedMessagesCard-test.tsx rename to test/unit-tests/components/views/right_panel/PinnedMessagesCard-test.tsx diff --git a/test/components/views/right_panel/RoomSummaryCard-test.tsx b/test/unit-tests/components/views/right_panel/RoomSummaryCard-test.tsx similarity index 100% rename from test/components/views/right_panel/RoomSummaryCard-test.tsx rename to test/unit-tests/components/views/right_panel/RoomSummaryCard-test.tsx diff --git a/test/components/views/right_panel/UserInfo-test.tsx b/test/unit-tests/components/views/right_panel/UserInfo-test.tsx similarity index 100% rename from test/components/views/right_panel/UserInfo-test.tsx rename to test/unit-tests/components/views/right_panel/UserInfo-test.tsx diff --git a/test/components/views/right_panel/VerificationPanel-test.tsx b/test/unit-tests/components/views/right_panel/VerificationPanel-test.tsx similarity index 100% rename from test/components/views/right_panel/VerificationPanel-test.tsx rename to test/unit-tests/components/views/right_panel/VerificationPanel-test.tsx diff --git a/test/components/views/right_panel/__snapshots__/BaseCard-test.tsx.snap b/test/unit-tests/components/views/right_panel/__snapshots__/BaseCard-test.tsx.snap similarity index 100% rename from test/components/views/right_panel/__snapshots__/BaseCard-test.tsx.snap rename to test/unit-tests/components/views/right_panel/__snapshots__/BaseCard-test.tsx.snap diff --git a/test/components/views/right_panel/__snapshots__/ExtensionsCard-test.tsx.snap b/test/unit-tests/components/views/right_panel/__snapshots__/ExtensionsCard-test.tsx.snap similarity index 100% rename from test/components/views/right_panel/__snapshots__/ExtensionsCard-test.tsx.snap rename to test/unit-tests/components/views/right_panel/__snapshots__/ExtensionsCard-test.tsx.snap diff --git a/test/components/views/right_panel/__snapshots__/PinnedMessagesCard-test.tsx.snap b/test/unit-tests/components/views/right_panel/__snapshots__/PinnedMessagesCard-test.tsx.snap similarity index 100% rename from test/components/views/right_panel/__snapshots__/PinnedMessagesCard-test.tsx.snap rename to test/unit-tests/components/views/right_panel/__snapshots__/PinnedMessagesCard-test.tsx.snap diff --git a/test/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap b/test/unit-tests/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap similarity index 100% rename from test/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap rename to test/unit-tests/components/views/right_panel/__snapshots__/RoomSummaryCard-test.tsx.snap diff --git a/test/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap b/test/unit-tests/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap similarity index 100% rename from test/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap rename to test/unit-tests/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap diff --git a/test/components/views/room_settings/RoomProfileSettings-test.tsx b/test/unit-tests/components/views/room_settings/RoomProfileSettings-test.tsx similarity index 100% rename from test/components/views/room_settings/RoomProfileSettings-test.tsx rename to test/unit-tests/components/views/room_settings/RoomProfileSettings-test.tsx diff --git a/test/components/views/rooms/AppsDrawer-test.tsx b/test/unit-tests/components/views/rooms/AppsDrawer-test.tsx similarity index 100% rename from test/components/views/rooms/AppsDrawer-test.tsx rename to test/unit-tests/components/views/rooms/AppsDrawer-test.tsx diff --git a/test/components/views/rooms/BasicMessageComposer-test.tsx b/test/unit-tests/components/views/rooms/BasicMessageComposer-test.tsx similarity index 100% rename from test/components/views/rooms/BasicMessageComposer-test.tsx rename to test/unit-tests/components/views/rooms/BasicMessageComposer-test.tsx diff --git a/test/components/views/rooms/EditMessageComposer-test.tsx b/test/unit-tests/components/views/rooms/EditMessageComposer-test.tsx similarity index 100% rename from test/components/views/rooms/EditMessageComposer-test.tsx rename to test/unit-tests/components/views/rooms/EditMessageComposer-test.tsx diff --git a/test/components/views/rooms/EventTile-test.tsx b/test/unit-tests/components/views/rooms/EventTile-test.tsx similarity index 100% rename from test/components/views/rooms/EventTile-test.tsx rename to test/unit-tests/components/views/rooms/EventTile-test.tsx diff --git a/test/components/views/rooms/EventTile/EventTileThreadToolbar-test.tsx b/test/unit-tests/components/views/rooms/EventTile/EventTileThreadToolbar-test.tsx similarity index 100% rename from test/components/views/rooms/EventTile/EventTileThreadToolbar-test.tsx rename to test/unit-tests/components/views/rooms/EventTile/EventTileThreadToolbar-test.tsx diff --git a/test/components/views/rooms/EventTile/__snapshots__/EventTileThreadToolbar-test.tsx.snap b/test/unit-tests/components/views/rooms/EventTile/__snapshots__/EventTileThreadToolbar-test.tsx.snap similarity index 100% rename from test/components/views/rooms/EventTile/__snapshots__/EventTileThreadToolbar-test.tsx.snap rename to test/unit-tests/components/views/rooms/EventTile/__snapshots__/EventTileThreadToolbar-test.tsx.snap diff --git a/test/components/views/rooms/ExtraTile-test.tsx b/test/unit-tests/components/views/rooms/ExtraTile-test.tsx similarity index 100% rename from test/components/views/rooms/ExtraTile-test.tsx rename to test/unit-tests/components/views/rooms/ExtraTile-test.tsx diff --git a/test/components/views/rooms/MemberList-test.tsx b/test/unit-tests/components/views/rooms/MemberList-test.tsx similarity index 100% rename from test/components/views/rooms/MemberList-test.tsx rename to test/unit-tests/components/views/rooms/MemberList-test.tsx diff --git a/test/components/views/rooms/MemberTile-test.tsx b/test/unit-tests/components/views/rooms/MemberTile-test.tsx similarity index 100% rename from test/components/views/rooms/MemberTile-test.tsx rename to test/unit-tests/components/views/rooms/MemberTile-test.tsx diff --git a/test/components/views/rooms/MessageComposer-test.tsx b/test/unit-tests/components/views/rooms/MessageComposer-test.tsx similarity index 100% rename from test/components/views/rooms/MessageComposer-test.tsx rename to test/unit-tests/components/views/rooms/MessageComposer-test.tsx diff --git a/test/components/views/rooms/MessageComposerButtons-test.tsx b/test/unit-tests/components/views/rooms/MessageComposerButtons-test.tsx similarity index 100% rename from test/components/views/rooms/MessageComposerButtons-test.tsx rename to test/unit-tests/components/views/rooms/MessageComposerButtons-test.tsx diff --git a/test/components/views/rooms/NewRoomIntro-test.tsx b/test/unit-tests/components/views/rooms/NewRoomIntro-test.tsx similarity index 100% rename from test/components/views/rooms/NewRoomIntro-test.tsx rename to test/unit-tests/components/views/rooms/NewRoomIntro-test.tsx diff --git a/test/components/views/rooms/NotificationBadge/NotificationBadge-test.tsx b/test/unit-tests/components/views/rooms/NotificationBadge/NotificationBadge-test.tsx similarity index 100% rename from test/components/views/rooms/NotificationBadge/NotificationBadge-test.tsx rename to test/unit-tests/components/views/rooms/NotificationBadge/NotificationBadge-test.tsx diff --git a/test/components/views/rooms/NotificationBadge/StatelessNotificationBadge-test.tsx b/test/unit-tests/components/views/rooms/NotificationBadge/StatelessNotificationBadge-test.tsx similarity index 100% rename from test/components/views/rooms/NotificationBadge/StatelessNotificationBadge-test.tsx rename to test/unit-tests/components/views/rooms/NotificationBadge/StatelessNotificationBadge-test.tsx diff --git a/test/components/views/rooms/NotificationBadge/UnreadNotificationBadge-test.tsx b/test/unit-tests/components/views/rooms/NotificationBadge/UnreadNotificationBadge-test.tsx similarity index 100% rename from test/components/views/rooms/NotificationBadge/UnreadNotificationBadge-test.tsx rename to test/unit-tests/components/views/rooms/NotificationBadge/UnreadNotificationBadge-test.tsx diff --git a/test/components/views/rooms/PinnedEventTile-test.tsx b/test/unit-tests/components/views/rooms/PinnedEventTile-test.tsx similarity index 100% rename from test/components/views/rooms/PinnedEventTile-test.tsx rename to test/unit-tests/components/views/rooms/PinnedEventTile-test.tsx diff --git a/test/components/views/rooms/PinnedMessageBanner-test.tsx b/test/unit-tests/components/views/rooms/PinnedMessageBanner-test.tsx similarity index 100% rename from test/components/views/rooms/PinnedMessageBanner-test.tsx rename to test/unit-tests/components/views/rooms/PinnedMessageBanner-test.tsx diff --git a/test/components/views/rooms/PresenceLabel-test.tsx b/test/unit-tests/components/views/rooms/PresenceLabel-test.tsx similarity index 100% rename from test/components/views/rooms/PresenceLabel-test.tsx rename to test/unit-tests/components/views/rooms/PresenceLabel-test.tsx diff --git a/test/components/views/rooms/ReadReceiptGroup-test.tsx b/test/unit-tests/components/views/rooms/ReadReceiptGroup-test.tsx similarity index 100% rename from test/components/views/rooms/ReadReceiptGroup-test.tsx rename to test/unit-tests/components/views/rooms/ReadReceiptGroup-test.tsx diff --git a/test/components/views/rooms/ReadReceiptMarker-test.tsx b/test/unit-tests/components/views/rooms/ReadReceiptMarker-test.tsx similarity index 100% rename from test/components/views/rooms/ReadReceiptMarker-test.tsx rename to test/unit-tests/components/views/rooms/ReadReceiptMarker-test.tsx diff --git a/test/components/views/rooms/RoomHeader-test.tsx b/test/unit-tests/components/views/rooms/RoomHeader-test.tsx similarity index 100% rename from test/components/views/rooms/RoomHeader-test.tsx rename to test/unit-tests/components/views/rooms/RoomHeader-test.tsx diff --git a/test/components/views/rooms/RoomHeader/CallGuestLinkButton-test.tsx b/test/unit-tests/components/views/rooms/RoomHeader/CallGuestLinkButton-test.tsx similarity index 100% rename from test/components/views/rooms/RoomHeader/CallGuestLinkButton-test.tsx rename to test/unit-tests/components/views/rooms/RoomHeader/CallGuestLinkButton-test.tsx diff --git a/test/components/views/rooms/RoomHeader/VideoRoomChatButton-test.tsx b/test/unit-tests/components/views/rooms/RoomHeader/VideoRoomChatButton-test.tsx similarity index 100% rename from test/components/views/rooms/RoomHeader/VideoRoomChatButton-test.tsx rename to test/unit-tests/components/views/rooms/RoomHeader/VideoRoomChatButton-test.tsx diff --git a/test/components/views/rooms/RoomHeader/__snapshots__/VideoRoomChatButton-test.tsx.snap b/test/unit-tests/components/views/rooms/RoomHeader/__snapshots__/VideoRoomChatButton-test.tsx.snap similarity index 100% rename from test/components/views/rooms/RoomHeader/__snapshots__/VideoRoomChatButton-test.tsx.snap rename to test/unit-tests/components/views/rooms/RoomHeader/__snapshots__/VideoRoomChatButton-test.tsx.snap diff --git a/test/components/views/rooms/RoomKnocksBar-test.tsx b/test/unit-tests/components/views/rooms/RoomKnocksBar-test.tsx similarity index 100% rename from test/components/views/rooms/RoomKnocksBar-test.tsx rename to test/unit-tests/components/views/rooms/RoomKnocksBar-test.tsx diff --git a/test/components/views/rooms/RoomList-test.tsx b/test/unit-tests/components/views/rooms/RoomList-test.tsx similarity index 100% rename from test/components/views/rooms/RoomList-test.tsx rename to test/unit-tests/components/views/rooms/RoomList-test.tsx diff --git a/test/components/views/rooms/RoomListHeader-test.tsx b/test/unit-tests/components/views/rooms/RoomListHeader-test.tsx similarity index 100% rename from test/components/views/rooms/RoomListHeader-test.tsx rename to test/unit-tests/components/views/rooms/RoomListHeader-test.tsx diff --git a/test/components/views/rooms/RoomPreviewBar-test.tsx b/test/unit-tests/components/views/rooms/RoomPreviewBar-test.tsx similarity index 100% rename from test/components/views/rooms/RoomPreviewBar-test.tsx rename to test/unit-tests/components/views/rooms/RoomPreviewBar-test.tsx diff --git a/test/components/views/rooms/RoomPreviewCard-test.tsx b/test/unit-tests/components/views/rooms/RoomPreviewCard-test.tsx similarity index 100% rename from test/components/views/rooms/RoomPreviewCard-test.tsx rename to test/unit-tests/components/views/rooms/RoomPreviewCard-test.tsx diff --git a/test/components/views/rooms/RoomSearchAuxPanel-test.tsx b/test/unit-tests/components/views/rooms/RoomSearchAuxPanel-test.tsx similarity index 100% rename from test/components/views/rooms/RoomSearchAuxPanel-test.tsx rename to test/unit-tests/components/views/rooms/RoomSearchAuxPanel-test.tsx diff --git a/test/components/views/rooms/RoomTile-test.tsx b/test/unit-tests/components/views/rooms/RoomTile-test.tsx similarity index 100% rename from test/components/views/rooms/RoomTile-test.tsx rename to test/unit-tests/components/views/rooms/RoomTile-test.tsx diff --git a/test/components/views/rooms/SearchResultTile-test.tsx b/test/unit-tests/components/views/rooms/SearchResultTile-test.tsx similarity index 100% rename from test/components/views/rooms/SearchResultTile-test.tsx rename to test/unit-tests/components/views/rooms/SearchResultTile-test.tsx diff --git a/test/components/views/rooms/SendMessageComposer-test.tsx b/test/unit-tests/components/views/rooms/SendMessageComposer-test.tsx similarity index 100% rename from test/components/views/rooms/SendMessageComposer-test.tsx rename to test/unit-tests/components/views/rooms/SendMessageComposer-test.tsx diff --git a/test/components/views/rooms/ThirdPartyMemberInfo-test.tsx b/test/unit-tests/components/views/rooms/ThirdPartyMemberInfo-test.tsx similarity index 100% rename from test/components/views/rooms/ThirdPartyMemberInfo-test.tsx rename to test/unit-tests/components/views/rooms/ThirdPartyMemberInfo-test.tsx diff --git a/test/components/views/rooms/VoiceRecordComposerTile-test.tsx b/test/unit-tests/components/views/rooms/VoiceRecordComposerTile-test.tsx similarity index 100% rename from test/components/views/rooms/VoiceRecordComposerTile-test.tsx rename to test/unit-tests/components/views/rooms/VoiceRecordComposerTile-test.tsx diff --git a/test/components/views/rooms/__snapshots__/ExtraTile-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/ExtraTile-test.tsx.snap similarity index 100% rename from test/components/views/rooms/__snapshots__/ExtraTile-test.tsx.snap rename to test/unit-tests/components/views/rooms/__snapshots__/ExtraTile-test.tsx.snap diff --git a/test/components/views/rooms/__snapshots__/MemberTile-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/MemberTile-test.tsx.snap similarity index 100% rename from test/components/views/rooms/__snapshots__/MemberTile-test.tsx.snap rename to test/unit-tests/components/views/rooms/__snapshots__/MemberTile-test.tsx.snap diff --git a/test/components/views/rooms/__snapshots__/PinnedEventTile-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/PinnedEventTile-test.tsx.snap similarity index 100% rename from test/components/views/rooms/__snapshots__/PinnedEventTile-test.tsx.snap rename to test/unit-tests/components/views/rooms/__snapshots__/PinnedEventTile-test.tsx.snap diff --git a/test/components/views/rooms/__snapshots__/PinnedMessageBanner-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/PinnedMessageBanner-test.tsx.snap similarity index 100% rename from test/components/views/rooms/__snapshots__/PinnedMessageBanner-test.tsx.snap rename to test/unit-tests/components/views/rooms/__snapshots__/PinnedMessageBanner-test.tsx.snap diff --git a/test/components/views/rooms/__snapshots__/ReadReceiptGroup-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/ReadReceiptGroup-test.tsx.snap similarity index 100% rename from test/components/views/rooms/__snapshots__/ReadReceiptGroup-test.tsx.snap rename to test/unit-tests/components/views/rooms/__snapshots__/ReadReceiptGroup-test.tsx.snap diff --git a/test/components/views/rooms/__snapshots__/RoomHeader-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/RoomHeader-test.tsx.snap similarity index 100% rename from test/components/views/rooms/__snapshots__/RoomHeader-test.tsx.snap rename to test/unit-tests/components/views/rooms/__snapshots__/RoomHeader-test.tsx.snap diff --git a/test/components/views/rooms/__snapshots__/RoomPreviewBar-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/RoomPreviewBar-test.tsx.snap similarity index 100% rename from test/components/views/rooms/__snapshots__/RoomPreviewBar-test.tsx.snap rename to test/unit-tests/components/views/rooms/__snapshots__/RoomPreviewBar-test.tsx.snap diff --git a/test/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap similarity index 100% rename from test/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap rename to test/unit-tests/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap diff --git a/test/components/views/rooms/__snapshots__/ThirdPartyMemberInfo-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/ThirdPartyMemberInfo-test.tsx.snap similarity index 100% rename from test/components/views/rooms/__snapshots__/ThirdPartyMemberInfo-test.tsx.snap rename to test/unit-tests/components/views/rooms/__snapshots__/ThirdPartyMemberInfo-test.tsx.snap diff --git a/test/components/views/rooms/wysiwyg_composer/EditWysiwygComposer-test.tsx b/test/unit-tests/components/views/rooms/wysiwyg_composer/EditWysiwygComposer-test.tsx similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/EditWysiwygComposer-test.tsx rename to test/unit-tests/components/views/rooms/wysiwyg_composer/EditWysiwygComposer-test.tsx diff --git a/test/components/views/rooms/wysiwyg_composer/SendWysiwygComposer-test.tsx b/test/unit-tests/components/views/rooms/wysiwyg_composer/SendWysiwygComposer-test.tsx similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/SendWysiwygComposer-test.tsx rename to test/unit-tests/components/views/rooms/wysiwyg_composer/SendWysiwygComposer-test.tsx diff --git a/test/components/views/rooms/wysiwyg_composer/components/FormattingButtons-test.tsx b/test/unit-tests/components/views/rooms/wysiwyg_composer/components/FormattingButtons-test.tsx similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/components/FormattingButtons-test.tsx rename to test/unit-tests/components/views/rooms/wysiwyg_composer/components/FormattingButtons-test.tsx diff --git a/test/components/views/rooms/wysiwyg_composer/components/LinkModal-test.tsx b/test/unit-tests/components/views/rooms/wysiwyg_composer/components/LinkModal-test.tsx similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/components/LinkModal-test.tsx rename to test/unit-tests/components/views/rooms/wysiwyg_composer/components/LinkModal-test.tsx diff --git a/test/components/views/rooms/wysiwyg_composer/components/PlainTextComposer-test.tsx b/test/unit-tests/components/views/rooms/wysiwyg_composer/components/PlainTextComposer-test.tsx similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/components/PlainTextComposer-test.tsx rename to test/unit-tests/components/views/rooms/wysiwyg_composer/components/PlainTextComposer-test.tsx diff --git a/test/components/views/rooms/wysiwyg_composer/components/WysiwygAutocomplete-test.tsx b/test/unit-tests/components/views/rooms/wysiwyg_composer/components/WysiwygAutocomplete-test.tsx similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/components/WysiwygAutocomplete-test.tsx rename to test/unit-tests/components/views/rooms/wysiwyg_composer/components/WysiwygAutocomplete-test.tsx diff --git a/test/components/views/rooms/wysiwyg_composer/components/WysiwygComposer-test.tsx b/test/unit-tests/components/views/rooms/wysiwyg_composer/components/WysiwygComposer-test.tsx similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/components/WysiwygComposer-test.tsx rename to test/unit-tests/components/views/rooms/wysiwyg_composer/components/WysiwygComposer-test.tsx diff --git a/test/components/views/rooms/wysiwyg_composer/components/__snapshots__/FormattingButtons-test.tsx.snap b/test/unit-tests/components/views/rooms/wysiwyg_composer/components/__snapshots__/FormattingButtons-test.tsx.snap similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/components/__snapshots__/FormattingButtons-test.tsx.snap rename to test/unit-tests/components/views/rooms/wysiwyg_composer/components/__snapshots__/FormattingButtons-test.tsx.snap diff --git a/test/components/views/rooms/wysiwyg_composer/hooks/usePlainTextListeners-test.tsx b/test/unit-tests/components/views/rooms/wysiwyg_composer/hooks/usePlainTextListeners-test.tsx similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/hooks/usePlainTextListeners-test.tsx rename to test/unit-tests/components/views/rooms/wysiwyg_composer/hooks/usePlainTextListeners-test.tsx diff --git a/test/components/views/rooms/wysiwyg_composer/hooks/useSuggestion-test.tsx b/test/unit-tests/components/views/rooms/wysiwyg_composer/hooks/useSuggestion-test.tsx similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/hooks/useSuggestion-test.tsx rename to test/unit-tests/components/views/rooms/wysiwyg_composer/hooks/useSuggestion-test.tsx diff --git a/test/components/views/rooms/wysiwyg_composer/hooks/utils-test.tsx b/test/unit-tests/components/views/rooms/wysiwyg_composer/hooks/utils-test.tsx similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/hooks/utils-test.tsx rename to test/unit-tests/components/views/rooms/wysiwyg_composer/hooks/utils-test.tsx diff --git a/test/components/views/rooms/wysiwyg_composer/utils.ts b/test/unit-tests/components/views/rooms/wysiwyg_composer/utils.ts similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/utils.ts rename to test/unit-tests/components/views/rooms/wysiwyg_composer/utils.ts diff --git a/test/components/views/rooms/wysiwyg_composer/utils/autocomplete-test.ts b/test/unit-tests/components/views/rooms/wysiwyg_composer/utils/autocomplete-test.ts similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/utils/autocomplete-test.ts rename to test/unit-tests/components/views/rooms/wysiwyg_composer/utils/autocomplete-test.ts diff --git a/test/components/views/rooms/wysiwyg_composer/utils/createMessageContent-test.ts b/test/unit-tests/components/views/rooms/wysiwyg_composer/utils/createMessageContent-test.ts similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/utils/createMessageContent-test.ts rename to test/unit-tests/components/views/rooms/wysiwyg_composer/utils/createMessageContent-test.ts diff --git a/test/components/views/rooms/wysiwyg_composer/utils/message-test.ts b/test/unit-tests/components/views/rooms/wysiwyg_composer/utils/message-test.ts similarity index 100% rename from test/components/views/rooms/wysiwyg_composer/utils/message-test.ts rename to test/unit-tests/components/views/rooms/wysiwyg_composer/utils/message-test.ts diff --git a/test/components/views/settings/AddPrivilegedUsers-test.tsx b/test/unit-tests/components/views/settings/AddPrivilegedUsers-test.tsx similarity index 100% rename from test/components/views/settings/AddPrivilegedUsers-test.tsx rename to test/unit-tests/components/views/settings/AddPrivilegedUsers-test.tsx diff --git a/test/components/views/settings/AddRemoveThreepids-test.tsx b/test/unit-tests/components/views/settings/AddRemoveThreepids-test.tsx similarity index 100% rename from test/components/views/settings/AddRemoveThreepids-test.tsx rename to test/unit-tests/components/views/settings/AddRemoveThreepids-test.tsx diff --git a/test/components/views/settings/AvatarSetting-test.tsx b/test/unit-tests/components/views/settings/AvatarSetting-test.tsx similarity index 100% rename from test/components/views/settings/AvatarSetting-test.tsx rename to test/unit-tests/components/views/settings/AvatarSetting-test.tsx diff --git a/test/components/views/settings/ChangePassword-test.tsx b/test/unit-tests/components/views/settings/ChangePassword-test.tsx similarity index 100% rename from test/components/views/settings/ChangePassword-test.tsx rename to test/unit-tests/components/views/settings/ChangePassword-test.tsx diff --git a/test/components/views/settings/CrossSigningPanel-test.tsx b/test/unit-tests/components/views/settings/CrossSigningPanel-test.tsx similarity index 100% rename from test/components/views/settings/CrossSigningPanel-test.tsx rename to test/unit-tests/components/views/settings/CrossSigningPanel-test.tsx diff --git a/test/components/views/settings/CryptographyPanel-test.tsx b/test/unit-tests/components/views/settings/CryptographyPanel-test.tsx similarity index 100% rename from test/components/views/settings/CryptographyPanel-test.tsx rename to test/unit-tests/components/views/settings/CryptographyPanel-test.tsx diff --git a/test/components/views/settings/EventIndexPanel-test.tsx b/test/unit-tests/components/views/settings/EventIndexPanel-test.tsx similarity index 100% rename from test/components/views/settings/EventIndexPanel-test.tsx rename to test/unit-tests/components/views/settings/EventIndexPanel-test.tsx diff --git a/test/components/views/settings/FontScalingPanel-test.tsx b/test/unit-tests/components/views/settings/FontScalingPanel-test.tsx similarity index 100% rename from test/components/views/settings/FontScalingPanel-test.tsx rename to test/unit-tests/components/views/settings/FontScalingPanel-test.tsx diff --git a/test/components/views/settings/JoinRuleSettings-test.tsx b/test/unit-tests/components/views/settings/JoinRuleSettings-test.tsx similarity index 100% rename from test/components/views/settings/JoinRuleSettings-test.tsx rename to test/unit-tests/components/views/settings/JoinRuleSettings-test.tsx diff --git a/test/components/views/settings/KeyboardShortcut-test.tsx b/test/unit-tests/components/views/settings/KeyboardShortcut-test.tsx similarity index 100% rename from test/components/views/settings/KeyboardShortcut-test.tsx rename to test/unit-tests/components/views/settings/KeyboardShortcut-test.tsx diff --git a/test/components/views/settings/LayoutSwitcher-test.tsx b/test/unit-tests/components/views/settings/LayoutSwitcher-test.tsx similarity index 100% rename from test/components/views/settings/LayoutSwitcher-test.tsx rename to test/unit-tests/components/views/settings/LayoutSwitcher-test.tsx diff --git a/test/components/views/settings/Notifications-test.tsx b/test/unit-tests/components/views/settings/Notifications-test.tsx similarity index 100% rename from test/components/views/settings/Notifications-test.tsx rename to test/unit-tests/components/views/settings/Notifications-test.tsx diff --git a/test/components/views/settings/PowerLevelSelector-test.tsx b/test/unit-tests/components/views/settings/PowerLevelSelector-test.tsx similarity index 100% rename from test/components/views/settings/PowerLevelSelector-test.tsx rename to test/unit-tests/components/views/settings/PowerLevelSelector-test.tsx diff --git a/test/components/views/settings/SecureBackupPanel-test.tsx b/test/unit-tests/components/views/settings/SecureBackupPanel-test.tsx similarity index 100% rename from test/components/views/settings/SecureBackupPanel-test.tsx rename to test/unit-tests/components/views/settings/SecureBackupPanel-test.tsx diff --git a/test/components/views/settings/SetIntegrationManager-test.tsx b/test/unit-tests/components/views/settings/SetIntegrationManager-test.tsx similarity index 100% rename from test/components/views/settings/SetIntegrationManager-test.tsx rename to test/unit-tests/components/views/settings/SetIntegrationManager-test.tsx diff --git a/test/components/views/settings/SettingsFieldset-test.tsx b/test/unit-tests/components/views/settings/SettingsFieldset-test.tsx similarity index 100% rename from test/components/views/settings/SettingsFieldset-test.tsx rename to test/unit-tests/components/views/settings/SettingsFieldset-test.tsx diff --git a/test/components/views/settings/ThemeChoicePanel-test.tsx b/test/unit-tests/components/views/settings/ThemeChoicePanel-test.tsx similarity index 100% rename from test/components/views/settings/ThemeChoicePanel-test.tsx rename to test/unit-tests/components/views/settings/ThemeChoicePanel-test.tsx diff --git a/test/components/views/settings/UserProfileSettings-test.tsx b/test/unit-tests/components/views/settings/UserProfileSettings-test.tsx similarity index 100% rename from test/components/views/settings/UserProfileSettings-test.tsx rename to test/unit-tests/components/views/settings/UserProfileSettings-test.tsx diff --git a/test/components/views/settings/__snapshots__/AddRemoveThreepids-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/AddRemoveThreepids-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/AddRemoveThreepids-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/AddRemoveThreepids-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/ChangePassword-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/ChangePassword-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/ChangePassword-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/ChangePassword-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/CrossSigningPanel-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/CrossSigningPanel-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/CrossSigningPanel-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/CrossSigningPanel-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/EventIndexPanel-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/EventIndexPanel-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/EventIndexPanel-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/EventIndexPanel-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/FontScalingPanel-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/FontScalingPanel-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/FontScalingPanel-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/FontScalingPanel-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/KeyboardShortcut-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/KeyboardShortcut-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/KeyboardShortcut-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/KeyboardShortcut-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/LayoutSwitcher-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/LayoutSwitcher-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/LayoutSwitcher-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/LayoutSwitcher-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/Notifications-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/Notifications-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/Notifications-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/Notifications-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/PowerLevelSelector-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/PowerLevelSelector-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/PowerLevelSelector-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/PowerLevelSelector-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/SecureBackupPanel-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/SecureBackupPanel-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/SecureBackupPanel-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/SecureBackupPanel-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/SetIntegrationManager-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/SetIntegrationManager-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/SetIntegrationManager-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/SetIntegrationManager-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/SettingsFieldset-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/SettingsFieldset-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/SettingsFieldset-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/SettingsFieldset-test.tsx.snap diff --git a/test/components/views/settings/__snapshots__/ThemeChoicePanel-test.tsx.snap b/test/unit-tests/components/views/settings/__snapshots__/ThemeChoicePanel-test.tsx.snap similarity index 100% rename from test/components/views/settings/__snapshots__/ThemeChoicePanel-test.tsx.snap rename to test/unit-tests/components/views/settings/__snapshots__/ThemeChoicePanel-test.tsx.snap diff --git a/test/components/views/settings/devices/CurrentDeviceSection-test.tsx b/test/unit-tests/components/views/settings/devices/CurrentDeviceSection-test.tsx similarity index 100% rename from test/components/views/settings/devices/CurrentDeviceSection-test.tsx rename to test/unit-tests/components/views/settings/devices/CurrentDeviceSection-test.tsx diff --git a/test/components/views/settings/devices/DeviceDetailHeading-test.tsx b/test/unit-tests/components/views/settings/devices/DeviceDetailHeading-test.tsx similarity index 100% rename from test/components/views/settings/devices/DeviceDetailHeading-test.tsx rename to test/unit-tests/components/views/settings/devices/DeviceDetailHeading-test.tsx diff --git a/test/components/views/settings/devices/DeviceDetails-test.tsx b/test/unit-tests/components/views/settings/devices/DeviceDetails-test.tsx similarity index 100% rename from test/components/views/settings/devices/DeviceDetails-test.tsx rename to test/unit-tests/components/views/settings/devices/DeviceDetails-test.tsx diff --git a/test/components/views/settings/devices/DeviceExpandDetailsButton-test.tsx b/test/unit-tests/components/views/settings/devices/DeviceExpandDetailsButton-test.tsx similarity index 100% rename from test/components/views/settings/devices/DeviceExpandDetailsButton-test.tsx rename to test/unit-tests/components/views/settings/devices/DeviceExpandDetailsButton-test.tsx diff --git a/test/components/views/settings/devices/DeviceSecurityCard-test.tsx b/test/unit-tests/components/views/settings/devices/DeviceSecurityCard-test.tsx similarity index 100% rename from test/components/views/settings/devices/DeviceSecurityCard-test.tsx rename to test/unit-tests/components/views/settings/devices/DeviceSecurityCard-test.tsx diff --git a/test/components/views/settings/devices/DeviceTile-test.tsx b/test/unit-tests/components/views/settings/devices/DeviceTile-test.tsx similarity index 100% rename from test/components/views/settings/devices/DeviceTile-test.tsx rename to test/unit-tests/components/views/settings/devices/DeviceTile-test.tsx diff --git a/test/components/views/settings/devices/DeviceTypeIcon-test.tsx b/test/unit-tests/components/views/settings/devices/DeviceTypeIcon-test.tsx similarity index 100% rename from test/components/views/settings/devices/DeviceTypeIcon-test.tsx rename to test/unit-tests/components/views/settings/devices/DeviceTypeIcon-test.tsx diff --git a/test/components/views/settings/devices/DeviceVerificationStatusCard-test.tsx b/test/unit-tests/components/views/settings/devices/DeviceVerificationStatusCard-test.tsx similarity index 100% rename from test/components/views/settings/devices/DeviceVerificationStatusCard-test.tsx rename to test/unit-tests/components/views/settings/devices/DeviceVerificationStatusCard-test.tsx diff --git a/test/components/views/settings/devices/FilteredDeviceList-test.tsx b/test/unit-tests/components/views/settings/devices/FilteredDeviceList-test.tsx similarity index 100% rename from test/components/views/settings/devices/FilteredDeviceList-test.tsx rename to test/unit-tests/components/views/settings/devices/FilteredDeviceList-test.tsx diff --git a/test/components/views/settings/devices/FilteredDeviceListHeader-test.tsx b/test/unit-tests/components/views/settings/devices/FilteredDeviceListHeader-test.tsx similarity index 100% rename from test/components/views/settings/devices/FilteredDeviceListHeader-test.tsx rename to test/unit-tests/components/views/settings/devices/FilteredDeviceListHeader-test.tsx diff --git a/test/components/views/settings/devices/LoginWithQR-test.tsx b/test/unit-tests/components/views/settings/devices/LoginWithQR-test.tsx similarity index 100% rename from test/components/views/settings/devices/LoginWithQR-test.tsx rename to test/unit-tests/components/views/settings/devices/LoginWithQR-test.tsx diff --git a/test/components/views/settings/devices/LoginWithQRFlow-test.tsx b/test/unit-tests/components/views/settings/devices/LoginWithQRFlow-test.tsx similarity index 100% rename from test/components/views/settings/devices/LoginWithQRFlow-test.tsx rename to test/unit-tests/components/views/settings/devices/LoginWithQRFlow-test.tsx diff --git a/test/components/views/settings/devices/LoginWithQRSection-test.tsx b/test/unit-tests/components/views/settings/devices/LoginWithQRSection-test.tsx similarity index 100% rename from test/components/views/settings/devices/LoginWithQRSection-test.tsx rename to test/unit-tests/components/views/settings/devices/LoginWithQRSection-test.tsx diff --git a/test/components/views/settings/devices/SecurityRecommendations-test.tsx b/test/unit-tests/components/views/settings/devices/SecurityRecommendations-test.tsx similarity index 100% rename from test/components/views/settings/devices/SecurityRecommendations-test.tsx rename to test/unit-tests/components/views/settings/devices/SecurityRecommendations-test.tsx diff --git a/test/components/views/settings/devices/SelectableDeviceTile-test.tsx b/test/unit-tests/components/views/settings/devices/SelectableDeviceTile-test.tsx similarity index 100% rename from test/components/views/settings/devices/SelectableDeviceTile-test.tsx rename to test/unit-tests/components/views/settings/devices/SelectableDeviceTile-test.tsx diff --git a/test/components/views/settings/devices/__snapshots__/CurrentDeviceSection-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/CurrentDeviceSection-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/CurrentDeviceSection-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/CurrentDeviceSection-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/DeviceDetailHeading-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/DeviceDetailHeading-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/DeviceDetailHeading-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/DeviceDetailHeading-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/DeviceDetails-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/DeviceDetails-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/DeviceDetails-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/DeviceDetails-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/DeviceExpandDetailsButton-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/DeviceExpandDetailsButton-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/DeviceExpandDetailsButton-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/DeviceExpandDetailsButton-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/DeviceSecurityCard-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/DeviceSecurityCard-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/DeviceSecurityCard-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/DeviceSecurityCard-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/DeviceTile-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/DeviceTile-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/DeviceTile-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/DeviceTile-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/DeviceTypeIcon-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/DeviceTypeIcon-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/DeviceTypeIcon-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/DeviceTypeIcon-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/DeviceVerificationStatusCard-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/DeviceVerificationStatusCard-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/DeviceVerificationStatusCard-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/DeviceVerificationStatusCard-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/FilteredDeviceList-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/FilteredDeviceList-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/FilteredDeviceList-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/FilteredDeviceList-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/FilteredDeviceListHeader-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/FilteredDeviceListHeader-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/FilteredDeviceListHeader-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/FilteredDeviceListHeader-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/LoginWithQRFlow-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/LoginWithQRFlow-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/LoginWithQRFlow-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/LoginWithQRFlow-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/LoginWithQRSection-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/LoginWithQRSection-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/LoginWithQRSection-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/LoginWithQRSection-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/SecurityRecommendations-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/SecurityRecommendations-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/SecurityRecommendations-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/SecurityRecommendations-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/SelectableDeviceTile-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/SelectableDeviceTile-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/SelectableDeviceTile-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/SelectableDeviceTile-test.tsx.snap diff --git a/test/components/views/settings/devices/__snapshots__/deleteDevices-test.tsx.snap b/test/unit-tests/components/views/settings/devices/__snapshots__/deleteDevices-test.tsx.snap similarity index 100% rename from test/components/views/settings/devices/__snapshots__/deleteDevices-test.tsx.snap rename to test/unit-tests/components/views/settings/devices/__snapshots__/deleteDevices-test.tsx.snap diff --git a/test/components/views/settings/devices/deleteDevices-test.tsx b/test/unit-tests/components/views/settings/devices/deleteDevices-test.tsx similarity index 100% rename from test/components/views/settings/devices/deleteDevices-test.tsx rename to test/unit-tests/components/views/settings/devices/deleteDevices-test.tsx diff --git a/test/components/views/settings/devices/filter-test.ts b/test/unit-tests/components/views/settings/devices/filter-test.ts similarity index 100% rename from test/components/views/settings/devices/filter-test.ts rename to test/unit-tests/components/views/settings/devices/filter-test.ts diff --git a/test/components/views/settings/discovery/DiscoverySettings-test.tsx b/test/unit-tests/components/views/settings/discovery/DiscoverySettings-test.tsx similarity index 100% rename from test/components/views/settings/discovery/DiscoverySettings-test.tsx rename to test/unit-tests/components/views/settings/discovery/DiscoverySettings-test.tsx diff --git a/test/components/views/settings/notifications/Notifications2-test.tsx b/test/unit-tests/components/views/settings/notifications/Notifications2-test.tsx similarity index 100% rename from test/components/views/settings/notifications/Notifications2-test.tsx rename to test/unit-tests/components/views/settings/notifications/Notifications2-test.tsx diff --git a/test/components/views/settings/notifications/__snapshots__/Notifications2-test.tsx.snap b/test/unit-tests/components/views/settings/notifications/__snapshots__/Notifications2-test.tsx.snap similarity index 100% rename from test/components/views/settings/notifications/__snapshots__/Notifications2-test.tsx.snap rename to test/unit-tests/components/views/settings/notifications/__snapshots__/Notifications2-test.tsx.snap diff --git a/test/components/views/settings/shared/SettingsSubsection-test.tsx b/test/unit-tests/components/views/settings/shared/SettingsSubsection-test.tsx similarity index 100% rename from test/components/views/settings/shared/SettingsSubsection-test.tsx rename to test/unit-tests/components/views/settings/shared/SettingsSubsection-test.tsx diff --git a/test/components/views/settings/shared/SettingsSubsectionHeading-test.tsx b/test/unit-tests/components/views/settings/shared/SettingsSubsectionHeading-test.tsx similarity index 100% rename from test/components/views/settings/shared/SettingsSubsectionHeading-test.tsx rename to test/unit-tests/components/views/settings/shared/SettingsSubsectionHeading-test.tsx diff --git a/test/components/views/settings/shared/__snapshots__/SettingsSubsection-test.tsx.snap b/test/unit-tests/components/views/settings/shared/__snapshots__/SettingsSubsection-test.tsx.snap similarity index 100% rename from test/components/views/settings/shared/__snapshots__/SettingsSubsection-test.tsx.snap rename to test/unit-tests/components/views/settings/shared/__snapshots__/SettingsSubsection-test.tsx.snap diff --git a/test/components/views/settings/shared/__snapshots__/SettingsSubsectionHeading-test.tsx.snap b/test/unit-tests/components/views/settings/shared/__snapshots__/SettingsSubsectionHeading-test.tsx.snap similarity index 100% rename from test/components/views/settings/shared/__snapshots__/SettingsSubsectionHeading-test.tsx.snap rename to test/unit-tests/components/views/settings/shared/__snapshots__/SettingsSubsectionHeading-test.tsx.snap diff --git a/test/components/views/settings/tabs/SettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/SettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/SettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/SettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/__snapshots__/SettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/__snapshots__/SettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/__snapshots__/SettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/__snapshots__/SettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/room/AdvancedRoomSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/room/AdvancedRoomSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/room/AdvancedRoomSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/room/AdvancedRoomSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/room/BridgeSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/room/BridgeSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/room/BridgeSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/room/BridgeSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/room/PeopleRoomSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/room/PeopleRoomSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/room/PeopleRoomSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/room/PeopleRoomSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/room/RolesRoomSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/room/RolesRoomSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/room/RolesRoomSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/room/RolesRoomSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/room/SecurityRoomSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/room/SecurityRoomSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/room/SecurityRoomSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/room/SecurityRoomSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/room/VoipRoomSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/room/VoipRoomSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/room/VoipRoomSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/room/VoipRoomSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/room/__snapshots__/AdvancedRoomSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/room/__snapshots__/AdvancedRoomSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/room/__snapshots__/AdvancedRoomSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/room/__snapshots__/AdvancedRoomSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/room/__snapshots__/BridgeSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/room/__snapshots__/BridgeSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/room/__snapshots__/BridgeSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/room/__snapshots__/BridgeSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/room/__snapshots__/PeopleRoomSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/room/__snapshots__/PeopleRoomSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/room/__snapshots__/PeopleRoomSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/room/__snapshots__/PeopleRoomSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/room/__snapshots__/RolesRoomSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/room/__snapshots__/RolesRoomSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/room/__snapshots__/RolesRoomSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/room/__snapshots__/RolesRoomSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/room/__snapshots__/SecurityRoomSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/room/__snapshots__/SecurityRoomSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/room/__snapshots__/SecurityRoomSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/room/__snapshots__/SecurityRoomSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/user/AccountUserSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/user/AccountUserSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/user/AccountUserSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/user/AccountUserSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/user/AppearanceUserSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/user/AppearanceUserSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/user/AppearanceUserSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/user/AppearanceUserSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/user/KeyboardUserSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/user/KeyboardUserSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/user/KeyboardUserSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/user/KeyboardUserSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/user/LabsUserSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/user/LabsUserSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/user/LabsUserSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/user/LabsUserSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/user/MjolnirUserSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/user/MjolnirUserSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/user/MjolnirUserSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/user/MjolnirUserSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/user/PreferencesUserSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/user/PreferencesUserSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/user/PreferencesUserSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/user/PreferencesUserSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/user/SecurityUserSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/user/SecurityUserSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/user/SecurityUserSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/user/SecurityUserSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/user/SessionManagerTab-test.tsx b/test/unit-tests/components/views/settings/tabs/user/SessionManagerTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/user/SessionManagerTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/user/SessionManagerTab-test.tsx diff --git a/test/components/views/settings/tabs/user/SidebarUserSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/user/SidebarUserSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/user/SidebarUserSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/user/SidebarUserSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/user/VoiceUserSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/user/VoiceUserSettingsTab-test.tsx similarity index 100% rename from test/components/views/settings/tabs/user/VoiceUserSettingsTab-test.tsx rename to test/unit-tests/components/views/settings/tabs/user/VoiceUserSettingsTab-test.tsx diff --git a/test/components/views/settings/tabs/user/__snapshots__/AccountUserSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/user/__snapshots__/AccountUserSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/user/__snapshots__/AccountUserSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/user/__snapshots__/AccountUserSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/user/__snapshots__/AppearanceUserSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/user/__snapshots__/AppearanceUserSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/user/__snapshots__/AppearanceUserSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/user/__snapshots__/AppearanceUserSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/user/__snapshots__/KeyboardUserSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/user/__snapshots__/KeyboardUserSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/user/__snapshots__/KeyboardUserSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/user/__snapshots__/KeyboardUserSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/user/__snapshots__/LabsUserSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/user/__snapshots__/LabsUserSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/user/__snapshots__/LabsUserSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/user/__snapshots__/LabsUserSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/user/__snapshots__/MjolnirUserSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/user/__snapshots__/MjolnirUserSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/user/__snapshots__/MjolnirUserSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/user/__snapshots__/MjolnirUserSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/user/__snapshots__/PreferencesUserSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/user/__snapshots__/PreferencesUserSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/user/__snapshots__/PreferencesUserSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/user/__snapshots__/PreferencesUserSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/user/__snapshots__/SecurityUserSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/user/__snapshots__/SecurityUserSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/user/__snapshots__/SecurityUserSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/user/__snapshots__/SecurityUserSettingsTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/user/__snapshots__/SessionManagerTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/user/__snapshots__/SessionManagerTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/user/__snapshots__/SessionManagerTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/user/__snapshots__/SessionManagerTab-test.tsx.snap diff --git a/test/components/views/settings/tabs/user/__snapshots__/SidebarUserSettingsTab-test.tsx.snap b/test/unit-tests/components/views/settings/tabs/user/__snapshots__/SidebarUserSettingsTab-test.tsx.snap similarity index 100% rename from test/components/views/settings/tabs/user/__snapshots__/SidebarUserSettingsTab-test.tsx.snap rename to test/unit-tests/components/views/settings/tabs/user/__snapshots__/SidebarUserSettingsTab-test.tsx.snap diff --git a/test/components/views/spaces/AddExistingToSpaceDialog-test.tsx b/test/unit-tests/components/views/spaces/AddExistingToSpaceDialog-test.tsx similarity index 100% rename from test/components/views/spaces/AddExistingToSpaceDialog-test.tsx rename to test/unit-tests/components/views/spaces/AddExistingToSpaceDialog-test.tsx diff --git a/test/components/views/spaces/QuickSettingsButton-test.tsx b/test/unit-tests/components/views/spaces/QuickSettingsButton-test.tsx similarity index 100% rename from test/components/views/spaces/QuickSettingsButton-test.tsx rename to test/unit-tests/components/views/spaces/QuickSettingsButton-test.tsx diff --git a/test/components/views/spaces/QuickThemeSwitcher-test.tsx b/test/unit-tests/components/views/spaces/QuickThemeSwitcher-test.tsx similarity index 100% rename from test/components/views/spaces/QuickThemeSwitcher-test.tsx rename to test/unit-tests/components/views/spaces/QuickThemeSwitcher-test.tsx diff --git a/test/components/views/spaces/SpacePanel-test.tsx b/test/unit-tests/components/views/spaces/SpacePanel-test.tsx similarity index 100% rename from test/components/views/spaces/SpacePanel-test.tsx rename to test/unit-tests/components/views/spaces/SpacePanel-test.tsx diff --git a/test/components/views/spaces/SpaceSettingsVisibilityTab-test.tsx b/test/unit-tests/components/views/spaces/SpaceSettingsVisibilityTab-test.tsx similarity index 100% rename from test/components/views/spaces/SpaceSettingsVisibilityTab-test.tsx rename to test/unit-tests/components/views/spaces/SpaceSettingsVisibilityTab-test.tsx diff --git a/test/components/views/spaces/SpaceTreeLevel-test.tsx b/test/unit-tests/components/views/spaces/SpaceTreeLevel-test.tsx similarity index 100% rename from test/components/views/spaces/SpaceTreeLevel-test.tsx rename to test/unit-tests/components/views/spaces/SpaceTreeLevel-test.tsx diff --git a/test/components/views/spaces/ThreadsActivityCentre-test.tsx b/test/unit-tests/components/views/spaces/ThreadsActivityCentre-test.tsx similarity index 100% rename from test/components/views/spaces/ThreadsActivityCentre-test.tsx rename to test/unit-tests/components/views/spaces/ThreadsActivityCentre-test.tsx diff --git a/test/components/views/spaces/__snapshots__/AddExistingToSpaceDialog-test.tsx.snap b/test/unit-tests/components/views/spaces/__snapshots__/AddExistingToSpaceDialog-test.tsx.snap similarity index 100% rename from test/components/views/spaces/__snapshots__/AddExistingToSpaceDialog-test.tsx.snap rename to test/unit-tests/components/views/spaces/__snapshots__/AddExistingToSpaceDialog-test.tsx.snap diff --git a/test/components/views/spaces/__snapshots__/QuickSettingsButton-test.tsx.snap b/test/unit-tests/components/views/spaces/__snapshots__/QuickSettingsButton-test.tsx.snap similarity index 100% rename from test/components/views/spaces/__snapshots__/QuickSettingsButton-test.tsx.snap rename to test/unit-tests/components/views/spaces/__snapshots__/QuickSettingsButton-test.tsx.snap diff --git a/test/components/views/spaces/__snapshots__/SpacePanel-test.tsx.snap b/test/unit-tests/components/views/spaces/__snapshots__/SpacePanel-test.tsx.snap similarity index 100% rename from test/components/views/spaces/__snapshots__/SpacePanel-test.tsx.snap rename to test/unit-tests/components/views/spaces/__snapshots__/SpacePanel-test.tsx.snap diff --git a/test/components/views/spaces/__snapshots__/SpaceSettingsVisibilityTab-test.tsx.snap b/test/unit-tests/components/views/spaces/__snapshots__/SpaceSettingsVisibilityTab-test.tsx.snap similarity index 100% rename from test/components/views/spaces/__snapshots__/SpaceSettingsVisibilityTab-test.tsx.snap rename to test/unit-tests/components/views/spaces/__snapshots__/SpaceSettingsVisibilityTab-test.tsx.snap diff --git a/test/components/views/spaces/__snapshots__/SpaceTreeLevel-test.tsx.snap b/test/unit-tests/components/views/spaces/__snapshots__/SpaceTreeLevel-test.tsx.snap similarity index 100% rename from test/components/views/spaces/__snapshots__/SpaceTreeLevel-test.tsx.snap rename to test/unit-tests/components/views/spaces/__snapshots__/SpaceTreeLevel-test.tsx.snap diff --git a/test/components/views/spaces/__snapshots__/ThreadsActivityCentre-test.tsx.snap b/test/unit-tests/components/views/spaces/__snapshots__/ThreadsActivityCentre-test.tsx.snap similarity index 100% rename from test/components/views/spaces/__snapshots__/ThreadsActivityCentre-test.tsx.snap rename to test/unit-tests/components/views/spaces/__snapshots__/ThreadsActivityCentre-test.tsx.snap diff --git a/test/components/views/spaces/useUnreadThreadRooms-test.tsx b/test/unit-tests/components/views/spaces/useUnreadThreadRooms-test.tsx similarity index 100% rename from test/components/views/spaces/useUnreadThreadRooms-test.tsx rename to test/unit-tests/components/views/spaces/useUnreadThreadRooms-test.tsx diff --git a/test/components/views/toasts/GenericToast-test.tsx b/test/unit-tests/components/views/toasts/GenericToast-test.tsx similarity index 100% rename from test/components/views/toasts/GenericToast-test.tsx rename to test/unit-tests/components/views/toasts/GenericToast-test.tsx diff --git a/test/components/views/toasts/VerificationRequestToast-test.tsx b/test/unit-tests/components/views/toasts/VerificationRequestToast-test.tsx similarity index 100% rename from test/components/views/toasts/VerificationRequestToast-test.tsx rename to test/unit-tests/components/views/toasts/VerificationRequestToast-test.tsx diff --git a/test/components/views/toasts/__snapshots__/GenericToast-test.tsx.snap b/test/unit-tests/components/views/toasts/__snapshots__/GenericToast-test.tsx.snap similarity index 100% rename from test/components/views/toasts/__snapshots__/GenericToast-test.tsx.snap rename to test/unit-tests/components/views/toasts/__snapshots__/GenericToast-test.tsx.snap diff --git a/test/components/views/toasts/__snapshots__/VerificationRequestToast-test.tsx.snap b/test/unit-tests/components/views/toasts/__snapshots__/VerificationRequestToast-test.tsx.snap similarity index 100% rename from test/components/views/toasts/__snapshots__/VerificationRequestToast-test.tsx.snap rename to test/unit-tests/components/views/toasts/__snapshots__/VerificationRequestToast-test.tsx.snap diff --git a/test/components/views/typography/Caption-test.tsx b/test/unit-tests/components/views/typography/Caption-test.tsx similarity index 100% rename from test/components/views/typography/Caption-test.tsx rename to test/unit-tests/components/views/typography/Caption-test.tsx diff --git a/test/components/views/typography/Heading-test.tsx b/test/unit-tests/components/views/typography/Heading-test.tsx similarity index 100% rename from test/components/views/typography/Heading-test.tsx rename to test/unit-tests/components/views/typography/Heading-test.tsx diff --git a/test/components/views/typography/__snapshots__/Caption-test.tsx.snap b/test/unit-tests/components/views/typography/__snapshots__/Caption-test.tsx.snap similarity index 100% rename from test/components/views/typography/__snapshots__/Caption-test.tsx.snap rename to test/unit-tests/components/views/typography/__snapshots__/Caption-test.tsx.snap diff --git a/test/components/views/typography/__snapshots__/Heading-test.tsx.snap b/test/unit-tests/components/views/typography/__snapshots__/Heading-test.tsx.snap similarity index 100% rename from test/components/views/typography/__snapshots__/Heading-test.tsx.snap rename to test/unit-tests/components/views/typography/__snapshots__/Heading-test.tsx.snap diff --git a/test/components/views/user-onboarding/UserOnboardingList-test.tsx b/test/unit-tests/components/views/user-onboarding/UserOnboardingList-test.tsx similarity index 100% rename from test/components/views/user-onboarding/UserOnboardingList-test.tsx rename to test/unit-tests/components/views/user-onboarding/UserOnboardingList-test.tsx diff --git a/test/components/views/user-onboarding/UserOnboardingPage-test.tsx b/test/unit-tests/components/views/user-onboarding/UserOnboardingPage-test.tsx similarity index 100% rename from test/components/views/user-onboarding/UserOnboardingPage-test.tsx rename to test/unit-tests/components/views/user-onboarding/UserOnboardingPage-test.tsx diff --git a/test/components/views/voip/CallView-test.tsx b/test/unit-tests/components/views/voip/CallView-test.tsx similarity index 100% rename from test/components/views/voip/CallView-test.tsx rename to test/unit-tests/components/views/voip/CallView-test.tsx diff --git a/test/components/views/voip/DialPad-test.tsx b/test/unit-tests/components/views/voip/DialPad-test.tsx similarity index 100% rename from test/components/views/voip/DialPad-test.tsx rename to test/unit-tests/components/views/voip/DialPad-test.tsx diff --git a/test/components/views/voip/LegacyCallView/LegacyCallViewButtons-test.tsx b/test/unit-tests/components/views/voip/LegacyCallView/LegacyCallViewButtons-test.tsx similarity index 100% rename from test/components/views/voip/LegacyCallView/LegacyCallViewButtons-test.tsx rename to test/unit-tests/components/views/voip/LegacyCallView/LegacyCallViewButtons-test.tsx diff --git a/test/components/views/voip/LegacyCallView/__snapshots__/LegacyCallViewButtons-test.tsx.snap b/test/unit-tests/components/views/voip/LegacyCallView/__snapshots__/LegacyCallViewButtons-test.tsx.snap similarity index 100% rename from test/components/views/voip/LegacyCallView/__snapshots__/LegacyCallViewButtons-test.tsx.snap rename to test/unit-tests/components/views/voip/LegacyCallView/__snapshots__/LegacyCallViewButtons-test.tsx.snap diff --git a/test/components/views/voip/VideoFeed-test.tsx b/test/unit-tests/components/views/voip/VideoFeed-test.tsx similarity index 100% rename from test/components/views/voip/VideoFeed-test.tsx rename to test/unit-tests/components/views/voip/VideoFeed-test.tsx diff --git a/test/contexts/SdkContext-test.ts b/test/unit-tests/contexts/SdkContext-test.ts similarity index 100% rename from test/contexts/SdkContext-test.ts rename to test/unit-tests/contexts/SdkContext-test.ts diff --git a/test/contexts/ToastContext-test.ts b/test/unit-tests/contexts/ToastContext-test.ts similarity index 100% rename from test/contexts/ToastContext-test.ts rename to test/unit-tests/contexts/ToastContext-test.ts diff --git a/test/createRoom-test.ts b/test/unit-tests/createRoom-test.ts similarity index 100% rename from test/createRoom-test.ts rename to test/unit-tests/createRoom-test.ts diff --git a/test/customisations/Media-test.ts b/test/unit-tests/customisations/Media-test.ts similarity index 100% rename from test/customisations/Media-test.ts rename to test/unit-tests/customisations/Media-test.ts diff --git a/test/dispatcher/dispatcher-test.ts b/test/unit-tests/dispatcher/dispatcher-test.ts similarity index 100% rename from test/dispatcher/dispatcher-test.ts rename to test/unit-tests/dispatcher/dispatcher-test.ts diff --git a/test/editor/__snapshots__/deserialize-test.ts.snap b/test/unit-tests/editor/__snapshots__/deserialize-test.ts.snap similarity index 100% rename from test/editor/__snapshots__/deserialize-test.ts.snap rename to test/unit-tests/editor/__snapshots__/deserialize-test.ts.snap diff --git a/test/editor/caret-test.ts b/test/unit-tests/editor/caret-test.ts similarity index 100% rename from test/editor/caret-test.ts rename to test/unit-tests/editor/caret-test.ts diff --git a/test/editor/deserialize-test.ts b/test/unit-tests/editor/deserialize-test.ts similarity index 100% rename from test/editor/deserialize-test.ts rename to test/unit-tests/editor/deserialize-test.ts diff --git a/test/editor/diff-test.ts b/test/unit-tests/editor/diff-test.ts similarity index 100% rename from test/editor/diff-test.ts rename to test/unit-tests/editor/diff-test.ts diff --git a/test/editor/history-test.ts b/test/unit-tests/editor/history-test.ts similarity index 100% rename from test/editor/history-test.ts rename to test/unit-tests/editor/history-test.ts diff --git a/test/editor/mock.ts b/test/unit-tests/editor/mock.ts similarity index 100% rename from test/editor/mock.ts rename to test/unit-tests/editor/mock.ts diff --git a/test/editor/model-test.ts b/test/unit-tests/editor/model-test.ts similarity index 100% rename from test/editor/model-test.ts rename to test/unit-tests/editor/model-test.ts diff --git a/test/editor/operations-test.ts b/test/unit-tests/editor/operations-test.ts similarity index 100% rename from test/editor/operations-test.ts rename to test/unit-tests/editor/operations-test.ts diff --git a/test/editor/parts-test.ts b/test/unit-tests/editor/parts-test.ts similarity index 100% rename from test/editor/parts-test.ts rename to test/unit-tests/editor/parts-test.ts diff --git a/test/editor/position-test.ts b/test/unit-tests/editor/position-test.ts similarity index 100% rename from test/editor/position-test.ts rename to test/unit-tests/editor/position-test.ts diff --git a/test/editor/range-test.ts b/test/unit-tests/editor/range-test.ts similarity index 100% rename from test/editor/range-test.ts rename to test/unit-tests/editor/range-test.ts diff --git a/test/editor/roundtrip-test.ts b/test/unit-tests/editor/roundtrip-test.ts similarity index 100% rename from test/editor/roundtrip-test.ts rename to test/unit-tests/editor/roundtrip-test.ts diff --git a/test/editor/serialize-test.ts b/test/unit-tests/editor/serialize-test.ts similarity index 100% rename from test/editor/serialize-test.ts rename to test/unit-tests/editor/serialize-test.ts diff --git a/test/email-test.ts b/test/unit-tests/email-test.ts similarity index 100% rename from test/email-test.ts rename to test/unit-tests/email-test.ts diff --git a/test/events/EventTileFactory-test.ts b/test/unit-tests/events/EventTileFactory-test.ts similarity index 100% rename from test/events/EventTileFactory-test.ts rename to test/unit-tests/events/EventTileFactory-test.ts diff --git a/test/events/RelationsHelper-test.ts b/test/unit-tests/events/RelationsHelper-test.ts similarity index 100% rename from test/events/RelationsHelper-test.ts rename to test/unit-tests/events/RelationsHelper-test.ts diff --git a/test/events/forward/getForwardableEvent-test.ts b/test/unit-tests/events/forward/getForwardableEvent-test.ts similarity index 100% rename from test/events/forward/getForwardableEvent-test.ts rename to test/unit-tests/events/forward/getForwardableEvent-test.ts diff --git a/test/events/location/getShareableLocationEvent-test.ts b/test/unit-tests/events/location/getShareableLocationEvent-test.ts similarity index 100% rename from test/events/location/getShareableLocationEvent-test.ts rename to test/unit-tests/events/location/getShareableLocationEvent-test.ts diff --git a/test/hooks/room/useRoomThreadNotifications-test.tsx b/test/unit-tests/hooks/room/useRoomThreadNotifications-test.tsx similarity index 100% rename from test/hooks/room/useRoomThreadNotifications-test.tsx rename to test/unit-tests/hooks/room/useRoomThreadNotifications-test.tsx diff --git a/test/hooks/useDebouncedCallback-test.tsx b/test/unit-tests/hooks/useDebouncedCallback-test.tsx similarity index 100% rename from test/hooks/useDebouncedCallback-test.tsx rename to test/unit-tests/hooks/useDebouncedCallback-test.tsx diff --git a/test/hooks/useLatestResult-test.tsx b/test/unit-tests/hooks/useLatestResult-test.tsx similarity index 100% rename from test/hooks/useLatestResult-test.tsx rename to test/unit-tests/hooks/useLatestResult-test.tsx diff --git a/test/hooks/useNotificationSettings-test.tsx b/test/unit-tests/hooks/useNotificationSettings-test.tsx similarity index 100% rename from test/hooks/useNotificationSettings-test.tsx rename to test/unit-tests/hooks/useNotificationSettings-test.tsx diff --git a/test/hooks/useProfileInfo-test.tsx b/test/unit-tests/hooks/useProfileInfo-test.tsx similarity index 100% rename from test/hooks/useProfileInfo-test.tsx rename to test/unit-tests/hooks/useProfileInfo-test.tsx diff --git a/test/hooks/usePublicRoomDirectory-test.tsx b/test/unit-tests/hooks/usePublicRoomDirectory-test.tsx similarity index 100% rename from test/hooks/usePublicRoomDirectory-test.tsx rename to test/unit-tests/hooks/usePublicRoomDirectory-test.tsx diff --git a/test/hooks/useRoomMembers-test.tsx b/test/unit-tests/hooks/useRoomMembers-test.tsx similarity index 100% rename from test/hooks/useRoomMembers-test.tsx rename to test/unit-tests/hooks/useRoomMembers-test.tsx diff --git a/test/hooks/useSlidingSyncRoomSearch-test.tsx b/test/unit-tests/hooks/useSlidingSyncRoomSearch-test.tsx similarity index 100% rename from test/hooks/useSlidingSyncRoomSearch-test.tsx rename to test/unit-tests/hooks/useSlidingSyncRoomSearch-test.tsx diff --git a/test/hooks/useUnreadNotifications-test.ts b/test/unit-tests/hooks/useUnreadNotifications-test.ts similarity index 100% rename from test/hooks/useUnreadNotifications-test.ts rename to test/unit-tests/hooks/useUnreadNotifications-test.ts diff --git a/test/hooks/useUserDirectory-test.tsx b/test/unit-tests/hooks/useUserDirectory-test.tsx similarity index 100% rename from test/hooks/useUserDirectory-test.tsx rename to test/unit-tests/hooks/useUserDirectory-test.tsx diff --git a/test/hooks/useUserOnboardingTasks-test.tsx b/test/unit-tests/hooks/useUserOnboardingTasks-test.tsx similarity index 100% rename from test/hooks/useUserOnboardingTasks-test.tsx rename to test/unit-tests/hooks/useUserOnboardingTasks-test.tsx diff --git a/test/hooks/useWindowWidth-test.ts b/test/unit-tests/hooks/useWindowWidth-test.ts similarity index 100% rename from test/hooks/useWindowWidth-test.ts rename to test/unit-tests/hooks/useWindowWidth-test.ts diff --git a/test/i18n/languages.json b/test/unit-tests/i18n/languages.json similarity index 100% rename from test/i18n/languages.json rename to test/unit-tests/i18n/languages.json diff --git a/test/images/animated-logo.apng b/test/unit-tests/images/animated-logo.apng similarity index 100% rename from test/images/animated-logo.apng rename to test/unit-tests/images/animated-logo.apng diff --git a/test/images/animated-logo.gif b/test/unit-tests/images/animated-logo.gif similarity index 100% rename from test/images/animated-logo.gif rename to test/unit-tests/images/animated-logo.gif diff --git a/test/images/animated-logo.webp b/test/unit-tests/images/animated-logo.webp similarity index 100% rename from test/images/animated-logo.webp rename to test/unit-tests/images/animated-logo.webp diff --git a/test/images/static-logo.gif b/test/unit-tests/images/static-logo.gif similarity index 100% rename from test/images/static-logo.gif rename to test/unit-tests/images/static-logo.gif diff --git a/test/images/static-logo.png b/test/unit-tests/images/static-logo.png similarity index 100% rename from test/images/static-logo.png rename to test/unit-tests/images/static-logo.png diff --git a/test/images/static-logo.webp b/test/unit-tests/images/static-logo.webp similarity index 100% rename from test/images/static-logo.webp rename to test/unit-tests/images/static-logo.webp diff --git a/test/img/edit.png b/test/unit-tests/img/edit.png similarity index 100% rename from test/img/edit.png rename to test/unit-tests/img/edit.png diff --git a/test/img/icon_context_message.svg b/test/unit-tests/img/icon_context_message.svg similarity index 100% rename from test/img/icon_context_message.svg rename to test/unit-tests/img/icon_context_message.svg diff --git a/test/integrations/IntegrationManagers-test.ts b/test/unit-tests/integrations/IntegrationManagers-test.ts similarity index 100% rename from test/integrations/IntegrationManagers-test.ts rename to test/unit-tests/integrations/IntegrationManagers-test.ts diff --git a/test/languageHandler-test.tsx b/test/unit-tests/languageHandler-test.tsx similarity index 100% rename from test/languageHandler-test.tsx rename to test/unit-tests/languageHandler-test.tsx diff --git a/test/linkify-matrix-test.ts b/test/unit-tests/linkify-matrix-test.ts similarity index 100% rename from test/linkify-matrix-test.ts rename to test/unit-tests/linkify-matrix-test.ts diff --git a/test/models/Call-test.ts b/test/unit-tests/models/Call-test.ts similarity index 100% rename from test/models/Call-test.ts rename to test/unit-tests/models/Call-test.ts diff --git a/test/models/LocalRoom-test.ts b/test/unit-tests/models/LocalRoom-test.ts similarity index 100% rename from test/models/LocalRoom-test.ts rename to test/unit-tests/models/LocalRoom-test.ts diff --git a/test/models/notificationsettings/NotificationSettings-test.ts b/test/unit-tests/models/notificationsettings/NotificationSettings-test.ts similarity index 100% rename from test/models/notificationsettings/NotificationSettings-test.ts rename to test/unit-tests/models/notificationsettings/NotificationSettings-test.ts diff --git a/test/models/notificationsettings/pushrules_bug_botnotices.json b/test/unit-tests/models/notificationsettings/pushrules_bug_botnotices.json similarity index 100% rename from test/models/notificationsettings/pushrules_bug_botnotices.json rename to test/unit-tests/models/notificationsettings/pushrules_bug_botnotices.json diff --git a/test/models/notificationsettings/pushrules_bug_keyword_only.json b/test/unit-tests/models/notificationsettings/pushrules_bug_keyword_only.json similarity index 100% rename from test/models/notificationsettings/pushrules_bug_keyword_only.json rename to test/unit-tests/models/notificationsettings/pushrules_bug_keyword_only.json diff --git a/test/models/notificationsettings/pushrules_default.json b/test/unit-tests/models/notificationsettings/pushrules_default.json similarity index 100% rename from test/models/notificationsettings/pushrules_default.json rename to test/unit-tests/models/notificationsettings/pushrules_default.json diff --git a/test/models/notificationsettings/pushrules_default_new.json b/test/unit-tests/models/notificationsettings/pushrules_default_new.json similarity index 100% rename from test/models/notificationsettings/pushrules_default_new.json rename to test/unit-tests/models/notificationsettings/pushrules_default_new.json diff --git a/test/models/notificationsettings/pushrules_sample.json b/test/unit-tests/models/notificationsettings/pushrules_sample.json similarity index 100% rename from test/models/notificationsettings/pushrules_sample.json rename to test/unit-tests/models/notificationsettings/pushrules_sample.json diff --git a/test/modules/AppModule-test.ts b/test/unit-tests/modules/AppModule-test.ts similarity index 100% rename from test/modules/AppModule-test.ts rename to test/unit-tests/modules/AppModule-test.ts diff --git a/test/modules/MockModule.ts b/test/unit-tests/modules/MockModule.ts similarity index 100% rename from test/modules/MockModule.ts rename to test/unit-tests/modules/MockModule.ts diff --git a/test/modules/ModuleComponents-test.tsx b/test/unit-tests/modules/ModuleComponents-test.tsx similarity index 100% rename from test/modules/ModuleComponents-test.tsx rename to test/unit-tests/modules/ModuleComponents-test.tsx diff --git a/test/modules/ModuleRunner-test.ts b/test/unit-tests/modules/ModuleRunner-test.ts similarity index 100% rename from test/modules/ModuleRunner-test.ts rename to test/unit-tests/modules/ModuleRunner-test.ts diff --git a/test/modules/ProxiedModuleApi-test.tsx b/test/unit-tests/modules/ProxiedModuleApi-test.tsx similarity index 100% rename from test/modules/ProxiedModuleApi-test.tsx rename to test/unit-tests/modules/ProxiedModuleApi-test.tsx diff --git a/test/modules/__snapshots__/ModuleComponents-test.tsx.snap b/test/unit-tests/modules/__snapshots__/ModuleComponents-test.tsx.snap similarity index 100% rename from test/modules/__snapshots__/ModuleComponents-test.tsx.snap rename to test/unit-tests/modules/__snapshots__/ModuleComponents-test.tsx.snap diff --git a/test/notifications/ContentRules-test.ts b/test/unit-tests/notifications/ContentRules-test.ts similarity index 100% rename from test/notifications/ContentRules-test.ts rename to test/unit-tests/notifications/ContentRules-test.ts diff --git a/test/notifications/PushRuleVectorState-test.ts b/test/unit-tests/notifications/PushRuleVectorState-test.ts similarity index 100% rename from test/notifications/PushRuleVectorState-test.ts rename to test/unit-tests/notifications/PushRuleVectorState-test.ts diff --git a/test/predictableRandom.ts b/test/unit-tests/predictableRandom.ts similarity index 100% rename from test/predictableRandom.ts rename to test/unit-tests/predictableRandom.ts diff --git a/test/settings/SettingsStore-test.ts b/test/unit-tests/settings/SettingsStore-test.ts similarity index 100% rename from test/settings/SettingsStore-test.ts rename to test/unit-tests/settings/SettingsStore-test.ts diff --git a/test/settings/controllers/AnalyticsController-test.ts b/test/unit-tests/settings/controllers/AnalyticsController-test.ts similarity index 100% rename from test/settings/controllers/AnalyticsController-test.ts rename to test/unit-tests/settings/controllers/AnalyticsController-test.ts diff --git a/test/settings/controllers/DeviceIsolationModeController-test.ts b/test/unit-tests/settings/controllers/DeviceIsolationModeController-test.ts similarity index 100% rename from test/settings/controllers/DeviceIsolationModeController-test.ts rename to test/unit-tests/settings/controllers/DeviceIsolationModeController-test.ts diff --git a/test/settings/controllers/FallbackIceServerController-test.ts b/test/unit-tests/settings/controllers/FallbackIceServerController-test.ts similarity index 100% rename from test/settings/controllers/FallbackIceServerController-test.ts rename to test/unit-tests/settings/controllers/FallbackIceServerController-test.ts diff --git a/test/settings/controllers/FontSizeController-test.ts b/test/unit-tests/settings/controllers/FontSizeController-test.ts similarity index 100% rename from test/settings/controllers/FontSizeController-test.ts rename to test/unit-tests/settings/controllers/FontSizeController-test.ts diff --git a/test/settings/controllers/IncompatibleController-test.ts b/test/unit-tests/settings/controllers/IncompatibleController-test.ts similarity index 100% rename from test/settings/controllers/IncompatibleController-test.ts rename to test/unit-tests/settings/controllers/IncompatibleController-test.ts diff --git a/test/settings/controllers/ServerSupportUnstableFeatureController-test.ts b/test/unit-tests/settings/controllers/ServerSupportUnstableFeatureController-test.ts similarity index 100% rename from test/settings/controllers/ServerSupportUnstableFeatureController-test.ts rename to test/unit-tests/settings/controllers/ServerSupportUnstableFeatureController-test.ts diff --git a/test/settings/controllers/SystemFontController-test.ts b/test/unit-tests/settings/controllers/SystemFontController-test.ts similarity index 100% rename from test/settings/controllers/SystemFontController-test.ts rename to test/unit-tests/settings/controllers/SystemFontController-test.ts diff --git a/test/settings/controllers/ThemeController-test.ts b/test/unit-tests/settings/controllers/ThemeController-test.ts similarity index 100% rename from test/settings/controllers/ThemeController-test.ts rename to test/unit-tests/settings/controllers/ThemeController-test.ts diff --git a/test/settings/enums/ImageSize-test.ts b/test/unit-tests/settings/enums/ImageSize-test.ts similarity index 100% rename from test/settings/enums/ImageSize-test.ts rename to test/unit-tests/settings/enums/ImageSize-test.ts diff --git a/test/settings/handlers/DeviceSettingsHandler-test.ts b/test/unit-tests/settings/handlers/DeviceSettingsHandler-test.ts similarity index 100% rename from test/settings/handlers/DeviceSettingsHandler-test.ts rename to test/unit-tests/settings/handlers/DeviceSettingsHandler-test.ts diff --git a/test/settings/handlers/RoomDeviceSettingsHandler-test.ts b/test/unit-tests/settings/handlers/RoomDeviceSettingsHandler-test.ts similarity index 100% rename from test/settings/handlers/RoomDeviceSettingsHandler-test.ts rename to test/unit-tests/settings/handlers/RoomDeviceSettingsHandler-test.ts diff --git a/test/settings/watchers/FontWatcher-test.tsx b/test/unit-tests/settings/watchers/FontWatcher-test.tsx similarity index 100% rename from test/settings/watchers/FontWatcher-test.tsx rename to test/unit-tests/settings/watchers/FontWatcher-test.tsx diff --git a/test/settings/watchers/ThemeWatcher-test.tsx b/test/unit-tests/settings/watchers/ThemeWatcher-test.tsx similarity index 100% rename from test/settings/watchers/ThemeWatcher-test.tsx rename to test/unit-tests/settings/watchers/ThemeWatcher-test.tsx diff --git a/test/setup/mocks.ts b/test/unit-tests/setup/mocks.ts similarity index 100% rename from test/setup/mocks.ts rename to test/unit-tests/setup/mocks.ts diff --git a/test/setup/setupConfig.ts b/test/unit-tests/setup/setupConfig.ts similarity index 100% rename from test/setup/setupConfig.ts rename to test/unit-tests/setup/setupConfig.ts diff --git a/test/setup/setupLanguage.ts b/test/unit-tests/setup/setupLanguage.ts similarity index 100% rename from test/setup/setupLanguage.ts rename to test/unit-tests/setup/setupLanguage.ts diff --git a/test/setup/setupManualMocks.ts b/test/unit-tests/setup/setupManualMocks.ts similarity index 100% rename from test/setup/setupManualMocks.ts rename to test/unit-tests/setup/setupManualMocks.ts diff --git a/test/stores/AccountPasswordStore-test.ts b/test/unit-tests/stores/AccountPasswordStore-test.ts similarity index 100% rename from test/stores/AccountPasswordStore-test.ts rename to test/unit-tests/stores/AccountPasswordStore-test.ts diff --git a/test/stores/ActiveWidgetStore-test.ts b/test/unit-tests/stores/ActiveWidgetStore-test.ts similarity index 100% rename from test/stores/ActiveWidgetStore-test.ts rename to test/unit-tests/stores/ActiveWidgetStore-test.ts diff --git a/test/stores/AutoRageshakeStore-test.ts b/test/unit-tests/stores/AutoRageshakeStore-test.ts similarity index 100% rename from test/stores/AutoRageshakeStore-test.ts rename to test/unit-tests/stores/AutoRageshakeStore-test.ts diff --git a/test/stores/BreadcrumbsStore-test.ts b/test/unit-tests/stores/BreadcrumbsStore-test.ts similarity index 100% rename from test/stores/BreadcrumbsStore-test.ts rename to test/unit-tests/stores/BreadcrumbsStore-test.ts diff --git a/test/stores/LifecycleStore-test.ts b/test/unit-tests/stores/LifecycleStore-test.ts similarity index 100% rename from test/stores/LifecycleStore-test.ts rename to test/unit-tests/stores/LifecycleStore-test.ts diff --git a/test/stores/MemberListStore-test.ts b/test/unit-tests/stores/MemberListStore-test.ts similarity index 100% rename from test/stores/MemberListStore-test.ts rename to test/unit-tests/stores/MemberListStore-test.ts diff --git a/test/stores/OwnBeaconStore-test.ts b/test/unit-tests/stores/OwnBeaconStore-test.ts similarity index 100% rename from test/stores/OwnBeaconStore-test.ts rename to test/unit-tests/stores/OwnBeaconStore-test.ts diff --git a/test/stores/OwnProfileStore-test.ts b/test/unit-tests/stores/OwnProfileStore-test.ts similarity index 100% rename from test/stores/OwnProfileStore-test.ts rename to test/unit-tests/stores/OwnProfileStore-test.ts diff --git a/test/stores/ReleaseAnnouncementStore-test.tsx b/test/unit-tests/stores/ReleaseAnnouncementStore-test.tsx similarity index 100% rename from test/stores/ReleaseAnnouncementStore-test.tsx rename to test/unit-tests/stores/ReleaseAnnouncementStore-test.tsx diff --git a/test/stores/RoomNotificationStateStore-test.ts b/test/unit-tests/stores/RoomNotificationStateStore-test.ts similarity index 100% rename from test/stores/RoomNotificationStateStore-test.ts rename to test/unit-tests/stores/RoomNotificationStateStore-test.ts diff --git a/test/stores/RoomViewStore-test.ts b/test/unit-tests/stores/RoomViewStore-test.ts similarity index 100% rename from test/stores/RoomViewStore-test.ts rename to test/unit-tests/stores/RoomViewStore-test.ts diff --git a/test/stores/SetupEncryptionStore-test.ts b/test/unit-tests/stores/SetupEncryptionStore-test.ts similarity index 100% rename from test/stores/SetupEncryptionStore-test.ts rename to test/unit-tests/stores/SetupEncryptionStore-test.ts diff --git a/test/stores/SpaceStore-test.ts b/test/unit-tests/stores/SpaceStore-test.ts similarity index 100% rename from test/stores/SpaceStore-test.ts rename to test/unit-tests/stores/SpaceStore-test.ts diff --git a/test/stores/ToastStore-test.ts b/test/unit-tests/stores/ToastStore-test.ts similarity index 100% rename from test/stores/ToastStore-test.ts rename to test/unit-tests/stores/ToastStore-test.ts diff --git a/test/stores/TypingStore-test.ts b/test/unit-tests/stores/TypingStore-test.ts similarity index 100% rename from test/stores/TypingStore-test.ts rename to test/unit-tests/stores/TypingStore-test.ts diff --git a/test/stores/UserProfilesStore-test.ts b/test/unit-tests/stores/UserProfilesStore-test.ts similarity index 100% rename from test/stores/UserProfilesStore-test.ts rename to test/unit-tests/stores/UserProfilesStore-test.ts diff --git a/test/stores/VoiceRecordingStore-test.ts b/test/unit-tests/stores/VoiceRecordingStore-test.ts similarity index 100% rename from test/stores/VoiceRecordingStore-test.ts rename to test/unit-tests/stores/VoiceRecordingStore-test.ts diff --git a/test/stores/WidgetLayoutStore-test.ts b/test/unit-tests/stores/WidgetLayoutStore-test.ts similarity index 100% rename from test/stores/WidgetLayoutStore-test.ts rename to test/unit-tests/stores/WidgetLayoutStore-test.ts diff --git a/test/stores/__snapshots__/RoomViewStore-test.ts.snap b/test/unit-tests/stores/__snapshots__/RoomViewStore-test.ts.snap similarity index 100% rename from test/stores/__snapshots__/RoomViewStore-test.ts.snap rename to test/unit-tests/stores/__snapshots__/RoomViewStore-test.ts.snap diff --git a/test/stores/notifications/NotificationColor-test.ts b/test/unit-tests/stores/notifications/NotificationColor-test.ts similarity index 100% rename from test/stores/notifications/NotificationColor-test.ts rename to test/unit-tests/stores/notifications/NotificationColor-test.ts diff --git a/test/stores/notifications/RoomNotificationState-test.ts b/test/unit-tests/stores/notifications/RoomNotificationState-test.ts similarity index 100% rename from test/stores/notifications/RoomNotificationState-test.ts rename to test/unit-tests/stores/notifications/RoomNotificationState-test.ts diff --git a/test/stores/oidc/OidcClientStore-test.ts b/test/unit-tests/stores/oidc/OidcClientStore-test.ts similarity index 100% rename from test/stores/oidc/OidcClientStore-test.ts rename to test/unit-tests/stores/oidc/OidcClientStore-test.ts diff --git a/test/stores/right-panel/RightPanelStore-test.ts b/test/unit-tests/stores/right-panel/RightPanelStore-test.ts similarity index 100% rename from test/stores/right-panel/RightPanelStore-test.ts rename to test/unit-tests/stores/right-panel/RightPanelStore-test.ts diff --git a/test/stores/right-panel/action-handlers/View3pidInvite-test.ts b/test/unit-tests/stores/right-panel/action-handlers/View3pidInvite-test.ts similarity index 100% rename from test/stores/right-panel/action-handlers/View3pidInvite-test.ts rename to test/unit-tests/stores/right-panel/action-handlers/View3pidInvite-test.ts diff --git a/test/stores/room-list/MessagePreviewStore-test.ts b/test/unit-tests/stores/room-list/MessagePreviewStore-test.ts similarity index 100% rename from test/stores/room-list/MessagePreviewStore-test.ts rename to test/unit-tests/stores/room-list/MessagePreviewStore-test.ts diff --git a/test/stores/room-list/RoomListStore-test.ts b/test/unit-tests/stores/room-list/RoomListStore-test.ts similarity index 100% rename from test/stores/room-list/RoomListStore-test.ts rename to test/unit-tests/stores/room-list/RoomListStore-test.ts diff --git a/test/stores/room-list/SlidingRoomListStore-test.ts b/test/unit-tests/stores/room-list/SlidingRoomListStore-test.ts similarity index 100% rename from test/stores/room-list/SlidingRoomListStore-test.ts rename to test/unit-tests/stores/room-list/SlidingRoomListStore-test.ts diff --git a/test/stores/room-list/SpaceWatcher-test.ts b/test/unit-tests/stores/room-list/SpaceWatcher-test.ts similarity index 100% rename from test/stores/room-list/SpaceWatcher-test.ts rename to test/unit-tests/stores/room-list/SpaceWatcher-test.ts diff --git a/test/stores/room-list/algorithms/Algorithm-test.ts b/test/unit-tests/stores/room-list/algorithms/Algorithm-test.ts similarity index 100% rename from test/stores/room-list/algorithms/Algorithm-test.ts rename to test/unit-tests/stores/room-list/algorithms/Algorithm-test.ts diff --git a/test/stores/room-list/algorithms/RecentAlgorithm-test.ts b/test/unit-tests/stores/room-list/algorithms/RecentAlgorithm-test.ts similarity index 100% rename from test/stores/room-list/algorithms/RecentAlgorithm-test.ts rename to test/unit-tests/stores/room-list/algorithms/RecentAlgorithm-test.ts diff --git a/test/stores/room-list/algorithms/list-ordering/ImportanceAlgorithm-test.ts b/test/unit-tests/stores/room-list/algorithms/list-ordering/ImportanceAlgorithm-test.ts similarity index 100% rename from test/stores/room-list/algorithms/list-ordering/ImportanceAlgorithm-test.ts rename to test/unit-tests/stores/room-list/algorithms/list-ordering/ImportanceAlgorithm-test.ts diff --git a/test/stores/room-list/algorithms/list-ordering/NaturalAlgorithm-test.ts b/test/unit-tests/stores/room-list/algorithms/list-ordering/NaturalAlgorithm-test.ts similarity index 100% rename from test/stores/room-list/algorithms/list-ordering/NaturalAlgorithm-test.ts rename to test/unit-tests/stores/room-list/algorithms/list-ordering/NaturalAlgorithm-test.ts diff --git a/test/stores/room-list/filters/SpaceFilterCondition-test.ts b/test/unit-tests/stores/room-list/filters/SpaceFilterCondition-test.ts similarity index 100% rename from test/stores/room-list/filters/SpaceFilterCondition-test.ts rename to test/unit-tests/stores/room-list/filters/SpaceFilterCondition-test.ts diff --git a/test/stores/room-list/filters/VisibilityProvider-test.ts b/test/unit-tests/stores/room-list/filters/VisibilityProvider-test.ts similarity index 100% rename from test/stores/room-list/filters/VisibilityProvider-test.ts rename to test/unit-tests/stores/room-list/filters/VisibilityProvider-test.ts diff --git a/test/stores/room-list/previews/MessageEventPreview-test.ts b/test/unit-tests/stores/room-list/previews/MessageEventPreview-test.ts similarity index 100% rename from test/stores/room-list/previews/MessageEventPreview-test.ts rename to test/unit-tests/stores/room-list/previews/MessageEventPreview-test.ts diff --git a/test/stores/room-list/previews/PollStartEventPreview-test.ts b/test/unit-tests/stores/room-list/previews/PollStartEventPreview-test.ts similarity index 100% rename from test/stores/room-list/previews/PollStartEventPreview-test.ts rename to test/unit-tests/stores/room-list/previews/PollStartEventPreview-test.ts diff --git a/test/stores/room-list/previews/ReactionEventPreview-test.ts b/test/unit-tests/stores/room-list/previews/ReactionEventPreview-test.ts similarity index 100% rename from test/stores/room-list/previews/ReactionEventPreview-test.ts rename to test/unit-tests/stores/room-list/previews/ReactionEventPreview-test.ts diff --git a/test/stores/room-list/previews/VoiceBroadcastPreview-test.ts b/test/unit-tests/stores/room-list/previews/VoiceBroadcastPreview-test.ts similarity index 100% rename from test/stores/room-list/previews/VoiceBroadcastPreview-test.ts rename to test/unit-tests/stores/room-list/previews/VoiceBroadcastPreview-test.ts diff --git a/test/stores/room-list/utils/roomMute-test.ts b/test/unit-tests/stores/room-list/utils/roomMute-test.ts similarity index 100% rename from test/stores/room-list/utils/roomMute-test.ts rename to test/unit-tests/stores/room-list/utils/roomMute-test.ts diff --git a/test/stores/widgets/StopGapWidget-test.ts b/test/unit-tests/stores/widgets/StopGapWidget-test.ts similarity index 100% rename from test/stores/widgets/StopGapWidget-test.ts rename to test/unit-tests/stores/widgets/StopGapWidget-test.ts diff --git a/test/stores/widgets/StopGapWidgetDriver-test.ts b/test/unit-tests/stores/widgets/StopGapWidgetDriver-test.ts similarity index 100% rename from test/stores/widgets/StopGapWidgetDriver-test.ts rename to test/unit-tests/stores/widgets/StopGapWidgetDriver-test.ts diff --git a/test/stores/widgets/WidgetPermissionStore-test.ts b/test/unit-tests/stores/widgets/WidgetPermissionStore-test.ts similarity index 100% rename from test/stores/widgets/WidgetPermissionStore-test.ts rename to test/unit-tests/stores/widgets/WidgetPermissionStore-test.ts diff --git a/test/stores/widgets/__snapshots__/StopGapWidgetDriver-test.ts.snap b/test/unit-tests/stores/widgets/__snapshots__/StopGapWidgetDriver-test.ts.snap similarity index 100% rename from test/stores/widgets/__snapshots__/StopGapWidgetDriver-test.ts.snap rename to test/unit-tests/stores/widgets/__snapshots__/StopGapWidgetDriver-test.ts.snap diff --git a/test/submit-rageshake-test.ts b/test/unit-tests/submit-rageshake-test.ts similarity index 100% rename from test/submit-rageshake-test.ts rename to test/unit-tests/submit-rageshake-test.ts diff --git a/test/test-utils/audio.ts b/test/unit-tests/test-utils/audio.ts similarity index 100% rename from test/test-utils/audio.ts rename to test/unit-tests/test-utils/audio.ts diff --git a/test/test-utils/beacon.ts b/test/unit-tests/test-utils/beacon.ts similarity index 100% rename from test/test-utils/beacon.ts rename to test/unit-tests/test-utils/beacon.ts diff --git a/test/test-utils/call.ts b/test/unit-tests/test-utils/call.ts similarity index 100% rename from test/test-utils/call.ts rename to test/unit-tests/test-utils/call.ts diff --git a/test/test-utils/client.ts b/test/unit-tests/test-utils/client.ts similarity index 100% rename from test/test-utils/client.ts rename to test/unit-tests/test-utils/client.ts diff --git a/test/test-utils/composer.ts b/test/unit-tests/test-utils/composer.ts similarity index 100% rename from test/test-utils/composer.ts rename to test/unit-tests/test-utils/composer.ts diff --git a/test/test-utils/console.ts b/test/unit-tests/test-utils/console.ts similarity index 100% rename from test/test-utils/console.ts rename to test/unit-tests/test-utils/console.ts diff --git a/test/test-utils/date.ts b/test/unit-tests/test-utils/date.ts similarity index 100% rename from test/test-utils/date.ts rename to test/unit-tests/test-utils/date.ts diff --git a/test/test-utils/events.ts b/test/unit-tests/test-utils/events.ts similarity index 100% rename from test/test-utils/events.ts rename to test/unit-tests/test-utils/events.ts diff --git a/test/test-utils/index.ts b/test/unit-tests/test-utils/index.ts similarity index 100% rename from test/test-utils/index.ts rename to test/unit-tests/test-utils/index.ts diff --git a/test/test-utils/jest-matrix-react.tsx b/test/unit-tests/test-utils/jest-matrix-react.tsx similarity index 100% rename from test/test-utils/jest-matrix-react.tsx rename to test/unit-tests/test-utils/jest-matrix-react.tsx diff --git a/test/test-utils/location.ts b/test/unit-tests/test-utils/location.ts similarity index 100% rename from test/test-utils/location.ts rename to test/unit-tests/test-utils/location.ts diff --git a/test/test-utils/oidc.ts b/test/unit-tests/test-utils/oidc.ts similarity index 100% rename from test/test-utils/oidc.ts rename to test/unit-tests/test-utils/oidc.ts diff --git a/test/test-utils/platform.ts b/test/unit-tests/test-utils/platform.ts similarity index 100% rename from test/test-utils/platform.ts rename to test/unit-tests/test-utils/platform.ts diff --git a/test/test-utils/poll.ts b/test/unit-tests/test-utils/poll.ts similarity index 100% rename from test/test-utils/poll.ts rename to test/unit-tests/test-utils/poll.ts diff --git a/test/test-utils/pushRules.ts b/test/unit-tests/test-utils/pushRules.ts similarity index 100% rename from test/test-utils/pushRules.ts rename to test/unit-tests/test-utils/pushRules.ts diff --git a/test/test-utils/relations.ts b/test/unit-tests/test-utils/relations.ts similarity index 100% rename from test/test-utils/relations.ts rename to test/unit-tests/test-utils/relations.ts diff --git a/test/test-utils/room.ts b/test/unit-tests/test-utils/room.ts similarity index 100% rename from test/test-utils/room.ts rename to test/unit-tests/test-utils/room.ts diff --git a/test/test-utils/test-utils.ts b/test/unit-tests/test-utils/test-utils.ts similarity index 100% rename from test/test-utils/test-utils.ts rename to test/unit-tests/test-utils/test-utils.ts diff --git a/test/test-utils/threads.ts b/test/unit-tests/test-utils/threads.ts similarity index 100% rename from test/test-utils/threads.ts rename to test/unit-tests/test-utils/threads.ts diff --git a/test/test-utils/utilities.ts b/test/unit-tests/test-utils/utilities.ts similarity index 100% rename from test/test-utils/utilities.ts rename to test/unit-tests/test-utils/utilities.ts diff --git a/test/test-utils/wrappers.tsx b/test/unit-tests/test-utils/wrappers.tsx similarity index 100% rename from test/test-utils/wrappers.tsx rename to test/unit-tests/test-utils/wrappers.tsx diff --git a/test/theme-test.ts b/test/unit-tests/theme-test.ts similarity index 100% rename from test/theme-test.ts rename to test/unit-tests/theme-test.ts diff --git a/test/toasts/IncomingCallToast-test.tsx b/test/unit-tests/toasts/IncomingCallToast-test.tsx similarity index 100% rename from test/toasts/IncomingCallToast-test.tsx rename to test/unit-tests/toasts/IncomingCallToast-test.tsx diff --git a/test/toasts/IncomingLegacyCallToast-test.tsx b/test/unit-tests/toasts/IncomingLegacyCallToast-test.tsx similarity index 100% rename from test/toasts/IncomingLegacyCallToast-test.tsx rename to test/unit-tests/toasts/IncomingLegacyCallToast-test.tsx diff --git a/test/toasts/UnverifiedSessionToast-test.tsx b/test/unit-tests/toasts/UnverifiedSessionToast-test.tsx similarity index 100% rename from test/toasts/UnverifiedSessionToast-test.tsx rename to test/unit-tests/toasts/UnverifiedSessionToast-test.tsx diff --git a/test/toasts/__snapshots__/IncomingLegacyCallToast-test.tsx.snap b/test/unit-tests/toasts/__snapshots__/IncomingLegacyCallToast-test.tsx.snap similarity index 100% rename from test/toasts/__snapshots__/IncomingLegacyCallToast-test.tsx.snap rename to test/unit-tests/toasts/__snapshots__/IncomingLegacyCallToast-test.tsx.snap diff --git a/test/toasts/__snapshots__/UnverifiedSessionToast-test.tsx.snap b/test/unit-tests/toasts/__snapshots__/UnverifiedSessionToast-test.tsx.snap similarity index 100% rename from test/toasts/__snapshots__/UnverifiedSessionToast-test.tsx.snap rename to test/unit-tests/toasts/__snapshots__/UnverifiedSessionToast-test.tsx.snap diff --git a/test/useTopic-test.tsx b/test/unit-tests/useTopic-test.tsx similarity index 100% rename from test/useTopic-test.tsx rename to test/unit-tests/useTopic-test.tsx diff --git a/test/utils/AnimationUtils-test.ts b/test/unit-tests/utils/AnimationUtils-test.ts similarity index 100% rename from test/utils/AnimationUtils-test.ts rename to test/unit-tests/utils/AnimationUtils-test.ts diff --git a/test/utils/AutoDiscoveryUtils-test.tsx b/test/unit-tests/utils/AutoDiscoveryUtils-test.tsx similarity index 100% rename from test/utils/AutoDiscoveryUtils-test.tsx rename to test/unit-tests/utils/AutoDiscoveryUtils-test.tsx diff --git a/test/utils/DMRoomMap-test.ts b/test/unit-tests/utils/DMRoomMap-test.ts similarity index 100% rename from test/utils/DMRoomMap-test.ts rename to test/unit-tests/utils/DMRoomMap-test.ts diff --git a/test/utils/DateUtils-test.ts b/test/unit-tests/utils/DateUtils-test.ts similarity index 100% rename from test/utils/DateUtils-test.ts rename to test/unit-tests/utils/DateUtils-test.ts diff --git a/test/utils/ErrorUtils-test.ts b/test/unit-tests/utils/ErrorUtils-test.ts similarity index 100% rename from test/utils/ErrorUtils-test.ts rename to test/unit-tests/utils/ErrorUtils-test.ts diff --git a/test/utils/EventRenderingUtils-test.ts b/test/unit-tests/utils/EventRenderingUtils-test.ts similarity index 100% rename from test/utils/EventRenderingUtils-test.ts rename to test/unit-tests/utils/EventRenderingUtils-test.ts diff --git a/test/utils/EventUtils-test.ts b/test/unit-tests/utils/EventUtils-test.ts similarity index 100% rename from test/utils/EventUtils-test.ts rename to test/unit-tests/utils/EventUtils-test.ts diff --git a/test/utils/Feedback-test.ts b/test/unit-tests/utils/Feedback-test.ts similarity index 100% rename from test/utils/Feedback-test.ts rename to test/unit-tests/utils/Feedback-test.ts diff --git a/test/utils/FileUtils-test.ts b/test/unit-tests/utils/FileUtils-test.ts similarity index 100% rename from test/utils/FileUtils-test.ts rename to test/unit-tests/utils/FileUtils-test.ts diff --git a/test/utils/FixedRollingArray-test.ts b/test/unit-tests/utils/FixedRollingArray-test.ts similarity index 100% rename from test/utils/FixedRollingArray-test.ts rename to test/unit-tests/utils/FixedRollingArray-test.ts diff --git a/test/utils/FormattingUtils-test.tsx b/test/unit-tests/utils/FormattingUtils-test.tsx similarity index 100% rename from test/utils/FormattingUtils-test.tsx rename to test/unit-tests/utils/FormattingUtils-test.tsx diff --git a/test/utils/LruCache-test.ts b/test/unit-tests/utils/LruCache-test.ts similarity index 100% rename from test/utils/LruCache-test.ts rename to test/unit-tests/utils/LruCache-test.ts diff --git a/test/utils/MegolmExportEncryption-test.ts b/test/unit-tests/utils/MegolmExportEncryption-test.ts similarity index 100% rename from test/utils/MegolmExportEncryption-test.ts rename to test/unit-tests/utils/MegolmExportEncryption-test.ts diff --git a/test/utils/MessageDiffUtils-test.tsx b/test/unit-tests/utils/MessageDiffUtils-test.tsx similarity index 100% rename from test/utils/MessageDiffUtils-test.tsx rename to test/unit-tests/utils/MessageDiffUtils-test.tsx diff --git a/test/utils/MultiInviter-test.ts b/test/unit-tests/utils/MultiInviter-test.ts similarity index 100% rename from test/utils/MultiInviter-test.ts rename to test/unit-tests/utils/MultiInviter-test.ts diff --git a/test/utils/PhasedRolloutFeature-test.ts b/test/unit-tests/utils/PhasedRolloutFeature-test.ts similarity index 100% rename from test/utils/PhasedRolloutFeature-test.ts rename to test/unit-tests/utils/PhasedRolloutFeature-test.ts diff --git a/test/utils/PinningUtils-test.ts b/test/unit-tests/utils/PinningUtils-test.ts similarity index 100% rename from test/utils/PinningUtils-test.ts rename to test/unit-tests/utils/PinningUtils-test.ts diff --git a/test/utils/SearchInput-test.ts b/test/unit-tests/utils/SearchInput-test.ts similarity index 100% rename from test/utils/SearchInput-test.ts rename to test/unit-tests/utils/SearchInput-test.ts diff --git a/test/utils/SessionLock-test.ts b/test/unit-tests/utils/SessionLock-test.ts similarity index 100% rename from test/utils/SessionLock-test.ts rename to test/unit-tests/utils/SessionLock-test.ts diff --git a/test/utils/ShieldUtils-test.ts b/test/unit-tests/utils/ShieldUtils-test.ts similarity index 100% rename from test/utils/ShieldUtils-test.ts rename to test/unit-tests/utils/ShieldUtils-test.ts diff --git a/test/utils/Singleflight-test.ts b/test/unit-tests/utils/Singleflight-test.ts similarity index 100% rename from test/utils/Singleflight-test.ts rename to test/unit-tests/utils/Singleflight-test.ts diff --git a/test/utils/SnakedObject-test.ts b/test/unit-tests/utils/SnakedObject-test.ts similarity index 100% rename from test/utils/SnakedObject-test.ts rename to test/unit-tests/utils/SnakedObject-test.ts diff --git a/test/utils/StorageAccess-test.ts b/test/unit-tests/utils/StorageAccess-test.ts similarity index 100% rename from test/utils/StorageAccess-test.ts rename to test/unit-tests/utils/StorageAccess-test.ts diff --git a/test/utils/StorageManager-test.ts b/test/unit-tests/utils/StorageManager-test.ts similarity index 100% rename from test/utils/StorageManager-test.ts rename to test/unit-tests/utils/StorageManager-test.ts diff --git a/test/utils/UrlUtils-test.ts b/test/unit-tests/utils/UrlUtils-test.ts similarity index 100% rename from test/utils/UrlUtils-test.ts rename to test/unit-tests/utils/UrlUtils-test.ts diff --git a/test/utils/WidgetUtils-test.ts b/test/unit-tests/utils/WidgetUtils-test.ts similarity index 100% rename from test/utils/WidgetUtils-test.ts rename to test/unit-tests/utils/WidgetUtils-test.ts diff --git a/test/utils/__snapshots__/AutoDiscoveryUtils-test.tsx.snap b/test/unit-tests/utils/__snapshots__/AutoDiscoveryUtils-test.tsx.snap similarity index 100% rename from test/utils/__snapshots__/AutoDiscoveryUtils-test.tsx.snap rename to test/unit-tests/utils/__snapshots__/AutoDiscoveryUtils-test.tsx.snap diff --git a/test/utils/__snapshots__/ErrorUtils-test.ts.snap b/test/unit-tests/utils/__snapshots__/ErrorUtils-test.ts.snap similarity index 100% rename from test/utils/__snapshots__/ErrorUtils-test.ts.snap rename to test/unit-tests/utils/__snapshots__/ErrorUtils-test.ts.snap diff --git a/test/utils/__snapshots__/FormattingUtils-test.tsx.snap b/test/unit-tests/utils/__snapshots__/FormattingUtils-test.tsx.snap similarity index 100% rename from test/utils/__snapshots__/FormattingUtils-test.tsx.snap rename to test/unit-tests/utils/__snapshots__/FormattingUtils-test.tsx.snap diff --git a/test/utils/__snapshots__/MessageDiffUtils-test.tsx.snap b/test/unit-tests/utils/__snapshots__/MessageDiffUtils-test.tsx.snap similarity index 100% rename from test/utils/__snapshots__/MessageDiffUtils-test.tsx.snap rename to test/unit-tests/utils/__snapshots__/MessageDiffUtils-test.tsx.snap diff --git a/test/utils/__snapshots__/createVoiceMessageContent-test.ts.snap b/test/unit-tests/utils/__snapshots__/createVoiceMessageContent-test.ts.snap similarity index 100% rename from test/utils/__snapshots__/createVoiceMessageContent-test.ts.snap rename to test/unit-tests/utils/__snapshots__/createVoiceMessageContent-test.ts.snap diff --git a/test/utils/arrays-test.ts b/test/unit-tests/utils/arrays-test.ts similarity index 100% rename from test/utils/arrays-test.ts rename to test/unit-tests/utils/arrays-test.ts diff --git a/test/utils/beacon/bounds-test.ts b/test/unit-tests/utils/beacon/bounds-test.ts similarity index 100% rename from test/utils/beacon/bounds-test.ts rename to test/unit-tests/utils/beacon/bounds-test.ts diff --git a/test/utils/beacon/duration-test.ts b/test/unit-tests/utils/beacon/duration-test.ts similarity index 100% rename from test/utils/beacon/duration-test.ts rename to test/unit-tests/utils/beacon/duration-test.ts diff --git a/test/utils/beacon/geolocation-test.ts b/test/unit-tests/utils/beacon/geolocation-test.ts similarity index 100% rename from test/utils/beacon/geolocation-test.ts rename to test/unit-tests/utils/beacon/geolocation-test.ts diff --git a/test/utils/beacon/timeline-test.ts b/test/unit-tests/utils/beacon/timeline-test.ts similarity index 100% rename from test/utils/beacon/timeline-test.ts rename to test/unit-tests/utils/beacon/timeline-test.ts diff --git a/test/utils/colour-test.ts b/test/unit-tests/utils/colour-test.ts similarity index 100% rename from test/utils/colour-test.ts rename to test/unit-tests/utils/colour-test.ts diff --git a/test/utils/connection-test.ts b/test/unit-tests/utils/connection-test.ts similarity index 100% rename from test/utils/connection-test.ts rename to test/unit-tests/utils/connection-test.ts diff --git a/test/utils/createVoiceMessageContent-test.ts b/test/unit-tests/utils/createVoiceMessageContent-test.ts similarity index 100% rename from test/utils/createVoiceMessageContent-test.ts rename to test/unit-tests/utils/createVoiceMessageContent-test.ts diff --git a/test/utils/crypto/deviceInfo-test.ts b/test/unit-tests/utils/crypto/deviceInfo-test.ts similarity index 100% rename from test/utils/crypto/deviceInfo-test.ts rename to test/unit-tests/utils/crypto/deviceInfo-test.ts diff --git a/test/utils/crypto/shouldForceDisableEncryption-test.ts b/test/unit-tests/utils/crypto/shouldForceDisableEncryption-test.ts similarity index 100% rename from test/utils/crypto/shouldForceDisableEncryption-test.ts rename to test/unit-tests/utils/crypto/shouldForceDisableEncryption-test.ts diff --git a/test/utils/device/clientInformation-test.ts b/test/unit-tests/utils/device/clientInformation-test.ts similarity index 100% rename from test/utils/device/clientInformation-test.ts rename to test/unit-tests/utils/device/clientInformation-test.ts diff --git a/test/utils/device/parseUserAgent-test.ts b/test/unit-tests/utils/device/parseUserAgent-test.ts similarity index 100% rename from test/utils/device/parseUserAgent-test.ts rename to test/unit-tests/utils/device/parseUserAgent-test.ts diff --git a/test/utils/device/snoozeBulkUnverifiedDeviceReminder-test.ts b/test/unit-tests/utils/device/snoozeBulkUnverifiedDeviceReminder-test.ts similarity index 100% rename from test/utils/device/snoozeBulkUnverifiedDeviceReminder-test.ts rename to test/unit-tests/utils/device/snoozeBulkUnverifiedDeviceReminder-test.ts diff --git a/test/utils/direct-messages-test.ts b/test/unit-tests/utils/direct-messages-test.ts similarity index 100% rename from test/utils/direct-messages-test.ts rename to test/unit-tests/utils/direct-messages-test.ts diff --git a/test/utils/dm/createDmLocalRoom-test.ts b/test/unit-tests/utils/dm/createDmLocalRoom-test.ts similarity index 100% rename from test/utils/dm/createDmLocalRoom-test.ts rename to test/unit-tests/utils/dm/createDmLocalRoom-test.ts diff --git a/test/utils/dm/filterValidMDirect-test.ts b/test/unit-tests/utils/dm/filterValidMDirect-test.ts similarity index 100% rename from test/utils/dm/filterValidMDirect-test.ts rename to test/unit-tests/utils/dm/filterValidMDirect-test.ts diff --git a/test/utils/dm/findDMForUser-test.ts b/test/unit-tests/utils/dm/findDMForUser-test.ts similarity index 100% rename from test/utils/dm/findDMForUser-test.ts rename to test/unit-tests/utils/dm/findDMForUser-test.ts diff --git a/test/utils/dm/findDMRoom-test.ts b/test/unit-tests/utils/dm/findDMRoom-test.ts similarity index 100% rename from test/utils/dm/findDMRoom-test.ts rename to test/unit-tests/utils/dm/findDMRoom-test.ts diff --git a/test/utils/enums-test.ts b/test/unit-tests/utils/enums-test.ts similarity index 100% rename from test/utils/enums-test.ts rename to test/unit-tests/utils/enums-test.ts diff --git a/test/utils/export-test.tsx b/test/unit-tests/utils/export-test.tsx similarity index 100% rename from test/utils/export-test.tsx rename to test/unit-tests/utils/export-test.tsx diff --git a/test/utils/exportUtils/HTMLExport-test.ts b/test/unit-tests/utils/exportUtils/HTMLExport-test.ts similarity index 100% rename from test/utils/exportUtils/HTMLExport-test.ts rename to test/unit-tests/utils/exportUtils/HTMLExport-test.ts diff --git a/test/utils/exportUtils/JSONExport-test.ts b/test/unit-tests/utils/exportUtils/JSONExport-test.ts similarity index 100% rename from test/utils/exportUtils/JSONExport-test.ts rename to test/unit-tests/utils/exportUtils/JSONExport-test.ts diff --git a/test/utils/exportUtils/PlainTextExport-test.ts b/test/unit-tests/utils/exportUtils/PlainTextExport-test.ts similarity index 100% rename from test/utils/exportUtils/PlainTextExport-test.ts rename to test/unit-tests/utils/exportUtils/PlainTextExport-test.ts diff --git a/test/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap b/test/unit-tests/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap similarity index 100% rename from test/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap rename to test/unit-tests/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap diff --git a/test/utils/exportUtils/__snapshots__/JSONExport-test.ts.snap b/test/unit-tests/utils/exportUtils/__snapshots__/JSONExport-test.ts.snap similarity index 100% rename from test/utils/exportUtils/__snapshots__/JSONExport-test.ts.snap rename to test/unit-tests/utils/exportUtils/__snapshots__/JSONExport-test.ts.snap diff --git a/test/utils/exportUtils/__snapshots__/PlainTextExport-test.ts.snap b/test/unit-tests/utils/exportUtils/__snapshots__/PlainTextExport-test.ts.snap similarity index 100% rename from test/utils/exportUtils/__snapshots__/PlainTextExport-test.ts.snap rename to test/unit-tests/utils/exportUtils/__snapshots__/PlainTextExport-test.ts.snap diff --git a/test/utils/exportUtils/exportCSS-test.ts b/test/unit-tests/utils/exportUtils/exportCSS-test.ts similarity index 100% rename from test/utils/exportUtils/exportCSS-test.ts rename to test/unit-tests/utils/exportUtils/exportCSS-test.ts diff --git a/test/utils/generate-megolm-test-vectors.py b/test/unit-tests/utils/generate-megolm-test-vectors.py similarity index 100% rename from test/utils/generate-megolm-test-vectors.py rename to test/unit-tests/utils/generate-megolm-test-vectors.py diff --git a/test/utils/i18n-helpers-test.ts b/test/unit-tests/utils/i18n-helpers-test.ts similarity index 100% rename from test/utils/i18n-helpers-test.ts rename to test/unit-tests/utils/i18n-helpers-test.ts diff --git a/test/utils/iterables-test.ts b/test/unit-tests/utils/iterables-test.ts similarity index 100% rename from test/utils/iterables-test.ts rename to test/unit-tests/utils/iterables-test.ts diff --git a/test/utils/leave-behaviour-test.ts b/test/unit-tests/utils/leave-behaviour-test.ts similarity index 100% rename from test/utils/leave-behaviour-test.ts rename to test/unit-tests/utils/leave-behaviour-test.ts diff --git a/test/utils/local-room-test.ts b/test/unit-tests/utils/local-room-test.ts similarity index 100% rename from test/utils/local-room-test.ts rename to test/unit-tests/utils/local-room-test.ts diff --git a/test/utils/localRoom/isLocalRoom-test.ts b/test/unit-tests/utils/localRoom/isLocalRoom-test.ts similarity index 100% rename from test/utils/localRoom/isLocalRoom-test.ts rename to test/unit-tests/utils/localRoom/isLocalRoom-test.ts diff --git a/test/utils/localRoom/isRoomReady-test.ts b/test/unit-tests/utils/localRoom/isRoomReady-test.ts similarity index 100% rename from test/utils/localRoom/isRoomReady-test.ts rename to test/unit-tests/utils/localRoom/isRoomReady-test.ts diff --git a/test/utils/location/isSelfLocation-test.ts b/test/unit-tests/utils/location/isSelfLocation-test.ts similarity index 100% rename from test/utils/location/isSelfLocation-test.ts rename to test/unit-tests/utils/location/isSelfLocation-test.ts diff --git a/test/utils/location/locationEventGeoUri-test.ts b/test/unit-tests/utils/location/locationEventGeoUri-test.ts similarity index 100% rename from test/utils/location/locationEventGeoUri-test.ts rename to test/unit-tests/utils/location/locationEventGeoUri-test.ts diff --git a/test/utils/location/map-test.ts b/test/unit-tests/utils/location/map-test.ts similarity index 100% rename from test/utils/location/map-test.ts rename to test/unit-tests/utils/location/map-test.ts diff --git a/test/utils/location/parseGeoUri-test.ts b/test/unit-tests/utils/location/parseGeoUri-test.ts similarity index 100% rename from test/utils/location/parseGeoUri-test.ts rename to test/unit-tests/utils/location/parseGeoUri-test.ts diff --git a/test/utils/location/positionFailureMessage-test.ts b/test/unit-tests/utils/location/positionFailureMessage-test.ts similarity index 100% rename from test/utils/location/positionFailureMessage-test.ts rename to test/unit-tests/utils/location/positionFailureMessage-test.ts diff --git a/test/utils/maps-test.ts b/test/unit-tests/utils/maps-test.ts similarity index 100% rename from test/utils/maps-test.ts rename to test/unit-tests/utils/maps-test.ts diff --git a/test/utils/media/requestMediaPermissions-test.tsx b/test/unit-tests/utils/media/requestMediaPermissions-test.tsx similarity index 100% rename from test/utils/media/requestMediaPermissions-test.tsx rename to test/unit-tests/utils/media/requestMediaPermissions-test.tsx diff --git a/test/utils/membership-test.ts b/test/unit-tests/utils/membership-test.ts similarity index 100% rename from test/utils/membership-test.ts rename to test/unit-tests/utils/membership-test.ts diff --git a/test/utils/notifications-test.ts b/test/unit-tests/utils/notifications-test.ts similarity index 100% rename from test/utils/notifications-test.ts rename to test/unit-tests/utils/notifications-test.ts diff --git a/test/utils/numbers-test.ts b/test/unit-tests/utils/numbers-test.ts similarity index 100% rename from test/utils/numbers-test.ts rename to test/unit-tests/utils/numbers-test.ts diff --git a/test/utils/objects-test.ts b/test/unit-tests/utils/objects-test.ts similarity index 100% rename from test/utils/objects-test.ts rename to test/unit-tests/utils/objects-test.ts diff --git a/test/utils/oidc/TokenRefresher-test.ts b/test/unit-tests/utils/oidc/TokenRefresher-test.ts similarity index 100% rename from test/utils/oidc/TokenRefresher-test.ts rename to test/unit-tests/utils/oidc/TokenRefresher-test.ts diff --git a/test/utils/oidc/authorize-test.ts b/test/unit-tests/utils/oidc/authorize-test.ts similarity index 100% rename from test/utils/oidc/authorize-test.ts rename to test/unit-tests/utils/oidc/authorize-test.ts diff --git a/test/utils/oidc/persistOidcSettings-test.ts b/test/unit-tests/utils/oidc/persistOidcSettings-test.ts similarity index 100% rename from test/utils/oidc/persistOidcSettings-test.ts rename to test/unit-tests/utils/oidc/persistOidcSettings-test.ts diff --git a/test/utils/oidc/registerClient-test.ts b/test/unit-tests/utils/oidc/registerClient-test.ts similarity index 100% rename from test/utils/oidc/registerClient-test.ts rename to test/unit-tests/utils/oidc/registerClient-test.ts diff --git a/test/utils/permalinks/MatrixSchemePermalinkConstructor-test.ts b/test/unit-tests/utils/permalinks/MatrixSchemePermalinkConstructor-test.ts similarity index 100% rename from test/utils/permalinks/MatrixSchemePermalinkConstructor-test.ts rename to test/unit-tests/utils/permalinks/MatrixSchemePermalinkConstructor-test.ts diff --git a/test/utils/permalinks/MatrixToPermalinkConstructor-test.ts b/test/unit-tests/utils/permalinks/MatrixToPermalinkConstructor-test.ts similarity index 100% rename from test/utils/permalinks/MatrixToPermalinkConstructor-test.ts rename to test/unit-tests/utils/permalinks/MatrixToPermalinkConstructor-test.ts diff --git a/test/utils/permalinks/Permalinks-test.ts b/test/unit-tests/utils/permalinks/Permalinks-test.ts similarity index 100% rename from test/utils/permalinks/Permalinks-test.ts rename to test/unit-tests/utils/permalinks/Permalinks-test.ts diff --git a/test/utils/pillify-test.tsx b/test/unit-tests/utils/pillify-test.tsx similarity index 100% rename from test/utils/pillify-test.tsx rename to test/unit-tests/utils/pillify-test.tsx diff --git a/test/utils/promise-test.ts b/test/unit-tests/utils/promise-test.ts similarity index 100% rename from test/utils/promise-test.ts rename to test/unit-tests/utils/promise-test.ts diff --git a/test/utils/room/canInviteTo-test.ts b/test/unit-tests/utils/room/canInviteTo-test.ts similarity index 100% rename from test/utils/room/canInviteTo-test.ts rename to test/unit-tests/utils/room/canInviteTo-test.ts diff --git a/test/utils/room/getJoinedNonFunctionalMembers-test.ts b/test/unit-tests/utils/room/getJoinedNonFunctionalMembers-test.ts similarity index 100% rename from test/utils/room/getJoinedNonFunctionalMembers-test.ts rename to test/unit-tests/utils/room/getJoinedNonFunctionalMembers-test.ts diff --git a/test/utils/room/getRoomFunctionalMembers-test.ts b/test/unit-tests/utils/room/getRoomFunctionalMembers-test.ts similarity index 100% rename from test/utils/room/getRoomFunctionalMembers-test.ts rename to test/unit-tests/utils/room/getRoomFunctionalMembers-test.ts diff --git a/test/utils/room/inviteToRoom-test.ts b/test/unit-tests/utils/room/inviteToRoom-test.ts similarity index 100% rename from test/utils/room/inviteToRoom-test.ts rename to test/unit-tests/utils/room/inviteToRoom-test.ts diff --git a/test/utils/room/shouldEncryptRoomWithSingle3rdPartyInvite-test.ts b/test/unit-tests/utils/room/shouldEncryptRoomWithSingle3rdPartyInvite-test.ts similarity index 100% rename from test/utils/room/shouldEncryptRoomWithSingle3rdPartyInvite-test.ts rename to test/unit-tests/utils/room/shouldEncryptRoomWithSingle3rdPartyInvite-test.ts diff --git a/test/utils/room/tagRoom-test.ts b/test/unit-tests/utils/room/tagRoom-test.ts similarity index 100% rename from test/utils/room/tagRoom-test.ts rename to test/unit-tests/utils/room/tagRoom-test.ts diff --git a/test/utils/rooms-test.ts b/test/unit-tests/utils/rooms-test.ts similarity index 100% rename from test/utils/rooms-test.ts rename to test/unit-tests/utils/rooms-test.ts diff --git a/test/utils/sets-test.ts b/test/unit-tests/utils/sets-test.ts similarity index 100% rename from test/utils/sets-test.ts rename to test/unit-tests/utils/sets-test.ts diff --git a/test/utils/stringOrderField-test.ts b/test/unit-tests/utils/stringOrderField-test.ts similarity index 100% rename from test/utils/stringOrderField-test.ts rename to test/unit-tests/utils/stringOrderField-test.ts diff --git a/test/utils/threepids-test.ts b/test/unit-tests/utils/threepids-test.ts similarity index 100% rename from test/utils/threepids-test.ts rename to test/unit-tests/utils/threepids-test.ts diff --git a/test/utils/tooltipify-test.tsx b/test/unit-tests/utils/tooltipify-test.tsx similarity index 100% rename from test/utils/tooltipify-test.tsx rename to test/unit-tests/utils/tooltipify-test.tsx diff --git a/test/utils/validate/numberInRange-test.ts b/test/unit-tests/utils/validate/numberInRange-test.ts similarity index 100% rename from test/utils/validate/numberInRange-test.ts rename to test/unit-tests/utils/validate/numberInRange-test.ts diff --git a/test/voice-broadcast/audio/VoiceBroadcastRecorder-test.ts b/test/unit-tests/voice-broadcast/audio/VoiceBroadcastRecorder-test.ts similarity index 100% rename from test/voice-broadcast/audio/VoiceBroadcastRecorder-test.ts rename to test/unit-tests/voice-broadcast/audio/VoiceBroadcastRecorder-test.ts diff --git a/test/voice-broadcast/components/VoiceBroadcastBody-test.tsx b/test/unit-tests/voice-broadcast/components/VoiceBroadcastBody-test.tsx similarity index 100% rename from test/voice-broadcast/components/VoiceBroadcastBody-test.tsx rename to test/unit-tests/voice-broadcast/components/VoiceBroadcastBody-test.tsx diff --git a/test/voice-broadcast/components/atoms/LiveBadge-test.tsx b/test/unit-tests/voice-broadcast/components/atoms/LiveBadge-test.tsx similarity index 100% rename from test/voice-broadcast/components/atoms/LiveBadge-test.tsx rename to test/unit-tests/voice-broadcast/components/atoms/LiveBadge-test.tsx diff --git a/test/voice-broadcast/components/atoms/VoiceBroadcastControl-test.tsx b/test/unit-tests/voice-broadcast/components/atoms/VoiceBroadcastControl-test.tsx similarity index 100% rename from test/voice-broadcast/components/atoms/VoiceBroadcastControl-test.tsx rename to test/unit-tests/voice-broadcast/components/atoms/VoiceBroadcastControl-test.tsx diff --git a/test/voice-broadcast/components/atoms/VoiceBroadcastHeader-test.tsx b/test/unit-tests/voice-broadcast/components/atoms/VoiceBroadcastHeader-test.tsx similarity index 100% rename from test/voice-broadcast/components/atoms/VoiceBroadcastHeader-test.tsx rename to test/unit-tests/voice-broadcast/components/atoms/VoiceBroadcastHeader-test.tsx diff --git a/test/voice-broadcast/components/atoms/VoiceBroadcastPlaybackControl-test.tsx b/test/unit-tests/voice-broadcast/components/atoms/VoiceBroadcastPlaybackControl-test.tsx similarity index 100% rename from test/voice-broadcast/components/atoms/VoiceBroadcastPlaybackControl-test.tsx rename to test/unit-tests/voice-broadcast/components/atoms/VoiceBroadcastPlaybackControl-test.tsx diff --git a/test/voice-broadcast/components/atoms/__snapshots__/LiveBadge-test.tsx.snap b/test/unit-tests/voice-broadcast/components/atoms/__snapshots__/LiveBadge-test.tsx.snap similarity index 100% rename from test/voice-broadcast/components/atoms/__snapshots__/LiveBadge-test.tsx.snap rename to test/unit-tests/voice-broadcast/components/atoms/__snapshots__/LiveBadge-test.tsx.snap diff --git a/test/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastControl-test.tsx.snap b/test/unit-tests/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastControl-test.tsx.snap similarity index 100% rename from test/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastControl-test.tsx.snap rename to test/unit-tests/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastControl-test.tsx.snap diff --git a/test/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastHeader-test.tsx.snap b/test/unit-tests/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastHeader-test.tsx.snap similarity index 100% rename from test/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastHeader-test.tsx.snap rename to test/unit-tests/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastHeader-test.tsx.snap diff --git a/test/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastPlaybackControl-test.tsx.snap b/test/unit-tests/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastPlaybackControl-test.tsx.snap similarity index 100% rename from test/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastPlaybackControl-test.tsx.snap rename to test/unit-tests/voice-broadcast/components/atoms/__snapshots__/VoiceBroadcastPlaybackControl-test.tsx.snap diff --git a/test/voice-broadcast/components/molecules/VoiceBroadcastPlaybackBody-test.tsx b/test/unit-tests/voice-broadcast/components/molecules/VoiceBroadcastPlaybackBody-test.tsx similarity index 100% rename from test/voice-broadcast/components/molecules/VoiceBroadcastPlaybackBody-test.tsx rename to test/unit-tests/voice-broadcast/components/molecules/VoiceBroadcastPlaybackBody-test.tsx diff --git a/test/voice-broadcast/components/molecules/VoiceBroadcastPreRecordingPip-test.tsx b/test/unit-tests/voice-broadcast/components/molecules/VoiceBroadcastPreRecordingPip-test.tsx similarity index 100% rename from test/voice-broadcast/components/molecules/VoiceBroadcastPreRecordingPip-test.tsx rename to test/unit-tests/voice-broadcast/components/molecules/VoiceBroadcastPreRecordingPip-test.tsx diff --git a/test/voice-broadcast/components/molecules/VoiceBroadcastRecordingBody-test.tsx b/test/unit-tests/voice-broadcast/components/molecules/VoiceBroadcastRecordingBody-test.tsx similarity index 100% rename from test/voice-broadcast/components/molecules/VoiceBroadcastRecordingBody-test.tsx rename to test/unit-tests/voice-broadcast/components/molecules/VoiceBroadcastRecordingBody-test.tsx diff --git a/test/voice-broadcast/components/molecules/VoiceBroadcastRecordingPip-test.tsx b/test/unit-tests/voice-broadcast/components/molecules/VoiceBroadcastRecordingPip-test.tsx similarity index 100% rename from test/voice-broadcast/components/molecules/VoiceBroadcastRecordingPip-test.tsx rename to test/unit-tests/voice-broadcast/components/molecules/VoiceBroadcastRecordingPip-test.tsx diff --git a/test/voice-broadcast/components/molecules/VoiceBroadcastSmallPlaybackBody-test.tsx b/test/unit-tests/voice-broadcast/components/molecules/VoiceBroadcastSmallPlaybackBody-test.tsx similarity index 100% rename from test/voice-broadcast/components/molecules/VoiceBroadcastSmallPlaybackBody-test.tsx rename to test/unit-tests/voice-broadcast/components/molecules/VoiceBroadcastSmallPlaybackBody-test.tsx diff --git a/test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPlaybackBody-test.tsx.snap b/test/unit-tests/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPlaybackBody-test.tsx.snap similarity index 100% rename from test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPlaybackBody-test.tsx.snap rename to test/unit-tests/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPlaybackBody-test.tsx.snap diff --git a/test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPreRecordingPip-test.tsx.snap b/test/unit-tests/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPreRecordingPip-test.tsx.snap similarity index 100% rename from test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPreRecordingPip-test.tsx.snap rename to test/unit-tests/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPreRecordingPip-test.tsx.snap diff --git a/test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastRecordingBody-test.tsx.snap b/test/unit-tests/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastRecordingBody-test.tsx.snap similarity index 100% rename from test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastRecordingBody-test.tsx.snap rename to test/unit-tests/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastRecordingBody-test.tsx.snap diff --git a/test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastRecordingPip-test.tsx.snap b/test/unit-tests/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastRecordingPip-test.tsx.snap similarity index 100% rename from test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastRecordingPip-test.tsx.snap rename to test/unit-tests/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastRecordingPip-test.tsx.snap diff --git a/test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastSmallPlaybackBody-test.tsx.snap b/test/unit-tests/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastSmallPlaybackBody-test.tsx.snap similarity index 100% rename from test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastSmallPlaybackBody-test.tsx.snap rename to test/unit-tests/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastSmallPlaybackBody-test.tsx.snap diff --git a/test/voice-broadcast/models/VoiceBroadcastPlayback-test.tsx b/test/unit-tests/voice-broadcast/models/VoiceBroadcastPlayback-test.tsx similarity index 100% rename from test/voice-broadcast/models/VoiceBroadcastPlayback-test.tsx rename to test/unit-tests/voice-broadcast/models/VoiceBroadcastPlayback-test.tsx diff --git a/test/voice-broadcast/models/VoiceBroadcastPreRecording-test.ts b/test/unit-tests/voice-broadcast/models/VoiceBroadcastPreRecording-test.ts similarity index 100% rename from test/voice-broadcast/models/VoiceBroadcastPreRecording-test.ts rename to test/unit-tests/voice-broadcast/models/VoiceBroadcastPreRecording-test.ts diff --git a/test/voice-broadcast/models/VoiceBroadcastRecording-test.ts b/test/unit-tests/voice-broadcast/models/VoiceBroadcastRecording-test.ts similarity index 100% rename from test/voice-broadcast/models/VoiceBroadcastRecording-test.ts rename to test/unit-tests/voice-broadcast/models/VoiceBroadcastRecording-test.ts diff --git a/test/voice-broadcast/stores/VoiceBroadcastPlaybacksStore-test.ts b/test/unit-tests/voice-broadcast/stores/VoiceBroadcastPlaybacksStore-test.ts similarity index 100% rename from test/voice-broadcast/stores/VoiceBroadcastPlaybacksStore-test.ts rename to test/unit-tests/voice-broadcast/stores/VoiceBroadcastPlaybacksStore-test.ts diff --git a/test/voice-broadcast/stores/VoiceBroadcastPreRecordingStore-test.ts b/test/unit-tests/voice-broadcast/stores/VoiceBroadcastPreRecordingStore-test.ts similarity index 100% rename from test/voice-broadcast/stores/VoiceBroadcastPreRecordingStore-test.ts rename to test/unit-tests/voice-broadcast/stores/VoiceBroadcastPreRecordingStore-test.ts diff --git a/test/voice-broadcast/stores/VoiceBroadcastRecordingsStore-test.ts b/test/unit-tests/voice-broadcast/stores/VoiceBroadcastRecordingsStore-test.ts similarity index 100% rename from test/voice-broadcast/stores/VoiceBroadcastRecordingsStore-test.ts rename to test/unit-tests/voice-broadcast/stores/VoiceBroadcastRecordingsStore-test.ts diff --git a/test/voice-broadcast/utils/VoiceBroadcastChunkEvents-test.ts b/test/unit-tests/voice-broadcast/utils/VoiceBroadcastChunkEvents-test.ts similarity index 100% rename from test/voice-broadcast/utils/VoiceBroadcastChunkEvents-test.ts rename to test/unit-tests/voice-broadcast/utils/VoiceBroadcastChunkEvents-test.ts diff --git a/test/voice-broadcast/utils/VoiceBroadcastResumer-test.ts b/test/unit-tests/voice-broadcast/utils/VoiceBroadcastResumer-test.ts similarity index 100% rename from test/voice-broadcast/utils/VoiceBroadcastResumer-test.ts rename to test/unit-tests/voice-broadcast/utils/VoiceBroadcastResumer-test.ts diff --git a/test/voice-broadcast/utils/__snapshots__/setUpVoiceBroadcastPreRecording-test.ts.snap b/test/unit-tests/voice-broadcast/utils/__snapshots__/setUpVoiceBroadcastPreRecording-test.ts.snap similarity index 100% rename from test/voice-broadcast/utils/__snapshots__/setUpVoiceBroadcastPreRecording-test.ts.snap rename to test/unit-tests/voice-broadcast/utils/__snapshots__/setUpVoiceBroadcastPreRecording-test.ts.snap diff --git a/test/voice-broadcast/utils/__snapshots__/startNewVoiceBroadcastRecording-test.ts.snap b/test/unit-tests/voice-broadcast/utils/__snapshots__/startNewVoiceBroadcastRecording-test.ts.snap similarity index 100% rename from test/voice-broadcast/utils/__snapshots__/startNewVoiceBroadcastRecording-test.ts.snap rename to test/unit-tests/voice-broadcast/utils/__snapshots__/startNewVoiceBroadcastRecording-test.ts.snap diff --git a/test/voice-broadcast/utils/__snapshots__/textForVoiceBroadcastStoppedEvent-test.tsx.snap b/test/unit-tests/voice-broadcast/utils/__snapshots__/textForVoiceBroadcastStoppedEvent-test.tsx.snap similarity index 100% rename from test/voice-broadcast/utils/__snapshots__/textForVoiceBroadcastStoppedEvent-test.tsx.snap rename to test/unit-tests/voice-broadcast/utils/__snapshots__/textForVoiceBroadcastStoppedEvent-test.tsx.snap diff --git a/test/voice-broadcast/utils/cleanUpBroadcasts-test.ts b/test/unit-tests/voice-broadcast/utils/cleanUpBroadcasts-test.ts similarity index 100% rename from test/voice-broadcast/utils/cleanUpBroadcasts-test.ts rename to test/unit-tests/voice-broadcast/utils/cleanUpBroadcasts-test.ts diff --git a/test/voice-broadcast/utils/determineVoiceBroadcastLiveness-test.ts b/test/unit-tests/voice-broadcast/utils/determineVoiceBroadcastLiveness-test.ts similarity index 100% rename from test/voice-broadcast/utils/determineVoiceBroadcastLiveness-test.ts rename to test/unit-tests/voice-broadcast/utils/determineVoiceBroadcastLiveness-test.ts diff --git a/test/voice-broadcast/utils/findRoomLiveVoiceBroadcastFromUserAndDevice-test.ts b/test/unit-tests/voice-broadcast/utils/findRoomLiveVoiceBroadcastFromUserAndDevice-test.ts similarity index 100% rename from test/voice-broadcast/utils/findRoomLiveVoiceBroadcastFromUserAndDevice-test.ts rename to test/unit-tests/voice-broadcast/utils/findRoomLiveVoiceBroadcastFromUserAndDevice-test.ts diff --git a/test/voice-broadcast/utils/getChunkLength-test.ts b/test/unit-tests/voice-broadcast/utils/getChunkLength-test.ts similarity index 100% rename from test/voice-broadcast/utils/getChunkLength-test.ts rename to test/unit-tests/voice-broadcast/utils/getChunkLength-test.ts diff --git a/test/voice-broadcast/utils/getMaxBroadcastLength-test.ts b/test/unit-tests/voice-broadcast/utils/getMaxBroadcastLength-test.ts similarity index 100% rename from test/voice-broadcast/utils/getMaxBroadcastLength-test.ts rename to test/unit-tests/voice-broadcast/utils/getMaxBroadcastLength-test.ts diff --git a/test/voice-broadcast/utils/hasRoomLiveVoiceBroadcast-test.ts b/test/unit-tests/voice-broadcast/utils/hasRoomLiveVoiceBroadcast-test.ts similarity index 100% rename from test/voice-broadcast/utils/hasRoomLiveVoiceBroadcast-test.ts rename to test/unit-tests/voice-broadcast/utils/hasRoomLiveVoiceBroadcast-test.ts diff --git a/test/voice-broadcast/utils/isRelatedToVoiceBroadcast-test.ts b/test/unit-tests/voice-broadcast/utils/isRelatedToVoiceBroadcast-test.ts similarity index 100% rename from test/voice-broadcast/utils/isRelatedToVoiceBroadcast-test.ts rename to test/unit-tests/voice-broadcast/utils/isRelatedToVoiceBroadcast-test.ts diff --git a/test/voice-broadcast/utils/pauseNonLiveBroadcastFromOtherRoom-test.ts b/test/unit-tests/voice-broadcast/utils/pauseNonLiveBroadcastFromOtherRoom-test.ts similarity index 100% rename from test/voice-broadcast/utils/pauseNonLiveBroadcastFromOtherRoom-test.ts rename to test/unit-tests/voice-broadcast/utils/pauseNonLiveBroadcastFromOtherRoom-test.ts diff --git a/test/voice-broadcast/utils/retrieveStartedInfoEvent-test.ts b/test/unit-tests/voice-broadcast/utils/retrieveStartedInfoEvent-test.ts similarity index 100% rename from test/voice-broadcast/utils/retrieveStartedInfoEvent-test.ts rename to test/unit-tests/voice-broadcast/utils/retrieveStartedInfoEvent-test.ts diff --git a/test/voice-broadcast/utils/setUpVoiceBroadcastPreRecording-test.ts b/test/unit-tests/voice-broadcast/utils/setUpVoiceBroadcastPreRecording-test.ts similarity index 100% rename from test/voice-broadcast/utils/setUpVoiceBroadcastPreRecording-test.ts rename to test/unit-tests/voice-broadcast/utils/setUpVoiceBroadcastPreRecording-test.ts diff --git a/test/voice-broadcast/utils/shouldDisplayAsVoiceBroadcastRecordingTile-test.ts b/test/unit-tests/voice-broadcast/utils/shouldDisplayAsVoiceBroadcastRecordingTile-test.ts similarity index 100% rename from test/voice-broadcast/utils/shouldDisplayAsVoiceBroadcastRecordingTile-test.ts rename to test/unit-tests/voice-broadcast/utils/shouldDisplayAsVoiceBroadcastRecordingTile-test.ts diff --git a/test/voice-broadcast/utils/shouldDisplayAsVoiceBroadcastTile-test.ts b/test/unit-tests/voice-broadcast/utils/shouldDisplayAsVoiceBroadcastTile-test.ts similarity index 100% rename from test/voice-broadcast/utils/shouldDisplayAsVoiceBroadcastTile-test.ts rename to test/unit-tests/voice-broadcast/utils/shouldDisplayAsVoiceBroadcastTile-test.ts diff --git a/test/voice-broadcast/utils/startNewVoiceBroadcastRecording-test.ts b/test/unit-tests/voice-broadcast/utils/startNewVoiceBroadcastRecording-test.ts similarity index 100% rename from test/voice-broadcast/utils/startNewVoiceBroadcastRecording-test.ts rename to test/unit-tests/voice-broadcast/utils/startNewVoiceBroadcastRecording-test.ts diff --git a/test/voice-broadcast/utils/test-utils.ts b/test/unit-tests/voice-broadcast/utils/test-utils.ts similarity index 100% rename from test/voice-broadcast/utils/test-utils.ts rename to test/unit-tests/voice-broadcast/utils/test-utils.ts diff --git a/test/voice-broadcast/utils/textForVoiceBroadcastStoppedEvent-test.tsx b/test/unit-tests/voice-broadcast/utils/textForVoiceBroadcastStoppedEvent-test.tsx similarity index 100% rename from test/voice-broadcast/utils/textForVoiceBroadcastStoppedEvent-test.tsx rename to test/unit-tests/voice-broadcast/utils/textForVoiceBroadcastStoppedEvent-test.tsx diff --git a/test/voice-broadcast/utils/textForVoiceBroadcastStoppedEventWithoutLink-test.ts b/test/unit-tests/voice-broadcast/utils/textForVoiceBroadcastStoppedEventWithoutLink-test.ts similarity index 100% rename from test/voice-broadcast/utils/textForVoiceBroadcastStoppedEventWithoutLink-test.ts rename to test/unit-tests/voice-broadcast/utils/textForVoiceBroadcastStoppedEventWithoutLink-test.ts diff --git a/test/widgets/ManagedHybrid-test.ts b/test/unit-tests/widgets/ManagedHybrid-test.ts similarity index 100% rename from test/widgets/ManagedHybrid-test.ts rename to test/unit-tests/widgets/ManagedHybrid-test.ts From 13184f0131e80fd6bf86ef8e4ae76a9d689e5f99 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 15 Oct 2024 15:43:46 +0100 Subject: [PATCH 13/39] Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .github/workflows/static_analysis.yaml | 3 +++ src/vector/platform/WebPlatform.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/static_analysis.yaml b/.github/workflows/static_analysis.yaml index 977d33c919..81621efcc2 100644 --- a/.github/workflows/static_analysis.yaml +++ b/.github/workflows/static_analysis.yaml @@ -65,6 +65,9 @@ jobs: labs|element_call_video_rooms labs|feature_disable_call_per_sender_encryption voip|element_call + error|invalid_json + error|misconfigured + welcome_to_element rethemendex_lint: name: "Rethemendex Check" diff --git a/src/vector/platform/WebPlatform.ts b/src/vector/platform/WebPlatform.ts index 31cc938961..53ff14d82f 100644 --- a/src/vector/platform/WebPlatform.ts +++ b/src/vector/platform/WebPlatform.ts @@ -9,8 +9,8 @@ Please see LICENSE files in the repository root for full details. import UAParser from "ua-parser-js"; import { logger } from "matrix-js-sdk/src/logger"; -import { MatrixClientPeg } from "matrix-react-sdk/src/MatrixClientPeg"; +import { MatrixClientPeg } from "../../MatrixClientPeg"; import { UpdateCheckStatus, UpdateStatus } from "../../BasePlatform"; import dis from "../../dispatcher/dispatcher"; import { hideToast as hideUpdateToast, showToast as showUpdateToast } from "../../toasts/UpdateToast"; From d928a7be9dbfdf07f52188aa2df33a27584a8b88 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 15 Oct 2024 15:45:19 +0100 Subject: [PATCH 14/39] Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- scripts/ci/install-deps.sh | 0 scripts/docker-link-repos.sh | 0 src/i18n/strings/en_EN.json | 5 ----- 3 files changed, 5 deletions(-) mode change 100644 => 100755 scripts/ci/install-deps.sh mode change 100644 => 100755 scripts/docker-link-repos.sh diff --git a/scripts/ci/install-deps.sh b/scripts/ci/install-deps.sh old mode 100644 new mode 100755 diff --git a/scripts/docker-link-repos.sh b/scripts/docker-link-repos.sh old mode 100644 new mode 100755 diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 093fb155c4..35dfab239d 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -907,10 +907,6 @@ "export_unsupported": "Your browser does not support the required cryptography extensions", "import_invalid_keyfile": "Not a valid %(brand)s keyfile", "import_invalid_passphrase": "Authentication check failed: incorrect password?", - "incompatible_database_description": "You've previously used a newer version of %(brand)s with this session. To use this version again with end to end encryption, you will need to sign out and back in again.", - "incompatible_database_disable": "Continue With Encryption Disabled", - "incompatible_database_sign_out_description": "To avoid losing your chat history, you must export your room keys before logging out. You will need to go back to the newer version of %(brand)s to do this", - "incompatible_database_title": "Incompatible Database", "messages_not_secure": { "cause_1": "Your homeserver", "cause_2": "The homeserver the user you're verifying is connected to", @@ -2568,7 +2564,6 @@ "msisdn_verification_field_label": "Verification code", "msisdn_verification_instructions": "Please enter verification code sent via text.", "msisdns_heading": "Phone numbers", - "name_placeholder": "No display name", "oidc_manage_button": "Manage account", "password_change_section": "Set a new account password…", "password_change_success": "Your password was successfully changed.", From 67659ab353bb49c492de67df70ce85b5ee4d3cdf Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 15 Oct 2024 16:22:11 +0100 Subject: [PATCH 15/39] Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .github/workflows/tests.yaml | 60 - src/i18n/strings/de_DE.json | 3953 ++++++++++++++++- .../__snapshots__/FilePanel-test.tsx.snap | 2 +- .../__snapshots__/RoomView-test.tsx.snap | 50 +- .../SpaceHierarchy-test.tsx.snap | 2 +- .../__snapshots__/ThreadPanel-test.tsx.snap | 4 +- .../DecoratedRoomAvatar-test.tsx.snap | 4 +- .../WithPresenceIndicator-test.tsx.snap | 6 +- .../BeaconListItem-test.tsx.snap | 2 +- .../__snapshots__/DialogSidebar-test.tsx.snap | 2 +- .../ShareLatestLocation-test.tsx.snap | 2 +- .../views/dialogs/ChangelogDialog-test.tsx | 4 +- .../ChangelogDialog-test.tsx.snap | 20 - .../DevtoolsDialog-test.tsx.snap | 2 +- .../__snapshots__/LogoutDialog-test.tsx.snap | 4 +- .../MessageEditHistoryDialog-test.tsx.snap | 4 +- .../ServerPickerDialog-test.tsx.snap | 2 +- .../__snapshots__/AppTile-test.tsx.snap | 6 +- .../__snapshots__/FacePile-test.tsx.snap | 2 +- .../__snapshots__/ImageView-test.tsx.snap | 2 +- .../__snapshots__/InfoTooltip-test.tsx.snap | 2 +- .../__snapshots__/RoomFacePile-test.tsx.snap | 4 +- .../LocationViewDialog-test.tsx.snap | 2 +- .../__snapshots__/MLocationBody-test.tsx.snap | 4 +- .../__snapshots__/PollHistory-test.tsx.snap | 4 +- .../__snapshots__/PollListItem-test.tsx.snap | 2 +- .../PollListItemEnded-test.tsx.snap | 2 +- .../__snapshots__/BaseCard-test.tsx.snap | 2 +- .../ExtensionsCard-test.tsx.snap | 4 +- .../PinnedMessagesCard-test.tsx.snap | 14 +- .../RoomSummaryCard-test.tsx.snap | 6 +- .../__snapshots__/UserInfo-test.tsx.snap | 4 +- .../VideoRoomChatButton-test.tsx.snap | 2 +- .../views/rooms/RoomKnocksBar-test.tsx | 24 +- .../PinnedEventTile-test.tsx.snap | 4 +- .../ReadReceiptGroup-test.tsx.snap | 9 +- .../__snapshots__/RoomHeader-test.tsx.snap | 8 +- .../ThirdPartyMemberInfo-test.tsx.snap | 4 +- .../FormattingButtons-test.tsx.snap | 20 +- .../ThemeChoicePanel-test.tsx.snap | 4 +- .../FilteredDeviceListHeader-test.tsx.snap | 4 +- .../tabs/room/PeopleRoomSettingsTab-test.tsx | 6 +- .../SessionManagerTab-test.tsx.snap | 2 +- .../__snapshots__/SpacePanel-test.tsx.snap | 13 +- .../ThreadsActivityCentre-test.tsx.snap | 44 +- .../modules/ModuleComponents-test.tsx | 2 +- .../vector/platform/PWAPlatform-test.ts | 2 +- yarn.lock | 2 +- 48 files changed, 4088 insertions(+), 245 deletions(-) delete mode 100644 .github/workflows/tests.yaml diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml deleted file mode 100644 index 01965af419..0000000000 --- a/.github/workflows/tests.yaml +++ /dev/null @@ -1,60 +0,0 @@ -name: Tests -on: - pull_request: {} - push: - branches: [develop, master] - merge_group: - types: [checks_requested] - repository_dispatch: - types: [element-web-notify] -env: - # These must be set for fetchdep.sh to get the right branch - REPOSITORY: ${{ github.repository }} - PR_NUMBER: ${{ github.event.pull_request.number }} -jobs: - jest: - name: Jest - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Yarn cache - uses: actions/setup-node@v4 - with: - cache: "yarn" - node-version: "lts/*" - - - name: Install Dependencies - run: "./scripts/layered.sh" - - - name: Get number of CPU cores - id: cpu-cores - uses: SimenB/github-actions-cpu-cores@97ba232459a8e02ff6121db9362b09661c875ab8 # v2 - - - name: Run tests with coverage - run: "yarn coverage --ci --max-workers ${{ steps.cpu-cores.outputs.count }}" - - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: coverage - path: | - coverage - !coverage/lcov-report - - skip_sonar: - name: Skip SonarCloud in merge queue - if: github.event_name == 'merge_group' - runs-on: ubuntu-latest - needs: jest - steps: - - name: Skip SonarCloud - uses: Sibz/github-status-action@faaa4d96fecf273bd762985e0e7f9f933c774918 # v1 - with: - authToken: ${{ secrets.GITHUB_TOKEN }} - state: success - description: SonarCloud skipped - context: SonarCloud Code Analysis - sha: ${{ github.sha }} - target_url: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index a5fce2a9ab..77596db71c 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1,32 +1,3933 @@ { - "action": { - "create_account": "Konto erstellen", - "dismiss": "Ausblenden", - "explore_rooms": "Räume erkunden", - "open": "Öffnen", - "sign_in": "Anmelden" + "action": { + "create_account": "Konto erstellen", + "dismiss": "Ausblenden", + "explore_rooms": "Räume erkunden", + "open": "Öffnen", + "sign_in": "Anmelden", + "accept": "Annehmen", + "add": "Hinzufügen", + "add_existing_room": "Existierenden Raum hinzufügen", + "add_people": "Personen hinzufügen", + "apply": "Anwenden", + "approve": "Zustimmen", + "ask_to_join": "Beitrittsanfragen", + "back": "Zurück", + "call": "Anruf", + "cancel": "Abbrechen", + "change": "Ändern", + "clear": "Löschen", + "click": "Klick", + "click_to_copy": "Klicken um zu kopieren", + "close": "Schließen", + "collapse": "Verbergen", + "complete": "Abschließen", + "confirm": "Bestätigen", + "continue": "Fortfahren", + "copy": "Kopieren", + "copy_link": "Link kopieren", + "create": "Erstellen", + "create_a_room": "Raum erstellen", + "decline": "Ablehnen", + "delete": "Löschen", + "deny": "Ablehnen", + "disable": "Deaktivieren", + "disconnect": "Trennen", + "done": "Fertig", + "download": "Herunterladen", + "edit": "Bearbeiten", + "enable": "Aktivieren", + "enter_fullscreen": "Vollbild", + "exit_fullscreeen": "Vollbild verlassen", + "expand": "Ausklappen", + "explore_public_rooms": "Öffentliche Räume erkunden", + "export": "Exportieren", + "forward": "Weiterleiten", + "go": "Los", + "go_back": "Zurück", + "got_it": "Verstanden", + "hide_advanced": "Erweiterte Einstellungen ausblenden", + "hold": "Halten", + "ignore": "Blockieren", + "import": "Importieren", + "invite": "Einladen", + "invite_to_space": "In Space einladen", + "invites_list": "Einladungen", + "join": "Betreten", + "learn_more": "Mehr erfahren", + "leave": "Verlassen", + "leave_room": "Raum verlassen", + "logout": "Abmelden", + "manage": "Verwalten", + "maximise": "Maximieren", + "mention": "Erwähnen", + "minimise": "Minimieren", + "new_room": "Neuer Raum", + "new_video_room": "Neuer Videoraum", + "next": "Weiter", + "no": "Nein", + "ok": "Ok", + "pause": "Pausieren", + "pin": "Anheften", + "play": "Abspielen", + "proceed": "Fortfahren", + "quote": "Zitieren", + "react": "Reagieren", + "refresh": "Neu laden", + "register": "Registrieren", + "reject": "Ablehnen", + "reload": "Neu laden", + "remove": "Entfernen", + "rename": "Umbenennen", + "reply": "Antworten", + "reply_in_thread": "In Thread antworten", + "report_content": "Inhalt melden", + "resend": "Erneut senden", + "reset": "Zurücksetzen", + "restore": "Wiederherstellen", + "resume": "Fortsetzen", + "retry": "Wiederholen", + "review": "Überprüfen", + "revoke": "Widerrufen", + "save": "Speichern", + "search": "Suchen", + "send_report": "Bericht senden", + "share": "Teilen", + "show": "Zeigen", + "show_advanced": "Erweiterte Einstellungen", + "show_all": "Alles zeigen", + "sign_out": "Abmelden", + "skip": "Überspringen", + "start": "Starte", + "start_chat": "Unterhaltung beginnen", + "start_new_chat": "Neue Direktnachricht", + "stop": "Beenden", + "submit": "Absenden", + "subscribe": "Abonnieren", + "transfer": "Übertragen", + "trust": "Vertrauen", + "try_again": "Erneut versuchen", + "unban": "Verbannung aufheben", + "unignore": "Nicht mehr blockieren", + "unpin": "Nicht mehr anheften", + "unsubscribe": "Deabonnieren", + "update": "Aktualisieren", + "upgrade": "Aktualisieren", + "upload": "Hochladen", + "verify": "Verifizieren", + "view": "Ansicht", + "view_all": "Alles anzeigen", + "view_list": "Liste anzeigen", + "view_message": "Nachricht anzeigen", + "view_source": "Rohdaten anzeigen", + "yes": "Ja", + "zoom_in": "Vergrößern", + "zoom_out": "Verkleinern" + }, + "auth": { + "sso_complete_in_browser_dialog_title": "Browser öffnen, um die Anmeldung abzuschließen", + "3pid_in_use": "Diese E-Mail-Adresse oder Telefonnummer wird bereits verwendet.", + "account_clash": "Dein neues Konto (%(newAccountId)s) ist registriert, aber du hast dich bereits in mit einem anderen Konto (%(loggedInUserId)s) angemeldet.", + "account_clash_previous_account": "Mit vorherigem Konto fortfahren", + "account_deactivated": "Dieses Konto wurde deaktiviert.", + "autodiscovery_generic_failure": "Abrufen der Autodiscovery-Konfiguration vom Server fehlgeschlagen", + "autodiscovery_hs_incompatible": "Dein Heim-Server ist zu alt und unterstützt nicht die benötigte API-Version. Bitte kontaktiere deine Server-Administration oder aktualisiere deinen Server.", + "autodiscovery_invalid": "Ungültige Antwort beim Aufspüren des Heim-Servers", + "autodiscovery_invalid_hs": "Die Heim-Server-URL scheint kein gültiger Matrix-Heim-Server zu sein", + "autodiscovery_invalid_hs_base_url": "Ungültige base_url für m.homeserver", + "autodiscovery_invalid_is": "Die Identitäts-Server-URL scheint kein gültiger Identitäts-Server zu sein", + "autodiscovery_invalid_is_base_url": "Ungültige base_url für m.identity_server", + "autodiscovery_invalid_is_response": "Ungültige Antwort beim Aufspüren des Identitäts-Servers", + "autodiscovery_invalid_json": "Ungültiges JSON", + "autodiscovery_no_well_known": "Keine .well-known-JSON-Datei gefunden", + "autodiscovery_unexpected_error_hs": "Ein unerwarteter Fehler ist beim Laden der Heim-Server-Konfiguration aufgetreten", + "autodiscovery_unexpected_error_is": "Ein unerwarteter Fehler ist beim Laden der Identitäts-Server-Konfiguration aufgetreten", + "captcha_description": "Dieser Heim-Server möchte sicherstellen, dass du kein Roboter bist.", + "change_password_action": "Passwort ändern", + "change_password_confirm_invalid": "Passwörter stimmen nicht überein", + "change_password_confirm_label": "Passwort bestätigen", + "change_password_current_label": "Aktuelles Passwort", + "change_password_empty": "Passwortfelder dürfen nicht leer sein", + "change_password_error": "Fehler während der Passwortänderung: %(error)s", + "change_password_mismatch": "Die neuen Passwörter stimmen nicht überein", + "change_password_new_label": "Neues Passwort", + "check_email_explainer": "Befolge die Anweisungen, die wir an %(email)s gesendet haben", + "check_email_resend_prompt": "Nicht erhalten?", + "check_email_resend_tooltip": "Verifizierungs-E-Mail erneut gesendet!", + "check_email_wrong_email_button": "E-Mail-Adresse erneut eingeben", + "check_email_wrong_email_prompt": "Falsche E-Mail-Adresse?", + "continue_with_idp": "Weiter mit %(provider)s", + "continue_with_sso": "Mit %(ssoButtons)s anmelden", + "country_dropdown": "Landauswahl", + "create_account_prompt": "Neu hier? Erstelle ein Konto", + "create_account_title": "Konto anlegen", + "email_discovery_text": "Nutze optional eine E-Mail-Adresse, um von Nutzern gefunden werden zu können.", + "email_field_label": "E-Mail-Adresse", + "email_field_label_invalid": "Das sieht nicht nach einer gültigen E-Mail-Adresse aus", + "email_field_label_required": "E-Mail-Adresse eingeben", + "email_help_text": "Füge eine E-Mail-Adresse hinzu, um dein Passwort zurücksetzen zu können.", + "email_phone_discovery_text": "Nutze optional eine E-Mail-Adresse oder Telefonnummer, um von Nutzern gefunden werden zu können.", + "enter_email_explainer": "%(homeserver)s wird dir einen Verifizierungslink senden, um dein Passwort zurückzusetzen.", + "enter_email_heading": "Gib deine E-Mail ein, um dein Passwort zurückzusetzen", + "failed_connect_identity_server": "Identitäts-Server nicht erreichbar", + "failed_connect_identity_server_other": "Du kannst dich anmelden, einige Funktionen werden allerdings erst verfügbar sein, sobald der Identitäts-Server wieder in Betrieb ist. Sollte diese Warnmeldung weiterhin erscheinen, überprüfe deine Konfiguration oder kontaktiere deine Server-Administration.", + "failed_connect_identity_server_register": "Du kannst dich registrieren, einige Funktionen werden allerdings erst verfügbar sein, sobald der Identitäts-Server wieder in Betrieb ist. Sollte diese Warnmeldung weiterhin erscheinen, überprüfe deine Konfiguration oder kontaktiere die Server-Administration.", + "failed_connect_identity_server_reset_password": "Du kannst dein Passwort zurücksetzen, einige Funktionen werden allerdings erst verfügbar sein, sobald der Identitäts-Server wieder in Betrieb ist. Sollte diese Warnmeldung weiterhin erscheinen, überprüfe deine Konfiguration oder kontaktiere die Server-Administration.", + "failed_homeserver_discovery": "Fehler beim Aufspüren des Heim-Servers", + "failed_query_registration_methods": "Konnte unterstützte Registrierungsmethoden nicht abrufen.", + "failed_soft_logout_auth": "Erneute Authentifizierung fehlgeschlagen", + "failed_soft_logout_homeserver": "Erneute Authentifizierung aufgrund eines Problems des Heim-Servers fehlgeschlagen", + "footer_powered_by_matrix": "Betrieben mit Matrix", + "forgot_password_email_invalid": "E-Mail-Adresse scheint ungültig zu sein.", + "forgot_password_email_required": "Es muss die mit dem Benutzerkonto verbundene E-Mail-Adresse eingegeben werden.", + "forgot_password_prompt": "Passwort vergessen?", + "forgot_password_send_email": "E-Mail senden", + "identifier_label": "Anmelden mit", + "incorrect_credentials": "Inkorrekter Nutzername und/oder Passwort.", + "incorrect_credentials_detail": "Bitte beachte, dass du dich gerade auf %(hs)s anmeldest, nicht matrix.org.", + "incorrect_password": "Ungültiges Passwort", + "log_in_new_account": "Mit deinem neuen Konto anmelden.", + "logout_dialog": { + "description": "Bist du sicher, dass du dich abmelden möchtest?", + "megolm_export": "Schlüssel manuell exportieren", + "setup_key_backup_title": "Du wirst den Zugang zu deinen verschlüsselten Nachrichten verlieren", + "setup_secure_backup_description_1": "Verschlüsselte Nachrichten sind mit Ende-zu-Ende-Verschlüsselung gesichert. Nur du und der/die Empfänger haben die Schlüssel um diese Nachrichten zu lesen.", + "setup_secure_backup_description_2": "Wenn du dich abmeldest, werden die Schlüssel auf diesem Gerät gelöscht. Das bedeutet, dass du keine verschlüsselten Nachrichten mehr lesen kannst, wenn du die Schlüssel nicht auf einem anderen Gerät oder eine Sicherung auf dem Server hast.", + "skip_key_backup": "Ich möchte meine verschlüsselten Nachrichten nicht", + "use_key_backup": "Beginne Schlüsselsicherung zu nutzen" }, - "auth": { - "sso_complete_in_browser_dialog_title": "Browser öffnen, um die Anmeldung abzuschließen" + "misconfigured_body": "Wende dich an deinen %(brand)s-Admin um deine Konfiguration auf ungültige oder doppelte Einträge zu überprüfen.", + "misconfigured_title": "Dein %(brand)s ist falsch konfiguriert", + "msisdn_field_description": "Andere Personen können dich mit deinen Kontaktdaten in Räume einladen", + "msisdn_field_label": "Telefon", + "msisdn_field_number_invalid": "Diese Telefonummer sieht nicht ganz richtig aus. Bitte überprüfe deine Eingabe und versuche es erneut", + "msisdn_field_required_invalid": "Telefonnummer eingeben", + "no_hs_url_provided": "Keine Heim-Server-URL angegeben", + "oidc": { + "error_title": "Wir konnten dich nicht anmelden", + "generic_auth_error": "Etwas ist während der Authentifizierung schiefgelaufen. Geh zurück zur Anmeldeseite und probiere es erneut.", + "logout_redirect_warning": "Sie werden zum Server Authentifizierungsanbieter weitergeleitet, um die Abmeldung abzuschließen.", + "missing_or_invalid_stored_state": "Wir haben deinen Browser gebeten, sich zu merken, bei welchem Heim-Server du dich anmeldest, aber dein Browser hat dies leider vergessen. Gehe zur Anmeldeseite und versuche es erneut." }, - "desktop_default_device_name": "%(brand)s Desktop: %(platformName)s", - "download_completed": "Herunterladen fertiggestellt", - "error": { - "app_launch_unexpected_error": "Unerwarteter Fehler bei der Vorbereitung der App; mehr Details in der Konsole.", - "cannot_load_config": "Konfigurationsdatei kann nicht geladen werden: Bitte aktualisiere die Seite, um es erneut zu versuchen.", - "invalid_configuration_mixed_server": "Ungültige Konfiguration: default_hs_url kann nicht zeitgleich mit default_server_name oder default_server_config festgelegt werden", - "invalid_configuration_no_server": "Ungültige Konfiguration: Es wurde kein Standardserver angegeben.", - "invalid_json": "Deine Element-Konfiguration enthält ungültiges JSON. Bitte korrigiere das Problem und lade die Seite neu.", - "invalid_json_detail": "Die Nachricht des Parsers ist: %(message)s", - "invalid_json_generic": "Ungültiges JSON", - "misconfigured": "Dein Element ist falsch konfiguriert" + "password_field_keep_going_prompt": "Fortfahren …", + "password_field_label": "Passwort eingeben", + "password_field_strong_label": "Super, ein starkes Passwort!", + "password_field_weak_label": "Passwort ist erlaubt, aber unsicher", + "phone_label": "Telefon", + "phone_optional_label": "Telefon (optional)", + "qr_code_login": { + "approve_access_warning": "Indem du den Zugriff dieses Gerätes bestätigst, erhält es vollen Zugang zu deinem Konto.", + "completing_setup": "Schließe Anmeldung deines neuen Gerätes ab", + "confirm_code_match": "Überprüfe, dass der unten angezeigte Code mit deinem anderen Gerät übereinstimmt:", + "error_rate_limited": "Zu viele Versuche in zu kurzer Zeit. Warte ein wenig, bevor du es erneut versuchst.", + "error_unexpected": "Ein unerwarteter Fehler ist aufgetreten.", + "scan_code_instruction": "Lese den folgenden QR-Code mit deinem nicht angemeldeten Gerät ein.", + "scan_qr_code": "QR-Code einlesen", + "select_qr_code": "Wähle „%(scanQRCode)s“", + "sign_in_new_device": "Neues Gerät anmelden", + "waiting_for_device": "Warte auf Anmeldung des Gerätes" }, - "incompatible_browser": { - "title": "Nicht unterstützter Browser" + "register_action": "Konto erstellen", + "registration": { + "continue_without_email_description": "Aufgepasst: Wenn du keine E-Mail-Adresse angibst und dein Passwort vergisst, kannst du den Zugriff auf deinen Konto dauerhaft verlieren.", + "continue_without_email_field_label": "E-Mail-Adresse (optional)", + "continue_without_email_title": "Ohne E-Mail fortfahren" }, - "powered_by_matrix": "Betrieben mit Matrix", - "powered_by_matrix_with_logo": "Dezentralisierter, verschlüsselter Chat & Zusammenarbeit unterstützt von $matrixLogo", - "unknown_device": "Unbekanntes Gerät", - "web_default_device_name": "%(appName)s: %(browserName)s auf %(osName)s", - "welcome_to_element": "Willkommen bei Element" + "registration_disabled": "Registrierungen wurden auf diesem Heim-Server deaktiviert.", + "registration_msisdn_field_required_invalid": "Telefonnummer eingeben (auf diesem Heim-Server erforderlich)", + "registration_successful": "Registrierung erfolgreich", + "registration_username_in_use": "Jemand anderes nutzt diesen Benutzernamen schon. Probier einen anderen oder wenn du es bist, melde dich unten an.", + "registration_username_unable_check": "Es kann nicht überprüft werden, ob der Nutzername bereits vergeben ist. Bitte versuche es später erneut.", + "registration_username_validation": "Verwende nur Kleinbuchstaben, Zahlen, Bindestriche und Unterstriche", + "reset_password": { + "confirm_new_password": "Neues Passwort bestätigen", + "devices_logout_success": "Du wurdest von allen Geräten abgemeldet und erhältst keine Push-Benachrichtigungen mehr. Um Benachrichtigungen wieder zu aktivieren, melde dich auf jedem Gerät erneut an.", + "other_devices_logout_warning_1": "Das Abmelden deines Geräts wird die Verschlüsselungsschlüssel löschen, woraufhin verschlüsselte Nachrichtenverläufe nicht mehr lesbar sein werden.", + "other_devices_logout_warning_2": "Falls du den Zugriff auf deinen Nachrichtenverlauf behalten willst, richte die Schlüsselsicherung ein oder exportiere deine Verschlüsselungsschlüssel von einem deiner Geräte bevor du weiter machst.", + "password_not_entered": "Es muss ein neues Passwort eingegeben werden.", + "passwords_mismatch": "Die neuen Passwörter müssen identisch sein.", + "rate_limit_error": "Zu viele Versuche in zu kurzer Zeit. Warte ein wenig, bevor du es erneut versuchst.", + "rate_limit_error_with_time": "Zu viele Versuche in zu kurzer Zeit. Versuche es erneut nach %(timeout)s.", + "reset_successful": "Dein Passwort wurde zurückgesetzt.", + "return_to_login": "Zur Anmeldemaske zurückkehren", + "sign_out_other_devices": "Auf allen Geräten abmelden" + }, + "reset_password_action": "Passwort zurücksetzen", + "reset_password_button": "Passwort vergessen?", + "reset_password_email_field_description": "Verwende eine E-Mail-Adresse, um dein Konto wiederherzustellen", + "reset_password_email_field_required_invalid": "E-Mail-Adresse eingeben (auf diesem Heim-Server erforderlich)", + "reset_password_email_not_associated": "Deine E-Mail-Adresse scheint nicht mit einer Matrix-ID auf diesem Heim-Server verknüpft zu sein.", + "reset_password_email_not_found_title": "Diese E-Mail-Adresse konnte nicht gefunden werden", + "reset_password_title": "Setze dein Passwort zurück", + "server_picker_custom": "Anderer Heim-Server", + "server_picker_description": "Du kannst in den benutzerdefinierten Server-Optionen eine andere Heim-Server-URL angeben, um dich bei anderen Matrix-Servern anzumelden. Dadurch kannst du %(brand)s mit einem auf einem anderen Heim-Server liegenden Matrix-Konto nutzen.", + "server_picker_description_matrix.org": "Schließe dich kostenlos auf dem größten öffentlichen Server Millionen von Menschen an", + "server_picker_dialog_title": "Entscheide, wo sich dein Konto befinden soll", + "server_picker_explainer": "Verwende einen Matrix-Heim-Server deiner Wahl oder betreibe deinen eigenen.", + "server_picker_failed_validate_homeserver": "Überprüfung des Heim-Servers nicht möglich", + "server_picker_intro": "Wir nennen die Orte, an denen du dein Benutzerkonto speichern kannst, „Heim-Server“.", + "server_picker_invalid_url": "Ungültiger Link", + "server_picker_learn_more": "Über Heim-Server", + "server_picker_matrix.org": "Matrix.org ist der größte öffentliche Heim-Server der Welt, also für viele ein guter Ort.", + "server_picker_required": "Gib einen Heim-Server an", + "server_picker_title": "Melde dich bei deinem Heim-Server an", + "server_picker_title_default": "Server-Einstellungen", + "server_picker_title_registration": "Konto betreiben auf", + "session_logged_out_description": "Aus Sicherheitsgründen wurde diese Sitzung beendet. Bitte melde dich erneut an.", + "session_logged_out_title": "Abgemeldet", + "set_email": { + "description": "Dies ermöglicht es dir, dein Passwort zurückzusetzen und Benachrichtigungen zu empfangen.", + "verification_pending_description": "Bitte prüfe deinen E-Mail-Posteingang und klicke auf den in der E-Mail enthaltenen Link. Anschließend auf \"Fortsetzen\" klicken.", + "verification_pending_title": "Verifizierung ausstehend" + }, + "set_email_prompt": "Möchtest du eine E-Mail-Adresse setzen?", + "sign_in_description": "Nutze dein Konto, um fortzufahren.", + "sign_in_instead": "Stattdessen anmelden", + "sign_in_instead_prompt": "Konto schon vorhanden? Hier anmelden", + "sign_in_or_register": "Anmelden oder Konto erstellen", + "sign_in_or_register_description": "Benutze dein Konto oder erstelle ein neues, um fortzufahren.", + "sign_in_prompt": "Du hast bereits ein Konto? Melde dich an", + "sign_in_with_sso": "Einmalanmeldung nutzen", + "signing_in": "Melde an …", + "soft_logout": { + "clear_data_button": "Alle Daten löschen", + "clear_data_description": "Das Löschen aller Daten aus dieser Sitzung ist dauerhaft. Verschlüsselte Nachrichten gehen verloren, sofern deine Schlüssel nicht gesichert wurden.", + "clear_data_title": "Alle Daten dieser Sitzung löschen?" + }, + "soft_logout_heading": "Du wurdest abgemeldet", + "soft_logout_intro_password": "Gib dein Passwort ein, um dich anzumelden und wieder Zugang zu deinem Konto zu erhalten.", + "soft_logout_intro_sso": "Melde dich an und erhalte wieder Zugriff auf dein Konto.", + "soft_logout_intro_unsupported_auth": "Du kannst dich nicht bei deinem Konto anmelden. Bitte kontaktiere deine Heim-Server-Administration für weitere Informationen.", + "soft_logout_subheading": "Persönliche Daten löschen", + "soft_logout_warning": "Achtung: Deine persönlichen Daten (einschließlich Verschlüsselungs-Schlüssel) sind noch in dieser Sitzung gespeichert. Lösche diese Daten, wenn du diese Sitzung nicht mehr benötigst, oder dich mit einem anderen Konto anmelden möchtest.", + "sso": "Single Sign-on", + "sso_failed_missing_storage": "Wir haben deinen Browser gebeten, sich zu merken, bei welchem Heim-Server du dich anmeldest, aber dein Browser hat dies leider vergessen. Gehe zur Anmeldeseite und versuche es erneut.", + "sso_or_username_password": "%(ssoButtons)s oder %(usernamePassword)s", + "sync_footer_subtitle": "Du bist einer Menge Räumen beigetreten, das kann eine Weile dauern", + "syncing": "Synchronisiere …", + "uia": { + "code": "Code", + "email": "Um dein Konto zu erstellen, öffne den Link in der E-Mail, die wir gerade an %(emailAddress)s geschickt haben.", + "email_auth_header": "Zum Fortfahren prüfe deine E-Mails", + "email_resend_prompt": "Nicht angekommen? Erneut senden", + "email_resent": "Verschickt!", + "fallback_button": "Authentifizierung beginnen", + "msisdn": "Eine Textnachricht wurde an %(msisdn)s gesendet", + "msisdn_token_incorrect": "Token fehlerhaft", + "msisdn_token_prompt": "Bitte gib den darin enthaltenen Code ein:", + "password_prompt": "Bestätige deine Identität, indem du unten dein Kontopasswort eingibst.", + "recaptcha_missing_params": "Fehlender öffentlicher Captcha-Schlüssel in der Heim-Server-Konfiguration. Bitte melde dies deiner Heimserver-Administration.", + "registration_token_label": "Registrierungstoken", + "registration_token_prompt": "Gib einen von deiner Home-Server-Administration zur Verfügung gestellten Registrierungstoken ein.", + "sso_body": "Bestätige die neue E-Mail-Adresse mit Single-Sign-On, um deine Identität nachzuweisen.", + "sso_failed": "Bei der Bestätigung deiner Identität ist ein Fehler aufgetreten. Abbrechen und erneut versuchen.", + "sso_postauth_body": "Klicke den Button unten um deine Identität zu bestätigen.", + "sso_postauth_title": "Bestätige um fortzufahren", + "sso_preauth_body": "Zum Fortfahren, nutze „Single Sign-On“ um deine Identität zu bestätigen.", + "sso_title": "Einmalanmeldung zum Fortfahren nutzen", + "terms": "Bitte sieh dir alle Bedingungen dieses Heim-Servers an und akzeptiere sie:", + "terms_invalid": "Bitte prüfe und akzeptiere alle Richtlinien des Heim-Servers" + }, + "unsupported_auth": "Dieser Heim-Server verfügt über keines von dieser Anwendung unterstütztes Anmeldeverfahren.", + "unsupported_auth_email": "Dieser Heim-Server unterstützt die Anmeldung per E-Mail-Adresse nicht.", + "unsupported_auth_msisdn": "Dieser Server unterstützt keine Authentifizierung per Telefonnummer.", + "username_field_required_invalid": "Benutzername eingeben", + "username_in_use": "Dieser Benutzername wird bereits genutzt, bitte versuche es mit einem anderen.", + "verify_email_explainer": "Wir müssen wissen, dass du es auch wirklich bist, bevor wir dein Passwort zurücksetzen. Klicke auf den Link in der E-Mail, die wir gerade an %(email)s gesendet haben", + "verify_email_heading": "Verifiziere deine E-Mail, um fortzufahren" + }, + "desktop_default_device_name": "%(brand)s Desktop: %(platformName)s", + "download_completed": "Herunterladen fertiggestellt", + "error": { + "app_launch_unexpected_error": "Unerwarteter Fehler bei der Vorbereitung der App; mehr Details in der Konsole.", + "cannot_load_config": "Konfigurationsdatei kann nicht geladen werden: Bitte aktualisiere die Seite, um es erneut zu versuchen.", + "invalid_configuration_mixed_server": "Ungültige Konfiguration: default_hs_url kann nicht zeitgleich mit default_server_name oder default_server_config festgelegt werden", + "invalid_configuration_no_server": "Ungültige Konfiguration: Es wurde kein Standardserver angegeben.", + "invalid_json": "Deine Element-Konfiguration enthält ungültiges JSON. Bitte korrigiere das Problem und lade die Seite neu.", + "invalid_json_detail": "Die Nachricht des Parsers ist: %(message)s", + "invalid_json_generic": "Ungültiges JSON", + "misconfigured": "Dein Element ist falsch konfiguriert", + "admin_contact": "Bitte kontaktiere deinen Systemadministrator um diesen Dienst weiter zu nutzen.", + "admin_contact_short": "Kontaktiere deine Heim-Server-Administration.", + "connection": "Es gab ein Problem bei der Kommunikation mit dem Heim-Server. Bitte versuche es später erneut.", + "dialog_description_default": "Ein Fehler ist aufgetreten.", + "download_media": "Herunterladen der Quellmedien fehlgeschlagen, da keine Quell-URL gefunden wurde", + "edit_history_unsupported": "Dein Heim-Server scheint diese Funktion nicht zu unterstützen.", + "failed_copy": "Kopieren fehlgeschlagen", + "hs_blocked": "Dieser Heim-Server wurde von seiner Administration geblockt.", + "mau": "Dieser Heim-Server hat seinen Grenzwert an monatlich aktiven Nutzern erreicht.", + "mixed_content": "Es kann keine Verbindung zum Heim-Server via HTTP aufgebaut werden, wenn die Adresszeile des Browsers eine HTTPS-URL enthält. Entweder HTTPS verwenden oder alternativ unsichere Skripte erlauben.", + "non_urgent_echo_failure_toast": "Dein Server antwortet auf einige Anfragen nicht.", + "resource_limits": "Dieser Heim-Server hat einen seiner Ressourcengrenzwerte überschritten.", + "session_restore": { + "clear_storage_button": "Speicher leeren und abmelden", + "clear_storage_description": "Abmelden und Verschlüsselungsschlüssel entfernen?", + "description_1": "Wir haben ein Problem beim Wiederherstellen deiner vorherigen Sitzung festgestellt.", + "description_2": "Wenn du zuvor eine aktuellere Version von %(brand)s verwendet hast, ist deine Sitzung eventuell inkompatibel mit dieser Version. Bitte schließe dieses Fenster und kehre zur aktuelleren Version zurück.", + "description_3": "Den Browser-Speicher zu löschen kann das Problem lösen, wird dich aber abmelden und verschlüsselte Nachrichten unlesbar machen.", + "title": "Sitzungswiederherstellung fehlgeschlagen" + }, + "something_went_wrong": "Etwas ist schiefgelaufen!", + "storage_evicted_description_1": "Einige Sitzungsdaten, einschließlich der Verschlüsselungsschlüssel, fehlen. Melde dich ab, wieder an und stelle die Schlüssel aus der Sicherung wieder her um dies zu beheben.", + "storage_evicted_description_2": "Dein Browser hat diese Daten wahrscheinlich entfernt als der Festplattenspeicher knapp wurde.", + "storage_evicted_title": "Fehlende Sitzungsdaten", + "sync": "Verbindung mit Heim-Server fehlgeschlagen. Versuche es erneut …", + "tls": "Verbindung zum Heim-Server fehlgeschlagen – bitte überprüfe die Internetverbindung und stelle sicher, dass dem SSL-Zertifikat deines Heimservers vertraut wird und dass Anfragen nicht durch eine Browser-Erweiterung blockiert werden.", + "unknown": "Unbekannter Fehler", + "unknown_error_code": "Unbekannter Fehlercode", + "update_power_level": "Ändern der Berechtigungsstufe fehlgeschlagen" + }, + "incompatible_browser": { + "title": "Nicht unterstützter Browser" + }, + "powered_by_matrix": "Betrieben mit Matrix", + "powered_by_matrix_with_logo": "Dezentralisierter, verschlüsselter Chat & Zusammenarbeit unterstützt von $matrixLogo", + "unknown_device": "Unbekanntes Gerät", + "web_default_device_name": "%(appName)s: %(browserName)s auf %(osName)s", + "welcome_to_element": "Willkommen bei Element", + "a11y": { + "emoji_picker": "Emoji-Auswahl", + "jump_first_invite": "Zur ersten Einladung springen.", + "n_unread_messages": { + "other": "%(count)s ungelesene Nachrichten.", + "one": "1 ungelesene Nachricht." + }, + "n_unread_messages_mentions": { + "other": "%(count)s ungelesene Nachrichten einschließlich Erwähnungen.", + "one": "1 ungelesene Erwähnung." + }, + "room_name": "Raum %(name)s", + "unread_messages": "Ungelesene Nachrichten.", + "user_menu": "Benutzermenü" + }, + "a11y_jump_first_unread_room": "Zum ersten ungelesenen Raum springen.", + "analytics": { + "accept_button": "Das ist okay", + "bullet_1": "Wir erfassen und analysieren keine Kontodaten", + "bullet_2": "Wir teilen keine Informationen mit Dritten", + "consent_migration": "Sie haben zuvor zugestimmt, anonymisierte Nutzungsdaten mit uns zu teilen. Wir aktualisieren, wie das funktioniert.", + "disable_prompt": "Du kannst dies jederzeit in den Einstellungen deaktivieren", + "enable_prompt": "Hilf mit, %(analyticsOwner)s zu verbessern", + "learn_more": "Teile Daten anonymisiert um uns zu helfen Probleme zu identifizieren. Nichts persönliches. Keine Dritten. Mehr dazu hier", + "privacy_policy": "Du kannst unsere Datenschutzbedingungen hier lesen", + "pseudonymous_usage_data": "Hilf uns dabei Probleme zu identifizieren und %(analyticsOwner)s zu verbessern, indem du anonyme Nutzungsdaten teilst. Um zu verstehen, wie Personen mehrere Geräte verwenden, werden wir eine zufällige Kennung generieren, die zwischen deinen Geräten geteilt wird.", + "shared_data_heading": "Die folgenden Informationen können geteilt werden:" + }, + "bug_reporting": { + "additional_context": "Wenn es mehr Informationen gibt, die uns bei der Auswertung des Problems würden – z. B. was du getan hast, Raum- oder Benutzer-IDs … – gib sie bitte hier an.", + "before_submitting": "Bevor du Protokolldateien übermittelst, musst du auf GitHub einen \"Issue\" erstellen um dein Problem zu beschreiben.", + "collecting_information": "App-Versionsinformationen werden abgerufen", + "collecting_logs": "Protokolle werden abgerufen", + "create_new_issue": "Bitte erstelle ein neues Issue auf GitHub damit wir diesen Fehler untersuchen können.", + "description": "Fehlerberichte enthalten Nutzungsdaten wie Nutzernamen von dir und anderen Personen, Raum-IDs deiner beigetretenen Räume sowie mit welchen Elementen der Oberfläche du kürzlich interagiert hast. Sie enthalten keine Nachrichten.", + "download_logs": "Protokolle herunterladen", + "downloading_logs": "Lade Protokolle herunter", + "error_empty": "Bitte teile uns mit, was schief lief - oder besser, beschreibe das Problem auf GitHub in einem \"Issue\".", + "failed_send_logs": "Senden von Protokolldateien fehlgeschlagen: ", + "github_issue": "\"Issue\" auf Github", + "introduction": "Wenn du uns einen Bug auf GitHub gemeldet hast, können uns Debug-Logs helfen, das Problem zu finden. ", + "log_request": "Um uns zu helfen, dies in Zukunft zu vermeiden, sende uns bitte die Protokolldateien.", + "logs_sent": "Protokolldateien gesendet", + "matrix_security_issue": "Um ein Matrix-bezogenes Sicherheitsproblem zu melden, lies bitte die Matrix.org Sicherheitsrichtlinien.", + "preparing_download": "Bereite das Herunterladen der Protokolle vor", + "preparing_logs": "Senden von Protokolldateien wird vorbereitet", + "send_logs": "Protokolldateien übermitteln", + "submit_debug_logs": "Fehlerbericht abschicken", + "textarea_label": "Notizen", + "thank_you": "Danke!", + "title": "Fehler melden", + "unsupported_browser": "Warnung: Dein Browser wird nicht unterstützt. Die Anwendung kann instabil sein.", + "uploading_logs": "Lade Protokolle hoch", + "waiting_for_server": "Warte auf Antwort vom Server" + }, + "cannot_invite_without_identity_server": "Einladen per E-Mail-Adresse ist nicht ohne Identitäts-Server möglich. Du kannst einen unter „Einstellungen“ einrichten.", + "cannot_reach_homeserver": "Heim-Server nicht erreichbar", + "cannot_reach_homeserver_detail": "Stelle sicher, dass du eine stabile Internetverbindung hast oder wende dich an deine Server-Administration", + "cant_load_page": "Konnte Seite nicht laden", + "chat_card_back_action_label": "Zurück zur Unterhaltung", + "chat_effects": { + "confetti_description": "Sendet die Nachricht mit Konfetti", + "confetti_message": "sendet Konfetti", + "fireworks_description": "Sendet die Nachricht mit Feuerwerk", + "fireworks_message": "sendet Feuerwerk", + "hearts_description": "Sendet die Nachricht mit Herzen", + "hearts_message": "Sendet Herzen", + "rainfall_description": "Nachricht mit Regeneffekt senden", + "rainfall_message": "sendet mit Regeneffekt", + "snowfall_description": "Sendet die Nachricht mit Schneeflocken", + "snowfall_message": "sendet Schneeflocken", + "spaceinvaders_description": "Sendet die Nachricht mit Raumschiffen", + "spaceinvaders_message": "sendet Space Invaders" + }, + "common": { + "access_token": "Zugriffstoken", + "accessibility": "Barrierefreiheit", + "advanced": "Erweitert", + "all_rooms": "Alle Räume", + "analytics": "Analysedaten", + "and_n_others": { + "other": "und %(count)s weitere …", + "one": "und ein weiterer …" + }, + "android": "Android", + "appearance": "Erscheinungsbild", + "application": "Anwendung", + "are_you_sure": "Bist du sicher?", + "attachment": "Anhang", + "authentication": "Authentifizierung", + "avatar": "Profilbild", + "beta": "Beta", + "camera": "Kamera", + "cameras": "Kameras", + "capabilities": "Funktionen", + "copied": "Kopiert!", + "credits": "Danksagungen", + "cross_signing": "Quersignierung", + "dark": "Dunkel", + "description": "Beschreibung", + "deselect_all": "Alle abwählen", + "device": "Gerät", + "edited": "bearbeitet", + "email_address": "E-Mail-Adresse", + "emoji": "Emojis", + "encrypted": "Verschlüsselt", + "encryption_enabled": "Verschlüsselung aktiviert", + "error": "Fehler", + "faq": "Häufige Fragen", + "favourites": "Favoriten", + "feedback": "Rückmeldung", + "filter_results": "Ergebnisse filtern", + "forward_message": "Nachricht weiterleiten", + "general": "Allgemein", + "go_to_settings": "Gehe zu Einstellungen", + "guest": "Gast", + "help": "Hilfe", + "historical": "Archiv", + "home": "Startseite", + "homeserver": "Heim-Server", + "identity_server": "Identitäts-Server", + "image": "Bild", + "integration_manager": "Integrationsverwaltung", + "ios": "iOS", + "joined": "Beigetreten", + "labs": "Labor", + "legal": "Rechtliches", + "light": "Hell", + "loading": "Lade …", + "location": "Standort", + "low_priority": "Niedrige Priorität", + "matrix": "Matrix", + "message": "Nachricht", + "message_layout": "Nachrichtenlayout", + "microphone": "Mikrofon", + "model": "Modell", + "modern": "Modern", + "mute": "Stummschalten", + "n_members": { + "other": "%(count)s Mitglieder", + "one": "%(count)s Mitglied" + }, + "n_rooms": { + "one": "%(count)s Raum", + "other": "%(count)s Räume" + }, + "name": "Name", + "no_results": "Keine Ergebnisse", + "no_results_found": "Keine Ergebnisse", + "not_trusted": "Nicht vertrauenswürdig", + "off": "Aus", + "offline": "Offline", + "on": "An", + "options": "Optionen", + "orphan_rooms": "Andere Räume", + "password": "Passwort", + "people": "Personen", + "preferences": "Einstellungen", + "presence": "Anwesenheit", + "preview_message": "Hey du. Du bist großartig!", + "privacy": "Privatsphäre", + "private": "Privat", + "private_room": "Privater Raum", + "private_space": "Privater Space", + "profile": "Profil", + "public": "Öffentlich", + "public_room": "Öffentlicher Raum", + "public_space": "Öffentlicher Space", + "qr_code": "QR-Code", + "random": "Ohne Thema", + "reactions": "Reaktionen", + "report_a_bug": "Einen Fehler melden", + "room": "Raum", + "room_name": "Raumname", + "rooms": "Räume", + "saving": "Speichere …", + "secure_backup": "Verschlüsselte Sicherung", + "security": "Sicherheit", + "select_all": "Alle auswählen", + "server": "Server", + "settings": "Einstellungen", + "setup_secure_messages": "Richte sichere Nachrichten ein", + "show_more": "Mehr zeigen", + "someone": "Jemand", + "space": "Raum", + "spaces": "Räume", + "sticker": "Sticker", + "stickerpack": "Sticker-Paket", + "success": "Erfolg", + "suggestions": "Vorschläge", + "support": "Unterstützung", + "system_alerts": "Systembenachrichtigung", + "theme": "Design", + "thread": "Thema", + "threads": "Themen", + "timeline": "Verlauf", + "trusted": "Vertrauenswürdig", + "unavailable": "Nicht verfügbar", + "unencrypted": "Unverschlüsselt", + "unmute": "Stummschalten aufheben", + "unnamed_room": "Unbenannter Raum", + "unnamed_space": "Unbenannter Space", + "unsent": "Nicht gesendet", + "unverified": "Nicht verifiziert", + "user": "Benutzer", + "user_avatar": "Profilbild", + "username": "Benutzername", + "verification_cancelled": "Verifikation abgebrochen", + "verified": "Verifiziert", + "version": "Version", + "video": "Video", + "video_room": "Videoraum", + "view_message": "Nachricht anzeigen", + "warning": "Warnung", + "welcome": "Willkommen" + }, + "composer": { + "autocomplete": { + "@room_description": "Alle im Raum benachrichtigen", + "command_a11y": "Autovervollständigung aktivieren", + "command_description": "Befehle", + "emoji_a11y": "Emoji-Auto-Vervollständigung", + "notification_a11y": "Benachrichtigung Autovervollständigen", + "notification_description": "Raum-Benachrichtigung", + "room_a11y": "Raum-Auto-Vervollständigung", + "space_a11y": "Spaces automatisch vervollständigen", + "user_a11y": "Nutzer-Auto-Vervollständigung", + "user_description": "Benutzer" + }, + "close_sticker_picker": "Sticker ausblenden", + "edit_composer_label": "Nachricht bearbeiten", + "format_bold": "Fett", + "format_code_block": "Quelltextblock", + "format_decrease_indent": "Einrückung verringern", + "format_increase_indent": "Einrückung erhöhen", + "format_inline_code": "Code", + "format_insert_link": "Link einfügen", + "format_italic": "Kursiv", + "format_italics": "Kursiv", + "format_link": "Link", + "format_ordered_list": "Nummerierte Liste", + "format_strikethrough": "Durchgestrichen", + "format_underline": "Unterstrichen", + "format_unordered_list": "Ungeordnete Liste", + "formatting_toolbar_label": "Formatierung", + "link_modal": { + "link_field_label": "Link", + "text_field_label": "Text", + "title_create": "Link erstellen", + "title_edit": "Link bearbeiten" + }, + "mode_plain": "Formatierung ausblenden", + "mode_rich_text": "Formatierung anzeigen", + "no_perms_notice": "Du hast keine Berechtigung, etwas in diesen Raum zu senden", + "placeholder": "Nachricht senden …", + "placeholder_encrypted": "Verschlüsselte Nachricht senden …", + "placeholder_reply": "Antwort senden …", + "placeholder_reply_encrypted": "Verschlüsselte Antwort senden …", + "placeholder_thread": "Nachricht an Thread senden …", + "placeholder_thread_encrypted": "Verschlüsselte Nachricht an Thread senden …", + "poll_button": "Umfrage", + "poll_button_no_perms_description": "Du bist nicht berechtigt, Umfragen in diesem Raum zu beginnen.", + "poll_button_no_perms_title": "Berechtigung benötigt", + "replying_title": "Antwortet", + "room_upgraded_link": "Die Konversation wird hier fortgesetzt.", + "room_upgraded_notice": "Dieser Raum wurde ersetzt und ist nicht länger aktiv.", + "send_button_title": "Nachricht senden", + "send_button_voice_message": "Sprachnachricht senden", + "send_voice_message": "Sprachnachricht senden", + "stop_voice_message": "Aufnahme beenden", + "voice_message_button": "Sprachnachricht" + }, + "console_dev_note": "Falls du weißt, was du machst: Element ist Open Source! Checke unser GitHub aus (https://github.com/vector-im/element-web/) und hilf mit!", + "console_scam_warning": "Wenn dir jemand gesagt hat, dass du hier etwas einfügen sollst, ist die Wahrscheinlichkeit sehr groß, dass du von der Person betrogen wirst!", + "console_wait": "Warte!", + "create_room": { + "action_create_room": "Raum erstellen", + "action_create_video_room": "Videoraum erstellen", + "encrypted_video_room_warning": "Dies kann später nicht deaktiviert werden. Der Raum wird verschlüsselt sein, nicht aber der eingebettete Anruf.", + "encrypted_warning": "Du kannst dies später nicht deaktivieren. Brücken und die meisten Bots werden noch nicht funktionieren.", + "encryption_forced": "Für deinen Server muss die Verschlüsselung in privaten Räumen aktiviert sein.", + "encryption_label": "Ende-zu-Ende-Verschlüsselung aktivieren", + "error_title": "Raumerstellung fehlgeschlagen", + "generic_error": "Server ist nicht verfügbar, überlastet oder du bist auf einen Programmfehler gestoßen.", + "join_rule_change_notice": "Du kannst das jederzeit in den Raumeinstellungen ändern.", + "join_rule_invite": "Privater Raum (Einladung erforderlich)", + "join_rule_invite_label": "Nur eingeladene Personen können den Raum finden und betreten.", + "join_rule_knock_label": "Jeder kann Anfragen beizutreten, aber Admins oder Moderatoren müssen dies bestätigen. Du kannst dies später ändern.", + "join_rule_public_label": "Alle können diesen Raum finden und betreten.", + "join_rule_public_parent_space_label": "Finden und Betreten ist allen, nicht nur Mitgliedern von , möglich.", + "join_rule_restricted": "Für Space-Mitglieder sichtbar", + "join_rule_restricted_label": "Mitglieder von können diesen Raum finden und betreten.", + "name_validation_required": "Bitte gib einen Namen für den Raum ein", + "room_visibility_label": "Raumsichtbarkeit", + "title_private_room": "Einen privaten Raum erstellen", + "title_public_room": "Öffentlichen Raum erstellen", + "title_video_room": "Videoraum erstellen", + "topic_label": "Thema (optional)", + "unfederated": "Betreten nur für Nutzer von %(serverName)s erlauben.", + "unfederated_label_default_off": "Du solltest dies aktivieren, wenn der Raum nur für die Zusammenarbeit mit Benutzern von deinem Heim-Server verwendet werden soll. Dies kann später nicht mehr geändert werden.", + "unfederated_label_default_on": "Du solltest dies deaktivieren, wenn der Raum für die Zusammenarbeit mit Benutzern von anderen Heim-Server verwendet werden soll. Dies kann später nicht mehr geändert werden.", + "unsupported_version": "Der Server unterstützt die angegebene Raumversion nicht." + }, + "create_space": { + "add_details_prompt": "Gib einige Infos über deinen neuen Space an.", + "add_details_prompt_2": "Du kannst diese jederzeit ändern.", + "add_existing_rooms_description": "Wähle Räume oder Konversationen die du hinzufügen willst. Dieser Space ist nur für dich, niemand wird informiert. Du kannst später mehr hinzufügen.", + "add_existing_rooms_heading": "Was willst du organisieren?", + "address_label": "Adresse", + "address_placeholder": "z. B. mein-space", + "creating": "Erstelle …", + "creating_rooms": "Erstelle Räume …", + "done_action": "Zu meinem Space", + "done_action_first_room": "Zum ersten Raum springen", + "explainer": "Spaces sind eine neue Möglichkeit, Räume und Personen zu gruppieren. Welche Art von Space willst du erstellen? Du kannst dies später ändern.", + "failed_create_initial_rooms": "Fehler beim Initialisieren des Space", + "failed_invite_users": "Die folgenden Leute konnten nicht eingeladen werden: %(csvUsers)s", + "invite_teammates_by_username": "Mit Benutzername einladen", + "invite_teammates_description": "Stelle sicher, dass die richtigen Personen Zutritt haben. Du kannst später weitere einladen.", + "invite_teammates_heading": "Lade deine Kollegen ein", + "inviting_users": "Lade ein …", + "label": "Neuen Space erstellen", + "name_required": "Gib den Namen des Spaces ein", + "personal_space": "Nur für mich", + "personal_space_description": "Ein privater Space zum Organisieren deiner Räume", + "private_description": "Nur für Eingeladene – optimal für dich selbst oder Teams", + "private_heading": "Dein privater Space", + "private_personal_description": "Stelle sicher, dass die richtigen Personen Zugriff auf %(name)s haben", + "private_personal_heading": "Für wen ist dieser Space gedacht?", + "private_space": "Für mich und meine Kollegen", + "private_space_description": "Ein privater Space für dich und deine Kollegen", + "public_description": "Öffne den Space für alle - am besten für Communities", + "public_heading": "Dein öffentlicher Space", + "search_public_button": "Öffentliche Spaces suchen", + "setup_rooms_community_description": "Lass uns für jedes einen Raum erstellen.", + "setup_rooms_community_heading": "Welche Themen willst du in %(spaceName)s besprechen?", + "setup_rooms_description": "Du kannst später weitere hinzufügen, auch bereits bestehende.", + "setup_rooms_private_description": "Wir werden für jedes einen Raum erstellen.", + "setup_rooms_private_heading": "Welche Projekte bearbeitet euer Team?", + "share_description": "Momentan bist nur du hier. Mit anderen Leuten wird es noch viel besser.", + "share_heading": "%(name)s teilen", + "skip_action": "Vorerst überspringen", + "subspace_adding": "Füge hinzu …", + "subspace_beta_notice": "Einen Space zu einem Space den du verwaltest hinzufügen.", + "subspace_dropdown_title": "Neuen Space erstellen", + "subspace_existing_space_prompt": "Willst du einen existierenden Space hinzufügen?", + "subspace_join_rule_invite_description": "Nur eingeladene Personen können diesen Space sehen und betreten.", + "subspace_join_rule_invite_only": "Privater Space (Betreten auf Einladung)", + "subspace_join_rule_label": "Sichtbarkeit des Space", + "subspace_join_rule_public_description": "Finden und Betreten ist allen, nicht nur Mitgliedern von , möglich.", + "subspace_join_rule_restricted_description": "Mitglieder von können diesen Space finden und betreten." + }, + "credits": { + "default_cover_photo": "Das Standard-Titelbild ist © Jesús Roncero und wird unter den Bedingungen von CC-BY-SA 4.0 verwendet.", + "twemoji": "Die Twemoji-Emojis sind © Twitter, Inc und weitere Mitwirkende und wird unter den Bedingungen von CC-BY 4.0 verwendet.", + "twemoji_colr": "Die Schriftart twemoji-colr ist © Mozilla Foundation und wird unter den Bedingungen von Apache 2.0 verwendet." + }, + "devtools": { + "active_widgets": "Aktive Widgets", + "category_other": "Sonstiges", + "category_room": "Raum", + "caution_colon": "Vorsicht:", + "client_versions": "Anwendungsversionen", + "developer_mode": "Entwicklungsmodus", + "developer_tools": "Entwicklungswerkzeuge", + "edit_setting": "Einstellung bearbeiten", + "edit_values": "Werte bearbeiten", + "empty_string": "", + "event_content": "Ereignisinhalt", + "event_id": "Event-ID: %(eventId)s", + "event_sent": "Ereignis gesendet!", + "event_type": "Eventtyp", + "explore_account_data": "Kontodaten erkunden", + "explore_room_account_data": "Erkunde Raumkontodaten", + "explore_room_state": "Raumstatus erkunden", + "failed_to_find_widget": "Fehler beim Finden dieses Widgets.", + "failed_to_load": "Fehler beim Laden.", + "failed_to_save": "Speichern der Einstellungen fehlgeschlagen.", + "failed_to_send": "Übertragung des Ereignisses fehlgeschlagen!", + "id": "ID: ", + "invalid_json": "Scheint kein gültiges JSON zu sein.", + "level": "Level", + "low_bandwidth_mode": "Modus für geringe Bandbreite", + "low_bandwidth_mode_description": "Benötigt kompatiblen Heim-Server.", + "main_timeline": "Hauptverlauf", + "methods": "Methoden", + "no_receipt_found": "Keine Bestätigung gefunden", + "no_verification_requests_found": "Keine Verifizierungsanfrage gefunden", + "notification_state": "Benachrichtigungsstand ist %(notificationState)s", + "notifications_debug": "Debug-Modus für Benachrichtigungen", + "number_of_users": "Benutzeranzahl", + "original_event_source": "Ursprüngliche Rohdaten", + "phase": "Phase", + "phase_cancelled": "Abgebrochen", + "phase_ready": "Bereit", + "phase_requested": "Angefragt", + "phase_started": "Gestartet", + "phase_transaction": "Transaktion", + "room_encrypted": "Raum ist verschlüsselt ✅", + "room_id": "Raum-ID: %(roomId)s", + "room_not_encrypted": "Raum ist nicht verschlüsselt 🚨", + "room_notifications_dot": "Punkt: ", + "room_notifications_highlight": "Höhepunkt: ", + "room_notifications_last_event": "Neuestes Ereignis:", + "room_notifications_sender": "Absender: ", + "room_notifications_thread_id": "Thread-ID: ", + "room_notifications_total": "Insgesamt: ", + "room_notifications_type": "Typ: ", + "room_status": "Raumstatus", + "room_unread_status_count": { + "other": "Ungelesen-Status im Raum: %(status)s, Anzahl: %(count)s" + }, + "save_setting_values": "Einstellungswerte speichern", + "see_history": "Verlauf anzeigen", + "send_custom_account_data_event": "Sende benutzerdefiniertes Kontodatenereignis", + "send_custom_room_account_data_event": "Sende benutzerdefiniertes Raumdatenereignis", + "send_custom_state_event": "Benutzerdefiniertes Status-Event senden", + "send_custom_timeline_event": "Sende benutzerdefiniertes Ereignis", + "server_info": "Server-Info", + "server_versions": "Server-Versionen", + "settable_global": "Global einstellbar", + "settable_room": "Für den Raum einstellbar", + "setting_colon": "Einstellung:", + "setting_definition": "Definition der Einstellung:", + "setting_id": "Einstellungs-ID", + "settings_explorer": "Einstellungsübersicht", + "show_hidden_events": "Versteckte Ereignisse im Verlauf anzeigen", + "spaces": { + "one": "", + "other": "<%(count)s Leerzeichen>" + }, + "state_key": "Statusschlüssel", + "thread_root_id": "Thread-Ursprungs-ID: %(threadRootId)s", + "threads_timeline": "Thread-Verlauf", + "timeout": "Zeitüberschreitung", + "title": "Entwicklungswerkzeuge", + "toggle_event": "Event umschalten", + "toolbox": "Werkzeugkasten", + "use_at_own_risk": "Diese Benutzeroberfläche prüft nicht auf richtige Datentypen. Benutzung auf eigene Gefahr.", + "user_read_up_to": "Der Benutzer hat gelesen bis: ", + "user_read_up_to_ignore_synthetic": "Der Benutzer hat gelesen bis (ignoreSynthetic): ", + "user_read_up_to_private": "Benutzer las bis (m.read.private): ", + "user_read_up_to_private_ignore_synthetic": "Benutzer las bis (m.read.private;ignoreSynthetic): ", + "value": "Wert", + "value_colon": "Wert:", + "value_in_this_room": "Wert in diesem Raum", + "value_this_room_colon": "Wert in diesem Raum:", + "values_explicit": "Werte für explizite Stufen", + "values_explicit_colon": "Werte für explizite Stufen:", + "values_explicit_room": "Werte für explizite Stufen in diesem Raum", + "values_explicit_this_room_colon": "Werte für explizite Stufen in diesem Raum:", + "verification_explorer": "Verifizierungsübersicht", + "view_servers_in_room": "Zeige Server im Raum", + "view_source_decrypted_event_source": "Entschlüsselte Rohdaten", + "view_source_decrypted_event_source_unavailable": "Entschlüsselte Quelle nicht verfügbar", + "widget_screenshots": "Bildschirmfotos für unterstützte Widgets" + }, + "dialog_close_label": "Dialog schließen", + "emoji": { + "categories": "Kategorien", + "category_activities": "Aktivitäten", + "category_animals_nature": "Tiere und Natur", + "category_flags": "Flaggen", + "category_food_drink": "Essen und Trinken", + "category_frequently_used": "Oft verwendet", + "category_objects": "Objekte", + "category_smileys_people": "Smileys und Leute", + "category_symbols": "Symbole", + "category_travel_places": "Reisen und Orte", + "quick_reactions": "Schnelle Reaktionen" + }, + "emoji_picker": { + "cancel_search_label": "Suche abbrechen" + }, + "empty_room": "Leerer Raum", + "empty_room_was_name": "Leerer Raum (war %(oldName)s)", + "encryption": { + "access_secret_storage_dialog": { + "enter_phrase_or_key_prompt": "Um fortzufahren gib die Sicherheitsphrase ein oder .", + "key_validation_text": { + "invalid_security_key": "Ungültiger Sicherheitsschlüssel", + "recovery_key_is_correct": "Sieht gut aus!", + "wrong_file_type": "Falscher Dateityp", + "wrong_security_key": "Falscher Sicherheitsschlüssel" + }, + "reset_title": "Alles zurücksetzen", + "reset_warning_1": "Verwende es nur, wenn du kein Gerät, mit dem du dich verifizieren kannst, bei dir hast.", + "reset_warning_2": "Wenn du alles zurücksetzt, beginnst du ohne verifizierte Sitzungen und Benutzende von Neuem und siehst eventuell keine alten Nachrichten.", + "restoring": "Schlüssel aus der Sicherung wiederherstellen", + "security_key_title": "Sicherheitsschlüssel", + "security_phrase_incorrect_error": "Zugriff auf sicheren Speicher nicht möglich. Bitte überprüfe, ob du die richtige Sicherheitsphrase eingegeben hast.", + "security_phrase_title": "Sicherheitsphrase", + "separator": "%(securityKey)s oder %(recoveryFile)s", + "use_security_key_prompt": "Benutze deinen Sicherheitsschlüssel um fortzufahren." + }, + "bootstrap_title": "Schlüssel werden eingerichtet", + "cancel_entering_passphrase_description": "Bist du sicher, dass du die Eingabe der Passphrase abbrechen möchtest?", + "cancel_entering_passphrase_title": "Eingabe der Passphrase abbrechen?", + "confirm_encryption_setup_body": "Klick die Schaltfläche unten um die Einstellungen der Verschlüsselung zu bestätigen.", + "confirm_encryption_setup_title": "Bestätige die Einrichtung der Verschlüsselung", + "cross_signing_not_ready": "Quersignierung wurde nicht eingerichtet.", + "cross_signing_ready": "Quersignaturen sind bereits in Anwendung.", + "cross_signing_ready_no_backup": "Quersignatur ist bereit, die Schlüssel sind aber nicht gesichert.", + "cross_signing_room_normal": "Dieser Raum ist Ende-zu-Ende verschlüsselt", + "cross_signing_room_verified": "Alle in diesem Raum sind verifiziert", + "cross_signing_room_warning": "Jemand verwendet eine unbekannte Sitzung", + "cross_signing_unsupported": "Dein Heim-Server unterstützt keine Quersignierung.", + "cross_signing_untrusted": "Dein Konto hat eine Quersignaturidentität im sicheren Speicher, der von dieser Sitzung jedoch noch nicht vertraut wird.", + "cross_signing_user_normal": "Du hast diesen Nutzer nicht verifiziert.", + "cross_signing_user_verified": "Du hast diesen Nutzer verifiziert. Der Nutzer hat alle seine Sitzungen verifiziert.", + "cross_signing_user_warning": "Dieser Benutzer hat nicht alle seine Sitzungen verifiziert.", + "destroy_cross_signing_dialog": { + "primary_button_text": "Cross-Signing-Schlüssel löschen", + "title": "Cross-Signing-Schlüssel zerstören?", + "warning": "Das Löschen von Quersignierungsschlüsseln ist dauerhaft. Alle, mit dem du dich verifiziert hast, werden Sicherheitswarnungen angezeigt bekommen. Du möchtest dies mit ziemlicher Sicherheit nicht tun, es sei denn, du hast jedes Gerät verloren, von dem aus du quersignieren kannst." + }, + "event_shield_reason_authenticity_not_guaranteed": "Die Echtheit dieser verschlüsselten Nachricht kann auf diesem Gerät nicht garantiert werden.", + "event_shield_reason_mismatched_sender_key": "Von einer nicht verifizierten Sitzung verschlüsselt", + "event_shield_reason_unknown_device": "Durch ein unbekanntes oder gelöschtes Gerät verschlüsselt.", + "event_shield_reason_unsigned_device": "Durch ein von Besitzer nicht verifiziertes Gerät verschlüsselt.", + "event_shield_reason_unverified_identity": "Durch einen nicht verifizierten Benutzer verschlüsselt.", + "export_unsupported": "Dein Browser unterstützt die benötigten Verschlüsselungserweiterungen nicht", + "import_invalid_keyfile": "Keine gültige %(brand)s-Schlüsseldatei", + "import_invalid_passphrase": "Authentifizierung fehlgeschlagen: Falsches Passwort?", + "incompatible_database_description": "Du hast für diese Sitzung zuvor eine neuere Version von %(brand)s verwendet. Um diese Version mit Ende-zu-Ende-Verschlüsselung wieder zu benutzen, musst du dich erst ab- und dann wieder anmelden.", + "incompatible_database_disable": "Mit deaktivierter Verschlüsselung fortfahren", + "incompatible_database_sign_out_description": "Um zu vermeiden, dass dein Verlauf verloren geht, musst du deine Raumschlüssel exportieren, bevor du dich abmeldest. Dazu musst du auf die neuere Version von %(brand)s zurückgehen", + "incompatible_database_title": "Inkompatible Datenbanken", + "messages_not_secure": { + "cause_1": "Dein Heim-Server", + "cause_2": "Der Heim-Server der Person, die du verifizierst", + "cause_3": "Die Internetverbindung von dir oder dem anderen Nutzer", + "cause_4": "Die Sitzung von dir oder dem anderen Nutzer", + "heading": "Eines der folgenden könnte kompromittiert sein:", + "title": "Deine Nachrichten sind nicht sicher" + }, + "new_recovery_method_detected": { + "description_1": "Eine neue Sicherheitsphrase und ein neuer Schlüssel für sichere Nachrichten wurden erkannt.", + "description_2": "Diese Sitzung verschlüsselt den Verlauf mit der neuen Wiederherstellungsmethode.", + "title": "Neue Wiederherstellungsmethode", + "warning": "Wenn du die neue Wiederherstellungsmethode nicht festgelegt hast, versucht ein Angreifer möglicherweise, auf dein Konto zuzugreifen. Ändere dein Kontopasswort und lege sofort eine neue Wiederherstellungsmethode in den Einstellungen fest." + }, + "not_supported": "", + "recovery_method_removed": { + "description_1": "In dieser Sitzung wurde festgestellt, dass deine Sicherheitsphrase und dein Schlüssel für sichere Nachrichten entfernt wurden.", + "description_2": "Wenn du dies versehentlich getan hast, kannst du in dieser Sitzung \"sichere Nachrichten\" einrichten, die den Nachrichtenverlauf dieser Sitzung mit einer neuen Wiederherstellungsmethode erneut verschlüsseln.", + "title": "Wiederherstellungsmethode gelöscht", + "warning": "Wenn du die Wiederherstellungsmethode nicht gelöscht hast, kann ein Angreifer versuchen, Zugang zu deinem Konto zu bekommen. Ändere dein Passwort und richte sofort eine neue Wiederherstellungsmethode in den Einstellungen ein." + }, + "reset_all_button": "Hast du alle Wiederherstellungsmethoden vergessen? Setze sie hier zurück", + "set_up_toast_description": "Schütze dich vor dem Verlust verschlüsselter Nachrichten und Daten", + "set_up_toast_title": "Schlüsselsicherung einrichten", + "setup_secure_backup": { + "explainer": "Um deine Schlüssel nicht zu verlieren, musst du sie vor der Abmeldung sichern.", + "title": "Einrichten" + }, + "udd": { + "interactive_verification_button": "Interaktiv per Emoji verifizieren", + "manual_verification_button": "Manuell per Text verifizieren", + "other_ask_verify_text": "Bitte diesen Nutzer, seine Sitzung zu verifizieren, oder verifiziere diese unten manuell.", + "other_new_session_text": "%(name)s (%(userId)s) hat sich zu einer neuen Sitzung angemeldet, ohne sie zu verifizieren:", + "own_ask_verify_text": "Verifiziere deine andere Sitzung mit einer der folgenden Optionen.", + "own_new_session_text": "Du hast dich in einer neuen Sitzung angemeldet ohne sie zu verifizieren:", + "title": "Nicht vertraut" + }, + "unable_to_setup_keys_error": "Schlüssel können nicht eingerichtet werden", + "unsupported": "Diese Anwendung unterstützt keine Ende-zu-Ende-Verschlüsselung.", + "upgrade_toast_title": "Verschlüsselungsaktualisierung verfügbar", + "verification": { + "accepting": "Annehmen…", + "after_new_login": { + "device_verified": "Gerät verifiziert", + "reset_confirmation": "Willst du deine Verifizierungsschlüssel wirklich zurücksetzen?", + "skip_verification": "Verifizierung vorläufig überspringen", + "unable_to_verify": "Gerät konnte nicht verifiziert werden", + "verify_this_device": "Dieses Gerät verifizieren" + }, + "cancelled": "Du hast die Verifikation abgebrochen.", + "cancelled_self": "Verifizierung am anderen Gerät abgebrochen.", + "cancelled_user": "%(displayName)s hat die Verifikationsanfrage abgelehnt.", + "cancelling": "Abbrechen…", + "complete_action": "Verstanden", + "complete_description": "Du hast diesen Benutzer erfolgreich verifiziert.", + "complete_title": "Verifiziert!", + "error_starting_description": "Der Unterhaltungsbeginn mit dem anderen Benutzer war uns nicht möglich.", + "error_starting_title": "Verifizierungbeginn fehlgeschlagen", + "explainer": "Sichere Nachrichten mit diesem Benutzer sind Ende-zu-Ende-verschlüsselt und können nicht von Dritten gelesen werden.", + "in_person": "Um sicher zu gehen, mache dies persönlich oder verwende eine vertrauenswürdige Art der Kommunikation.", + "incoming_sas_device_dialog_text_1": "Verifiziere dieses Gerät, um es als vertrauenswürdig zu markieren. Das Vertrauen in dieses Gerät gibt dir und anderen Benutzern zusätzliche Sicherheit, wenn ihr Ende-zu-Ende verschlüsselte Nachrichten verwendet.", + "incoming_sas_device_dialog_text_2": "Verifiziere dieses Gerät und es wird es als vertrauenswürdig markiert. Benutzer, die sich bei dir verifiziert haben, werden diesem Gerät auch vertrauen.", + "incoming_sas_dialog_title": "Eingehende Verifikationsanfrage", + "incoming_sas_dialog_waiting": "Warte auf Bestätigung des Gesprächspartners …", + "incoming_sas_user_dialog_text_1": "Überprüfe diesen Benutzer, um ihn als vertrauenswürdig zu kennzeichnen. Benutzern zu vertrauen gibt dir zusätzliche Sicherheit bei der Verwendung von Ende-zu-Ende-verschlüsselten Nachrichten.", + "incoming_sas_user_dialog_text_2": "Wenn du diesen Benutzer verifizierst werden seine Sitzungen für dich und deine Sitzungen für ihn als vertrauenswürdig markiert.", + "manual_device_verification_device_id_label": "Sitzungs-ID", + "manual_device_verification_device_key_label": "Sitzungsschlüssel", + "manual_device_verification_device_name_label": "Sitzungsname", + "manual_device_verification_footer": "Wenn sie nicht übereinstimmen kann die Sicherheit eurer Kommunikation kompromittiert sein.", + "manual_device_verification_self_text": "Bestätige indem du das folgende mit deinen Benutzereinstellungen in deiner anderen Sitzung vergleichst:", + "manual_device_verification_user_text": "Bestätige die Sitzung dieses Benutzers indem du das folgende mit seinen Benutzereinstellungen vergleichst:", + "no_key_or_device": "Es sieht so aus, als hättest du keinen Sicherheitsschlüssel oder andere Geräte, mit denen du dich verifizieren könntest. Dieses Gerät wird keine alten verschlüsselten Nachrichten lesen können. Um deine Identität auf diesem Gerät zu verifizieren musst du deine Verifizierungsschlüssel zurücksetzen.", + "no_support_qr_emoji": "Das Gerät unterstützt weder Verifizieren mittels QR-Code noch Emoji-Verifizierung. %(brand)s benötigt dies jedoch. Bitte verwende eine andere Anwendung.", + "other_party_cancelled": "Die Gegenstelle hat die Überprüfung abgebrochen.", + "prompt_encrypted": "Verifiziere alle Benutzer in einem Raum um die vollständige Sicherheit zu gewährleisten.", + "prompt_self": "Starte die Verifikation aus der Benachrichtigung erneut.", + "prompt_unencrypted": "Verifiziere alle Benutzer in verschlüsselten Räumen, um die Sicherheit zu garantieren.", + "prompt_user": "Starte die Verifikation aus dem Benutzerprofil erneut.", + "qr_or_sas": "%(qrCode)s oder %(emojiCompare)s", + "qr_or_sas_header": "Verifiziere dieses Gerät mit einer der folgenden Möglichkeiten:", + "qr_prompt": "Lese diesen eindeutigen Code ein", + "qr_reciprocate_same_shield_device": "Fast geschafft! Zeigen beide Geräte das selbe Wappen an?", + "qr_reciprocate_same_shield_user": "Fast geschafft! Wird bei %(displayName)s das gleiche Schild angezeigt?", + "request_toast_accept": "Sitzung verifizieren", + "request_toast_decline_counter": "Ignorieren (%(counter)s)", + "request_toast_detail": "%(deviceId)s von %(ip)s", + "reset_proceed_prompt": "Mit Zurücksetzen fortfahren", + "sas_caption_self": "Verifiziere dieses Gerät, indem du überprüfst, dass die folgende Zahl auf dem Bildschirm erscheint.", + "sas_caption_user": "Verifiziere diesen Nutzer, indem du bestätigst, dass die folgende Nummer auf dessen Bildschirm erscheint.", + "sas_description": "Vergleiche eine einmalige Reihe von Emojis, sofern du an keinem Gerät eine Kamera hast", + "sas_emoji_caption_self": "Bestätige, dass die folgenden Emoji auf beiden Geräten in der gleichen Reihenfolge angezeigt werden:", + "sas_emoji_caption_user": "Verifiziere diesen Nutzer, indem du bestätigst, dass folgende Emojis auf dessen Bildschirm erscheinen.", + "sas_match": "Sie passen zueinander", + "sas_no_match": "Sie passen nicht zueinander", + "sas_prompt": "Vergleiche einzigartige Emojis", + "scan_qr": "Verifizierung durch Scannen eines QR-Codes", + "scan_qr_explainer": "Bitte %(displayName)s, deinen Code zu scannen:", + "self_verification_hint": "Akzeptiere die Verifizierungsanfrage am anderen Gerät, um fortzufahren.", + "start_button": "Verifizierung starten", + "successful_device": "Du hast %(deviceName)s (%(deviceId)s) erfolgreich verifiziert!", + "successful_own_device": "Du hast dein Gerät erfolgreich verifiziert!", + "successful_user": "Du hast %(displayName)s erfolgreich verifiziert!", + "timed_out": "Verifikationsanfrage abgelaufen.", + "unsupported_method": "Konnte keine unterstützte Verifikationsmethode finden.", + "unverified_session_toast_accept": "Ja, das war ich", + "unverified_session_toast_title": "Neue Anmeldung. Warst du das?", + "unverified_sessions_toast_description": "Überprüfe sie, um ein sicheres Konto gewährleisten zu können", + "unverified_sessions_toast_reject": "Später", + "unverified_sessions_toast_title": "Du hast nicht verifizierte Sitzungen", + "verification_description": "Verifiziere diese Anmeldung, um auf verschlüsselte Nachrichten zuzugreifen und dich anderen gegenüber zu identifizieren.", + "verification_dialog_title_device": "Anderes Gerät verifizieren", + "verification_dialog_title_user": "Verifizierungsanfrage", + "verification_skip_warning": "Ohne dich zu verifizieren wirst du keinen Zugriff auf alle deine Nachrichten haben und könntest für andere als nicht vertrauenswürdig erscheinen.", + "verification_success_with_backup": "Dein neues Gerät ist jetzt verifiziert und hat Zugriff auf deine verschlüsselten Nachrichten und anderen wird es als vertrauenswürdig angezeigt werden.", + "verification_success_without_backup": "Dein neues Gerät ist jetzt verifiziert. Anderen wird es als vertrauenswürdig angezeigt werden.", + "verify_emoji": "Mit Emojis verifizieren", + "verify_emoji_prompt": "Durch den Vergleich einzigartiger Emojis verifizieren.", + "verify_emoji_prompt_qr": "Wenn du obigen Code nicht erfassen kannst, verifiziere stattdessen durch den Vergleich von Emojis.", + "verify_later": "Später verifizieren", + "verify_reset_warning_1": "Das Zurücksetzen deiner Sicherheitsschlüssel kann nicht rückgängig gemacht werden. Nach dem Zurücksetzen wirst du alte Nachrichten nicht mehr lesen können und Freunde, die dich vorher verifiziert haben werden Sicherheitswarnungen bekommen, bis du dich erneut mit ihnen verifizierst.", + "verify_reset_warning_2": "Bitte fahre nur fort, wenn du sicher bist, dass du alle anderen Geräte und deinen Sicherheitsschlüssel verloren hast.", + "verify_using_device": "Mit anderem Gerät verifizieren", + "verify_using_key": "Mit Sicherheitsschlüssel verifizieren", + "verify_using_key_or_phrase": "Mit Sicherheitsschlüssel oder Sicherheitsphrase verifizieren", + "waiting_for_user_accept": "Warte auf die Annahme von %(displayName)s …", + "waiting_other_device": "Warten darauf, dass du das auf deinem anderen Gerät bestätigst…", + "waiting_other_device_details": "Warten, dass du auf deinem anderen Gerät %(deviceName)s (%(deviceId)s) verifizierst…", + "waiting_other_user": "Warte darauf, dass %(displayName)s bestätigt…" + }, + "verification_requested_toast_title": "Verifizierung angefragt", + "verify_toast_description": "Andere Benutzer vertrauen ihr vielleicht nicht", + "verify_toast_title": "Sitzung verifizieren" + }, + "error_app_open_in_another_tab": "Wechsle zu einem anderen Tab um mit %(brand)s zu verbinden. Dieser Tab kann jetzt geschlossen werden.", + "error_app_open_in_another_tab_title": "%(brand)s läuft bereits in einem anderen Tab.", + "error_app_opened_in_another_window": "%(brand)s läuft bereit in einem anderen Fenster. Klicke \"%(label)s um %(brand)s hier zu nutzen und beende das andere Fenster.", + "error_database_closed_title": "%(brand)s funktioniert nicht mehr", + "error_dialog": { + "copy_room_link_failed": { + "description": "Der Link zum Raum konnte nicht kopiert werden.", + "title": "Raumlink konnte nicht kopiert werden" + }, + "error_loading_user_profile": "Konnte Nutzerprofil nicht laden", + "forget_room_failed": "Das Entfernen des Raums ist fehlgeschlagen %(errCode)s", + "search_failed": { + "server_unavailable": "Der Server ist entweder nicht verfügbar, überlastet oder die Suche wurde wegen Zeitüberschreitung abgebrochen :(", + "title": "Suche ist fehlgeschlagen" + } + }, + "error_user_not_logged_in": "Benutzer ist nicht angemeldet", + "event_preview": { + "io.element.voice_broadcast_info": { + "user": "%(senderName)s beendete eine Sprachübertragung", + "you": "Du hast eine Sprachübertragung beendet" + }, + "m.call.answer": { + "dm": "Laufendes Gespräch", + "user": "%(senderName)s ist dem Anruf beigetreten", + "you": "Du bist dem Anruf beigetreten" + }, + "m.call.hangup": { + "user": "%(senderName)s hat den Anruf beendet", + "you": "Du hast den Anruf beendet" + }, + "m.call.invite": { + "dm_receive": "%(senderName)s ruft an", + "dm_send": "Warte auf eine Antwort", + "user": "%(senderName)s hat einen Anruf gestartet", + "you": "Du hast einen Anruf gestartet" + }, + "m.emote": "* %(senderName)s %(emote)s", + "m.reaction": { + "user": "%(sender)s reagierte mit %(reaction)s auf %(message)s", + "you": "Du reagiertest mit %(reaction)s auf %(message)s" + }, + "m.sticker": "%(senderName)s: %(stickerName)s", + "m.text": "%(senderName)s: %(message)s" + }, + "export_chat": { + "cancelled": "Exportieren abgebrochen", + "cancelled_detail": "Exportieren abgebrochen", + "confirm_stop": "Willst du das Exportieren deiner Daten wirklich abbrechen? Falls ja, musst du komplett von neu beginnen.", + "creating_html": "Erstelle HTML …", + "creating_output": "Erstelle Ausgabe …", + "creator_summary": "%(creatorName)s hat diesen Raum erstellt.", + "current_timeline": "Aktueller Verlauf", + "enter_number_between_min_max": "Gib eine Zahl zwischen %(min)s und %(max)s ein", + "error_fetching_file": "Fehler beim Laden der Datei", + "export_info": "Das ist der Anfang des Exports von . Von um %(exportDate)s exportiert.", + "export_successful": "Die Daten wurden erfolgreich exportiert!", + "exported_n_events_in_time": { + "one": "%(count)s Ereignis in %(seconds)s Sekunden exportiert", + "other": "%(count)s Ereignisse in %(seconds)s Sekunden exportiert" + }, + "exporting_your_data": "Deine Daten werden exportiert", + "fetched_n_events": { + "one": "Bisher wurde %(count)s Ereignis abgerufen", + "other": "Bisher wurden %(count)s Ereignisse abgerufen" + }, + "fetched_n_events_in_time": { + "one": "%(count)s Ereignis in %(seconds)s s abgerufen", + "other": "%(count)s Ereignisse in %(seconds)s s abgerufen" + }, + "fetched_n_events_with_total": { + "one": "%(count)s von %(total)s Ereignis abgerufen", + "other": "%(count)s von %(total)s Ereignisse abgerufen" + }, + "fetching_events": "Rufe Ereignisse ab …", + "file_attached": "Datei angehängt", + "format": "Format", + "from_the_beginning": "Von Anfang an", + "generating_zip": "ZIP-Archiv wird generiert", + "html": "HTML", + "html_title": "Exportierte Daten", + "include_attachments": "Anhänge einbeziehen", + "json": "JSON", + "media_omitted": "Medien ausgelassen", + "media_omitted_file_size": "Medien ausgelassen - Datei zu groß", + "messages": "Nachrichten", + "next_page": "Nächste Nachrichtengruppe", + "num_messages": "Anzahl der Nachrichten", + "num_messages_min_max": "Die Anzahl der Nachrichten mus zwischen %(min)s und %(max)s liegen", + "number_of_messages": "Nachrichtenanzahl angeben", + "previous_page": "Vorherige Nachrichtengruppe", + "processing": "Verarbeite …", + "processing_event_n": "Verarbeite Event %(number)s von %(total)s", + "select_option": "Wähle die gewünschten Optionen für den Export des Verlaufs", + "size_limit": "Größenlimit", + "size_limit_min_max": "Die Größe muss eine Zahl zwischen %(min)s MB und %(max)s MB sein", + "size_limit_postfix": "MB", + "starting_export": "Beginne Export …", + "successful": "Exportieren erfolgreich", + "successful_detail": "Export erfolgreich. Du kannst ihn in deinem Download-Verzeichnis finden.", + "text": "Klartext", + "title": "Unterhaltung exportieren", + "topic": "Themen: %(topic)s", + "unload_confirm": "Willst du den Export wirklich abbrechen?" + }, + "failed_load_async_component": "Konnte nicht geladen werden! Überprüfe die Netzwerkverbindung und versuche es erneut.", + "feedback": { + "can_contact_label": "Kontaktiert mich, falls ihr weitere Fragen zu meiner Rückmeldung habt", + "comment_label": "Kommentar", + "existing_issue_link": "Bitte wirf einen Blick auf existierende Programmfehler auf Github. Keinen passenden gefunden? Erstelle einen neuen.", + "may_contact_label": "Ich möchte kontaktiert werden, wenn ihr mehr wissen oder mich neue Funktionen testen lassen wollt", + "platform_username": "Deine Systeminformationen und dein Benutzername werden mitgeschickt, damit wir deine Rückmeldung bestmöglich nachvollziehen können.", + "pro_type": "PRO TIPP: Wenn du einen Programmfehler meldest, füge bitte Debug-Protokolle hinzu, um uns beim Finden des Problems zu helfen.", + "send_feedback_action": "Rückmeldung senden", + "sent": "Rückmeldung gesendet" + }, + "file_panel": { + "empty_description": "Hänge Dateien aus der Unterhaltung an oder ziehe sie einfach an eine beliebige Stelle im Raum.", + "empty_heading": "Keine Dateien in diesem Raum", + "guest_note": "Du musst dich registrieren, um diese Funktionalität nutzen zu können", + "peek_note": "Du musst den Raum betreten, um die verknüpften Dateien sehen zu können" + }, + "forward": { + "filter_placeholder": "Räume oder Leute suchen", + "message_preview_heading": "Nachrichtenvorschau", + "no_perms_title": "Du bist dazu nicht berechtigt", + "open_room": "Raum öffnen", + "send_label": "Senden", + "sending": "Senden", + "sent": "Gesendet" + }, + "identity_server": { + "change": "Identitäts-Server wechseln", + "change_prompt": "Vom Identitäts-Server trennen, und stattdessen mit verbinden?", + "change_server_prompt": "Wenn du nicht verwenden willst, um Kontakte zu finden und von anderen gefunden zu werden, trage unten einen anderen Identitäts-Server ein.", + "checking": "Überprüfe Server", + "description_connected": "Zurzeit verwendest du , um Kontakte zu finden und von anderen gefunden zu werden. Du kannst deinen Identitäts-Server nachfolgend wechseln.", + "description_disconnected": "Zurzeit benutzt du keinen Identitäts-Server. Trage unten einen Server ein, um Kontakte zu finden und von anderen gefunden zu werden.", + "description_optional": "Die Verwendung eines Identitäts-Servers ist optional. Solltest du dich dazu entschließen, keinen Identitäts-Server zu verwenden, kannst du von anderen Nutzern nicht gefunden werden und andere nicht per E-Mail-Adresse oder Telefonnummer einladen.", + "disconnect": "Verbindung zum Identitäts-Server trennen", + "disconnect_anyway": "Verbindung trotzdem trennen", + "disconnect_offline_warning": "Du solltest deine persönlichen Daten vom Identitäts-Server entfernen, bevor du die Verbindung trennst. Leider ist der Identitäts-Server derzeit außer Betrieb oder kann nicht erreicht werden.", + "disconnect_personal_data_warning_1": "Du teilst deine persönlichen Daten noch immer auf dem Identitäts-Server .", + "disconnect_personal_data_warning_2": "Wir empfehlen, dass du deine E-Mail-Adressen und Telefonnummern vom Identitäts-Server löschst, bevor du die Verbindung trennst.", + "disconnect_server": "Verbindung zum Identitäts-Server trennen?", + "disconnect_warning": "Wenn du die Verbindung zu deinem Identitäts-Server trennst, kannst du nicht mehr von anderen Benutzern gefunden werden und andere nicht mehr per E-Mail oder Telefonnummer einladen.", + "do_not_use": "Keinen Identitäts-Server verwenden", + "error_connection": "Verbindung zum Identitäts-Server konnte nicht hergestellt werden", + "error_invalid": "Ungültiger Identitäts-Server (Fehlercode %(code)s)", + "error_invalid_or_terms": "Nutzungsbedingungen nicht akzeptiert oder der Identitäts-Server ist ungültig.", + "no_terms": "Der von dir gewählte Identitäts-Server gibt keine Nutzungsbedingungen an.", + "suggestions": "Du solltest:", + "suggestions_1": "Überprüfe deinen Browser auf Erweiterungen, die den Identitäts-Server blockieren könnten (z. B. Privacy Badger)", + "suggestions_2": "Kontaktiere die Administration des Identitäts-Servers ", + "suggestions_3": "warte und versuche es später erneut", + "url": "Identitäts-Server (%(server)s)", + "url_field_label": "Gib einen neuen Identitäts-Server ein", + "url_not_https": "Identitäts-Server-URL muss mit HTTPS anfangen" + }, + "in_space": "Im Space %(spaceName)s.", + "in_space1_and_space2": "In den Spaces %(space1Name)s und %(space2Name)s.", + "in_space_and_n_other_spaces": { + "one": "Im Space %(spaceName)s und %(count)s weiteren Spaces.", + "other": "In %(spaceName)s und %(count)s weiteren Spaces." + }, + "info_tooltip_title": "Information", + "integration_manager": { + "connecting": "Verbinde mit Integrationsassistent …", + "error_connecting": "Der Integrationsassistent ist außer Betrieb oder kann deinen Heim-Server nicht erreichen.", + "error_connecting_heading": "Verbindung zum Integrationsassistenten fehlgeschlagen", + "explainer": "Integrationsassistenten erhalten Konfigurationsdaten und können Widgets modifizieren, Raumeinladungen verschicken und in deinem Namen Berechtigungslevel setzen.", + "manage_title": "Integrationen verwalten", + "use_im": "Verwende einen Integrations-Server, um Bots, Widgets und Sticker-Pakete zu verwalten.", + "use_im_default": "Nutze einen Integrations-Server (%(serverName)s), um Bots, Widgets und Sticker-Pakete zu verwalten." + }, + "integrations": { + "disabled_dialog_description": "Aktiviere „%(manageIntegrations)s“ in den Einstellungen, um dies zu tun.", + "disabled_dialog_title": "Integrationen sind deaktiviert", + "impossible_dialog_description": "%(brand)s erlaubt dir nicht, eine Integrationsverwaltung zu verwenden, um dies zu tun. Bitte kontaktiere einen Administrator.", + "impossible_dialog_title": "Integrationen sind nicht erlaubt" + }, + "invite": { + "ask_anyway_description": "Konnte keine Profile für die folgenden Matrix-IDs finden – möchtest du dennoch eine Direktnachricht beginnen?", + "ask_anyway_label": "Dennoch DM beginnen", + "ask_anyway_never_warn_label": "Dennoch DM beginnen und mich nicht mehr warnen", + "email_caption": "Via Email einladen", + "email_limit_one": "E-Mail-Einladungen können nur nacheinander gesendet werden", + "email_use_default_is": "Verwende einen Identitäts-Server, um per E-Mail einzuladen. Nutze den Standardidentitäts-Server (%(defaultIdentityServerName)s) oder konfiguriere einen in den Einstellungen.", + "email_use_is": "Verwende einen Identitäts-Server, um per E-Mail-Adresse einladen zu können. Lege einen in den Einstellungen fest.", + "error_already_invited_room": "Die Person wurde bereits eingeladen", + "error_already_invited_space": "Die Person wurde bereits eingeladen", + "error_already_joined_room": "Die Person ist bereits im Raum", + "error_already_joined_space": "Die Person ist bereits im Space", + "error_bad_state": "Verbannte Nutzer können nicht eingeladen werden.", + "error_dm": "Wir konnten deine Direktnachricht nicht erstellen.", + "error_find_room": "Beim Einladen der Nutzer lief etwas schief.", + "error_find_user_description": "Folgende Nutzer konnten nicht eingeladen werden, da sie nicht existieren oder ungültig sind: %(csvNames)s", + "error_find_user_title": "Folgenden Nutzer konnten nicht gefunden werden", + "error_invite": "Wir konnten diese Personen nicht einladen. Bitte überprüfe sie und versuche es erneut.", + "error_permissions_room": "Du hast keine Berechtigung, Personen in diesen Raum einzuladen.", + "error_permissions_space": "Du hast keine Berechtigung, Personen in diesen Space einzuladen.", + "error_profile_undisclosed": "Diese Person existiert möglicherweise nicht", + "error_transfer_multiple_target": "Ein Anruf kann nur auf einen einzelnen Nutzer übertragen werden.", + "error_unfederated_room": "Dieser Raum förderiert nicht. Du kannst keine Personen von externen Servern einladen.", + "error_unfederated_space": "Dieser Space förderiert nicht. Du kannst keine Personen von externen Servern einladen.", + "error_unknown": "Unbekannter Server-Fehler", + "error_user_not_found": "Diese Person existiert nicht", + "error_version_unsupported_room": "Die Raumversion wird vom Heim-Server des Benutzers nicht unterstützt.", + "error_version_unsupported_space": "Die Space-Version wird vom Heim-Server des Benutzers nicht unterstützt.", + "failed_generic": "Aktion fehlgeschlagen", + "failed_title": "Einladen fehlgeschlagen", + "invalid_address": "Nicht erkannte Adresse", + "name_email_mxid_share_room": "Lade jemanden mittels Name, E-Mail-Adresse oder Benutzername (wie ) ein, oder teile diesen Raum.", + "name_email_mxid_share_space": "Lade Leute mittels Anzeigename, E-Mail-Adresse oder Benutzername (z. B. ) ein oder teile diesen Space.", + "name_mxid_share_room": "Lade jemanden mittels Name oder Benutzername (z. B. ) ein oder teile diesen Raum.", + "name_mxid_share_space": "Lade Leute mittels Anzeigename oder Benutzername (z. B. ) ein oder teile diesen Space.", + "recents_section": "Letzte Unterhaltungen", + "room_failed_partial": "Die anderen wurden gesendet, aber die folgenden Leute konnten leider nicht in eingeladen werden", + "room_failed_partial_title": "Einige Einladungen konnten nicht versendet werden", + "room_failed_title": "Fehler beim Einladen von Benutzern in %(roomName)s", + "send_link_prompt": "Oder versende einen Einladungslink", + "start_conversation_name_email_mxid_prompt": "Beginne eine Konversation mittels Name, E-Mail-Adresse oder Matrix-ID (wie ).", + "start_conversation_name_mxid_prompt": "Starte ein Gespräch unter Verwendung des Namen oder Benutzernamens des Gegenübers (z. B. ).", + "suggestions_disclaimer": "Einige Vorschläge könnten aus Gründen der Privatsphäre ausgeblendet sein.", + "suggestions_disclaimer_prompt": "Wenn du die gesuchte Person nicht findest, sende ihr den Einladungslink zu.", + "suggestions_section": "Zuletzt kontaktiert", + "to_room": "In %(roomName)s einladen", + "to_space": "In %(spaceName)s einladen", + "transfer_dial_pad_tab": "Wähltastatur", + "transfer_user_directory_tab": "Benutzerverzeichnis", + "unable_find_profiles_description_default": "Profile für die nachfolgenden Matrix-IDs wurden nicht gefunden – willst du sie dennoch einladen?", + "unable_find_profiles_invite_label_default": "Dennoch einladen", + "unable_find_profiles_invite_never_warn_label_default": "Trotzdem einladen und mich nicht mehr warnen", + "unable_find_profiles_title": "Eventuell existieren folgende Benutzer nicht", + "unban_first_title": "Benutzer kann nicht eingeladen werden, solange er nicht entbannt ist" + }, + "inviting_user1_and_user2": "Lade %(user1)s und %(user2)s ein", + "inviting_user_and_n_others": { + "other": "Lade %(user)s und %(count)s weitere Person ein", + "one": "Lade %(user)s und eine weitere Person ein" + }, + "items_and_n_others": { + "other": " und %(count)s andere", + "one": " und ein weiteres Raummitglied" + }, + "keyboard": { + "activate_button": "Ausgewählten Button aktivieren", + "alt": "Alt", + "autocomplete_cancel": "Autovervollständigung deaktivieren", + "autocomplete_force": "Vervollständigung erzwingen", + "autocomplete_navigate_next": "Nächster Vorschlag der Autovervollständigung", + "autocomplete_navigate_prev": "Vorheriger Vorschlag der Autovervollständigung", + "backspace": "Löschtaste", + "cancel_reply": "Nachricht beantworten abbrechen", + "category_autocomplete": "Autovervollständigung", + "category_calls": "Anrufe", + "category_navigation": "Navigation", + "category_room_list": "Raumliste", + "close_dialog_menu": "Dialog oder Kontextmenü schließen", + "composer_jump_end": "Zum Ende des Eingabefelds springen", + "composer_jump_start": "Zum Anfang des Eingabefelds springen", + "composer_navigate_next_history": "Nächster Eintrag im Eingabeverlauf", + "composer_navigate_prev_history": "Vorheriger Eintrag im Eingabeverlauf", + "composer_new_line": "Neue Zeile", + "composer_redo": "Änderung wiederherstellen", + "composer_toggle_bold": "Fett", + "composer_toggle_code_block": "Quelltextblock umschalten", + "composer_toggle_italics": "Kursiv", + "composer_toggle_link": "Linkfomatierung umschalten", + "composer_toggle_quote": "Zitat umschalten", + "composer_undo": "Änderung revidieren", + "control": "Strg", + "dismiss_read_marker_and_jump_bottom": "Entferne Lesemarker und springe nach unten", + "end": "Ende", + "enter": "Enter", + "escape": "Esc", + "go_home_view": "Zur Startseite gehen", + "home": "Startseite", + "jump_first_message": "Zur ersten Nachricht springen", + "jump_last_message": "Zur letzten Nachricht springen", + "jump_room_search": "Zur Raumsuche springen", + "jump_to_read_marker": "Zur ältesten ungelesenen Nachricht springen", + "keyboard_shortcuts_tab": "Den Einstellungen-Tab öffnen", + "navigate_next_history": "Nächster kürzlich besuchter Raum oder Space", + "navigate_next_message_edit": "Nächste Nachricht bearbeiten", + "navigate_prev_history": "Vorheriger kürzlich besuchter Raum oder Space", + "navigate_prev_message_edit": "Vorherige Nachricht bearbeiten", + "next_room": "Nächste Unterhaltung", + "next_unread_room": "Nächste ungelesene Nachricht", + "number": "[Nummer]", + "open_user_settings": "Benutzereinstellungen öffnen", + "page_down": "Bild runter", + "page_up": "Bild hoch", + "prev_room": "Vorherige Unterhaltung", + "prev_unread_room": "Vorherige ungelesene Nachricht", + "room_list_collapse_section": "Raumliste einklappen", + "room_list_expand_section": "Raumliste ausklappen", + "room_list_navigate_down": "Nächster Eintrag der Raumliste", + "room_list_navigate_up": "Vorheriger Eintrag der Raumliste", + "room_list_select_room": "Wähle eine Raum aus der Raumliste", + "scroll_down_timeline": "Im Verlauf nach unten springen", + "scroll_up_timeline": "Im Verlauf nach oben springen", + "search": "Suchen (muss in den Einstellungen aktiviert sein)", + "send_sticker": "Sticker senden", + "shift": "Umschalt", + "space": "Leertaste", + "switch_to_space": "Mit Nummer zu Leerzeichen springen", + "toggle_hidden_events": "Sichtbarkeit versteckter Ereignisse umschalten", + "toggle_microphone_mute": "Mikrofon an-/ausschalten", + "toggle_right_panel": "Rechtes Panel ein-/ausblenden", + "toggle_space_panel": "Space-Panel ein/aus", + "toggle_top_left_menu": "Menü oben links ein-/ausblenden", + "toggle_webcam_mute": "Kamera umschalten", + "upload_file": "Eine Datei hochladen" + }, + "labs": { + "allow_screen_share_only_mode": "Nur-Bildschirm-Teilen-Modus erlauben", + "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", + "automatic_debug_logs_key_backup": "Sende automatisch Protokolle zur Fehlerkorrektur, wenn die Schlüsselsicherung nicht funktioniert", + "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.", + "beta_feedback_title": "Rückmeldung zur %(featureName)s-Beta", + "beta_section": "Zukünftige Funktionen", + "bridge_state": "Informationen zu Brücken im Raum", + "bridge_state_channel": "Kanal: ", + "bridge_state_creator": "Diese Brücke wurde von bereitgestellt.", + "bridge_state_manager": "Diese Brücke wird von verwaltet.", + "bridge_state_workspace": "Arbeitsraum: ", + "click_for_info": "Klicke für mehr Infos", + "currently_experimental": "Aktuell experimentell.", + "custom_themes": "Selbstdefinierte Designs", + "dehydration": "Offline verschlüsselte Kommunikation mit Hilfe von dehydrierten Geräten", + "dynamic_room_predecessors": "Veränderbare Raumvorgänger", + "dynamic_room_predecessors_description": "MSC3946 aktivieren (zur Verknüpfung von Raumarchiven nach der Raumerstellung)", + "element_call_video_rooms": "Element Call-Videoräume", + "experimental_description": "Experimentierfreudig? Probiere unsere neuesten, sich in Entwicklung befindlichen Ideen aus. Diese Funktionen sind nicht final; Sie könnten instabil sein, sich verändern oder sogar ganz entfernt werden. Erfahre mehr.", + "experimental_section": "Frühe Vorschauen", + "feature_disable_call_per_sender_encryption": "Verschlüsselung per-sender für Element Anruf abschalten", + "feature_wysiwyg_composer_description": "Verwende Textverarbeitung (Rich-Text) statt Markdown im Eingabefeld.", + "group_calls": "Neue Gruppenanruf-Erfahrung", + "group_developer": "Entwickler", + "group_encryption": "Verschlüsselung", + "group_experimental": "Experimentell", + "group_messaging": "Kommunikation", + "group_moderation": "Moderation", + "group_profile": "Profil", + "group_rooms": "Räume", + "group_spaces": "Räume", + "group_themes": "Themen", + "group_threads": "Themen", + "group_voip": "Anrufe", + "group_widgets": "Widgets", + "hidebold": "Benachrichtigungspunkt ausblenden (nur Zähler zeigen)", + "html_topic": "Zeige die HTML-Darstellung von Raumthemen", + "join_beta": "Beta beitreten", + "join_beta_reload": "Die Teilnahme an der Beta wird %(brand)s neustarten.", + "jump_to_date": "Zu Datum springen ( /jumptodate bzw. Zu Datum springen im Header)", + "jump_to_date_msc_support": "Dafür muss dein Server MSC3030 unterstützen", + "latex_maths": "LaTeX-Matheformeln", + "leave_beta": "Beta verlassen", + "leave_beta_reload": "Das Verlassen der Beta wird %(brand)s neustarten.", + "location_share_live": "Echtzeit-Standortfreigabe", + "location_share_live_description": "Vorläufige Implementierung: Standorte verbleiben im Raumverlauf.", + "mjolnir": "Neue Methoden, Personen zu blockieren", + "msc3531_hide_messages_pending_moderation": "Erlaube Moderatoren, noch nicht moderierte Nachrichten auszublenden.", + "notification_settings": "Neue Benachrichtigungseinstellungen", + "notification_settings_beta_caption": "Einen einfacheren Weg um die Einstellungen für Benachrichtigungen zu ändern vorstellen. Passe Deine %(brand)s so an wie Du willst.", + "notification_settings_beta_title": "Benachrichtigungseinstellungen", + "notifications": "Benachrichtigungen in der Kopfleiste des Raums anschalten", + "oidc_native_flow": "Native OIDC Authentifizierung", + "oidc_native_flow_description": "⚠ Warnung: Experimentell. Nutze OIDC native Authentifizierung wenn dies vom Server unterstützt wird.", + "render_reaction_images": "Benutzerdefinierte Bilder in Reaktionen anzeigen", + "render_reaction_images_description": "Werden manchmal auch als „benutzerdefinierte Emojis“ bezeichnet.", + "report_to_moderators": "An Raummoderation melden", + "report_to_moderators_description": "In Räumen, die Moderation unterstützen, lässt dich die Schaltfläche „Melden“ missbräuchliche Verwendung an die Raummoderation melden.", + "sliding_sync": "Sliding-Sync-Modus", + "sliding_sync_description": "In aktiver Entwicklung, kann nicht deaktiviert werden.", + "sliding_sync_disabled_notice": "Zum Deaktivieren, melde dich ab und erneut an", + "sliding_sync_server_no_support": "Dein Server unterstützt dies nicht nativ", + "under_active_development": "In aktiver Entwicklung.", + "unrealiable_e2e": "Nicht zuverlässig in verschlüsselten Räumen", + "video_rooms": "Videoräume", + "video_rooms_a_new_way_to_chat": "Eine neue Möglichkeit in %(brand)s über Audio und Video zu kommunizieren.", + "video_rooms_always_on_voip_channels": "Videoräume sind dauerhaft aktive VoIP-Kanäle, die in einem Raum in %(brand)s eingebettet sind.", + "video_rooms_beta": "Videoräume sind eine Betafunktion", + "video_rooms_faq1_answer": "Verwende die „+“-Schaltfläche des Räumebereichs der linken Seitenleiste.", + "video_rooms_faq1_question": "Wie kann ich einen Videoraum erstellen?", + "video_rooms_faq2_answer": "Ja, der Verlauf wird neben dem Videoanruf angezeigt.", + "video_rooms_faq2_question": "Kann ich während Videoanrufen auch Textnachrichten verschicken?", + "video_rooms_feedbackSubheading": "Danke, dass Du die Beta ausprobierst. Bitte gehe soweit wie Du kannst ins Detail damit wird genau überprüfen können.", + "voice_broadcast": "Sprachübertragung", + "voice_broadcast_force_small_chunks": "Die Chunk-Länge der Sprachübertragungen auf 15 Sekunden erzwingen", + "wysiwyg_composer": "Textverarbeitungs-Editor" + }, + "labs_mjolnir": { + "advanced_warning": "⚠ Diese Einstellungen sind für fortgeschrittene Nutzer gedacht.", + "ban_reason": "Ignoriert/Blockiert", + "error_adding_ignore": "Fehler beim Blockieren eines Nutzers/Servers", + "error_adding_list_description": "Bitte überprüfe die Raum-ID oder -adresse und versuche es erneut.", + "error_adding_list_title": "Fehler beim Abonnieren der Liste", + "error_removing_ignore": "Fehler beim Entfernen eines blockierten Benutzers/Servers", + "error_removing_list_description": "Bitte versuche es erneut oder sieh für weitere Hinweise in deine Konsole.", + "error_removing_list_title": "Fehler beim Deabonnieren der Liste", + "explainer_1": "Füge hier die Benutzer und Server hinzu, die du blockieren willst. Verwende Sternchen, um %(brand)s alle Zeichen abgleichen zu lassen. So würde @bot:* alle Benutzer mit dem Namen „bot“, auf jedem beliebigen Server, blockieren.", + "explainer_2": "Das Ignorieren von Personen erfolgt über Sperrlisten. Wenn eine Sperrliste abonniert wird, werden die von dieser Liste blockierten Benutzer und Server ausgeblendet.", + "lists": "Du abonnierst momentan:", + "lists_description_1": "Eine Verbotsliste abonnieren bedeutet ihr beizutreten!", + "lists_description_2": "Wenn dies nicht das ist, was du willst, verwende ein anderes Werkzeug, um Benutzer zu blockieren.", + "lists_heading": "Abonnierte Listen", + "lists_new_label": "Raum-ID oder Adresse der Verbotsliste", + "no_lists": "Du hast keine Listen abonniert", + "personal_description": "Deine persönliche Sperrliste enthält alle Benutzer/Server, von denen du keine Nachrichten erhalten möchtest. Nachdem du den ersten Benutzer/Server ignoriert hast, wird ein neuer Raum namens „%(myBanList)s“ erstellt – bleibe in diesem Raum, um die Sperrliste zu erhalten.", + "personal_empty": "Du hast niemanden blockiert.", + "personal_heading": "Persönliche Sperrliste", + "personal_new_label": "Zu blockierende Server- oder Benutzer-ID", + "personal_new_placeholder": "z. B. @bot:* oder example.org", + "personal_section": "Du ignorierst momentan:", + "room_name": "Meine Bannliste", + "room_topic": "Dies ist die Liste von Benutzer und Servern, die du blockiert hast – verlasse diesen Raum nicht!", + "rules_empty": "Nichts", + "rules_server": "Server-Regeln", + "rules_title": "Verbotslistenregeln - %(roomName)s", + "rules_user": "Nutzerregeln", + "something_went_wrong": "Etwas ist schief gelaufen. Bitte versuche es erneut oder sieh für weitere Hinweise in deiner Konsole nach.", + "title": "Blockierte Benutzer", + "view_rules": "Regeln öffnen" + }, + "language_dropdown_label": "Sprachauswahl", + "leave_room_dialog": { + "last_person_warning": "Du bist die einzige Person im Raum. Sobald du ihn verlässt, wird niemand mehr hineingelangen, auch du nicht.", + "leave_room_question": "Bist du sicher, dass du den Raum „%(roomName)s“ verlassen möchtest?", + "leave_space_question": "Bist du sicher, dass du den Space „%(spaceName)s“ verlassen möchtest?", + "room_rejoin_warning": "Dieser Raum ist nicht öffentlich. Du wirst ihn nicht ohne erneute Einladung betreten können.", + "space_rejoin_warning": "Du wirst diesen privaten Space nur mit einer Einladung wieder betreten können." + }, + "left_panel": { + "open_dial_pad": "Wähltastatur öffnen" + }, + "lightbox": { + "rotate_left": "Nach links drehen", + "rotate_right": "Nach rechts drehen", + "title": "Bildbetrachter" + }, + "location_sharing": { + "MapStyleUrlNotConfigured": "Dein Heim-Server unterstützt das Anzeigen von Karten nicht.", + "MapStyleUrlNotReachable": "Dein Home-Server unterstützt das Anzeigen von Karten nicht oder der Kartenanbieter ist nicht erreichbar.", + "WebGLNotEnabled": "Für die Darstellung von Karten ist WebGL erforderlich, bitte aktiviere es in den Einstellungen deines Browsers.", + "click_drop_pin": "Klicke, um den Standort zu setzen", + "click_move_pin": "Klicke, um den Standort zu bewegen", + "close_sidebar": "Seitenleiste schließen", + "error_fetch_location": "Standort konnte nicht abgerufen werden", + "error_no_perms_description": "Du benötigst die entsprechenden Berechtigungen, um deinen Echtzeit-Standort in diesem Raum freizugeben.", + "error_no_perms_title": "Dir fehlt die Berechtigung, Echtzeit-Standorte freigeben zu dürfen", + "error_send_description": "%(brand)s konnte deinen Standort nicht senden. Bitte versuche es später erneut.", + "error_send_title": "Wir konnten deinen Standort nicht senden", + "error_sharing_live_location": "Ein Fehler ist während des Teilens deines Echtzeit-Standorts aufgetreten", + "error_stopping_live_location": "Ein Fehler ist während des Beendens deines Echtzeit-Standorts aufgetreten", + "expand_map": "Karte vergrößern", + "failed_generic": "Standort konnte nicht abgerufen werden. Bitte versuche es später erneut.", + "failed_load_map": "Karte kann nicht geladen werden", + "failed_permission": "%(brand)s wurde der Zugriff auf deinen Standort verweigert. Bitte erlaube den Zugriff in den Einstellungen deines Browsers.", + "failed_timeout": "Zeitüberschreitung beim Abrufen deines Standortes. Bitte versuche es später erneut.", + "failed_unknown": "Beim Abruf deines Standortes ist ein unbekannter Fehler aufgetreten. Bitte versuche es später erneut.", + "find_my_location": "Zeige meinen Standort", + "live_description": "Echtzeit-Standort von %(displayName)s", + "live_enable_description": "Bitte beachte: Dies ist eine experimentelle Funktion, die eine temporäre Implementierung nutzt. Das bedeutet, dass du deinen Standortverlauf nicht löschen kannst und erfahrene Nutzer ihn sehen können, selbst wenn du deinen Echtzeit-Standort nicht mehr mit diesem Raum teilst.", + "live_enable_heading": "Echtzeit-Standortfreigabe", + "live_location_active": "Du teilst deinen Echtzeit-Standort", + "live_location_enabled": "Echtzeit-Standort aktiviert", + "live_location_ended": "Echtzeit-Standort beendet", + "live_location_error": "Echtzeit-Standort-Fehler", + "live_locations_empty": "Keine Echtzeit-Standorte", + "live_share_button": "Geteilt für %(duration)s", + "live_toggle_label": "Aktiviere Echtzeit-Standortfreigabe", + "live_until": "Echtzeit bis %(expiryTime)s", + "live_update_time": "%(humanizedUpdateTime)s aktualisiert", + "loading_live_location": "Lade Live-Standort …", + "location_not_available": "Standort nicht verfügbar", + "map_feedback": "Rückmeldung zur Karte", + "mapbox_logo": "Mapbox Logo", + "reset_bearing": "Ausrichtung nach Norden zurücksetzen", + "share_button": "Standort teilen", + "share_type_live": "Mein Echtzeit-Standort", + "share_type_own": "Mein Standort", + "share_type_pin": "Standort setzen", + "share_type_prompt": "Wie willst du deinen Standort teilen?", + "toggle_attribution": "Info ein-/ausblenden" + }, + "member_list": { + "filter_placeholder": "Raummitglieder filtern", + "invite_button_no_perms_tooltip": "Du bist nicht berechtigt, Benutzer einzuladen", + "invited_list_heading": "Eingeladen", + "power_label": "%(userName)s (Berechtigungslevel %(powerLevelNumber)s)" + }, + "member_list_back_action_label": "Raummitglieder", + "message_edit_dialog_title": "Nachrichtenänderungen", + "mobile_guide": { + "toast_accept": "App verwenden", + "toast_description": "%(brand)s ist in mobilen Browsern experimentell. Für eine bessere Erfahrung nutze unsere App.", + "toast_title": "Nutze die App für eine bessere Erfahrung" + }, + "name_and_id": "%(name)s (%(userId)s)", + "no_more_results": "Keine weiteren Ergebnisse", + "notif_panel": { + "empty_description": "Du hast keine sichtbaren Benachrichtigungen.", + "empty_heading": "Du bist auf dem neuesten Stand" + }, + "notifications": { + "all_messages": "Alle Nachrichten", + "all_messages_description": "Bei jeder Nachricht benachrichtigen", + "class_global": "Global", + "class_other": "Sonstiges", + "default": "Standard", + "email_pusher_app_display_name": "E-Mail-Benachrichtigungen", + "enable_prompt_toast_description": "Aktiviere Desktopbenachrichtigungen", + "enable_prompt_toast_title": "Benachrichtigungen", + "enable_prompt_toast_title_from_message_send": "Verpasse keine Antwort", + "error_change_title": "Benachrichtigungseinstellungen ändern", + "keyword": "Schlüsselwort", + "keyword_new": "Neues Schlüsselwort", + "level_activity": "Aktivität", + "level_muted": "Stumm", + "level_none": "Nichts", + "level_unsent": "Nicht gesendet", + "mark_all_read": "Alle als gelesen markieren", + "mentions_and_keywords": "@Erwähnungen und Schlüsselwörter", + "mentions_and_keywords_description": "Nur bei Erwähnungen und Schlüsselwörtern benachrichtigen, die du in den Einstellungen konfigurieren kannst", + "mentions_keywords": "Erwähnungen und Schlüsselwörter", + "message_didnt_send": "Nachricht nicht gesendet. Klicke für Details.", + "mute_description": "Du wirst keine Benachrichtigungen erhalten" + }, + "notifier": { + "io.element.voice_broadcast_chunk": "%(senderName)s begann eine Sprachübertragung", + "m.key.verification.request": "%(name)s fordert eine Verifizierung an" + }, + "onboarding": { + "apple_trademarks": "App Store® und das Apple Logo® sind eingetragene Markenzeichen von Apple Inc.", + "community_messaging_action": "Finde deine Leute", + "community_messaging_description": "Verfüge und behalte die Kontrolle über Gespräche deiner Gemeinschaft.\nSkalierbar für Millionen von Nutzenden, mit mächtigen Moderationswerkzeugen und Interoperabilität.", + "community_messaging_title": "In gemeinschaftlicher Hand", + "complete_these": "Vervollständige sie für die beste %(brand)s-Erfahrung", + "create_room": "Gruppenraum erstellen", + "download_app": "%(brand)s herunterladen", + "download_app_action": "Apps herunterladen", + "download_app_description": "Nimm %(brand)s mit, um nichts mehr zu verpassen", + "download_app_store": "Im App Store herunterladen", + "download_brand": "%(brand)s herunterladen", + "download_brand_desktop": "%(brand)s Desktop herunterladen", + "download_f_droid": "In F-Droid erhältlich", + "download_google_play": "In Google Play erhältlich", + "enable_notifications": "Benachrichtigungen einschalten", + "enable_notifications_action": "Benachrichtigungen aktivieren", + "enable_notifications_description": "Verpasse keine Antworten oder wichtigen Nachrichten", + "explore_rooms": "Öffentliche Räume erkunden", + "find_community_members": "Finde deine Community-Mitglieder und lade sie ein", + "find_coworkers": "Finde deine Kollegen und lade sie ein", + "find_friends": "Finde deine Freunde und lade sie ein", + "find_friends_action": "Freunde finden", + "find_friends_description": "Dafür bist du hier, also dann mal los", + "find_people": "Finde Personen", + "free_e2ee_messaging_unlimited_voip": "Dank freien, Ende-zu-Ende verschlüsselter Kommunikation und unbegrenzten Sprach- und Videoanrufen ist %(brand)s eine großartige Möglichkeit, um in Kontakt zu bleiben.", + "get_stuff_done": "Finde dein Team und werdet produktiv", + "google_trademarks": "Google Play und das Google Play Logo sind eingetragene Markenzeichen von Google LLC.", + "has_avatar_label": "Großartig, das wird anderen helfen, dich zu erkennen", + "intro_byline": "Besitze deine Unterhaltungen.", + "intro_welcome": "Willkommen bei %(appName)s", + "no_avatar_label": "Füge ein Bild hinzu, damit andere dich erkennen können.", + "only_n_steps_to_go": { + "one": "Nur noch %(count)s Schritt", + "other": "Nur noch %(count)s Schritte" + }, + "personal_messaging_action": "Beginne eine Unterhaltung", + "personal_messaging_title": "Sichere Kommunikation für Freunde und Familie", + "qr_or_app_links": "%(qrCode)s oder %(appLinks)s", + "send_dm": "Direkt­­nachricht senden", + "set_up_profile": "Richte dein Profil ein", + "set_up_profile_action": "Dein Profil", + "set_up_profile_description": "Lass andere wissen, dass du es wirklich bist", + "use_case_community_messaging": "Online Community-Mitglieder", + "use_case_heading1": "Los gehts", + "use_case_heading2": "Mit wem wirst du am meisten schreiben?", + "use_case_heading3": "Wir helfen dir, dich zu vernetzen.", + "use_case_personal_messaging": "Freunde und Familie", + "use_case_work_messaging": "Kollegen und Gruppen", + "welcome_detail": "Nun, lassen Sie uns Ihnen den Einstieg erleichtern", + "welcome_to_brand": "Willkommen bei %(brand)s", + "welcome_user": "Willkommen %(name)s", + "work_messaging_action": "Finde deine Kollegen", + "work_messaging_title": "Sichere Kommunikation für die Arbeit", + "you_did_it": "Geschafft!", + "you_made_it": "Geschafft!" + }, + "pill": { + "permalink_other_room": "Nachricht in %(room)s", + "permalink_this_room": "Nachricht von %(user)s" + }, + "poll": { + "create_poll_action": "Umfrage erstellen", + "create_poll_title": "Umfrage erstellen", + "disclosed_notes": "Abstimmende können die Ergebnisse nach Stimmabgabe sehen", + "edit_poll_title": "Umfrage bearbeiten", + "end_description": "Willst du die Umfrage wirklich beenden? Die finalen Ergebnisse werden angezeigt und können nicht mehr geändert werden.", + "end_message": "Umfrage beendet. Beliebteste Antwort: %(topAnswer)s", + "end_message_no_votes": "Umfrage beendet. Es wurden keine Stimmen abgegeben.", + "end_title": "Umfrage beenden", + "error_ending_description": "Die Umfrage konnte nicht beendet werden. Bitte versuche es erneut.", + "error_ending_title": "Beenden der Umfrage fehlgeschlagen", + "error_voting_description": "Wir konnten deine Stimme leider nicht erfassen. Versuche es bitte erneut.", + "error_voting_title": "Stimme nicht erfasst", + "failed_send_poll_description": "Leider wurde die Umfrage nicht gesendet.", + "failed_send_poll_title": "Absenden der Umfrage fehlgeschlagen", + "notes": "Die Ergebnisse werden erst sichtbar, sobald du die Umfrage beendest", + "options_add_button": "Antwortmöglichkeit hinzufügen", + "options_heading": "Antwortmöglichkeiten erstellen", + "options_label": "Antwortmöglichkeit %(number)s", + "options_placeholder": "Antwortmöglichkeit verfassen", + "topic_heading": "Was ist die Frage oder das Thema deiner Umfrage?", + "topic_label": "Frage oder Thema", + "topic_placeholder": "Schreibe etwas …", + "total_decryption_errors": "Evtl. werden infolge von Entschlüsselungsfehlern einige Stimmen nicht gezählt", + "total_n_votes": { + "one": "%(count)s Stimme abgegeben. Stimme ab, um die Ergebnisse zu sehen", + "other": "%(count)s Stimmen abgegeben. Stimme ab, um die Ergebnisse zu sehen" + }, + "total_n_votes_voted": { + "one": "%(count)s Stimme abgegeben", + "other": "%(count)s Stimmen abgegeben" + }, + "total_no_votes": "Es wurden noch keine Stimmen abgegeben", + "total_not_ended": "Ergebnisse werden nach Abschluss der Umfrage sichtbar", + "type_closed": "Versteckte Umfrage", + "type_heading": "Abstimmungsart", + "type_open": "Offene Umfrage", + "unable_edit_description": "Du kannst Umfragen nicht bearbeiten, sobald Stimmen abgegeben wurden.", + "unable_edit_title": "Umfrage kann nicht bearbeitet werden" + }, + "power_level": { + "admin": "Administrator", + "custom": "Benutzerdefiniert (%(level)s)", + "custom_level": "Selbstdefiniertes Berechtigungslevel", + "default": "Standard", + "label": "Berechtigungsstufe", + "mod": "Moderator", + "moderator": "Moderator", + "restricted": "Eingeschränkt" + }, + "presence": { + "away": "Abwesend", + "busy": "Beschäftigt", + "idle": "Abwesend", + "idle_for": "Abwesend seit %(duration)s", + "offline": "Offline", + "offline_for": "Offline seit %(duration)s", + "online": "Online", + "online_for": "Online seit %(duration)s", + "unknown": "Unbekannt", + "unknown_for": "Unbekannt seit %(duration)s", + "unreachable": "Server des Benutzers nicht erreichbar" + }, + "quick_settings": { + "all_settings": "Alle Einstellungen", + "metaspace_section": "An Seitenleiste heften", + "sidebar_settings": "Weitere Optionen", + "title": "Schnelleinstellungen" + }, + "quit_warning": { + "call_in_progress": "Du scheinst in einem Gespräch zu sein, bist du sicher, dass du aufhören willst?", + "file_upload_in_progress": "Du scheinst Dateien hochzuladen. Bist du sicher schließen zu wollen?" + }, + "redact": { + "confirm_button": "Entfernen bestätigen", + "confirm_description": "Möchtest du dieses Ereignis wirklich entfernen (löschen)?", + "confirm_description_state": "Beachte, dass das Entfernen von Raumänderungen diese rückgängig machen könnte.", + "error": "Diese Nachricht kann nicht gelöscht werden. (%(code)s)", + "ongoing": "Löschen…", + "reason_label": "Grund (optional)" + }, + "reject_invitation_dialog": { + "confirmation": "Bist du sicher, dass du die Einladung ablehnen willst?", + "failed": "Einladung konnte nicht abgelehnt werden", + "title": "Einladung ablehnen" + }, + "report_content": { + "description": "Wenn du diese Nachricht meldest, wird die eindeutige Ereignis-ID an die Administration deines Heim-Servers übermittelt. Wenn die Nachrichten in diesem Raum verschlüsselt sind, wird deine Heim-Server-Administration nicht in der Lage sein, Nachrichten zu lesen oder Medien einzusehen.", + "disagree": "Ablehnen", + "error_create_room_moderation_bot": "Erstellen des Raums mit Moderations-Bot nicht möglich", + "hide_messages_from_user": "Prüfe, ob du alle aktuellen und zukünftigen Nachrichten dieses Nutzers verstecken willst.", + "ignore_user": "Nutzer ignorieren", + "illegal_content": "Illegale Inhalte", + "missing_reason": "Bitte gib an, weshalb du einen Fehler meldest.", + "nature": "Bitte wähle eine Kategorie aus und beschreibe, was die Nachricht missbräuchlich macht.", + "nature_disagreement": "Die Person verbreitet Falschinformation.\nDies wird an die Raummoderation gemeldet.", + "nature_illegal": "Diese Person verhält sich illegal, beispielsweise durch das Veröffentlichen persönlicher Daten oder Gewaltdrohungen.\nDies wird an die Raummoderation gemeldet, welche dies an die Behörden weitergeben kann.", + "nature_nonstandard_admin": "Dieser Raum wurde wegen illegalem oder toxischem Inhalt oder fehlender Moderation an den Administrator von %(homeserver)s gemeldet. ", + "nature_nonstandard_admin_encrypted": "Dieser Raum wurde wegen illegalem oder toxischem Inhalt oder fehlender Moderation an den Administrator von %(homeserver)s gemeldet. Der Administrator wird KEINE verschlüsselten Inhalte in diesem Raum lesen können.", + "nature_other": "Anderer Grund. Bitte beschreibe das Problem.\nDies wird an die Raummoderation gemeldet.", + "nature_spam": "Dieser Benutzer spammt den Raum mit Werbung, Links zu Werbung oder Propaganda.\nDies wird an die Raummoderation gemeldet.", + "nature_toxic": "Dieser Benutzer zeigt toxisches Verhalten, etwa durch Beleidigen anderer Personen, Teilen von Erwachseneninhalten in familienfreundlichen Räumen oder anderweitiges Missachten von Raumregeln.\nDies wird an die Raummoderatoren gemeldet.", + "other_label": "Sonstiges", + "report_content_to_homeserver": "Inhalte an die Administration deines Heim-Servers melden", + "report_entire_room": "Den ganzen Raum melden", + "spam_or_propaganda": "Spam oder Propaganda", + "toxic_behaviour": "Toxisches Verhalten" + }, + "restore_key_backup_dialog": { + "count_of_decryption_failures": "Konnte %(failedCount)s Sitzungen nicht entschlüsseln!", + "count_of_successfully_restored_keys": "%(sessionCount)s Schlüssel erfolgreich wiederhergestellt", + "enter_key_description": "Greife auf deinen verschlüsselten Nachrichtenverlauf zu und richte die sichere Kommunikation ein, indem du deinen Sicherheitsschlüssel eingibst.", + "enter_key_title": "Sicherheitsschlüssel eingeben", + "enter_phrase_description": "Greife auf deinen verschlüsselten Nachrichtenverlauf zu und richte die sichere Kommunikation ein, indem du deine Sicherheitsphrase eingibst.", + "enter_phrase_title": "Sicherheitsphrase eingeben", + "incorrect_security_phrase_dialog": "Das Backup konnte mit dieser Sicherheitsphrase nicht entschlüsselt werden: Bitte überprüfe, ob du die richtige eingegeben hast.", + "incorrect_security_phrase_title": "Falsche Sicherheitsphrase", + "key_backup_warning": "Warnung: Du solltest die Schlüsselsicherung nur auf einem vertrauenswürdigen Gerät einrichten.", + "key_fetch_in_progress": "Lade Schlüssel vom Server …", + "key_forgotten_text": "Wenn du deinen Sicherheitsschlüssel vergessen hast, kannst du ", + "key_is_invalid": "Kein gültiger Sicherheisschlüssel", + "key_is_valid": "Dies sieht aus wie ein gültiger Sicherheitsschlüssel!", + "keys_restored_title": "Schlüssel wiederhergestellt", + "load_error_content": "Konnte Sicherungsstatus nicht laden", + "load_keys_progress": "%(completed)s von %(total)s Schlüsseln wiederhergestellt", + "no_backup_error": "Keine Schlüsselsicherung gefunden!", + "phrase_forgotten_text": "Wenn du deine Sicherheitsphrase vergessen hast, kannst du deinen Sicherheitsschlüssel nutzen oder neue Wiederherstellungsoptionen einrichten", + "recovery_key_mismatch_description": "Das Backup konnte mit diesem Sicherheitsschlüssel nicht entschlüsselt werden: Bitte überprüfe, ob du den richtigen Sicherheitsschlüssel eingegeben hast.", + "recovery_key_mismatch_title": "Nicht übereinstimmende Sicherheitsschlüssel", + "restore_failed_error": "Konnte Schlüsselsicherung nicht wiederherstellen" + }, + "right_panel": { + "add_integrations": "Widgets, Brücken und Bots hinzufügen", + "files_button": "Dateien", + "pinned_messages": { + "limits": { + "other": "Du kannst nur %(count)s Widgets anheften" + } + }, + "pinned_messages_button": "Angeheftet", + "poll": { + "active_heading": "Aktive Umfragen", + "empty_active": "In diesem Raum gibt es keine aktiven Umfragen", + "empty_active_load_more": "Es sind keine aktiven Umfragen verfügbar. Lade weitere Umfragen, um die der vorherigen Monate zu sehen", + "empty_active_load_more_n_days": { + "one": "Für den vergangenen Tag sind keine aktiven Umfragen verfügbar. Lade weitere Umfragen, um die der vorherigen Monate zu sehen", + "other": "Für die vergangenen %(count)s Tage sind keine aktiven Umfragen verfügbar. Lade weitere Umfragen, um die der vorherigen Monate zu sehen" + }, + "empty_past": "In diesem Raum gibt es keine abgeschlossenen Umfragen", + "empty_past_load_more": "Es sind keine vergangenen Umfragen verfügbar. Lade weitere Umfragen, um die der vorherigen Monate zu sehen", + "empty_past_load_more_n_days": { + "one": "Für den vergangenen Tag sind keine beendeten Umfragen verfügbar. Lade weitere Umfragen, um die der vorherigen Monate zu sehen", + "other": "Für die vergangenen %(count)s Tage sind keine beendeten Umfragen verfügbar. Lade weitere Umfragen, um die der vorherigen Monate zu sehen" + }, + "final_result": { + "one": "Es wurde %(count)s Stimme abgegeben", + "other": "Es wurden %(count)s Stimmen abgegeben" + }, + "load_more": "Weitere Umfragen laden", + "loading": "Lade Umfragen", + "past_heading": "Vergangene Umfragen", + "view_in_timeline": "Umfrage im Verlauf anzeigen", + "view_poll": "Umfrage ansehen" + }, + "polls_button": "Umfrageverlauf", + "room_summary_card": { + "title": "Raum-Info" + }, + "thread_list": { + "context_menu_label": "Thread-Optionen" + }, + "video_room_chat": { + "title": "Unterhaltung" + } + }, + "room": { + "3pid_invite_email_not_found_account": "Diese Einladung wurde an die E-Mail-Adresse %(email)s gesendet, die nicht zu deinem Konto gehört", + "3pid_invite_email_not_found_account_room": "Diese Einladung zu %(roomName)s wurde an die Adresse %(email)s gesendet, die nicht zu deinem Konto gehört", + "3pid_invite_error_description": "Beim Überprüfen der Einladung gab es den Fehler %(errcode)s. Du kannst diese Info der Person, die dich eingeladen hat weitergeben, eventuell kann dies ihr helfen.", + "3pid_invite_error_invite_action": "Dennoch versuchen beizutreten", + "3pid_invite_error_invite_subtitle": "Das Betreten ist nur mit gültiger Einladung möglich.", + "3pid_invite_error_public_subtitle": "Betreten ist dennoch möglich.", + "3pid_invite_error_title": "Bei der Einladung ist etwas schiefgelaufen.", + "3pid_invite_error_title_room": "Bei deiner Einladung zu %(roomName)s ist ein Fehler aufgetreten", + "3pid_invite_no_is_subtitle": "Verknüpfe einen Identitäts-Server in den Einstellungen, um die Einladungen direkt in %(brand)s zu erhalten.", + "banned_by": "Du wurdest von %(memberName)s gebannt", + "banned_from_room_by": "Du wurdest von %(memberName)s aus %(roomName)s verbannt", + "context_menu": { + "copy_link": "Raumlink kopieren", + "favourite": "Favorit", + "forget": "Raum vergessen", + "low_priority": "Niedrige Priorität", + "mark_read": "Als gelesen markieren", + "notifications_default": "Standardeinstellung verwenden", + "notifications_mute": "Raum stumm stellen", + "title": "Raumoptionen", + "unfavourite": "Favorisiert" + }, + "creating_room_text": "Wir erstellen einen Raum mit %(names)s", + "dm_invite_action": "Unterhaltung beginnen", + "dm_invite_subtitle": " möchte mit dir schreiben", + "dm_invite_title": "Möchtest du mit %(user)s schreiben?", + "drop_file_prompt": "Datei hier loslassen zum hochladen", + "edit_topic": "Thema bearbeiten", + "error_3pid_invite_email_lookup": "Kann Benutzer nicht via E-Mail-Adresse finden", + "error_cancel_knock_title": "Abbrechen gescheitert", + "error_join_403": "Du kannst diesen Raum nur auf Einladung betreten.", + "error_join_404_1": "Du hast versucht einen Raum via Raum-ID, aber ohne Angabe von Servern zu betreten. Raum-IDs sind interne Kennungen und können nicht ohne weitere Informationen zum Betreten von Räumen genutzt werden.", + "error_join_404_2": "Falls du eine Adresse kennst, versuche den Raum mit dieser zu betreten.", + "error_join_404_invite": "Die dich einladende Person hat den Raum verlassen oder ihr Heim-Server ist außer Betrieb.", + "error_join_404_invite_same_hs": "Die Person, die dich eingeladen hat, hat den Raum wieder verlassen.", + "error_join_connection": "Es gab einen Fehler beim Betreten.", + "error_join_incompatible_version_1": "Verzeihung, dein Heim-Server ist hierfür zu alt.", + "error_join_incompatible_version_2": "Bitte setze dich mit der Administration deines Heim-Servers in Verbindung.", + "error_join_title": "Betreten fehlgeschlagen", + "error_jump_to_date": "Der Server gab %(statusCode)s mit dem Fehlercode %(errorCode)s zurück", + "error_jump_to_date_connection": "Während des Versuchs, zum Datum zu springen, trat ein Netzwerkfehler auf. Möglicherweise ist dein Heim-Server nicht erreichbar oder es liegt ein temporäres Problem mit deiner Internetverbindung vor. Bitte versuche es erneut. Falls dieser Fehler weiterhin auftritt, kontaktiere bitte deine Heim-Server-Administration.", + "error_jump_to_date_details": "Fehlerdetails", + "error_jump_to_date_not_found": "Wir konnten kein Ereignis nach dem %(dateString)s finden. Versuche, einen früheren Zeitpunkt zu wählen.", + "error_jump_to_date_send_logs_prompt": "Bitte übermittel Debug-Protokolle, um uns beim Finden des Problems zu helfen.", + "error_jump_to_date_title": "Wir konnten kein Ereignis für diesen Zeitpunkt finden", + "face_pile_summary": { + "one": "%(count)s Person, die du kennst, ist schon beigetreten", + "other": "%(count)s Leute, die du kennst, sind bereits beigetreten" + }, + "face_pile_tooltip_label": { + "other": "Alle %(count)s Mitglieder anzeigen", + "one": "Mitglied anzeigen" + }, + "face_pile_tooltip_shortcut": "Inklusive %(commaSeparatedMembers)s", + "face_pile_tooltip_shortcut_joined": "Mit dir, %(commaSeparatedMembers)s", + "failed_reject_invite": "Ablehnen der Einladung ist fehlgeschlagen", + "forget_room": "Diesen Raum entfernen", + "forget_space": "Diesen Space vergessen", + "header": { + "n_people_asking_to_join": { + "one": "Möchte beitreten", + "other": "%(count)s Personen möchten beitreten" + }, + "room_is_public": "Dieser Raum ist öffentlich" + }, + "header_untrusted_label": "Nicht vertrauenswürdig", + "inaccessible": "Dieser Raum oder Space ist im Moment nicht zugänglich.", + "inaccessible_name": "Auf %(roomName)s kann momentan nicht zugegriffen werden.", + "inaccessible_subtitle_1": "Versuche es später erneut oder bitte einen Raum- oder Space-Admin um eine Zutrittserlaubnis.", + "inaccessible_subtitle_2": "%(errcode)s wurde während des Betretens zurückgegeben. Wenn du denkst, dass diese Meldung nicht korrekt ist, reiche bitte einen Fehlerbericht ein.", + "intro": { + "dm_caption": "Nur ihr beide nehmt an dieser Konversation teil, es sei denn, ihr ladet jemanden ein.", + "enable_encryption_prompt": "Aktiviere Verschlüsselung in den Einstellungen.", + "encrypted_3pid_dm_pending_join": "Sobald alle den Raum betreten hat, könnt ihr euch unterhalten", + "no_avatar_label": "Füge ein Bild hinzu, damit andere deinen Raum besser erkennen können.", + "no_topic": "Füge ein Thema hinzu, damit andere wissen, worum es hier geht.", + "private_unencrypted_warning": "Dieser Raum ist nicht verschlüsselt. Oft ist dies aufgrund eines nicht unterstützten Geräts oder Methode wie E-Mail-Einladungen der Fall.", + "room_invite": "Nur in diesen Raum einladen", + "send_message_start_dm": "Schreibe deine erste Nachricht, um zur Unterhaltung einzuladen", + "start_of_dm_history": "Dies ist der Beginn deiner Direktnachrichten mit .", + "start_of_room": "Dies ist der Beginn von .", + "topic": "Thema: %(topic)s ", + "topic_edit": "Thema: %(topic)s (ändern)", + "unencrypted_warning": "Ende-zu-Ende-Verschlüsselung ist deaktiviert", + "user_created": "%(displayName)s hat diesen Raum erstellt.", + "you_created": "Du hast diesen Raum erstellt." + }, + "invite_email_mismatch_suggestion": "Teile diese E-Mail-Adresse in den Einstellungen, um Einladungen direkt in %(brand)s zu erhalten.", + "invite_reject_ignore": "Ablehnen und Nutzer blockieren", + "invite_sent_to_email": "Einladung an %(email)s gesendet", + "invite_sent_to_email_room": "Diese Einladung zu %(roomName)s wurde an %(email)s gesendet", + "invite_subtitle": " hat dich eingeladen", + "invite_this_room": "In diesen Raum einladen", + "invite_title": "Möchtest du %(roomName)s betreten?", + "inviter_unknown": "Unbekannt", + "invites_you_text": "Du wirst von eingeladen", + "join_button_account": "Registrieren", + "join_failed_needs_invite": "Um %(roomName)s zu betrachten, benötigst du eine Einladung", + "join_the_discussion": "An Diskussion teilnehmen", + "join_title": "Betrete den Raum, um teilzunehmen", + "join_title_account": "An Unterhaltung mit einem Konto teilnehmen", + "joining": "Betrete …", + "joining_room": "Betrete Raum …", + "joining_space": "Betrete Space …", + "jump_read_marker": "Zur ersten ungelesenen Nachricht springen.", + "jump_to_bottom_button": "Zur neusten Nachricht springen", + "jump_to_date": "Zu Datum springen", + "jump_to_date_beginning": "Der Anfang des Raums", + "jump_to_date_prompt": "Wähle eine Datum aus", + "kick_reason": "Grund: %(reason)s", + "kicked_by": "Du wurdest von %(memberName)s entfernt", + "kicked_from_room_by": "%(memberName)s hat dich aus %(roomName)s entfernt", + "knock_cancel_action": "Anfrage abbrechen", + "knock_denied_subtitle": "Da deine Beitrittsanfrage abgelehnt wurde, bitten wir um Geduld, bis du eine Einladung vom Administrator oder Moderator erhältst.", + "knock_denied_title": "Deine Beitrittsanfrage wurde abgelehnt", + "knock_message_field_placeholder": "Nachricht (optional)", + "knock_prompt": "Beitrittsanfrage stellen?", + "knock_prompt_name": "Beitrittsanfrage für %(roomName)s stellen?", + "knock_send_action": "Beitrittsanfrage stellen", + "knock_sent": "Beitrittsanfrage gestellt", + "knock_sent_subtitle": "Deine Beitrittsanfrage wurde noch nicht bearbeitet.", + "knock_subtitle": "Du benötigst eine Beitrittsberechtigung, um den Raum betrachten oder an der Unterhaltung teilnehmen zu können. Du kannst nachstehend eine Beitrittsanfrage stellen.", + "leave_error_title": "Fehler beim Verlassen des Raums", + "leave_server_notices_description": "Du kannst diesen Raum nicht verlassen, da dieser Raum für wichtige Mitteilungen vom Heim-Server verwendet wird.", + "leave_server_notices_title": "Der Raum für Server-Mitteilungen kann nicht verlassen werden", + "leave_unexpected_error": "Unerwarteter Server-Fehler beim Versuch den Raum zu verlassen", + "link_email_to_receive_3pid_invite": "Verbinde diese E-Mail-Adresse in den Einstellungen mit deinem Konto, um die Einladungen direkt in %(brand)s zu erhalten.", + "loading_preview": "Lade Vorschau", + "no_peek_join_prompt": "Vorschau von %(roomName)s kann nicht angezeigt werden. Möchtest du den Raum betreten?", + "no_peek_no_name_join_prompt": "Es gibt keine Vorschau, dennoch betreten?", + "not_found_subtitle": "Bist du sicher am richtigen Ort?", + "not_found_title": "Dieser Raum oder Space existiert nicht.", + "not_found_title_name": "%(roomName)s existiert nicht.", + "peek_join_prompt": "Du erkundest den Raum %(roomName)s. Willst du ihn betreten?", + "read_topic": "Klicke, um das Thema zu lesen", + "rejecting": "Lehne Einladung ab …", + "rejoin_button": "Erneut betreten", + "search": { + "all_rooms_button": "Alle Räume durchsuchen", + "this_room_button": "Diesen Raum durchsuchen" + }, + "status_bar": { + "delete_all": "Alle löschen", + "exceeded_resource_limit": "Deine Nachricht wurde nicht gesendet, weil dieser Heim-Server ein Ressourcen-Limit erreicht hat. Bitte kontaktiere deine Systemadministration, um diesen Dienst weiterzunutzen.", + "homeserver_blocked": "Deine Nachricht wurde nicht gesendet, weil dieser Heim-Server von dessen Administration gesperrt wurde. Bitte kontaktiere deine Dienstadministration, um den Dienst weiterzunutzen.", + "monthly_user_limit_reached": "Deine Nachricht wurde nicht gesendet, weil dieser Heim-Server sein Limit an monatlich aktiven Benutzern erreicht hat. Bitte kontaktiere deine Systemadministration, um diesen Dienst weiterzunutzen.", + "requires_consent_agreement": "Du kannst keine Nachrichten senden bis du unsere Geschäftsbedingungen gelesen und akzeptiert hast.", + "retry_all": "Alle erneut senden", + "select_messages_to_retry": "Du kannst einzelne oder alle Nachrichten erneut senden oder löschen", + "server_connectivity_lost_description": "Nachrichten werden gespeichert und gesendet, wenn die Internetverbindung wiederhergestellt ist.", + "server_connectivity_lost_title": "Verbindung zum Server wurde unterbrochen.", + "some_messages_not_sent": "Einige Nachrichten konnten nicht gesendet werden" + }, + "unknown_status_code_for_timeline_jump": "unbekannter Statuscode", + "unread_notifications_predecessor": { + "one": "Du hast %(count)s ungelesene Benachrichtigungen in einer früheren Version dieses Raumes.", + "other": "Du hast %(count)s ungelesene Benachrichtigungen in einer früheren Version dieses Raums." + }, + "upgrade_error_description": "Überprüfe nochmal ob dein Server die ausgewählte Raumversion unterstützt und versuche es nochmal.", + "upgrade_error_title": "Fehler bei Raumaktualisierung", + "upgrade_warning_bar": "Die Aktualisierung dieses Raums deaktiviert die aktuelle Instanz des Raums und erstellt einen aktualisierten Raum mit demselben Namen.", + "upgrade_warning_bar_admins": "Nur Raumadministratoren werden diese Nachricht sehen", + "upgrade_warning_bar_unstable": "Dieser Raum läuft mit der Raumversion , welche dieser Heim-Server als instabil markiert hat.", + "upgrade_warning_bar_upgraded": "Dieser Raum wurde bereits aktualisiert.", + "upload": { + "uploading_multiple_file": { + "one": "%(filename)s und %(count)s weitere Dateien werden hochgeladen", + "other": "%(filename)s und %(count)s weitere Dateien werden hochgeladen" + }, + "uploading_single_file": "%(filename)s wird hochgeladen" + }, + "waiting_for_join_subtitle": "Sobald eingeladene Benutzer %(brand)s beigetreten sind, werdet ihr euch unterhalten können und der Raum wird Ende-zu-Ende-verschlüsselt sein", + "waiting_for_join_title": "Warte darauf, dass Benutzer %(brand)s beitreten" + }, + "room_list": { + "add_room_label": "Raum hinzufügen", + "add_space_label": "Space hinzufügen", + "breadcrumbs_empty": "Keine kürzlich besuchten Räume", + "breadcrumbs_label": "Kürzlich besuchte Räume", + "failed_add_tag": "Fehler beim Hinzufügen des \"%(tagName)s\"-Tags an dem Raum", + "failed_remove_tag": "Entfernen der Raum-Kennzeichnung %(tagName)s fehlgeschlagen", + "failed_set_dm_tag": "Fehler beim Setzen der Nachrichtenmarkierung", + "home_menu_label": "Startseiteneinstellungen", + "join_public_room_label": "Öffentlichen Raum betreten", + "joining_rooms_status": { + "one": "Betrete %(count)s Raum", + "other": "Betrete %(count)s Räume" + }, + "notification_options": "Benachrichtigungsoptionen", + "redacting_messages_status": { + "one": "Entferne Nachrichten in %(count)s Raum", + "other": "Entferne Nachrichten in %(count)s Räumen" + }, + "show_less": "Weniger anzeigen", + "show_n_more": { + "other": "%(count)s weitere anzeigen", + "one": "%(count)s weitere anzeigen" + }, + "show_previews": "Nachrichtenvorschau anzeigen", + "sort_by": "Sortieren nach", + "sort_by_activity": "Aktivität", + "sort_by_alphabet": "A–Z", + "sort_unread_first": "Räume mit ungelesenen Nachrichten zuerst zeigen", + "space_menu_label": "%(spaceName)s-Menü", + "sublist_options": "Optionen anzeigen", + "suggested_rooms_heading": "Vorgeschlagene Räume" + }, + "room_settings": { + "access": { + "description_space": "Konfiguriere, wer %(spaceName)s sehen und betreten kann.", + "title": "Zutritt" + }, + "advanced": { + "error_upgrade_description": "Die Raumaktualisierung konnte nicht fertiggestellt werden", + "error_upgrade_title": "Raumaktualisierung fehlgeschlagen", + "information_section_room": "Rauminformationen", + "information_section_space": "Information über den Space", + "room_id": "Interne Raum-ID", + "room_predecessor": "Alte Nachrichten in %(roomName)s anzeigen.", + "room_upgrade_button": "Raum auf die empfohlene Raumversion aktualisieren", + "room_upgrade_warning": "Achtung: Eine Raumaktualisierung wird Raummitglieder nicht automatisch in die neue Raumversion umziehen. In der alten Raumversion wird ein Link zum neuen Raum veröffentlicht ­− Raummitglieder müssen auf diesen klicken, um den neuen Raum zu betreten.", + "room_version": "Raumversion:", + "room_version_section": "Raumversion", + "space_predecessor": "Alte Version von %(spaceName)s anzeigen.", + "space_upgrade_button": "Space auf die empfohlene Version aktualisieren", + "unfederated": "Dieser Raum ist von Personen auf anderen Matrix-Servern nicht betretbar", + "upgrade_button": "Raum auf Version %(version)s aktualisieren", + "upgrade_dialog_description": "Um diesen Raum zu aktualisieren, muss die aktuelle Instanz des Raums geschlossen und an ihrer Stelle ein neuer Raum erstellt werden. Um den Raummitgliedern die bestmögliche Erfahrung zu bieten, werden wir:", + "upgrade_dialog_description_1": "Einen neuen Raum mit demselben Namen, Beschreibung und Profilbild erstellen", + "upgrade_dialog_description_2": "Alle lokalen Raumaliase aktualisieren, damit sie auf den neuen Raum zeigen", + "upgrade_dialog_description_3": "Nutzern verbieten in dem Raum mit der alten Version zu schreiben und eine Nachricht senden, die den Nutzern rät in den neuen Raum zu wechseln", + "upgrade_dialog_description_4": "Zu Beginn des neuen Raumes einen Link zum alten Raum setzen, damit Personen die alten Nachrichten sehen können", + "upgrade_dialog_title": "Raumversion aktualisieren", + "upgrade_dwarning_ialog_title_public": "Öffentlichen Raum aktualisieren", + "upgrade_warning_dialog_description": "Eine Raumaktualisierung ist ein komplexer Vorgang, der üblicherweise empfohlen wird, wenn ein Raum aufgrund von Fehlern, fehlenden Funktionen oder Sicherheitslücken instabil ist.", + "upgrade_warning_dialog_explainer": "Die Aktualisierung wird eine neue Version des Raums erstellen. Die bisherigen Nachrichten verbleiben im archivierten Raum.", + "upgrade_warning_dialog_footer": "Du wirst diesen Raum von zu aktualisieren.", + "upgrade_warning_dialog_invite_label": "Mitglieder automatisch in den neuen Raum einladen", + "upgrade_warning_dialog_report_bug_prompt": "Dies beeinflusst meistens nur, wie der Raum auf dem Server verarbeitet wird. Solltest du Probleme mit %(brand)s haben, erstelle bitte einen Fehlerbericht.", + "upgrade_warning_dialog_report_bug_prompt_link": "Dies beeinflusst meistens nur, wie der Raum auf dem Server verarbeitet wird. Solltest du Probleme mit %(brand)s haben, melde bitte einen Programmfehler.", + "upgrade_warning_dialog_title": "Raum aktualisieren", + "upgrade_warning_dialog_title_private": "Privaten Raum aktualisieren" + }, + "alias_not_specified": "nicht angegeben", + "bridges": { + "description": "Dieser Raum leitet Nachrichten von/an folgende(n) Plattformen weiter. Mehr erfahren.", + "empty": "Dieser Raum leitet keine Nachrichten von/an andere(n) Plattformen weiter. Mehr erfahren.", + "title": "Brücken" + }, + "delete_avatar_label": "Avatar löschen", + "general": { + "alias_field_has_domain_invalid": "Fehlender Doppelpunkt vor Server (z. B. :domain.org)", + "alias_field_has_localpart_invalid": "Fehlender Raumname oder Doppelpunkt (z. B. dein-raum:domain.org)", + "alias_field_matches_invalid": "Diese Adresse verweist nicht auf diesen Raum", + "alias_field_placeholder_default": "z. B. mein-raum", + "alias_field_required_invalid": "Bitte gib eine Adresse an", + "alias_field_safe_localpart_invalid": "Einige Zeichen sind nicht erlaubt", + "alias_field_taken_invalid": "Diese Adresse hat einen ungültigen Server oder wird bereits verwendet", + "alias_field_taken_invalid_domain": "Diese Adresse wird bereits verwendet", + "alias_field_taken_valid": "Diese Adresse ist verfügbar", + "alias_heading": "Raumadresse", + "aliases_items_label": "Andere öffentliche Adressen:", + "aliases_no_items_label": "Keine anderen öffentlichen Adressen vorhanden. Du kannst weiter unten eine hinzufügen", + "aliases_section": "Raumadressen", + "avatar_field_label": "Raumbild", + "canonical_alias_field_label": "Primäre Adresse", + "default_url_previews_off": "URL-Vorschau ist für Mitglieder des Raumes standardmäßig deaktiviert.", + "default_url_previews_on": "URL-Vorschau ist für Mitglieder des Raumes standardmäßig aktiviert.", + "description_space": "Einstellungen vom Space bearbeiten.", + "error_creating_alias_description": "Es gab einen Fehler beim Anlegen der Adresse. Entweder erlaubt es der Server nicht oder es gab ein temporäres Problem.", + "error_creating_alias_title": "Fehler beim Anlegen der Adresse", + "error_deleting_alias_description": "Beim Entfernen dieser Adresse ist ein Fehler aufgetreten. Vielleicht existiert sie nicht mehr oder es kam zu einem temporären Fehler.", + "error_deleting_alias_description_forbidden": "Du hast nicht die Berechtigung, die Adresse zu löschen.", + "error_deleting_alias_title": "Fehler beim Löschen der Adresse", + "error_save_space_settings": "Spaceeinstellungen konnten nicht gespeichert werden.", + "error_updating_alias_description": "Es gab einen Fehler beim Ändern des Raumalias. Entweder erlaubt es der Server nicht oder es gab ein temporäres Problem.", + "error_updating_canonical_alias_description": "Es gab ein Problem beim Aktualisieren der Raum-Hauptadresse. Es kann sein, dass der Server dies verbietet oder ein temporäres Problem aufgetreten ist.", + "error_updating_canonical_alias_title": "Fehler beim Aktualisieren der Hauptadresse", + "leave_space": "Space verlassen", + "local_alias_field_label": "Lokale Adresse", + "local_aliases_explainer_room": "Erstelle Adressen für diesen Raum, damit andere Benutzer den Raum auf deinem Heim-Server (%(localDomain)s) finden können", + "local_aliases_explainer_space": "Füge Adressen für diesen Space hinzu, damit andere Leute ihn über deinen Heim-Server (%(localDomain)s) finden können", + "local_aliases_section": "Lokale Adressen", + "name_field_label": "Raumname", + "new_alias_placeholder": "Neue öffentliche Adresse (z. B. #alias:server)", + "no_aliases_room": "Dieser Raum hat keine lokale Adresse", + "no_aliases_space": "Dieser Space hat keine lokale Adresse", + "other_section": "Sonstiges", + "publish_toggle": "Diesen Raum im Raumverzeichnis von %(domain)s veröffentlichen?", + "published_aliases_description": "Damit du die Adresse veröffentlichen kannst, musst du sie zuerst als lokale Adresse hinzufügen.", + "published_aliases_explainer_room": "Veröffentlichte Adressen erlauben jedem, den Raum zu betreten.", + "published_aliases_explainer_space": "Veröffentlichte Adressen erlauben jedem, den Space zu betreten.", + "published_aliases_section": "Öffentliche Adresse", + "save": "Speichern", + "topic_field_label": "Raumthema", + "url_preview_encryption_warning": "In verschlüsselten Räumen wie diesem ist die Linkvorschau standardmäßig deaktiviert, damit dein Heim-Server (der die Vorschau erzeugt) keine Informationen über Links in diesem Raum erhält.", + "url_preview_explainer": "Die URL-Vorschau kann Informationen wie den Titel, die Beschreibung sowie ein Vorschaubild der Website enthalten.", + "url_previews_section": "URL-Vorschau", + "user_url_previews_default_off": "Du hast die URL-Vorschau standardmäßig deaktiviert.", + "user_url_previews_default_on": "Du hast die URL-Vorschau standardmäßig aktiviert." + }, + "notifications": { + "browse_button": "Durchsuchen", + "custom_sound_prompt": "Neuen individuellen Ton festlegen", + "notification_sound": "Benachrichtigungston", + "settings_link": "Du erhältst Benachrichtigungen, wie du sie in den Einstellungen konfiguriert hast", + "sounds_section": "Töne", + "upload_sound_label": "Eigenen Ton hochladen", + "uploaded_sound": "Hochgeladener Ton" + }, + "people": { + "knock_empty": "Keine Anfragen", + "knock_section": "Beitrittsanfragen", + "see_less": "Weniger", + "see_more": "Mehr" + }, + "permissions": { + "add_privileged_user_description": "Einem oder mehreren Benutzern im Raum mehr Berechtigungen geben", + "add_privileged_user_filter_placeholder": "Benutzer im Raum suchen …", + "add_privileged_user_heading": "Berechtigten Benutzer hinzufügen", + "ban": "Benutzer verbannen", + "ban_reason": "Grund", + "banned_by": "Verbannt von %(displayName)s", + "banned_users_section": "Verbannte Benutzer", + "error_changing_pl_description": "Beim Ändern der Benutzerrechte ist ein Fehler aufgetreten. Stelle sicher, dass du die nötigen Berechtigungen besitzt und versuche es erneut.", + "error_changing_pl_reqs_description": "Beim Ändern der Anforderungen für Benutzerrechte ist ein Fehler aufgetreten. Stelle sicher, dass du die nötigen Berechtigungen besitzt und versuche es erneut.", + "error_changing_pl_reqs_title": "Fehler beim Ändern der Anforderungen für Benutzerrechte", + "error_changing_pl_title": "Fehler beim Ändern der Benutzerrechte", + "error_unbanning": "Aufheben der Verbannung fehlgeschlagen", + "events_default": "Nachrichten senden", + "invite": "Person einladen", + "io.element.voice_broadcast_info": "Sprachübertragungen", + "kick": "Benutzer entfernen", + "m.call": "Beginne %(brand)s-Anrufe", + "m.call.member": "Trete %(brand)s-Anrufen bei", + "m.reaction": "Reaktionen senden", + "m.room.avatar": "Raumbild ändern", + "m.room.avatar_space": "Space-Icon ändern", + "m.room.canonical_alias": "Hauptadresse ändern", + "m.room.canonical_alias_space": "Hauptadresse des Space ändern", + "m.room.encryption": "Raumverschlüsselung aktivieren", + "m.room.history_visibility": "Sichtbarkeit des Verlaufs ändern", + "m.room.name": "Raumname ändern", + "m.room.name_space": "Name des Space ändern", + "m.room.pinned_events": "Angeheftete Ereignisse verwalten", + "m.room.power_levels": "Berechtigungen ändern", + "m.room.redaction": "Vom mir gesendete Nachrichten löschen", + "m.room.server_acl": "Server-ACLs bearbeiten", + "m.room.tombstone": "Raum aktualisieren", + "m.room.topic": "Thema ändern", + "m.room.topic_space": "Beschreibung bearbeiten", + "m.space.child": "Räume in diesem Space verwalten", + "m.widget": "Widgets bearbeiten", + "muted_users_section": "Stummgeschaltete Benutzer", + "no_privileged_users": "Keine Nutzer haben in diesem Raum privilegierte Berechtigungen", + "notifications.room": "Alle benachrichtigen", + "permissions_section": "Berechtigungen", + "permissions_section_description_room": "Wähle Rollen, die benötigt werden, um einige Teile des Raumes zu ändern", + "permissions_section_description_space": "Wähle, von wem folgende Aktionen ausgeführt werden können", + "privileged_users_section": "Privilegierte Benutzer", + "redact": "Nachrichten von anderen löschen", + "send_event_type": "%(eventType)s-Ereignisse senden", + "state_default": "Einstellungen ändern", + "title": "Rollen und Berechtigungen", + "users_default": "Standard-Rolle" + }, + "security": { + "enable_encryption_confirm_description": "Sobald aktiviert, kann die Verschlüsselung für einen Raum nicht mehr deaktiviert werden. Nachrichten in einem verschlüsselten Raum können nur noch von Teilnehmern, aber nicht mehr vom Server gelesen werden. Einige Bots und Brücken werden vielleicht nicht mehr funktionieren. Erfahre mehr über Verschlüsselung.", + "enable_encryption_confirm_title": "Verschlüsselung aktivieren?", + "enable_encryption_public_room_confirm_description_1": "Verschlüsselung ist für öffentliche Räume nicht empfohlen. Jeder kann öffentliche Räume finden und betreten, also kann auch jeder die Nachrichten lesen. Du wirst keine der Vorteile von Verschlüsselung erhalten und kannst sie später auch nicht mehr deaktivieren. Nachrichten in öffentlichen Räumen zu verschlüsseln, wird das empfangen und senden verlangsamen.", + "enable_encryption_public_room_confirm_description_2": "Um dieses Problem zu vermeiden, erstelle einen neuen verschlüsselten Raum für deine Konversation.", + "enable_encryption_public_room_confirm_title": "Dieser Raum ist öffentlich. Willst du die Verschlüsselung wirklich aktivieren?", + "encrypted_room_public_confirm_description_1": "Es ist nicht sinnvoll, verschlüsselte Räume öffentlich zu machen. Das würde bedeuten, dass alle den Raum finden und betreten, also auch Nachrichten lesen könnten. Du erhältst also keinen Vorteil der Verschlüsselung, während sie das Senden und Empfangen von Nachrichten langsamer macht.", + "encrypted_room_public_confirm_description_2": "Erstelle einen neuen Raum für deine Konversation, um diese Probleme zu umgehen.", + "encrypted_room_public_confirm_title": "Willst du diesen verschlüsselten Raum wirklich öffentlich machen?", + "encryption_forced": "Dein Server erfordert die Deaktivierung der Verschlüsselung.", + "encryption_permanent": "Sobald du die Verschlüsselung aktivierst, kannst du sie nicht mehr deaktivieren.", + "error_join_rule_change_title": "Fehler beim Aktualisieren der Beitrittsregeln", + "error_join_rule_change_unknown": "Unbekannter Fehler", + "guest_access_warning": "Personen mit unterstützter Anwendung werden diesen Raum ohne registriertes Konto betreten können.", + "history_visibility_invited": "Mitglieder (ab Einladung)", + "history_visibility_joined": "Mitglieder (ab Betreten)", + "history_visibility_legend": "Wer kann den bisherigen Verlauf lesen?", + "history_visibility_shared": "Mitglieder", + "history_visibility_warning": "Änderungen an der Sichtbarkeit des Verlaufs gelten nur für zukünftige Nachrichten. Die Sichtbarkeit des existierenden Verlaufs bleibt unverändert.", + "history_visibility_world_readable": "Alle", + "join_rule_description": "Entscheide, wer %(roomName)s betreten kann.", + "join_rule_invite": "Privat (Betreten mit Einladung)", + "join_rule_invite_description": "Nur Eingeladene können betreten.", + "join_rule_knock": "Beitrittsanfragen", + "join_rule_knock_description": "Personen können den Raum nur betreten, wenn sie Zutritt erhalten.", + "join_rule_public_description": "Sichtbar und zugänglich für jeden.", + "join_rule_restricted": "Spacemitglieder", + "join_rule_restricted_description": "Das Betreten ist allen in diesen Spaces möglich. Ändere, welche Spaces Zutritt haben.", + "join_rule_restricted_description_active_space": "Finden und betreten ist Mitgliedern von erlaubt. Du kannst auch weitere Spaces wählen.", + "join_rule_restricted_description_prompt": "Das Betreten ist allen in den gewählten Spaces möglich.", + "join_rule_restricted_description_spaces": "Spaces mit Zutritt", + "join_rule_restricted_dialog_description": "Entscheide, welche Spaces auf den Raum zugreifen können. Mitglieder ausgewählter Spaces können betreten.", + "join_rule_restricted_dialog_empty_warning": "Du entfernst alle Spaces. Der Zutritt wird auf den Standard (Privat) zurückgesetzt", + "join_rule_restricted_dialog_filter_placeholder": "Spaces durchsuchen", + "join_rule_restricted_dialog_heading_known": "Andere dir bekannte Spaces", + "join_rule_restricted_dialog_heading_other": "Andere Spaces, die du möglicherweise nicht kennst", + "join_rule_restricted_dialog_heading_room": "Spaces, in denen du Mitglied bist und die diesen Raum enthalten", + "join_rule_restricted_dialog_heading_space": "Spaces, die diesen Space enthalten und in denen du Mitglied bist", + "join_rule_restricted_dialog_heading_unknown": "Das sind vermutliche solche, in denen andere Raumadministratoren Mitglieder sind.", + "join_rule_restricted_dialog_title": "Spaces wählen", + "join_rule_restricted_n_more": { + "other": "und %(count)s weitere", + "one": "und %(count)s weitere" + }, + "join_rule_restricted_summary": { + "other": "%(count)s Spaces haben Zutritt", + "one": "Derzeit hat ein Space Zutritt" + }, + "join_rule_restricted_upgrade_description": "Diese Aktualisierung gewährt Mitgliedern der ausgewählten Spaces Zugang zu diesem Raum ohne Einladung.", + "join_rule_restricted_upgrade_warning": "Dieser Raum ist Teil von Spaces von denen du kein Administrator bist. In diesen Räumen wird der alte Raum weiter angezeigt werden, aber Personen werden aufgefordert werden, dem neuen Raum beizutreten.", + "join_rule_upgrade_awaiting_room": "Neuer Raum wird geladen", + "join_rule_upgrade_required": "Aktualisierung erforderlich", + "join_rule_upgrade_sending_invites": { + "one": "Einladung senden …", + "other": "Einladungen senden … (%(progress)s von %(count)s)" + }, + "join_rule_upgrade_updating_spaces": { + "one": "Space aktualisieren …", + "other": "Spaces aktualisieren … (%(progress)s von %(count)s)" + }, + "join_rule_upgrade_upgrading_room": "Raum wird aktualisiert", + "public_without_alias_warning": "Um den Raum zu verlinken, füge bitte eine Adresse hinzu.", + "publish_room": "Diesen Raum im Raumverzeichnis veröffentlichen.", + "publish_space": "Diesen Space im Raumverzeichnis veröffentlichen.", + "strict_encryption": "Niemals verschlüsselte Nachrichten von dieser Sitzung zu unverifizierten Sitzungen in diesem Raum senden", + "title": "Sicherheit" + }, + "title": "Raumeinstellungen - %(roomName)s", + "upload_avatar_label": "Profilbild hochladen", + "visibility": { + "alias_section": "Adresse", + "error_failed_save": "Sichtbarkeit des Space konnte nicht geändert werden", + "error_update_guest_access": "Gastzutritt zum Space konnte nicht geändert werden", + "error_update_history_visibility": "Verlaufssichtbarkeit des Space konnte nicht geändert werden", + "guest_access_explainer": "Gäste ohne Konto können den Space betreten.", + "guest_access_explainer_public_space": "Sinnvoll für öffentliche Spaces.", + "guest_access_label": "Gastzutritt", + "history_visibility_anyone_space": "Space-Vorschau erlauben", + "history_visibility_anyone_space_description": "Personen können den Space vor dem Betreten erkunden.", + "history_visibility_anyone_space_recommendation": "Empfohlen für öffentliche Spaces.", + "title": "Sichtbarkeit" + }, + "voip": { + "call_type_section": "Anrufart", + "enable_element_call_caption": "%(brand)s ist Ende-zu-Ende-verschlüsselt, allerdings noch auf eine geringere Anzahl Benutzer beschränkt.", + "enable_element_call_label": "Verwende %(brand)s als alternative Anrufoption in diesem Raum", + "enable_element_call_no_permissions_tooltip": "Du hast nicht die erforderlichen Berechtigungen, um dies zu ändern." + } + }, + "room_summary_card_back_action_label": "Rauminformationen", + "scalar": { + "error_create": "Widget kann nicht erstellt werden.", + "error_membership": "Du bist nicht in diesem Raum.", + "error_missing_room_id": "Fehlende Raum-ID.", + "error_missing_room_id_request": "user_id fehlt in der Anfrage", + "error_missing_user_id_request": "user_id fehlt in der Anfrage", + "error_permission": "Du hast dafür keine Berechtigung.", + "error_power_level_invalid": "Berechtigungslevel muss eine positive ganze Zahl sein.", + "error_room_not_visible": "Raum %(roomId)s ist nicht sichtbar", + "error_room_unknown": "Dieser Raum wurde nicht erkannt.", + "error_send_request": "Übertragung der Anfrage fehlgeschlagen.", + "failed_read_event": "Lesen der Ereignisse fehlgeschlagen", + "failed_send_event": "Übertragung des Ereignisses fehlgeschlagen" + }, + "server_offline": { + "description": "Server reagiert auf einige deiner Anfragen nicht. Folgend sind einige der wahrscheinlichsten Gründe aufgeführt.", + "description_1": "Die Reaktionszeit des Servers (%(serverName)s) war zu hoch.", + "description_2": "Deine Firewall oder Anti-Virus-Programm blockiert die Anfrage.", + "description_3": "Eine Browser-Erweiterung verhindert die Anfrage.", + "description_4": "Der Server ist außer Betrieb.", + "description_5": "Der Server hat deine Anfrage abgewiesen.", + "description_6": "Deine Region hat Schwierigkeiten, eine Verbindung zum Internet herzustellen.", + "description_7": "Beim Versuch, den Server zu kontaktieren, ist ein Verbindungsfehler aufgetreten.", + "description_8": "Der Server ist nicht dafür konfiguriert, das Problem anzuzeigen (CORS).", + "empty_timeline": "Du bist auf dem neuesten Stand.", + "recent_changes_heading": "Letzte Änderungen, die noch nicht eingegangen sind", + "title": "Server reagiert nicht" + }, + "seshat": { + "error_initialising": "Initialisierung der Suche fehlgeschlagen, für weitere Informationen öffne deine Einstellungen", + "reset_button": "Ereignisspeicher zurück setzen", + "reset_description": "Es ist wahrscheinlich, dass du den Ereignis-Indexspeicher nicht zurück setzen möchtest", + "reset_explainer": "Falls du es wirklich willst: Es werden keine Nachrichten gelöscht. Außerdem wird die Suche, während der Index erstellt wird, etwas langsamer sein", + "reset_title": "Ereignisspeicher zurück setzen?", + "warning_kind_files": "Diese Version von %(brand)s kann nicht alle verschlüsselten Dateien anzuzeigen", + "warning_kind_files_app": "Nutze die Desktop-App um alle verschlüsselten Dateien zu sehen", + "warning_kind_search": "Diese Version von %(brand)s kann verschlüsselte Nachrichten nicht durchsuchen", + "warning_kind_search_app": "Nutze die Desktop-App um verschlüsselte Nachrichten zu durchsuchen" + }, + "setting": { + "help_about": { + "access_token_detail": "Dein Zugriffstoken gibt vollen Zugriff auf dein Konto. Teile ihn niemals mit anderen.", + "brand_version": "Version von %(brand)s:", + "clear_cache_reload": "Zwischenspeicher löschen und neu laden", + "crypto_version": "Krypto-Version:", + "help_link": "Um Hilfe zur Benutzung von %(brand)s zu erhalten, klicke hier.", + "homeserver": "Heim-Server ist %(homeserverUrl)s", + "identity_server": "Identitäts-Server ist %(identityServerUrl)s", + "title": "Hilfe und Info", + "versions": "Versionen" + } + }, + "settings": { + "all_rooms_home": "Alle Räume auf Startseite anzeigen", + "all_rooms_home_description": "Alle Räume, denen du beigetreten bist, werden auf der Startseite erscheinen.", + "always_show_message_timestamps": "Nachrichtenzeitstempel immer anzeigen", + "appearance": { + "custom_font": "Systemschriftart verwenden", + "custom_font_description": "Setze den Schriftnamen auf eine in deinem System installierte Schriftart und %(brand)s wird versuchen, sie zu verwenden.", + "custom_font_name": "Systemschriftart", + "custom_font_size": "Andere Schriftgröße verwenden", + "custom_theme_error_downloading": "Fehler beim herunterladen des Themas.", + "custom_theme_invalid": "Ungültiges Designschema.", + "font_size": "Schriftgröße", + "image_size_default": "Standard", + "image_size_large": "Groß", + "layout_bubbles": "Nachrichtenblasen", + "layout_irc": "IRC (Experimentell)", + "match_system_theme": "An Systemdesign anpassen", + "timeline_image_size": "Bildgröße im Verlauf" + }, + "automatic_language_detection_syntax_highlight": "Automatische Spracherkennung für die Syntaxhervorhebung", + "autoplay_gifs": "GIFs automatisch abspielen", + "autoplay_videos": "Videos automatisch abspielen", + "big_emoji": "Große Emojis im Verlauf anzeigen", + "code_block_expand_default": "Quelltextblöcke standardmäßig erweitern", + "code_block_line_numbers": "Zeilennummern in Quelltextblöcken", + "disable_historical_profile": "Aktuelle Profilbilder und Anzeigenamen im Verlauf anzeigen", + "emoji_autocomplete": "Emoji-Vorschläge während Eingabe", + "enable_markdown": "Markdown aktivieren", + "enable_markdown_description": "Beginne Nachrichten mit /plain, um sie ohne Markdown zu senden.", + "general": { + "account_management_section": "Benutzerkontenverwaltung", + "account_section": "Benutzerkonto", + "add_email_dialog_title": "E-Mail-Adresse hinzufügen", + "add_email_failed_verification": "Verifizierung der E-Mail-Adresse fehlgeschlagen: Bitte stelle sicher, dass du den Link in der E-Mail angeklickt hast", + "add_email_instructions": "Wir haben dir eine E-Mail geschickt, um deine Adresse zu überprüfen. Bitte folge den Anweisungen dort und klicke dann auf die Schaltfläche unten.", + "add_msisdn_confirm_body": "Klicke unten die Schaltfläche, um die hinzugefügte Telefonnummer zu bestätigen.", + "add_msisdn_confirm_button": "Hinzugefügte Telefonnummer bestätigen", + "add_msisdn_confirm_sso_button": "Bestätige die hinzugefügte Telefonnummer, indem du deine Identität mittels der Einmalanmeldung nachweist.", + "add_msisdn_dialog_title": "Telefonnummer hinzufügen", + "add_msisdn_instructions": "Gib den per SMS an +%(msisdn)s gesendeten Bestätigungscode ein.", + "add_msisdn_misconfigured": "Das MSISDN-Verknüpfungsverfahren ist falsch konfiguriert", + "confirm_adding_email_body": "Klicke unten auf den Knopf, um die hinzugefügte E-Mail-Adresse zu bestätigen.", + "confirm_adding_email_title": "Hinzugefügte E-Mail-Addresse bestätigen", + "deactivate_confirm_body": "Willst du dein Konto wirklich deaktivieren? Du kannst dies nicht rückgängig machen.", + "deactivate_confirm_body_sso": "Bestätige die Deaktivierung deines Kontos, indem du deine Identität mithilfe deines Single-Sign-On-Anbieters nachweist.", + "deactivate_confirm_content": "Bestätige, dass du dein Konto deaktivieren möchtest. Wenn du fortfährst, tritt folgendes ein:", + "deactivate_confirm_content_1": "Du wirst dein Konto nicht reaktivieren können", + "deactivate_confirm_content_2": "Du wirst dich nicht mehr anmelden können", + "deactivate_confirm_content_3": "Niemand wird in der Lage sein deinen Benutzernamen (MXID) wiederzuverwenden, dich eingeschlossen: Der Benutzername wird nicht verfügbar bleiben", + "deactivate_confirm_content_4": "Du wirst alle Unterhaltungen verlassen, in denen du dich befindest", + "deactivate_confirm_content_5": "Du wirst vom Identitäts-Server entfernt: Deine Freunde werden nicht mehr in der Lage sein, dich über deine E-Mail-Adresse oder Telefonnummer zu finden", + "deactivate_confirm_content_6": "Deine alten Nachrichten werden weiterhin für Personen sichtbar bleiben, die sie erhalten haben, so wie es bei E-Mails der Fall ist. Möchtest du deine Nachrichten vor Personen verbergen, die Räume in der Zukunft betreten?", + "deactivate_confirm_continue": "Deaktivierung des Kontos bestätigen", + "deactivate_confirm_erase_label": "Meine Nachrichten vor neuen Teilnehmern verstecken", + "deactivate_section": "Benutzerkonto deaktivieren", + "deactivate_warning": "Die Deaktivierung deines Kontos ist unwiderruflich — sei vorsichtig!", + "discovery_email_empty": "Entdeckungsoptionen werden angezeigt, sobald du eine E-Mail-Adresse hinzugefügt hast.", + "discovery_email_verification_instructions": "Verifiziere den Link in deinem Posteingang", + "discovery_msisdn_empty": "Entdeckungsoptionen werden angezeigt, sobald du eine Telefonnummer hinzugefügt hast.", + "discovery_needs_terms": "Stimme den Nutzungsbedingungen des Identitäts-Servers %(serverName)s zu, um per E-Mail-Adresse oder Telefonnummer auffindbar zu werden.", + "email_address_in_use": "Diese E-Mail-Adresse wird bereits verwendet", + "email_address_label": "E-Mail-Adresse", + "email_not_verified": "Deine E-Mail-Adresse wurde noch nicht verifiziert", + "email_verification_instructions": "Klicke auf den Link in der Bestätigungs-E-Mail, und dann auf Weiter.", + "emails_heading": "E-Mail-Adressen", + "error_add_email": "E-Mail-Adresse konnte nicht hinzugefügt werden", + "error_deactivate_communication": "Bei der Kommunikation mit dem Server ist ein Fehler aufgetreten. Bitte versuche es erneut.", + "error_deactivate_invalid_auth": "Der Server lieferte keine gültigen Authentifizierungsinformationen.", + "error_deactivate_no_auth": "Der Server benötigt keine Authentifizierung", + "error_email_verification": "Die E-Mail-Adresse konnte nicht verifiziert werden.", + "error_invalid_email": "Ungültige E-Mail-Adresse", + "error_invalid_email_detail": "Dies scheint keine gültige E-Mail-Adresse zu sein", + "error_msisdn_verification": "Die Telefonnummer kann nicht überprüft werden.", + "error_password_change_403": "Passwortänderung fehlgeschlagen. Ist dein Passwort richtig?", + "error_password_change_http": "%(errorMessage)s (HTTP-Status %(httpStatus)s)", + "error_password_change_title": "Fehler während der Passwortänderung", + "error_password_change_unknown": "Unbekannter Fehler während der Passwortänderung (%(stringifiedError)s)", + "error_remove_3pid": "Die Kontaktinformationen können nicht gelöscht werden", + "error_revoke_email_discovery": "Dem Teilen der E-Mail-Adresse kann nicht widerrufen werden", + "error_revoke_msisdn_discovery": "Widerrufen der geteilten Telefonnummer nicht möglich", + "error_share_email_discovery": "E-Mail-Adresse kann nicht geteilt werden", + "error_share_msisdn_discovery": "Teilen der Telefonnummer nicht möglich", + "identity_server_no_token": "Kein Identitäts-Zugangs-Token gefunden", + "identity_server_not_set": "Kein Identitäts-Server festgelegt", + "language_section": "Sprache und Region", + "msisdn_in_use": "Diese Telefonnummer wird bereits verwendet", + "msisdn_label": "Telefonnummer", + "msisdn_verification_field_label": "Bestätigungscode", + "msisdn_verification_instructions": "Gib den Bestätigungscode ein, den du empfangen hast.", + "msisdns_heading": "Telefonnummern", + "name_placeholder": "Kein Anzeigename", + "oidc_manage_button": "Konto verwalten", + "password_change_section": "Setze neues Kontopasswort …", + "password_change_success": "Dein Passwort wurde erfolgreich geändert.", + "remove_email_prompt": "%(email)s entfernen?", + "remove_msisdn_prompt": "%(phone)s entfernen?", + "spell_check_locale_placeholder": "Wähle ein Gebietsschema" + }, + "image_thumbnails": "Vorschauen für Bilder", + "inline_url_previews_default": "URL-Vorschau standardmäßig aktivieren", + "inline_url_previews_room": "URL-Vorschau für Raummitglieder", + "inline_url_previews_room_account": "URL-Vorschau für dich in diesem Raum", + "insert_trailing_colon_mentions": "Doppelpunkt nach Erwähnungen einfügen", + "jump_to_bottom_on_send": "Nach Senden einer Nachricht im Verlauf nach unten springen", + "key_backup": { + "backup_in_progress": "Deine Schlüssel werden gesichert (Das erste Backup könnte ein paar Minuten in Anspruch nehmen).", + "backup_starting": "Beginne Sicherung …", + "backup_success": "Erfolgreich!", + "cannot_create_backup": "Konnte Schlüsselsicherung nicht erstellen", + "create_title": "Schlüsselsicherung erstellen", + "setup_secure_backup": { + "backup_setup_success_description": "Deine Schlüssel werden nun von dieser Sitzung gesichert.", + "backup_setup_success_title": "Verschlüsselte Sicherung erfolgreich", + "cancel_warning": "Wenn du jetzt abbrichst, kannst du verschlüsselte Nachrichten und Daten verlieren, wenn du den Zugriff auf deine Sitzungen verlierst.", + "confirm_security_phrase": "Deine Sicherheitsphrase bestätigen", + "description": "Verhindere, den Zugriff auf verschlüsselte Nachrichten und Daten zu verlieren, indem du die Verschlüsselungs-Schlüssel auf deinem Server sicherst.", + "download_or_copy": "%(downloadButton)s oder %(copyButton)s", + "enter_phrase_description": "Gib eine nur dir bekannte Sicherheitsphrase ein, die dem Schutz deiner Daten dient. Um die Sicherheit zu gewährleisten, sollte dies nicht dein Kontopasswort sein.", + "enter_phrase_title": "Sicherheitsphrase eingeben", + "enter_phrase_to_confirm": "Gib dein Kennwort ein zweites Mal zur Bestätigung ein.", + "generate_security_key_description": "Wir generieren einen Sicherheitsschlüssel für dich, den du in einem Passwort-Manager oder Safe sicher aufbewahren solltest.", + "generate_security_key_title": "Sicherheitsschlüssel generieren", + "pass_phrase_match_failed": "Das passt nicht.", + "pass_phrase_match_success": "Das passt!", + "phrase_strong_enough": "Großartig! Diese Sicherheitsphrase sieht stark genug aus.", + "requires_key_restore": "Schlüsselsicherung wiederherstellen, um deine Verschlüsselung zu aktualisieren", + "requires_password_confirmation": "Gib dein Kontopasswort ein, um die Aktualisierung zu bestätigen:", + "requires_server_authentication": "Du musst dich authentifizieren, um die Aktualisierung zu bestätigen.", + "secret_storage_query_failure": "Status des sicheren Speichers kann nicht gelesen werden", + "security_key_safety_reminder": "Bewahre deinen Sicherheitsschlüssel sicher auf, etwa in einem Passwortmanager oder einem Safe, da er verwendet wird, um deine Daten zu sichern.", + "session_upgrade_description": "Aktualisiere diese Sitzung, um mit ihr andere Sitzungen verifizieren zu können, damit sie Zugang zu verschlüsselten Nachrichten erhalten und für andere als vertrauenswürdig markiert werden.", + "set_phrase_again": "Gehe zurück und setze es erneut.", + "settings_reminder": "Du kannst auch in den Einstellungen Sicherungen einrichten und deine Schlüssel verwalten.", + "title_confirm_phrase": "Sicherheitsphrase bestätigen", + "title_save_key": "Sicherungsschlüssel sichern", + "title_set_phrase": "Sicherheitsphrase setzen", + "title_upgrade_encryption": "Aktualisiere deine Verschlüsselung", + "unable_to_setup": "Sicherer Speicher kann nicht eingerichtet werden", + "use_different_passphrase": "Eine andere Passphrase verwenden?", + "use_phrase_only_you_know": "Verwende für deine Sicherung eine geheime Phrase, die nur du kennst, und speichere optional einen Sicherheitsschlüssel." + } + }, + "key_export_import": { + "confirm_passphrase": "Passphrase bestätigen", + "enter_passphrase": "Passphrase eingeben", + "export_description_1": "Dieser Prozess erlaubt es dir, die Schlüssel für die in verschlüsselten Räumen empfangenen Nachrichten in eine lokale Datei zu exportieren. In Zukunft wird es möglich sein, diese Datei in eine andere Matrix-Anwendung zu importieren, sodass diese die Nachrichten ebenfalls entschlüsseln kann.", + "export_description_2": "Die exportierte Datei erlaubt Unbefugten, jede Nachricht zu entschlüsseln, sei also vorsichtig und halte sie versteckt. Um dies zu verhindern, empfiehlt es sich eine einzigartige Passphrase unten einzugeben, die nur für das Entschlüsseln der exportierten Datei genutzt wird. Es ist nur möglich, diese Datei mit der selben Passphrase zu importieren.", + "export_title": "Raum-Schlüssel exportieren", + "file_to_import": "Zu importierende Datei", + "import_description_1": "Dieser Prozess erlaubt es dir, die zuvor von einer anderen Matrix-Anwendung exportierten Verschlüsselungs-Schlüssel zu importieren. Danach kannst du alle Nachrichten entschlüsseln, die auch bereits auf der anderen Anwendung entschlüsselt werden konnten.", + "import_description_2": "Die exportierte Datei ist mit einer Passphrase geschützt. Du kannst die Passphrase hier eingeben, um die Datei zu entschlüsseln.", + "import_title": "Raum-Schlüssel importieren", + "phrase_cannot_be_empty": "Passphrase darf nicht leer sein", + "phrase_must_match": "Passphrases müssen übereinstimmen", + "phrase_strong_enough": "Super! Diese Passphrase wirkt stark genug" + }, + "keyboard": { + "title": "Tastatur" + }, + "notifications": { + "default_setting_description": "Diese Einstellung wird standardmäßig für all deine Räume übernommen.", + "default_setting_section": "Ich möchte benachrichtigt werden für (Standardeinstellung)", + "desktop_notification_message_preview": "Nachrichtenvorschau in der Desktopbenachrichtigung anzeigen", + "email_description": "E-Mail-Zusammenfassung für verpasste Benachrichtigungen erhalten", + "email_section": "E-Mail-Zusammenfassung", + "email_select": "Wähle, an welche E-Mail-Adresse die Zusammenfassungen gesendet werden. Verwalte deine E-Mail-Adressen unter .", + "enable_audible_notifications_session": "Benachrichtigungstöne in dieser Sitzung", + "enable_desktop_notifications_session": "Desktopbenachrichtigungen in dieser Sitzung", + "enable_email_notifications": "E-Mail-Benachrichtigungen für %(email)s aktivieren", + "enable_notifications_account": "Aktiviere Benachrichtigungen für dieses Konto", + "enable_notifications_account_detail": "Ausschalten, um Benachrichtigungen auf all deinen Geräten und Sitzungen zu deaktivieren", + "enable_notifications_device": "Aktiviere Benachrichtigungen für dieses Gerät", + "error_loading": "Fehler beim Laden der Benachrichtigungseinstellungen.", + "error_permissions_denied": "%(brand)s hat keine Berechtigung, Benachrichtigungen zu senden - Bitte überprüfe deine Browsereinstellungen", + "error_permissions_missing": "%(brand)s hat keine Berechtigung für das Senden von Benachrichtigungen erhalten - Bitte versuche es erneut", + "error_saving": "Fehler beim Speichern der Benachrichtigungseinstellungen", + "error_saving_detail": "Beim Speichern der Benachrichtigungseinstellungen ist ein Fehler aufgetreten.", + "error_title": "Benachrichtigungen konnten nicht aktiviert werden", + "error_updating": "Ein Fehler ist während der Aktualisierung deiner Benachrichtigungseinstellungen aufgetreten. Bitte versuche die Option erneut umzuschalten.", + "invites": "In einen Raum eingeladen", + "keywords": "Zeige einen Hinweis , wenn Schlüsselwörter in einem Raum verwendet werden.", + "keywords_prompt": "Schlüsselwörter, Variationen dieser oder Anzeigenamen eingeben", + "labs_notice_prompt": "Aktualisierung: Wir haben die Benachrichtigungseinstellungen vereinfacht, damit Optionen schneller zu finden sind. Einige benutzerdefinierte Einstellungen werden hier nicht angezeigt, sind aber dennoch aktiv. Wenn du fortfährst, könnten sich einige Einstellungen ändern. Erfahre mehr", + "mentions_keywords": "Erwähnungen und Schlüsselwörter", + "mentions_keywords_only": "Nur Erwähnungen und Schlüsselwörter", + "messages_containing_keywords": "Nachrichten mit Schlüsselwörtern", + "noisy": "Laut", + "notices": "Nachrichten von Bots", + "notify_at_room": "Benachrichtigen, wenn jemand @room erwähnt", + "notify_keyword": "Benachrichtigen, wenn jemand ein Schlüsselwort erwähnt", + "notify_mention": "Benachrichtigen, wenn jemand @anzeigename oder %(mxid)s erwähnt", + "other_section": "Andere Dinge, an denen du interessiert sein könntest:", + "people_mentions_keywords": "Personen, Erwähnungen und Schlüsselwörter", + "play_sound_for_description": "Standardmäßig übernommen für alle Räume auf allen Geräten.", + "play_sound_for_section": "Spiele einen Ton für", + "push_targets": "Benachrichtigungsziele", + "quick_actions_mark_all_read": "Alle Nachrichten als gelesen markieren", + "quick_actions_reset": "Standardeinstellungen wiederherstellen", + "quick_actions_section": "Schnellaktionen", + "room_activity": "Neue Raumaktivitäten, -aktualisierungen und -statusmeldungen", + "rule_call": "Anrufe", + "rule_contains_display_name": "Nachrichten mit meinem Anzeigenamen", + "rule_contains_user_name": "Nachrichten mit meinem Benutzernamen", + "rule_encrypted": "Verschlüsselte Gruppenunterhaltungen", + "rule_encrypted_room_one_to_one": "Verschlüsselte Direktnachrichten", + "rule_invite_for_me": "Einladungen", + "rule_message": "Gruppenunterhaltungen", + "rule_room_one_to_one": "Direktnachrichten", + "rule_roomnotif": "Nachrichten mit @room", + "rule_suppress_notices": "Nachrichten von Bots", + "rule_tombstone": "Raumaktualisierungen", + "show_message_desktop_notification": "Nachrichteninhalt in der Desktopbenachrichtigung anzeigen", + "voip": "Audio- und Videoanrufe" + }, + "preferences": { + "Electron.enableHardwareAcceleration": "Hardwarebeschleunigung einschalten (Neustart von %(appName)s notwendig)", + "always_show_menu_bar": "Fenstermenüleiste immer anzeigen", + "autocomplete_delay": "Verzögerung vor Autovervollständigung (ms)", + "code_blocks_heading": "Quelltextblöcke", + "compact_modern": "Modernes kompaktes Layout verwenden", + "composer_heading": "Nachrichteneingabe", + "enable_hardware_acceleration": "Aktiviere die Hardwarebeschleunigung", + "enable_tray_icon": "Fenster beim Schließen in die Symbolleiste minimieren", + "keyboard_heading": "Tastenkombinationen", + "keyboard_view_shortcuts_button": "Um alle Tastenkombinationen anzuzeigen, klicke hier.", + "media_heading": "Mediendateien", + "presence_description": "Teile anderen deine Aktivität und deinen Status mit.", + "rm_lifetime": "Gültigkeitsdauer der Gelesen-Markierung (ms)", + "rm_lifetime_offscreen": "Gültigkeitsdauer der Gelesen-Markierung außerhalb des Bildschirms (ms)", + "room_directory_heading": "Raumverzeichnis", + "room_list_heading": "Raumliste", + "show_avatars_pills": "Profilbilder in Benutzer-, Raum- und Ereigniserwähnungen anzeigen", + "show_checklist_shortcuts": "Verknüpfung zu ersten Schritten (Willkommen) anzeigen", + "show_polls_button": "Zeige Pol button", + "surround_text": "Sonderzeichen automatisch vor und hinter Textauswahl setzen", + "time_heading": "Zeitanzeige" + }, + "prompt_invite": "Warnen, bevor du Einladungen zu ungültigen Matrix-IDs sendest", + "replace_plain_emoji": "Klartext-Emoji automatisch ersetzen", + "security": { + "4s_public_key_in_account_data": "in den Kontodaten", + "4s_public_key_status": "Öffentlicher Schlüssel des sicheren Speichers:", + "analytics_description": "Anonym Daten teilen um bei der Identifizierung von Fehlern zu helfen. Keine persönlichen Daten. Keine Daten von Dritt-Anbietern.", + "backup_key_cached_status": "Sicherungsschlüssel zwischengespeichert:", + "backup_key_stored_status": "Sicherungsschlüssel gespeichert:", + "backup_key_unexpected_type": "unbekannter Typ", + "backup_key_well_formed": "wohlgeformt", + "backup_keys_description": "Sichere deine Schlüssel mit deinen Kontodaten, für den Fall, dass du den Zugriff auf deine Sitzungen verlierst. Deine Schlüssel werden mit einem eindeutigen Sicherheitsschlüssel geschützt.", + "bulk_options_accept_all_invites": "Akzeptiere alle %(invitedRooms)s Einladungen", + "bulk_options_reject_all_invites": "Alle %(invitedRooms)s Einladungen ablehnen", + "bulk_options_section": "Sammeloptionen", + "cross_signing_cached": "lokal zwischengespeichert", + "cross_signing_homeserver_support": "Unterstützung des Heim-Servers:", + "cross_signing_homeserver_support_exists": "existiert", + "cross_signing_in_4s": "im Schlüsselspeicher", + "cross_signing_in_memory": "im Speicher", + "cross_signing_master_private_Key": "Privater Hauptschlüssel:", + "cross_signing_not_cached": "lokal nicht gefunden", + "cross_signing_not_found": "nicht gefunden", + "cross_signing_not_in_4s": "nicht im Speicher gefunden", + "cross_signing_not_stored": "nicht gespeichert", + "cross_signing_private_keys": "Private Quersignaturschlüssel:", + "cross_signing_public_keys": "Öffentlicher Quersignaturschlüssel:", + "cross_signing_self_signing_private_key": "Selbst signierter privater Schlüssel:", + "cross_signing_user_signing_private_key": "Privater Benutzerschlüssel:", + "cryptography_section": "Verschlüsselung", + "delete_backup": "Lösche Sicherung", + "delete_backup_confirm_description": "Bist du sicher? Du wirst alle deine verschlüsselten Nachrichten verlieren, wenn deine Schlüssel nicht gut gesichert sind.", + "e2ee_default_disabled_warning": "Deine Server-Administration hat die Ende-zu-Ende-Verschlüsselung für private Räume und Direktnachrichten standardmäßig deaktiviert.", + "enable_message_search": "Nachrichtensuche in verschlüsselten Räumen aktivieren", + "encryption_section": "Verschlüsselung", + "error_loading_key_backup_status": "Konnte Status der Schlüsselsicherung nicht laden", + "export_megolm_keys": "E2E-Raumschlüssel exportieren", + "ignore_users_empty": "Du ignorierst keine Benutzer.", + "ignore_users_section": "Blockierte Benutzer", + "import_megolm_keys": "E2E-Raumschlüssel importieren", + "key_backup_active": "Diese Sitzung sichert deine Schlüssel.", + "key_backup_active_version": "Aktive Backup-Version:", + "key_backup_active_version_none": "Nichts", + "key_backup_algorithm": "Algorithmus:", + "key_backup_can_be_restored": "Dieses Backup kann in dieser Sitzung wiederhergestellt werden", + "key_backup_complete": "Alle Schlüssel gesichert", + "key_backup_connect": "Verbinde diese Sitzung mit einer Schlüsselsicherung", + "key_backup_connect_prompt": "Verbinde diese Sitzung mit deiner Schlüsselsicherung bevor du dich abmeldest, um den Verlust von Schlüsseln zu vermeiden.", + "key_backup_in_progress": "Sichere %(sessionsRemaining)s Schlüssel …", + "key_backup_inactive": "Diese Sitzung sichert deine Schlüssel nicht, aber du hast eine vorhandene Sicherung, die du wiederherstellen und in Zukunft hinzufügen kannst.", + "key_backup_inactive_warning": "Deine Schlüssel werden von dieser Sitzung nicht gesichert.", + "key_backup_latest_version": "Letzte Backup-Version auf diesen Server:", + "message_search_disable_warning": "Wenn deaktiviert, werden Nachrichten von verschlüsselten Räumen nicht in den Ergebnissen auftauchen.", + "message_search_disabled": "Speichere verschlüsselte Nachrichten lokal, sodass sie deinen Suchergebnissen erscheinen können.", + "message_search_enabled": { + "other": "Verschlüsselte Nachrichten sicher lokal zwischenspeichern, um sie in Suchergebnissen finden zu können. Es werden %(size)s benötigt, um die Nachrichten von %(rooms)s Räumen zu speichern.", + "one": "Verschlüsselte Nachrichten sicher lokal zwischenspeichern, um sie in Suchergebnissen finden zu können. Es werden %(size)s benötigt, um die Nachrichten vom Raum %(rooms)s zu speichern." + }, + "message_search_failed": "Initialisierung der Nachrichtensuche fehlgeschlagen", + "message_search_indexed_messages": "Indizierte Nachrichten:", + "message_search_indexed_rooms": "Indizierte Räume:", + "message_search_indexing": "Indiziere: %(currentRoom)s", + "message_search_indexing_idle": "Derzeit werden keine Nachrichten für Räume indiziert.", + "message_search_intro": "%(brand)s verwendet einen sicheren Zwischenspeicher für verschlüsselte Nachrichten, damit sie in den Suchergebnissen angezeigt werden:", + "message_search_room_progress": "%(doneRooms)s von %(totalRooms)s", + "message_search_section": "Nachrichtensuche", + "message_search_sleep_time": "Wie schnell Nachrichten heruntergeladen werden sollen.", + "message_search_space_used": "Speicherplatzbedarf:", + "message_search_unsupported": "Um verschlüsselte Nachrichten lokal zu durchsuchen, benötigt %(brand)s weitere Komponenten. Wenn du diese Funktion testen möchtest, kannst du dir deine eigene Version von %(brand)s Desktop mit der integrierten Suchfunktion kompilieren.", + "message_search_unsupported_web": "Das Durchsuchen von verschlüsselten Nachrichten wird aus Sicherheitsgründen nur von %(brand)s Desktop unterstützt. Hier gehts zum Download.", + "record_session_details": "Bezeichnung, Version und URL der Anwendung registrieren, damit diese Sitzung in der Sitzungsverwaltung besser erkennbar ist", + "restore_key_backup": "Von Sicherung wiederherstellen", + "secret_storage_not_ready": "nicht bereit", + "secret_storage_ready": "bereit", + "secret_storage_status": "Sicherer Speicher:", + "send_analytics": "Analysedaten senden", + "session_id": "Sitzungs-ID:", + "session_key": "Sitzungsschlüssel:", + "strict_encryption": "Niemals verschlüsselte Nachrichten von dieser Sitzung zu unverifizierten Sitzungen senden" + }, + "send_read_receipts": "Sende Lesebestätigungen", + "send_read_receipts_unsupported": "Dein Server unterstützt das Deaktivieren von Lesebestätigungen nicht.", + "send_typing_notifications": "Tippbenachrichtigungen senden", + "sessions": { + "best_security_note": "Um die beste Sicherheit zu gewährleisten, verifizieren Sie Ihre Sitzungen und melden Sie sich von jeder Sitzung ab, die Sie nicht mehr kennen oder nicht mehr verwenden.", + "browser": "Internet Browser", + "confirm_sign_out": { + "one": "Abmelden des Geräts bestätigen", + "other": "Abmelden dieser Geräte bestätigen" + }, + "confirm_sign_out_body": { + "one": "Klicke unten auf den Knopf, um dieses Gerät abzumelden.", + "other": "Klicke unten auf den Knopf, um diese Geräte abzumelden." + }, + "confirm_sign_out_continue": { + "one": "Gerät abmelden", + "other": "Geräte abmelden" + }, + "confirm_sign_out_sso": { + "one": "Abmelden dieses Geräts durch Beweisen deiner Identität mit Single Sign-On bestätigen.", + "other": "Bestätige das Abmelden dieser Geräte, indem du dich erneut anmeldest." + }, + "current_session": "Aktuelle Sitzung", + "desktop_session": "Desktop-Sitzung", + "details_heading": "Sitzungsdetails", + "device_unverified_description": "Für bestmögliche Sicherheit und Zuverlässigkeit verifiziere diese Sitzung oder melde sie ab.", + "device_unverified_description_current": "Verifiziere deine aktuelle Sitzung für besonders sichere Kommunikation.", + "device_verified_description": "Diese Sitzung ist für sichere Kommunikation bereit.", + "device_verified_description_current": "Deine aktuelle Sitzung ist für sichere Kommunikation bereit.", + "error_pusher_state": "Konfigurieren des Push-Dienstes fehlgeschlagen", + "error_set_name": "Es konnte kein Sitzungsname gesetzt werden", + "filter_all": "Alle", + "filter_inactive": "Inaktiv", + "filter_inactive_description": "Seit %(inactiveAgeDays)s oder mehr Tagen inaktiv", + "filter_label": "Geräte filtern", + "filter_unverified_description": "Nicht bereit für sichere Kommunikation", + "filter_verified_description": "Bereit für sichere Kommunikation", + "hide_details": "Details ausblenden", + "inactive_days": "Seit %(inactiveAgeDays)s+ Tagen inaktiv", + "inactive_sessions": "Inaktive Sitzungen", + "inactive_sessions_explainer_1": "Inaktive Sitzungen sind jene, die du schon seit geraumer Zeit nicht mehr verwendet hast, aber nach wie vor Verschlüsselungs-Schlüssel erhalten.", + "inactive_sessions_explainer_2": "Das Entfernen inaktiver Sitzungen verbessert Sicherheit, Leistung und das Erkennen von dubiosen neuen Sitzungen.", + "inactive_sessions_list_description": "Erwäge, dich aus alten (%(inactiveAgeDays)s Tage oder mehr), nicht mehr verwendeten Sitzungen abzumelden.", + "ip": "IP-Adresse", + "last_activity": "Neueste Aktivität", + "mobile_session": "Mobil-Sitzung", + "n_sessions_selected": { + "one": "%(count)s Sitzung ausgewählt", + "other": "%(count)s Sitzungen ausgewählt" + }, + "no_inactive_sessions": "Keine inaktiven Sitzungen gefunden.", + "no_sessions": "Keine Sitzungen gefunden.", + "no_unverified_sessions": "Keine unverifizierten Sitzungen gefunden.", + "no_verified_sessions": "Keine verifizierten Sitzungen gefunden.", + "os": "Betriebssystem", + "other_sessions_heading": "Andere Sitzungen", + "push_heading": "Push-Benachrichtigungen", + "push_subheading": "Erhalte Push-Benachrichtigungen in dieser Sitzung.", + "push_toggle": "(De)Aktiviere Push-Benachrichtigungen in dieser Sitzung.", + "rename_form_caption": "Sei dir bitte bewusst, dass Sitzungsnamen auch für Personen, mit denen du kommunizierst, sichtbar sind.", + "rename_form_heading": "Sitzung umbenennen", + "rename_form_learn_more": "Sitzungen umbenennen", + "rename_form_learn_more_description_1": "Andere Benutzer in Direktnachrichten oder von dir betretenen Räumen können die volle Liste deiner Sitzungen sehen.", + "rename_form_learn_more_description_2": "Dies gibt ihnen die Gewissheit, dass sie auch wirklich mit dir kommunizieren, allerdings bedeutet es auch, dass sie die Sitzungsnamen sehen können, die du hier eingibst.", + "security_recommendations": "Sicherheitsempfehlungen", + "security_recommendations_description": "Verbessere deine Kontosicherheit, indem du diese Empfehlungen beherzigst.", + "session_id": "Sitzungs-ID", + "show_details": "Details anzeigen", + "sign_in_with_qr": "Mit QR-Code anmelden", + "sign_in_with_qr_button": "QR-Code anzeigen", + "sign_in_with_qr_description": "Du kannst dieses Gerät verwenden, um ein neues Gerät per QR-Code anzumelden. Dazu musst du den auf diesem Gerät angezeigten QR-Code mit deinem nicht angemeldeten Gerät einlesen.", + "sign_out": "Von dieser Sitzung abmelden", + "sign_out_all_other_sessions": "Von allen anderen Sitzungen abmelden (%(otherSessionsCount)s)", + "sign_out_confirm_description": { + "one": "Bist du sicher, dass du dich von %(count)s Sitzung abmelden möchtest?", + "other": "Bist du sicher, dass du dich von %(count)s Sitzungen abmelden möchtest?" + }, + "sign_out_n_sessions": { + "one": "Von %(count)s Sitzung abmelden", + "other": "Von %(count)s Sitzungen abmelden" + }, + "title": "Sitzungen", + "unknown_session": "Unbekannter Sitzungstyp", + "unverified_session": "Nicht verifizierte Sitzung", + "unverified_session_explainer_1": "Diese Sitzung unterstützt keine Verschlüsselung und kann deshalb nicht verifiziert werden.", + "unverified_session_explainer_2": "Du wirst dich mit dieser Sitzung nicht an Unterhaltungen in Räumen mit aktivierter Verschlüsselung beteiligen können.", + "unverified_session_explainer_3": "Aus Sicherheits- und Datenschutzgründen, wird die Nutzung von verschlüsselungsfähigen Matrix-Anwendungen empfohlen.", + "unverified_sessions": "Nicht verifizierte Sitzungen", + "unverified_sessions_explainer_1": "Nicht verifizierte Sitzungen sind jene, die mit deinen Daten angemeldet, aber nicht quer signiert wurden.", + "unverified_sessions_explainer_2": "Du solltest besonders sicher gehen, dass du diese Sitzungen kennst, da sie die unbefugte Nutzung deines Kontos durch Dritte bedeuten könnten.", + "unverified_sessions_list_description": "Für besonders sichere Kommunikation verifiziere deine Sitzungen oder melde dich von ihnen ab, falls du sie nicht mehr identifizieren kannst.", + "url": "Link", + "verified_session": "Verifizierte Sitzung", + "verified_sessions": "Verifizierte Sitzungen", + "verified_sessions_explainer_1": "Auf verifizierte Sitzungen kannst du überall mit deinem Konto zugreifen, wenn du deine Passphrase eingegeben oder deine Identität mit einer anderen Sitzung verifiziert hast.", + "verified_sessions_explainer_2": "Dies bedeutet, dass du alle Schlüssel zum Entsperren deiner verschlüsselten Nachrichten hast und anderen bestätigst, dieser Sitzung zu vertrauen.", + "verified_sessions_list_description": "Für bestmögliche Sicherheit, melde dich von allen Sitzungen ab, die du nicht erkennst oder benutzt.", + "verify_session": "Sitzung verifizieren", + "web_session": "Web-Sitzung" + }, + "show_avatar_changes": "Profilbildänderungen anzeigen", + "show_breadcrumbs": "Kürzlich besuchte Räume anzeigen", + "show_chat_effects": "Effekte bei manchen Emojis (z. B. Konfetti)", + "show_displayname_changes": "Änderungen von Anzeigenamen", + "show_join_leave": "Bei-/Austrittsnachrichten (Einladung/Entfernen/Bann nicht betroffen)", + "show_nsfw_content": "NSFW-Inhalte anzeigen", + "show_read_receipts": "Lesebestätigungen von anderen Benutzern anzeigen", + "show_redaction_placeholder": "Platzhalter für gelöschte Nachrichten", + "show_stickers_button": "Sticker-Schaltfläche", + "show_typing_notifications": "Tippbenachrichtigungen anzeigen", + "sidebar": { + "metaspaces_favourites_description": "Gruppiere all deine favorisierten Unterhaltungen an einem Ort.", + "metaspaces_home_all_rooms": "Alle Räume anzeigen", + "metaspaces_home_all_rooms_description": "Alle Räume auf der Startseite anzeigen, auch wenn sie Teil eines Space sind.", + "metaspaces_home_description": "Die Startseite bietet dir einen Überblick über deine Unterhaltungen.", + "metaspaces_orphans": "Räume außerhalb von Spaces", + "metaspaces_orphans_description": "Gruppiere all deine Räume, die nicht Teil eines Spaces sind, an einem Ort.", + "metaspaces_people_description": "Gruppiere all deine Direktnachrichten an einem Ort.", + "metaspaces_subsection": "Anzuzeigende Spaces", + "spaces_explainer": "Räume sind Möglichkeiten, Personen zu gruppieren. Neben den Räumen, in denen du dich befindest, kannst du auch einige vorgefertigte verwenden.", + "title": "Seitenleiste" + }, + "start_automatically": "Nach Systemstart automatisch starten", + "use_12_hour_format": "Uhrzeiten im 12-Stundenformat (z. B. 2:30 p. m.)", + "use_command_enter_send_message": "Benutze Betriebssystemtaste + Eingabe um eine Nachricht zu senden", + "use_command_f_search": "Nutze Command + F um den Verlauf zu durchsuchen", + "use_control_enter_send_message": "Nutze Strg + Enter, um Nachrichten zu senden", + "use_control_f_search": "Nutze Strg + F, um den Verlauf zu durchsuchen", + "voip": { + "allow_p2p": "Erlaube Peer-to-Peer-Verbindungen für Anrufe in Direktnachrichten", + "allow_p2p_description": "Wenn aktiviert, könnte die andere Person deine IP-Adresse sehen", + "audio_input_empty": "Keine Mikrofone erkannt", + "audio_output": "Audioausgabe", + "audio_output_empty": "Keine Audioausgabe erkannt", + "auto_gain_control": "Automatische Lautstärkeregelung", + "connection_section": "Verbindung", + "echo_cancellation": "Echounterdrückung", + "enable_fallback_ice_server": "Ersatz-Anrufassistenz-Server erlauben (%(server)s)", + "enable_fallback_ice_server_description": "Dieser wird nur verwendet, sollte dein Heim-Server keinen bieten. Deine IP-Adresse würde während eines Anrufs geteilt werden.", + "mirror_local_feed": "Lokalen Video-Feed spiegeln", + "missing_permissions_prompt": "Fehlende Medienberechtigungen. Verwende die nachfolgende Schaltfläche, um sie anzufordern.", + "noise_suppression": "Rauschreduzierung", + "request_permissions": "Medienberechtigungen anfordern", + "title": "Anrufe", + "video_input_empty": "Keine Webcam erkannt", + "video_section": "Videoeinstellungen", + "voice_agc": "Gleiche die Mikrofonlautstärke automatisch an", + "voice_processing": "Sprachverarbeitung", + "voice_section": "Spracheinstellungen" + }, + "warn_quit": "Vor Beenden warnen", + "warning": "WARNUNG: " + }, + "share": { + "link_title": "Link zum Raum", + "permalink_message": "Link zur ausgewählten Nachricht", + "permalink_most_recent": "Link zur aktuellsten Nachricht", + "title_message": "Raumnachricht teilen", + "title_room": "Raum teilen", + "title_user": "Teile Benutzer" + }, + "slash_command": { + "addwidget": "Fügt dem Raum ein individuelles Widget per URL hinzu", + "addwidget_iframe_missing_src": "iFrame hat kein src-Attribut", + "addwidget_invalid_protocol": "Bitte gib eine mit https:// oder http:// beginnende Widget-URL an", + "addwidget_missing_url": "Bitte gib eine Widget-URL oder einen Einbettungscode an", + "addwidget_no_permissions": "Du darfst in diesem Raum keine Widgets verändern.", + "ban": "Verbannt den Benutzer mit der angegebenen ID", + "category_actions": "Aktionen", + "category_admin": "Administrator", + "category_advanced": "Erweitert", + "category_effects": "Effekte", + "category_messages": "Nachrichten", + "category_other": "Sonstiges", + "command_error": "Fehler im Befehl", + "converttodm": "Wandelt den Raum in eine Direktnachricht um", + "converttoroom": "Wandelt die Direktnachricht in einen Raum um", + "could_not_find_room": "Konnte Raum nicht finden", + "deop": "Setzt das Berechtigungslevel beim Benutzer mit der angegebenen ID zurück", + "devtools": "Öffnet die Entwicklungswerkzeuge", + "discardsession": "Erzwingt, dass die aktuell ausgehende Gruppensitzung in einem verschlüsseltem Raum verworfen wird", + "error_invalid_rendering_type": "Befehlsfehler: Rendering-Typ kann nicht gefunden werden (%(renderingType)s)", + "error_invalid_room": "Eingabe fehlgeschlagen: Raum (%(roomId)s) nicht auffindbar", + "error_invalid_runfn": "Befehlsfehler: Slash-Befehl kann nicht verarbeitet werden.", + "error_invalid_user_in_room": "Kann Benutzer in Raum nicht finden", + "help": "Zeigt die Liste verfügbarer Befehle mit Verwendungen und Beschreibungen an", + "help_dialog_title": "Befehl Hilfe", + "holdcall": "Den aktuellen Anruf halten", + "html": "Sendet eine Nachricht als HTML, ohne sie als Markdown darzustellen", + "ignore": "Nutzer blockieren und dessen Nachrichten ausblenden", + "ignore_dialog_description": "%(userId)s ist jetzt blockiert", + "ignore_dialog_title": "Benutzer blockiert", + "invite": "Lädt den Benutzer mit der angegebenen ID in den aktuellen Raum ein", + "invite_3pid_needs_is_error": "Verwende einen Identitäts-Server, um per E-Mail einladen zu können. Lege einen in den Einstellungen fest.", + "invite_3pid_use_default_is_title": "Benutze einen Identitäts-Server", + "invite_3pid_use_default_is_title_description": "Benutze einen Identitäts-Server, um andere mittels E-Mail einzuladen. Klicke auf fortfahren, um den Standard-Identitäts-Server (%(defaultIdentityServerName)s) zu benutzen oder ändere ihn in den Einstellungen.", + "invite_failed": "Der Benutzer (%(user)s) wurde nicht in %(roomId)s eingeladen, aber das Einladungsprogramm meldete keinen Fehler", + "join": "Tritt dem Raum mit der angegebenen Adresse bei", + "jumptodate": "Zu einem Zeitpunkt im Verlauf springen", + "jumptodate_invalid_input": "Ups! Leider können wir das Datum \"%(inputDate)s\" nicht verstehen. Bitte gib es im Format JJJJ-MM-TT (Jahr-Monat-Tag) ein.", + "lenny": "Stellt ( ͡° ͜ʖ ͡°) einer Klartextnachricht voran", + "me": "Als Aktionen anzeigen", + "msg": "Sendet diesem Benutzer eine Nachricht", + "myavatar": "Ändert dein Profilbild in allen Räumen", + "myroomavatar": "Ändert dein Profilbild ausschließlich im aktuellen Raum", + "myroomnick": "Ändert den Anzeigenamen ausschließlich für den aktuellen Raum", + "nick": "Ändert deinen Anzeigenamen", + "no_active_call": "Kein aktiver Anruf in diesem Raum", + "op": "Berechtigungsstufe einers Benutzers setzen", + "part_unknown_alias": "Nicht erkannte Raumadresse: %(roomAlias)s", + "plain": "Sendet eine Nachricht als Klartext, ohne sie als Markdown darzustellen", + "query": "Öffnet eine Unterhaltung mit dieser Person", + "query_not_found_phone_number": "Dieser Telefonnummer kann keine Matrix-ID zugeordnet werden", + "rageshake": "Einen Fehlerbericht mit der Protokolldatei senden", + "rainbow": "Sendet die Nachricht in Regenbogenfarben", + "rainbowme": "Zeigt Aktionen in Regenbogenfarben", + "remakeolm": "Entwicklungsbefehl: Verwirft die aktuell ausgehende Gruppensitzung und setzt eine neue Olm-Sitzung auf", + "remove": "Entfernt den Benutzer mit der angegebenen ID aus diesem Raum", + "roomavatar": "Ändert das Icon vom Raum", + "roomname": "Setze einen Raumnamen", + "server_error": "Server-Fehler", + "server_error_detail": "Server ist nicht verfügbar, überlastet oder ein anderer Fehler ist aufgetreten.", + "shrug": "Stellt ¯\\_(ツ)_/¯ einer Klartextnachricht voran", + "spoiler": "Die gegebene Nachricht als Spoiler senden", + "tableflip": "Stellt (╯°□°)╯︵ ┻━┻ einer Klartextnachricht voran", + "topic": "Raumthema anzeigen oder ändern", + "topic_none": "Dieser Raum hat kein Thema.", + "topic_room_error": "Thema des Raums konnte nicht ermittelt werden: Raum kann nicht gefunden werden (%(roomId)s", + "tovirtual": "Zum virtuellen Raum dieses Raums wechseln, sofern vorhanden", + "tovirtual_not_found": "Kein virtueller Raum für diesen Raum", + "unban": "Entbannt den Benutzer mit der angegebenen ID", + "unflip": "Stellt ┬──┬ ノ( ゜-゜ノ) einer Klartextnachricht voran", + "unholdcall": "Beendet das Halten des Anrufs", + "unignore": "Benutzer nicht mehr ignorieren und neue Nachrichten wieder anzeigen", + "unignore_dialog_description": "%(userId)s wird nicht mehr blockiert", + "unignore_dialog_title": "Benutzer nicht mehr blockiert", + "unknown_command": "Unbekannter Befehl", + "unknown_command_button": "Als Nachricht senden", + "unknown_command_detail": "Unbekannter Befehl: %(commandText)s", + "unknown_command_help": "Du kannst /help benutzen, um alle verfügbaren Befehle aufzulisten. Willst du es stattdessen als Nachricht senden?", + "unknown_command_hint": "Hinweis: Beginne deine Nachricht mit //, um sie mit einem Schrägstrich zu beginnen.", + "upgraderoom": "Aktualisiert den Raum auf eine neue Version", + "upgraderoom_permission_error": "Du hast nicht die erforderlichen Berechtigungen, diesen Befehl zu verwenden.", + "usage": "Verwendung", + "verify": "Verifiziert Benutzer, Sitzung und öffentlichen Schlüsselpaare", + "verify_mismatch": "ACHTUNG: SCHLÜSSELVERIFIZIERUNG FEHLGESCHLAGEN! Der Signierschlüssel für %(userId)s und Sitzung %(deviceId)s ist \"%(fprint)s\", was nicht mit dem bereitgestellten Schlüssel \"%(fingerprint)s\" übereinstimmt. Das könnte bedeuten, dass deine Kommunikation abgehört wird!", + "verify_nop": "Sitzung bereits verifiziert!", + "verify_nop_warning_mismatch": "ACHTUNG: Sitzung bereits verifiziert, aber die Schlüssel PASSEN NICHT!", + "verify_success_description": "Dein bereitgestellter Signaturschlüssel passt zum von der Sitzung %(deviceId)s von %(userId)s empfangendem Schlüssel. Sitzung wurde als verifiziert markiert.", + "verify_success_title": "Verifizierter Schlüssel", + "verify_unknown_pair": "Unbekanntes Paar (Nutzer, Sitzung): (%(userId)s, %(deviceId)s)", + "view": "Raum mit angegebener Adresse betrachten", + "whois": "Zeigt Informationen über Benutzer" + }, + "space": { + "add_existing_room_space": { + "create": "Willst du einen neuen Raum hinzufügen?", + "create_prompt": "Neuen Raum erstellen", + "dm_heading": "Direktnachrichten", + "error_heading": "Nicht alle Ausgewählten konnten hinzugefügt werden", + "progress_text": { + "one": "Raum hinzufügen …", + "other": "Räume hinzufügen … (%(progress)s von %(count)s)" + }, + "space_dropdown_label": "Space-Auswahl", + "space_dropdown_title": "Bestehende Räume hinzufügen", + "subspace_moved_note": "Das Hinzufügen von Spaces ist umgezogen." + }, + "add_existing_subspace": { + "create_button": "Neuen Space erstellen", + "create_prompt": "Willst du stattdessen einen neuen Space hinzufügen?", + "filter_placeholder": "Spaces suchen", + "space_dropdown_title": "Existierenden Space hinzufügen" + }, + "context_menu": { + "devtools_open_timeline": "Nachrichtenverlauf anzeigen (Entwicklungswerkzeuge)", + "explore": "Räume erkunden", + "home": "Space-Übersicht", + "manage_and_explore": "Räume erkunden und verwalten", + "options": "Space-Optionen" + }, + "failed_load_rooms": "Fehler beim Laden der Raumliste.", + "failed_remove_rooms": "Einige Räume konnten nicht entfernt werden. Versuche es bitte später nocheinmal", + "incompatible_server_hierarchy": "Dein Home-Server unterstützt hierarchische Spaces nicht.", + "invite": "Personen einladen", + "invite_description": "Personen mit E-Mail oder Benutzernamen einladen", + "invite_link": "Einladungslink teilen", + "invite_this_space": "In diesen Space einladen", + "joining_space": "Trete bei", + "landing_welcome": "Willkommen bei ", + "leave_dialog_action": "Space verlassen", + "leave_dialog_description": "Du bist dabei, zu verlassen.", + "leave_dialog_only_admin_room_warning": "Du bist der einzige Admin einiger Räume oder Spaces, die du verlassen willst. Dadurch werden diese keine Admins mehr haben.", + "leave_dialog_only_admin_warning": "Du bist der letzte Admin in diesem Space. Wenn du ihn jetzt verlässt, hat niemand mehr die Kontrolle über ihn.", + "leave_dialog_option_all": "Alle Räume verlassen", + "leave_dialog_option_intro": "Willst du die Räume in diesem Space verlassen?", + "leave_dialog_option_none": "Keine Räume und Subspaces verlassen", + "leave_dialog_option_specific": "Zu verlassende Räume auswählen", + "leave_dialog_public_rejoin_warning": "Das Betreten wird dir ohne erneute Einladung nicht möglich sein.", + "leave_dialog_title": "%(spaceName)s verlassen", + "mark_suggested": "Als vorgeschlagen markieren", + "no_search_result_hint": "Versuche es mit etwas anderem oder prüfe auf Tippfehler.", + "preferences": { + "sections_section": "Anzuzeigende Bereiche", + "show_people_in_space": "Gruppiere Unterhaltungen mit Mitgliedern dieses Spaces. Diese Option zu deaktivieren, wird die Unterhaltungen aus %(spaceName)s ausblenden." + }, + "room_filter_placeholder": "Räume suchen", + "search_children": "%(spaceName)s durchsuchen", + "search_placeholder": "Nach Name und Beschreibung filtern", + "select_room_below": "Wähle vorher einen Raum aus", + "share_public": "Teile deinen öffentlichen Space mit der Welt", + "suggested": "Vorgeschlagen", + "suggested_tooltip": "Dieser Raum wird vorgeschlagen", + "title_when_query_available": "Ergebnisse", + "title_when_query_unavailable": "Räume und Spaces", + "unmark_suggested": "Als nicht vorgeschlagen markieren", + "user_lacks_permission": "Du hast dazu keine Berechtigung" + }, + "space_settings": { + "title": "Einstellungen - %(spaceName)s" + }, + "spaces": { + "error_no_permission_add_room": "Du hast keine Berechtigung, Räume zu diesem Space hinzuzufügen", + "error_no_permission_add_space": "Du hast keine Berechtigung, Spaces zu diesem Space hinzuzufügen", + "error_no_permission_create_room": "Du hast keine Berechtigung, neue Räume in diesem Space zu erstellen", + "error_no_permission_invite": "Du hast keine Berechtigung, Personen in diesen Space einzuladen" + }, + "spotlight": { + "public_rooms": { + "network_dropdown_add_dialog_description": "Gib den Namen des Servers an, den du erkunden möchtest.", + "network_dropdown_add_dialog_placeholder": "Server-Name", + "network_dropdown_add_dialog_title": "Einen Server hinzufügen", + "network_dropdown_add_server_option": "Neuen Server hinzufügen …", + "network_dropdown_available_invalid": "Kann diesen Server oder seine Raumliste nicht finden", + "network_dropdown_available_invalid_forbidden": "Du darfst diese Raumliste nicht sehen", + "network_dropdown_available_valid": "Das sieht gut aus", + "network_dropdown_remove_server_adornment": "Server „%(roomServer)s“ entfernen", + "network_dropdown_required_invalid": "Gib einen Server-Namen ein", + "network_dropdown_selected_label": "Zeige: Matrix-Räume", + "network_dropdown_selected_label_instance": "%(instance)s Räume zeigen (%(server)s)", + "network_dropdown_your_server_description": "Dein Server" + } + }, + "spotlight_dialog": { + "cant_find_person_helpful_hint": "Falls du nicht findest wen du suchst, send ihnen deinen Einladungslink.", + "cant_find_room_helpful_hint": "Falls du den Raum nicht findest, frag nach einer Einladung oder erstelle einen neuen Raum.", + "copy_link_text": "Einladungslink kopieren", + "count_of_members": { + "one": "%(count)s Mitglied", + "other": "%(count)s Mitglieder" + }, + "create_new_room_button": "Neuer Raum", + "failed_querying_public_rooms": "Abfrage öffentlicher Räume fehlgeschlagen", + "failed_querying_public_spaces": "Abfrage der öffentlichen Spaces fehlgeschlagen", + "group_chat_section_title": "Andere Optionen", + "heading_with_query": "Nutze \"%(query)s\" zum Suchen", + "heading_without_query": "Suche nach", + "join_button_text": "%(roomAddress)s betreten", + "keyboard_scroll_hint": "Benutze zum scrollen", + "message_search_section_title": "Andere Suchen", + "other_rooms_in_space": "Andere Räume in %(spaceName)s", + "public_rooms_label": "Öffentliche Räume", + "public_spaces_label": "Öffentliche Spaces", + "recent_searches_section_title": "Kürzliche Gesucht", + "recently_viewed_section_title": "Kürzlich besucht", + "remove_filter": "Entferne Suchfilter für %(filter)s", + "result_may_be_hidden_privacy_warning": "Einige Vorschläge könnten aus Gründen der Privatsphäre ausgeblendet sein", + "result_may_be_hidden_warning": "Einige Ergebnisse können ausgeblendet sein", + "search_dialog": "Suchdialog", + "search_messages_hint": "Wenn du Nachrichten durchsuchen willst, klicke auf das Icon oberhalb des Raumes", + "spaces_title": "Spaces, in denen du Mitglied bist", + "start_group_chat_button": "Gruppenunterhaltung beginnen" + }, + "stickers": { + "empty": "Keine Sticker-Pakete aktiviert", + "empty_add_prompt": "Jetzt hinzufügen" + }, + "terms": { + "column_document": "Dokument", + "column_service": "Dienst", + "column_summary": "Zusammenfassung", + "identity_server_no_terms_description_1": "Diese Handlung erfordert es, auf den Standard-Identitäts-Server zuzugreifen, um eine E-Mail-Adresse oder Telefonnummer zu validieren, aber der Server hat keine Nutzungsbedingungen.", + "identity_server_no_terms_description_2": "Fahre nur fort, wenn du den Server-Betreibenden vertraust.", + "identity_server_no_terms_title": "Der Identitäts-Server hat keine Nutzungsbedingungen", + "inline_intro_text": "Akzeptiere , um fortzufahren:", + "integration_manager": "Nutze Bots, Brücken, Widgets und Sticker-Pakete", + "intro": "Um fortzufahren, musst du die Bedingungen dieses Dienstes akzeptieren.", + "summary_identity_server_1": "Finde Andere per Telefon oder E-Mail", + "summary_identity_server_2": "Sei per Telefon oder E-Mail auffindbar", + "tac_button": "Geschäftsbedingungen anzeigen", + "tac_description": "Um den %(homeserverDomain)s-Heim-Server weiterzuverwenden, musst du die Nutzungsbedingungen sichten und akzeptieren.", + "tac_title": "Geschäftsbedingungen", + "tos": "Nutzungsbedingungen" + }, + "theme": { + "light_high_contrast": "Hell kontrastreich", + "match_system": "An System anpassen" + }, + "thread_view_back_action_label": "Zurück zum Thread", + "threads": { + "all_threads": "Alle Threads", + "all_threads_description": "Alle Threads des Raums anzeigen", + "count_of_reply": { + "one": "%(count)s Antwort", + "other": "%(count)s Antworten" + }, + "error_start_thread_existing_relation": "Du kannst keinen Thread in einem Thread starten", + "my_threads": "Meine Threads", + "my_threads_description": "Zeigt alle Threads, an denen du teilgenommen hast", + "open_thread": "Thread anzeigen", + "show_thread_filter": "Zeige:" + }, + "time": { + "about_day_ago": "vor etwa einem Tag", + "about_hour_ago": "vor etwa einer Stunde", + "about_minute_ago": "vor etwa einer Minute", + "date_at_time": "%(date)s um %(time)s", + "few_seconds_ago": "vor ein paar Sekunden", + "hours_minutes_seconds_left": "%(hours)s h %(minutes)s m %(seconds)s s verbleibend", + "in_about_day": "in etwa einem Tag", + "in_about_hour": "in etwa einer Stunde", + "in_about_minute": "in etwa einer Minute", + "in_few_seconds": "in ein paar Sekunden", + "in_n_days": "in %(num)s Tagen", + "in_n_hours": "in %(num)s Stunden", + "in_n_minutes": "In etwa %(num)s Minuten", + "left": "%(timeRemaining)s übrig", + "minutes_seconds_left": "%(minutes)s m %(seconds)s s verbleibend", + "n_days_ago": "vor %(num)s Tagen", + "n_hours_ago": "vor %(num)s Stunden", + "n_minutes_ago": "vor %(num)s Minuten", + "seconds_left": "%(seconds)s verbleibend", + "short_days": "%(value)sd", + "short_days_hours_minutes_seconds": "%(days)s d %(hours)s h %(minutes)s m %(seconds)s s", + "short_hours": "%(value)sh", + "short_hours_minutes_seconds": "%(hours)s h %(minutes)s m %(seconds)s s", + "short_minutes": "%(value)smin", + "short_minutes_seconds": "%(minutes)s m %(seconds)s s", + "short_seconds": "%(value)ss" + }, + "timeline": { + "context_menu": { + "collapse_reply_thread": "Antworten verbergen", + "external_url": "Quell-URL", + "open_in_osm": "In OpenStreetMap öffnen", + "report": "Melden", + "resent_unsent_reactions": "%(unsentCount)s Reaktion(en) erneut senden", + "show_url_preview": "Vorschau zeigen", + "view_related_event": "Zugehöriges Ereignis anzeigen", + "view_source": "Rohdaten anzeigen" + }, + "creation_summary_dm": "%(creator)s hat diese Direktnachricht erstellt.", + "creation_summary_room": "%(creator)s hat den Raum erstellt und konfiguriert.", + "disambiguated_profile": "%(displayName)s (%(matrixId)s)", + "download_action_decrypting": "Entschlüsseln", + "download_action_downloading": "Herunterladen", + "e2e_state": "Status der Ende zu Ende Verschlüssellung", + "edits": { + "tooltip_label": "Am %(date)s geändert. Klicke, um Änderungen anzuzeigen.", + "tooltip_sub": "Klicke, um Änderungen anzuzeigen", + "tooltip_title": "Geändert am %(date)s" + }, + "error_no_renderer": "Dieses Ereignis konnte nicht angezeigt werden", + "error_rendering_message": "Diese Nachricht kann nicht geladen werden", + "historical_messages_unavailable": "Du kannst keine älteren Nachrichten lesen", + "in_room_name": " in %(room)s", + "io.element.voice_broadcast_info": { + "user": "%(senderName)s beendete eine Sprachübertragung", + "you": "Du hast eine Sprachübertragung beendet" + }, + "io.element.widgets.layout": "%(senderName)s hat das Raumlayout geändert", + "late_event_separator": "Ursprünglich gesendet %(dateTime)s", + "load_error": { + "no_permission": "Dir fehlt die Berechtigung, diese alten Nachrichten zu lesen.", + "title": "Laden der Verlaufsposition fehlgeschlagen", + "unable_to_find": "Das Laden einer bestimmten Stelle im Verlauf des Raumes zu laden ist gescheitert, da sie nicht gefunden wurde." + }, + "m.audio": { + "error_downloading_audio": "Fehler beim Herunterladen der Audiodatei", + "error_processing_audio": "Fehler beim Verarbeiten der Audionachricht", + "error_processing_voice_message": "Fehler beim Verarbeiten der Sprachnachricht", + "unnamed_audio": "Unbenannte Audiodatei" + }, + "m.beacon_info": { + "view_live_location": "Echtzeit-Standort anzeigen" + }, + "m.call": { + "video_call_ended": "Videoanruf beendet", + "video_call_started": "Ein Videoanruf hat in %(roomName)s begonnen.", + "video_call_started_text": "%(name)s hat einen Videoanruf begonnen", + "video_call_started_unsupported": "Ein Videoanruf hat in %(roomName)s begonnen. (Von diesem Browser nicht unterstützt)" + }, + "m.call.hangup": { + "dm": "Anruf beendet" + }, + "m.call.invite": { + "answered_elsewhere": "Anderswo beantwortet", + "call_back_prompt": "Zurückrufen", + "declined": "Anruf abgelehnt", + "failed_connect_media": "Konnte Medien nicht verbinden", + "failed_connection": "Verbindung fehlgeschlagen", + "failed_opponent_media": "Mikrofon oder Kamera des Gesprächspartners konnte nicht gestartet werden", + "missed_call": "Verpasster Anruf", + "no_answer": "Keine Antwort", + "unknown_error": "Ein unbekannter Fehler ist aufgetreten", + "unknown_failure": "Unbekannter Fehler: %(reason)s", + "unknown_state": "Dieser Anruf ist in einem unbekannten Zustand!", + "video_call": "%(senderName)s hat einen Videoanruf getätigt.", + "video_call_unsupported": "%(senderName)s hat einen Videoanruf getätigt. (Nicht von diesem Browser unterstützt)", + "voice_call": "%(senderName)s hat einen Sprachanruf getätigt.", + "voice_call_unsupported": "%(senderName)s hat einen Sprachanruf getätigt. (Nicht von diesem Browser unterstützt)" + }, + "m.file": { + "decrypt_label": "%(text)s entschlüsseln", + "download_label": "%(text)s herunterladen", + "error_decrypting": "Fehler beim Entschlüsseln des Anhangs", + "error_invalid": "Ungültige Datei%(extra)s" + }, + "m.image": { + "error": "Kann Bild aufgrund eines Fehlers nicht anzeigen", + "error_decrypting": "Entschlüsselung des Bilds fehlgeschlagen", + "error_downloading": "Fehler beim Herunterladen des Bildes", + "sent": "%(senderDisplayName)s hat ein Bild gesendet.", + "show_image": "Bild anzeigen" + }, + "m.key.verification.request": { + "user_wants_to_verify": "%(name)s will eine Verifizierung", + "you_started": "Du hast eine Verifizierungsanfrage gesendet" + }, + "m.location": { + "full": "%(senderName)s hat seine Position geteilt", + "location": "Hat einen Standort geteilt: ", + "self_location": "Hat den Standort geteilt: " + }, + "m.poll": { + "count_of_votes": { + "one": "%(count)s Stimme", + "other": "%(count)s Stimmen" + } + }, + "m.poll.end": { + "ended": "Eine Umfrage beendet", + "sender_ended": "%(senderName)s hat eine Abstimmung beendet" + }, + "m.poll.start": "%(senderName)s hat eine Umfrage begonnen – %(pollQuestion)s", + "m.room.avatar": { + "changed": "%(senderDisplayName)s hat das Raumbild geändert.", + "changed_img": "%(senderDisplayName)s hat das Raumbild zu geändert", + "lightbox_title": "%(senderDisplayName)s hat das Raumbild von %(roomName)s geändert", + "removed": "%(senderDisplayName)s hat das Raumbild entfernt." + }, + "m.room.canonical_alias": { + "alt_added": { + "one": "%(senderName)s hat die alternative Adresse %(addresses)s für diesen Raum hinzugefügt.", + "other": "%(senderName)s hat die alternative Adresse %(addresses)s für diesen Raum hinzugefügt." + }, + "alt_removed": { + "other": "%(senderName)s hat die alternativen Adressen %(addresses)s für diesen Raum entfernt.", + "one": "%(senderName)s hat die alternative Adresse %(addresses)s für diesen Raum entfernt." + }, + "changed": "%(senderName)s hat die Adresse für diesen Raum geändert.", + "changed_alternative": "%(senderName)s hat die alternative Adresse für diesen Raum geändert.", + "changed_main_and_alternative": "%(senderName)s hat die Haupt- und Alternativadressen für diesen Raum geändert.", + "removed": "%(senderName)s hat die Hauptadresse von diesem Raum entfernt.", + "set": "%(senderName)s hat als Hauptadresse des Raums %(address)s festgelegt." + }, + "m.room.create": { + "continuation": "Dieser Raum ist eine Fortsetzung einer anderen Konversation.", + "see_older_messages": "Klicke hier, um ältere Nachrichten zu sehen.", + "unknown_predecessor": "Konnte die alte Version dieses Raumes nicht finden (Raum-ID: %(roomId)s) und uns wurde „via_servers“ nicht mitgeteilt, um danach zu suchen.", + "unknown_predecessor_guess_server": "Konnte die alte Version dieses Raumes nicht finden (Raum-ID: %(roomId)s) und uns wurde „via_servers“ nicht mitgeteilt, um danach zu suchen. Es ist möglich, dass das Erraten des Servers basierend auf der Raum-ID funktioniert. Wenn du dies probieren möchtest, klicke auf folgenden Link:" + }, + "m.room.encryption": { + "disable_attempt": "Versuch, die Verschlüsselung zu deaktivieren, wurde ignoriert", + "disabled": "Verschlüsselung nicht aktiviert", + "enabled": "Nachrichten in diesem Raum sind Ende-zu-Ende-verschlüsselt. Wenn Personen beitreten, kannst du sie in ihrem Profil verifizieren, indem du auf deren Profilbild klickst.", + "enabled_dm": "Nachrichten hier sind Ende-zu-Ende-verschlüsselt. Verifiziere %(displayName)s in deren Profil – klicke auf deren Profilbild.", + "enabled_local": "Nachrichten in dieser Unterhaltung werden Ende-zu-Ende-verschlüsselt.", + "parameters_changed": "Einige Verschlüsselungsoptionen wurden geändert.", + "unsupported": "Die von diesem Raum verwendete Verschlüsselung wird nicht unterstützt." + }, + "m.room.guest_access": { + "can_join": "%(senderDisplayName)s erlaubte Gäste diesem Raum beizutreten.", + "forbidden": "%(senderDisplayName)s hat Gästen verboten, diesem Raum beizutreten.", + "unknown": "%(senderDisplayName)s änderte den Gastzutritt auf „%(rule)s“" + }, + "m.room.history_visibility": { + "invited": "%(senderName)s hat den Verlauf für alle Raummitglieder ab ihrer Einladung sichtbar gemacht.", + "joined": "%(senderName)s hat den Verlauf für alle Raummitglieder ab ihrem Betreten sichtbar gemacht.", + "shared": "%(senderName)s hat den zukünftigen Verlauf für alle Raummitglieder sichtbar gemacht.", + "unknown": "%(senderName)s hat den zukünftigen Verlauf für Unbekannte sichtbar gemacht (%(visibility)s).", + "world_readable": "%(senderName)s hat den zukünftigen Verlauf für alle sichtbar gemacht." + }, + "m.room.join_rules": { + "invite": "%(senderDisplayName)s hat den Raum auf eingeladene Benutzer beschränkt.", + "knock": "%(senderDisplayName)s hat die Zutrittsregel auf Beitrittsanfragen geändert.", + "public": "%(senderDisplayName)s hat den Raum für jeden, der den Link kennt, öffentlich gemacht.", + "restricted": "%(senderDisplayName)s hat geändert, wer diesen Raum betreten darf.", + "restricted_settings": "%(senderDisplayName)s hat geändert, wer diesen Raum betreten darf. Einstellungen anzeigen.", + "unknown": "%(senderDisplayName)s hat die Zutrittsregel auf „%(rule)s“ geändert" + }, + "m.room.member": { + "accepted_3pid_invite": "%(targetName)s hat die Einladung für %(displayName)s akzeptiert", + "accepted_invite": "%(targetName)s hat die Einladung akzeptiert", + "ban": "%(senderName)s hat %(targetName)s verbannt", + "ban_reason": "%(senderName)s hat %(targetName)s verbannt: %(reason)s", + "change_avatar": "%(senderName)s hat das Profilbild geändert", + "change_name": "%(oldDisplayName)s hat den Anzeigenamen zu %(displayName)s geändert", + "change_name_avatar": "%(oldDisplayName)s hat den Anzeigenamen und das Profilbild geändert", + "invite": "%(senderName)s hat %(targetName)s eingeladen", + "join": "%(targetName)s hat den Raum betreten", + "kick": "%(senderName)s hat %(targetName)s entfernt", + "kick_reason": "%(senderName)s hat %(targetName)s entfernt: %(reason)s", + "left": "%(targetName)s hat den Raum verlassen", + "left_reason": "%(targetName)s hat den Raum verlassen: %(reason)s", + "no_change": "%(senderName)s hat keine Änderungen gemacht", + "reject_invite": "%(targetName)s hat die Einladung abgelehnt", + "remove_avatar": "%(senderName)s hat das Profilbild entfernt", + "remove_name": "%(senderName)s hat den alten Anzeigenamen %(oldDisplayName)s entfernt", + "set_avatar": "%(senderName)s hat das Profilbild gesetzt", + "set_name": "%(senderName)s hat den Anzeigenamen zu %(displayName)s geändert", + "unban": "%(senderName)s hat %(targetName)s entbannt", + "withdrew_invite": "%(senderName)s hat die Einladung für %(targetName)s zurückgezogen", + "withdrew_invite_reason": "%(senderName)s hat die Einladung für %(targetName)s zurückgezogen: %(reason)s" + }, + "m.room.name": { + "change": "%(senderDisplayName)s hat den Raumnamen von %(oldRoomName)s zu %(newRoomName)s geändert.", + "remove": "%(senderDisplayName)s hat den Raumnamen entfernt.", + "set": "%(senderDisplayName)s hat den Raumnamen geändert zu %(roomName)s." + }, + "m.room.pinned_events": { + "changed": "%(senderName)s hat die angehefteten Nachrichten für diesen Raum geändert.", + "changed_link": "%(senderName)s hat die angehefteten Nachrichten geändert.", + "pinned": "%(senderName)s hat eine Nachricht angeheftet. Alle angehefteten Nachrichten anzeigen.", + "pinned_link": "%(senderName)s hat eine Nachricht angeheftet. Alle angehefteten Nachrichten anzeigen.", + "unpinned": "%(senderName)s hat eine Nachricht losgelöst. Alle angepinnten Nachrichten anzeigen.", + "unpinned_link": "%(senderName)s hat eine Nachricht losgeheftet. Alle angehefteten Nachrichten anzeigen." + }, + "m.room.power_levels": { + "changed": "%(senderName)s hat das Berechtigungslevel von %(powerLevelDiffText)s geändert.", + "user_from_to": "%(userId)s von %(fromPowerLevel)s zu %(toPowerLevel)s" + }, + "m.room.server_acl": { + "all_servers_banned": "🎉 Alle Server sind von der Teilnahme ausgeschlossen! Dieser Raum kann nicht mehr genutzt werden.", + "changed": "%(senderDisplayName)s hat die Server-ACLs für diesen Raum geändert.", + "set": "%(senderDisplayName)s hat die Server-ACLs für diesen Raum gesetzt." + }, + "m.room.third_party_invite": { + "revoked": "%(senderName)s hat die Einladung für %(targetDisplayName)s zurückgezogen.", + "sent": "%(senderName)s hat %(targetDisplayName)s in diesen Raum eingeladen." + }, + "m.room.tombstone": "%(senderDisplayName)s hat diesen Raum aktualisiert.", + "m.room.topic": "%(senderDisplayName)s hat das Thema geändert in \"%(topic)s\".", + "m.sticker": "%(senderDisplayName)s hat einen Sticker gesendet.", + "m.video": { + "error_decrypting": "Videoentschlüsselung fehlgeschlagen" + }, + "m.widget": { + "added": "%(senderName)s hat das Widget %(widgetName)s hinzugefügt", + "jitsi_ended": "Videokonferenz von %(senderName)s beendet", + "jitsi_join_right_prompt": "An der Konferenz kannst du über die rechte Seitenleiste (Rauminfo) teilnehmen", + "jitsi_join_top_prompt": "An Konferenz oberhalb des Verlaufs teilnehmen", + "jitsi_started": "Videokonferenz von %(senderName)s gestartet", + "jitsi_updated": "Videokonferenz wurde von %(senderName)s aktualisiert", + "modified": "Das Widget „%(widgetName)s“ wurde von %(senderName)s bearbeitet", + "removed": "%(senderName)s hat das Widget %(widgetName)s entfernt" + }, + "mab": { + "collapse_reply_chain": "Zitate einklappen", + "copy_link_thread": "Link zu Thread kopieren", + "expand_reply_chain": "Zitate ausklappen", + "label": "Nachrichtenaktionen", + "view_in_room": "Im Raum anzeigen" + }, + "message_timestamp_received_at": "Empfangen am: %(dateTime)s", + "message_timestamp_sent_at": "Gesendet am: %(dateTime)s", + "mjolnir": { + "changed_rule_glob": "%(senderName)s aktualisierte eine Ausschlussregel von %(oldGlob)s nach %(newGlob)s wegen %(reason)s", + "changed_rule_rooms": "%(senderName)s ändert eine Ausschlussregel für Räume von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s", + "changed_rule_servers": "%(senderName)s änderte eine Ausschlussregel für Server von %(oldGlob)s nach %(newGlob)s wegen %(reason)s", + "changed_rule_users": "%(senderName)s ändert eine Ausschlussregel von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s", + "created_rule": "%(senderName)s erstellte eine Ausschlussregel, die aufgrund von %(reason)s %(glob)s entspricht", + "created_rule_rooms": "%(senderName)s erstellt eine Ausschlussregel für Räume, die %(glob)s aufgrund von %(reason)s entspricht", + "created_rule_servers": "%(senderName)s erstellte eine Ausschlussregel für Server, die aufgrund von %(reason)s %(glob)s entsprechen", + "created_rule_users": "%(senderName)s hat eine Ausschlussregel für Nutzer erstellt, die aufgrund %(reason)s %(glob)s entsprechen", + "message_hidden": "Du blockierst diesen Benutzer, deshalb werden seine Nachrichten nicht angezeigt. Trotzdem anzeigen.", + "removed_rule": "%(senderName)s entfernte die Ausschlussregel, die %(glob)s entspricht", + "removed_rule_rooms": "%(senderName)s entfernte die Ausschlussregel für Räume, die %(glob)s entsprechen", + "removed_rule_servers": "%(senderName)s entfernte die Ausschlussregel für Server, die %(glob)s entsprechen", + "removed_rule_users": "%(senderName)s entfernte die Ausschlussregel für Benutzer, die %(glob)s entsprechen", + "updated_invalid_rule": "%(senderName)s aktualisierte eine ungültige Ausschlussregel", + "updated_rule": "%(senderName)s aktualisierte eine Ausschlussregel, die wegen %(reason)s %(glob)s entspricht", + "updated_rule_rooms": "%(senderName)s aktualisierte die Ausschlussregel für Räume, die aufgrund von %(reason)s %(glob)s entsprechen", + "updated_rule_servers": "%(senderName)s aktualisierte die Ausschlussregel für Server, die aufgrund von %(reason)s %(glob)s entsprechen", + "updated_rule_users": "%(senderName)s aktualisierte die Ausschlussregel für Benutzer, die aufgrund von %(reason)s %(glob)s entsprechen" + }, + "no_permission_messages_before_invite": "Du kannst keine Nachrichten lesen, die gesendet wurden, bevor du eingeladen wurdest.", + "no_permission_messages_before_join": "Du kannst keine Nachrichten lesen, die gesendet wurden, bevor du beigetreten bist.", + "pending_moderation": "Nachricht erwartet Moderation", + "pending_moderation_reason": "Nachricht erwartet Moderation: %(reason)s", + "reactions": { + "add_reaction_prompt": "Reaktion hinzufügen", + "custom_reaction_fallback_label": "Benutzerdefinierte Reaktion", + "label": "%(reactors)s hat mit %(content)s reagiert" + }, + "read_receipt_title": { + "one": "Von %(count)s Person gesehen", + "other": "Von %(count)s Personen gesehen" + }, + "read_receipts_label": "Lesebestätigungen", + "redacted": { + "tooltip": "Nachricht am %(date)s gelöscht" + }, + "redaction": "Nachricht von %(name)s gelöscht", + "reply": { + "error_loading": "Das Ereignis, auf das geantwortet wurde, kann nicht geladen werden, da es entweder nicht existiert oder du keine Berechtigung zum Betrachten hast.", + "in_reply_to": "Als Antwort auf ", + "in_reply_to_for_export": "Antwort auf diese Nachricht" + }, + "scalar_starter_link": { + "dialog_description": "Um dein Konto für die Verwendung von %(integrationsUrl)s zu authentifizieren, wirst du jetzt auf die Website eines Drittanbieters weitergeleitet. Möchtest du fortfahren?", + "dialog_title": "Eine Integration hinzufügen" + }, + "self_redaction": "Nachricht gelöscht", + "send_state_encrypting": "Verschlüssele deine Nachricht …", + "send_state_failed": "Fehler beim Senden", + "send_state_sending": "Sende deine Nachricht …", + "send_state_sent": "Die Nachricht wurde gesendet", + "summary": { + "banned": { + "other": "wurde %(count)s-mal verbannt", + "one": "wurde verbannt" + }, + "banned_multiple": { + "other": "wurden %(count)s-mal verbannt", + "one": "wurden verbannt" + }, + "changed_avatar": { + "other": "%(oneUser)s hat das Profilbild %(count)s-mal geändert", + "one": "%(oneUser)shat das Profilbild geändert" + }, + "changed_avatar_multiple": { + "other": "%(severalUsers)s haben das Profilbild %(count)s-mal geändert", + "one": "%(severalUsers)shaben ihr Profilbild geändert" + }, + "changed_name": { + "other": "%(oneUser)shat %(count)s-mal den Namen geändert", + "one": "%(oneUser)shat den Namen geändert" + }, + "changed_name_multiple": { + "other": "%(severalUsers)s haben %(count)s-mal ihren Namen geändert", + "one": "%(severalUsers)shaben ihren Namen geändert" + }, + "format": "%(nameList)s %(transitionList)s", + "hidden_event": { + "one": "%(oneUser)s hat eine versteckte Nachricht gesendet", + "other": "%(oneUser)s hat %(count)s versteckte Nachrichten gesendet" + }, + "hidden_event_multiple": { + "one": "%(severalUsers)s hat eine versteckte Nachricht gesendet", + "other": "%(severalUsers)s haben %(count)s versteckte Nachrichten gesendet" + }, + "invite_withdrawn": { + "other": "%(oneUser)swurde die Einladung %(count)s-mal wieder entzogen", + "one": "%(oneUser)swurde die Einladung wieder entzogen" + }, + "invite_withdrawn_multiple": { + "other": "%(severalUsers)swurde die Einladung %(count)s-mal wieder entzogen", + "one": "%(severalUsers)swurde die Einladung wieder entzogen" + }, + "invited": { + "other": "wurde %(count)s-mal eingeladen", + "one": "wurde eingeladen" + }, + "invited_multiple": { + "other": "wurden %(count)s-mal eingeladen", + "one": "wurden eingeladen" + }, + "joined": { + "other": "%(oneUser)shat den Raum %(count)s-mal betreten", + "one": "%(oneUser)shat den Raum betreten" + }, + "joined_and_left": { + "other": "%(oneUser)shat den Raum %(count)s-mal betreten und wieder verlassen", + "one": "%(oneUser)shat den Raum betreten und wieder verlassen" + }, + "joined_and_left_multiple": { + "other": "%(severalUsers)shaben %(count)s-mal den Raum betreten und verlassen", + "one": "%(severalUsers)shaben den Raum betreten und wieder verlassen" + }, + "joined_multiple": { + "other": "%(severalUsers)shaben den Raum %(count)s-mal betreten", + "one": "%(severalUsers)shaben den Raum betreten" + }, + "kicked": { + "other": "wurde %(count)s mal entfernt", + "one": "wurde entfernt" + }, + "kicked_multiple": { + "one": "wurden entfernt", + "other": "wurden %(count)s mal entfernt" + }, + "left": { + "other": "%(oneUser)shat den Raum %(count)s-mal verlassen", + "one": "%(oneUser)shat den Raum verlassen" + }, + "left_multiple": { + "other": "%(severalUsers)shaben den Raum %(count)s-mal verlassen", + "one": "%(severalUsers)shaben den Raum verlassen" + }, + "no_change": { + "other": "%(oneUser)shat %(count)s mal keine Änderung vorgenommen", + "one": "%(oneUser)shat keine Änderung vorgenommen" + }, + "no_change_multiple": { + "one": "%(severalUsers)shaben keine Änderung vorgenommen", + "other": "%(severalUsers)s haben %(count)s mal nichts geändert" + }, + "pinned_events": { + "one": "%(oneUser)s hat die angehefteten Nachrichten des Raumes bearbeitet", + "other": "%(oneUser)s hat die angehefteten Nachrichten des Raumes %(count)s-Mal bearbeitet" + }, + "pinned_events_multiple": { + "one": "%(severalUsers)s hat die angehefteten Nachrichten des Raumes bearbeitet", + "other": "%(severalUsers)s haben die angehefteten Nachrichten des Raumes %(count)s-Mal bearbeitet" + }, + "redacted": { + "one": "%(oneUser)s hat eine Nachricht gelöscht", + "other": "%(oneUser)s hat %(count)s Nachrichten gelöscht" + }, + "redacted_multiple": { + "one": "%(severalUsers)s hat eine Nachricht gelöscht", + "other": "%(severalUsers)s haben %(count)s Nachrichten gelöscht" + }, + "rejected_invite": { + "other": "%(oneUser)shat die Einladung %(count)s-mal abgelehnt", + "one": "%(oneUser)shat die Einladung abgelehnt" + }, + "rejected_invite_multiple": { + "one": "%(severalUsers)shaben ihre Einladungen abgelehnt", + "other": "%(severalUsers)shaben ihre Einladungen %(count)s-mal abgelehnt" + }, + "rejoined": { + "other": "%(oneUser)shat den Raum %(count)s-mal verlassen und wieder betreten", + "one": "%(oneUser)shat den Raum verlassen und wieder betreten" + }, + "rejoined_multiple": { + "other": "%(severalUsers)shaben den Raum %(count)s-mal verlassen und wieder betreten", + "one": "%(severalUsers)shaben den Raum verlassen und wieder betreten" + }, + "server_acls": { + "one": "%(oneUser)s hat die Server-ACLs geändert", + "other": "%(oneUser)s hat die Server-ACLs %(count)s Mal geändert" + }, + "server_acls_multiple": { + "one": "%(severalUsers)s haben die Server-ACLs geändert", + "other": "%(severalUsers)s haben die Server-ACLs %(count)s Mal geändert" + }, + "unbanned": { + "other": "wurde %(count)s-mal entbannt", + "one": "wurde entbannt" + }, + "unbanned_multiple": { + "other": "wurden %(count)s-mal entbannt", + "one": "wurden entbannt" + } + }, + "thread_info_basic": "Aus einem Thread", + "typing_indicator": { + "more_users": { + "other": "%(names)s und %(count)s andere tippen …", + "one": "%(names)s und eine weitere Person tippen …" + }, + "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" + } + } + }, + "truncated_list_n_more": { + "other": "Und %(count)s weitere …" + }, + "unsupported_server_description": "Dieser Server nutzt eine ältere Matrix-Version. Aktualisiere auf Matrix %(version)s, um %(brand)s fehlerfrei nutzen zu können.", + "unsupported_server_title": "Dein Server wird nicht unterstützt", + "update": { + "changelog": "Änderungsprotokoll", + "check_action": "Nach Aktualisierung suchen", + "checking": "Suche nach Aktualisierung …", + "downloading": "Lade Aktualisierung herunter …", + "error_encountered": "Es ist ein Fehler aufgetreten (%(errorDetail)s).", + "error_unable_load_commit": "Konnte Übermittlungsdetails nicht laden: %(msg)s", + "new_version_available": "Neue Version verfügbar. Jetzt aktualisieren.", + "no_update": "Keine Aktualisierung verfügbar.", + "release_notes_toast_title": "Was ist neu", + "see_changes_button": "Was ist neu?", + "toast_description": "Neue Version von %(brand)s verfügbar", + "toast_title": "Aktualisiere %(brand)s", + "unavailable": "Nicht verfügbar" + }, + "upload_failed_generic": "Die Datei „%(fileName)s“ konnte nicht hochgeladen werden.", + "upload_failed_size": "Die Datei „%(fileName)s“ überschreitet das Hochladelimit deines Heim-Servers", + "upload_failed_title": "Hochladen fehlgeschlagen", + "upload_file": { + "cancel_all_button": "Alle abbrechen", + "error_file_too_large": "Die Datei ist zu groß, um hochgeladen zu werden. Die maximale Dateigröße ist %(limit)s, aber diese Datei ist %(sizeOfThisFile)s groß.", + "error_files_too_large": "Die Datei ist zu groß, um hochgeladen zu werden. Die maximale Dateigröße ist %(limit)s.", + "error_some_files_too_large": "Einige Dateien sind zu groß, um hochgeladen zu werden. Die maximale Dateigröße ist %(limit)s.", + "error_title": "Fehler beim Hochladen", + "title": "Dateien hochladen", + "title_progress": "Dateien hochladen (%(current)s von %(total)s)", + "upload_all_button": "Alle hochladen", + "upload_n_others_button": { + "other": "%(count)s andere Dateien hochladen", + "one": "%(count)s andere Datei hochladen" + } + }, + "user_info": { + "admin_tools_section": "Administrationswerkzeuge", + "ban_button_room": "Bannen", + "ban_button_space": "Bannen", + "ban_room_confirm_title": "Aus %(roomName)s verbannen", + "ban_space_everything": "Überall wo ich die Rechte dazu habe bannen", + "ban_space_specific": "In ausgewählten Räumen und Spaces bannen", + "count_of_sessions": { + "other": "%(count)s Sitzungen", + "one": "%(count)s Sitzung" + }, + "count_of_verified_sessions": { + "other": "%(count)s verifizierte Sitzungen", + "one": "Eine verifizierte Sitzung" + }, + "deactivate_confirm_action": "Konto deaktivieren", + "deactivate_confirm_description": "Beim Deaktivieren wirst du abgemeldet und ein erneutes Anmelden verhindert. Zusätzlich wirst du aus allen Räumen entfernt. Diese Aktion kann nicht rückgängig gemacht werden. Bist du sicher, dass du dieses Konto deaktivieren willst?", + "deactivate_confirm_title": "Konto deaktivieren?", + "demote_button": "Zurückstufen", + "demote_self_confirm_description_space": "Das Entfernen von Rechten kann nicht rückgängig gemacht werden. Falls sie dir niemand anderer zurückgeben kann, kannst du sie nie wieder erhalten.", + "demote_self_confirm_room": "Du wirst nicht in der Lage sein, die Änderung zurückzusetzen, da du dich degradierst. Wenn du der letze Nutzer mit Berechtigungen bist, wird es unmöglich sein die Privilegien zurückzubekommen.", + "demote_self_confirm_title": "Dein eigenes Berechtigungslevel herabsetzen?", + "disinvite_button_room": "Einladung zurückziehen", + "disinvite_button_room_name": "Einladung für %(roomName)s zurückziehen", + "disinvite_button_space": "Einladung zurückziehen", + "edit_own_devices": "Sitzungen anzeigen", + "error_ban_user": "Verbannen des Benutzers fehlgeschlagen", + "error_deactivate": "Benutzer konnte nicht deaktiviert werden", + "error_kicking_user": "Fehler beim entfernen des Nutzers", + "error_mute_user": "Stummschalten des Nutzers fehlgeschlagen", + "error_revoke_3pid_invite_description": "Die Einladung konnte nicht zurückgezogen werden. Der Server hat möglicherweise ein vorübergehendes Problem oder du hast nicht ausreichende Berechtigungen, um die Einladung zurückzuziehen.", + "error_revoke_3pid_invite_title": "Einladung konnte nicht zurückgezogen werden", + "hide_sessions": "Sitzungen ausblenden", + "hide_verified_sessions": "Verifizierte Sitzungen ausblenden", + "ignore_confirm_description": "Alle Nachrichten und Einladungen der Person werden verborgen. Bist du sicher, dass du sie ignorieren möchtest?", + "ignore_confirm_title": "%(user)s ignorieren", + "invited_by": "%(sender)s eingeladen", + "jump_to_rr_button": "Zur Lesebestätigung springen", + "kick_button_room": "Aus Raum entfernen", + "kick_button_room_name": "Aus %(roomName)s entfernen", + "kick_button_space": "Aus Space entfernen", + "kick_button_space_everything": "Person aus allen, mir möglichen Bereichen entfernen", + "kick_space_specific": "Person aus gewählten, mir möglichen, Bereichen entfernen", + "kick_space_warning": "Die Person wird weiterhin Zutritt zu Bereichen haben, in denen du nicht administrierst.", + "promote_warning": "Du kannst diese Änderung nicht rückgängig machen, da der Nutzer dieselbe Berechtigungsstufe wie du selbst erhalten wird.", + "redact": { + "confirm_button": { + "other": "%(count)s Nachrichten entfernen", + "one": "Eine Nachricht entfernen" + }, + "confirm_description_1": { + "one": "Du bist gerade dabei, %(count)s Nachricht von %(user)s Benutzern zu löschen. Die Nachrichten werden für niemanden mehr sichtbar sein. Willst du fortfahren?", + "other": "Du bist gerade dabei, %(count)s Nachrichten von %(user)s Benutzern zu löschen. Die Nachrichten werden für niemanden mehr sichtbar sein. Willst du fortfahren?" + }, + "confirm_description_2": "Dies kann bei vielen Nachrichten einige Zeit dauern. Bitte lade die Anwendung in dieser Zeit nicht neu.", + "confirm_keep_state_explainer": "Deaktivieren, wenn du auch Systemnachrichten bzgl. des Nutzers löschen willst (z. B. Mitglieds- und Profiländerungen …)", + "confirm_keep_state_label": "Systemnachrichten behalten", + "confirm_title": "Kürzlich gesendete Nachrichten von %(user)s entfernen", + "no_recent_messages_description": "Versuche nach oben zu scrollen, um zu sehen ob sich dort frühere Nachrichten befinden.", + "no_recent_messages_title": "Keine neuen Nachrichten von %(user)s gefunden" + }, + "redact_button": "Kürzlich gesendete Nachrichten entfernen", + "revoke_invite": "Einladung zurückziehen", + "room_encrypted": "Nachrichten in diesem Raum sind Ende-zu-Ende verschlüsselt.", + "room_encrypted_detail": "Diese Nachricht ist verschlüsselt. Nur Sie und der Empfänger haben den Schlüssel, um die Nachricht zu entschlüsseln.", + "room_unencrypted": "Nachrichten in diesem Raum sind nicht Ende-zu-Ende verschlüsselt.", + "room_unencrypted_detail": "Nachrichten in verschlüsselten Räumen können nur von dir und vom Empfänger gelesen werden.", + "share_button": "Link zu Benutzer teilen", + "unban_button_room": "Entbannen", + "unban_button_space": "Entbannen", + "unban_room_confirm_title": "Von %(roomName)s entbannen", + "unban_space_everything": "Überall wo ich die Rechte dazu habe, entbannen", + "unban_space_specific": "In ausgewählten Räumen und Spaces entbannen", + "unban_space_warning": "Die Person wird keinen Zutritt zu Bereichen haben, in denen du nicht administrierst.", + "verify_button": "Nutzer verifizieren", + "verify_explainer": "Für zusätzliche Sicherheit, verifiziere diesen Nutzer, durch Vergleichen eines Einmal-Codes auf euren beiden Geräten." + }, + "user_menu": { + "settings": "Alle Einstellungen", + "switch_theme_dark": "Zum dunklen Thema wechseln", + "switch_theme_light": "Zum hellen Thema wechseln" + }, + "voice_broadcast": { + "30s_backward": "30s zurückspulen", + "30s_forward": "30s vorspulen", + "action": "Sprachübertragung", + "buffering": "Puffere …", + "confirm_listen_affirm": "Ja, beende meine Aufzeichnung", + "confirm_listen_description": "Wenn du beginnst, diese Echtzeitübertragung anzuhören, wird deine aktuelle Echtzeitübertragungsaufzeichnung beendet.", + "confirm_listen_title": "Echtzeitübertragung anhören?", + "confirm_stop_affirm": "Ja, Übertragung beenden", + "confirm_stop_description": "Möchtest du deine Übertragung wirklich beenden? Dies wird die Übertragung abschließen und die vollständige Aufnahme im Raum bereitstellen.", + "confirm_stop_title": "Live-Übertragung beenden?", + "connection_error": "Verbindungsfehler − Aufnahme pausiert", + "failed_already_recording_description": "Du zeichnest bereits eine Sprachübertragung auf. Bitte beende die laufende Übertragung, um eine neue zu beginnen.", + "failed_already_recording_title": "Sprachübertragung kann nicht gestartet werden", + "failed_decrypt": "Entschlüsseln der Sprachübertragung nicht möglich", + "failed_generic": "Wiedergabe der Sprachübertragung nicht möglich", + "failed_insufficient_permission_description": "Du hast nicht die nötigen Berechtigungen, um eine Sprachübertragung in diesem Raum zu starten. Kontaktiere einen Raumadministrator, um deine Berechtigungen anzupassen.", + "failed_insufficient_permission_title": "Sprachübertragung kann nicht gestartet werden", + "failed_no_connection_description": "Leider ist es aktuell nicht möglich, eine Aufnahme zu beginnen. Bitte versuche es später erneut.", + "failed_no_connection_title": "Verbindungsfehler", + "failed_others_already_recording_description": "Jemand anderes nimmt bereits eine Sprachübertragung auf. Warte auf das Ende der Übertragung, bevor du eine neue startest.", + "failed_others_already_recording_title": "Sprachübertragung kann nicht gestartet werden", + "go_live": "Live schalten", + "live": "Live", + "pause": "Sprachübertragung pausieren", + "play": "Sprachübertragung wiedergeben", + "resume": "Sprachübertragung fortsetzen" + }, + "voice_message": { + "cant_start_broadcast_description": "Du kannst keine Sprachnachricht beginnen, da du im Moment eine Echtzeitübertragung aufzeichnest. Bitte beende deine Sprachübertragung, um ein Gespräch zu beginnen.", + "cant_start_broadcast_title": "Kann Sprachnachricht nicht beginnen" + }, + "voip": { + "already_in_call": "Schon im Anruf", + "already_in_call_person": "Du bist schon in einem Anruf mit dieser Person.", + "answered_elsewhere": "Anderswo beantwortet", + "answered_elsewhere_description": "Der Anruf wurde auf einem anderen Gerät angenommen.", + "call_failed": "Anruf fehlgeschlagen", + "call_failed_description": "Der Anruf kann nicht getätigt werden", + "call_failed_media": "Der Anruf ist fehlgeschlagen, weil nicht auf die Webcam oder der das Mikrofon zugegriffen werden konnte. Prüfe nach, ob:", + "call_failed_media_applications": "keine andere Anwendung auf die Webcam zugreift", + "call_failed_media_connected": "Mikrofon und Webcam eingesteckt und richtig eingerichtet sind", + "call_failed_media_permissions": "Zugriff auf Webcam gestattet", + "call_failed_microphone": "Der Anruf ist fehlgeschlagen, weil nicht auf das Mikrofon zugegriffen werden konnte. Prüfe noch einmal nach, ob das Mikrofon angesteckt und richtig konfiguriert ist.", + "call_held": "%(peerName)s hält den Anruf", + "call_held_resume": "Du hältst den Anruf Fortsetzen", + "call_held_switch": "Du hältst den Anruf Wechseln", + "call_toast_unknown_room": "Unbekannter Raum", + "camera_disabled": "Deine Kamera ist ausgeschaltet", + "camera_enabled": "Deine Kamera ist noch aktiv", + "cannot_call_yourself_description": "Du kannst keinen Anruf mit dir selbst starten.", + "change_input_device": "Eingabegerät wechseln", + "connecting": "Verbinden", + "connection_lost": "Verbindung zum Server unterbrochen", + "connection_lost_description": "Sie können keine Anrufe starten ohne Verbindung zum Server.", + "consulting": "%(transferTarget)s wird angefragt. Übertragung zu %(transferee)s", + "default_device": "Standardgerät", + "dial": "Wählen", + "dialpad": "Telefontastatur", + "disable_camera": "Kamera deaktivieren", + "disable_microphone": "Mikrofon stummschalten", + "disabled_no_one_here": "Hier ist niemand zum Anrufen", + "disabled_no_perms_start_video_call": "Dir fehlt die Berechtigung, um Videoanrufe zu beginnen", + "disabled_no_perms_start_voice_call": "Dir fehlt die Berechtigung, um Audioanrufe zu beginnen", + "disabled_ongoing_call": "laufender Anruf", + "enable_camera": "Kamera aktivieren", + "enable_microphone": "Mikrofon aktivieren", + "expand": "Zurück zum Anruf", + "failed_call_live_broadcast_description": "Du kannst keinen Anruf beginnen, da du im Moment eine Sprachübertragung aufzeichnest. Bitte beende deine Sprachübertragung, um ein Gespräch zu beginnen.", + "failed_call_live_broadcast_title": "Kann keinen Anruf beginnen", + "hangup": "Auflegen", + "hide_sidebar_button": "Seitenleiste verbergen", + "input_devices": "Eingabegeräte", + "join_button_tooltip_call_full": "Entschuldigung — dieser Anruf ist aktuell besetzt", + "join_button_tooltip_connecting": "Verbinden", + "maximise": "Bildschirm füllen", + "misconfigured_server": "Anruf aufgrund eines falsch konfigurierten Servers fehlgeschlagen", + "misconfigured_server_description": "Bitte frage die Administration deines Heim-Servers (%(homeserverDomain)s) darum, einen TURN-Server einzurichten, damit Anrufe zuverlässig funktionieren.", + "misconfigured_server_fallback": "Alternativ kannst du versuchen, den öffentlichen Server unter zu verwenden. Dieser wird nicht so zuverlässig sein und deine IP-Adresse wird mit ihm geteilt. Du kannst dies auch in den Einstellungen konfigurieren.", + "misconfigured_server_fallback_accept": "Versuche %(server)s zu verwenden", + "more_button": "Mehr", + "msisdn_lookup_failed": "Telefonnummer konnte nicht gefunden werden", + "msisdn_lookup_failed_description": "Beim Suchen der Telefonnummer ist ein Fehler aufgetreten", + "msisdn_transfer_failed": "Übertragen des Anrufs fehlgeschlagen", + "n_people_joined": { + "one": "%(count)s Person beigetreten", + "other": "%(count)s Personen beigetreten" + }, + "no_audio_input_description": "Es konnte kein Mikrofon gefunden werden. Überprüfe deine Einstellungen und versuche es erneut.", + "no_audio_input_title": "Kein Mikrofon gefunden", + "no_media_perms_description": "Gegebenenfalls kann es notwendig sein, dass du %(brand)s manuell den Zugriff auf dein Mikrofon bzw. deine Webcam gewähren musst", + "no_media_perms_title": "Keine Medienberechtigungen", + "no_permission_conference": "Berechtigung benötigt", + "no_permission_conference_description": "Du hast keine Berechtigung, ein Konferenzgespräch in diesem Raum zu starten", + "on_hold": "%(name)s wird gehalten", + "output_devices": "Ausgabegeräte", + "screenshare_monitor": "Vollständigen Bildschirm teilen", + "screenshare_title": "Inhalt teilen", + "screenshare_window": "Anwendungsfenster", + "show_sidebar_button": "Seitenleiste anzeigen", + "silence": "Anruf stummschalten", + "silenced": "Benachrichtigungen stummgeschaltet", + "start_screenshare": "Bildschirmfreigabe starten", + "stop_screenshare": "Bildschirmfreigabe beenden", + "too_many_calls": "Zu viele Anrufe", + "too_many_calls_description": "Du hast die maximale Anzahl gleichzeitig möglicher Anrufe erreicht.", + "transfer_consult_first_label": "Zuerst Anfragen", + "transfer_failed": "Übertragen fehlgeschlagen", + "transfer_failed_description": "Anruf-Übertragung fehlgeschlagen", + "unable_to_access_audio_input_description": "Fehler beim Zugriff auf dein Mikrofon. Überprüfe deine Browsereinstellungen und versuche es nochmal.", + "unable_to_access_audio_input_title": "Fehler beim Zugriff auf Mikrofon", + "unable_to_access_media": "Auf Webcam / Mikrofon konnte nicht zugegriffen werden", + "unable_to_access_microphone": "Es konnte nicht auf das Mikrofon zugegriffen werden", + "unknown_caller": "Unbekannter Anrufer", + "unknown_person": "unbekannte Person", + "unsilence": "Ton an", + "unsupported": "Anrufe werden nicht unterstützt", + "unsupported_browser": "Sie können in diesem Browser keien Anrufe durchführen.", + "user_busy": "Person beschäftigt", + "user_busy_description": "Die angerufene Person ist momentan beschäftigt.", + "user_is_presenting": "%(sharerName)s präsentiert", + "video_call": "Videoanruf", + "video_call_started": "Videoanruf hat begonnen", + "voice_call": "Sprachanruf", + "you_are_presenting": "Du präsentierst" + }, + "widget": { + "added_by": "Widget hinzugefügt von", + "capabilities_dialog": { + "content_starting_text": "Dieses Widget würde gerne:", + "decline_all_permission": "Alles ablehnen", + "remember_Selection": "Speichere meine Auswahl für dieses Widget", + "title": "Rechte für das Widget genehmigen" + }, + "capability": { + "always_on_screen_generic": "Bleib auf deinem Bildschirm während der Ausführung von", + "always_on_screen_viewing_another_room": "Sichtbar bleiben, wenn es ausgeführt und ein anderer Raum angezeigt wird", + "any_room": "Wie oben, nur zusätzlich in allen Räumen denen du beigetreten oder in die du eingeladen wurdest", + "byline_empty_state_key": "mit einem leeren Zustandsschlüssel", + "byline_state_key": "mit Zustandsschlüssel %(stateKey)s", + "capability": "Die %(capability)s-Fähigkeit", + "change_avatar_active_room": "Den Avatar deines aktiven Raums ändern", + "change_avatar_this_room": "Icon von diesem Raum ändern", + "change_name_active_room": "Den Namen deines aktiven Raums ändern", + "change_name_this_room": "Name von diesem Raum ändern", + "change_topic_active_room": "Das Thema von deinem aktiven Raum ändern", + "change_topic_this_room": "Das Thema von diesem Raum ändern", + "receive_membership_active_room": "Anzeigen, wenn Leute den aktuellen Raum betreten, verlassen oder in ihn eingeladen werden", + "receive_membership_this_room": "Anzeigen, wenn Leute eingeladen werden, den Raum betreten oder verlassen", + "remove_ban_invite_leave_active_room": "Entferne, verbanne oder lade andere in deinen aktiven Raum ein und verlasse den Raum selbst", + "remove_ban_invite_leave_this_room": "Entferne, verbanne oder lade andere in diesen Raum ein und verlasse den Raum selbst", + "see_avatar_change_active_room": "Sehen, wenn das Icon in deinem aktiven Raum geändert wird", + "see_avatar_change_this_room": "Sehen, wenn sich das Icon des Raums ändert", + "see_event_type_sent_active_room": "In deinen aktiven Raum gesendete %(eventType)s-Ereignisse anzeigen", + "see_event_type_sent_this_room": "In diesen Raum gesendete %(eventType)s-Ereignisse anzeigen", + "see_images_sent_active_room": "In deinen aktiven Raum gesendete Bilder anzeigen", + "see_images_sent_this_room": "In diesen Raum gesendete Bilder anzeigen", + "see_messages_sent_active_room": "In deinen aktiven Raum gesendete Nachrichten anzeigen", + "see_messages_sent_this_room": "In diesen Raum gesendete Nachrichten anzeigen", + "see_msgtype_sent_active_room": "Zeige %(msgtype)s Nachrichten, welche in deinen aktiven Raum gesendet worden sind", + "see_msgtype_sent_this_room": "Zeige %(msgtype)s Nachrichten, welche in diesen Raum gesendet worden sind", + "see_name_change_active_room": "Sehen wenn der Name sich in deinem aktiven Raum ändert", + "see_name_change_this_room": "Sehen wenn sich der Name in diesem Raum ändert", + "see_sent_emotes_active_room": "In deinen aktiven Raum gesendete Emojis anzeigen", + "see_sent_emotes_this_room": "In diesen Raum gesendete Emojis anzeigen", + "see_sent_files_active_room": "Allgemeine in deinen aktiven Raum gesendete Dateien anzeigen", + "see_sent_files_this_room": "Allgemeine in diesen Raum gesendete Dateien anzeigen", + "see_sticker_posted_active_room": "Sehen, wenn jemand einen Sticker in deinen aktiven Raum sendet", + "see_sticker_posted_this_room": "Sehe wenn ein Sticker in diesen Raum gesendet wird", + "see_text_messages_sent_active_room": "In deinen aktiven Raum gesendete Textnachrichten anzeigen", + "see_text_messages_sent_this_room": "In diesen Raum gesendete Textnachrichten anzeigen", + "see_topic_change_active_room": "Sehen, wenn sich das Thema im aktuellen Raum ändert", + "see_topic_change_this_room": "Sehen, wenn sich das Thema in diesem Raum ändert", + "see_videos_sent_active_room": "In deinen aktiven Raum gesendete Videos anzeigen", + "see_videos_sent_this_room": "In diesen Raum gesendete Videos anzeigen", + "send_emotes_active_room": "Emojis als du in deinen aktiven Raum senden", + "send_emotes_this_room": "Emojis als du in diesen Raum senden", + "send_event_type_active_room": "Sende %(eventType)s-Ereignisse als du in deinen aktiven Raum", + "send_event_type_this_room": "Sende %(eventType)s-Ereignisse mit deiner Identität in diesen Raum", + "send_files_active_room": "Allgemeine Dateien als du in deinen aktiven Raum senden", + "send_files_this_room": "Allgemeine Dateien als du in diesen Raum senden", + "send_images_active_room": "Sende Bilder in den aktuellen Raum", + "send_images_this_room": "Bilder als du in diesen Raum senden", + "send_messages_active_room": "Eine Nachricht als du in deinen aktiven Raum senden", + "send_messages_this_room": "Nachrichten als du in diesem Raum senden", + "send_msgtype_active_room": "Sende %(msgtype)s Nachrichten als du in deinen aktiven Raum", + "send_msgtype_this_room": "Sende %(msgtype)s Nachrichten als du in diesen Raum", + "send_stickers_active_room": "Sticker in deinen aktiven Raum senden", + "send_stickers_active_room_as_you": "Einen Sticker als du in deinen aktiven Raum senden", + "send_stickers_this_room": "Sticker in diesen Raum senden", + "send_stickers_this_room_as_you": "Einen Sticker in diesen Raum senden", + "send_text_messages_active_room": "Textnachrichten als du in deinen aktiven Raum senden", + "send_text_messages_this_room": "Textnachrichten als du in diesen Raum senden", + "send_videos_active_room": "Videos als du in deinen aktiven Raum senden", + "send_videos_this_room": "Videos als du in diesen Raum senden", + "specific_room": "Wie oben, nur zusätzlich in ", + "switch_room": "Ändern, welchen Raum du siehst", + "switch_room_message_user": "Ändere den sichtbaren Raum, Nachricht oder Nutzer" + }, + "close_to_view_right_panel": "Widget schließen und in diesem Panel anzeigen", + "context_menu": { + "delete": "Widget entfernen", + "delete_warning": "Das Löschen des Widgets entfernt es für alle in diesem Raum. Wirklich löschen?", + "move_left": "Nach links schieben", + "move_right": "Nach rechts schieben", + "remove": "Für alle entfernen", + "revoke": "Berechtigungen widerrufen", + "screenshot": "Bildschirmfoto", + "start_audio_stream": "Audiostream starten" + }, + "cookie_warning": "Dieses Widget kann Cookies verwenden.", + "error_hangup_description": "Du wurdest vom Anruf getrennt. (Error: %(message)s)", + "error_hangup_title": "Verbindung verloren", + "error_loading": "Fehler beim Laden des Widgets", + "error_mixed_content": "Fehler - Uneinheitlicher Inhalt", + "error_need_invite_permission": "Du musst die Berechtigung \"Benutzer einladen\" haben, um diese Aktion ausführen zu können.", + "error_need_kick_permission": "Du musst in der Lage sein, Benutzer zu entfernen um das zu tun.", + "error_need_to_be_logged_in": "Du musst angemeldet sein.", + "error_unable_start_audio_stream_description": "Audiostream kann nicht gestartet werden.", + "error_unable_start_audio_stream_title": "Livestream konnte nicht gestartet werden", + "modal_data_warning": "Daten auf diesem Bildschirm werden mit %(widgetDomain)s geteilt", + "modal_title_default": "Modales Widget", + "no_name": "Unbekannte App", + "open_id_permissions_dialog": { + "remember_selection": "Dies merken", + "starting_text": "Das Widget überprüft deine Nutzer-ID, kann jedoch keine Aktionen für dich ausführen:", + "title": "Erlaube diesem Widget deine Identität zu überprüfen" + }, + "popout": "Widget in eigenem Fenster öffnen", + "set_room_layout": "Dein Raumlayout für alle setzen", + "shared_data_avatar": "Deine Profilbild-URL", + "shared_data_device_id": "Deine Geräte-ID", + "shared_data_lang": "Deine Sprache", + "shared_data_mxid": "Deine Nutzer-ID", + "shared_data_name": "Dein Anzeigename", + "shared_data_room_id": "Raum-ID", + "shared_data_theme": "Dein Design", + "shared_data_url": "%(brand)s URL", + "shared_data_warning": "Wenn du dieses Widget verwendest, können Daten zu %(widgetDomain)s übertragen werden.", + "shared_data_warning_im": "Wenn du dieses Widget verwendest, können Daten zu %(widgetDomain)s und deinem Integrationsmanager übertragen werden.", + "shared_data_widget_id": "Widget-ID", + "unencrypted_warning": "Widgets verwenden keine Nachrichtenverschlüsselung.", + "unmaximise": "Maximieren rückgängig machen", + "unpin_to_view_right_panel": "Widget nicht mehr anheften und in diesem Panel anzeigen" + }, + "zxcvbn": { + "suggestions": { + "allUppercase": "Alles groß zu schreiben ist genauso einfach zu erraten, wie alles klein zu schreiben", + "anotherWord": "Füge ein weiteres Wort - oder mehr - hinzu. Ungewöhnliche Worte sind besser.", + "associatedYears": "Vermeide Jahreszahlen, die mit dir zu tun haben", + "capitalization": "Großschreibung hilft nicht viel", + "dates": "Vermeide Daten und Jahre, die mit dir in Verbindung stehen", + "l33t": "Vorhersagbare Ersetzungen wie „@“ anstelle von „a“ helfen nicht besonders", + "longerKeyboardPattern": "Nutze ein längeres Tastaturmuster mit mehr Abwechslung", + "noNeed": "Kein Bedarf an Symbolen, Zahlen oder Großbuchstaben", + "pwned": "Wenn Sie dieses Passwort woanders verwenden, sollten Sie es ändern.", + "recentYears": "Vermeide die letzten Jahre", + "repeated": "Vermeide wiederholte Worte und Zeichen", + "reverseWords": "Umgedrehte Worte sind nicht schwerer zu erraten", + "sequences": "Vermeide Sätze", + "useWords": "Benutze einige Worte und vermeide gängige Phrasen" + }, + "warnings": { + "common": "Dies ist ein recht bekanntes Passwort", + "commonNames": "Häufige Namen und Familiennamen sind einfach zu erraten", + "dates": "Ein Datum ist leicht zu erraten", + "extendedRepeat": "Wiederholungen wie \"abcabcabc\" sind fast so schnell zu erraten wie \"abc\"", + "keyPattern": "Kurze Tastaturmuster sind einfach zu erraten", + "namesByThemselves": "Namen und Familiennamen alleine sind einfach zu erraten", + "pwned": "Dein Passwort wurde durch eine Datenleck im Internet offengelegt.", + "recentYears": "Kürzlich vergangene Jahre sind einfach zu raten", + "sequences": "Sequenzen wie \"abc\" oder \"6543\" sind leicht zu raten", + "similarToCommon": "Dies ist ähnlich zu einem oft genutzten Passwort", + "simpleRepeat": "Wiederholungen wie \"aaa\" sind einfach zu erraten", + "straightRow": "Gerade Reihen von Tasten sind einfach zu erraten", + "topHundred": "Dies ist unter den Top 100 der häufigsten Passwörter", + "topTen": "Dies ist unter den Top 10 der häufigsten Passwörter", + "wordByItself": "Ein einzelnes Wort ist einfach zu erraten" + } + } } diff --git a/test/unit-tests/components/structures/__snapshots__/FilePanel-test.tsx.snap b/test/unit-tests/components/structures/__snapshots__/FilePanel-test.tsx.snap index ace762cd23..284c7f551e 100644 --- a/test/unit-tests/components/structures/__snapshots__/FilePanel-test.tsx.snap +++ b/test/unit-tests/components/structures/__snapshots__/FilePanel-test.tsx.snap @@ -19,7 +19,7 @@ exports[`FilePanel renders empty state 1`] = `

+