diff --git a/.eslintrc.js b/.eslintrc.js
index bc2a142c2d..99695b7a03 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -22,6 +22,8 @@ module.exports = {
"files": ["src/**/*.{ts,tsx}"],
"extends": ["matrix-org/ts"],
"rules": {
+ // We're okay being explicit at the moment
+ "@typescript-eslint/no-empty-interface": "off",
// We disable this while we're transitioning
"@typescript-eslint/no-explicit-any": "off",
// We'd rather not do this but we do
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 151888a17e..c87f1c62e6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,384 @@
+Changes in [3.14.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.14.0) (2021-02-16)
+=====================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.14.0-rc.1...v3.14.0)
+
+ * Upgrade to JS SDK 9.7.0
+ * [Release] Use config for host signup branding
+ [\#5651](https://github.com/matrix-org/matrix-react-sdk/pull/5651)
+
+Changes in [3.14.0-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.14.0-rc.1) (2021-02-10)
+===============================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.13.1...v3.14.0-rc.1)
+
+ * Upgrade to JS SDK 9.7.0-rc.1
+ * Translations update from Weblate
+ [\#5636](https://github.com/matrix-org/matrix-react-sdk/pull/5636)
+ * Add host signup modal with iframe
+ [\#5450](https://github.com/matrix-org/matrix-react-sdk/pull/5450)
+ * Fix duplication of codeblock elements
+ [\#5633](https://github.com/matrix-org/matrix-react-sdk/pull/5633)
+ * Handle undefined call stats
+ [\#5632](https://github.com/matrix-org/matrix-react-sdk/pull/5632)
+ * Avoid delayed displaying of sources in source picker
+ [\#5631](https://github.com/matrix-org/matrix-react-sdk/pull/5631)
+ * Give breadcrumbs toolbar an accessibility label.
+ [\#5628](https://github.com/matrix-org/matrix-react-sdk/pull/5628)
+ * Fix the %s in logs
+ [\#5627](https://github.com/matrix-org/matrix-react-sdk/pull/5627)
+ * Fix jumpy notifications settings UI
+ [\#5625](https://github.com/matrix-org/matrix-react-sdk/pull/5625)
+ * Improve displaying of code blocks
+ [\#5559](https://github.com/matrix-org/matrix-react-sdk/pull/5559)
+ * Fix desktop Matrix screen sharing and add a screen/window picker
+ [\#5525](https://github.com/matrix-org/matrix-react-sdk/pull/5525)
+ * Call "MatrixClientPeg.get()" only once in method "findOverrideMuteRule"
+ [\#5498](https://github.com/matrix-org/matrix-react-sdk/pull/5498)
+ * Close current modal when session is logged out
+ [\#5616](https://github.com/matrix-org/matrix-react-sdk/pull/5616)
+ * Switch room explorer list to CSS grid
+ [\#5551](https://github.com/matrix-org/matrix-react-sdk/pull/5551)
+ * Improve SSO login start screen and 3pid invite handling somewhat
+ [\#5622](https://github.com/matrix-org/matrix-react-sdk/pull/5622)
+ * Don't jump to bottom on reaction
+ [\#5621](https://github.com/matrix-org/matrix-react-sdk/pull/5621)
+ * Fix several profile settings oddities
+ [\#5620](https://github.com/matrix-org/matrix-react-sdk/pull/5620)
+ * Add option to hide the stickers button in the composer
+ [\#5530](https://github.com/matrix-org/matrix-react-sdk/pull/5530)
+ * Fix confusing right panel button behaviour
+ [\#5598](https://github.com/matrix-org/matrix-react-sdk/pull/5598)
+ * Fix jumping timestamp if hovering a message with e2e indicator bar
+ [\#5601](https://github.com/matrix-org/matrix-react-sdk/pull/5601)
+ * Fix avatar and trash alignment
+ [\#5614](https://github.com/matrix-org/matrix-react-sdk/pull/5614)
+ * Fix z-index of stickerpicker
+ [\#5617](https://github.com/matrix-org/matrix-react-sdk/pull/5617)
+ * Fix permalink via parsing for rooms
+ [\#5615](https://github.com/matrix-org/matrix-react-sdk/pull/5615)
+ * Fix "Terms and Conditions" checkbox alignment
+ [\#5613](https://github.com/matrix-org/matrix-react-sdk/pull/5613)
+ * Fix flair height after accent changes
+ [\#5611](https://github.com/matrix-org/matrix-react-sdk/pull/5611)
+ * Iterate Social Logins work around edge cases and branding
+ [\#5609](https://github.com/matrix-org/matrix-react-sdk/pull/5609)
+ * Lock widget room ID when added
+ [\#5607](https://github.com/matrix-org/matrix-react-sdk/pull/5607)
+ * Better errors for SSO failures
+ [\#5605](https://github.com/matrix-org/matrix-react-sdk/pull/5605)
+ * Increase language search bar width
+ [\#5549](https://github.com/matrix-org/matrix-react-sdk/pull/5549)
+ * Scroll to bottom on message_sent
+ [\#5565](https://github.com/matrix-org/matrix-react-sdk/pull/5565)
+ * Fix new rooms being titled 'Empty Room'
+ [\#5587](https://github.com/matrix-org/matrix-react-sdk/pull/5587)
+ * Fix saving the collapsed state of the left panel
+ [\#5593](https://github.com/matrix-org/matrix-react-sdk/pull/5593)
+ * Fix app-url hint in the e2e-test run script output
+ [\#5600](https://github.com/matrix-org/matrix-react-sdk/pull/5600)
+ * Fix RoomView re-mounting breaking peeking
+ [\#5602](https://github.com/matrix-org/matrix-react-sdk/pull/5602)
+ * Tweak a few room ID checks
+ [\#5592](https://github.com/matrix-org/matrix-react-sdk/pull/5592)
+ * Remove pills from event permalinks with text
+ [\#5575](https://github.com/matrix-org/matrix-react-sdk/pull/5575)
+
+Changes in [3.13.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.13.1) (2021-02-04)
+=====================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.13.0...v3.13.1)
+
+ * [Release] Fix z-index of stickerpicker
+ [\#5618](https://github.com/matrix-org/matrix-react-sdk/pull/5618)
+
+Changes in [3.13.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.13.0) (2021-02-03)
+=====================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.13.0-rc.1...v3.13.0)
+
+ * Upgrade to JS SDK 9.6.0
+ * [Release] Fix flair height after accent changes
+ [\#5612](https://github.com/matrix-org/matrix-react-sdk/pull/5612)
+ * [Release] Iterate Social Logins work around edge cases and branding
+ [\#5610](https://github.com/matrix-org/matrix-react-sdk/pull/5610)
+ * [Release] Lock widget room ID when added
+ [\#5608](https://github.com/matrix-org/matrix-react-sdk/pull/5608)
+ * [Release] Better errors for SSO failures
+ [\#5606](https://github.com/matrix-org/matrix-react-sdk/pull/5606)
+ * [Release] Fix RoomView re-mounting breaking peeking
+ [\#5603](https://github.com/matrix-org/matrix-react-sdk/pull/5603)
+
+Changes in [3.13.0-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.13.0-rc.1) (2021-01-29)
+===============================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.12.1...v3.13.0-rc.1)
+
+ * Upgrade to JS SDK 9.6.0-rc.1
+ * Translations update from Weblate
+ [\#5597](https://github.com/matrix-org/matrix-react-sdk/pull/5597)
+ * Support managed hybrid widgets from config
+ [\#5596](https://github.com/matrix-org/matrix-react-sdk/pull/5596)
+ * Add managed hybrid call widgets when supported
+ [\#5594](https://github.com/matrix-org/matrix-react-sdk/pull/5594)
+ * Tweak mobile guide toast copy
+ [\#5595](https://github.com/matrix-org/matrix-react-sdk/pull/5595)
+ * Improve SSO auth flow
+ [\#5578](https://github.com/matrix-org/matrix-react-sdk/pull/5578)
+ * Add optional mobile guide toast
+ [\#5586](https://github.com/matrix-org/matrix-react-sdk/pull/5586)
+ * Fix invisible text after logging out in the dark theme
+ [\#5588](https://github.com/matrix-org/matrix-react-sdk/pull/5588)
+ * Fix escape for cancelling replies
+ [\#5591](https://github.com/matrix-org/matrix-react-sdk/pull/5591)
+ * Update widget-api to beta.12
+ [\#5589](https://github.com/matrix-org/matrix-react-sdk/pull/5589)
+ * Add commands for DM conversion
+ [\#5540](https://github.com/matrix-org/matrix-react-sdk/pull/5540)
+ * Run a UI refresh over the OIDC Exchange confirmation dialog
+ [\#5580](https://github.com/matrix-org/matrix-react-sdk/pull/5580)
+ * Allow stickerpickers the legacy "visibility" capability
+ [\#5581](https://github.com/matrix-org/matrix-react-sdk/pull/5581)
+ * Hide local video if it is muted
+ [\#5529](https://github.com/matrix-org/matrix-react-sdk/pull/5529)
+ * Don't use name width in reply thread for IRC layout
+ [\#5518](https://github.com/matrix-org/matrix-react-sdk/pull/5518)
+ * Update code_style.md
+ [\#5554](https://github.com/matrix-org/matrix-react-sdk/pull/5554)
+ * Fix Czech capital letters like ŠČŘ...
+ [\#5569](https://github.com/matrix-org/matrix-react-sdk/pull/5569)
+ * Add optional search shortcut
+ [\#5548](https://github.com/matrix-org/matrix-react-sdk/pull/5548)
+ * Fix Sudden 'find a room' UI shows up when the only room moves to favourites
+ [\#5584](https://github.com/matrix-org/matrix-react-sdk/pull/5584)
+ * Increase PersistedElement's z-index
+ [\#5568](https://github.com/matrix-org/matrix-react-sdk/pull/5568)
+ * Remove check that prevents Jitsi widgets from being unpinned
+ [\#5582](https://github.com/matrix-org/matrix-react-sdk/pull/5582)
+ * Fix Jitsi widgets causing localized tile crashes
+ [\#5583](https://github.com/matrix-org/matrix-react-sdk/pull/5583)
+ * Log candidates for calls
+ [\#5573](https://github.com/matrix-org/matrix-react-sdk/pull/5573)
+ * Upgrade deps 2021-01
+ [\#5579](https://github.com/matrix-org/matrix-react-sdk/pull/5579)
+ * Fix "Continuing without email" dialog bug
+ [\#5566](https://github.com/matrix-org/matrix-react-sdk/pull/5566)
+ * Require registration for verification actions
+ [\#5574](https://github.com/matrix-org/matrix-react-sdk/pull/5574)
+ * Don't play the hangup sound when the call is answered from elsewhere
+ [\#5572](https://github.com/matrix-org/matrix-react-sdk/pull/5572)
+ * Move to newer base image for end-to-end tests
+ [\#5570](https://github.com/matrix-org/matrix-react-sdk/pull/5570)
+ * Update widgets in the room upon join
+ [\#5564](https://github.com/matrix-org/matrix-react-sdk/pull/5564)
+ * Update AuxPanel and related buttons when widgets change or on reload
+ [\#5563](https://github.com/matrix-org/matrix-react-sdk/pull/5563)
+ * Add VoIP user mapper
+ [\#5560](https://github.com/matrix-org/matrix-react-sdk/pull/5560)
+ * Improve styling of SSO Buttons for multiple IdPs
+ [\#5558](https://github.com/matrix-org/matrix-react-sdk/pull/5558)
+ * Fixes for the general tab in the room dialog
+ [\#5522](https://github.com/matrix-org/matrix-react-sdk/pull/5522)
+ * fix issue 16226 to allow switching back to default HS.
+ [\#5561](https://github.com/matrix-org/matrix-react-sdk/pull/5561)
+ * Support room-defined widget layouts
+ [\#5553](https://github.com/matrix-org/matrix-react-sdk/pull/5553)
+ * Change a bunch of strings from Recovery Key/Phrase to Security Key/Phrase
+ [\#5533](https://github.com/matrix-org/matrix-react-sdk/pull/5533)
+ * Give a bigger target area to AppsDrawer vertical resizer
+ [\#5557](https://github.com/matrix-org/matrix-react-sdk/pull/5557)
+ * Fix minimized left panel avatar alignment
+ [\#5493](https://github.com/matrix-org/matrix-react-sdk/pull/5493)
+ * Ensure component index has been written before renaming
+ [\#5556](https://github.com/matrix-org/matrix-react-sdk/pull/5556)
+ * Fixed continue button while selecting home-server
+ [\#5552](https://github.com/matrix-org/matrix-react-sdk/pull/5552)
+ * Wire up MSC2931 widget navigation
+ [\#5527](https://github.com/matrix-org/matrix-react-sdk/pull/5527)
+ * Various fixes for Bridge Info page (MSC2346)
+ [\#5454](https://github.com/matrix-org/matrix-react-sdk/pull/5454)
+ * Use room-specific listeners for message preview and community prototype
+ [\#5547](https://github.com/matrix-org/matrix-react-sdk/pull/5547)
+ * Fix some misc. React warnings when viewing timeline
+ [\#5546](https://github.com/matrix-org/matrix-react-sdk/pull/5546)
+ * Use device storage for allowed widgets if account data not supported
+ [\#5544](https://github.com/matrix-org/matrix-react-sdk/pull/5544)
+ * Fix incoming call box on dark theme
+ [\#5542](https://github.com/matrix-org/matrix-react-sdk/pull/5542)
+ * Convert DMRoomMap to typescript
+ [\#5541](https://github.com/matrix-org/matrix-react-sdk/pull/5541)
+ * Add in-call dialpad for DTMF sending
+ [\#5532](https://github.com/matrix-org/matrix-react-sdk/pull/5532)
+
+Changes in [3.12.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.12.1) (2021-01-26)
+=====================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.12.0...v3.12.1)
+
+ * Upgrade to JS SDK 9.5.1
+
+Changes in [3.12.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.12.0) (2021-01-18)
+=====================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.12.0-rc.1...v3.12.0)
+
+ * Upgrade to JS SDK 9.5.0
+ * Fix incoming call box on dark theme
+ [\#5543](https://github.com/matrix-org/matrix-react-sdk/pull/5543)
+
+Changes in [3.12.0-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.12.0-rc.1) (2021-01-13)
+===============================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.11.1...v3.12.0-rc.1)
+
+ * Upgrade to JS SDK 9.5.0-rc.1
+ * Fix soft crash on soft logout page
+ [\#5539](https://github.com/matrix-org/matrix-react-sdk/pull/5539)
+ * Translations update from Weblate
+ [\#5538](https://github.com/matrix-org/matrix-react-sdk/pull/5538)
+ * Run TypeScript tests
+ [\#5537](https://github.com/matrix-org/matrix-react-sdk/pull/5537)
+ * Add a basic widget explorer to devtools (per-room)
+ [\#5528](https://github.com/matrix-org/matrix-react-sdk/pull/5528)
+ * Add to security key field
+ [\#5534](https://github.com/matrix-org/matrix-react-sdk/pull/5534)
+ * Fix avatar upload prompt/tooltip floating wrong and permissions
+ [\#5526](https://github.com/matrix-org/matrix-react-sdk/pull/5526)
+ * Add a dialpad UI for PSTN lookup
+ [\#5523](https://github.com/matrix-org/matrix-react-sdk/pull/5523)
+ * Basic call transfer initiation support
+ [\#5494](https://github.com/matrix-org/matrix-react-sdk/pull/5494)
+ * Fix #15988
+ [\#5524](https://github.com/matrix-org/matrix-react-sdk/pull/5524)
+ * Bump node-notifier from 8.0.0 to 8.0.1
+ [\#5520](https://github.com/matrix-org/matrix-react-sdk/pull/5520)
+ * Use TypeScript source for development, swap to build during release
+ [\#5503](https://github.com/matrix-org/matrix-react-sdk/pull/5503)
+ * Look for emoji in the body that will be displayed
+ [\#5517](https://github.com/matrix-org/matrix-react-sdk/pull/5517)
+ * Bump ini from 1.3.5 to 1.3.7
+ [\#5486](https://github.com/matrix-org/matrix-react-sdk/pull/5486)
+ * Recognise `*.element.io` links as Element permalinks
+ [\#5514](https://github.com/matrix-org/matrix-react-sdk/pull/5514)
+ * Fixes for call UI
+ [\#5509](https://github.com/matrix-org/matrix-react-sdk/pull/5509)
+ * Add a snowfall chat effect (with /snowfall command)
+ [\#5511](https://github.com/matrix-org/matrix-react-sdk/pull/5511)
+ * fireworks effect
+ [\#5507](https://github.com/matrix-org/matrix-react-sdk/pull/5507)
+ * Don't play call end sound for calls that never started
+ [\#5506](https://github.com/matrix-org/matrix-react-sdk/pull/5506)
+ * Add /tableflip slash command
+ [\#5485](https://github.com/matrix-org/matrix-react-sdk/pull/5485)
+ * Import from src in IncomingCallBox.tsx
+ [\#5504](https://github.com/matrix-org/matrix-react-sdk/pull/5504)
+ * Social Login support both https and mxc icons
+ [\#5499](https://github.com/matrix-org/matrix-react-sdk/pull/5499)
+ * Fix padding in confirmation email registration prompt
+ [\#5501](https://github.com/matrix-org/matrix-react-sdk/pull/5501)
+ * Fix room list help prompt alignment
+ [\#5500](https://github.com/matrix-org/matrix-react-sdk/pull/5500)
+
+Changes in [3.11.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.11.1) (2020-12-21)
+=====================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.11.0...v3.11.1)
+
+ * Upgrade JS SDK to 9.4.1
+
+Changes in [3.11.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.11.0) (2020-12-21)
+=====================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.11.0-rc.2...v3.11.0)
+
+ * Upgrade JS SDK to 9.4.0
+ * [Release] Look for emoji in the body that will be displayed
+ [\#5519](https://github.com/matrix-org/matrix-react-sdk/pull/5519)
+ * [Release] Recognise `*.element.io` links as Element permalinks
+ [\#5516](https://github.com/matrix-org/matrix-react-sdk/pull/5516)
+ * [Release] Fixes for call UI
+ [\#5513](https://github.com/matrix-org/matrix-react-sdk/pull/5513)
+ * [RELEASE] Add a snowfall chat effect (with /snowfall command)
+ [\#5512](https://github.com/matrix-org/matrix-react-sdk/pull/5512)
+ * [Release] Fix padding in confirmation email registration prompt
+ [\#5502](https://github.com/matrix-org/matrix-react-sdk/pull/5502)
+
+Changes in [3.11.0-rc.2](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.11.0-rc.2) (2020-12-16)
+===============================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.11.0-rc.1...v3.11.0-rc.2)
+
+ * Upgrade JS SDK to 9.4.0-rc.2
+
+Changes in [3.11.0-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.11.0-rc.1) (2020-12-16)
+===============================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.10.0...v3.11.0-rc.1)
+
+ * Upgrade JS SDK to 9.4.0-rc.1
+ * Translations update from Weblate
+ [\#5497](https://github.com/matrix-org/matrix-react-sdk/pull/5497)
+ * Unregister from the dispatcher in CallHandler
+ [\#5495](https://github.com/matrix-org/matrix-react-sdk/pull/5495)
+ * Better adhere to MSC process
+ [\#5496](https://github.com/matrix-org/matrix-react-sdk/pull/5496)
+ * Use random pickle key on all platforms
+ [\#5483](https://github.com/matrix-org/matrix-react-sdk/pull/5483)
+ * Fix mx_MemberList icons
+ [\#5492](https://github.com/matrix-org/matrix-react-sdk/pull/5492)
+ * Convert InviteDialog to TypeScript
+ [\#5491](https://github.com/matrix-org/matrix-react-sdk/pull/5491)
+ * Add keyboard shortcut for emoji reactions
+ [\#5425](https://github.com/matrix-org/matrix-react-sdk/pull/5425)
+ * Run chat effects on events sent by widgets too
+ [\#5488](https://github.com/matrix-org/matrix-react-sdk/pull/5488)
+ * Fix being unable to pin widgets
+ [\#5487](https://github.com/matrix-org/matrix-react-sdk/pull/5487)
+ * Line 1 / 2 Support
+ [\#5468](https://github.com/matrix-org/matrix-react-sdk/pull/5468)
+ * Remove impossible labs feature: sending hidden read receipts
+ [\#5484](https://github.com/matrix-org/matrix-react-sdk/pull/5484)
+ * Fix height of Remote Video in call
+ [\#5456](https://github.com/matrix-org/matrix-react-sdk/pull/5456)
+ * Add UI for hold functionality
+ [\#5446](https://github.com/matrix-org/matrix-react-sdk/pull/5446)
+ * Allow SearchBox to expand to fill width
+ [\#5411](https://github.com/matrix-org/matrix-react-sdk/pull/5411)
+ * Use room alias in generated permalink for rooms
+ [\#5451](https://github.com/matrix-org/matrix-react-sdk/pull/5451)
+ * Only show confetti if the current room is receiving an appropriate event
+ [\#5482](https://github.com/matrix-org/matrix-react-sdk/pull/5482)
+ * Throttle RoomState.members handler to improve performance
+ [\#5481](https://github.com/matrix-org/matrix-react-sdk/pull/5481)
+ * Handle manual hs urls better for the server picker
+ [\#5477](https://github.com/matrix-org/matrix-react-sdk/pull/5477)
+ * Add Olm as a dev dependency for types
+ [\#5479](https://github.com/matrix-org/matrix-react-sdk/pull/5479)
+ * Hide Invite to this room CTA if no permission
+ [\#5476](https://github.com/matrix-org/matrix-react-sdk/pull/5476)
+ * Fix width of underline in server picker dialog
+ [\#5478](https://github.com/matrix-org/matrix-react-sdk/pull/5478)
+ * Fix confetti room unread state check
+ [\#5475](https://github.com/matrix-org/matrix-react-sdk/pull/5475)
+ * Show confetti in a chat room on command or emoji
+ [\#5140](https://github.com/matrix-org/matrix-react-sdk/pull/5140)
+ * Fix inverted settings default value
+ [\#5391](https://github.com/matrix-org/matrix-react-sdk/pull/5391)
+ * Improve usability of the Server Picker Dialog
+ [\#5474](https://github.com/matrix-org/matrix-react-sdk/pull/5474)
+ * Fix typos in some strings
+ [\#5473](https://github.com/matrix-org/matrix-react-sdk/pull/5473)
+ * Bump highlight.js from 10.1.2 to 10.4.1
+ [\#5472](https://github.com/matrix-org/matrix-react-sdk/pull/5472)
+ * Remove old app test script path
+ [\#5471](https://github.com/matrix-org/matrix-react-sdk/pull/5471)
+ * add support for giving reason when redacting
+ [\#5260](https://github.com/matrix-org/matrix-react-sdk/pull/5260)
+ * Add support for Netlify to fetchdep script
+ [\#5469](https://github.com/matrix-org/matrix-react-sdk/pull/5469)
+ * Nest other layers inside on automation
+ [\#5467](https://github.com/matrix-org/matrix-react-sdk/pull/5467)
+ * Rebrand various CI scripts and modules
+ [\#5466](https://github.com/matrix-org/matrix-react-sdk/pull/5466)
+ * Add more widget sanity checking
+ [\#5462](https://github.com/matrix-org/matrix-react-sdk/pull/5462)
+ * Fix React complaining about unknown DOM props
+ [\#5465](https://github.com/matrix-org/matrix-react-sdk/pull/5465)
+ * Jump to home page when leaving a room
+ [\#5464](https://github.com/matrix-org/matrix-react-sdk/pull/5464)
+ * Fix SSO buttons for Social Logins
+ [\#5463](https://github.com/matrix-org/matrix-react-sdk/pull/5463)
+ * Social Login and login delight tweaks
+ [\#5426](https://github.com/matrix-org/matrix-react-sdk/pull/5426)
+
Changes in [3.10.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.10.0) (2020-12-07)
=====================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.10.0-rc.1...v3.10.0)
diff --git a/code_style.md b/code_style.md
index fe04d2cc3d..5747540a76 100644
--- a/code_style.md
+++ b/code_style.md
@@ -35,12 +35,6 @@ General Style
- lowerCamelCase for functions and variables.
- Single line ternary operators are fine.
- UPPER_SNAKE_CASE for constants
-- Single quotes for strings by default, for consistency with most JavaScript styles:
-
- ```javascript
- "bad" // Bad
- 'good' // Good
- ```
- Use parentheses or `` ` `` instead of `\` for line continuation where ever possible
- Open braces on the same line (consistent with Node):
@@ -162,7 +156,14 @@ ECMAScript
- Be careful mixing arrow functions and regular functions, eg. if one function in a promise chain is an
arrow function, they probably all should be.
- Apart from that, newer ES features should be used whenever the author deems them to be appropriate.
-- Flow annotations are welcome and encouraged.
+
+TypeScript
+----------
+- TypeScript is preferred over the use of JavaScript
+- It's desirable to convert existing JavaScript files to TypeScript. TypeScript conversions should be done in small
+ chunks without functional changes to ease the review process.
+- Use full type definitions for function parameters and return values.
+- Avoid `any` types and `any` casts
React
-----
@@ -201,6 +202,8 @@ React
this.state = { counter: 0 };
}
```
+- Prefer class components over function components and hooks (not a strict rule though)
+
- Think about whether your component really needs state: are you duplicating
information in component state that could be derived from the model?
diff --git a/docs/widget-layouts.md b/docs/widget-layouts.md
new file mode 100644
index 0000000000..e7f72e2001
--- /dev/null
+++ b/docs/widget-layouts.md
@@ -0,0 +1,60 @@
+# Widget layout support
+
+Rooms can have a default widget layout to auto-pin certain widgets, make the container different
+sizes, etc. These are defined through the `io.element.widgets.layout` state event (empty state key).
+
+Full example content:
+```json5
+{
+ "widgets": {
+ "first-widget-id": {
+ "container": "top",
+ "index": 0,
+ "width": 60,
+ "height": 40
+ },
+ "second-widget-id": {
+ "container": "right"
+ }
+ }
+}
+```
+
+As shown, there are two containers possible for widgets. These containers have different behaviour
+and interpret the other options differently.
+
+## `top` container
+
+This is the "App Drawer" or any pinned widgets in a room. This is by far the most versatile container
+though does introduce potential usability issues upon members of the room (widgets take up space and
+therefore fewer messages can be shown).
+
+The `index` for a widget determines which order the widgets show up in from left to right. Widgets
+without an `index` will show up as the rightmost widgets. Tiebreaks (same `index` or multiple defined
+without an `index`) are resolved by comparing widget IDs. A maximum of 3 widgets can be in the top
+container - any which exceed this will be ignored (placed into the `right` container). Smaller numbers
+represent leftmost widgets.
+
+The `width` is relative width within the container in percentage points. This will be clamped to a
+range of 0-100 (inclusive). The widgets will attempt to scale to relative proportions when more than
+100% space is allocated. For example, if 3 widgets are defined at 40% width each then the client will
+attempt to show them at 33% width each.
+
+Note that the client may impose minimum widths on the widgets, such as a 10% minimum to avoid pinning
+hidden widgets. In general, widgets defined in the 30-70% range each will be free of these restrictions.
+
+The `height` is not in fact applied per-widget but is recorded per-widget for potential future
+capabilities in future containers. The top container will take the tallest `height` and use that for
+the height of the whole container, and thus all widgets in that container. The `height` is relative
+to the container, like with `width`, meaning that 100% will consume as much space as the client is
+willing to sacrifice to the widget container. Like with `width`, the client may impose minimums to avoid
+the container being uselessly small. Heights in the 30-100% range are generally acceptable. The height
+is also clamped to be within 0-100, inclusive.
+
+## `right` container
+
+This is the default container and has no special configuration. Widgets which overflow from the top
+container will be put in this container instead. Putting a widget in the right container does not
+automatically show it - it only mentions that widgets should not be in another container.
+
+The behaviour of this container may change in the future.
diff --git a/package.json b/package.json
index b328823b24..d4f931d811 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "matrix-react-sdk",
- "version": "3.10.0",
+ "version": "3.14.0",
"description": "SDK for matrix.org using React",
"author": "matrix.org",
"repository": {
@@ -27,11 +27,12 @@
"matrix-gen-i18n": "scripts/gen-i18n.js",
"matrix-prune-i18n": "scripts/prune-i18n.js"
},
- "main": "./lib/index.js",
- "typings": "./lib/index.d.ts",
+ "main": "./src/index.js",
"matrix_src_main": "./src/index.js",
+ "matrix_lib_main": "./lib/index.js",
+ "matrix_lib_typings": "./lib/index.d.ts",
"scripts": {
- "prepare": "yarn build",
+ "prepublishOnly": "yarn build",
"i18n": "matrix-gen-i18n",
"prunei18n": "matrix-prune-i18n",
"diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && ./scripts/gen-i18n.js && node scripts/compare-file.js src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
@@ -53,48 +54,46 @@
"test:e2e": "./test/end-to-end-tests/run.sh --app-url http://localhost:8080"
},
"dependencies": {
- "@babel/runtime": "^7.10.5",
- "await-lock": "^2.0.1",
- "blueimp-canvas-to-blob": "^3.27.0",
+ "@babel/runtime": "^7.12.5",
+ "await-lock": "^2.1.0",
+ "blueimp-canvas-to-blob": "^3.28.0",
"browser-encrypt-attachment": "^0.3.0",
"browser-request": "^0.3.3",
- "cheerio": "^1.0.0-rc.3",
+ "cheerio": "^1.0.0-rc.5",
"classnames": "^2.2.6",
- "commonmark": "^0.29.1",
+ "commonmark": "^0.29.3",
"counterpart": "^0.18.6",
- "diff-dom": "^4.1.6",
+ "diff-dom": "^4.2.2",
"diff-match-patch": "^1.0.5",
- "emojibase-data": "^5.0.1",
- "emojibase-regex": "^4.0.1",
+ "emojibase-data": "^5.1.1",
+ "emojibase-regex": "^4.1.1",
"escape-html": "^1.0.3",
- "file-saver": "^1.3.8",
- "filesize": "3.6.1",
+ "file-saver": "^2.0.5",
+ "filesize": "6.1.0",
"flux": "2.1.1",
- "focus-visible": "^5.1.0",
- "fuse.js": "^2.7.4",
+ "focus-visible": "^5.2.0",
"gfm.css": "^1.1.2",
"glob-to-regexp": "^0.4.1",
- "highlight.js": "^10.1.2",
- "html-entities": "^1.3.1",
- "is-ip": "^2.0.0",
+ "highlight.js": "^10.5.0",
+ "html-entities": "^1.4.0",
+ "is-ip": "^3.1.0",
"katex": "^0.12.0",
"linkifyjs": "^2.1.9",
- "lodash": "^4.17.19",
+ "lodash": "^4.17.20",
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
- "matrix-widget-api": "^0.1.0-beta.10",
+ "matrix-widget-api": "^0.1.0-beta.13",
"minimist": "^1.2.5",
- "pako": "^1.0.11",
- "parse5": "^5.1.1",
+ "pako": "^2.0.3",
+ "parse5": "^6.0.1",
"png-chunks-extract": "^1.0.0",
- "project-name-generator": "^2.1.7",
"prop-types": "^15.7.2",
"qrcode": "^1.4.4",
- "qs": "^6.9.4",
- "re-resizable": "^6.5.4",
- "react": "^16.13.1",
+ "qs": "^6.9.6",
+ "re-resizable": "^6.9.0",
+ "react": "^16.14.0",
"react-beautiful-dnd": "^4.0.1",
- "react-dom": "^16.13.1",
- "react-focus-lock": "^2.4.1",
+ "react-dom": "^16.14.0",
+ "react-focus-lock": "^2.5.0",
"react-transition-group": "^4.4.1",
"resize-observer-polyfill": "^1.5.1",
"rfc4648": "^1.4.0",
@@ -107,71 +106,75 @@
"zxcvbn": "^4.4.2"
},
"devDependencies": {
- "@babel/cli": "^7.10.5",
- "@babel/core": "^7.10.5",
- "@babel/parser": "^7.11.0",
- "@babel/plugin-proposal-class-properties": "^7.10.4",
- "@babel/plugin-proposal-decorators": "^7.10.5",
- "@babel/plugin-proposal-export-default-from": "^7.10.4",
- "@babel/plugin-proposal-numeric-separator": "^7.10.4",
- "@babel/plugin-proposal-object-rest-spread": "^7.10.4",
- "@babel/plugin-transform-flow-comments": "^7.10.4",
- "@babel/plugin-transform-runtime": "^7.10.5",
- "@babel/preset-env": "^7.10.4",
- "@babel/preset-flow": "^7.10.4",
- "@babel/preset-react": "^7.10.4",
- "@babel/preset-typescript": "^7.10.4",
- "@babel/register": "^7.10.5",
- "@babel/traverse": "^7.11.0",
- "@peculiar/webcrypto": "^1.1.3",
- "@types/classnames": "^2.2.10",
+ "@babel/cli": "^7.12.10",
+ "@babel/core": "^7.12.10",
+ "@babel/parser": "^7.12.11",
+ "@babel/plugin-proposal-class-properties": "^7.12.1",
+ "@babel/plugin-proposal-decorators": "^7.12.12",
+ "@babel/plugin-proposal-export-default-from": "^7.12.1",
+ "@babel/plugin-proposal-numeric-separator": "^7.12.7",
+ "@babel/plugin-proposal-object-rest-spread": "^7.12.1",
+ "@babel/plugin-transform-flow-comments": "^7.12.1",
+ "@babel/plugin-transform-runtime": "^7.12.10",
+ "@babel/preset-env": "^7.12.11",
+ "@babel/preset-flow": "^7.12.1",
+ "@babel/preset-react": "^7.12.10",
+ "@babel/preset-typescript": "^7.12.7",
+ "@babel/register": "^7.12.10",
+ "@babel/traverse": "^7.12.12",
+ "@peculiar/webcrypto": "^1.1.4",
+ "@sinonjs/fake-timers": "^7.0.2",
+ "@types/classnames": "^2.2.11",
"@types/counterpart": "^0.18.1",
"@types/flux": "^3.1.9",
+ "@types/jest": "^26.0.20",
"@types/linkifyjs": "^2.1.3",
- "@types/lodash": "^4.14.158",
+ "@types/lodash": "^4.14.168",
"@types/modernizr": "^3.5.3",
- "@types/node": "^12.12.51",
+ "@types/node": "^14.14.22",
"@types/pako": "^1.0.1",
- "@types/qrcode": "^1.3.4",
+ "@types/qrcode": "^1.3.5",
"@types/react": "^16.9",
- "@types/react-dom": "^16.9.8",
+ "@types/react-dom": "^16.9.10",
"@types/react-transition-group": "^4.4.0",
- "@types/sanitize-html": "^1.23.3",
+ "@types/sanitize-html": "^1.27.0",
"@types/zxcvbn": "^4.4.0",
- "@typescript-eslint/eslint-plugin": "^3.7.0",
- "@typescript-eslint/parser": "^3.7.0",
+ "@typescript-eslint/eslint-plugin": "^4.14.0",
+ "@typescript-eslint/parser": "^4.14.0",
"babel-eslint": "^10.1.0",
- "babel-jest": "^24.9.0",
- "chokidar": "^3.4.1",
- "concurrently": "^4.1.2",
+ "babel-jest": "^26.6.3",
+ "chokidar": "^3.5.1",
+ "concurrently": "^5.3.0",
"enzyme": "^3.11.0",
- "enzyme-adapter-react-16": "^1.15.2",
- "eslint": "7.5.0",
- "eslint-config-matrix-org": "^0.1.2",
+ "enzyme-adapter-react-16": "^1.15.6",
+ "eslint": "7.18.0",
+ "eslint-config-matrix-org": "^0.2.0",
"eslint-plugin-babel": "^5.3.1",
- "eslint-plugin-flowtype": "^2.50.3",
- "eslint-plugin-react": "^7.20.3",
- "eslint-plugin-react-hooks": "^2.5.1",
- "glob": "^5.0.15",
- "jest": "^26.5.2",
+ "eslint-plugin-flowtype": "^5.2.0",
+ "eslint-plugin-react": "^7.22.0",
+ "eslint-plugin-react-hooks": "^4.2.0",
+ "glob": "^7.1.6",
+ "jest": "^26.6.3",
"jest-canvas-mock": "^2.3.0",
"jest-environment-jsdom-sixteen": "^1.0.3",
- "lolex": "^5.1.2",
"matrix-mock-request": "^1.2.3",
"matrix-react-test-utils": "^0.2.2",
"olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz",
- "react-test-renderer": "^16.13.1",
- "rimraf": "^2.7.1",
- "stylelint": "^9.10.1",
- "stylelint-config-standard": "^18.3.0",
+ "react-test-renderer": "^16.14.0",
+ "rimraf": "^3.0.2",
+ "stylelint": "^13.9.0",
+ "stylelint-config-standard": "^20.0.0",
"stylelint-scss": "^3.18.0",
- "typescript": "^3.9.7",
+ "typescript": "^4.1.3",
"walk": "^2.3.14"
},
+ "resolutions": {
+ "**/@types/react": "^16.14"
+ },
"jest": {
"testEnvironment": "./__test-utils__/environment.js",
"testMatch": [
- " blocks, (See TextualBody)
-.mx_EventTile_copyButton {
+.mx_EventTile_button {
position: absolute;
display: inline-block;
visibility: hidden;
cursor: pointer;
top: 6px;
- right: 6px;
+ right: 12px;
width: 19px;
height: 19px;
- mask-image: url($copy-button-url);
background-color: $message-action-bar-fg-color;
}
+.mx_EventTile_buttonBottom {
+ top: 31px;
+}
+.mx_EventTile_copyButton {
+ mask-image: url($copy-button-url);
+}
+.mx_EventTile_collapseButton {
+ mask-size: 75%;
+ mask-position: center;
+ mask-repeat: no-repeat;
+ mask-image: url($collapse-button-url);
+}
+.mx_EventTile_expandButton {
+ mask-size: 75%;
+ mask-position: center;
+ mask-repeat: no-repeat;
+ mask-image: url($expand-button-url);
+}
.mx_EventTile_body .mx_EventTile_pre_container:focus-within .mx_EventTile_copyButton,
-.mx_EventTile_body .mx_EventTile_pre_container:hover .mx_EventTile_copyButton {
+.mx_EventTile_body .mx_EventTile_pre_container:hover .mx_EventTile_copyButton,
+.mx_EventTile_body .mx_EventTile_pre_container:focus-within .mx_EventTile_collapseButton,
+.mx_EventTile_body .mx_EventTile_pre_container:hover .mx_EventTile_collapseButton,
+.mx_EventTile_body .mx_EventTile_pre_container:focus-within .mx_EventTile_expandButton,
+.mx_EventTile_body .mx_EventTile_pre_container:hover .mx_EventTile_expandButton {
visibility: visible;
}
diff --git a/res/css/views/rooms/_GroupLayout.scss b/res/css/views/rooms/_GroupLayout.scss
index 2b447be44a..543e6ed685 100644
--- a/res/css/views/rooms/_GroupLayout.scss
+++ b/res/css/views/rooms/_GroupLayout.scss
@@ -20,7 +20,7 @@ $left-gutter: 64px;
.mx_GroupLayout {
.mx_EventTile {
> .mx_SenderProfile {
- line-height: $font-17px;
+ line-height: $font-20px;
padding-left: $left-gutter;
}
@@ -34,11 +34,11 @@ $left-gutter: 64px;
.mx_MessageTimestamp {
position: absolute;
- width: 46px; /* 8 + 30 (avatar) + 8 */
+ width: $MessageTimestamp_width;
}
.mx_EventTile_line, .mx_EventTile_reply {
- padding-top: 3px;
+ padding-top: 1px;
padding-bottom: 3px;
line-height: $font-22px;
}
diff --git a/res/css/views/rooms/_IRCLayout.scss b/res/css/views/rooms/_IRCLayout.scss
index ece547d02b..792c2f1f58 100644
--- a/res/css/views/rooms/_IRCLayout.scss
+++ b/res/css/views/rooms/_IRCLayout.scss
@@ -207,6 +207,17 @@ $irc-line-height: $font-18px;
width: unset;
max-width: var(--name-width);
}
+
+ .mx_SenderProfile_hover {
+ background: transparent;
+
+ > span {
+ > .mx_SenderProfile_name,
+ > .mx_SenderProfile_aux {
+ min-width: inherit;
+ }
+ }
+ }
}
.mx_ProfileResizer {
diff --git a/res/css/views/rooms/_LinkPreviewWidget.scss b/res/css/views/rooms/_LinkPreviewWidget.scss
index 022cf3ed28..5310bd3bbb 100644
--- a/res/css/views/rooms/_LinkPreviewWidget.scss
+++ b/res/css/views/rooms/_LinkPreviewWidget.scss
@@ -19,6 +19,8 @@ limitations under the License.
margin-right: 15px;
margin-bottom: 15px;
display: flex;
+ flex-direction: column;
+ max-width: 360px;
border-left: 4px solid $preview-widget-bar-color;
color: $preview-widget-fg-color;
}
@@ -55,6 +57,9 @@ limitations under the License.
cursor: pointer;
width: 18px;
height: 18px;
+ padding: 0px 5px 5px 5px;
+ margin-left: auto;
+ margin-right: 0px;
img {
flex: 0 0 40px;
diff --git a/res/css/views/rooms/_RoomList.scss b/res/css/views/rooms/_RoomList.scss
index b7759d265f..66e1b827d0 100644
--- a/res/css/views/rooms/_RoomList.scss
+++ b/res/css/views/rooms/_RoomList.scss
@@ -24,6 +24,9 @@ limitations under the License.
.mx_RoomList_iconExplore::before {
mask-image: url('$(res)/img/element-icons/roomlist/explore.svg');
}
+.mx_RoomList_iconDialpad::before {
+ mask-image: url('$(res)/img/element-icons/roomlist/dialpad.svg');
+}
.mx_RoomList_explorePrompt {
margin: 4px 12px 4px;
diff --git a/res/css/views/rooms/_RoomSublist.scss b/res/css/views/rooms/_RoomSublist.scss
index 27c7c7d0f7..92a475694e 100644
--- a/res/css/views/rooms/_RoomSublist.scss
+++ b/res/css/views/rooms/_RoomSublist.scss
@@ -197,6 +197,9 @@ limitations under the License.
.mx_RoomSublist_resizerHandles {
flex: 0 0 4px;
+ display: flex;
+ justify-content: center;
+ width: 100%;
}
// Class name comes from the ResizableBox component
@@ -207,17 +210,12 @@ limitations under the License.
border-radius: 3px;
// Override styles from library
- width: unset !important;
+ max-width: 64px;
height: 4px !important; // Update RESIZE_HANDLE_HEIGHT if this changes
// This is positioned directly below the 'show more' button.
- position: absolute;
+ position: relative !important;
bottom: 0 !important; // override from library
-
- // Together, these make the bar 64px wide
- // These are also overridden from the library
- left: calc(50% - 32px) !important;
- right: calc(50% - 32px) !important;
}
&:hover, &.mx_RoomSublist_hasMenuOpen {
diff --git a/res/css/views/settings/_Notifications.scss b/res/css/views/settings/_Notifications.scss
index e6d09b9a2a..77a7bc5b68 100644
--- a/res/css/views/settings/_Notifications.scss
+++ b/res/css/views/settings/_Notifications.scss
@@ -64,6 +64,7 @@ limitations under the License.
.mx_UserNotifSettings_notifTable {
display: table;
+ position: relative;
}
.mx_UserNotifSettings_notifTable .mx_Spinner {
diff --git a/res/css/views/settings/_ProfileSettings.scss b/res/css/views/settings/_ProfileSettings.scss
index 732cbedf02..4cbcb8e708 100644
--- a/res/css/views/settings/_ProfileSettings.scss
+++ b/res/css/views/settings/_ProfileSettings.scss
@@ -14,6 +14,12 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
+.mx_ProfileSettings_controls_topic {
+ & > textarea {
+ resize: vertical;
+ }
+}
+
.mx_ProfileSettings_profile {
display: flex;
}
diff --git a/res/css/views/voip/_CallContainer.scss b/res/css/views/voip/_CallContainer.scss
index eec8a1f188..8262075559 100644
--- a/res/css/views/voip/_CallContainer.scss
+++ b/res/css/views/voip/_CallContainer.scss
@@ -18,10 +18,7 @@ limitations under the License.
position: absolute;
right: 20px;
bottom: 72px;
- border-radius: 8px;
- overflow: hidden;
z-index: 100;
- box-shadow: 0px 14px 24px rgba(0, 0, 0, 0.08);
// Disable pointer events for Jitsi widgets to function. Direct
// calls have their own cursor and behaviour, but we need to make
@@ -49,8 +46,10 @@ limitations under the License.
.mx_IncomingCallBox {
min-width: 250px;
- background-color: $primary-bg-color;
+ background-color: $voipcall-plinth-color;
padding: 8px;
+ box-shadow: 0px 14px 24px rgba(0, 0, 0, 0.08);
+ border-radius: 8px;
pointer-events: initial; // restore pointer events so the user can accept/decline
cursor: pointer;
diff --git a/res/css/views/voip/_CallView.scss b/res/css/views/voip/_CallView.scss
index dbe2c27e41..7eb329594a 100644
--- a/res/css/views/voip/_CallView.scss
+++ b/res/css/views/voip/_CallView.scss
@@ -35,6 +35,10 @@ limitations under the License.
.mx_CallView_pip {
width: 320px;
+ padding-bottom: 8px;
+ margin-top: 10px;
+ box-shadow: 0px 14px 24px rgba(0, 0, 0, 0.08);
+ border-radius: 8px;
.mx_CallView_voice {
height: 180px;
@@ -84,50 +88,6 @@ limitations under the License.
border-radius: 2000px;
overflow: hidden;
position: relative;
- &::after {
- position: absolute;
- content: '';
- width: 100%;
- height: 100%;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- background-color: rgba(0, 0, 0, 0.6);
- background-image: url('$(res)/img/voip/paused.svg');
- background-position: center;
- background-size: 40px;
- background-repeat: no-repeat;
- }
- .mx_CallView_pip &::after {
- background-size: 30px;
- }
- }
- .mx_BaseAvatar {
- filter: blur(20px);
- overflow: hidden;
- }
-}
-
-.mx_CallView_voice_secondaryAvatarContainer {
- border-radius: 2000px;
- overflow: hidden;
- position: relative;
- &::after {
- position: absolute;
- content: '';
- width: 100%;
- height: 100%;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- background-color: rgba(0, 0, 0, 0.6);
- background-image: url('$(res)/img/voip/paused.svg');
- background-position: center;
- background-size: 40px;
- background-repeat: no-repeat;
- }
- .mx_CallView_pip &::after {
- background-size: 24px;
}
}
@@ -350,8 +310,14 @@ limitations under the License.
}
}
-// Makes the alignment correct
-.mx_CallView_callControls_nothing {
+.mx_CallView_callControls_dialpad {
+ margin-right: auto;
+ &::before {
+ background-image: url('$(res)/img/voip/dialpad.svg');
+ }
+}
+
+.mx_CallView_callControls_button_dialpad_hidden {
margin-right: auto;
cursor: initial;
}
diff --git a/res/css/views/voip/_DialPad.scss b/res/css/views/voip/_DialPad.scss
new file mode 100644
index 0000000000..0c7bff0ce8
--- /dev/null
+++ b/res/css/views/voip/_DialPad.scss
@@ -0,0 +1,62 @@
+/*
+Copyright 2020 The Matrix.org Foundation C.I.C.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+.mx_DialPad {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 16px;
+}
+
+.mx_DialPad_button {
+ width: 40px;
+ height: 40px;
+ background-color: $theme-button-bg-color;
+ border-radius: 40px;
+ font-size: 18px;
+ font-weight: 600;
+ text-align: center;
+ vertical-align: middle;
+ line-height: 40px;
+}
+
+.mx_DialPad_deleteButton, .mx_DialPad_dialButton {
+ &::before {
+ content: '';
+ display: inline-block;
+ height: 40px;
+ width: 40px;
+ vertical-align: middle;
+ mask-repeat: no-repeat;
+ mask-size: 20px;
+ mask-position: center;
+ background-color: $primary-bg-color;
+ }
+}
+
+.mx_DialPad_deleteButton {
+ background-color: $notice-primary-color;
+ &::before {
+ mask-image: url('$(res)/img/element-icons/call/delete.svg');
+ mask-position: 9px; // delete icon is right-heavy so have to be slightly to the left to look centered
+ }
+}
+
+.mx_DialPad_dialButton {
+ background-color: $accent-color;
+ &::before {
+ mask-image: url('$(res)/img/element-icons/call/voice-call.svg');
+ }
+}
diff --git a/src/utils/NamingUtils.ts b/res/css/views/voip/_DialPadContextMenu.scss
similarity index 50%
rename from src/utils/NamingUtils.ts
rename to res/css/views/voip/_DialPadContextMenu.scss
index 44ccb9b030..520f51cf93 100644
--- a/src/utils/NamingUtils.ts
+++ b/res/css/views/voip/_DialPadContextMenu.scss
@@ -14,16 +14,34 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-import * as projectNameGenerator from "project-name-generator";
-
-/**
- * Generates a human readable identifier. This should not be used for anything
- * which needs secure/cryptographic random: just a level uniquness that is offered
- * by something like Date.now().
- * @returns {string} The randomly generated ID
- */
-export function generateHumanReadableId(): string {
- return projectNameGenerator({words: 3}).raw.map(w => {
- return w[0].toUpperCase() + w.substring(1).toLowerCase();
- }).join('');
+.mx_DialPadContextMenu_header {
+ margin-top: 12px;
+ margin-left: 12px;
+ margin-right: 12px;
+}
+
+.mx_DialPadContextMenu_title {
+ color: $muted-fg-color;
+ font-size: 12px;
+ font-weight: 600;
+}
+
+.mx_DialPadContextMenu_dialled {
+ height: 1em;
+ font-size: 18px;
+ font-weight: 600;
+}
+
+.mx_DialPadContextMenu_dialPad {
+ margin: 16px;
+}
+
+.mx_DialPadContextMenu_horizSep {
+ position: relative;
+ &::before {
+ content: '';
+ position: absolute;
+ width: 100%;
+ border-bottom: 1px solid $input-darker-bg-color;
+ }
}
diff --git a/res/css/views/voip/_DialPadModal.scss b/res/css/views/voip/_DialPadModal.scss
new file mode 100644
index 0000000000..f9d7673a38
--- /dev/null
+++ b/res/css/views/voip/_DialPadModal.scss
@@ -0,0 +1,74 @@
+/*
+Copyright 2020 The Matrix.org Foundation C.I.C.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+.mx_Dialog_dialPadWrapper .mx_Dialog {
+ padding: 0px;
+}
+
+.mx_DialPadModal {
+ width: 192px;
+ height: 368px;
+}
+
+.mx_DialPadModal_header {
+ margin-top: 12px;
+ margin-left: 12px;
+ margin-right: 12px;
+}
+
+.mx_DialPadModal_title {
+ color: $muted-fg-color;
+ font-size: 12px;
+ font-weight: 600;
+}
+
+.mx_DialPadModal_cancel {
+ float: right;
+ mask: url('$(res)/img/feather-customised/cancel.svg');
+ mask-repeat: no-repeat;
+ mask-position: center;
+ mask-size: cover;
+ width: 14px;
+ height: 14px;
+ background-color: $dialog-close-fg-color;
+ cursor: pointer;
+}
+
+.mx_DialPadModal_field {
+ border: none;
+ margin: 0px;
+}
+
+.mx_DialPadModal_field input {
+ font-size: 18px;
+ font-weight: 600;
+}
+
+.mx_DialPadModal_dialPad {
+ margin-left: 16px;
+ margin-right: 16px;
+ margin-top: 16px;
+}
+
+.mx_DialPadModal_horizSep {
+ position: relative;
+ &::before {
+ content: '';
+ position: absolute;
+ width: 100%;
+ border-bottom: 1px solid $input-darker-bg-color;
+ }
+}
diff --git a/res/img/element-icons/brands/apple.svg b/res/img/element-icons/brands/apple.svg
new file mode 100644
index 0000000000..308c3c5d5a
--- /dev/null
+++ b/res/img/element-icons/brands/apple.svg
@@ -0,0 +1,3 @@
+
diff --git a/res/img/element-icons/brands/element.svg b/res/img/element-icons/brands/element.svg
new file mode 100644
index 0000000000..6861de0955
--- /dev/null
+++ b/res/img/element-icons/brands/element.svg
@@ -0,0 +1,6 @@
+
diff --git a/res/img/element-icons/brands/facebook.svg b/res/img/element-icons/brands/facebook.svg
new file mode 100644
index 0000000000..2742785424
--- /dev/null
+++ b/res/img/element-icons/brands/facebook.svg
@@ -0,0 +1,9 @@
+
diff --git a/res/img/element-icons/brands/github.svg b/res/img/element-icons/brands/github.svg
new file mode 100644
index 0000000000..503719520b
--- /dev/null
+++ b/res/img/element-icons/brands/github.svg
@@ -0,0 +1,3 @@
+
diff --git a/res/img/element-icons/brands/gitlab.svg b/res/img/element-icons/brands/gitlab.svg
new file mode 100644
index 0000000000..df84c41e21
--- /dev/null
+++ b/res/img/element-icons/brands/gitlab.svg
@@ -0,0 +1,9 @@
+
diff --git a/res/img/element-icons/brands/google.svg b/res/img/element-icons/brands/google.svg
new file mode 100644
index 0000000000..1b0b19ae5b
--- /dev/null
+++ b/res/img/element-icons/brands/google.svg
@@ -0,0 +1,6 @@
+
diff --git a/res/img/element-icons/brands/twitter.svg b/res/img/element-icons/brands/twitter.svg
new file mode 100644
index 0000000000..43eb825a59
--- /dev/null
+++ b/res/img/element-icons/brands/twitter.svg
@@ -0,0 +1,3 @@
+
diff --git a/res/img/element-icons/call/delete.svg b/res/img/element-icons/call/delete.svg
new file mode 100644
index 0000000000..133bdad4ca
--- /dev/null
+++ b/res/img/element-icons/call/delete.svg
@@ -0,0 +1,10 @@
+
diff --git a/res/img/element-icons/roomlist/dialpad.svg b/res/img/element-icons/roomlist/dialpad.svg
new file mode 100644
index 0000000000..b51d4a4dc9
--- /dev/null
+++ b/res/img/element-icons/roomlist/dialpad.svg
@@ -0,0 +1,3 @@
+
diff --git a/res/img/feather-customised/widget/maximise.svg b/res/img/feather-customised/maximise.svg
similarity index 100%
rename from res/img/feather-customised/widget/maximise.svg
rename to res/img/feather-customised/maximise.svg
diff --git a/res/img/feather-customised/widget/minimise.svg b/res/img/feather-customised/minimise.svg
similarity index 100%
rename from res/img/feather-customised/widget/minimise.svg
rename to res/img/feather-customised/minimise.svg
diff --git a/res/img/voip/dialpad.svg b/res/img/voip/dialpad.svg
new file mode 100644
index 0000000000..79c9ba1612
--- /dev/null
+++ b/res/img/voip/dialpad.svg
@@ -0,0 +1,17 @@
+
diff --git a/res/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 08fe2e9f57..a878aa3cdd 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -258,6 +258,12 @@ $composer-shadow-color: rgba(0, 0, 0, 0.28);
// markdown overrides:
.mx_EventTile_content .markdown-body pre:hover {
border-color: #808080 !important; // inverted due to rules below
+ scrollbar-color: rgba(0, 0, 0, 0.2) transparent; // copied from light theme due to inversion below
+ // the code above works only in Firefox, this is for other browsers
+ // see https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color
+ &::-webkit-scrollbar-thumb {
+ background-color: rgba(0, 0, 0, 0.2); // copied from light theme due to inversion below
+ }
}
.mx_EventTile_content .markdown-body {
pre, code {
diff --git a/res/themes/legacy-light/css/_legacy-light.scss b/res/themes/legacy-light/css/_legacy-light.scss
index 085d6d7f10..a740ba155c 100644
--- a/res/themes/legacy-light/css/_legacy-light.scss
+++ b/res/themes/legacy-light/css/_legacy-light.scss
@@ -237,7 +237,8 @@ $event-redacted-border-color: #cccccc;
$event-timestamp-color: #acacac;
$copy-button-url: "$(res)/img/feather-customised/clipboard.svg";
-
+$collapse-button-url: "$(res)/img/feather-customised/minimise.svg";
+$expand-button-url: "$(res)/img/feather-customised/maximise.svg";
// e2e
$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
diff --git a/res/themes/light/css/_light.scss b/res/themes/light/css/_light.scss
index 4cfeeae05e..1c89d83c01 100644
--- a/res/themes/light/css/_light.scss
+++ b/res/themes/light/css/_light.scss
@@ -237,6 +237,8 @@ $event-redacted-border-color: #cccccc;
$event-timestamp-color: #acacac;
$copy-button-url: "$(res)/img/feather-customised/clipboard.svg";
+$collapse-button-url: "$(res)/img/feather-customised/minimise.svg";
+$expand-button-url: "$(res)/img/feather-customised/maximise.svg";
// e2e
$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
diff --git a/scripts/ci/Dockerfile b/scripts/ci/Dockerfile
index 5351291f29..3fdd0d7bf6 100644
--- a/scripts/ci/Dockerfile
+++ b/scripts/ci/Dockerfile
@@ -1,8 +1,7 @@
# Update on docker hub with the following commands in the directory of this file:
# docker build -t vectorim/element-web-ci-e2etests-env:latest .
-# docker log
# docker push vectorim/element-web-ci-e2etests-env:latest
-FROM node:10
+FROM node:14-buster
RUN apt-get update
RUN apt-get -y install build-essential python3-dev libffi-dev python-pip python-setuptools sqlite3 libssl-dev python-virtualenv libjpeg-dev libxslt1-dev uuid-runtime
# dependencies for chrome (installed by puppeteer)
diff --git a/scripts/ci/install-deps.sh b/scripts/ci/install-deps.sh
index 14b5fc5393..bbda74ef9d 100755
--- a/scripts/ci/install-deps.sh
+++ b/scripts/ci/install-deps.sh
@@ -7,7 +7,6 @@ scripts/fetchdep.sh matrix-org matrix-js-sdk
pushd matrix-js-sdk
yarn link
yarn install $@
-yarn build
popd
yarn link matrix-js-sdk
diff --git a/scripts/ci/layered.sh b/scripts/ci/layered.sh
index 306f9c9974..039f90c7df 100755
--- a/scripts/ci/layered.sh
+++ b/scripts/ci/layered.sh
@@ -20,6 +20,7 @@ popd
yarn link matrix-js-sdk
yarn link
yarn install
+yarn reskindex
# Finally, set up element-web
scripts/fetchdep.sh vector-im element-web
diff --git a/scripts/reskindex.js b/scripts/reskindex.js
index 9fb0e1a7c0..12310b77c1 100755
--- a/scripts/reskindex.js
+++ b/scripts/reskindex.js
@@ -1,29 +1,30 @@
#!/usr/bin/env node
-var fs = require('fs');
-var path = require('path');
-var glob = require('glob');
-var args = require('minimist')(process.argv);
-var chokidar = require('chokidar');
+const fs = require('fs');
+const path = require('path');
+const glob = require('glob');
+const util = require('util');
+const args = require('minimist')(process.argv);
+const chokidar = require('chokidar');
-var componentIndex = path.join('src', 'component-index.js');
-var componentIndexTmp = componentIndex+".tmp";
-var componentsDir = path.join('src', 'components');
-var componentJsGlob = '**/*.js';
-var componentTsGlob = '**/*.tsx';
-var prevFiles = [];
+const componentIndex = path.join('src', 'component-index.js');
+const componentIndexTmp = componentIndex+".tmp";
+const componentsDir = path.join('src', 'components');
+const componentJsGlob = '**/*.js';
+const componentTsGlob = '**/*.tsx';
+let prevFiles = [];
-function reskindex() {
- var jsFiles = glob.sync(componentJsGlob, {cwd: componentsDir}).sort();
- var tsFiles = glob.sync(componentTsGlob, {cwd: componentsDir}).sort();
- var files = [...tsFiles, ...jsFiles];
+async function reskindex() {
+ const jsFiles = glob.sync(componentJsGlob, {cwd: componentsDir}).sort();
+ const tsFiles = glob.sync(componentTsGlob, {cwd: componentsDir}).sort();
+ const files = [...tsFiles, ...jsFiles];
if (!filesHaveChanged(files, prevFiles)) {
return;
}
prevFiles = files;
- var header = args.h || args.header;
+ const header = args.h || args.header;
- var strm = fs.createWriteStream(componentIndexTmp);
+ const strm = fs.createWriteStream(componentIndexTmp);
if (header) {
strm.write(fs.readFileSync(header));
@@ -38,11 +39,11 @@ function reskindex() {
strm.write(" */\n\n");
strm.write("let components = {};\n");
- for (var i = 0; i < files.length; ++i) {
- var file = files[i].replace('.js', '').replace('.tsx', '');
+ for (let i = 0; i < files.length; ++i) {
+ const file = files[i].replace('.js', '').replace('.tsx', '');
- var moduleName = (file.replace(/\//g, '.'));
- var importName = moduleName.replace(/\./g, "$");
+ const moduleName = (file.replace(/\//g, '.'));
+ const importName = moduleName.replace(/\./g, "$");
strm.write("import " + importName + " from './components/" + file + "';\n");
strm.write(importName + " && (components['"+moduleName+"'] = " + importName + ");");
@@ -51,9 +52,10 @@ function reskindex() {
}
strm.write("export {components};\n");
- strm.end();
+ // Ensure the file has been fully written to disk before proceeding
+ await util.promisify(strm.end);
fs.rename(componentIndexTmp, componentIndex, function(err) {
- if(err) {
+ if (err) {
console.error("Error moving new index into place: " + err);
} else {
console.log('Reskindex: completed');
@@ -67,7 +69,7 @@ function filesHaveChanged(files, prevFiles) {
return true;
}
// Check for name changes
- for (var i = 0; i < files.length; i++) {
+ for (let i = 0; i < files.length; i++) {
if (prevFiles[i] !== files[i]) {
return true;
}
@@ -81,7 +83,7 @@ if (!args.w) {
return;
}
-var watchDebouncer = null;
+let watchDebouncer = null;
chokidar.watch(path.join(componentsDir, componentJsGlob)).on('all', (event, path) => {
if (path === componentIndex) return;
if (watchDebouncer) clearTimeout(watchDebouncer);
diff --git a/src/@types/global.d.ts b/src/@types/global.d.ts
index 741798761f..28f22780a2 100644
--- a/src/@types/global.d.ts
+++ b/src/@types/global.d.ts
@@ -36,6 +36,8 @@ import {Analytics} from "../Analytics";
import CountlyAnalytics from "../CountlyAnalytics";
import UserActivity from "../UserActivity";
import {ModalWidgetStore} from "../stores/ModalWidgetStore";
+import { WidgetLayoutStore } from "../stores/widgets/WidgetLayoutStore";
+import VoipUserMapper from "../VoipUserMapper";
declare global {
interface Window {
@@ -59,11 +61,13 @@ declare global {
mxNotifier: typeof Notifier;
mxRightPanelStore: RightPanelStore;
mxWidgetStore: WidgetStore;
+ mxWidgetLayoutStore: WidgetLayoutStore;
mxCallHandler: CallHandler;
mxAnalytics: Analytics;
mxCountlyAnalytics: typeof CountlyAnalytics;
mxUserActivity: UserActivity;
mxModalWidgetStore: ModalWidgetStore;
+ mxVoipUserMapper: VoipUserMapper;
}
interface Document {
diff --git a/src/BasePlatform.ts b/src/BasePlatform.ts
index c301aa6a10..d0d5e60ce8 100644
--- a/src/BasePlatform.ts
+++ b/src/BasePlatform.ts
@@ -30,6 +30,7 @@ import {idbLoad, idbSave, idbDelete} from "./utils/StorageManager";
export const SSO_HOMESERVER_URL_KEY = "mx_sso_hs_url";
export const SSO_ID_SERVER_URL_KEY = "mx_sso_is_url";
+export const SSO_IDP_ID_KEY = "mx_sso_idp_id";
export enum UpdateCheckStatus {
Checking = "CHECKING",
@@ -56,7 +57,7 @@ export default abstract class BasePlatform {
this.startUpdateCheck = this.startUpdateCheck.bind(this);
}
- abstract async getConfig(): Promise<{}>;
+ abstract getConfig(): Promise<{}>;
abstract getDefaultDeviceDisplayName(): string;
@@ -258,6 +259,9 @@ export default abstract class BasePlatform {
if (mxClient.getIdentityServerUrl()) {
localStorage.setItem(SSO_ID_SERVER_URL_KEY, mxClient.getIdentityServerUrl());
}
+ if (idpId) {
+ localStorage.setItem(SSO_IDP_ID_KEY, idpId);
+ }
const callbackUrl = this.getSSOCallbackUrl(fragmentAfterLogin);
window.location.href = mxClient.getSsoLoginUrl(callbackUrl.toString(), loginType, idpId); // redirect to SSO
}
diff --git a/src/CallHandler.tsx b/src/CallHandler.tsx
index fac4d6fc4e..f73424fd4d 100644
--- a/src/CallHandler.tsx
+++ b/src/CallHandler.tsx
@@ -64,7 +64,6 @@ import dis from './dispatcher/dispatcher';
import WidgetUtils from './utils/WidgetUtils';
import WidgetEchoStore from './stores/WidgetEchoStore';
import SettingsStore from './settings/SettingsStore';
-import {generateHumanReadableId} from "./utils/NamingUtils";
import {Jitsi} from "./widgets/Jitsi";
import {WidgetType} from "./widgets/WidgetType";
import {SettingLevel} from "./settings/SettingLevel";
@@ -82,6 +81,21 @@ import CountlyAnalytics from "./CountlyAnalytics";
import {UIFeature} from "./settings/UIFeature";
import { CallError } from "matrix-js-sdk/src/webrtc/call";
import { logger } from 'matrix-js-sdk/src/logger';
+import DesktopCapturerSourcePicker from "./components/views/elements/DesktopCapturerSourcePicker"
+import { Action } from './dispatcher/actions';
+import VoipUserMapper from './VoipUserMapper';
+import { addManagedHybridWidget, isManagedHybridWidgetEnabled } from './widgets/ManagedHybrid';
+import { randomString } from "matrix-js-sdk/src/randomstring";
+
+export const PROTOCOL_PSTN = 'm.protocol.pstn';
+export const PROTOCOL_PSTN_PREFIXED = 'im.vector.protocol.pstn';
+export const PROTOCOL_SIP_NATIVE = 'im.vector.protocol.sip_native';
+export const PROTOCOL_SIP_VIRTUAL = 'im.vector.protocol.sip_virtual';
+
+const CHECK_PROTOCOLS_ATTEMPTS = 3;
+// Event type for room account data and room creation content used to mark rooms as virtual rooms
+// (and store the ID of their native room)
+export const VIRTUAL_ROOM_EVENT_TYPE = 'im.vector.is_virtual_room';
enum AudioID {
Ring = 'ringAudio',
@@ -90,6 +104,29 @@ enum AudioID {
Busy = 'busyAudio',
}
+interface ThirdpartyLookupResponseFields {
+ /* eslint-disable camelcase */
+
+ // im.vector.sip_native
+ virtual_mxid?: string;
+ is_virtual?: boolean;
+
+ // im.vector.sip_virtual
+ native_mxid?: string;
+ is_native?: boolean;
+
+ // common
+ lookup_success?: boolean;
+
+ /* eslint-enable camelcase */
+}
+
+interface ThirdpartyLookupResponse {
+ userid: string,
+ protocol: string,
+ fields: ThirdpartyLookupResponseFields,
+}
+
// Unlike 'CallType' in js-sdk, this one includes screen sharing
// (because a screen sharing call is only a screen sharing call to the caller,
// to the callee it's just a video call, at least as far as the current impl
@@ -119,6 +156,13 @@ export default class CallHandler {
private calls = new Map
{_t( "We'll store an encrypted copy of your keys on our server. " + - "Secure your backup with a recovery passphrase.", + "Secure your backup with a Security Phrase.", )}
{_t("For maximum security, this should be different from your account password.")}
@@ -252,10 +252,10 @@ export default class CreateKeyBackupDialog extends React.PureComponent { onValidate={this._onPassPhraseValidate} fieldRef={this._passphraseField} autoFocus={true} - label={_td("Enter a recovery passphrase")} - labelEnterPassword={_td("Enter a recovery passphrase")} - labelStrongPassword={_td("Great! This recovery passphrase looks strong enough.")} - labelAllowedButUnsafe={_td("Great! This recovery passphrase looks strong enough.")} + label={_td("Enter a Security Phrase")} + labelEnterPassword={_td("Enter a Security Phrase")} + labelStrongPassword={_td("Great! This Security Phrase looks strong enough.")} + labelAllowedButUnsafe={_td("Great! This Security Phrase looks strong enough.")} /> @@ -270,7 +270,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {- {_t( - "A widget located at %(widgetUrl)s would like to verify your identity. " + - "By allowing this, the widget will be able to verify your user ID, but not " + - "perform actions as you.", { - widgetUrl: this.props.widget.templateUrl.split("?")[0], - }, - )} + {_t("The widget will verify your user ID, but won't be able to perform actions for you:")} +
++ {/* cheap trim to just get the path */} + {this.props.widget.templateUrl.split("?")[0].split("#")[0]}
-{_t( - "Backup could not be decrypted with this recovery key: " + - "please verify that you entered the correct recovery key.", + "Backup could not be decrypted with this Security Key: " + + "please verify that you entered the correct Security Key.", )}
{_t( - "Backup could not be decrypted with this recovery passphrase: " + - "please verify that you entered the correct recovery passphrase.", + "Backup could not be decrypted with this Security Phrase: " + + "please verify that you entered the correct Security Phrase.", )}
{_t( "Warning: you should only set up key backup " + @@ -351,7 +351,7 @@ export default class RestoreKeyBackupDialog extends React.PureComponent { )}
{_t( "Access your secure message history and set up secure " + - "messaging by entering your recovery passphrase.", + "messaging by entering your Security Phrase.", )}
{_t( "Access your secure message history and set up secure " + - "messaging by entering your recovery key.", + "messaging by entering your Security Key.", )}
so that the copy button can be correctly positioned + // when theoverflows and is scrolled horizontally. + const div = this._wrapInDiv(pres[i]); + this._handleCodeBlockExpansion(pres[i]); + this._addCodeExpansionButton(div, pres[i]); + this._addCodeCopyButton(div); + if (showLineNumbers) { + this._addLineNumbers(pres[i]); + } + } + } + // Highlight code + const codes = ReactDOM.findDOMNode(this).getElementsByTagName("code"); + if (codes.length > 0) { // Do this asynchronously: parsing code takes time and we don't // need to block the DOM update on it. setTimeout(() => { if (this._unmounted) return; - for (let i = 0; i < blocks.length; i++) { - if (SettingsStore.getValue("enableSyntaxHighlightLanguageDetection")) { - highlight.highlightBlock(blocks[i]); - } else { - // Only syntax highlight if there's a class starting with language- - const classes = blocks[i].className.split(/\s+/).filter(function(cl) { - return cl.startsWith('language-') && !cl.startsWith('language-_'); - }); - - if (classes.length != 0) { - highlight.highlightBlock(blocks[i]); - } - } + for (let i = 0; i < codes.length; i++) { + // If the code already has the hljs class we want to skip this. + // This happens after the codeblock was edited. + if (codes[i].className.includes("hljs")) continue; + this._highlightCode(codes[i]); } }, 10); } - this._addCodeCopyButton(); + } + } + + _addCodeExpansionButton(div, pre) { + // Calculate how many percent does the pre element take up. + // If it's less than 30% we don't add the expansion button. + const percentageOfViewport = pre.offsetHeight / window.innerHeight * 100; + if (percentageOfViewport < 30) return; + + const button = document.createElement("span"); + button.className = "mx_EventTile_button "; + if (pre.className == "mx_EventTile_collapsedCodeBlock") { + button.className += "mx_EventTile_expandButton"; + } else { + button.className += "mx_EventTile_collapseButton"; + } + + button.onclick = async () => { + button.className = "mx_EventTile_button "; + if (pre.className == "mx_EventTile_collapsedCodeBlock") { + pre.className = ""; + button.className += "mx_EventTile_collapseButton"; + } else { + pre.className = "mx_EventTile_collapsedCodeBlock"; + button.className += "mx_EventTile_expandButton"; + } + + // By expanding/collapsing we changed + // the height, therefore we call this + this.props.onHeightChanged(); + }; + + div.appendChild(button); + } + + _addCodeCopyButton(div) { + const button = document.createElement("span"); + button.className = "mx_EventTile_button mx_EventTile_copyButton "; + + // Check if expansion button exists. If so + // we put the copy button to the bottom + const expansionButtonExists = div.getElementsByClassName("mx_EventTile_button"); + if (expansionButtonExists.length > 0) button.className += "mx_EventTile_buttonBottom"; + + button.onclick = async () => { + const copyCode = button.parentNode.getElementsByTagName("code")[0]; + const successful = await copyPlaintext(copyCode.textContent); + + const buttonRect = button.getBoundingClientRect(); + const GenericTextContextMenu = sdk.getComponent('context_menus.GenericTextContextMenu'); + const {close} = ContextMenu.createMenu(GenericTextContextMenu, { + ...toRightOf(buttonRect, 2), + message: successful ? _t('Copied!') : _t('Failed to copy'), + }); + button.onmouseleave = close; + }; + + div.appendChild(button); + } + + _wrapInDiv(pre) { + const div = document.createElement("div"); + div.className = "mx_EventTile_pre_container"; + + // Insert containing div in place ofblock + pre.parentNode.replaceChild(div, pre); + // Appendblock and copy button to container + div.appendChild(pre); + + return div; + } + + _handleCodeBlockExpansion(pre) { + if (!SettingsStore.getValue("expandCodeByDefault")) { + pre.className = "mx_EventTile_collapsedCodeBlock"; + } + } + + _addLineNumbers(pre) { + pre.innerHTML = '' + pre.innerHTML + ''; + const lineNumbers = pre.getElementsByClassName("mx_EventTile_lineNumbers")[0]; + // Calculate number of lines in pre + const number = pre.innerHTML.split(/\n/).length; + // Iterate through lines starting with 1 (number of the first line is 1) + for (let i = 1; i < number; i++) { + lineNumbers.innerHTML += '' + i + ''; + } + } + + _highlightCode(code) { + if (SettingsStore.getValue("enableSyntaxHighlightLanguageDetection")) { + highlight.highlightBlock(code); + } else { + // Only syntax highlight if there's a class starting with language- + const classes = code.className.split(/\s+/).filter(function(cl) { + return cl.startsWith('language-') && !cl.startsWith('language-_'); + }); + + if (classes.length != 0) { + highlight.highlightBlock(code); + } } } @@ -254,38 +366,6 @@ export default class TextualBody extends React.Component { } } - _addCodeCopyButton() { - // Add 'copy' buttons to pre blocks - Array.from(ReactDOM.findDOMNode(this).querySelectorAll('.mx_EventTile_body pre')).forEach((p) => { - const button = document.createElement("span"); - button.className = "mx_EventTile_copyButton"; - button.onclick = async () => { - const copyCode = button.parentNode.getElementsByTagName("pre")[0]; - const successful = await copyPlaintext(copyCode.textContent); - - const buttonRect = button.getBoundingClientRect(); - const GenericTextContextMenu = sdk.getComponent('context_menus.GenericTextContextMenu'); - const {close} = ContextMenu.createMenu(GenericTextContextMenu, { - ...toRightOf(buttonRect, 2), - message: successful ? _t('Copied!') : _t('Failed to copy'), - }); - button.onmouseleave = close; - }; - - // Wrap a div aroundso that the copy button can be correctly positioned - // when theoverflows and is scrolled horizontally. - const div = document.createElement("div"); - div.className = "mx_EventTile_pre_container"; - - // Insert containing div in place ofblock - p.parentNode.replaceChild(div, p); - - // Appendblock and copy button to container - div.appendChild(p); - div.appendChild(button); - }); - } - onCancelClick = event => { this.setState({ widgetHidden: true }); // FIXME: persist this somewhere smarter than local storage @@ -410,7 +490,10 @@ export default class TextualBody extends React.Component { ref: this._content, }); if (this.props.replacingEventId) { - body = [body, this._renderEditedMarker()]; + body = <> + {body} + {this._renderEditedMarker()} + >; } if (this.props.highlightLink) { diff --git a/src/components/views/right_panel/BaseCard.tsx b/src/components/views/right_panel/BaseCard.tsx index 5927c7c3cc..09973809de 100644 --- a/src/components/views/right_panel/BaseCard.tsx +++ b/src/components/views/right_panel/BaseCard.tsx @@ -33,6 +33,7 @@ interface IProps { previousPhase?: RightPanelPhases; closeLabel?: string; onClose?(): void; + refireParams?; } interface IGroupProps { @@ -56,6 +57,7 @@ const BaseCard: React.FC= ({ withoutScrollContainer, previousPhase, children, + refireParams, }) => { let backButton; if (previousPhase) { @@ -63,6 +65,7 @@ const BaseCard: React.FC = ({ defaultDispatcher.dispatch ({ action: Action.SetRightPanelPhase, phase: previousPhase, + refireParams: refireParams, }); }; backButton = ; diff --git a/src/components/views/right_panel/RoomSummaryCard.tsx b/src/components/views/right_panel/RoomSummaryCard.tsx index ebc07e76b8..bbe61807ae 100644 --- a/src/components/views/right_panel/RoomSummaryCard.tsx +++ b/src/components/views/right_panel/RoomSummaryCard.tsx @@ -37,13 +37,14 @@ import SettingsStore from "../../../settings/SettingsStore"; import TextWithTooltip from "../elements/TextWithTooltip"; import WidgetAvatar from "../avatars/WidgetAvatar"; import AccessibleTooltipButton from "../elements/AccessibleTooltipButton"; -import WidgetStore, {IApp, MAX_PINNED} from "../../../stores/WidgetStore"; +import WidgetStore, {IApp} from "../../../stores/WidgetStore"; import { E2EStatus } from "../../../utils/ShieldUtils"; import RoomContext from "../../../contexts/RoomContext"; import {UIFeature} from "../../../settings/UIFeature"; import {ChevronFace, ContextMenuTooltipButton, useContextMenu} from "../../structures/ContextMenu"; import WidgetContextMenu from "../context_menus/WidgetContextMenu"; import {useRoomMemberCount} from "../../../hooks/useRoomMembers"; +import { Container, MAX_PINNED, WidgetLayoutStore } from "../../../stores/widgets/WidgetLayoutStore"; interface IProps { room: Room; @@ -76,8 +77,9 @@ export const useWidgets = (room: Room) => { setApps([...WidgetStore.instance.getApps(room.roomId)]); }, [room]); - useEffect(updateApps, [room]); + useEffect(updateApps, [room, updateApps]); useEventEmitter(WidgetStore.instance, room.roomId, updateApps); + useEventEmitter(WidgetLayoutStore.instance, WidgetLayoutStore.emissionForRoom(room), updateApps); return apps; }; @@ -102,10 +104,10 @@ const AppRow: React.FC = ({ app, room }) => { }); }; - const isPinned = WidgetStore.instance.isPinned(room.roomId, app.id); + const isPinned = WidgetLayoutStore.instance.isInContainer(room, app, Container.Top); const togglePin = isPinned - ? () => { WidgetStore.instance.unpinWidget(room.roomId, app.id); } - : () => { WidgetStore.instance.pinWidget(room.roomId, app.id); }; + ? () => { WidgetLayoutStore.instance.moveToContainer(room, app, Container.Right); } + : () => { WidgetLayoutStore.instance.moveToContainer(room, app, Container.Top); }; const [menuDisplayed, handle, openMenu, closeMenu] = useContextMenu (); let contextMenu; @@ -120,7 +122,7 @@ const AppRow: React.FC = ({ app, room }) => { />; } - const cannotPin = !isPinned && !WidgetStore.instance.canPin(room.roomId, app.id); + const cannotPin = !isPinned && !WidgetLayoutStore.instance.canAddToContainer(room, Container.Top); let pinTitle: string; if (cannotPin) { @@ -184,9 +186,18 @@ const AppsSection: React.FC = ({ room }) => { } }; + let copyLayoutBtn = null; + if (apps.length > 0 && WidgetLayoutStore.instance.canCopyLayoutToRoom(room)) { + copyLayoutBtn = ( + WidgetLayoutStore.instance.copyLayoutToRoom(room)}> + { _t("Set my room layout for everyone") } + + ); + } + return{ apps.map(app => ) } - + { copyLayoutBtn } { apps.length > 0 ? _t("Edit widgets, bridges & bots") : _t("Add widgets, bridges & bots") } diff --git a/src/components/views/right_panel/UserInfo.tsx b/src/components/views/right_panel/UserInfo.tsx index cdb4c43b09..a4b5cd0fbb 100644 --- a/src/components/views/right_panel/UserInfo.tsx +++ b/src/components/views/right_panel/UserInfo.tsx @@ -60,6 +60,7 @@ import QuestionDialog from "../dialogs/QuestionDialog"; import ConfirmUserActionDialog from "../dialogs/ConfirmUserActionDialog"; import InfoDialog from "../dialogs/InfoDialog"; import { EventType } from "matrix-js-sdk/src/@types/event"; +import {SetRightPanelPhasePayload} from "../../../dispatcher/payloads/SetRightPanelPhasePayload"; interface IDevice { deviceId: string; @@ -1534,6 +1535,24 @@ const UserInfo: React.FC= ({ const classes = ["mx_UserInfo"]; + let refireParams; + let previousPhase: RightPanelPhases; + // We have no previousPhase for when viewing a UserInfo from a Group or without a Room at this time + if (room && phase === RightPanelPhases.EncryptionPanel) { + previousPhase = RightPanelPhases.RoomMemberInfo; + refireParams = {member: member}; + } else if (room) { + previousPhase = RightPanelPhases.RoomMemberList; + } + + const onEncryptionPanelClose = () => { + dis.dispatch ({ + action: Action.SetRightPanelPhase, + phase: previousPhase, + refireParams: refireParams, + }); + } + let content; switch (phase) { case RightPanelPhases.RoomMemberInfo: @@ -1553,19 +1572,13 @@ const UserInfo: React.FC = ({ } member={member} - onClose={onClose} + onClose={onEncryptionPanelClose} isRoomEncrypted={isRoomEncrypted} /> ); break; } - let previousPhase: RightPanelPhases; - // We have no previousPhase for when viewing a UserInfo from a Group or without a Room at this time - if (room) { - previousPhase = RightPanelPhases.RoomMemberList; - } - let closeLabel = undefined; if (phase === RightPanelPhases.EncryptionPanel) { const verificationRequest = (props as React.ComponentProps ).verificationRequest; @@ -1581,6 +1594,7 @@ const UserInfo: React.FC = ({ onClose={onClose} closeLabel={closeLabel} previousPhase={previousPhase} + refireParams={refireParams} > { content } ; diff --git a/src/components/views/right_panel/WidgetCard.tsx b/src/components/views/right_panel/WidgetCard.tsx index 593bd0dde7..56e522e206 100644 --- a/src/components/views/right_panel/WidgetCard.tsx +++ b/src/components/views/right_panel/WidgetCard.tsx @@ -14,22 +14,22 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, {useContext, useEffect} from "react"; -import {Room} from "matrix-js-sdk/src/models/room"; +import React, { useContext, useEffect } from "react"; +import { Room } from "matrix-js-sdk/src/models/room"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; import BaseCard from "./BaseCard"; import WidgetUtils from "../../../utils/WidgetUtils"; import AppTile from "../elements/AppTile"; -import {_t} from "../../../languageHandler"; -import {useWidgets} from "./RoomSummaryCard"; -import {RightPanelPhases} from "../../../stores/RightPanelStorePhases"; +import { _t } from "../../../languageHandler"; +import { useWidgets } from "./RoomSummaryCard"; +import { RightPanelPhases } from "../../../stores/RightPanelStorePhases"; import defaultDispatcher from "../../../dispatcher/dispatcher"; -import {SetRightPanelPhasePayload} from "../../../dispatcher/payloads/SetRightPanelPhasePayload"; -import {Action} from "../../../dispatcher/actions"; -import WidgetStore from "../../../stores/WidgetStore"; -import {ChevronFace, ContextMenuButton, useContextMenu} from "../../structures/ContextMenu"; +import { SetRightPanelPhasePayload } from "../../../dispatcher/payloads/SetRightPanelPhasePayload"; +import { Action } from "../../../dispatcher/actions"; +import { ChevronFace, ContextMenuButton, useContextMenu } from "../../structures/ContextMenu"; import WidgetContextMenu from "../context_menus/WidgetContextMenu"; +import { Container, WidgetLayoutStore } from "../../../stores/widgets/WidgetLayoutStore"; interface IProps { room: Room; @@ -42,7 +42,7 @@ const WidgetCard: React.FC = ({ room, widgetId, onClose }) => { const apps = useWidgets(room); const app = apps.find(a => a.id === widgetId); - const isPinned = app && WidgetStore.instance.isPinned(room.roomId, app.id); + const isPinned = app && WidgetLayoutStore.instance.isInContainer(room, app, Container.Top); const [menuDisplayed, handle, openMenu, closeMenu] = useContextMenu(); diff --git a/src/components/views/room_settings/RoomProfileSettings.js b/src/components/views/room_settings/RoomProfileSettings.js index ca09c3093a..c651216e8c 100644 --- a/src/components/views/room_settings/RoomProfileSettings.js +++ b/src/components/views/room_settings/RoomProfileSettings.js @@ -69,19 +69,24 @@ export default class RoomProfileSettings extends React.Component { // clear file upload field so same file can be selected this._avatarUpload.current.value = ""; this.setState({ - avatarUrl: undefined, - avatarFile: undefined, + avatarUrl: null, + avatarFile: null, enableProfileSave: true, }); }; - _clearProfile = async (e) => { + _cancelProfileChanges = async (e) => { e.stopPropagation(); e.preventDefault(); if (!this.state.enableProfileSave) return; - this._removeAvatar(); - this.setState({enableProfileSave: false, displayName: this.state.originalDisplayName}); + this.setState({ + enableProfileSave: false, + displayName: this.state.originalDisplayName, + topic: this.state.originalTopic, + avatarUrl: this.state.originalAvatarUrl, + avatarFile: null, + }); }; _saveProfile = async (e) => { @@ -108,7 +113,7 @@ export default class RoomProfileSettings extends React.Component { newState.originalAvatarUrl = newState.avatarUrl; newState.avatarFile = null; } else if (this.state.originalAvatarUrl !== this.state.avatarUrl) { - await client.sendStateEvent(this.props.roomId, 'm.room.avatar', {url: undefined}, ''); + await client.sendStateEvent(this.props.roomId, 'm.room.avatar', {}, ''); } if (this.state.originalTopic !== this.state.topic) { @@ -120,17 +125,21 @@ export default class RoomProfileSettings extends React.Component { }; _onDisplayNameChanged = (e) => { - this.setState({ - displayName: e.target.value, - enableProfileSave: true, - }); + this.setState({displayName: e.target.value}); + if (this.state.originalDisplayName === e.target.value) { + this.setState({enableProfileSave: false}); + } else { + this.setState({enableProfileSave: true}); + } }; _onTopicChanged = (e) => { - this.setState({ - topic: e.target.value, - enableProfileSave: true, - }); + this.setState({topic: e.target.value}); + if (this.state.originalTopic === e.target.value) { + this.setState({enableProfileSave: false}); + } else { + this.setState({enableProfileSave: true}); + } }; _onAvatarChanged = (e) => { @@ -158,6 +167,33 @@ export default class RoomProfileSettings extends React.Component { render() { const AccessibleButton = sdk.getComponent('elements.AccessibleButton'); const AvatarSetting = sdk.getComponent('settings.AvatarSetting'); + + let profileSettingsButtons; + if ( + this.state.canSetName || + this.state.canSetTopic || + this.state.canSetAvatar + ) { + profileSettingsButtons = ( + ++ ); + } + return (+ {_t("Cancel")} + ++ {_t("Save")} + +- @@ -183,22 +219,7 @@ export default class RoomProfileSettings extends React.Component { uploadAvatar={this.state.canSetAvatar ? this._uploadAvatar : undefined} removeAvatar={this.state.canSetAvatar ? this._removeAvatar : undefined} /> - -+ { profileSettingsButtons } ); } diff --git a/src/components/views/rooms/AppsDrawer.js b/src/components/views/rooms/AppsDrawer.js index 3208844bc5..ef30e4a8f5 100644 --- a/src/components/views/rooms/AppsDrawer.js +++ b/src/components/views/rooms/AppsDrawer.js @@ -28,12 +28,13 @@ import WidgetUtils from '../../../utils/WidgetUtils'; import WidgetEchoStore from "../../../stores/WidgetEchoStore"; import {IntegrationManagers} from "../../../integrations/IntegrationManagers"; import SettingsStore from "../../../settings/SettingsStore"; -import {useLocalStorageState} from "../../../hooks/useLocalStorageState"; import ResizeNotifier from "../../../utils/ResizeNotifier"; -import WidgetStore from "../../../stores/WidgetStore"; import ResizeHandle from "../elements/ResizeHandle"; import Resizer from "../../../resizer/resizer"; import PercentageDistributor from "../../../resizer/distributors/percentage"; +import {Container, WidgetLayoutStore} from "../../../stores/widgets/WidgetLayoutStore"; +import {clamp, percentageOf, percentageWithin} from "../../../utils/numbers"; +import {useStateCallback} from "../../../hooks/useStateCallback"; export default class AppsDrawer extends React.Component { static propTypes = { @@ -62,13 +63,13 @@ export default class AppsDrawer extends React.Component { componentDidMount() { ScalarMessaging.startListening(); - WidgetStore.instance.on(this.props.room.roomId, this._updateApps); + WidgetLayoutStore.instance.on(WidgetLayoutStore.emissionForRoom(this.props.room), this._updateApps); this.dispatcherRef = dis.register(this.onAction); } componentWillUnmount() { ScalarMessaging.stopListening(); - WidgetStore.instance.off(this.props.room.roomId, this._updateApps); + WidgetLayoutStore.instance.off(WidgetLayoutStore.emissionForRoom(this.props.room), this._updateApps); if (this.dispatcherRef) dis.unregister(this.dispatcherRef); if (this._resizeContainer) { this.resizer.detach(); @@ -102,11 +103,10 @@ export default class AppsDrawer extends React.Component { }, onResizeStop: () => { this._resizeContainer.classList.remove("mx_AppsDrawer_resizing"); - // persist to localStorage - localStorage.setItem(this._getStorageKey(), JSON.stringify([ - this.state.apps.map(app => app.id), - ...this.state.apps.slice(1).map((_, i) => this.resizer.forHandleAt(i).size), - ])); + WidgetLayoutStore.instance.setResizerDistributions( + this.props.room, Container.Top, + this.state.apps.slice(1).map((_, i) => this.resizer.forHandleAt(i).size), + ); }, }; // pass a truthy container for now, we won't call attach until we update it @@ -128,8 +128,6 @@ export default class AppsDrawer extends React.Component { this._loadResizerPreferences(); }; - _getStorageKey = () => `mx_apps_drawer-${this.props.room.roomId}`; - _getAppsHash = (apps) => apps.map(app => app.id).join("~"); componentDidUpdate(prevProps, prevState) { @@ -147,24 +145,16 @@ export default class AppsDrawer extends React.Component { }; _loadResizerPreferences = () => { - try { - const [[...lastIds], ...sizes] = JSON.parse(localStorage.getItem(this._getStorageKey())); - // Every app was included in the last split, reuse the last sizes - if (this.state.apps.length <= lastIds.length && this.state.apps.every((app, i) => lastIds[i] === app.id)) { - sizes.forEach((size, i) => { - const distributor = this.resizer.forHandleAt(i); - if (distributor) { - distributor.size = size; - distributor.finish(); - } - }); - return; - } - } catch (e) { - // this is expected - } - - if (this.state.apps) { + const distributions = WidgetLayoutStore.instance.getResizerDistributions(this.props.room, Container.Top); + if (this.state.apps && (this.state.apps.length - 1) === distributions.length) { + distributions.forEach((size, i) => { + const distributor = this.resizer.forHandleAt(i); + if (distributor) { + distributor.size = size; + distributor.finish(); + } + }); + } else if (this.state.apps) { const distributors = this.resizer.getDistributors(); distributors.forEach(d => d.item.clearSize()); distributors.forEach(d => d.start()); @@ -190,7 +180,7 @@ export default class AppsDrawer extends React.Component { } }; - _getApps = () => WidgetStore.instance.getPinnedApps(this.props.room.roomId); + _getApps = () => WidgetLayoutStore.instance.getContainerWidgets(this.props.room, Container.Top); _updateApps = () => { this.setState({ @@ -248,10 +238,11 @@ export default class AppsDrawer extends React.Component { return (- {_t("Cancel")} - -- {_t("Save")} - -); } diff --git a/src/components/views/rooms/MessageComposer.js b/src/components/views/rooms/MessageComposer.js index 4ddff8f4b0..6a867386f7 100644 --- a/src/components/views/rooms/MessageComposer.js +++ b/src/components/views/rooms/MessageComposer.js @@ -109,9 +109,12 @@ function HangupButton(props) { dis.dispatch({ action, - // hangup the call for this room, which may not be the room in props - // (e.g. conferences which will hangup the 1:1 room instead) - room_id: call.roomId, + // hangup the call for this room. NB. We use the room in props as the room ID + // as call.roomId may be the 'virtual room', and the dispatch actions always + // use the user-facing room (there was a time when we deliberately used + // call.roomId and *not* props.roomId, but that was for the old + // style Freeswitch conference calls and those times are gone.) + room_id: props.roomId, }); }; @@ -423,7 +426,8 @@ export default class MessageComposer extends React.Component {@@ -272,7 +263,7 @@ export default class AppsDrawer extends React.Component { } const PersistentVResizer = ({ - id, + room, minHeight, maxHeight, className, @@ -281,7 +272,24 @@ const PersistentVResizer = ({ resizeNotifier, children, }) => { - const [height, setHeight] = useLocalStorageState("pvr_" + id, 280); // old fixed height was 273px + let defaultHeight = WidgetLayoutStore.instance.getContainerHeight(room, Container.Top); + + // Arbitrary defaults to avoid NaN problems. 100 px or 3/4 of the visible window. + if (!minHeight) minHeight = 100; + if (!maxHeight) maxHeight = (window.innerHeight / 4) * 3; + + // Convert from percentage to height. Note that the default height is 280px. + if (defaultHeight) { + defaultHeight = clamp(defaultHeight, 0, 100); + defaultHeight = percentageWithin(defaultHeight / 100, minHeight, maxHeight); + } else { + defaultHeight = 280; + } + + const [height, setHeight] = useStateCallback(defaultHeight, newHeight => { + newHeight = percentageOf(newHeight, minHeight, maxHeight) * 100; + WidgetLayoutStore.instance.setContainerHeight(room, Container.Top, newHeight); + }); return private async tabCompleteName(event: React.KeyboardEvent) { try { - await new Promise(resolve => this.setState({showVisualBell: false}, resolve)); + await new Promise (resolve => this.setState({showVisualBell: false}, resolve)); const {model} = this.props; const caret = this.getCaret(); const position = model.positionForOffset(caret.offset, caret.atNodeEnd); diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js index 11277daa57..c856919f5a 100644 --- a/src/components/views/rooms/EventTile.js +++ b/src/components/views/rooms/EventTile.js @@ -27,6 +27,7 @@ import * as TextForEvent from "../../../TextForEvent"; import * as sdk from "../../../index"; import dis from '../../../dispatcher/dispatcher'; import SettingsStore from "../../../settings/SettingsStore"; +import {Layout, LayoutPropType} from "../../../settings/Layout"; import {EventStatus} from 'matrix-js-sdk'; import {formatTime} from "../../../DateUtils"; import {MatrixClientPeg} from '../../../MatrixClientPeg'; @@ -37,6 +38,7 @@ import {E2E_STATE} from "./E2EIcon"; import {toRem} from "../../../utils/units"; import {WidgetType} from "../../../widgets/WidgetType"; import RoomAvatar from "../avatars/RoomAvatar"; +import {WIDGET_LAYOUT_EVENT_TYPE} from "../../../stores/widgets/WidgetLayoutStore"; const eventTileTypes = { 'm.room.message': 'messages.MessageEvent', @@ -65,6 +67,7 @@ const stateEventTileTypes = { 'm.room.server_acl': 'messages.TextualEvent', // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 'im.vector.modular.widgets': 'messages.TextualEvent', + [WIDGET_LAYOUT_EVENT_TYPE]: 'messages.TextualEvent', 'm.room.tombstone': 'messages.TextualEvent', 'm.room.join_rules': 'messages.TextualEvent', 'm.room.guest_access': 'messages.TextualEvent', @@ -225,8 +228,8 @@ export default class EventTile extends React.Component { // whether to show reactions for this event showReactions: PropTypes.bool, - // whether to use the irc layout - useIRCLayout: PropTypes.bool, + // which layout to use + layout: LayoutPropType, // whether or not to show flair at all enableFlair: PropTypes.bool, @@ -732,7 +735,7 @@ export default class EventTile extends React.Component { // joins/parts/etc avatarSize = 14; needsSenderProfile = false; - } else if (this.props.useIRCLayout) { + } else if (this.props.layout == Layout.IRC) { avatarSize = 14; needsSenderProfile = true; } else if (this.props.continuation && this.props.tileShape !== "file_grid") { @@ -843,10 +846,11 @@ export default class EventTile extends React.Component { { timestamp } ; - const groupTimestamp = !this.props.useIRCLayout ? linkedTimestamp : null; - const ircTimestamp = this.props.useIRCLayout ? linkedTimestamp : null; - const groupPadlock = !this.props.useIRCLayout && !isBubbleMessage && this._renderE2EPadlock(); - const ircPadlock = this.props.useIRCLayout && !isBubbleMessage && this._renderE2EPadlock(); + const useIRCLayout = this.props.layout == Layout.IRC; + const groupTimestamp = !useIRCLayout ? linkedTimestamp : null; + const ircTimestamp = useIRCLayout ? linkedTimestamp : null; + const groupPadlock = !useIRCLayout && !isBubbleMessage && this._renderE2EPadlock(); + const ircPadlock = useIRCLayout && !isBubbleMessage && this._renderE2EPadlock(); switch (this.props.tileShape) { case 'notif': { @@ -941,7 +945,7 @@ export default class EventTile extends React.Component { this.props.onHeightChanged, this.props.permalinkCreator, this._replyThread, - this.props.useIRCLayout, + this.props.layout, ); // tab-index=-1 to allow it to be focusable but do not add tab stop for it, primarily for screen readers diff --git a/src/components/views/rooms/LinkPreviewWidget.js b/src/components/views/rooms/LinkPreviewWidget.js index 2a053bf467..458b3e7054 100644 --- a/src/components/views/rooms/LinkPreviewWidget.js +++ b/src/components/views/rooms/LinkPreviewWidget.js @@ -107,7 +107,7 @@ export default class LinkPreviewWidget extends React.Component { if (!SettingsStore.getValue("showImages")) { image = null; // Don't render a button to show the image, just hide it outright } - const imageMaxWidth = 100; const imageMaxHeight = 100; + const imageMaxWidth = 320; const imageMaxHeight = 240; if (image && image.startsWith("mxc://")) { image = MatrixClientPeg.get().mxcUrlToHttp(image, imageMaxWidth, imageMaxHeight); } @@ -134,6 +134,10 @@ export default class LinkPreviewWidget extends React.Component { const AccessibleButton = sdk.getComponent('elements.AccessibleButton'); return ( +-+ + { img }@@ -142,10 +146,6 @@ export default class LinkPreviewWidget extends React.Component { { description }- - , ); - if (SettingsStore.getValue(UIFeature.Widgets)) { + if (SettingsStore.getValue(UIFeature.Widgets) && + SettingsStore.getValue("MessageComposerInput.showStickersButton")) { controls.push( ); } diff --git a/src/components/views/rooms/RoomBreadcrumbs.tsx b/src/components/views/rooms/RoomBreadcrumbs.tsx index 7725ce456e..ff60ab7779 100644 --- a/src/components/views/rooms/RoomBreadcrumbs.tsx +++ b/src/components/views/rooms/RoomBreadcrumbs.tsx @@ -111,7 +111,7 @@ export default class RoomBreadcrumbs extends React.PureComponent appear={true} in={this.state.doAnimation} timeout={640} classNames='mx_RoomBreadcrumbs' > - + {tiles.slice(this.state.skipFirst ? 1 : 0)} diff --git a/src/components/views/rooms/RoomList.tsx b/src/components/views/rooms/RoomList.tsx index 6e677f2b01..45db15df7c 100644 --- a/src/components/views/rooms/RoomList.tsx +++ b/src/components/views/rooms/RoomList.tsx @@ -46,6 +46,7 @@ import { objectShallowClone, objectWithOnly } from "../../../utils/objects"; import { IconizedContextMenuOption, IconizedContextMenuOptionList } from "../context_menus/IconizedContextMenu"; import AccessibleButton from "../elements/AccessibleButton"; import { CommunityPrototypeStore } from "../../../stores/CommunityPrototypeStore"; +import CallHandler from "../../../CallHandler"; interface IProps { onKeyDown: (ev: React.KeyboardEvent) => void; @@ -89,10 +90,44 @@ interface ITagAesthetics { defaultHidden: boolean; } -const TAG_AESTHETICS: { +interface ITagAestheticsMap { // @ts-ignore - TS wants this to be a string but we know better [tagId: TagID]: ITagAesthetics; -} = { +} + +// If we have no dialer support, we just show the create chat dialog +const dmOnAddRoom = (dispatcher?: Dispatcher) => { + (dispatcher || defaultDispatcher).dispatch({action: 'view_create_chat'}); +}; + +// If we have dialer support, show a context menu so the user can pick between +// the dialer and the create chat dialog +const dmAddRoomContextMenu = (onFinished: () => void) => { + return + ; +}; + +const TAG_AESTHETICS: ITagAestheticsMap = { [DefaultTagID.Invite]: { sectionLabel: _td("Invites"), isInvite: true, @@ -108,9 +143,8 @@ const TAG_AESTHETICS: { isInvite: false, defaultHidden: false, addRoomLabel: _td("Start chat"), - onAddRoom: (dispatcher?: Dispatcher{ + e.preventDefault(); + e.stopPropagation(); + onFinished(); + defaultDispatcher.dispatch({action: "view_create_chat"}); + }} + /> + { + e.preventDefault(); + e.stopPropagation(); + onFinished(); + defaultDispatcher.fire(Action.OpenDialPad); + }} + /> + ) => { - (dispatcher || defaultDispatcher).dispatch({action: 'view_create_chat'}); - }, + // Either onAddRoom or addRoomContextMenu are set depending on whether we + // have dialer support. }, [DefaultTagID.Untagged]: { sectionLabel: _td("Rooms"), @@ -178,6 +212,7 @@ function customTagAesthetics(tagId: TagID): ITagAesthetics { export default class RoomList extends React.PureComponent { private dispatcherRef; private customTagStoreRef; + private tagAesthetics: ITagAestheticsMap; constructor(props: IProps) { super(props); @@ -187,6 +222,10 @@ export default class RoomList extends React.PureComponent { isNameFiltering: !!RoomListStore.instance.getFirstNameFilterCondition(), }; + // shallow-copy from the template as we need to make modifications to it + this.tagAesthetics = objectShallowClone(TAG_AESTHETICS); + this.updateDmAddRoomAction(); + this.dispatcherRef = defaultDispatcher.register(this.onAction); } @@ -202,6 +241,17 @@ export default class RoomList extends React.PureComponent { if (this.customTagStoreRef) this.customTagStoreRef.remove(); } + private updateDmAddRoomAction() { + const dmTagAesthetics = objectShallowClone(TAG_AESTHETICS[DefaultTagID.DM]); + if (CallHandler.sharedInstance().getSupportsPstnProtocol()) { + dmTagAesthetics.addRoomContextMenu = dmAddRoomContextMenu; + } else { + dmTagAesthetics.onAddRoom = dmOnAddRoom; + } + + this.tagAesthetics[DefaultTagID.DM] = dmTagAesthetics; + } + private onAction = (payload: ActionPayload) => { if (payload.action === Action.ViewRoomDelta) { const viewRoomDeltaPayload = payload as ViewRoomDeltaPayload; @@ -214,6 +264,9 @@ export default class RoomList extends React.PureComponent { show_room_tile: true, // to make sure the room gets scrolled into view }); } + } else if (payload.action === Action.PstnSupportUpdated) { + this.updateDmAddRoomAction(); + this.updateLists(); } }; @@ -355,7 +408,7 @@ export default class RoomList extends React.PureComponent { const aesthetics: ITagAesthetics = isCustomTag(orderedTagId) ? customTagAesthetics(orderedTagId) - : TAG_AESTHETICS[orderedTagId]; + : this.tagAesthetics[orderedTagId]; if (!aesthetics) throw new Error(`Tag ${orderedTagId} does not have aesthetics`); components.push( { const unfilteredLists = RoomListStore.instance.unfilteredLists const unfilteredRooms = unfilteredLists[DefaultTagID.Untagged] || []; const unfilteredHistorical = unfilteredLists[DefaultTagID.Archived] || []; + const unfilteredFavourite = unfilteredLists[DefaultTagID.Favourite] || []; // show a prompt to join/create rooms if the user is in 0 rooms and no historical - if (unfilteredRooms.length < 1 && unfilteredHistorical < 1) { + if (unfilteredRooms.length < 1 && unfilteredHistorical < 1 && unfilteredFavourite < 1) { explorePrompt = {_t("Use the + to make a new room or explore existing ones below")}{ ActiveRoomObserver.addListener(this.props.room.roomId, this.onActiveRoomUpdate); this.dispatcherRef = defaultDispatcher.register(this.onAction); - MessagePreviewStore.instance.on(ROOM_PREVIEW_CHANGED, this.onRoomPreviewChanged); + MessagePreviewStore.instance.on( + MessagePreviewStore.getPreviewChangedEventName(this.props.room), + this.onRoomPreviewChanged, + ); this.notificationState = RoomNotificationStateStore.instance.getRoomState(this.props.room); this.notificationState.on(NOTIFICATION_STATE_UPDATE, this.onNotificationUpdate); this.roomProps = EchoChamber.forRoom(this.props.room); this.roomProps.on(PROPERTY_UPDATED, this.onRoomPropertyUpdate); - CommunityPrototypeStore.instance.on(UPDATE_EVENT, this.onCommunityUpdate); + CommunityPrototypeStore.instance.on( + CommunityPrototypeStore.getUpdateEventName(this.props.room.roomId), + this.onCommunityUpdate, + ); + this.props.room.on("Room.name", this.onRoomNameUpdate); + } + + private onRoomNameUpdate = (room) => { + this.forceUpdate(); } private onNotificationUpdate = () => { @@ -128,6 +138,26 @@ export default class RoomTile extends React.PureComponent { if (prevProps.showMessagePreview !== this.props.showMessagePreview && this.showMessagePreview) { this.setState({messagePreview: this.generatePreview()}); } + if (prevProps.room?.roomId !== this.props.room?.roomId) { + MessagePreviewStore.instance.off( + MessagePreviewStore.getPreviewChangedEventName(prevProps.room), + this.onRoomPreviewChanged, + ); + MessagePreviewStore.instance.on( + MessagePreviewStore.getPreviewChangedEventName(this.props.room), + this.onRoomPreviewChanged, + ); + CommunityPrototypeStore.instance.off( + CommunityPrototypeStore.getUpdateEventName(prevProps.room?.roomId), + this.onCommunityUpdate, + ); + CommunityPrototypeStore.instance.on( + CommunityPrototypeStore.getUpdateEventName(this.props.room?.roomId), + this.onCommunityUpdate, + ); + prevProps.room?.off("Room.name", this.onRoomNameUpdate); + this.props.room?.on("Room.name", this.onRoomNameUpdate); + } } public componentDidMount() { @@ -140,11 +170,18 @@ export default class RoomTile extends React.PureComponent { public componentWillUnmount() { if (this.props.room) { ActiveRoomObserver.removeListener(this.props.room.roomId, this.onActiveRoomUpdate); + MessagePreviewStore.instance.off( + MessagePreviewStore.getPreviewChangedEventName(this.props.room), + this.onRoomPreviewChanged, + ); + CommunityPrototypeStore.instance.off( + CommunityPrototypeStore.getUpdateEventName(this.props.room.roomId), + this.onCommunityUpdate, + ); + this.props.room.off("Room.name", this.onRoomNameUpdate); } defaultDispatcher.unregister(this.dispatcherRef); - MessagePreviewStore.instance.off(ROOM_PREVIEW_CHANGED, this.onRoomPreviewChanged); this.notificationState.off(NOTIFICATION_STATE_UPDATE, this.onNotificationUpdate); - CommunityPrototypeStore.instance.off(UPDATE_EVENT, this.onCommunityUpdate); } private onAction = (payload: ActionPayload) => { diff --git a/src/components/views/rooms/SendMessageComposer.js b/src/components/views/rooms/SendMessageComposer.js index 553fb44c04..62c474e417 100644 --- a/src/components/views/rooms/SendMessageComposer.js +++ b/src/components/views/rooms/SendMessageComposer.js @@ -156,13 +156,14 @@ export default class SendMessageComposer extends React.Component { this.onVerticalArrow(event, true); } else if (event.key === Key.ARROW_DOWN) { this.onVerticalArrow(event, false); - } else if (this._prepareToEncrypt) { - this._prepareToEncrypt(); } else if (event.key === Key.ESCAPE) { dis.dispatch({ action: 'reply_to_event', event: null, }); + } else if (this._prepareToEncrypt) { + // This needs to be last! + this._prepareToEncrypt(); } }; @@ -402,6 +403,7 @@ export default class SendMessageComposer extends React.Component { this._editorRef.clearUndoHistory(); this._editorRef.focus(); this._clearStoredEditorState(); + dis.dispatch({action: "scroll_to_bottom"}); } componentWillUnmount() { diff --git a/src/components/views/rooms/Stickerpicker.js b/src/components/views/rooms/Stickerpicker.js index 0b81f82721..5446d15671 100644 --- a/src/components/views/rooms/Stickerpicker.js +++ b/src/components/views/rooms/Stickerpicker.js @@ -264,7 +264,7 @@ export default class Stickerpicker extends React.Component { width: this.popoverWidth, }} > - + { - if (room && room.roomId === this.props.room.roomId) { + if (room?.roomId === this.props.room?.roomId) { const userId = event.getSender(); // remove user from usersTyping const usersTyping = this.state.usersTyping.filter((m) => m.userId !== userId); diff --git a/src/components/views/settings/AvatarSetting.js b/src/components/views/settings/AvatarSetting.js index 487c752c38..93b982467a 100644 --- a/src/components/views/settings/AvatarSetting.js +++ b/src/components/views/settings/AvatarSetting.js @@ -65,7 +65,7 @@ const AvatarSetting = ({avatarUrl, avatarAltText, avatarName, uploadAvatar, remo const avatarClasses = classNames({ "mx_AvatarSetting_avatar": true, - "mx_AvatarSetting_avatar_hovering": isHovering, + "mx_AvatarSetting_avatar_hovering": isHovering && uploadAvatar, }); return {avatarElement} diff --git a/src/components/views/settings/BridgeTile.js b/src/components/views/settings/BridgeTile.js deleted file mode 100644 index e9c58518e4..0000000000 --- a/src/components/views/settings/BridgeTile.js +++ /dev/null @@ -1,115 +0,0 @@ -/* -Copyright 2020 The Matrix.org Foundation C.I.C. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -import React from 'react'; -import PropTypes from 'prop-types'; -import {getHttpUriForMxc} from "matrix-js-sdk/src/content-repo"; -import {_t} from "../../../languageHandler"; -import {MatrixClientPeg} from "../../../MatrixClientPeg"; -import Pill from "../elements/Pill"; -import {makeUserPermalink} from "../../../utils/permalinks/Permalinks"; -import BaseAvatar from "../avatars/BaseAvatar"; -import AccessibleButton from "../elements/AccessibleButton"; -import {replaceableComponent} from "../../../utils/replaceableComponent"; -import SettingsStore from "../../../settings/SettingsStore"; - -@replaceableComponent("views.settings.BridgeTile") -export default class BridgeTile extends React.PureComponent { - static propTypes = { - ev: PropTypes.object.isRequired, - room: PropTypes.object.isRequired, - } - - state = { - visible: false, - } - - _toggleVisible() { - this.setState({ - visible: !this.state.visible, - }); - } - - render() { - const content = this.props.ev.getContent(); - const { channel, network, protocol } = content; - const protocolName = protocol.displayname || protocol.id; - const channelName = channel.displayname || channel.id; - const networkName = network ? network.displayname || network.id : protocolName; - - let creator = null; - if (content.creator) { - creator = _t("This bridge was provisioned by.", {}, { - user: , - }); - } - - const bot = _t("This bridge is managed by .", {}, { - user: , - }); - - let networkIcon; - - if (protocol.avatar) { - const avatarUrl = getHttpUriForMxc( - MatrixClientPeg.get().getHomeserverUrl(), - protocol.avatar, 64, 64, "crop", - ); - - networkIcon = ; - } else { - networkIcon = ; - } - - const id = this.props.ev.getId(); - const metadataClassname = "metadata" + (this.state.visible ? " visible" : ""); - return ( - ); - } -} diff --git a/src/components/views/settings/BridgeTile.tsx b/src/components/views/settings/BridgeTile.tsx new file mode 100644 index 0000000000..58499ebd25 --- /dev/null +++ b/src/components/views/settings/BridgeTile.tsx @@ -0,0 +1,167 @@ +/* +Copyright 2020 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import React from 'react'; +import PropTypes from 'prop-types'; +import {getHttpUriForMxc} from "matrix-js-sdk/src/content-repo"; +import {_t} from "../../../languageHandler"; +import {MatrixClientPeg} from "../../../MatrixClientPeg"; +import Pill from "../elements/Pill"; +import {makeUserPermalink} from "../../../utils/permalinks/Permalinks"; +import BaseAvatar from "../avatars/BaseAvatar"; +import SettingsStore from "../../../settings/SettingsStore"; +import {MatrixEvent} from "matrix-js-sdk/src/models/event"; +import { Room } from "matrix-js-sdk/src/models/room"; +import { isUrlPermitted } from '../../../HtmlUtils'; + +interface IProps { + ev: MatrixEvent; + room: Room; +} + +/** + * This should match https://github.com/matrix-org/matrix-doc/blob/hs/msc-bridge-inf/proposals/2346-bridge-info-state-event.md#mbridge + */ +interface IBridgeStateEvent { + bridgebot: string; + creator?: string; + protocol: { + id: string; + displayname?: string; + // eslint-disable-next-line camelcase + avatar_url?: string; + // eslint-disable-next-line camelcase + external_url?: string; + }; + network?: { + id: string; + displayname?: string; + // eslint-disable-next-line camelcase + avatar_url?: string; + // eslint-disable-next-line camelcase + external_url?: string; + }; + channel: { + id: string; + displayname?: string; + // eslint-disable-next-line camelcase + avatar_url?: string; + // eslint-disable-next-line camelcase + external_url?: string; + }; +} + +export default class BridgeTile extends React.PureComponent- {networkIcon} ----{protocolName}
-- {_t("Workspace: %(networkName)s", {networkName})} - {_t("Channel: %(channelName)s", {channelName})} -
-- {creator} {bot} -
-- { this.state.visible ? _t("Show less") : _t("Show more") } - -{ + static propTypes = { + ev: PropTypes.object.isRequired, + room: PropTypes.object.isRequired, + } + + render() { + const content: IBridgeStateEvent = this.props.ev.getContent(); + // Validate + if (!content.channel?.id || !content.protocol?.id) { + console.warn(`Bridge info event ${this.props.ev.getId()} has missing content. Tile will not render`); + return null; + } + if (!content.bridgebot) { + // Bridgebot was not required previously, so in order to not break rooms we are allowing + // the sender to be used in place. When the proposal is merged, this should be removed. + console.warn(`Bridge info event ${this.props.ev.getId()} does not provide a 'bridgebot' key which` + + "is deprecated behaviour. Using sender for now."); + content.bridgebot = this.props.ev.getSender(); + } + const { channel, network, protocol } = content; + const protocolName = protocol.displayname || protocol.id; + const channelName = channel.displayname || channel.id; + + let creator = null; + if (content.creator) { + creator = {_t("This bridge was provisioned by ; + } + + const bot =.", {}, { + user: () => , + })} {_t("This bridge is managed by ; + + let networkIcon; + + if (protocol.avatar_url) { + const avatarUrl = getHttpUriForMxc( + MatrixClientPeg.get().getHomeserverUrl(), + protocol.avatar_url, 64, 64, "crop", + ); + + networkIcon =.", {}, { + user: () => , + })} ; + } else { + networkIcon = ; + } + let networkItem = null; + if (network) { + const networkName = network.displayname || network.id; + let networkLink = {networkName}; + if (typeof network.external_url === "string" && isUrlPermitted(network.external_url)) { + networkLink = {networkName} + } + networkItem = _t("Workspace: ", {}, { + networkLink: () => networkLink, + }); + } + + let channelLink = {channelName}; + if (typeof channel.external_url === "string" && isUrlPermitted(channel.external_url)) { + channelLink = {channelName} + } + + const id = this.props.ev.getId(); + return ( + ); + } +} diff --git a/src/components/views/settings/ProfileSettings.js b/src/components/views/settings/ProfileSettings.js index c11a2e3a5e..4dc69884c3 100644 --- a/src/components/views/settings/ProfileSettings.js +++ b/src/components/views/settings/ProfileSettings.js @@ -52,19 +52,23 @@ export default class ProfileSettings extends React.Component { // clear file upload field so same file can be selected this._avatarUpload.current.value = ""; this.setState({ - avatarUrl: undefined, - avatarFile: undefined, + avatarUrl: null, + avatarFile: null, enableProfileSave: true, }); }; - _clearProfile = async (e) => { + _cancelProfileChanges = async (e) => { e.stopPropagation(); e.preventDefault(); if (!this.state.enableProfileSave) return; - this._removeAvatar(); - this.setState({enableProfileSave: false, displayName: this.state.originalDisplayName}); + this.setState({ + enableProfileSave: false, + displayName: this.state.originalDisplayName, + avatarUrl: this.state.originalAvatarUrl, + avatarFile: null, + }); }; _saveProfile = async (e) => { @@ -186,7 +190,7 @@ export default class ProfileSettings extends React.Component {+ {networkIcon} ++++{protocolName}
++ {networkItem} + {_t("Channel:
+", {}, { + channelLink: () => channelLink, + })} + + {creator} {bot} +
+diff --git a/src/components/views/settings/SecureBackupPanel.js b/src/components/views/settings/SecureBackupPanel.js index 3547efc3f2..080d83b2cf 100644 --- a/src/components/views/settings/SecureBackupPanel.js +++ b/src/components/views/settings/SecureBackupPanel.js @@ -424,7 +424,7 @@ export default class SecureBackupPanel extends React.PureComponent { {_t( "Back up your encryption keys with your account data in case you " + "lose access to your sessions. Your keys will be secured with a " + - "unique Recovery Key.", + "unique Security Key.", )}
{statusDescription}diff --git a/src/components/views/settings/tabs/user/AppearanceUserSettingsTab.tsx b/src/components/views/settings/tabs/user/AppearanceUserSettingsTab.tsx index 209f245b11..80a20d8afa 100644 --- a/src/components/views/settings/tabs/user/AppearanceUserSettingsTab.tsx +++ b/src/components/views/settings/tabs/user/AppearanceUserSettingsTab.tsx @@ -28,15 +28,14 @@ import { FontWatcher } from "../../../../../settings/watchers/FontWatcher"; import { RecheckThemePayload } from '../../../../../dispatcher/payloads/RecheckThemePayload'; import { Action } from '../../../../../dispatcher/actions'; import { IValidationResult, IFieldState } from '../../../elements/Validation'; -import StyledRadioButton from '../../../elements/StyledRadioButton'; import StyledCheckbox from '../../../elements/StyledCheckbox'; import SettingsFlag from '../../../elements/SettingsFlag'; import Field from '../../../elements/Field'; import EventTilePreview from '../../../elements/EventTilePreview'; import StyledRadioGroup from "../../../elements/StyledRadioGroup"; -import classNames from 'classnames'; import { SettingLevel } from "../../../../../settings/SettingLevel"; import {UIFeature} from "../../../../../settings/UIFeature"; +import {Layout} from "../../../../../settings/Layout"; interface IProps { } @@ -62,7 +61,7 @@ interface IState extends IThemeState { useSystemFont: boolean; systemFont: string; showAdvanced: boolean; - useIRCLayout: boolean; + layout: Layout; } @@ -83,7 +82,7 @@ export default class AppearanceUserSettingsTab extends React.Component): void => { - const val = e.target.value === "true"; - - this.setState({ - useIRCLayout: val, - }); - - SettingsStore.setValue("useIRCLayout", null, SettingLevel.DEVICE, val); - }; + private onIRCLayoutChange = (enabled: boolean) => { + if (enabled) { + this.setState({layout: Layout.IRC}); + SettingsStore.setValue("layout", null, SettingLevel.DEVICE, Layout.IRC); + } else { + this.setState({layout: Layout.Group}); + SettingsStore.setValue("layout", null, SettingLevel.DEVICE, Layout.Group); + } + } private renderThemeSection() { const themeWatcher = new ThemeWatcher(); @@ -306,7 +305,7 @@ export default class AppearanceUserSettingsTab extends React.Component Aa@@ -342,50 +341,6 @@ export default class AppearanceUserSettingsTab extends React.Component; } - private renderLayoutSection = () => { - return - {_t("Message layout")} - -; - }; - private renderAdvancedSection() { if (!SettingsStore.getValue(UIFeature.AdvancedSettings)) return null; @@ -409,14 +364,15 @@ export default class AppearanceUserSettingsTab extends React.Component---- -- - {_t("Compact")} - ---- - {_t("Modern")} - -- this.setState({useIRCLayout: checked})} + disabled={this.state.layout == Layout.IRC} /> + this.onIRCLayoutChange(ev.target.checked)} + > + {_t("Enable experimental, compact IRC style layout")} + +{ private dispatcherRef: string; private contentRef = createRef (); private controlsHideTimer: number = null; + private dialpadButton = createRef (); private contextMenuButton = createRef (); constructor(props: IProps) { @@ -115,6 +118,7 @@ export default class CallView extends React.Component { callState: this.props.call.state, controlsVisible: true, showMoreMenu: false, + showDialpad: false, } this.updateCallListeners(null, this.props.call); @@ -208,9 +212,10 @@ export default class CallView extends React.Component { }; private onExpandClick = () => { + const userFacingRoomId = CallHandler.roomIdForCall(this.props.call); dis.dispatch({ action: 'view_room', - room_id: this.props.call.roomId, + room_id: userFacingRoomId, }); }; @@ -226,7 +231,7 @@ export default class CallView extends React.Component { } private showControls() { - if (this.state.showMoreMenu) return; + if (this.state.showMoreMenu || this.state.showDialpad) return; if (!this.state.controlsVisible) { this.setState({ @@ -239,6 +244,29 @@ export default class CallView extends React.Component { this.controlsHideTimer = window.setTimeout(this.onControlsHideTimer, CONTROLS_HIDE_DELAY); } + private onDialpadClick = () => { + if (!this.state.showDialpad) { + if (this.controlsHideTimer) { + clearTimeout(this.controlsHideTimer); + this.controlsHideTimer = null; + } + + this.setState({ + showDialpad: true, + controlsVisible: true, + }); + } else { + if (this.controlsHideTimer !== null) { + clearTimeout(this.controlsHideTimer); + } + this.controlsHideTimer = window.setTimeout(this.onControlsHideTimer, CONTROLS_HIDE_DELAY); + + this.setState({ + showDialpad: false, + }); + } + } + private onMicMuteClick = () => { const newVal = !this.state.micMuted; @@ -265,6 +293,13 @@ export default class CallView extends React.Component { }); } + private closeDialpad = () => { + this.setState({ + showDialpad: false, + }); + this.controlsHideTimer = window.setTimeout(this.onControlsHideTimer, CONTROLS_HIDE_DELAY); + } + private closeContextMenu = () => { this.setState({ showMoreMenu: false, @@ -306,37 +341,52 @@ export default class CallView extends React.Component { }; private onRoomAvatarClick = () => { + const userFacingRoomId = CallHandler.roomIdForCall(this.props.call); dis.dispatch({ action: 'view_room', - room_id: this.props.call.roomId, + room_id: userFacingRoomId, }); } private onSecondaryRoomAvatarClick = () => { + const userFacingRoomId = CallHandler.roomIdForCall(this.props.secondaryCall); + dis.dispatch({ action: 'view_room', - room_id: this.props.secondaryCall.roomId, + room_id: userFacingRoomId, }); } private onCallResumeClick = () => { - CallHandler.sharedInstance().setActiveCallRoomId(this.props.call.roomId); - } - - private onSecondaryCallResumeClick = () => { - CallHandler.sharedInstance().setActiveCallRoomId(this.props.secondaryCall.roomId); + const userFacingRoomId = CallHandler.roomIdForCall(this.props.call); + CallHandler.sharedInstance().setActiveCallRoomId(userFacingRoomId); } public render() { const client = MatrixClientPeg.get(); - const callRoom = client.getRoom(this.props.call.roomId); - const secCallRoom = this.props.secondaryCall ? client.getRoom(this.props.secondaryCall.roomId) : null; + const callRoomId = CallHandler.roomIdForCall(this.props.call); + const secondaryCallRoomId = CallHandler.roomIdForCall(this.props.secondaryCall); + const callRoom = client.getRoom(callRoomId); + const secCallRoom = this.props.secondaryCall ? client.getRoom(secondaryCallRoomId) : null; + let dialPad; let contextMenu; + if (this.state.showDialpad) { + dialPad = ; + } + if (this.state.showMoreMenu) { contextMenu = { onClick={this.onVidMuteClick} /> : null; - // The 'more' button actions are only relevant in a connected call + // The dial pad & 'more' button actions are only relevant in a connected call // When not connected, we have to put something there to make the flexbox alignment correct + const dialpadButton = this.state.callState === CallState.Connected ? : ; + const contextMenuButton = this.state.callState === CallState.Connected ? { // in the near future, the dial pad button will go on the left. For now, it's the nothing button // because something needs to have margin-right: auto to make the alignment correct. const callControls = - + {dialpadButton}; @@ -478,20 +541,6 @@ export default class CallView extends React.Component{ onClick={() => { dis.dispatch({ action: 'hangup', - room_id: this.props.call.roomId, + room_id: callRoomId, }); }} /> @@ -423,7 +480,9 @@ export default class CallView extends React.Component { const isOnHold = this.state.isLocalOnHold || this.state.isRemoteOnHold; let onHoldText = null; if (this.state.isRemoteOnHold) { - onHoldText = _t("You held the call Resume", {}, { + const holdString = CallHandler.sharedInstance().hasAnyUnheldCall() ? + _td("You held the call Switch") : _td("You held the call Resume"); + onHoldText = _t(holdString, {}, { a: sub => {sub} , @@ -435,6 +494,7 @@ export default class CallView extends React.Component{ } if (this.props.call.type === CallType.Video) { + let localVideoFeed = null; let onHoldContent = null; let onHoldBackground = null; const backgroundStyle: CSSProperties = {}; @@ -453,6 +513,9 @@ export default class CallView extends React.Component { backgroundStyle.backgroundImage = 'url(' + backgroundAvatarUrl + ')'; onHoldBackground = ; } + if (!this.state.vidMuted) { + localVideoFeed = ; + } // if we're fullscreen, we don't want to set a maxHeight on the video element. const maxVideoHeight = getFullScreenElement() ? null : ( @@ -468,7 +531,7 @@ export default class CallView extends React.Component { - + {localVideoFeed} {onHoldContent} {callControls} { mx_CallView_voice: true, mx_CallView_voice_hold: isOnHold, }); - let secondaryCallAvatar: ReactNode; - - if (this.props.secondaryCall) { - const secAvatarSize = this.props.pipMode ? 40 : 100; - secondaryCallAvatar = -; - } contentView =- @@ -502,7 +551,6 @@ export default class CallView extends React.Component- {secondaryCallAvatar}{ width={avatarSize} /> {onHoldText}{callControls} @@ -546,7 +594,7 @@ export default class CallView extends React.Component{ ; @@ -571,6 +619,7 @@ export default class CallView extends React.Component - {_t("%(name)s paused", { name: secCallRoom.name })} + {_t("%(name)s on hold", { name: secCallRoom.name })} { return {header} {contentView} + {dialPad} {contextMenu}; } diff --git a/src/components/views/voip/DialPad.tsx b/src/components/views/voip/DialPad.tsx new file mode 100644 index 0000000000..da88f49adf --- /dev/null +++ b/src/components/views/voip/DialPad.tsx @@ -0,0 +1,85 @@ +/* +Copyright 2020 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import * as React from "react"; +import AccessibleButton from "../elements/AccessibleButton"; + +const BUTTONS = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '0', '#']; + +enum DialPadButtonKind { + Digit, + Delete, + Dial, +} + +interface IButtonProps { + kind: DialPadButtonKind; + digit?: string; + onButtonPress: (string) => void; +} + +class DialPadButton extends React.PureComponent{ + onClick = () => { + this.props.onButtonPress(this.props.digit); + } + + render() { + switch (this.props.kind) { + case DialPadButtonKind.Digit: + return + {this.props.digit} + ; + case DialPadButtonKind.Delete: + return; + case DialPadButtonKind.Dial: + return ; + } + } +} + +interface IProps { + onDigitPress: (string) => void; + hasDialAndDelete: boolean; + onDeletePress?: (string) => void; + onDialPress?: (string) => void; +} + +export default class Dialpad extends React.PureComponent { + render() { + const buttonNodes = []; + + for (const button of BUTTONS) { + buttonNodes.push( ); + } + + if (this.props.hasDialAndDelete) { + buttonNodes.push( ); + buttonNodes.push( ); + } + + return + {buttonNodes} +; + } +} diff --git a/src/components/views/voip/DialPadModal.tsx b/src/components/views/voip/DialPadModal.tsx new file mode 100644 index 0000000000..9f031a48a3 --- /dev/null +++ b/src/components/views/voip/DialPadModal.tsx @@ -0,0 +1,111 @@ +/* +Copyright 2020 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import * as React from "react"; +import { ensureDMExists } from "../../../createRoom"; +import { _t } from "../../../languageHandler"; +import { MatrixClientPeg } from "../../../MatrixClientPeg"; +import AccessibleButton from "../elements/AccessibleButton"; +import Field from "../elements/Field"; +import DialPad from './DialPad'; +import dis from '../../../dispatcher/dispatcher'; +import Modal from "../../../Modal"; +import ErrorDialog from "../../views/dialogs/ErrorDialog"; +import CallHandler from "../../../CallHandler"; + +interface IProps { + onFinished: (boolean) => void; +} + +interface IState { + value: string; +} + +export default class DialpadModal extends React.PureComponent{ + constructor(props) { + super(props); + this.state = { + value: '', + } + } + + onCancelClick = () => { + this.props.onFinished(false); + } + + onChange = (ev) => { + this.setState({value: ev.target.value}); + } + + onFormSubmit = (ev) => { + ev.preventDefault(); + this.onDialPress(); + } + + onDigitPress = (digit) => { + this.setState({value: this.state.value + digit}); + } + + onDeletePress = () => { + if (this.state.value.length === 0) return; + this.setState({value: this.state.value.slice(0, -1)}); + } + + onDialPress = async () => { + const results = await CallHandler.sharedInstance().pstnLookup(this.state.value); + if (!results || results.length === 0 || !results[0].userid) { + Modal.createTrackedDialog('', '', ErrorDialog, { + title: _t("Unable to look up phone number"), + description: _t("There was an error looking up the phone number"), + }); + } + const userId = results[0].userid; + + const roomId = await ensureDMExists(MatrixClientPeg.get(), userId); + + dis.dispatch({ + action: 'view_room', + room_id: roomId, + }); + + this.props.onFinished(true); + } + + render() { + return +; + } +} diff --git a/src/components/views/voip/IncomingCallBox.tsx b/src/components/views/voip/IncomingCallBox.tsx index 8e1d23e38e..a495093d85 100644 --- a/src/components/views/voip/IncomingCallBox.tsx +++ b/src/components/views/voip/IncomingCallBox.tsx @@ -70,7 +70,7 @@ export default class IncomingCallBox extends React.Component++ ++ {_t("Dial pad")} +++ + ++ +++ { e.stopPropagation(); dis.dispatch({ action: 'answer', - room_id: this.state.incomingCall.roomId, + room_id: CallHandler.roomIdForCall(this.state.incomingCall), }); }; @@ -78,7 +78,7 @@ export default class IncomingCallBox extends React.Component { e.stopPropagation(); dis.dispatch({ action: 'reject', - room_id: this.state.incomingCall.roomId, + room_id: CallHandler.roomIdForCall(this.state.incomingCall), }); }; @@ -89,7 +89,7 @@ export default class IncomingCallBox extends React.Component { let room = null; if (this.state.incomingCall) { - room = MatrixClientPeg.get().getRoom(this.state.incomingCall.roomId); + room = MatrixClientPeg.get().getRoom(CallHandler.roomIdForCall(this.state.incomingCall)); } const caller = room ? room.name : _t("Unknown caller"); diff --git a/src/contexts/RoomContext.ts b/src/contexts/RoomContext.ts index 1b9097e337..30ff74b071 100644 --- a/src/contexts/RoomContext.ts +++ b/src/contexts/RoomContext.ts @@ -17,6 +17,7 @@ limitations under the License. import { createContext } from "react"; import {IState} from "../components/structures/RoomView"; +import {Layout} from "../settings/Layout"; const RoomContext = createContext ({ roomLoading: true, @@ -40,7 +41,7 @@ const RoomContext = createContext ({ statusBarVisible: false, canReact: false, canReply: false, - useIRCLayout: false, + layout: Layout.Group, matrixClientIsReady: false, dragCounter: 0, }); diff --git a/src/createRoom.ts b/src/createRoom.ts index 699df0d799..9e3960cdb7 100644 --- a/src/createRoom.ts +++ b/src/createRoom.ts @@ -30,6 +30,7 @@ import { getE2EEWellKnown } from "./utils/WellKnownUtils"; import GroupStore from "./stores/GroupStore"; import CountlyAnalytics from "./CountlyAnalytics"; import { isJoinedOrNearlyJoined } from "./utils/membership"; +import { VIRTUAL_ROOM_EVENT_TYPE } from "./CallHandler"; // we define a number of interfaces which take their names from the js-sdk /* eslint-disable camelcase */ @@ -300,6 +301,34 @@ export async function canEncryptToAllUsers(client: MatrixClient, userIds: string } } +// Similar to ensureDMExists but also adds creation content +// without polluting ensureDMExists with unrelated stuff (also +// they're never encrypted). +export async function ensureVirtualRoomExists( + client: MatrixClient, userId: string, nativeRoomId: string, +): Promise { + const existingDMRoom = findDMForUser(client, userId); + let roomId; + if (existingDMRoom) { + roomId = existingDMRoom.roomId; + } else { + roomId = await createRoom({ + dmUserId: userId, + spinner: false, + andView: false, + createOpts: { + creation_content: { + // This allows us to recognise that the room is a virtual room + // when it comes down our sync stream (we also put the ID of the + // respective native room in there because why not?) + [VIRTUAL_ROOM_EVENT_TYPE]: nativeRoomId, + }, + }, + }); + } + return roomId; +} + export async function ensureDMExists(client: MatrixClient, userId: string): Promise { const existingDMRoom = findDMForUser(client, userId); let roomId; @@ -310,6 +339,7 @@ export async function ensureDMExists(client: MatrixClient, userId: string): Prom if (privateShouldBeEncrypted()) { encryption = await canEncryptToAllUsers(client, [userId]); } + roomId = await createRoom({encryption, dmUserId: userId, spinner: false, andView: false}); await _waitForMember(client, roomId, userId); } diff --git a/src/dispatcher/actions.ts b/src/dispatcher/actions.ts index 6fb71df30d..12bf4c57a3 100644 --- a/src/dispatcher/actions.ts +++ b/src/dispatcher/actions.ts @@ -94,4 +94,23 @@ export enum Action { * Trigged after the phase of the right panel is set. Should be used with AfterRightPanelPhaseChangePayload. */ AfterRightPanelPhaseChange = "after_right_panel_phase_change", + + /** + * Opens the modal dial pad + */ + OpenDialPad = "open_dial_pad", + + /** + * Fired when CallHandler has checked for PSTN protocol support + * payload: none + * XXX: Is an action the right thing for this? + */ + PstnSupportUpdated = "pstn_support_updated", + + /** + * Similar to PstnSupportUpdated, fired when CallHandler has checked for virtual room support + * payload: none + * XXX: Ditto + */ + VirtualRoomSupportUpdated = "virtual_room_support_updated", } diff --git a/src/effects/fireworks/index.ts b/src/effects/fireworks/index.ts new file mode 100644 index 0000000000..96a27531af --- /dev/null +++ b/src/effects/fireworks/index.ts @@ -0,0 +1,174 @@ +/* + Copyright 2020 Nurjin Jafar + Copyright 2020 Nordeck IT + Consulting GmbH. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +import ICanvasEffect from '../ICanvasEffect'; + +export type FireworksOptions = { + /** + * max fireworks count + */ + maxCount: number; + /** + * gravity value that firework adds to shift from it's start position + */ + gravity: number; +} + +type FireworksParticle = { + /** + * color + */ + color: string; + /** + * x,y are the point where the particle starts to position on canvas + */ + x: number; + y: number; + /** + * vx,vy shift values from x and y + */ + vx: number; + vy: number; + /** + * the alpha opacity of the firework particle (between 0 and 1, where 1 is opaque and 0 is invisible) + */ + alpha: number; + /** + * w,h width and height + */ + w: number; + h: number; +} + +export const DefaultOptions: FireworksOptions = { + maxCount: 500, + gravity: 0.05, +}; + +export default class Fireworks implements ICanvasEffect { + private readonly options: FireworksOptions; + + constructor(options: { [key: string]: any }) { + this.options = {...DefaultOptions, ...options}; + } + + private context: CanvasRenderingContext2D | null = null; + private supportsAnimationFrame = window.requestAnimationFrame; + private particles: Array = []; + public isRunning: boolean; + + public start = async (canvas: HTMLCanvasElement, timeout = 3000) => { + if (!canvas) { + return; + } + this.isRunning = true; + this.context = canvas.getContext('2d'); + this.supportsAnimationFrame.call(window, this.updateWorld); + if (timeout) { + window.setTimeout(this.stop, timeout); + } + } + + private updateWorld = () => { + if (!this.isRunning && this.particles.length === 0) return; + this.update(); + this.paint(); + this.supportsAnimationFrame.call(window, this.updateWorld); + } + + private update = () => { + if (this.particles.length < this.options.maxCount && this.isRunning) { + this.createFirework(); + } + const alive = []; + for (let i=0; i { + if (!this.context || !this.context.canvas) return; + this.context.globalCompositeOperation = 'destination-out'; + this.context.fillStyle = "rgba(0,0,0,0.5)"; + this.context.fillRect(0, 0, this.context.canvas.width, this.context.canvas.height); + this.context.globalCompositeOperation = 'lighter'; + for (let i=0; i { + if (!this.context || !this.context.canvas) return; + const width = this.context.canvas.width; + const height = this.context.canvas.height; + const xPoint = Math.random() * (width - 200) + 100; + const yPoint = Math.random() * (height - 200) + 100; + const nFire = Math.random() * 50 + 100; + const color = "rgb("+(~~(Math.random()*200+55))+"," + +(~~(Math.random()*200+55))+","+(~~(Math.random()*200+55))+")"; + for (let i=0; i {}; + particle.color = color; + particle.w = particle.h = Math.random() * 4 + 1; + particle.x = xPoint - particle.w / 2; + particle.y = yPoint - particle.h / 2; + particle.vx = (Math.random()-0.5)*10; + particle.vy = (Math.random()-0.5)*10; + particle.alpha = Math.random()*.5+.5; + const vy = Math.sqrt(25 - particle.vx * particle.vx); + if (Math.abs(particle.vy) > vy) { + particle.vy = particle.vy > 0 ? vy: -vy; + } + this.particles.push(particle); + } + } + + public stop = async () => { + this.isRunning = false; + } + + private drawParticle = (particle: FireworksParticle): void => { + if (!this.context || !this.context.canvas) { + return; + } + this.context.save(); + this.context.beginPath(); + + this.context.translate(particle.x + particle.w / 2, particle.y + particle.h / 2); + this.context.arc(0, 0, particle.w, 0, Math.PI * 2); + this.context.fillStyle = particle.color; + this.context.globalAlpha = particle.alpha; + + this.context.closePath(); + this.context.fill(); + this.context.restore(); + } + + + private move = (particle: FireworksParticle) => { + particle.x += particle.vx; + particle.vy += this.options.gravity; + particle.y += particle.vy; + particle.alpha -= 0.01; + return !(particle.x <= -particle.w || particle.x >= screen.width || + particle.y >= screen.height || + particle.alpha <= 0); + } +} diff --git a/src/effects/index.ts b/src/effects/index.ts index 16a0851070..a22948ebcf 100644 --- a/src/effects/index.ts +++ b/src/effects/index.ts @@ -47,23 +47,47 @@ type ConfettiOptions = { /** * max confetti count */ - maxCount: number, + maxCount: number; /** * particle animation speed */ - speed: number, + speed: number; /** * the confetti animation frame interval in milliseconds */ - frameInterval: number, + frameInterval: number; /** * the alpha opacity of the confetti (between 0 and 1, where 1 is opaque and 0 is invisible) */ - alpha: number, + alpha: number; /** * use gradient instead of solid particle color */ - gradient: boolean, + gradient: boolean; +}; +type FireworksOptions = { + /** + * max fireworks count + */ + maxCount: number; + /** + * gravity value that firework adds to shift from it's start position + */ + gravity: number; +} +type SnowfallOptions = { + /** + * The maximum number of snowflakes to render at a given time + */ + maxCount: number; + /** + * The amount of gravity to apply to the snowflakes + */ + gravity: number; + /** + * The amount of drift (horizontal sway) to apply to the snowflakes. Each snowflake varies. + */ + maxDrift: number; } /** @@ -84,6 +108,29 @@ export const CHAT_EFFECTS: Array > = [ gradient: false, }, } as Effect , + { + emojis: ['🎆'], + msgType: 'nic.custom.fireworks', + command: 'fireworks', + description: () => _td("Sends the given message with fireworks"), + fallbackMessage: () => _t("sends fireworks") + " 🎆", + options: { + maxCount: 500, + gravity: 0.05, + }, + } as Effect , + { + emojis: ['❄', '🌨'], + msgType: 'io.element.effect.snowfall', + command: 'snowfall', + description: () => _td("Sends the given message with snowfall"), + fallbackMessage: () => _t("sends snowfall") + " ❄", + options: { + maxCount: 200, + gravity: 0.05, + maxDrift: 5, + }, + } as Effect , ]; diff --git a/src/effects/snowfall/index.ts b/src/effects/snowfall/index.ts new file mode 100644 index 0000000000..2affb50405 --- /dev/null +++ b/src/effects/snowfall/index.ts @@ -0,0 +1,148 @@ +/* + Copyright 2020 The Matrix.org Foundation C.I.C. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ +import ICanvasEffect from '../ICanvasEffect'; +import { arrayFastClone } from "../../utils/arrays"; + +export type SnowfallOptions = { + /** + * The maximum number of snowflakes to render at a given time + */ + maxCount: number; + /** + * The amount of gravity to apply to the snowflakes + */ + gravity: number; + /** + * The amount of drift (horizontal sway) to apply to the snowflakes. Each snowflake varies. + */ + maxDrift: number; +} + +type Snowflake = { + x: number; + y: number; + xCol: number; + diameter: number; + maximumDrift: number; + gravity: number; +} + +export const DefaultOptions: SnowfallOptions = { + maxCount: 200, + gravity: 0.05, + maxDrift: 5, +}; + +const KEY_FRAME_INTERVAL = 15; // 15ms, roughly + +export default class Snowfall implements ICanvasEffect { + private readonly options: SnowfallOptions; + + constructor(options: { [key: string]: any }) { + this.options = {...DefaultOptions, ...options}; + } + + private context: CanvasRenderingContext2D | null = null; + private particles: Array = []; + private lastAnimationTime: number; + + public isRunning: boolean; + + public start = async (canvas: HTMLCanvasElement, timeout = 3000) => { + if (!canvas) { + return; + } + this.context = canvas.getContext('2d'); + this.particles = []; + const count = this.options.maxCount; + while (this.particles.length < count) { + this.particles.push(this.resetParticle({} as Snowflake, canvas.width, canvas.height)); + } + this.isRunning = true; + requestAnimationFrame(this.renderLoop); + if (timeout) { + window.setTimeout(this.stop, timeout); + } + } + + public stop = async () => { + this.isRunning = false; + } + + private resetParticle = (particle: Snowflake, width: number, height: number): Snowflake => { + particle.x = Math.random() * width; + particle.y = Math.random() * -height; + particle.xCol = particle.x; + particle.diameter = (Math.random() * 7) + 4; + particle.maximumDrift = (Math.random() * this.options.maxDrift) + 3.5; + particle.gravity = this.options.gravity + (Math.random() * 6) + 4; + return particle; + } + + private renderLoop = (): void => { + if (!this.context || !this.context.canvas) { + return; + } + if (this.particles.length === 0) { + this.context.clearRect(0, 0, this.context.canvas.width, this.context.canvas.height); + } else { + const timeDelta = Date.now() - this.lastAnimationTime; + if (timeDelta >= KEY_FRAME_INTERVAL || !this.lastAnimationTime) { + // Clear the screen first + this.context.clearRect(0, 0, this.context.canvas.width, this.context.canvas.height); + + this.lastAnimationTime = Date.now(); + this.animateAndRenderSnowflakes(); + } + requestAnimationFrame(this.renderLoop); + } + }; + + private animateAndRenderSnowflakes() { + if (!this.context || !this.context.canvas) { + return; + } + const height = this.context.canvas.height; + for (const particle of arrayFastClone(this.particles)) { + particle.y += particle.gravity; + + // We treat the drift as a sine function to have a more fluid-like movement instead + // of a pong-like movement off walls of the X column. This means that for + // $x=A\sin(\frac{2\pi}{P}y)$ we use the `maximumDrift` as the amplitude (A) and a + // large multiplier to create a very long waveform through P. + const peakDistance = 75 * particle.maximumDrift; + const PI2 = Math.PI * 2; + particle.x = particle.maximumDrift * Math.sin((PI2 / peakDistance) * particle.y); + particle.x += particle.xCol; // bring the particle to the right place + + const radius = particle.diameter / 2; + this.context.save(); + this.context.beginPath(); + this.context.ellipse(particle.x, particle.y, radius, radius, 0, 0, 360); + this.context.fillStyle = '#eaeaea'; // grey so it shows up on the light theme + this.context.fill(); + this.context.closePath(); + this.context.restore(); + + // Remove any dead snowflakes + const maxBounds = radius * 4; // make sure it's *really* off screen + if (particle.y > (height + maxBounds)) { + const idx = this.particles.indexOf(particle); + this.particles.splice(idx, 1); + } + } + } +} diff --git a/src/hooks/useSettings.ts b/src/hooks/useSettings.ts index 9534fccc4c..3aa38c44f4 100644 --- a/src/hooks/useSettings.ts +++ b/src/hooks/useSettings.ts @@ -18,12 +18,12 @@ import {useEffect, useState} from "react"; import SettingsStore from '../settings/SettingsStore'; // Hook to fetch the value of a setting and dynamically update when it changes -export const useSettingValue = (settingName: string, roomId: string = null, excludeDefault = false) => { - const [value, setValue] = useState(SettingsStore.getValue(settingName, roomId, excludeDefault)); +export const useSettingValue = (settingName: string, roomId: string = null, excludeDefault = false) => { + const [value, setValue] = useState(SettingsStore.getValue (settingName, roomId, excludeDefault)); useEffect(() => { const ref = SettingsStore.watchSetting(settingName, roomId, () => { - setValue(SettingsStore.getValue(settingName, roomId, excludeDefault)); + setValue(SettingsStore.getValue (settingName, roomId, excludeDefault)); }); // clean-up return () => { diff --git a/src/hooks/useStateCallback.ts b/src/hooks/useStateCallback.ts new file mode 100644 index 0000000000..f3993c1d32 --- /dev/null +++ b/src/hooks/useStateCallback.ts @@ -0,0 +1,28 @@ +/* +Copyright 2021 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import {Dispatch, SetStateAction, useState} from "react"; + +// Hook to simplify interactions with a store-backed state values +// Returns value and method to change the state value +export const useStateCallback = (initialValue: T, callback: (v: T) => void): [T, Dispatch >] => { + const [value, setValue] = useState(initialValue); + const interceptSetValue = (newVal: T) => { + setValue(newVal); + callback(newVal); + }; + return [value, interceptSetValue]; +}; diff --git a/src/i18n/strings/ca.json b/src/i18n/strings/ca.json index 4661e61c1d..7db987b8af 100644 --- a/src/i18n/strings/ca.json +++ b/src/i18n/strings/ca.json @@ -948,5 +948,7 @@ "Confirm adding phone number": "Confirma l'addició del número de telèfon", "Add Email Address": "Afegeix una adreça de correu electrònic", "Confirm": "Confirma", - "Click the button below to confirm adding this email address.": "Fes clic al botó de sota per confirmar l'addició d'aquesta adreça de correu electrònic." + "Click the button below to confirm adding this email address.": "Fes clic al botó de sota per confirmar l'addició d'aquesta adreça de correu electrònic.", + "Unable to access webcam / microphone": "No s'ha pogut accedir a la càmera web / micròfon", + "Unable to access microphone": "No s'ha pogut accedir al micròfon" } diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 3f9d231317..c304623544 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -55,7 +55,7 @@ "Custom Server Options": "Vlastní nastavení serveru", "Add a widget": "Přidat widget", "Accept": "Přijmout", - "%(targetName)s accepted an invitation.": "Uživatel %(targetName)s přijal pozvání.", + "%(targetName)s accepted an invitation.": "%(targetName)s přijal/a pozvání.", "Account": "Účet", "Access Token:": "Přístupový token:", "Add": "Přidat", @@ -86,10 +86,10 @@ "Bans user with given id": "Vykáže uživatele s daným id", "Cannot add any more widgets": "Nelze přidat žádné další widgety", "Change Password": "Změnit heslo", - "%(senderName)s changed their profile picture.": "Uživatel %(senderName)s změnil svůj profilový obrázek.", - "%(senderDisplayName)s changed the room name to %(roomName)s.": "Uživatel %(senderDisplayName)s změnil název místnosti na %(roomName)s.", - "%(senderDisplayName)s removed the room name.": "Uživatel %(senderDisplayName)s odstranil název místnosti.", - "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "Uživatel %(senderDisplayName)s změnil téma na „%(topic)s“.", + "%(senderName)s changed their profile picture.": "%(senderName)s změnil/a svůj profilový obrázek.", + "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s změnil/a název místnosti na %(roomName)s.", + "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s odstranil/a název místnosti.", + "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s změnil/a téma na „%(topic)s“.", "Changes your display nickname": "Změní vaši zobrazovanou přezdívku", "Command error": "Chyba příkazu", "Commands": "Příkazy", @@ -113,7 +113,7 @@ "Email address": "E-mailová adresa", "Emoji": "Emoji", "Enable automatic language detection for syntax highlighting": "Zapnout automatické rozpoznávání jazyků pro zvýrazňování syntaxe", - "%(senderName)s ended the call.": "Uživatel %(senderName)s ukončil hovor.", + "%(senderName)s ended the call.": "%(senderName)s ukončil/a hovor.", "Enter passphrase": "Zadejte heslo", "Error decrypting attachment": "Chyba při dešifrování přílohy", "Error: Problem communicating with the given homeserver.": "Chyba: problém v komunikaci s daným domovským serverem.", @@ -136,12 +136,12 @@ "Forget room": "Zapomenout místnost", "For security, this session has been signed out. Please sign in again.": "Z bezpečnostních důvodů bylo toto přihlášení ukončeno. Přihlašte se prosím znovu.", "and %(count)s others...|other": "a %(count)s další...", - "%(widgetName)s widget modified by %(senderName)s": "Uživatel %(senderName)s upravil widget %(widgetName)s", - "%(widgetName)s widget removed by %(senderName)s": "Uživatel %(senderName)s odstranil widget %(widgetName)s", - "%(widgetName)s widget added by %(senderName)s": "Uživatel %(senderName)s přidal widget %(widgetName)s", + "%(widgetName)s widget modified by %(senderName)s": "%(senderName)s upravil/a widget %(widgetName)s", + "%(widgetName)s widget removed by %(senderName)s": "%(senderName)s odstranil/a widget %(widgetName)s", + "%(widgetName)s widget added by %(senderName)s": "%(senderName)s přidal/a widget %(widgetName)s", "Automatically replace plain text Emoji": "Automaticky nahrazovat textové emoji", "Failed to upload image": "Obrázek se nepodařilo nahrát", - "%(senderName)s answered the call.": "Uživatel %(senderName)s přijal hovor.", + "%(senderName)s answered the call.": "%(senderName)s přijal/a hovor.", "Click to mute audio": "Klepněte pro vypnutí zvuku", "Failed to verify email address: make sure you clicked the link in the email": "E-mailovou adresu se nepodařilo ověřit. Přesvědčte se, že jste klepli na odkaz v e-mailové zprávě", "Guests cannot join this room even if explicitly invited.": "Hosté nemohou vstoupit do této místnosti, i když jsou přímo pozváni.", @@ -156,12 +156,12 @@ "Incorrect username and/or password.": "Nesprávné uživatelské jméno nebo heslo.", "Incorrect verification code": "Nesprávný ověřovací kód", "Invalid Email Address": "Neplatná e-mailová adresa", - "%(senderName)s invited %(targetName)s.": "Uživatel %(senderName)s pozval uživatele %(targetName)s.", + "%(senderName)s invited %(targetName)s.": "%(senderName)s pozval/a uživatele %(targetName)s.", "Invites": "Pozvánky", "Invites user with given id to current room": "Pozve do aktuální místnosti uživatele s daným id", "Join Room": "Vstoupit do místnosti", - "%(targetName)s joined the room.": "Uživatel %(targetName)s vstoupil do místnosti.", - "%(senderName)s kicked %(targetName)s.": "Uživatel %(senderName)s vykopl uživatele %(targetName)s.", + "%(targetName)s joined the room.": "%(targetName)s vstoupil/a do místnosti.", + "%(senderName)s kicked %(targetName)s.": "%(senderName)s vykopl/a uživatele %(targetName)s.", "Kick": "Vykopnout", "Kicks user with given id": "Vykopne uživatele s daným id", "Last seen": "Naposledy aktivní", @@ -184,7 +184,7 @@ "Passwords can't be empty": "Hesla nemohou být prázdná", "Permissions": "Oprávnění", "Phone": "Telefon", - "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "Uživatel %(senderName)s změnil úroveň oprávnění o %(powerLevelDiffText)s.", + "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s změnil/a úroveň oprávnění o %(powerLevelDiffText)s.", "Define the power level of a user": "Stanovte úroveň oprávnění uživatele", "Failed to change power level": "Nepodařilo se změnit úroveň oprávnění", "Power level must be positive integer.": "Úroveň oprávnění musí být kladné celé číslo.", @@ -201,15 +201,15 @@ "%(roomName)s is not accessible at this time.": "Místnost %(roomName)s není v tuto chvíli dostupná.", "Save": "Uložit", "Send Reset Email": "Poslat resetovací e-mail", - "%(senderDisplayName)s sent an image.": "Uživatel %(senderDisplayName)s poslal obrázek.", - "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "Uživatel %(senderName)s pozval uživatele %(targetDisplayName)s ke vstupu do místnosti.", + "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s poslal/a obrázek.", + "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s pozval/a uživatele %(targetDisplayName)s ke vstupu do místnosti.", "Server error": "Chyba serveru", "Server may be unavailable, overloaded, or search timed out :(": "Server může být nedostupný, přetížený nebo vyhledávání vypršelo :(", "Server may be unavailable, overloaded, or you hit a bug.": "Server může být nedostupný, přetížený nebo jste narazili na chybu.", "Server unavailable, overloaded, or something else went wrong.": "Server je nedostupný, přetížený nebo se něco pokazilo.", "Session ID": "ID sezení", - "%(senderName)s set a profile picture.": "Uživatel %(senderName)s si nastavil profilový obrázek.", - "%(senderName)s set their display name to %(displayName)s.": "Uživatel %(senderName)s si změnil zobrazované jméno na %(displayName)s.", + "%(senderName)s set a profile picture.": "%(senderName)s si nastavil/a profilový obrázek.", + "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s si změnil/a zobrazované jméno na %(displayName)s.", "Show timestamps in 12 hour format (e.g. 2:30pm)": "Zobrazovat čas v 12hodinovém formátu (např. 2:30 odp.)", "Sign in": "Přihlásit", "Sign out": "Odhlásit", @@ -235,13 +235,13 @@ "Online": "Online", "Offline": "Offline", "Check for update": "Zkontrolovat aktualizace", - "%(targetName)s accepted the invitation for %(displayName)s.": "Uživatel %(targetName)s přijal pozvání pro %(displayName)s.", + "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s přijal/a pozvání pro %(displayName)s.", "Active call (%(roomName)s)": "Probíhající hovor (%(roomName)s)", - "%(senderName)s banned %(targetName)s.": "Uživatel %(senderName)s vykázal uživatele %(targetName)s.", + "%(senderName)s banned %(targetName)s.": "%(senderName)s vykázal/a uživatele %(targetName)s.", "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Nelze se připojit k domovskému serveru přes HTTP, pokud je v adresním řádku HTTPS. Buď použijte HTTPS, nebo povolte nezabezpečené skripty.", "Click here to fix": "Pro opravu klepněte zde", "Click to mute video": "Klepněte pro zakázání videa", - "click to reveal": "pro odhlení klepněte", + "click to reveal": "klepněte pro odhalení", "Click to unmute video": "Klepněte pro povolení videa", "Click to unmute audio": "Klepněte pro povolení zvuku", "Displays action": "Zobrazí akci", @@ -258,7 +258,7 @@ "Unable to remove contact information": "Nepodařilo se smazat kontaktní údaje", "Unable to verify email address.": "Nepodařilo se ověřit e-mailovou adresu.", "Unban": "Přijmout zpět", - "%(senderName)s unbanned %(targetName)s.": "Uživatel %(senderName)s přijal zpět uživatele %(targetName)s.", + "%(senderName)s unbanned %(targetName)s.": "%(senderName)s přijal/a zpět uživatele %(targetName)s.", "Unable to capture screen": "Nepodařilo se zachytit obrazovku", "Unable to enable Notifications": "Nepodařilo se povolit oznámení", "unknown caller": "neznámý volající", @@ -305,11 +305,11 @@ "Reason": "Důvod", "VoIP conference started.": "VoIP konference započata.", "VoIP conference finished.": "VoIP konference ukončena.", - "%(targetName)s left the room.": "Uživatel %(targetName)s opustil místnost.", + "%(targetName)s left the room.": "%(targetName)s opustil/a místnost.", "You are already in a call.": "Již máte probíhající hovor.", "%(senderName)s requested a VoIP conference.": "Uživatel %(senderName)s požádal o VoIP konferenci.", - "%(senderName)s removed their profile picture.": "Uživatel %(senderName)s odstranil svůj profilový obrázek.", - "%(targetName)s rejected the invitation.": "Uživatel %(targetName)s odmítl pozvání.", + "%(senderName)s removed their profile picture.": "%(senderName)s odstranil/a svůj profilový obrázek.", + "%(targetName)s rejected the invitation.": "%(targetName)s odmítl/a pozvání.", "Communities": "Skupiny", "Message Pinning": "Připíchnutí zprávy", "Your browser does not support the required cryptography extensions": "Váš prohlížeč nepodporuje požadovaná kryptografická rozšíření", @@ -320,20 +320,20 @@ "Admin Tools": "Nástroje pro správce", "No pinned messages.": "Žádné připíchnuté zprávy.", "Pinned Messages": "Připíchnuté zprávy", - "%(senderName)s removed their display name (%(oldDisplayName)s).": "Uživatel %(senderName)s odstranil své zobrazované jméno (%(oldDisplayName)s).", - "%(senderName)s withdrew %(targetName)s's invitation.": "Uživatel %(senderName)s zrušil pozvání pro uživatele %(targetName)s.", - "%(senderName)s made future room history visible to all room members, from the point they are invited.": "Uživatel %(senderName)s nastavil viditelnost budoucích zpráv v této místnosti pro všechny její členy, a to od chvíle jejich pozvání.", - "%(senderName)s made future room history visible to all room members, from the point they joined.": "Uživatel %(senderName)s nastavil viditelnost budoucích zpráv v této místnosti pro všechny její členy, a to od chvíle jejich vstupu.", - "%(senderName)s made future room history visible to all room members.": "Uživatel %(senderName)s nastavil viditelnost budoucích zpráv v této místnosti pro všechny její členy.", - "%(senderName)s made future room history visible to anyone.": "Uživatel %(senderName)s nastavil viditelnost budoucích zpráv pro kohokoliv.", - "%(senderName)s changed the pinned messages for the room.": "Uživatel %(senderName)s změnil připíchnuté zprávy této místnosti.", + "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s odstranil/a své zobrazované jméno (%(oldDisplayName)s).", + "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s zrušil/a pozvání pro uživatele %(targetName)s.", + "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s nastavil/a viditelnost budoucích zpráv v této místnosti pro všechny její členy, a to od chvíle jejich pozvání.", + "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s nastavil/a viditelnost budoucích zpráv v této místnosti pro všechny její členy, a to od chvíle jejich vstupu.", + "%(senderName)s made future room history visible to all room members.": "%(senderName)s nastavil/a viditelnost budoucích zpráv v této místnosti pro všechny její členy.", + "%(senderName)s made future room history visible to anyone.": "%(senderName)s nastavil/a viditelnost budoucích zpráv pro kohokoliv.", + "%(senderName)s changed the pinned messages for the room.": "%(senderName)s změnil/a připíchnuté zprávy této místnosti.", "Authentication check failed: incorrect password?": "Kontrola ověření selhala: špatné heslo?", "You need to be able to invite users to do that.": "Pro tuto akci musíte mít právo zvát uživatele.", "Delete Widget": "Smazat widget", "Error decrypting image": "Chyba při dešifrování obrázku", "Error decrypting video": "Chyba při dešifrování videa", - "%(senderDisplayName)s removed the room avatar.": "Uživatel %(senderDisplayName)s odstranil avatar místnosti.", - "%(senderDisplayName)s changed the room avatar to ": "Uživatel %(senderDisplayName)s změnil avatar místnosti na ", + "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s odstranil/a avatar místnosti.", + "%(senderDisplayName)s changed the room avatar to ": "%(senderDisplayName)s změnil/a avatar místnosti na ", "Copied!": "Zkopírováno!", "Failed to copy": "Nepodařilo se zkopírovat", "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Smazáním widgetu ho odstraníte všem uživatelům v této místnosti. Opravdu chcete tento widget smazat?", @@ -384,9 +384,9 @@ "Invalid community ID": "Neplatné ID skupiny", "'%(groupId)s' is not a valid community ID": "'%(groupId)s' není platné ID skupiny", "New community ID (e.g. +foo:%(localDomain)s)": "Nové ID skupiny (např. +neco:%(localDomain)s)", - "%(senderName)s sent an image": "Uživatel %(senderName)s poslal obrázek", - "%(senderName)s sent a video": "Uživatel %(senderName)s poslal video", - "%(senderName)s uploaded a file": "Uživatel %(senderName)s nahrál soubor", + "%(senderName)s sent an image": "%(senderName)s poslal/a obrázek", + "%(senderName)s sent a video": "%(senderName)s poslal/a video", + "%(senderName)s uploaded a file": "%(senderName)s nahrál/a soubor", "Disinvite this user?": "Odvolat pozvání tohoto uživatele?", "Kick this user?": "Vykopnout tohoto uživatele?", "Unban this user?": "Přijmout zpět tohoto uživatele?", @@ -398,7 +398,7 @@ "You have disabled URL previews by default.": "Vypnuli jste automatické náhledy webových adres.", "You have enabled URL previews by default.": "Zapnuli jste automatické náhledy webových adres.", "URL Previews": "Náhledy webových adres", - "%(senderDisplayName)s changed the avatar for %(roomName)s": "Uživatel %(senderDisplayName)s změnil avatar místnosti %(roomName)s", + "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s změnil/a avatar místnosti %(roomName)s", "Add an Integration": "Přidat začlenění", "An email has been sent to %(emailAddress)s": "Na adresu %(emailAddress)s jsme poslali e-mail", "File to import": "Soubor k importu", @@ -466,18 +466,18 @@ "%(nameList)s %(transitionList)s": "%(nameList)s %(transitionList)s", "%(severalUsers)sjoined %(count)s times|other": "%(severalUsers)s%(count)s krát vstoupili", "%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)svstoupili", - "%(oneUser)sjoined %(count)s times|one": "%(oneUser)svstoupil", + "%(oneUser)sjoined %(count)s times|one": "%(oneUser)svstoupil/a", "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)s %(count)s krát opustili", "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)sopustili", "%(oneUser)sleft %(count)s times|other": "%(oneUser)s %(count)s krát opustil", "%(oneUser)sleft %(count)s times|one": "%(oneUser)sopustil", "%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)s %(count)s krát vstoupili a opustili", "%(severalUsers)sjoined and left %(count)s times|one": "%(severalUsers)svstoupili a opustili", - "%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)s %(count)s krát vstoupil a opustil", - "%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)svstoupil a opustil", + "%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)s %(count)s krát vstoupil/a a opustil/a", + "%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)svstoupil/a a opustil/a", "%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)s %(count)s krát opustili a znovu vstoupili", "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)sopustili a znovu vstoupili", - "%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)s %(count)s krát opustil a znovu vstoupil", + "%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)s %(count)s krát opustil/a a znovu vstoupil/a", "%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)sopustil a znovu vstoupil", "%(severalUsers)srejected their invitations %(count)s times|other": "%(severalUsers)s %(count)s krát odmítli pozvání", "%(severalUsers)srejected their invitations %(count)s times|one": "%(severalUsers)sodmítli pozvání", @@ -487,10 +487,10 @@ "%(severalUsers)shad their invitations withdrawn %(count)s times|one": "%(severalUsers)smeli stažené pozvání", "%(oneUser)shad their invitation withdrawn %(count)s times|other": "%(oneUser)směl %(count)s krát stažené pozvání", "%(oneUser)shad their invitation withdrawn %(count)s times|one": "%(oneUser)směl stažené pozvání", - "were invited %(count)s times|other": "byli %(count)s krát pozvaní", - "were invited %(count)s times|one": "byli pozvaní", - "was invited %(count)s times|other": "byl %(count)s krát pozvaný", - "was invited %(count)s times|one": "byl pozvaný", + "were invited %(count)s times|other": "byli %(count)s krát pozváni", + "were invited %(count)s times|one": "byli pozváni", + "was invited %(count)s times|other": "byl %(count)s krát pozván", + "was invited %(count)s times|one": "byl pozván", "were banned %(count)s times|other": "mělid %(count)s krát zakázaný vstup", "were banned %(count)s times|one": "měli zakázaný vstup", "was banned %(count)s times|other": "měl %(count)s krát zakázaný vstup", @@ -503,14 +503,14 @@ "were kicked %(count)s times|one": "byli vyhozeni", "was kicked %(count)s times|other": "byl %(count)s krát vyhozen", "was kicked %(count)s times|one": "byl vyhozen", - "%(severalUsers)schanged their name %(count)s times|other": "Uživatelé %(severalUsers)s si %(count)s krát změnili jméno", - "%(severalUsers)schanged their name %(count)s times|one": "Uživatelé %(severalUsers)s si změnili jméno", - "%(oneUser)schanged their name %(count)s times|other": "Uživatel %(oneUser)s si %(count)s krát změnil jméno", - "%(oneUser)schanged their name %(count)s times|one": "Uživatel %(oneUser)s si změnil jméno", + "%(severalUsers)schanged their name %(count)s times|other": "%(severalUsers)s si %(count)s krát změnili jméno", + "%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)s si změnili jméno", + "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)s si %(count)s krát změnil/a jméno", + "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)s si změnil/ jméno", "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)ssi %(count)s krát změnili avatary", "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)ssi změnili avatary", - "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)ssi %(count)s krát změnil avatar", - "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)ssi změnil avatar", + "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)s si %(count)s krát změnil/a avatar", + "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s si změnil/a avatar", "%(items)s and %(count)s others|other": "%(items)s a %(count)s další", "%(items)s and %(count)s others|one": "%(items)s a jeden další", "%(items)s and %(lastItem)s": "%(items)s a také %(lastItem)s", @@ -539,7 +539,7 @@ "To get started, please pick a username!": "Začněte tím, že si zvolíte uživatelské jméno!", "This will be your account name on the homeserver, or you can pick a different server.": "Toto bude název vašeho účtu na domovském serveru , anebo si můžete zvolit jiný server.", "If you already have a Matrix account you can log in instead.": "Pokud už účet v síti Matrix máte, můžete se ihned Přihlásit.", - "%(oneUser)sjoined %(count)s times|other": "%(oneUser)s %(count)s krát vstoupil", + "%(oneUser)sjoined %(count)s times|other": "%(oneUser)s %(count)s krát vstoupil/a", "Private Chat": "Soukromá konverzace", "Public Chat": "Veřejná konverzace", "You must register to use this functionality": "Pro využívání této funkce se zaregistrujte", @@ -564,7 +564,7 @@ "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Tyto místnosti se zobrazují všem členům na stránce skupiny. Členové skupiny mohou vstoupit do místnosti klepnutím.", "Featured Rooms:": "Hlavní místnosti:", "Featured Users:": "Významní uživatelé:", - "%(inviter)s has invited you to join this community": "Uživatel %(inviter)s vás pozval do této skupiny", + "%(inviter)s has invited you to join this community": "%(inviter)s vás pozval/a do této skupiny", "You are an administrator of this community": "Jste správcem této skupiny", "You are a member of this community": "Jste členem této skupiny", "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!": "Vaše skupina nemá vyplněný dlouhý popis, který je součástí HTML stránky skupiny a která se zobrazuje jejím členům.
Klepnutím zde otevřete nastavení, kde ho můžete doplnit!", @@ -753,7 +753,7 @@ "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s, %(day)s %(monthName)s %(fullYear)s", "Missing roomId.": "Chybějící ID místnosti.", "Opens the Developer Tools dialog": "Otevře dialog nástrojů pro vývojáře", - "%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s si změnil zobrazované jméno na %(displayName)s.", + "%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s si změnil/a zobrazované jméno na %(displayName)s.", "Always show encryption icons": "Vždy zobrazovat ikonu stavu šifrovaní", "Send analytics data": "Odesílat analytická data", "Enable widget screenshots on supported widgets": "Povolit screenshot widgetu pro podporované widgety", @@ -764,7 +764,7 @@ "Demote": "Degradovat", "Share Link to User": "Sdílet odkaz na uživatele", "Send an encrypted reply…": "Odeslat šifrovanou odpověď …", - "Send an encrypted message…": "Odeslat šifrovanou zprávu …", + "Send an encrypted message…": "Odeslat šifrovanou zprávu…", "Seen by %(displayName)s (%(userName)s) at %(dateTime)s": "%(displayName)s (%(userName)s) viděl %(dateTime)s", "Replying": "Odpovídá", "Share room": "Sdílet místnost", @@ -860,7 +860,7 @@ "Security & Privacy": "Zabezpečení", "Encryption": "Šifrování", "Once enabled, encryption cannot be disabled.": "Po zapnutí, už nepůjde šifrování vypnout.", - "Encrypted": "Šifrování", + "Encrypted": "Šifrováno", "General": "Obecné", "General failure": "Nějaká chyba", "This homeserver does not support login using email address.": "Tento domovský serveru neumožňuje přihlášení pomocí e-mailu.", @@ -943,14 +943,14 @@ "Upgrades a room to a new version": "Upgraduje místnost na novou verzi", "This room has no topic.": "Tato místnost nemá žádné specifické téma.", "Sets the room name": "Nastaví název místnosti", - "%(senderDisplayName)s upgraded this room.": "Uživatel %(senderDisplayName)s upgradoval místnost.", - "%(senderDisplayName)s made the room public to whoever knows the link.": "Uživatel %(senderDisplayName)s zveřejnil místnost pro všechny s odkazem.", - "%(senderDisplayName)s made the room invite only.": "Uživatel %(senderDisplayName)s zpřístupnil místnost pouze na pozvání.", - "%(senderDisplayName)s changed the join rule to %(rule)s": "Uživatel %(senderDisplayName)s změnil pravidlo k připojení na %(rule)s", - "%(senderDisplayName)s has allowed guests to join the room.": "Uživatel %(senderDisplayName)s povolil přístup hostům.", - "%(senderDisplayName)s has prevented guests from joining the room.": "Uživatel %(senderDisplayName)s zakázal přístup hostům.", - "%(senderDisplayName)s changed guest access to %(rule)s": "Uživatel %(senderDisplayName)s změnil pravidlo pro přístup hostů na %(rule)s", - "%(senderName)s set the main address for this room to %(address)s.": "Uživatel %(senderName)s hlavní adresu této místnosti na %(address)s.", + "%(senderDisplayName)s upgraded this room.": "%(senderDisplayName)s upgradoval/a místnost.", + "%(senderDisplayName)s made the room public to whoever knows the link.": "%(senderDisplayName)s zveřejnil/a místnost pro všechny s odkazem.", + "%(senderDisplayName)s made the room invite only.": "%(senderDisplayName)s zpřístupnil/a místnost pouze na pozvání.", + "%(senderDisplayName)s changed the join rule to %(rule)s": "%(senderDisplayName)s změnil/a pravidlo k připojení na %(rule)s", + "%(senderDisplayName)s has allowed guests to join the room.": "%(senderDisplayName)s povolil/a přístup hostům.", + "%(senderDisplayName)s has prevented guests from joining the room.": "%(senderDisplayName)s zakázal/a přístup hostům.", + "%(senderDisplayName)s changed guest access to %(rule)s": "%(senderDisplayName)s změnil/a pravidlo pro přístup hostů na %(rule)s", + "%(senderName)s set the main address for this room to %(address)s.": "%(senderName)s nastavil/a hlavní adresu této místnosti na %(address)s.", "%(senderName)s removed the main address for this room.": "%(senderName)s zrušil hlavní adresu této místnosti.", "%(displayName)s is typing …": "%(displayName)s píše …", "%(names)s and %(count)s others are typing …|other": "%(names)s a %(count)s dalších píše …", @@ -1136,7 +1136,7 @@ "Render simple counters in room header": "Zobrazovat stavová počítadla v hlavičce místnosti", "Enable Community Filter Panel": "Povolit panel Filtr skupiny", "Show developer tools": "Zobrazit nástroje pro vývojáře", - "Encrypted messages in group chats": "Šifrované zprávy ve skupinových konverzacích", + "Encrypted messages in group chats": "Šifrované zprávy ve skupinách", "Open Devtools": "Otevřít nástroje pro vývojáře", "Credits": "Poděkování", "You've previously used %(brand)s on %(host)s with lazy loading of members enabled. In this version lazy loading is disabled. As the local cache is not compatible between these two settings, %(brand)s needs to resync your account.": "Na adrese %(host)s už jste použili %(brand)s se zapnutou volbou načítání členů místností až při prvním zobrazení. V této verzi je načítání členů až při prvním zobrazení vypnuté. Protože je s tímto nastavením lokální vyrovnávací paměť nekompatibilní, %(brand)s potřebuje znovu synchronizovat údaje z vašeho účtu.", @@ -1231,10 +1231,10 @@ "You cannot modify widgets in this room.": "V této místnosti nemůžete manipulovat s widgety.", "Sends the given message coloured as a rainbow": "Pošle zprávu v barvách duhy", "Sends the given emote coloured as a rainbow": "Pošle reakci v barvách duhy", - "%(senderDisplayName)s enabled flair for %(groups)s in this room.": "Uživatel %(senderDisplayName)s přidal této místnosti příslušnost ke skupině %(groups)s.", - "%(senderDisplayName)s disabled flair for %(groups)s in this room.": "Uživatel %(senderDisplayName)s odebral této místnosti příslušnost ke skupině %(groups)s.", - "%(senderDisplayName)s enabled flair for %(newGroups)s and disabled flair for %(oldGroups)s in this room.": "Uživatel %(senderDisplayName)s přidal této místnosti příslušnost ke skupině %(newGroups)s a odebral k %(oldGroups)s.", - "%(senderName)s revoked the invitation for %(targetDisplayName)s to join the room.": "%(senderName)s zrušil pozvání do této místnosti pro uživatele %(targetDisplayName)s.", + "%(senderDisplayName)s enabled flair for %(groups)s in this room.": "%(senderDisplayName)s přidal/a této místnosti příslušnost ke skupině %(groups)s.", + "%(senderDisplayName)s disabled flair for %(groups)s in this room.": "%(senderDisplayName)s odebral/a této místnosti příslušnost ke skupině %(groups)s.", + "%(senderDisplayName)s enabled flair for %(newGroups)s and disabled flair for %(oldGroups)s in this room.": "%(senderDisplayName)s přidal/a této místnosti příslušnost ke skupině %(newGroups)s a odebral/a k %(oldGroups)s.", + "%(senderName)s revoked the invitation for %(targetDisplayName)s to join the room.": "%(senderName)s zrušil/a pozvání do této místnosti pro uživatele %(targetDisplayName)s.", "No homeserver URL provided": "Nebyla zadána URL adresa domovského server", "Unexpected error resolving homeserver configuration": "Chyba při zjišťování konfigurace domovského serveru", "The user's homeserver does not support the version of the room.": "Uživatelův domovský server nepodporuje verzi této místnosti.", @@ -1253,19 +1253,19 @@ "Join the conversation with an account": "Připojte se ke konverzaci s účtem", "Sign Up": "Zaregistrovat se", "Sign In": "Přihlásit se", - "You were kicked from %(roomName)s by %(memberName)s": "Uživatel %(memberName)s vás vykopl z místnosti %(roomName)s", + "You were kicked from %(roomName)s by %(memberName)s": "%(memberName)s vás vykopl/a z místnosti %(roomName)s", "Reason: %(reason)s": "Důvod: %(reason)s", "Forget this room": "Zapomenout na tuto místnost", "Re-join": "Znovu vstoupit", - "You were banned from %(roomName)s by %(memberName)s": "Uživatel %(memberName)s vás vykázal z místnosti %(roomName)s", + "You were banned from %(roomName)s by %(memberName)s": "%(memberName)s vás vykázal/a z místnosti %(roomName)s", "Something went wrong with your invite to %(roomName)s": "S vaší pozvánkou do místnosti %(roomName)s se něco pokazilo", "You can only join it with a working invite.": "Vstoupit můžete jen s funkční pozvánkou.", "You can still join it because this is a public room.": "I přesto můžete vstoupit, protože tato místnost je veřejná.", "Join the discussion": "Zapojit se do diskuze", "Try to join anyway": "Stejně se pokusit vstoupit", - "Do you want to chat with %(user)s?": "Chcete si povídat s uživatelem %(user)s?", + "Do you want to chat with %(user)s?": "Chcete si povídat s %(user)s?", "Do you want to join %(roomName)s?": "Chcete vstoupit do místnosti %(roomName)s?", - "invited you": "Uživatel vás pozval", + " invited you": " vás pozval/a", "You're previewing %(roomName)s. Want to join it?": "Nahlížíte do místnosti %(roomName)s. Chcete do ní vstoupit?", "%(roomName)s can't be previewed. Do you want to join it?": "%(roomName)s si nelze jen tak prohlížet. Chcete do ní vstoupit?", "This room doesn't exist. Are you sure you're at the right place?": "Tato místnost neexistuje. Jste si jistí, že jste na správném místě?", @@ -1280,7 +1280,7 @@ "Invited by %(sender)s": "Pozván od uživatele %(sender)s", "Error updating flair": "Nepovedlo se změnit příslušnost ke skupině", "There was an error updating the flair for this room. The server may not allow it or a temporary error occurred.": "Pro tuto místnost se nepovedlo změnit příslušnost ke skupině. Možná to server neumožňuje, nebo došlo k dočasné chybě.", - " reacted with %(shortName)s ": "Uživatelreagoval s %(shortName)s ", + "reacted with %(shortName)s ": "reagoval/a s %(shortName)s ", "edited": "upraveno", "Maximize apps": "Maximalizovat aplikace", "Rotate Left": "Otočit doleva", @@ -1509,31 +1509,31 @@ "Show image": "Zobrazit obrázek", "You verified %(name)s": "Ověřili jste %(name)s", "You cancelled verifying %(name)s": "Zrušili jste ověření %(name)s", - "%(name)s cancelled verifying": "Uživatel %(name)s zrušil ověření", + "%(name)s cancelled verifying": "%(name)s zrušil/a ověření", "You accepted": "Přijali jste", - "%(name)s accepted": "Uživatel %(name)s přijal", + "%(name)s accepted": "%(name)s přijal/a", "You cancelled": "Zrušili jste", - "%(name)s cancelled": "Uživatel %(name)s zrušil", + "%(name)s cancelled": "%(name)s zrušil/a", "%(name)s wants to verify": "%(name)s chce ověřit", "You sent a verification request": "Poslali jste požadavek na ověření", "Show all": "Zobrazit vše", "Edited at %(date)s. Click to view edits.": "Upraveno v %(date)s. Klinutím zobrazíte změny.", "Frequently Used": "Často používané", - "Smileys & People": "Obličeje & Lidé", - "Animals & Nature": "Zvířata & Příroda", - "Food & Drink": "Jídlo & Nápoje", + "Smileys & People": "Obličeje a lidé", + "Animals & Nature": "Zvířata a příroda", + "Food & Drink": "Jídlo a nápoje", "Activities": "Aktivity", - "Travel & Places": "Cestování & Místa", + "Travel & Places": "Cestování a místa", "Objects": "Objekty", "Symbols": "Symboly", "Flags": "Vlajky", "Quick Reactions": "Rychlé reakce", "Cancel search": "Zrušit hledání", "Pleasecreate a new issue on GitHub so that we can investigate this bug.": "Vyrobte prosímnové issue na GitHubu abychom mohli chybu opravit.", - "%(severalUsers)smade no changes %(count)s times|other": "Uživatelé %(severalUsers)s neudělali %(count)s krát žádnou změnu", - "%(severalUsers)smade no changes %(count)s times|one": "Uživatelé %(severalUsers)s neudělali žádnou změnu", - "%(oneUser)smade no changes %(count)s times|other": "Uživatel %(oneUser)s neudělal %(count)s krát žádnou změnu", - "%(oneUser)smade no changes %(count)s times|one": "Uživatel %(oneUser)s neudělal žádnou změnu", + "%(severalUsers)smade no changes %(count)s times|other": "%(severalUsers)s neudělali %(count)s krát žádnou změnu", + "%(severalUsers)smade no changes %(count)s times|one": "%(severalUsers)s neudělali žádnou změnu", + "%(oneUser)smade no changes %(count)s times|other": "%(oneUser)s neudělal/a %(count)s krát žádnou změnu", + "%(oneUser)smade no changes %(count)s times|one": "%(oneUser)s neudělal/a žádnou změnu", "e.g. my-room": "např. moje-mistnost", "Use bots, bridges, widgets and sticker packs": "Použít roboty, propojení, widgety a balíky samolepek", "Terms of Service": "Podmínky použití", @@ -1555,7 +1555,7 @@ "Explore": "Procházet", "Filter": "Filtr místností", "Filter rooms…": "Najít místnost…", - "%(creator)s created and configured the room.": "%(creator)s vytvořil a nakonfiguroval místnost.", + "%(creator)s created and configured the room.": "%(creator)s vytvořil/a a nakonfiguroval/a místnost.", "Preview": "Náhled", "View": "Zobrazit", "Find a room…": "Najít místnost…", @@ -1593,23 +1593,23 @@ "%(senderName)s placed a voice call. (not supported by this browser)": "%(senderName)s spustil hovor. (není podporováno tímto prohlížečem)", "%(senderName)s placed a video call.": "%(senderName)s spustil videohovor.", "%(senderName)s placed a video call. (not supported by this browser)": "%(senderName)s spustil videohovor. (není podporováno tímto prohlížečem)", - "%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s odstranit pravidlo blokující uživatele odpovídající %(glob)s", + "%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s odstranil/a pravidlo blokující uživatele odpovídající %(glob)s", "%(senderName)s removed the rule banning rooms matching %(glob)s": "%(senderName)s odstranil pravidlo blokující místnosti odpovídající %(glob)s", "%(senderName)s removed the rule banning servers matching %(glob)s": "%(senderName)s odstranil pravidlo blokující servery odpovídající %(glob)s", "%(senderName)s removed a ban rule matching %(glob)s": "%(senderName)s odstranil blokující pravidlo %(glob)s", "%(senderName)s updated an invalid ban rule": "%(senderName)s aktualizoval neplatné pravidlo blokování", - "%(senderName)s updated the rule banning users matching %(glob)s for %(reason)s": "%(senderName)s aktualizoval pravidlo blokující uživatele odpovídající %(glob)s z důvodu %(reason)s", + "%(senderName)s updated the rule banning users matching %(glob)s for %(reason)s": "%(senderName)s aktualizoval/a pravidlo blokující uživatele odpovídající %(glob)s z důvodu %(reason)s", "%(senderName)s updated the rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s aktualizoval pravidlo blokující místnosti odpovídající %(glob)s z důvodu %(reason)s", "%(senderName)s updated the rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s aktualizoval pravidlo blokující servery odpovídající %(glob)s z důvodu %(reason)s", "%(senderName)s updated a ban rule matching %(glob)s for %(reason)s": "%(senderName)s aktualizoval blokovací pravidlo odpovídající %(glob)s z důvodu %(reason)s", - "%(senderName)s created a rule banning users matching %(glob)s for %(reason)s": "%(senderName)s vytvořil pravidlo blokující uživatele odpovídající %(glob)s z důvodu %(reason)s", + "%(senderName)s created a rule banning users matching %(glob)s for %(reason)s": "%(senderName)s vytvořil/a pravidlo blokující uživatele odpovídající %(glob)s z důvodu %(reason)s", "%(senderName)s created a rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s vytvořil pravidlo blokující místnosti odpovídající %(glob)s z důvodu %(reason)s", "%(senderName)s created a rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s vytvořil pravidlo blokující servery odpovídající %(glob)s z důvodu %(reason)s", "%(senderName)s created a ban rule matching %(glob)s for %(reason)s": "%(senderName)s vytvořil blokovací pravidlo odpovídající %(glob)s z důvodu %(reason)s", - "%(senderName)s changed a rule that was banning users matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s změnil pravidlo blokující uživatele odpovídající %(oldGlob)s na uživatele odpovídající %(newGlob)s z důvodu %(reason)s", - "%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s změnil pravidlo blokující místnosti odpovídající %(oldGlob)s na místnosti odpovídající %(newGlob)s z důvodu %(reason)s", - "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s změnil pravidlo blokující servery odpovídající %(oldGlob)s na servery odpovídající %(newGlob)s z důvodu %(reason)s", - "%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s změnil blokovací pravidlo odpovídající %(oldGlob)s na odpovídající %(newGlob)s z důvodu %(reason)s", + "%(senderName)s changed a rule that was banning users matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s změnil/a pravidlo blokující uživatele odpovídající %(oldGlob)s na uživatele odpovídající %(newGlob)s z důvodu %(reason)s", + "%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s změnil/a pravidlo blokující místnosti odpovídající %(oldGlob)s na místnosti odpovídající %(newGlob)s z důvodu %(reason)s", + "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s změnil/a pravidlo blokující servery odpovídající %(oldGlob)s na servery odpovídající %(newGlob)s z důvodu %(reason)s", + "%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s změnil/a blokovací pravidlo odpovídající %(oldGlob)s na odpovídající %(newGlob)s z důvodu %(reason)s", "Try out new ways to ignore people (experimental)": "Vyzkoušejte nové metody ignorování lidí (experimentální)", "Match system theme": "Nastavit podle vzhledu systému", "My Ban List": "Můj seznam zablokovaných", @@ -1650,7 +1650,7 @@ "Subscribed lists": "Odebírané seznamy", "Subscribe": "Odebírat", "This message cannot be decrypted": "Zprávu nelze rozšifrovat", - "Unencrypted": "Nešifrované", + "Unencrypted": "Nezašifrované", "wants to chat": " si chce psát", "Start chatting": "Zahájit konverzaci", "Failed to connect to integration manager": "Nepovedlo se připojit ke správci integrací", @@ -1745,7 +1745,7 @@ "Waiting for %(displayName)s to verify…": "Čekám až nás %(displayName)s ověří…", "They match": "Odpovídají", "They don't match": "Neodpovídají", - "To be secure, do this in person or use a trusted way to communicate.": "Aby to bylo bezpečné, udělejte to osobně nebo použijte důvěryhodný komunikační prostředek.", + "To be secure, do this in person or use a trusted way to communicate.": "Aby bylo ověření bezpečné, proveďte ho osobně nebo použijte důvěryhodný komunikační prostředek.", "Lock": "Zámek", "Verify yourself & others to keep your chats safe": "Ověřte sebe a ostatní, aby byla vaše komunikace bezpečná", "Other users may not trust it": "Ostatní uživatelé této relaci nemusí věřit", @@ -1755,7 +1755,7 @@ "This bridge is managed by .": "Toto propojení spravuje .", "Workspace: %(networkName)s": "Pracovní oblast: %(networkName)s", "Channel: %(channelName)s": "Kanál: %(channelName)s", - "Show less": "Skrýt detaily", + "Show less": "Zobrazit méně", "Show more": "Více", "Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Změna hesla resetuje šifrovací klíče pro všechny vaše relace. Pokud si nejdřív nevyexportujete klíče místností a po změně je znovu neimportujete, nedostanete se k historickým zprávám. V budoucnu se toto zjednoduší.", "Cross-signing and secret storage are enabled.": "Cross-signing a bezpečné úložiště jsou zapnuté.", @@ -1801,12 +1801,12 @@ "Session key:": "Klíč relace:", "Message search": "Vyhledávání ve zprávách", "Cross-signing": "Cross-signing", - "A session's public name is visible to people you communicate with": "Lidé, se kterými komunikujete, mohou veřejný název zobrazit", + "A session's public name is visible to people you communicate with": "Lidé, se kterými komunikujete, mohou zobrazit veřejný název", "This room is bridging messages to the following platforms. Learn more.": "Tato místnost je propojena s následujícími platformami. Více informací", "This room isn’t bridging messages to any platforms. Learn more.": "Tato místnost není propojená s žádnými dalšími platformami. Více informací.", "Bridges": "Propojení", "This user has not verified all of their sessions.": "Tento uživatel zatím neověřil všechny své relace.", - "You have not verified this user.": "Tohoto uživatele jste neověřil.", + "You have not verified this user.": "Tohoto uživatele jste neověřili.", "You have verified this user. This user has verified all of their sessions.": "Tohoto uživatele jste ověřili a on ověřil všechny své relace.", "Someone is using an unknown session": "Někdo používá neznámou relaci", "This room is end-to-end encrypted": "Místnost je šifrovaná end-to-end", @@ -1820,15 +1820,15 @@ "Encrypted by a deleted session": "Šifrované smazanou relací", "Invite only": "Pouze na pozvání", "Send a reply…": "Odpovědět…", - "Send a message…": "Napsat zprávu…", + "Send a message…": "Odeslat zprávu…", "Direct Messages": "Přímé zprávy", - "Reject & Ignore user": "Odmítnout & ignorovat uživatele", + "Reject & Ignore user": "Odmítnout a ignorovat uživatele", "Unknown Command": "Neznámý příkaz", "Unrecognised command: %(commandText)s": "Nerozpoznaný příkaz: %(commandText)s", "You can use /help
to list available commands. Did you mean to send this as a message?": "Můžete použít/help
na vypsání všech příkazů. Nebo jste text chtěli odeslat jako zprávu?", "Hint: Begin your message with//
to start it with a slash.": "Tip: Zprávu můžete začít//
, pokud chcete aby začínala lomítkem.", "Send as message": "Odeslat jako zprávu", - "Waiting for %(displayName)s to accept…": "Čekáme, než %(displayName)s přijme…", + "Waiting for %(displayName)s to accept…": "Čekáme, než %(displayName)s výzvu přijme…", "Start Verification": "Začít s ověřením", "Your messages are secured and only you and the recipient have the unique keys to unlock them.": "Vaše zprávy jsou zabezpečené - pouze vy a jejich příjemci máte klíče potřebné k jejich přečtení.", "Verify User": "Ověřit uživatele", @@ -1922,7 +1922,7 @@ "The session you are trying to verify doesn't support scanning a QR code or emoji verification, which is what %(brand)s supports. Try with a different client.": "Relace, kterou se snažíte ověřit, neumožňuje ověření QR kódem ani pomocí emoji, což je to, co %(brand)s podporuje. Zkuste použít jiného klienta.", "Verify by scanning": "Ověřte naskenováním", "You declined": "Odmítli jste", - "%(name)s declined": "Uživatel %(name)s odmítl", + "%(name)s declined": "%(name)s odmítl/a", "Keep a copy of it somewhere secure, like a password manager or even a safe.": "Uschovejte si kopii na bezpečném místě, například ve správci hesel nebo v trezoru.", "Your recovery key": "Váš obnovovací klíč", "Copy": "Zkopírovat", @@ -1968,9 +1968,9 @@ "%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s přidal/a této místnosti alternativní adresu %(addresses)s.", "%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s odebral/a této místnosti alternativní adresy %(addresses)s.", "%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s odebral/a této místnosti alternativní adresu %(addresses)s.", - "%(senderName)s changed the alternative addresses for this room.": "%(senderName)s změnil/a této místnosti alternativní adresy.", - "%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s změnil/a této místnosti hlavní a alternativní adresy.", - "%(senderName)s changed the addresses for this room.": "%(senderName)s změnil/a této místnosti adresy.", + "%(senderName)s changed the alternative addresses for this room.": "%(senderName)s změnil/a alternativní adresy této místnosti.", + "%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s změnil/a hlavní a alternativní adresy této místnosti.", + "%(senderName)s changed the addresses for this room.": "%(senderName)s změnil/a adresy této místnosti.", "Manually Verify by Text": "Manuální textové ověření", "Interactively verify by Emoji": "Interaktivní ověření s emotikonami", "Support adding custom themes": "Umožnit přidání vlastního vzhledu", @@ -2041,7 +2041,7 @@ "Where you’re logged in": "Kde jste přihlášení", "You've successfully verified your device!": "Úspěšně jste ověřili vaše zařízení!", "Start verification again from the notification.": "Začít proces ověření znovu pomocí notifikace.", - "Start verification again from their profile.": "Začít proces ověření znovu z jejich profilu.", + "Start verification again from their profile.": "Proces ověření začněte znovu z profilu kontaktu.", "Verification timed out.": "Ověření vypršelo.", "You cancelled verification on your other session.": "Na druhé relace jste proces ověření zrušili.", "%(displayName)s cancelled verification.": "%(displayName)s zrušil/a proces ověření.", @@ -2064,7 +2064,7 @@ "%(networkName)s rooms": "místnosti v %(networkName)s", "Matrix rooms": "místnosti na Matrixu", "Enable end-to-end encryption": "Povolit E2E šifrování", - "You can’t disable this later. Bridges & most bots won’t work yet.": "Už to v budoucnu nepůjde vypnout. Většina botů a propojení zatím nefunguje.", + "You can’t disable this later. Bridges & most bots won’t work yet.": "Toto nelze později vypnout. Většina botů a propojení zatím nefunguje.", "Server did not require any authentication": "Server nevyžadoval žádné ověření", "Server did not return valid authentication information.": "Server neposkytl platné informace o ověření.", "Confirm your account deactivation by using Single Sign On to prove your identity.": "Potvrďte deaktivaci účtu použtím Jednotného přihlášení.", @@ -2180,7 +2180,7 @@ "%(senderName)s: %(reaction)s": "%(senderName)s: %(reaction)s", "%(senderName)s: %(stickerName)s": "%(senderName)s: %(stickerName)s", "Change notification settings": "Upravit nastavení oznámení", - "Communities v2 prototypes. Requires compatible homeserver. Highly experimental - use with caution.": "Prototyp komunit verze 2. Vyžaduje kompatibilní domovský server. Experimentální - používejte opatrně.", + "Communities v2 prototypes. Requires compatible homeserver. Highly experimental - use with caution.": "Prototyp skupin verze 2. Vyžaduje kompatibilní domovský server. Experimentální - používejte opatrně.", "Use custom size": "Použít vlastní velikost", "Use a more compact ‘Modern’ layout": "Používat kompaktní ‘Moderní’ vzhled", "Use a system font": "Používat systémové nastavení písma", @@ -2251,9 +2251,9 @@ "Feedback": "Zpětná vazba", "Feedback sent": "Zpětná vazba byla odeslána", "Security & privacy": "Zabezpečení", - "All settings": "Nastavení", + "All settings": "Všechna nastavení", "Start a conversation with someone using their name, email address or username (like).": "Napište jméno nebo emailovou adresu uživatele se kterým chcete začít konverzaci (např. ).", - "Start a new chat": "Založit nový chat", + "Start a new chat": "Založit novou konverzaci", "Which officially provided instance you are using, if any": "Kterou oficiální instanci Riot.im používáte (a jestli vůbec)", "Change the topic of this room": "Změnit téma této místnosti", "%(senderName)s declined the call.": "%(senderName)s odmítl/a hovor.", @@ -2291,11 +2291,11 @@ "Show Widgets": "Zobrazit widgety", "Hide Widgets": "Skrýt widgety", "Room settings": "Nastavení místnosti", - "Use the Desktop app to see all encrypted files": "Pomocí desktopové aplikace zobrazíte všechny šifrované soubory", + "Use the Desktop app to see all encrypted files": "Pro zobrazení všech šifrovaných souborů použijte desktopovou aplikaci", "Attach files from chat or just drag and drop them anywhere in a room.": "Připojte soubory z chatu nebo je jednoduše přetáhněte kamkoli do místnosti.", "No files visible in this room": "V této místnosti nejsou viditelné žádné soubory", "Show files": "Zobrazit soubory", - "%(count)s people|other": "%(count)s lidé", + "%(count)s people|other": "%(count)s lidé/í", "About": "O", "You’re all caught up": "Vše vyřízeno", "You have no visible notifications in this room.": "V této místnosti nemáte žádná viditelná oznámení.", @@ -2306,7 +2306,7 @@ "Backup version:": "Verze zálohy:", "Algorithm:": "Algoritmus:", "You might enable this if the room will only be used for collaborating with internal teams on your homeserver. This cannot be changed later.": "Tuto možnost můžete povolit, pokud bude místnost použita pouze pro spolupráci s interními týmy na vašem domovském serveru. Toto nelze později změnit.", - "Block anyone not part of %(serverName)s from ever joining this room.": "Blokovat komukoli, kdo není součástí serveru %(serverName)s, aby se nikdy nepřipojil do této místnosti.", + "Block anyone not part of %(serverName)s from ever joining this room.": "Blokovat komukoli, kdo není součástí serveru %(serverName)s, aby se připojil do této místnosti.", "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Recovery Key.": "Zálohujte šifrovací klíče s daty vašeho účtu pro případ, že ztratíte přístup k relacím. Vaše klíče budou zabezpečeny jedinečným klíčem pro obnovení.", "Manage the names of and sign out of your sessions below or verify them in your User Profile.": "Níže můžete spravovat názvy a odhlásit se ze svých relací nebo je ověřit v uživatelském profilu.", "or another cross-signing capable Matrix client": "nebo jiný Matrix klient schopný cross-signing", @@ -2326,13 +2326,13 @@ "Upload a file": "Nahrát soubor", "You've reached the maximum number of simultaneous calls.": "Dosáhli jste maximálního počtu souběžných hovorů.", "Too Many Calls": "Přiliš mnoho hovorů", - "Community and user menu": "Nabídka komunity a uživatele", + "Community and user menu": "Nabídka skupiny a uživatele", "User menu": "Uživatelská nabídka", "Switch theme": "Přepnout téma", "Switch to dark mode": "Přepnout do tmavého režimu", "Switch to light mode": "Přepnout do světlého režimu", "User settings": "Uživatelská nastavení", - "Community settings": "Nastavení komunity", + "Community settings": "Nastavení skupiny", "Confirm your recovery passphrase": "Potvrďte vaši frázi pro obnovení", "Repeat your recovery passphrase...": "Opakujte přístupovou frázi pro obnovení...", "Please enter your recovery passphrase a second time to confirm.": "Potvrďte prosím podruhé svou frázi pro obnovení.", @@ -2357,8 +2357,8 @@ "Delete the room address %(alias)s and remove %(name)s from the directory?": "Smazat adresu místnosti %(alias)s a odebrat %(name)s z adresáře?", "Self-verification request": "Požadavek na sebeověření", "%(creator)s created this DM.": "%(creator)s vytvořil tuto přímou zprávu.", - "You do not have permission to create rooms in this community.": "Nemáte oprávnění k vytváření místností v této komunitě.", - "Cannot create rooms in this community": "V této komunitě nelze vytvořit místnosti", + "You do not have permission to create rooms in this community.": "Nemáte oprávnění k vytváření místností v této skupině.", + "Cannot create rooms in this community": "V této skupině nelze vytvořit místnosti", "Great, that'll help people know it's you": "Skvělé, to pomůže lidem zjistit, že jste to vy", "Add a photo so people know it's you.": "Přidejte fotku, aby lidé věděli, že jste to vy.", "Explore Public Rooms": "Prozkoumat veřejné místnosti", @@ -2399,10 +2399,10 @@ "Invite by email": "Pozvat emailem", "Comment": "Komentář", "Add comment": "Přidat komentář", - "Update community": "Aktualizovat komunitu", + "Update community": "Aktualizovat skupinu", "Create a room in %(communityName)s": "Vytvořit místnost v %(communityName)s", "Your server requires encryption to be enabled in private rooms.": "Váš server vyžaduje povolení šifrování v soukromých místnostech.", - "An image will help people identify your community.": "Obrázek pomůže lidem identifikovat vaši komunitu.", + "An image will help people identify your community.": "Obrázek pomůže lidem identifikovat vaši skupinu.", "Invite people to join %(communityName)s": "Pozvat lidi do %(communityName)s", "Send %(count)s invites|one": "Poslat %(count)s pozvánku", "Send %(count)s invites|other": "Poslat %(count)s pozvánek", @@ -2421,7 +2421,7 @@ "Use email to optionally be discoverable by existing contacts.": "Pomocí e-mailu můžete být volitelně viditelní pro existující kontakty.", "Use email or phone to optionally be discoverable by existing contacts.": "Použijte e-mail nebo telefon, abyste byli volitelně viditelní pro stávající kontakty.", "Sign in with SSO": "Přihlásit pomocí SSO", - "Create community": "Vytvořit komunitu", + "Create community": "Vytvořit skupinu", "Add an email to be able to reset your password.": "Přidejte email, abyste mohli obnovit své heslo.", "That phone number doesn't look quite right, please check and try again": "Toto telefonní číslo nevypadá úplně správně, zkontrolujte ho a zkuste to znovu", "Forgot password?": "Zapomenuté heslo?", @@ -2435,7 +2435,7 @@ "Successfully restored %(sessionCount)s keys": "Úspěšně obnoveno %(sessionCount)s klíčů", "Keys restored": "Klíče byly obnoveny", "You're all caught up.": "Vše vyřízeno.", - "There was an error updating your community. The server is unable to process your request.": "Při aktualizaci komunity došlo k chybě. Server nemůže zpracovat váš požadavek.", + "There was an error updating your community. The server is unable to process your request.": "Při aktualizaci skupiny došlo k chybě. Server nemůže zpracovat váš požadavek.", "There are two ways you can provide feedback and help us improve %(brand)s.": "Jsou dva způsoby, jak můžete poskytnout zpětnou vazbu a pomoci nám vylepšit %(brand)s.", "Rate %(brand)s": "Ohodnotit %(brand)s", "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.": "V této relaci jste již dříve používali novější verzi %(brand)s. Chcete-li tuto verzi znovu použít s šifrováním, budete se muset odhlásit a znovu přihlásit.", @@ -2446,7 +2446,7 @@ "This version of %(brand)s does not support searching encrypted messages": "Tato verze %(brand)s nepodporuje hledání v šifrovaných zprávách", "Information": "Informace", "%(count)s results|one": "%(count)s výsledek", - "Explore community rooms": "Prozkoumat místnosti komunity", + "Explore community rooms": "Prozkoumat místnosti skupin", "Role": "Role", "Madagascar": "Madagaskar", "Macedonia": "Makedonie", @@ -2751,5 +2751,222 @@ "Unable to query secret storage status": "Nelze zjistit stav úložiště klíčů", "Update %(brand)s": "Aktualizovat %(brand)s", "You can also set up Secure Backup & manage your keys in Settings.": "Zabezpečené zálohování a správu klíčů můžete také nastavit v Nastavení.", - "Set a Security Phrase": "Nastavit bezpečnostní frázi" + "Set a Security Phrase": "Nastavit bezpečnostní frázi", + "Use this when referencing your community to others. The community ID cannot be changed.": "Použijte toto, když odkazujete svou skupinu na ostatní. ID skupiny nelze změnit.", + "Please go into as much detail as you like, so we can track down the problem.": "Udejte prosím co nejvíce podrobností, abychom mohli problém vystopovat.", + "Start a conversation with someone using their name or username (like ).": "Začněte konverzaci s někým pomocí jeho jména nebo uživatelského jména (například ).", + "Tell us below how you feel about %(brand)s so far.": "Níže se podělte s vašimi zkušenostmi s %(brand)s.", + "%(senderDisplayName)s set the server ACLs for this room.": "%(senderDisplayName)s nastavil seznam přístupů serveru pro tuto místnost.", + "What's the name of your community or team?": "Jak se jmenuje vaše skupina nebo tým?", + "Invite someone using their name, username (like ) or share this room.": "Pozvěte někoho pomocí svého jména, uživatelského jména (například ) nebo sdílejte tuto místnost.", + "Confirm by comparing the following with the User Settings in your other session:": "Potvrďte porovnáním následujícího s uživatelským nastavením v jiné relaci:", + "Data on this screen is shared with %(widgetDomain)s": "Data na této obrazovce jsou sdílena s %(widgetDomain)s", + "Just a heads up, if you don't add an email and forget your password, you could permanently lose access to your account.": "Jen upozornění, pokud nepřidáte e-mail a zapomenete heslo, můžete trvale ztratit přístup ke svému účtu.", + "Your area is experiencing difficulties connecting to the internet.": "Ve vaší oblasti dochází k problémům s připojením k internetu.", + "A connection error occurred while trying to contact the server.": "Při pokusu o kontakt se serverem došlo k chybě připojení.", + "The server is not configured to indicate what the problem is (CORS).": "Server není nakonfigurován tak, aby indikoval, v čem je problém (CORS).", + "Recent changes that have not yet been received": "Nedávné změny, které dosud nebyly přijaty", + "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.": "Nelze získat přístup k úložišti klíčů. Ověřte, zda jste zadali správnou přístupovou frázi pro obnovení.", + "Enter your Security Phrase or to continue.": "Pokračujte zadáním bezpečnostní fráze nebo pro pokračování.", + "Restoring keys from backup": "Obnovení klíčů ze zálohy", + "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.": "Zálohu nebylo možné dešifrovat pomocí této přístupové fráze pro obnovení: ověřte, zda jste zadali správnou přístupovou frázi pro obnovení.", + "%(completed)s of %(total)s keys restored": "Obnoveno %(completed)s z %(total)s klíčů", + "Store your Security Key somewhere safe, like a password manager or a safe, as it’s used to safeguard your encrypted data.": "Uložte bezpečnostní klíč někam na bezpečné místo, například do správce hesel nebo do trezoru, který slouží k ochraně vašich šifrovaných dat.", + "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.": "Váš klíč pro obnovení je bezpečnostní sítí - můžete jej použít k obnovení přístupu k šifrovaným zprávám, pokud zapomenete přístupovou frázi pro obnovení.", + "Data from an older version of %(brand)s has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "Byla zjištěna data ze starší verze %(brand)s. To bude mít za následek nefunkčnost end-to-end kryptografie ve starší verzi. End-to-end š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.", + "Failed to find the general chat for this community": "Nepodařilo se najít obecný chat pro tuto skupinu", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a recovery passphrase.": "Na náš server uložíme zašifrovanou kopii vašich klíčů. Zabezpečte zálohu pomocí přístupové fráze pro obnovení.", + "Enter your recovery passphrase a second time to confirm it.": "Zadejte podruhé přístupovou frázi pro obnovení a potvrďte ji.", + "If you cancel now, you may lose encrypted messages & data if you lose access to your logins.": "Pokud nyní nebudete pokračovat, můžete ztratit šifrované zprávy a data, pokud ztratíte přístup ke svým přihlašovacím údajům.", + "Messages in this room are end-to-end encrypted. When people join, you can verify them in their profile, just tap on their avatar.": "Zprávy v této místnosti jsou šifrovány end-to-end. Když se lidé připojí, můžete je ověřit v jejich profilu, stačí klepnout na jejich avatara.", + "Revoke permissions": "Odvolat oprávnění", + "Continuing without email": "Pokračuje se bez e-mailu", + "You can change this later if needed.": "V případě potřeby to můžete později změnit.", + "Video conference started by %(senderName)s": "Videokonferenci byla zahájena uživatelem %(senderName)s", + "Video conference updated by %(senderName)s": "Videokonference byla aktualizována uživatelem %(senderName)s", + "Video conference ended by %(senderName)s": "Videokonference byla ukončena uživatelem %(senderName)s", + "Unpin": "Odepnout", + "Fill Screen": "Vyplnit obrazovku", + "Voice Call": "Hlasový hovor", + "Video Call": "Videohovor", + "%(senderName)s ended the call": "%(senderName)s ukončil/a hovor", + "You ended the call": "Ukončili jste hovor", + "New version of %(brand)s is available": "K dispozici je nová verze %(brand)s", + "Error leaving room": "Při opouštění místnosti došlo k chybě", + "See messages posted to your active room": "Zobrazit zprávy odeslané do vaší aktivní místnosti", + "See messages posted to this room": "Zobrazit zprávy odeslané do této místnosti", + "See when the avatar changes in your active room": "Podívejte se, kdy se změní avatar ve vaší aktivní místnosti", + "Change the avatar of your active room": "Změňte avatar vaší aktivní místnosti", + "See when the avatar changes in this room": "Podívejte se, kdy se změní avatar v této místnosti", + "Change the avatar of this room": "Změňte avatar této místnosti", + "See when the name changes in your active room": "Podívejte se, kdy se ve vaší aktivní místnosti změní název", + "Change the name of your active room": "Změňte název své aktivní místnosti", + "Change the name of this room": "Změňte název této místnosti", + "A browser extension is preventing the request.": "Rozšíření prohlížeče brání požadavku.", + "Your firewall or anti-virus is blocking the request.": "Váš firewall nebo antivirový program blokuje požadavek.", + "The server (%(serverName)s) took too long to respond.": "Serveru (%(serverName)s) trvalo příliš dlouho, než odpověděl.", + "Your server isn't responding to some of your requests. Below are some of the most likely reasons.": "Váš server neodpovídá na některé vaše požadavky. Níže jsou některé z nejpravděpodobnějších důvodů.", + " HTML for your community's page
\n\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n\n You can even add images with Matrix URLs \n
\n": "HTML pro vaši stránku skupiny
\n\n Pomocí popisu můžete představit nové členy skupiny nebo distribuovat\n některé důležité odkazy\n
\n\n Můžete dokonce přidat obrázky pomocí Matrix URL \n
\n", + "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone in this community.": "Soukromé místnosti lze najít a připojit se do nich pouze na pozvání. Veřejné místnosti může najít a připojit se do nich kdokoli v této skupině.", + "Community ID: +:%(domain)s": "ID skupiny: + :%(domain)s", + "The operation could not be completed": "Operace nemohla být dokončena", + "Failed to save your profile": "Váš profil se nepodařilo uložit", + "%(peerName)s held the call": "%(peerName)s podržel hovor", + "You held the call Resume": "Podrželi jste hovor Pokračovat", + "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Element with an existing Matrix account on a different homeserver.": "Můžete použít vlastní volbu serveru a přihlásit se k jiným Matrix serverům zadáním adresy URL domovského serveru. To vám umožní používat Element s existujícím Matrix účtem na jiném domovském serveru.", + "Unpin a widget to view it in this panel": "Odepněte widget, aby mohl být zobrazen v tomto panelu", + "You can only pin up to %(count)s widgets|other": "Můžete připnout až %(count)s widgetů", + "Edit widgets, bridges & bots": "Upravujte widgety, mosty a boty", + "a device cross-signing signature": "zařízení používající cross-signing podpis", + "This widget would like to:": "Tento widget by chtěl:", + "Modal Widget": "Modální widget", + "You might disable this if the room will be used for collaborating with external teams who have their own homeserver. This cannot be changed later.": "Toto můžete deaktivovat, pokud bude místnost použita pro spolupráci s externími týmy, které mají svůj vlastní domovský server. Toto nelze později změnit.", + "Join the conference from the room information card on the right": "Připojte se ke konferenci z informační karty místnosti napravo", + "Join the conference at the top of this room": "Připojte se ke konferenci v horní části této místnosti", + "There are advanced notifications which are not shown here.": "Existují pokročilá oznámení, která se zde nezobrazují.", + "Enable advanced debugging for the room list": "Povolit pokročilé ladění pro seznam místností", + "Securely cache encrypted messages locally for them to appear in search results, using %(size)s to store messages from %(rooms)s rooms.|one": "Bezpečně uloží zašifrované zprávy v místním úložišti, aby se mohly objevit ve výsledcích vyhledávání, využívá se %(size)s k ukládání zpráv z %(rooms)s místnosti.", + "Securely cache encrypted messages locally for them to appear in search results, using %(size)s to store messages from %(rooms)s rooms.|other": "Bezpečně uloží zašifrované zprávy v místním úložišti, aby se mohly objevit ve výsledcích vyhledávání, využívá se %(size)s k ukládání zpráv z %(rooms)s místností.", + "You might have configured them in a client other than %(brand)s. You cannot tune them in %(brand)s but they still apply.": "Možná jste je nakonfigurovali v jiném klientovi než %(brand)s. Nelze je zobrazit v %(brand)s, ale stále platí.", + "well formed": "ve správném tvaru", + "There was an error creating your community. The name may be taken or the server is unable to process your request.": "Při vytváření vaší skupiny došlo k chybě. Název může být již obsazen nebo server nemůže zpracovat váš požadavek.", + "See %(eventType)s events posted to this room": "Zobrazit události %(eventType)s zveřejněné v této místnosti", + "Send stickers to your active room as you": "Poslat nálepky do vaší aktivní místnosti jako vy", + "Send stickers to this room as you": "Poslat samolepky jako vy do této místnosti", + "Change the topic of your active room": "Změnit téma vaší aktivní místnosti", + "Change which room you're viewing": "Změnit kterou místnost si prohlížíte", + "Send stickers into your active room": "Poslat nálepky do vaší aktivní místnosti", + "Send stickers into this room": "Poslat nálepky do této místnosti", + "Send messages as you in this room": "Poslat zprávy jako vy v této místnosti", + "Send messages as you in your active room": "Poslat zprávy jako vy ve vaší aktivní místnosti", + "Send text messages as you in this room": "Poslat textové zprávy jako vy v této místnosti", + "Send text messages as you in your active room": "Poslat textové zprávy jako vy ve vaší aktivní místnosti", + "See text messages posted to this room": "Podívat se na textové zprávy odeslané do této místnosti", + "See text messages posted to your active room": "Podívat se na textové zprávy odeslané do vaší aktivní místnosti", + "Send images as you in this room": "Poslat obrázky jako vy v této místnosti", + "Send images as you in your active room": "Poslat obrázky jako vy ve vaší aktivní místnosti", + "See images posted to this room": "Podívat se na obrázky zveřejněné v této místnosti", + "See images posted to your active room": "Podívat se na obrázky zveřejněné ve vaší aktivní místnosti", + "Send videos as you in this room": "Poslat videa jako vy v této místnosti", + "Send videos as you in your active room": "Podívat se na videa jako vy ve vaší aktivní místnosti", + "See videos posted to this room": "Podívat se na videa zveřejněná v této místnosti", + "See videos posted to your active room": "Podívat se na videa zveřejněná ve vaší aktivní místnosti", + "Send general files as you in this room": "Poslat obecné soubory jako vy v této místnosti", + "Send general files as you in your active room": "Poslat obecné soubory jako vy ve vaší aktivní místnosti", + "See general files posted to this room": "Prohlédnout obecné soubory zveřejněné v této místnosti", + "See general files posted to your active room": "Prohlédnout obecné soubory zveřejněné ve vaší aktivní místnosti", + "Send %(msgtype)s messages as you in this room": "Poslat zprávy %(msgtype)s jako vy v této místnosti", + "Send %(msgtype)s messages as you in your active room": "Poslat zprávy %(msgtype)s jako vy ve vašá aktivní místnosti", + "See %(msgtype)s messages posted to this room": "Prohlédnout zprávy %(msgtype)s zveřejněné v této místnosti", + "See %(msgtype)s messages posted to your active room": "Prohlédnout zprávy %(msgtype)s zveřejněné ve vaší aktivní místnosti", + "Render LaTeX maths in messages": "Ve zprávách vykreslit matematické výrazy LaTeXu", + "New spinner design": "Nový design ukazatele zpracování", + "Show message previews for reactions in DMs": "Zobrazit náhledy zpráv pro reakce v přímých zprávách", + "Show message previews for reactions in all rooms": "Zobrazit náhledy zpráv pro reakce ve všech místnostech", + "Sends the given message with confetti": "Pošle zprávu s konfetami", + "sends confetti": "pošle konfety", + "Sends the given message with fireworks": "Pošle zprávu s ohňostrojem", + "sends fireworks": "pošle ohňostroj", + "The %(capability)s capability": "Schopnost %(capability)s", + "See %(eventType)s events posted to your active room": "Zobrazit události %(eventType)s odeslané do vaší aktivní místnosti", + "Send %(eventType)s events as you in your active room": "Poslat události %(eventType)s jako vy ve vaší aktivní místnosti", + "Send %(eventType)s events as you in this room": "Poslat události %(eventType)s jako vy v této místnosti", + "with an empty state key": "s prázdným stavovým klíčem", + "with state key %(stateKey)s": "se stavovým klíčem %(stateKey)s", + "User signing private key:": "Podpisový klíč uživatele:", + "Self signing private key:": "Vlastní podpisový klíč:", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "Vloží ┬──┬ ノ( ゜-゜ノ) na začátek zprávy", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "Vloží (╯°□°)╯︵ ┻━┻ na začátek zprávy", + "Remain on your screen while running": "Při běhu zůstává na obrazovce", + "Remain on your screen when viewing another room, when running": "Při prohlížení jiné místnosti zůstává při běhu na obrazovce", + "%(senderDisplayName)s changed the server ACLs for this room.": "%(senderDisplayName)s změnil/a seznam přístupů serveru pro tuto místnost.", + "Offline encrypted messaging using dehydrated devices": "Offline šifrovaná komunikace pomocí dehydrovaných zařízení", + "See emotes posted to your active room": "Prohlédněte si emoji zveřejněné ve vaší aktivní místnosti", + "See emotes posted to this room": "Prohlédněte si emoji zveřejněné v této místnosti", + "Send emotes as you in your active room": "Poslat emoji jako vy ve své aktivní místnosti", + "Send emotes as you in this room": "Poslat emoji jako vy v této místnosti", + "See when anyone posts a sticker to your active room": "Podívejte se, kdy někdo zveřejní nálepku ve vaší aktivní místnosti", + "See when a sticker is posted in this room": "Podívejte se, kdy je zveřejněna nálepka v této místnosti", + "See when the name changes in this room": "Podívejte se, kdy se změní název v této místnosti", + "See when the topic changes in your active room": "Podívejte se, kdy se změní téma ve vaší aktivní místnosti", + "See when the topic changes in this room": "Podívejte se, kdy se změní téma v této místnosti", + "%(name)s on hold": "%(name)s podržen", + "You held the call Switch": "Podrželi jste hovor Přepnout", + "sends snowfall": "pošle sněžení", + "Sends the given message with snowfall": "Pošle zprávu se sněžením", + "You have no visible notifications.": "Nejsou dostupná žádná oznámení.", + "Transfer": "Přepojit", + "Failed to transfer call": "Hovor se nepodařilo přepojit", + "A call can only be transferred to a single user.": "Hovor lze přepojit pouze jednomu uživateli.", + "There was an error finding this widget.": "Při hledání tohoto widgetu došlo k chybě.", + "Active Widgets": "Aktivní widgety", + "Open dial pad": "Otevřít číselník", + "Start a Conversation": "Zahájit konverzaci", + "Dial pad": "Číselník", + "There was an error looking up the phone number": "Při vyhledávání telefonního čísla došlo k chybě", + "Unable to look up phone number": "Nelze nalézt telefonní číslo", + "Channel: ": "Kanál: ", + "Change which room, message, or user you're viewing": "Změňte, kterou místnost, zprávu nebo uživatele si prohlížíte", + "Workspace: ": "Pracovní oblast: ", + "If you've forgotten your Security Key you can ": "Pokud jste zapomněli bezpečnostní klíč, můžete ", + "If you've forgotten your Security Phrase you can use your Security Key orset up new recovery options ": "Pokud jste zapomněli bezpečnostní frázi, můžetepoužít bezpečnostní klíč nebonastavit nové možnosti obnovení ", + "Backup could not be decrypted with this Security Phrase: please verify that you entered the correct Security Phrase.": "Zálohu nebylo možné dešifrovat pomocí této bezpečnostní fráze: ověřte, zda jste zadali správnou bezpečnostní frázi.", + "Backup could not be decrypted with this Security Key: please verify that you entered the correct Security Key.": "Zálohu nebylo možné dešifrovat pomocí tohoto bezpečnostního klíče: ověřte, zda jste zadali správný bezpečnostní klíč.", + "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.": "Zálohujte šifrovací klíče s daty účtu pro případ, že ztratíte přístup k relacím. Vaše klíče budou zabezpečeny jedinečným bezpečnostním klíčem.", + "Your Security Key is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase.": "Váš bezpečnostní klíč je bezpečnostní síť - můžete ji použít k obnovení přístupu k šifrovaným zprávám, pokud zapomenete bezpečnostní frázi.", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a Security Phrase.": "Na náš server uložíme zašifrovanou kopii vašich klíčů. Zabezpečte zálohu pomocí bezpečnostní fráze.", + "Access your secure message history and set up secure messaging by entering your Security Key.": "Vstupte do historie zabezpečených zpráv a nastavte zabezpečené zprávy zadáním bezpečnostního klíče.", + "Access your secure message history and set up secure messaging by entering your Security Phrase.": "Vstupte do historie zabezpečených zpráv a nastavte zabezpečené zprávy zadáním bezpečnostní fráze.", + "Unable to access secret storage. Please verify that you entered the correct Security Phrase.": "Nelze získat přístup k zabezpečenému úložišti. Ověřte, zda jste zadali správnou bezpečnostní frázi.", + "We recommend you change your password and Security Key in Settings immediately": "Doporučujeme vám okamžitě změnit heslo a bezpečnostní klíč v Nastavení", + "This session has detected that your Security Phrase and key for Secure Messages have been removed.": "Tato relace zjistila, že byla odstraněna vaše bezpečnostní fráze a klíč pro zabezpečené zprávy.", + "A new Security Phrase and key for Secure Messages have been detected.": "Byla zjištěna nová bezpečnostní fráze a klíč pro zabezpečené zprávy.", + "Make a copy of your Security Key": "Vytvořte kopii bezpečnostního klíče", + "Confirm your Security Phrase": "Potvrďte svou bezpečnostní frázi", + "Secure your backup with a Security Phrase": "Zabezpečte zálohu pomocí bezpečnostní fráze", + "Repeat your Security Phrase...": "Zopakujte vaši bezpečnostní frázi...", + "Set up with a Security Key": "Nastavit pomocí bezpečnostního klíče", + "Use Security Key": "Použít bezpečnostní klíč", + "This looks like a valid Security Key!": "Vypadá to jako platný bezpečnostní klíč!", + "Invalid Security Key": "Neplatný bezpečnostní klíč", + "Your Security Key has been copied to your clipboard, paste it to:": "Váš bezpečnostní klíč byl zkopírován do schránky, vložte jej do:", + "Your Security Key is in your Downloads folder.": "Váš bezpečnostní klíč je ve složce Stažené soubory.", + "Your Security Key": "Váš bezpečnostní klíč", + "Please enter your Security Phrase a second time to confirm.": "Potvrďte prosím svou bezpečnostní frázi.", + "Great! This Security Phrase looks strong enough.": "Skvělé! Tato bezpečnostní fráze vypadá dostatečně silně.", + "Use Security Key or Phrase": "Použijte bezpečnostní klíč nebo frázi", + "Not a valid Security Key": "Neplatný bezpečnostní klíč", + "Enter Security Key": "Zadejte bezpečnostní klíč", + "Enter Security Phrase": "Zadejte bezpečnostní frázi", + "Incorrect Security Phrase": "Nesprávná bezpečnostní fráze", + "Security Key mismatch": "Neshoda bezpečnostního klíče", + "Wrong Security Key": "Špatný bezpečnostní klíč", + "Set my room layout for everyone": "Nastavit všem rozložení mé místnosti", + "%(senderName)s has updated the widget layout": "%(senderName)s aktualizoval rozložení widgetu", + "Search (must be enabled)": "Hledat (musí být povoleno)", + "Remember this": "Zapamatujte si toto", + "The widget will verify your user ID, but won't be able to perform actions for you:": "Widget ověří vaše uživatelské ID, ale nebude za vás moci provádět akce:", + "Allow this widget to verify your identity": "Povolte tomuto widgetu ověřit vaši identitu", + "Use Ctrl + F to search": "Hledejte pomocí Ctrl + F", + "Use Command + F to search": "Hledejte pomocí Command + F", + "Converts the DM to a room": "Převede přímou zprávu na místnost", + "Converts the room to a DM": "Převede místnost na přímou zprávu", + "Mobile experience": "Zážitek na mobilních zařízeních", + "Element Web is currently experimental on mobile. The native apps are recommended for most people.": "Element Web je v současné době experimentální na mobilních zařízeních. Nativní aplikace se doporučují pro většinu lidí.", + "Use app for a better experience": "Pro lepší zážitek použijte aplikaci", + "Element Web is experimental on mobile. For a better experience and the latest features, use our free native app.": "Element Web je experimentální na mobilních zařízeních. Pro lepší zážitek a nejnovější funkce použijte naši bezplatnou nativní aplikaci.", + "Use app": "Použijte aplikaci", + "Something went wrong in confirming your identity. Cancel and try again.": "Při ověřování vaší identity se něco pokazilo. Zrušte to a zkuste to znovu.", + "Your homeserver rejected your log in attempt. This could be due to things just taking too long. Please try again. If this continues, please contact your homeserver administrator.": "Váš domovský server odmítl váš pokus o přihlášení. Může to být způsobeno tím, že věci trvají příliš dlouho. Prosím zkuste to znovu. Pokud to bude pokračovat, obraťte se na správce domovského serveru.", + "Your homeserver was unreachable and was not able to log you in. Please try again. If this continues, please contact your homeserver administrator.": "Váš domovský server nebyl dosažitelný a nemohl vás přihlásit. Zkuste to prosím znovu. Pokud to bude pokračovat, obraťte se na správce domovského serveru.", + "Try again": "Zkuste to znovu", + "We asked the browser to remember which homeserver you use to let you sign in, but unfortunately your browser has forgotten it. Go to the sign in page and try again.": "Požádali jsme prohlížeč, aby si pamatoval, který domovský server používáte k přihlášení, ale váš prohlížeč to bohužel zapomněl. Přejděte na přihlašovací stránku a zkuste to znovu.", + "We couldn't log you in": "Nemohli jsme vás přihlásit", + "Show stickers button": "Tlačítko Zobrazit nálepky", + "Windows": "Okna", + "Screens": "Obrazovky", + "Share your screen": "Sdílejte svou obrazovku", + "Expand code blocks by default": "Ve výchozím nastavení rozbalit bloky kódu", + "Show line numbers in code blocks": "Zobrazit čísla řádků v blocích kódu", + "Recently visited rooms": "Nedávno navštívené místnosti" } diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json index f44d724643..1f4eef4d93 100644 --- a/src/i18n/strings/da.json +++ b/src/i18n/strings/da.json @@ -18,7 +18,7 @@ "Kicks user with given id": "Smider bruger med givet id ud", "Changes your display nickname": "Ændrer dit viste navn", "Searches DuckDuckGo for results": "Søger på DuckDuckGo efter resultater", - "Commands": "kommandoer", + "Commands": "Kommandoer", "Emoji": "Emoji", "Sign in": "Log ind", "Warning!": "Advarsel!", @@ -69,7 +69,7 @@ "World readable": "Læselig af alle", "Guests can join": "Gæster kan deltage", "No rooms to show": "Ingen rum at vise", - "This email address is already in use": "Denne emailadresse er allerede i brug", + "This email address is already in use": "Denne email adresse er allerede i brug", "This phone number is already in use": "Dette telefonnummer er allerede i brug", "Failed to verify email address: make sure you clicked the link in the email": "Kunne ikke bekræfte emailaddressen: vær sikker på at klikke på linket i emailen", "Call Timeout": "Opkalds Timeout", @@ -536,5 +536,87 @@ "%(senderName)s updated the rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s opdaterede den regel der banner rum som matcher %(glob)s på grund af %(reason)s", "%(senderName)s updated the rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s opdaterede den regel der banner servere der matcher %(glob)s på grund af %(reason)s", "%(senderName)s updated a ban rule matching %(glob)s for %(reason)s": "%(senderName)s opdaterede en ban-regel der matcher %(glob)s på grund af %(reason)s", - "Explore rooms": "Udforsk rum" + "Explore rooms": "Udforsk rum", + "Verification code": "Verifikationskode", + "Who can access this room?": "Hvem kan tilgå dette rum?", + "Encrypted": "Krypteret", + "Once enabled, encryption cannot be disabled.": "Efter aktivering er det ikke muligt at slå kryptering fra.", + "Security & Privacy": "Sikkerhed & Privatliv", + "Who can read history?": "Hvem kan læse historikken?", + "Enable encryption?": "Aktiver kryptering?", + "Only people who have been invited": "Kun folk som er blevet inviteret", + "Add a User": "Tilføj en bruger", + "Everyone": "Alle", + "Description": "Beskrivelse", + "Create a Group Chat": "Opret en gruppechat", + "Explore Public Rooms": "Udforsk offentlige rum", + "Send a Direct Message": "Send en Direkte Besked", + "Permissions": "Tilladelser", + "Headphones": "Hovedtelefoner", + "Show more": "Vis mere", + "Show less": "Vis mindre", + "Passwords don't match": "Adgangskoderne matcher ikke", + "Confirm password": "Bekræft adgangskode", + "Reset": "Nulstil", + "No": "Nej", + "Enter password": "Indtast adgangskode", + "Add a new server": "Tilføj en ny server", + "Matrix": "Matrix", + "Remove server": "Fjern server", + "Change notification settings": "Skift notifikations indstillinger", + "%(senderName)s: %(stickerName)s": "%(senderName)s: %(stickerName)s", + "%(senderName)s: %(reaction)s": "%(senderName)s: %(reaction)s", + "%(senderName)s: %(message)s": "%(senderName)s: %(message)s", + "* %(senderName)s %(emote)s": "* %(senderName)s %(emote)s", + "%(senderName)s is calling": "%(senderName)s ringer", + "Waiting for answer": "Venter på svar", + "%(senderName)s started a call": "%(senderName)s startede et opkald", + "You started a call": "Du startede et opkald", + "Verified!": "Bekræftet!", + "Video Call": "Video Opkald", + "Accept": "Accepter", + "Decline": "Afvis", + "Save": "Gem", + "Profile picture": "Profil billede", + "Categories": "Kategorier", + "Checking server": "Tjekker server", + "You're signed out": "Du er logget ud", + "Change Password": "Skift adgangskode", + "Current password": "Nuværende adgangskode", + "Theme added!": "Tema tilføjet!", + "The other party declined the call.": "Den anden part afviste opkaldet.", + "Comment": "Kommentar", + "or": "eller", + "%(brand)s Android": "%(brand)s Android", + "%(brand)s iOS": "%(brand)s iOS", + "Privacy": "Privatliv", + "Please enter a name for the room": "Indtast et navn for rummet", + "No results": "Ingen resultater", + "Disable": "Deaktiver", + "Profile": "Profil", + "Local address": "Lokal adresse", + "This room has no local addresses": "Dette rum har ingen lokal adresse", + "The conversation continues here.": "Samtalen fortsætter her.", + "Send a message…": "Send en besked…", + "Send an encrypted message…": "Send en krypteret besked…", + "Send a reply…": "Besvar…", + "Message deleted on %(date)s": "Besked slettet d. %(date)s", + "Message deleted by %(name)s": "Besked slettet af %(name)s", + "Message deleted": "Besked slettet", + "Theme": "Tema", + "France": "Frankrig", + "Finland": "Finland", + "Egypt": "Egypten", + "Denmark": "Danmark", + "Cuba": "Cuba", + "China": "Kina", + "Canada": "Canada", + "End conference": "Afslut konference", + "Too Many Calls": "For mange opkald", + "Permission is granted to use the webcam": "Tilladelse er givet til brug af webcam", + "Unable to access webcam / microphone": "Kan ikke tilgå webcam / mikrofon", + "Unable to access microphone": "Kan ikke tilgå mikrofonen", + "The call could not be established": "Opkaldet kunne ikke etableres", + "Call Declined": "Opkald afvist", + "Folder": "Mappe" } diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 8588ccb7d6..bc37bb7bb8 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -20,7 +20,7 @@ "Change Password": "Passwort ändern", "Searches DuckDuckGo for results": "Verwendet DuckDuckGo für Suchergebnisse", "Commands": "Kommandos", - "Emoji": "Emoji", + "Emoji": "Emojis", "Sign in": "Anmelden", "Warning!": "Warnung!", "Error": "Fehler", @@ -59,13 +59,13 @@ "Moderator": "Moderator", "Notifications": "Benachrichtigungen", "": " ", - "No users have specific privileges in this room": "Kein Benutzer hat in diesem Raum besondere Berechtigungen", + "No users have specific privileges in this room": "Keine Nutzer:innen haben in diesem Raum privilegierte Berechtigungen", "Only people who have been invited": "Nur Personen, die eingeladen wurden", "Password": "Passwort", "Permissions": "Berechtigungen", "Phone": "Telefon", "Please check your email and click on the link it contains. Once this is done, click continue.": "Bitte prüfe deinen E-Mail-Posteingang und klicke auf den in der E-Mail enthaltenen Link. Anschließend auf \"Fortsetzen\" klicken.", - "Privileged Users": "Privilegierte Benutzer", + "Privileged Users": "Privilegierte Nutzer:innen", "Profile": "Profil", "Reject invitation": "Einladung ablehnen", "Remove": "Entfernen", @@ -149,7 +149,7 @@ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s hat das Berechtigungslevel von %(powerLevelDiffText)s geändert.", "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s hat den Raumnamen geändert zu %(roomName)s.", "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s hat das Thema geändert in \"%(topic)s\".", - "/ddg is not a command": "/ddg ist kein Kommando", + "/ddg is not a command": "/ddg ist kein Befehl", "%(senderName)s ended the call.": "%(senderName)s hat den Anruf beendet.", "Failed to send request.": "Anfrage konnte nicht gesendet werden.", "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s von %(fromPowerLevel)s zu %(toPowerLevel)s", @@ -177,7 +177,7 @@ "%(senderName)s set a profile picture.": "%(senderName)s hat ein Profilbild gesetzt.", "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s hat den Anzeigenamen geändert in %(displayName)s.", "This room is not recognised.": "Dieser Raum wurde nicht erkannt.", - "To use it, just wait for autocomplete results to load and tab through them.": "Um diese Funktion zu nutzen, warte einfach auf die Autovervollständigungsergebnisse und benutze dann die TAB-Taste zum durchblättern.", + "To use it, just wait for autocomplete results to load and tab through them.": "Um diese Funktion zu nutzen, warte einfach auf die Ergebnisse der Autovervollständigung und benutze dann die TAB-Taste zum Durchblättern.", "%(senderName)s unbanned %(targetName)s.": "%(senderName)s hat die Verbannung von %(targetName)s aufgehoben.", "Usage": "Verwendung", "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s hat die Einladung für %(targetName)s zurückgezogen.", @@ -197,12 +197,12 @@ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Es kann keine Verbindung zum Heimserver via HTTP aufgebaut werden, wenn die Adresszeile des Browsers eine HTTPS-URL enthält. Entweder HTTPS verwenden oder alternativ unsichere Skripte erlauben.", "Click to mute audio": "Klicke um den Ton stumm zu stellen", "Click to mute video": "Klicken, um das Video stummzuschalten", - "Command error": "Befehlsfehler", + "Command error": "Fehler im Befehl", "Decrypt %(text)s": "%(text)s entschlüsseln", "Disinvite": "Einladung zurückziehen", "Download %(text)s": "%(text)s herunterladen", "Failed to ban user": "Verbannen des Benutzers fehlgeschlagen", - "Failed to change power level": "Ändern des Berechtigungslevels fehlgeschlagen", + "Failed to change power level": "Ändern der Berechtigungsstufe fehlgeschlagen", "Failed to join room": "Betreten des Raumes ist fehlgeschlagen", "Failed to kick": "Kicken fehlgeschlagen", "Failed to mute user": "Stummschalten des Nutzers fehlgeschlagen", @@ -228,7 +228,7 @@ "Tried to load a specific point in this room's timeline, but was unable to find it.": "Es wurde versucht, einen bestimmten Punkt im Chatverlauf dieses Raumes zu laden, der Punkt konnte jedoch nicht gefunden werden.", "You seem to be in a call, are you sure you want to quit?": "Du scheinst in einem Gespräch zu sein, bist du sicher, dass du aufhören willst?", "You seem to be uploading files, are you sure you want to quit?": "Du scheinst Dateien hochzuladen. Bist du sicher schließen zu wollen?", - "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Du wirst diese Änderung nicht rückgängig machen können, da der Benutzer dasselbe Berechtigungslevel wie du selbst erhalten wird.", + "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Du wirst diese Änderung nicht rückgängig machen können, da der/die Nutzer!n dasselbe Berechtigungsstufe wie du selbst erhalten wird.", "Room": "Raum", "Cancel": "Abbrechen", "Click to unmute video": "Klicken, um die Video-Stummschaltung zu deaktivieren", @@ -314,7 +314,7 @@ "Default Device": "Standard-Gerät", "Microphone": "Mikrofon", "Camera": "Kamera", - "Export": "Export", + "Export": "Exportieren", "Import": "Importieren", "Incorrect username and/or password.": "Inkorrekter Nutzername und/oder Passwort.", "Results from DuckDuckGo": "Ergebnisse von DuckDuckGo", @@ -422,7 +422,7 @@ "Add a User": "Benutzer hinzufügen", "You have entered an invalid address.": "Du hast eine ungültige Adresse eingegeben.", "Matrix ID": "Matrix-ID", - "Unignore": "Ignorieren aufheben", + "Unignore": "Nicht mehr ignorieren", "Unignored user": "Benutzer nicht mehr ignoriert", "Ignored user": "Benutzer ignoriert", "Stops ignoring a user, showing their messages going forward": "Beendet das Ignorieren eines Benutzers, nachfolgende Nachrichten werden wieder angezeigt", @@ -451,7 +451,7 @@ "Pinned Messages": "Angeheftete Nachrichten", "%(senderName)s changed the pinned messages for the room.": "%(senderName)s hat die angehefteten Nachrichten für diesen Raum geändert.", "Jump to read receipt": "Zur Lesebestätigung springen", - "Message Pinning": "Anheften von Nachrichten", + "Message Pinning": "Nachrichten-Anheftung", "Long Description (HTML)": "Lange Beschreibung (HTML)", "Jump to message": "Zur Nachricht springen", "No pinned messages.": "Keine angehefteten Nachrichten vorhanden.", @@ -490,7 +490,7 @@ "Leave Community": "Community verlassen", "Add rooms to this community": "Räume zu dieser Community hinzufügen", "%(inviter)s has invited you to join this community": "%(inviter)s hat dich in diese Community eingeladen", - "You are a member of this community": "Du bist ein Mitglied dieser Community", + "You are a member of this community": "Du bist Mitglied dieser Community", "You are an administrator of this community": "Du bist ein Administrator dieser Community", "Community %(groupId)s not found": "Community '%(groupId)s' nicht gefunden", "Failed to load %(groupId)s": "'%(groupId)s' konnte nicht geladen werden", @@ -504,7 +504,7 @@ "Delete Widget": "Widget löschen", "Mention": "Erwähnen", "Invite": "Einladen", - "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Das Löschen eines Widgets entfernt es für alle Nutzer in diesem Raum. Möchtest du dieses Widget wirklich löschen?", + "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Das Löschen eines Widgets entfernt es für alle Nutzer:innen in diesem Raum. Möchtest du dieses Widget wirklich löschen?", "Mirror local video feed": "Lokalen Video-Feed spiegeln", "Failed to withdraw invitation": "Die Einladung konnte nicht zurückgezogen werden", "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "Community-IDs dürfen nur die folgenden Zeichen enthalten: a-z, 0-9, or '=_-./'", @@ -588,7 +588,7 @@ "Enable inline URL previews by default": "URL-Vorschau standardmäßig aktivieren", "Enable URL previews for this room (only affects you)": "URL-Vorschau für diesen Raum aktivieren (betrifft nur dich)", "Enable URL previews by default for participants in this room": "URL-Vorschau standardmäßig für Mitglieder dieses Raumes aktivieren", - "Please note you are logging into the %(hs)s server, not matrix.org.": "Hinweis: Du meldest dich auf dem %(hs)s-Server an, nicht auf matrix.org.", + "Please note you are logging into the %(hs)s server, not matrix.org.": "Hinweis: Du bist im Begriff, dich auf dem %(hs)s-Server anzumelden, nicht auf matrix.org.", "There's no one else here! Would you like to invite others orstop warning about the empty room ?": "Sonst ist hier aktuell niemand. Möchtest duBenutzer einladen oder dieWarnmeldung bezüglich des leeren Raums deaktivieren ?", "URL previews are disabled by default for participants in this room.": "URL-Vorschau ist für Mitglieder dieses Raumes standardmäßig deaktiviert.", "URL previews are enabled by default for participants in this room.": "URL-Vorschau ist für Mitglieder dieses Raumes standardmäßig aktiviert.", @@ -641,7 +641,7 @@ "Failed to remove tag %(tagName)s from room": "Entfernen der Raum-Kennzeichnung %(tagName)s fehlgeschlagen", "Failed to add tag %(tagName)s to room": "Fehler beim Hinzufügen des \"%(tagName)s\"-Tags an dem Raum", "Did you know: you can use communities to filter your %(brand)s experience!": "Wusstest du: Du kannst Communities nutzen um deine %(brand)s-Erfahrung zu filtern!", - "To set up a filter, drag a community avatar over to the filter panel on the far left hand side of the screen. You can click on an avatar in the filter panel at any time to see only the rooms and people associated with that community.": "Um einen Filter zu setzen, ziehe ein Community-Bild auf das Filter-Panel ganz links. Du kannst jederzeit auf einen Avatar im Filter-Panel klicken um nur die Räume und Personen aus der Community zu sehen.", + "To set up a filter, drag a community avatar over to the filter panel on the far left hand side of the screen. You can click on an avatar in the filter panel at any time to see only the rooms and people associated with that community.": "Um einen Filter zu setzen, ziehe ein Community-Bild auf das Filter-Panel ganz links. Du kannst jederzeit auf einen Avatar im Filter-Panel klicken, um nur die Räume und Personen aus der Community zu sehen.", "Clear filter": "Filter zurücksetzen", "Key request sent.": "Schlüssel-Anfragen gesendet.", "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Wenn du einen Fehler via GitHub gemeldet hast, können Fehlerberichte uns helfen um das Problem zu finden. Sie enthalten Anwendungsdaten wie deinen Nutzernamen, Raum- und Gruppen-ID's und Aliase die du besucht hast und Nutzernamen anderer Nutzer. Sie enthalten keine Nachrichten.", @@ -979,7 +979,7 @@ "Render simple counters in room header": "Einfache Zähler in Raum-Kopfzeile anzeigen", "Enable Emoji suggestions while typing": "Emoji-Vorschläge während der Eingabe aktivieren", "Show a placeholder for removed messages": "Zeigt einen Platzhalter für gelöschte Nachrichten an", - "Show join/leave messages (invites/kicks/bans unaffected)": "Zeige Betreten-/Verlassen-Nachrichten (Einladungen/Kicks/Bans sind dadurch nicht betroffen)", + "Show join/leave messages (invites/kicks/bans unaffected)": "Betreten-/Verlassen-Nachrichten zeigen (betrifft nicht Einladungen/Kicks/Bans)", "Show avatar changes": "Avatar-Änderungen anzeigen", "Show display name changes": "Anzeigenamen-Änderungen anzeigen", "Send typing notifications": "Tipp-Benachrichtigungen senden", @@ -1025,7 +1025,7 @@ "FAQ": "Häufige Fragen", "Versions": "Versionen", "Room Addresses": "Raum-Adressen", - "Deactivating your account is a permanent action - be careful!": "Das Deaktivieren deines Kontos ist nicht widerruflich - sei vorsichtig!", + "Deactivating your account is a permanent action - be careful!": "Die Deaktivierung deines Kontos ist nicht widerruflich - sei vorsichtig!", "Preferences": "Einstellungen", "Room list": "Raumliste", "The file '%(fileName)s' exceeds this homeserver's size limit for uploads": "Die Datei '%(fileName)s' überschreitet die maximale Größe für Uploads auf diesem Heimserver", @@ -1121,8 +1121,8 @@ "Join": "Beitreten", "Waiting for partner to confirm...": "Warte auf Bestätigung des Gesprächspartners...", "Incoming Verification Request": "Eingehende Verifikationsanfrage", - "Allow Peer-to-Peer for 1:1 calls": "Erlaube Peer-to-Peer für 1:1-Anrufe", - "Are you sure? You will lose your encrypted messages if your keys are not backed up properly.": "Bist du sicher? Du wirst deine verschlüsselten Nachrichten verlieren, wenn deine Schlüssel nicht gesichert sind.", + "Allow Peer-to-Peer for 1:1 calls": "Peer-to-Peer-Verbindungen für 1:1-Anrufe erlauben", + "Are you sure? You will lose your encrypted messages if your keys are not backed up properly.": "Bist du sicher? Du wirst deine verschlüsselten Nachrichten verlieren, wenn deine Schlüssel nicht gut gesichert sind.", "Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "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.", "Restore from Backup": "Von Sicherung wiederherstellen", "Back up your keys before signing out to avoid losing them.": "Sichere deine Schlüssel bevor du dich abmeldest, damit du sie nicht verlierst.", @@ -1189,7 +1189,7 @@ "Unable to query for supported registration methods.": "Konnte unterstützte Registrierungsmethoden nicht abrufen.", "Bulk options": "Sammeloptionen", "Join millions for free on the largest public server": "Schließe dich kostenlos auf dem größten öffentlichen Server Millionen von Menschen an", - "Prepends ¯\\_(ツ)_/¯ to a plain-text message": "Fügt ¯\\_(ツ)_/¯ vor einer Klartextnachricht ein", + "Prepends ¯\\_(ツ)_/¯ to a plain-text message": "Stellt ¯\\_(ツ)_/¯ einer Klartextnachricht voran", "Changes your display nickname in the current room only": "Ändert den Anzeigenamen ausschließlich für den aktuellen Raum", "%(senderDisplayName)s enabled flair for %(groups)s in this room.": "%(senderDisplayName)s aktivierte Abzeichen der Gruppen %(groups)s für diesen Raum.", "%(senderDisplayName)s disabled flair for %(groups)s in this room.": "%(senderDisplayName)s deaktivierte Abzeichen der Gruppen %(groups)s in diesem Raum.", @@ -1221,9 +1221,9 @@ "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.": "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.", "Error updating main address": "Fehler beim Aktualisieren der Hauptadresse", "There was an error updating the room's main address. It may not be allowed by the server or a temporary failure occurred.": "Es gab ein Problem beim Aktualisieren der Raum-Hauptadresse. Es kann sein, dass es vom Server verboten ist oder ein temporäres Problem auftrat.", - "Error updating flair": "Konnte Abzeichen nicht aktualisieren", + "Error updating flair": "Abzeichen-Aktualisierung fehlgeschlagen", "There was an error updating the flair for this room. The server may not allow it or a temporary error occurred.": "Es gab ein Problem beim Aktualisieren des Abzeichens für diesen Raum. Es kann sein, dass der Server es nicht erlaubt oder ein temporäres Problem auftrat.", - "Power level": "Berechtigungslevel", + "Power level": "Berechtigungsstufe", "Room Settings - %(roomName)s": "Raumeinstellungen - %(roomName)s", "A username can only contain lower case letters, numbers and '=_-./'": "Ein Benutzername kann nur Kleinbuchstaben, Nummern und '=_-./' enthalten", "Share Permalink": "Teile permanenten Link", @@ -1264,7 +1264,7 @@ "Show hidden events in timeline": "Zeige versteckte Ereignisse in der Chronik", "Low bandwidth mode": "Modus für niedrige Bandbreite", "Reset": "Zurücksetzen", - "Joining room …": "Raum beitreten…", + "Joining room …": "Trete Raum bei …", "Rejecting invite …": "Einladung ablehnen…", "Sign Up": "Registrieren", "Sign In": "Anmelden", @@ -1328,12 +1328,12 @@ "Find a room…": "Einen Raum suchen…", "Find a room… (e.g. %(exampleRoom)s)": "Einen Raum suchen… (z.B. %(exampleRoom)s)", "If you can't find the room you're looking for, ask for an invite or Create a new room.": "Wenn du den gesuchten Raum nicht finden kannst, frage nach einer Einladung für den Raum oder Erstelle einen neuen Raum.", - "Alternatively, you can try to use the public server atturn.matrix.org
, but this will not be as reliable, and it will share your IP address with that server. You can also manage this in Settings.": "Alternativ kannst du versuchen, den öffentlichen Server unterturn.matrix.org
zu verwenden. Allerdings wird dieser nicht so zuverlässig sein, und deine IP-Adresse mit diesem Server teilen. Du kannst dies auch in den Einstellungen konfigurieren.", + "Alternatively, you can try to use the public server atturn.matrix.org
, but this will not be as reliable, and it will share your IP address with that server. You can also manage this in Settings.": "Alternativ kannst du versuchen, den öffentlichen Server unterturn.matrix.org
zu verwenden. Allerdings wird dieser nicht so zuverlässig sein, und du teilst deine IP-Adresse mit diesem Server. Du kannst dies auch in den Einstellungen konfigurieren.", "This action requires accessing the default identity serverto validate an email address or phone number, but the server does not have any terms of service.": "Diese Handlung erfordert es, auf den Standard-Identitätsserver zuzugreifen, um eine E-Mail Adresse oder Telefonnummer zu validieren, aber der Server hat keine Nutzungsbedingungen.", - "Only continue if you trust the owner of the server.": "Fahre nur fort, wenn du dem/r Besitzer*in des Servers vertraust.", + "Only continue if you trust the owner of the server.": "Fahre nur fort, wenn du dem/r Besitzer:in des Servers vertraust.", "Trust": "Vertrauen", "Custom (%(level)s)": "Benutzerdefinierte (%(level)s)", - "Sends a message as plain text, without interpreting it as markdown": "Verschickt eine Nachricht in reinem Textformat, ohne sie in Markdown zu formatieren", + "Sends a message as plain text, without interpreting it as markdown": "Verschickt eine Nachricht in Rohtext, ohne sie als Markdown darzustellen", "Use an identity server to invite by email. Manage in Settings.": "Nutze einen Identitätsserver, um über E-Mail Einladungen zu verschicken. Verwalte es in den Einstellungen.", "%(name)s (%(userId)s)": "%(name)s (%(userId)s)", "Try out new ways to ignore people (experimental)": "Versuche neue Möglichkeiten, um Menschen zu ignorieren (experimentell)", @@ -1374,7 +1374,7 @@ "Later": "Später", "Review": "Überprüfen", "Verify": "Verifizieren", - "Decline (%(counter)s)": "Zurückweisen (%(counter)s)", + "Decline (%(counter)s)": "Ablehnen (%(counter)s)", "not found": "nicht gefunden", "rooms.": "Räumen zu speichern.", "Manage": "Verwalten", @@ -1387,15 +1387,15 @@ "Backup has a signature from unknown user with ID %(deviceId)s": "Die Sicherung hat eine Signatur vonunbekanntem/r Nutzer!n mit ID %(deviceId)s", "Backup key stored: ": "Backup Schlüssel gespeichert: ", "Clear notifications": "Benachrichtigungen löschen", - "Disconnect from the identity serverand connect to instead?": "Verbindung vom Identitätsserver trennen und stattdessen zu verbinden?", - "The identity server you have chosen does not have any terms of service.": "Der Identitätsserver, den du gewählt hast, hat keine Nutzungsbedingungen.", + "Disconnect from the identity server and connect to instead?": "Vom Identitätsserver trennen, und stattdessen eine Verbindung zu aufbauen?", + "The identity server you have chosen does not have any terms of service.": "Der von dir gewählte Identitätsserver hat keine Nutzungsbedingungen.", "Disconnect identity server": "Verbindung zum Identitätsserver trennen", "contact the administrators of identity server ": "Administrator des Identitätsservers kontaktieren", "wait and try again later": "warte und versuche es später erneut", "Disconnect anyway": "Verbindung trotzdem trennen", "You are still sharing your personal data on the identity server .": "Du teilst deine persönlichen Daten immer noch auf dem Identitätsserver .", "We recommend that you remove your email addresses and phone numbers from the identity server before disconnecting.": "Wir empfehlen, dass du deine Email Adressen und Telefonnummern vom Identitätsserver löschst, bevor du die Verbindung trennst.", - "You are not currently using an identity server. To discover and be discoverable by existing contacts you know, add one below.": "Du nutzt momentan keinen Identitätsserver. Um von bestehenden Kontakten die du kennst gefunden zu werden und diese zu finden, füge unten einen hinzu.", + "You are not currently using an identity server. To discover and be discoverable by existing contacts you know, add one below.": "Zur Zeit benutzt du keinen Identitätsserver. Trage unten einen Server ein, um Kontakte finden und von anderen gefunden zu werden.", "Use an Integration Manager (%(serverName)s) to manage bots, widgets, and sticker packs.": "Nutze einen Integrationsmanager (%(serverName)s) um Bots, Widgets und Sticker Packs zu verwalten.", "Use an Integration Manager to manage bots, widgets, and sticker packs.": "Verwende einen Integrationsmanager um Bots, Widgets und Sticker Packs zu verwalten.", "Manage integrations": "Integrationen verwalten", @@ -1451,7 +1451,7 @@ "Filter": "Filtern", "Filter rooms…": "Räume filtern…", "You have %(count)s unread notifications in a prior version of this room.|one": "Du hast %(count)s ungelesene Benachrichtigungen in einer früheren Version dieses Raumes.", - "Go Back": "Gehe zurück", + "Go Back": "Zurückgehen", "Notification Autocomplete": "Benachrichtigung Autovervollständigen", "If disabled, messages from encrypted rooms won't appear in search results.": "Wenn deaktiviert, werden Nachrichten von verschlüsselten Räumen nicht in den Ergebnissen auftauchen.", "This user has not verified all of their sessions.": "Dieser Benutzer hat nicht alle seine Sitzungen verifiziert.", @@ -1545,7 +1545,7 @@ "Discovery options will appear once you have added a phone number above.": "Entdeckungsoptionen werden angezeigt, sobald eine Telefonnummer hinzugefügt wurde.", "Close preview": "Vorschau schließen", "Loading room preview": "Lade Raumvorschau", - "Join the discussion": "Trete der Diskussion bei", + "Join the discussion": "Tritt der Diskussion bei", "Remove for everyone": "Für alle entfernen", "Remove for me": "Für mich entfernen", "Create your Matrix account on ": "Erstelle dein Matrix-Konto auf ", @@ -1555,7 +1555,7 @@ "Remove %(phone)s?": "%(phone)s entfernen?", "Remove recent messages by %(user)s": "Letzte Nachrichten von %(user)s entfernen", "You are about to remove %(count)s messages by %(user)s. This cannot be undone. Do you wish to continue?|other": "Du bist dabei %(count)s Nachrichten von %(user)s zu löschen, was nicht rückgängig gemacht werden kann. Fortfahren?", - "You are about to remove %(count)s messages by %(user)s. This cannot be undone. Do you wish to continue?|one": "Du bist dabei eine Nachrichten von %(user)s zu löschen, was nicht rückgängig gemacht werden kann. Fortfahren?", + "You are about to remove %(count)s messages by %(user)s. This cannot be undone. Do you wish to continue?|one": "Du bist dabei, eine Nachricht von %(user)s zu löschen. Das kann nicht rückgängig gemacht werden. Fortfahren?", "Remove %(count)s messages|other": "%(count)s Nachrichten entfernen", "Remove %(count)s messages|one": "Eine Nachricht entfernen", "Remove recent messages": "Letzte Nachrichten entfernen", @@ -1573,67 +1573,67 @@ "%(senderName)s removed the rule banning rooms matching %(glob)s": "%(senderName)s entfernte die Ausschluss-Regel für Räume, die %(glob)s entsprechen", "%(senderName)s removed the rule banning servers matching %(glob)s": "%(senderName)s entfernte die Ausschluss-Regel für Server, die %(glob)s entsprechen", "%(senderName)s removed a ban rule matching %(glob)s": "%(senderName)s entfernte die Ausschluss-Regel, die %(glob)s entspricht", - "%(senderName)s updated the rule banning users matching %(glob)s for %(reason)s": "%(senderName)s aktualisierte die Ausschluss-Regel für Nutzer, die aufgrund von %(reason)s %(glob)s entsprechen", + "%(senderName)s updated the rule banning users matching %(glob)s for %(reason)s": "%(senderName)s aktualisierte die Ausschluss-Regel für Nutzer:innen, die aufgrund von %(reason)s %(glob)s entsprechen", "%(senderName)s updated the rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s aktualisierte die Ausschluss-Regel für Räume, die aufgrund von %(reason)s %(glob)s entsprechen", "%(senderName)s updated the rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s aktualisierte die Ausschluss-Regel für Server, die aufgrund von %(reason)s %(glob)s entsprechen", "%(senderName)s updated a ban rule matching %(glob)s for %(reason)s": "%(senderName)s aktualisierte eine Ausschluss-Regel, die wegen %(reason)s %(glob)s entspricht", "%(senderName)s created a rule banning users matching %(glob)s for %(reason)s": "%(senderName)s erstellte eine Ausschluss-Regel für Nutzer, die wegen %(reason)s %(glob)s entspricht", "%(senderName)s created a rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s erstellt eine Ausschluss-Regel für Räume, die %(glob)s aufgrund von %(reason)s entspricht", "%(senderName)s created a rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s erstellte eine Ausschluss-Regel für Server, die aufgrund von %(reason)s %(glob)s entsprechen", - "%(senderName)s created a ban rule matching %(glob)s for %(reason)s": "%(senderName)s erstellt eine Ausschluss-Regel, die aufgrund von %(reason)s %(glob)s entsprechen", + "%(senderName)s created a ban rule matching %(glob)s for %(reason)s": "%(senderName)s erstellte eine Ausschluss-Regel, die aufgrund von %(reason)s %(glob)s entspricht", "Do you want to chat with %(user)s?": "Möchtest du mit %(user)s chatten?", " wants to chat": " möchte mit dir chatten", "Start chatting": "Chat starten", - "Reject & Ignore user": "Ablehnen & Nutzer ignorieren", + "Reject & Ignore user": "Ablehnen & Nutzer:in ignorieren", "%(senderName)s changed a rule that was banning users matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s", "%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel für Räume von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s", "Allow fallback call assist server turn.matrix.org when your homeserver does not offer one (your IP address would be shared during a call)": "Auf den Server turn.matrix.org zurückgreifen, falls deine Heimserver keine Anruf-Assistenz anbietet (deine IP-Adresse wird während eines Anrufs geteilt)", "Show more": "Mehr zeigen", - "This session is not backing up your keys, but you do have an existing backup you can restore from and add to going forward.": "Diese Sitzung speichert deine Schlüssel nicht, du kannst sie aber an die Schlüsselsicherung anschließen.", + "This session is not backing up your keys, but you do have an existing backup you can restore from and add to going forward.": "Diese Sitzung sichert nicht deine Schlüssel, aber du hast eine vorhandene Sicherung, die du wiederherstellen und in Zukunft hinzufügen kannst.", "Connect this session to key backup before signing out to avoid losing any keys that may only be on this session.": "Verbinde diese Sitzung mit deiner Schlüsselsicherung bevor du dich abmeldest, um den Verlust von Schlüsseln zu vermeiden.", "This backup is trusted because it has been restored on this session": "Dieser Sicherung wird vertraut, da sie während dieser Sitzung wiederhergestellt wurde", "Enable desktop notifications for this session": "Desktop-Benachrichtigungen für diese Sitzung aktivieren", "Enable audible notifications for this session": "Aktiviere die akustischen Benachrichtigungen für diese Sitzung", - "Integration Managers receive configuration data, and can modify widgets, send room invites, and set power levels on your behalf.": "Integrationsserver können für dich Widgets einstellen, Raum-Einladungen verschicken oder deine Berechtigungen setzen.", + "Integration Managers receive configuration data, and can modify widgets, send room invites, and set power levels on your behalf.": "Integrationsmanaager erhalten Konfigurationsdaten und können Widgets modifizieren, Raumeinladungen verschicken und in deinem Namen Einflusslevel setzen.", "Read Marker lifetime (ms)": "Gültigkeitsdauer der Gelesen-Markierung (ms)", "Read Marker off-screen lifetime (ms)": "Gültigkeitsdauer der Gelesen-Markierung außerhalb des Bildschirms (ms)", "Session key:": "Sitzungsschlüssel:", "A session's public name is visible to people you communicate with": "Der öffentliche Sitzungsname ist sichtbar für Personen, mit denen du kommunizierst", "Sounds": "Töne", "Upgrade the room": "Raum hochstufen", - "Enable room encryption": "Verschlüsselung aktivieren", - "This message cannot be decrypted": "Diese Nachricht konnte nicht entschlüsselt werden", - "Encrypted by an unverified session": "Verschlüsselt von einer unbekannten Sitzung", + "Enable room encryption": "Raumverschlüsselung aktivieren", + "This message cannot be decrypted": "Diese Nachricht kann nicht entschlüsselt werden", + "Encrypted by an unverified session": "Verschlüsselt von einer nicht verifizierten Sitzung", "Unencrypted": "Unverschlüsselt", "Encrypted by a deleted session": "Verschlüsselt von einer gelöschten Sitzung", - "The encryption used by this room isn't supported.": "Die Verschlüsselung, die dieser Raum verwendet, wird nicht unterstützt.", - "React": "Reaktion hinzufügen", + "The encryption used by this room isn't supported.": "Die von diesem Raum verwendete Verschlüsselung wird nicht unterstützt.", + "React": "Reagieren", "e.g. my-room": "z.B. mein-raum", - "Use an identity server to invite by email. Use the default (%(defaultIdentityServerName)s) or manage inSettings .": "Verwende einen Identitätsserver um mit einer E-Mail-Adresse einzuladen.Benutzer den Standard-Identitätsserver (%(defaultIdentityServerName)s) oder konfiguriere einen in denEinstellungen .", - "Use an identity server to invite by email. Manage inSettings .": "Verwende einen Identitätsserver um mit einer E-Mail-Adresse einzuladen. Diese können in denEinstellungen konfiguriert werden.", - "Create a public room": "Erstelle einen öffentlichen Raum", + "Use an identity server to invite by email.Use the default (%(defaultIdentityServerName)s) or manage inSettings .": "Verwende einen Identitätsserver, um per E-Mail einzuladen.Nutze den Standard-Identitätsserver (%(defaultIdentityServerName)s) oder konfiguriere einen in denEinstellungen .", + "Use an identity server to invite by email. Manage inSettings .": "Verwende einen Identitätsserver, um mit einer E-Mail-Adresse einzuladen. Diese können in denEinstellungen konfiguriert werden.", + "Create a public room": "Öffentlichen Raum erstellen", "Show advanced": "Weitere Einstellungen anzeigen", "Verify session": "Sitzung verifizieren", "Session key": "Sitzungsschlüssel", "Recent Conversations": "Letzte Unterhaltungen", - "Report Content to Your Homeserver Administrator": "Inhalte an den Administrator deines Heimservers melden", - "Reporting this message will send its unique 'event ID' to the administrator of your homeserver. If messages in this room are encrypted, your homeserver administrator will not be able to read the message text or view any files or images.": "Wenn du diese Nachricht meldest wird dessen einzigartige 'event ID' an den Administrator deines Heimservers übermittelt. Wenn die Nachrichten in diesem Raum verschlüsselt sind wird dein Administrator nicht in der Lage sein den Text zu lesen oder Medien einzusehen.", + "Report Content to Your Homeserver Administrator": "Inhalte an die Administration deines Heimservers melden", + "Reporting this message will send its unique 'event ID' to the administrator of your homeserver. If messages in this room are encrypted, your homeserver administrator will not be able to read the message text or view any files or images.": "Wenn du diese Nachricht meldest, wird die eindeutige Event-ID an die Administration deines Heimservers übermittelt. Wenn die Nachrichten in diesem Raum verschlüsselt sind, wird deine Heimserver-Administration nicht in der Lage sein, Nachrichten zu lesen oder Medien einzusehen.", "Send report": "Bericht senden", "Enter recovery passphrase": "Gib die Wiederherstellungspassphrase ein", "Enter recovery key": "Wiederherstellungspassphrase eingeben", - "Report Content": "Inhalte melden", + "Report Content": "Inhalt melden", "Set an email for account recovery. Use email to optionally be discoverable by existing contacts.": "Gib eine E-Mail-Adresse an um dein Konto wiederherstellen zu können. Die E-Mail-Adresse kann auch genutzt werden um deinen Kontakt zu finden.", "Enter your custom homeserver URL What does this mean?": "Gib eine andere Heimserver-Adresse an Was bedeutet das?", "%(creator)s created and configured the room.": "%(creator)s hat den Raum erstellt und konfiguriert.", "Set up with a recovery key": "Mit einem Wiederherstellungsschlüssel einrichten", - "Keep a copy of it somewhere secure, like a password manager or even a safe.": "Bewahre ihn sicher auf, wie in einem Passwort-Manager oder einem Safe.", + "Keep a copy of it somewhere secure, like a password manager or even a safe.": "Bewahre eine Kopie an einem sicheren Ort, wie einem Passwort-Manager oder in einem Safe auf.", "Your recovery key": "Dein Wiederherstellungsschlüssel", "Copy": "In Zwischenablage kopieren", "Make a copy of your recovery key": "Speichere deinen Wiederherstellungsschlüssel", - "Sends a message as html, without interpreting it as markdown": "Verschickt eine Nachricht im html-Format, ohne sie in Markdown zu formatieren", + "Sends a message as html, without interpreting it as markdown": "Verschickt eine Nachricht im HTML-Format, ohne sie als Markdown zu darzustellen", "Show rooms with unread notifications first": "Räume mit ungelesenen Benachrichtigungen zuerst zeigen", "Show shortcuts to recently viewed rooms above the room list": "Kurzbefehle zu den kürzlich gesichteten Räumen über der Raumliste anzeigen", - "Use Single Sign On to continue": "Benutze Single Sign-On um fortzufahren", + "Use Single Sign On to continue": "Single-Sign-On zum Fortfahren nutzen", "Confirm adding this email address by using Single Sign On to prove your identity.": "Bestätige die hinzugefügte E-Mail-Adresse mit Single Sign-On, um deine Identität nachzuweisen.", "Single Sign On": "Single Sign-On", "Confirm adding email": "Bestätige hinzugefügte E-Mail-Addresse", @@ -1652,14 +1652,14 @@ "Manually Verify by Text": "Verifiziere manuell mit einem Text", "Interactively verify by Emoji": "Verifiziere interaktiv mit Emojis", "Support adding custom themes": "Unterstütze das Hinzufügen von benutzerdefinierten Designs", - "Ask this user to verify their session, or manually verify it below.": "Bitte diesen Nutzer, seine Sitzung zu verifizieren, oder verifiziere diesen unten manuell.", + "Ask this user to verify their session, or manually verify it below.": "Bitte diese/n Nutzer:in, seine/ihre Sitzung zu verifizieren, oder verifiziere diese unten manuell.", "a few seconds from now": "in ein paar Sekunden", "Manually verify all remote sessions": "Verifiziere alle Remotesitzungen", "Confirm the emoji below are displayed on both sessions, in the same order:": "Bestätige, dass die unten angezeigten Emojis auf beiden Sitzungen in der selben Reihenfolge angezeigt werden:", "Verify this session by confirming the following number appears on its screen.": "Verfiziere diese Sitzung, indem du bestätigst, dass die folgende Nummer auf ihrem Bildschirm erscheint.", "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Warte auf deine andere Sitzung,%(deviceName)s /%(deviceId)s), um zu verfizieren…", "How fast should messages be downloaded.": "Wie schnell Nachrichten heruntergeladen werden sollen.", - "Compare a unique set of emoji if you don't have a camera on either device": "Vergleiche eine einmalige Reihe von Emoji, sofern du an keinem Gerät eine Kamera hast", + "Compare a unique set of emoji if you don't have a camera on either device": "Vergleiche eine einmalige Reihe von Emojis, sofern du an keinem Gerät eine Kamera hast", "Waiting for %(displayName)s to verify…": "Warte darauf, dass %(displayName)s bestätigt…", "Cancelling…": "Abbrechen…", "They match": "Sie passen zueinander", @@ -1671,24 +1671,24 @@ "Workspace: %(networkName)s": "Arbeitsbereich: %(networkName)s", "Channel: %(channelName)s": "Kanal: %(channelName)s", "Show less": "Weniger zeigen", - "Warning: You should only set up key backup from a trusted computer.": "Achtung: Du solltest die Schlüsselsicherung nur auf einem vertrauenswürdigen Gerät einrichten.", - "Regain access to your account and recover encryption keys stored in this session. Without them, you won’t be able to read all of your secure messages in any session.": "Melde dich an um die ausschließlich in dieser Sitzung gespeicherten Verschlüsselungsschlüssel wiederherzustellen. Du benötigst sie, um deine verschlüsselten Nachrichten in jeder Sitzung zu lesen.", + "Warning: You should only set up key backup from a trusted computer.": "Achtung: Du solltest die Schlüsselsicherung nur von einem vertrauenswürdigen Computer aus einrichten.", + "Regain access to your account and recover encryption keys stored in this session. Without them, you won’t be able to read all of your secure messages in any session.": "Melde dich an, um die ausschließlich in dieser Sitzung gespeicherten Verschlüsselungsschlüssel wiederherzustellen. Du benötigst sie, um deine verschlüsselten Nachrichten in jeder Sitzung zu lesen.", "Forgotten your password?": "Passwort vergessen?", "You're signed out": "Du wurdest abgemeldet", - "Warning: Your personal data (including encryption keys) is still stored in this session. Clear it if you're finished using this session, or want to sign in to another account.": "Achtung: Deine persönlichen Daten (inclusive der Verschlüsselungsschlüssel) sind noch in dieser Sitzung gespeichert. Lösche diese Daten wenn du die Sitzung nicht mehr benötigst oder dich mit einem anderen Konto anmelden möchtest.", + "Warning: Your personal data (including encryption keys) is still stored in this session. Clear it if you're finished using this session, or want to sign in to another account.": "Achtung: Deine persönlichen Daten (einschließlich Verschlüsselungsschlü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.", "Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "Bestätige das Löschen dieser Sitzung indem du dich mittels Single Sign-On anmeldest um deine Identität nachzuweisen.", "Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "Bestätige das Löschen dieser Sitzung indem du dich mittels Single Sign-On anmeldest um deine Identität nachzuweisen.", "Confirm deleting these sessions": "Bestätige das Löschen dieser Sitzungen", "Click the button below to confirm deleting these sessions.|other": "Klicke den Button um das Löschen dieser Sitzungen zu bestätigen.", "Click the button below to confirm deleting these sessions.|one": "Klicke den Button um das Löschen dieser Sitzung zu bestätigen.", "Clear all data in this session?": "Alle Daten dieser Sitzung löschen?", - "Clear all data": "Daten löschen", + "Clear all data": "Alle Daten löschen", "Confirm your account deactivation by using Single Sign On to prove your identity.": "Bestätige das Löschen deines Kontos indem du dich mittels Single Sign-On anmeldest um deine Identität nachzuweisen.", "Confirm account deactivation": "Konto löschen bestätigen", - "Confirm your identity by entering your account password below.": "Bestätige deine Identität indem du dein Passwort unten eingibst.", + "Confirm your identity by entering your account password below.": "Bestätige deine Identität, indem du unten dein Kontopasswort eingibst.", "Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.": "Bestätige deine Identität indem du diesen Login von einer deiner anderen Sitzungen verifizierst um Zugriff auf deine verschlüsselten Nachrichten zu erhalten.", - "Enter your account password to confirm the upgrade:": "Gib dein Passwort ein um die Aktualisierung zu bestätigen:", - "You'll need to authenticate with the server to confirm the upgrade.": "Du musst dich am Server authentifizieren um die Aktualisierung zu bestätigen.", + "Enter your account password to confirm the upgrade:": "Gib dein Kontopasswort ein, um die Aktualisierung zu bestätigen:", + "You'll need to authenticate with the server to confirm the upgrade.": "Du musst dich am Server authentifizieren, um die Aktualisierung zu bestätigen.", "Enter your recovery passphrase a second time to confirm it.": "Gib deine Wiederherstellungspassphrase zur Bestätigung erneut ein.", "Confirm your recovery passphrase": "Bestätige deine Wiederherstellungspassphrase", "Please enter your recovery passphrase a second time to confirm.": "Bitte gib deine Wiederherstellungspassphrase ein zweites Mal ein um sie zu bestätigen.", @@ -1742,7 +1742,7 @@ "Cross-signing public keys:": "Öffentliche Cross-Signing-Schlüssel:", "in memory": "im Speicher", "Cross-signing private keys:": "Private Cross-Signing-Schlüssel:", - "in secret storage": "im sicheren Speicher", + "in secret storage": "im Schlüsselspeicher", "Self signing private key:": "Selbst signierter privater Schlüssel:", "cached locally": "lokal zwischengespeichert", "not found locally": "lokal nicht gefunden", @@ -1759,13 +1759,13 @@ " to store messages from ": " um Nachrichten von ", "%(brand)s is missing some components required for securely caching encrypted messages locally. If you'd like to experiment with this feature, build a custom %(brand)s Desktop withsearch components added .": "%(brand)s benötigt weitere Komponenten um verschlüsselte Nachrichten lokal zu durchsuchen. Wenn du diese Funktion testen möchtest kannst du dir deine eigene Version von %(brand)s Desktop mit derintegrierten Suchfunktion bauen .", "Backup has avalid signature from this user": "Die Sicherung hat einegültige Signatur dieses Benutzers", - "Backup has ainvalid signature from this user": "Die Sicherung hat eineungültige Signatur dieses Benutzers", + "Backup has ainvalid signature from this user": "Die Sicherung hat eineungültige Signatur von diesem/r Benutzer!n", "Backup has avalid signature fromverified session": "Die Sicherung hat eine gültige Signatur von einerverifizierten Sitzung", "Backup has a valid signature fromunverified session": "Die Sicherung hat eine gültige Signatur von einernicht verifizierten Sitzung", "Backup has an invalid signature fromverified session": "Die Sicherung hat eine ungültige Signatur von einerverifizierten Sitzung", "Backup has an invalid signature fromunverified session": "Die Sicherung hat eine ungültige Signatur von einernicht verifizierten Sitzung", "Your keys are not being backed up from this session.": "Deine Schlüssel werden nicht von dieser Sitzung gesichert.", - "You are currently using to discover and be discoverable by existing contacts you know. You can change your identity server below.": "Du verwendest aktuell um andere Benutzer zu finden und gefunden zu werden. Du kannst deinen Identitätsserver unten ändern.", + "You are currently using to discover and be discoverable by existing contacts you know. You can change your identity server below.": "Zur Zeit verwendest du , um Kontakte zu finden und von anderen gefunden zu werden. Du kannst deinen Identitätsserver weiter unten ändern.", "Invalid theme schema.": "Ungültiges Design Schema.", "Error downloading theme information.": "Fehler beim herunterladen des Themas.", "Theme added!": "Design hinzugefügt!", @@ -1776,29 +1776,29 @@ "Manage the names of and sign out of your sessions below or verify them in your User Profile.": "Benenne deine Sitzungen, melde dich aus den Sitzungen ab oder verifiziere sie in deinen Benutzereinstellungen.", "Error changing power level requirement": "Fehler beim Ändern der Anforderungen für Benutzerrechte", "Error changing power level": "Fehler beim Ändern der Benutzerrechte", - "Your email address hasn't been verified yet": "Deine E-Mail Adresse wurde noch nicht verifiziert", - "Verify the link in your inbox": "Verifiziere den Link in deinem Nachrichteneingang", - "Complete": "Fertig", - "Revoke": "Zurückziehen", + "Your email address hasn't been verified yet": "Deine E-Mail-Adresse wurde noch nicht überprüft", + "Verify the link in your inbox": "Verifiziere den Link in deinem Posteingang", + "Complete": "Abschließen", + "Revoke": "Widerrufen", "Share": "Teilen", - "You have not verified this user.": "Du hast diesen Benutzer nicht verifiziert.", - "Everyone in this room is verified": "Jeder in diesem Raum ist verifiziert", + "You have not verified this user.": "Du hast diese:n Nutzer!n nicht verifiziert.", + "Everyone in this room is verified": "Jede/r in diesem Raum ist verifiziert", "Mod": "Mod", "Invite only": "Nur auf Einladung", "Scroll to most recent messages": "Springe zur neusten Nachricht", "No recent messages by %(user)s found": "Keine neuen Nachrichten von %(user)s gefunden", - "Try scrolling up in the timeline to see if there are any earlier ones.": "Versuche nach oben zu scrollen um zu sehen ob sich dort frühere Nachrichten befinden.", + "Try scrolling up in the timeline to see if there are any earlier ones.": "Versuche nach oben zu scrollen, um zu sehen ob sich dort frühere Nachrichten befinden.", "For a large amount of messages, this might take some time. Please don't refresh your client in the meantime.": "Dies kann bei vielen Nachrichten einige Zeit dauern. Bitte lade die Anwendung in dieser Zeit nicht neu.", - "Deactivate user?": "Benutzer deaktivieren?", - "Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?": "Beim Deaktivieren wird der Benutzer abgemeldet und ein erneutes Anmelden verhindert. Zusätzlich wird er aus allen Räumen entfernt. Diese Aktion kann nicht rückgängig gemacht werden. Bist du sicher dass du diesen Benutzer deaktivieren willst?", - "Deactivate user": "Benutzer deaktivieren", - "Failed to deactivate user": "Deaktivieren des Benutzers fehlgeschlagen", + "Deactivate user?": "Nutzer!n deaktivieren?", + "Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?": "Beim Deaktivieren wird dieser/s Nutzer!n/s abgemeldet und ein erneutes Anmelden verhindert. Zusätzlich wird sie/er aus allen Räumen entfernt. Diese Aktion kann nicht rückgängig gemacht werden. Bist du sicher, dass du diese/n Nutzer!n deaktivieren willst?", + "Deactivate user": "Nutzer!n deaktivieren", + "Failed to deactivate user": "Deaktivieren des/der Nutzer!n fehlgeschlagen", "Send a reply…": "Sende eine Antwort…", "Send a message…": "Sende eine Nachricht…", "Bold": "Fett", "Italics": "Kursiv", "Strikethrough": "Durchgestrichen", - "Code block": "Quelltext", + "Code block": "Code-Block", "Recent rooms": "Letzte Räume", "Loading …": "Lade …", "Join the conversation with an account": "Tritt der Unterhaltung mit einem Konto bei", @@ -1806,33 +1806,33 @@ "Re-join": "Wieder beitreten", "You were banned from %(roomName)s by %(memberName)s": "Du wurdest von %(memberName)s aus %(roomName)s verbannt", "Something went wrong with your invite to %(roomName)s": "Bei deiner Einladung zu %(roomName)s ist ein Fehler aufgetreten", - "An error (%(errcode)s) was returned while trying to validate your invite. You could try to pass this information on to a room admin.": "Während der Verifizierung deiner Einladung ist ein Fehler (%(errcode)s) aufgetreten. Du kannst diese Information einem Raum-Administrator weitergeben.", + "An error (%(errcode)s) was returned while trying to validate your invite. You could try to pass this information on to a room admin.": "Während der Verifizierung deiner Einladung ist ein Fehler (%(errcode)s) aufgetreten. Du kannst diese Information einem/r Raum-Administrator:in weitergeben.", "You can only join it with a working invite.": "Du kannst nur mit einer gültigen Einladung beitreten.", - "Try to join anyway": "Versuche trotzdem beizutreten", - "You can still join it because this is a public room.": "Du kannst trotzdem beitreten da dies ein öffentlicher Raum ist.", + "Try to join anyway": "Dennoch versuchen beizutreten", + "You can still join it because this is a public room.": "Du kannst dennoch beitreten, da es ein öffentlicher Raum ist.", "This invite to %(roomName)s was sent to %(email)s which is not associated with your account": "Diese Einladung zu %(roomName)s wurde an die Adresse %(email)s gesendet, die nicht zu deinem Konto gehört", "Link this email with your account in Settings to receive invites directly in %(brand)s.": "Verbinde diese E-Mail-Adresse in den Einstellungen mit deinem Konto um die Einladungen direkt in %(brand)s zu erhalten.", "This invite to %(roomName)s was sent to %(email)s": "Diese Einladung zu %(roomName)s wurde an %(email)s gesendet", "Use an identity server in Settings to receive invites directly in %(brand)s.": "Verknüpfe einen Identitätsserver in den Einstellungen um die Einladungen direkt in %(brand)s zu erhalten.", "Share this email in Settings to receive invites directly in %(brand)s.": "Teile diese E-Mail-Adresse in den Einstellungen um Einladungen direkt in %(brand)s zu erhalten.", - "%(roomName)s can't be previewed. Do you want to join it?": "Für %(roomName)s kann keine Vorschau erzeugt werden. Möchtest du den Raum betreten?", - "This room doesn't exist. Are you sure you're at the right place?": "Dieser Raum existiert nicht. Bist du sicher dass du hier richtig bist?", - "Try again later, or ask a room admin to check if you have access.": "Versuche es später erneut oder bitte einen Raum-Administrator deine Zutrittsrechte zu überprüfen.", - "%(errcode)s was returned while trying to access the room. If you think you're seeing this message in error, please submit a bug report .": "Beim Betreten des Raums ist ein Fehler aufgetreten %(errcode)s. Wenn du denkst dass diese Meldung nicht korrekt istsende bitte einen Fehlerbericht .", - "%(count)s unread messages including mentions.|other": "%(count)s ungelesene Nachrichten, inklusive Erwähnungen.", + "%(roomName)s can't be previewed. Do you want to join it?": "Vorschau von %(roomName)s kann nicht angezeigt werden. Möchtest du den Raum betreten?", + "This room doesn't exist. Are you sure you're at the right place?": "Dieser Raum existiert nicht. Bist du sicher, dass du hier richtig bist?", + "Try again later, or ask a room admin to check if you have access.": "Versuche es später erneut oder bitte eine/n Raum-Administrator:in zu prüfen, ob du berechtigt bist.", + "%(errcode)s was returned while trying to access the room. If you think you're seeing this message in error, pleasesubmit a bug report .": "%(errcode)s wurde, beim Versuch den Raum zu betreten, zurückgegeben. Wenn du denkst dass diese Meldung nicht korrekt ist,erstelle bitte einen Fehlerbericht .", + "%(count)s unread messages including mentions.|other": "%(count)s ungelesene Nachrichten einschließlich Erwähnungen.", "%(count)s unread messages including mentions.|one": "1 ungelesene Erwähnung.", "%(count)s unread messages.|other": "%(count)s ungelesene Nachrichten.", "%(count)s unread messages.|one": "1 ungelesene Nachricht.", "Unread mentions.": "Ungelesene Erwähnungen.", "Unread messages.": "Ungelesene Nachrichten.", - "This room has already been upgraded.": "Dieser Raum wurde bereits hochgestuft.", - "This room is running room version, which this homeserver has marked as unstable.": "Dieser Raum läuft mit der Raumversion , welcher dieser Heimserver als instabil markiert hat.", + "This room has already been upgraded.": "Diese Raum wurde bereits aktualisiert.", + "This room is running room version , which this homeserver has marked as unstable.": "Dieser Raum läuft mit der Raumversion , welche dieser Heimserver als instabil markiert hat.", "Unknown Command": "Unbekannter Befehl", "Unrecognised command: %(commandText)s": "Unbekannter Befehl: %(commandText)s", - "Hint: Begin your message with //
to start it with a slash.": "Hinweis: Beginne deine Nachricht mit//
um sie mit einem Querstrich zu beginnen.", + "Hint: Begin your message with//
to start it with a slash.": "Hinweis: Beginne deine Nachricht mit//
, um sie mit einem Schrägstrich zu beginnen.", "Send as message": "Als Nachricht senden", "Failed to connect to integration manager": "Fehler beim Verbinden mit dem Integrationsserver", - "Could not revoke the invite. The server may be experiencing a temporary problem or you do not have sufficient permissions to revoke the invite.": "Konnte die Einladung nicht zurückziehen. Der Server hat ein vorübergehendes Problem oder du besitzt nicht die nötigen Rechte um die Einladung zurückzuziehen.", + "Could not revoke the invite. The server may be experiencing a temporary problem or you do not have sufficient permissions to revoke the invite.": "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.", "Mark all as read": "Alle als gelesen markieren", "Local address": "Lokale Adresse", "Published Addresses": "Öffentliche Adresse", @@ -1847,20 +1847,20 @@ "Accepting…": "Annehmen…", "Start Verification": "Starte Verifikation", "Messages in this room are end-to-end encrypted.": "Nachrichten in diesem Raum sind Ende-zu-Ende verschlüsselt.", - "Your messages are secured and only you and the recipient have the unique keys to unlock them.": "Diese Nachrichten sind verschlüsselt und nur du und der Empfänger habt die Schlüssel um sie zu entschlüsseln.", + "Your messages are secured and only you and the recipient have the unique keys to unlock them.": "Diese Nachrichten sind verschlüsselt und nur du und der/die Empfänger:in haben die Schlüssel, um sie zu entschlüsseln.", "In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "In verschlüsselten Räumen sind deine Nachrichten verschlüsselt und nur du und der Empfänger habt die Schlüssel um sie zu entschlüsseln.", - "Verify User": "Benutzer verifizieren", - "For extra security, verify this user by checking a one-time code on both of your devices.": "Verifiziere den Benutzer, durch Vergleichen eines Einmal-Codes auf euren beiden Geräten, um die Sicherheit zu erhöhen.", + "Verify User": "Nutzer!n verifizieren", + "For extra security, verify this user by checking a one-time code on both of your devices.": "Für zusätzliche Sicherheit, verifiziere diese/n Nutzer!n, durch Vergleichen eines Einmal-Codes auf euren beiden Geräten.", "Your messages are not secure": "Deine Nachrichten sind nicht sicher", "One of the following may be compromised:": "Eines der folgenden könnte kompromittiert sein:", "Your homeserver": "Dein Heimserver", - "The homeserver the user you’re verifying is connected to": "Der Heimserver an dem der zu verifizierende Benutzer angemeldet ist", - "Yours, or the other users’ internet connection": "Deine Internetverbindung oder die des anderen Benutzers", - "Yours, or the other users’ session": "Deine Sitzung oder die des anderen Benutzers", + "The homeserver the user you’re verifying is connected to": "Der Heimserver, an dem der/die zu verifizierende Nutzer:in angemeldet ist", + "Yours, or the other users’ internet connection": "Deine oder die Internetverbindung des Gegenüber", + "Yours, or the other users’ session": "Deine Sitzung oder die des Gegenüber", "%(role)s in %(roomName)s": "%(role)s in %(roomName)s", "This client does not support end-to-end encryption.": "Diese Anwendung unterstützt keine Ende-zu-Ende-Verschlüsselung.", - "Verify by scanning": "Mit Scannen eines QR Codes verifizieren", - "If you can't scan the code above, verify by comparing unique emoji.": "Wenn du den obenstehenden Code nicht scannen kannst versuche es mit der Emoji Verifikation.", + "Verify by scanning": "Verifizierung durch QR-Code-Scannen", + "If you can't scan the code above, verify by comparing unique emoji.": "Wenn du den obigen Code nicht scannen kannst, verifiziere stattdessen durch den Emoji-Vergleich.", "Verify all users in a room to ensure it's secure.": "Verifiziere alle Benutzer in einem Raum um die vollständige Sicherheit zu gewährleisten.", "In encrypted rooms, verify all users to ensure it’s secure.": "Verifiziere alle Benutzer in verschlüsselten Räumen um die vollständige Sicherheit zu gewährleisten.", "You've successfully verified %(deviceName)s (%(deviceId)s)!": "Du hast %(deviceName)s (%(deviceId)s) erfolgreich verifiziert!", @@ -1873,15 +1873,15 @@ "You cancelled verification.": "Du hast die Verifikation abgebrochen.", "Verification cancelled": "Verifikation abgebrochen", "Compare emoji": "Vergleiche Emojis", - "Message Actions": "Nachrichten Aktionen", - "Show image": "Zeige Bild", - "You have ignored this user, so their message is hidden. Show anyways.": "Du ignorierst diesen Benutzer, deshalb werden seine Nachrichten nicht angezeigt. Trotzdem anzeigen.", + "Message Actions": "Nachrichtenaktionen", + "Show image": "Bild anzeigen", + "You have ignored this user, so their message is hidden. Show anyways.": "Du hast diese/n Nutzer!n ignoriert, sodass seine/ihre Nachricht ausgeblendet ist. Dennoch anzeigen.", "You accepted": "Du hast angenommen", "You declined": "Du hast abgelehnt", "You cancelled": "Du hast abgebrochen", "Accepting …": "Annehmen …", "Declining …": "Ablehnen …", - "You sent a verification request": "Du hast eine Verifikationsanfrage gesendet", + "You sent a verification request": "Du hast eine Verifizierungsanfrage gesendet", "Show all": "Alle zeigen", "Reactions": "Reaktionen", "reacted with %(content)s ": "hat mit %(content)s reagiert ", @@ -1903,15 +1903,15 @@ "Quick Reactions": "Praktische Reaktionen", "Cancel search": "Suche abbrechen", "Any of the following data may be shared:": "Die folgenden Daten können geteilt werden:", - "Your avatar URL": "Deine Avatar URL", - "Your user ID": "Deine Benutzer ID", + "Your avatar URL": "Deine Avatar-URL", + "Your user ID": "Deine Nutzer-ID", "Your theme": "Dein Design", "%(brand)s URL": "%(brand)s URL", - "Room ID": "Raum ID", - "Widget ID": "Widget ID", - "Using this widget may share datawith %(widgetDomain)s & your Integration Manager.": "Wenn du dieses Widget verwendest können Daten zu %(widgetDomain)s und deinem Integrationsserver übertragen werden.", - "Using this widget may share data with %(widgetDomain)s.": "Wenn du dieses Widget verwendest können Daten zu %(widgetDomain)s übertragen werden.", - "Widgets do not use message encryption.": "Widgets verschlüsseln deine Nachrichten nicht.", + "Room ID": "Raum-ID", + "Widget ID": "Widget-ID", + "Using this widget may share data with %(widgetDomain)s & your Integration Manager.": "Wenn du dieses Widget verwendest, können Daten zu %(widgetDomain)s und deinem Integrationsserver übertragen werden.", + "Using this widget may share data with %(widgetDomain)s.": "Wenn du dieses Widget verwendest, können Daten zu %(widgetDomain)s übertragen werden.", + "Widgets do not use message encryption.": "Widgets verwenden keine Nachrichtenverschlüsselung.", "Please create a new issue on GitHub so that we can investigate this bug.": "Bitteerstelle ein neues Issue auf GitHub damit wir diesen Fehler untersuchen können.", "Rotate Left": "Nach links drehen", "Rotate counter-clockwise": "Gegen den Uhrzeigersinn drehen", @@ -1921,7 +1921,7 @@ "%(severalUsers)smade no changes %(count)s times|one": "%(severalUsers)shaben keine Änderung vorgenommen", "%(oneUser)smade no changes %(count)s times|other": "%(oneUser)shat %(count)s mal keine Änderung vorgenommen", "%(oneUser)smade no changes %(count)s times|one": "%(oneUser)shat keine Änderung vorgenommen", - "Some characters not allowed": "Manche Zeichen sind nicht erlaubt", + "Some characters not allowed": "Einige Zeichen sind nicht erlaubt", "Enter a server name": "Gibt einen Servernamen ein", "Looks good": "Das sieht gut aus", "Can't find this server or its room list": "Kann diesen Server oder seine Raumliste nicht finden", @@ -1937,13 +1937,13 @@ "%(networkName)s rooms": "%(networkName)s Räume", "Matrix rooms": "Matrix Räume", "Close dialog": "Dialog schließen", - "Please tell us what went wrong or, better, create a GitHub issue that describes the problem.": "Bitte teile uns mit was schiefgelaufen ist oder erstelle ein Github Issue und beschreibe das Problem.", + "Please tell us what went wrong or, better, create a GitHub issue that describes the problem.": "Bitte teile uns mit, was schief lief - oder besser, erstelle ein GitHub-Issue, das das Problem beschreibt.", "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "Warnung: Dein Browser wird nicht unterstützt. Die Anwendung kann instabil sein.", "Notes": "Notizen", - "If there is additional context that would help in analysing the issue, such as what you were doing at the time, room IDs, user IDs, etc., please include those things here.": "Wenn du mehr Informationen hast die uns bei Untersuchung des Problems helfen (z.B. was du gerade getan hast, Raum IDs, Benutzer IDs, etc.) gib sie bitte hier an.", + "If there is additional context that would help in analysing the issue, such as what you were doing at the time, room IDs, user IDs, etc., please include those things here.": "Wenn du mehr Informationen hast, die uns bei Untersuchung des Problems helfen (z.B. was du gerade getan hast, Raum-IDs, Benutzer-IDs, etc.), gib sie bitte hier an.", "Removing…": "Löschen…", - "Destroy cross-signing keys?": "Cross-signing Schlüssel löschen?", - "Clear cross-signing keys": "Entferne Cross-signing Schlüssel", + "Destroy cross-signing keys?": "Cross-Signing-Schlüssel zerstören?", + "Clear cross-signing keys": "Cross-Signing-Schlüssel löschen", "Enable end-to-end encryption": "Ende-zu-Ende Verschlüsselung aktivieren", "You can’t disable this later. Bridges & most bots won’t work yet.": "Du kannst dies später nicht mehr ändern. Bridges und die meisten Bots werden nicht funktionieren.", "Server did not require any authentication": "Der Server benötigt keine Authentifizierung", @@ -1951,15 +1951,15 @@ "Are you sure you want to deactivate your account? This is irreversible.": "Bist du sicher dass du dein Konto deaktivieren möchtest? Dies kann nicht rückgängig gemacht werden.", "There was a problem communicating with the server. Please try again.": "Bei der Kommunikation mit dem Server ist ein Fehler aufgetreten. Bitte versuche es erneut.", "View Servers in Room": "Zeige Server im Raum", - "Verification Requests": "Verifikationsanfragen", + "Verification Requests": "Verifizierungsanfrage", "Integrations are disabled": "Integrationen sind deaktiviert", "Integrations not allowed": "Integrationen sind nicht erlaubt", - "Failed to invite the following users to chat: %(csvUsers)s": "Fehler beim Einladen der folgenden Benutzer: %(csvUsers)s", - "Something went wrong trying to invite the users.": "Beim Einladen der Benutzer ist ein Fehler aufgetreten.", - "Failed to find the following users": "Kann die folgenden Benutzer nicht finden", - "The following users might not exist or are invalid, and cannot be invited: %(csvNames)s": "Die folgenden Benutzer konnten nicht eingeladen werden, da sie nicht existieren oder ungültig sind: %(csvNames)s", + "Failed to invite the following users to chat: %(csvUsers)s": "Einladen der folgenden Nutzer:innen fehlgeschlagen: %(csvUsers)s", + "Something went wrong trying to invite the users.": "Beim Einladen der Nutzer:innen lief etwas schief.", + "Failed to find the following users": "Folgenden Nutzer:innen konnten nicht gefunden werden", + "The following users might not exist or are invalid, and cannot be invited: %(csvNames)s": "Folgende Nutzer:innen konnten nicht eingeladen werden, da sie nicht existieren oder ungültig sind: %(csvNames)s", "a new master key signature": "Eine neue Hauptschlüssel Signatur", - "a new cross-signing key signature": "Eine neue cross-signing Schlüssel Signatur", + "a new cross-signing key signature": "Eine neue Cross-Signing-Schlüsselsignatur", "a device cross-signing signature": "Eine Geräte Schlüssel Signatur", "a key signature": "Eine Schlüssel Signatur", "Your password": "Dein Passwort", @@ -1986,9 +1986,9 @@ "If you didn’t sign in to this session, your account may be compromised.": "Wenn du dich nicht bei dieser Sitzung angemeldet hast, ist dein Konto möglicherweise gefährdet.", "This wasn't me": "Das war ich nicht", "Please fill why you're reporting.": "Bitte gib an, weshalb du einen Fehler meldest.", - "Automatically invite users": "Benutzer automatisch einladen", - "Upgrade private room": "Privaten Raum hochstufen", - "Upgrade public room": "Öffentlichen Raum hochstufen", + "Automatically invite users": "Nutzer:innen automatisch einladen", + "Upgrade private room": "Privaten Raum aktualisieren", + "Upgrade public room": "Öffentlichen Raum aktualisieren", "This usually only affects how the room is processed on the server. If you're having problems with your %(brand)s, please report a bug.": "Dies wirkt sich normalerweise nur darauf aus, wie der Raum auf dem Server verarbeitet wird. Wenn du Probleme mit deinem %(brand)s hast, melde bitte einen Bug.", "You'll upgrade this room fromto .": "Du wirst diesen Raum von zu aktualisieren.", "Missing session data": "Fehlende Sitzungsdaten", @@ -2001,7 +2001,7 @@ "These files are too large to upload. The file size limit is %(limit)s.": "Die Datei ist zu groß, um hochgeladen zu werden. Die maximale Dateigröße ist %(limit)s.", "Some files are too large to be uploaded. The file size limit is %(limit)s.": "Einige Dateien sind zu groß, um hochgeladen zu werden. Die maximale Dateigröße ist %(limit)s.", "Verify other session": "Andere Sitzung verifizieren", - "Verification Request": "Verifikationsanfrage", + "Verification Request": "Verifizierungsanfrage", "Upload %(count)s other files|other": "%(count)s andere Dateien hochladen", "Upload %(count)s other files|one": "%(count)s andere Datei hochladen", "A widget would like to verify your identity": "Ein Widget möchte deine Identität verifizieren", @@ -2013,7 +2013,7 @@ "Successfully restored %(sessionCount)s keys": "%(sessionCount)s Schlüssel erfolgreich wiederhergestellt", "Reload": "Neu laden", "Take picture": "Foto machen", - "User Status": "Benutzerstatus", + "User Status": "Nutzerstatus", "Country Dropdown": "Landauswahl", "Recovery key mismatch": "Nicht übereinstimmende Wiederherstellungsschlüssel", "Incorrect recovery passphrase": "Falsche Wiederherstellungspassphrase", @@ -2056,10 +2056,10 @@ "Your new session is now verified. Other users will see it as trusted.": "Deine neue Sitzung ist nun verifiziert. Andere Benutzer sehen sie als vertrauenswürdig an.", "well formed": "wohlgeformt", "If you don't want to use to discover and be discoverable by existing contacts you know, enter another identity server below.": "Wenn du nicht verwenden willst, um Kontakte zu finden und von anderen gefunden zu werden, trage unten einen anderen Identitätsserver ein.", - "To report a Matrix-related security issue, please read the Matrix.org Security Disclosure Policy.": "Wenn du einen sicherheitsrelevanten Fehler melden möchtest, lies bitte die Matrix.org Security Disclosure Policy.", - "An error occurred changing the room's power level requirements. Ensure you have sufficient permissions and try again.": "Beim Ändern der Anforderungen für Benutzerrechte ist ein Fehler aufgetreten. Stelle sicher dass du die nötigen Berechtigungen besitzt und versuche es erneut.", - "An error occurred changing the user's power level. Ensure you have sufficient permissions and try again.": "Beim Ändern der Benutzerrechte ist ein Fehler aufgetreten. Stelle sicher dass du die nötigen Berechtigungen besitzt und versuche es erneut.", - "Unable to share email address": "E-Mail Adresse konnte nicht geteilt werden", + "To report a Matrix-related security issue, please read the Matrix.org Security Disclosure Policy.": "Um ein Matrix-bezogenes Sicherheitsproblem zu melden, lies bitte die Matrix.org Sicherheitsrichtlinien.", + "An error occurred changing the room's power level requirements. Ensure you have sufficient permissions and try again.": "Beim Ändern der Anforderungen für Benutzerrechte ist ein Fehler aufgetreten. Stelle sicher, dass du die nötigen Berechtigungen besitzt und versuche es erneut.", + "An error occurred changing the user's power level. Ensure you have sufficient permissions and try again.": "Beim Ändern der Benutzerrechte ist ein Fehler aufgetreten. Stelle sicher, dass du die nötigen Berechtigungen besitzt und versuche es erneut.", + "Unable to share email address": "E-Mail-Adresse kann nicht geteilt werden", "Please enter verification code sent via text.": "Gib den Verifikationscode ein, den du empfangen hast.", "Almost there! Is your other session showing the same shield?": "Fast geschafft! Zeigt deine andere Sitzung das gleiche Schild?", "Almost there! Is %(displayName)s showing the same shield?": "Fast geschafft! Wird bei %(displayName)s das gleiche Schild angezeigt?", @@ -2069,7 +2069,7 @@ "%(severalUsers)smade no changes %(count)s times|other": "%(severalUsers)s haben %(count)s mal nichts geändert", "Deleting cross-signing keys is permanent. Anyone you have verified with will see security alerts. You almost certainly don't want to do this, unless you've lost every device you can cross-sign from.": "Das Löschen von Cross-Signing-Schlüsseln ist dauerhaft. Jeder, mit dem du dich verifiziert hast, bekommt Sicherheitswarnungen angezeigt. Du möchtest dies mit ziemlicher Sicherheit nicht tun, es sei denn, du hast jedes Gerät verloren, von dem aus du ein Cross-Signing durchführen kannst.", "Clearing all data from this session is permanent. Encrypted messages will be lost unless their keys have been backed up.": "Das Löschen aller Daten aus dieser Sitzung ist dauerhaft. Verschlüsselte Nachrichten gehen verloren, sofern deine Schlüssel nicht gesichert wurden.", - "Verifying this user will mark their session as trusted, and also mark your session as trusted to them.": "Wenn du diesen Benutzer verifizierst werden seine Sitzungen für dich und deine Sitzungen für ihn als vertrauenswürdig markiert.", + "Verifying this user will mark their session as trusted, and also mark your session as trusted to them.": "Wenn du diese/e Nutzer!n verifizierst werden seine/ihre Sitzungen für dich und deine Sitzungen für ihn/sie als vertrauenswürdig markiert.", "Verify this device to mark it as trusted. Trusting this device gives you and other users extra peace of mind when using end-to-end encrypted messages.": "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.", "Verifying this device will mark it as trusted, and users who have verified with you will trust this device.": "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.", "Your %(brand)s doesn't allow you to use an Integration Manager to do this. Please contact an admin.": "Dein %(brand)s erlaubt dir nicht, eine Integrationsverwaltung zu verwenden, um dies zu tun. Bitte kontaktiere einen Administrator.", @@ -2131,7 +2131,7 @@ "Room List": "Raumliste", "Autocomplete": "Auto-Vervollständigung", "Alt": "Alt", - "Toggle microphone mute": "Schalte Mikrophon stumm", + "Toggle microphone mute": "Schalte Mikrofon stumm/an", "Toggle video on/off": "Schalte Video an/aus", "Jump to room search": "Springe zur Raumsuche", "Close dialog or context menu": "Schließe Dialog oder Kontextmenü", @@ -2178,7 +2178,7 @@ "Waiting for your other session to verify…": "Warte auf die Verifikation deiner anderen Sitzungen…", "You've successfully verified your device!": "Du hast dein Gerät erfolgreich verifiziert!", "QR Code": "QR-Code", - "To continue, use Single Sign On to prove your identity.": "Zum Fortfahren, nutze Single Sign On um deine Identität zu bestätigen.", + "To continue, use Single Sign On to prove your identity.": "Zum Fortfahren, nutze Single Sign-On um deine Identität zu bestätigen.", "Confirm to continue": "Bestätige um fortzufahren", "Click the button below to confirm your identity.": "Klicke den Button unten um deine Identität zu bestätigen.", "Confirm encryption setup": "Bestätige die Einrichtung der Verschlüsselung", @@ -2345,17 +2345,17 @@ "%(brand)s iOS": "%(brand)s iOS", "%(brand)s X for Android": "%(brand)s X für Android", "We’re excited to announce Riot is now Element": "Wir freuen uns zu verkünden, dass Riot jetzt Element ist", - "%(brand)s can't securely cache encrypted messages locally while running in a web browser. Use %(brand)s Desktop for encrypted messages to appear in search results.": "%(brand)s kann verschlüsselte Nachrichten nicht sicher zwischenspeichern während es in einem Browser läuft. Verwende%(brand)s Desktop damit verschlüsselte Nachrichten durchsuchbar werden.", - "Show rooms with unread messages first": "Zeige Räume mit ungelesenen Nachrichten zuerst", - "Show previews of messages": "Zeige Vorschau von Nachrichten", - "Use default": "Verwende den Standard", + "%(brand)s can't securely cache encrypted messages locally while running in a web browser. Use%(brand)s Desktop for encrypted messages to appear in search results.": "%(brand)s kann verschlüsselte Nachrichten nicht sicher während der Ausführung im Browser durchsuchen. Benutze%(brand)s Desktop , um verschlüsselte Nachrichten in den Suchergebnissen angezeigt zu bekommen.", + "Show rooms with unread messages first": "Räume mit ungelesenen Nachrichten zuerst zeigen", + "Show previews of messages": "Nachrichtenvorschau anzeigen", + "Use default": "Standardeinstellungen benutzen", "Mentions & Keywords": "Erwähnungen & Schlüsselwörter", "Notification options": "Benachrichtigungsoptionen", - "Forget Room": "Vergesse Raum", + "Forget Room": "Raum vergessen", "Favourited": "Favorisiert", "This room is public": "Dieser Raum ist öffentlich", "Away": "Abwesend", - "The session you are trying to verify doesn't support scanning a QR code or emoji verification, which is what %(brand)s supports. Try with a different client.": "Die Sitzung, die du verifizieren möchtest, unterstützt weder das scannen eines QR Codes noch eine Emoji Verifikation, welche von %(brand)s unterstützt werden. Versuche es mit einem anderen Client.", + "The session you are trying to verify doesn't support scanning a QR code or emoji verification, which is what %(brand)s supports. Try with a different client.": "Die Sitzung, die du verifizieren möchtest, unterstützt weder das scannen eines QR-Codes noch eine Emoji-Verifikation, welche von %(brand)s unterstützt werden. Versuche es mit einer anderen Anwendung.", "Edited at %(date)s": "Geändert am %(date)s", "Click to view edits": "Klicke um Änderungen anzuzeigen", "%(brand)s encountered an error during upload of:": "%(brand)s hat einen Fehler festgestellt beim hochladen von:", @@ -2659,7 +2659,7 @@ "Enter email address": "E-Mail-Adresse eingeben", "Open the link in the email to continue registration.": "Öffnen Sie den Link in der E-Mail, um mit der Registrierung fortzufahren.", "A confirmation email has been sent to %(emailAddress)s": "Eine Bestätigungs-E-Mail wurde an %(emailAddress)s gesendet", - "Use the + to make a new room or explore existing ones below": "Verwenden Sie das +, um einen neuen Raum zu erstellen oder unten einen bestehenden zu erkunden", + "Use the + to make a new room or explore existing ones below": "Benutze das + um einen neuen Raum zu erstellen oder darunter um existierende Räume zu suchen", "Return to call": "Zurück zum Anruf", "Fill Screen": "Bildschirm ausfüllen", "Voice Call": "Sprachanruf", @@ -2950,5 +2950,104 @@ "Call failed because no microphone could not be accessed. Check that a microphone is plugged in and set up correctly.": "Der Anruf ist fehlgeschlagen weil nicht auf das Mikrofon zugegriffen werden konnte. Stelle sicher, dass das Mikrofon richtig eingesteckt und eingerichtet ist.", "Call failed because no webcam or microphone could not be accessed. Check that:": "Der Anruf ist fehlgeschlagen weil nicht auf das Mikrofon oder die Webcam zugegriffen werden konnte. Stelle sicher, dass:", "Unable to access webcam / microphone": "Auf Webcam / Mikrofon konnte nicht zugegriffen werden", - "Unable to access microphone": "Es konnte nicht auf das Mikrofon zugegriffen werden" + "Unable to access microphone": "Es konnte nicht auf das Mikrofon zugegriffen werden", + "Host account on": "Benutzer*innenkonto betreiben an", + "Hold": "Halten", + "Resume": "Fortsetzen", + "We call the places where you can host your account ‘homeservers’.": "Den Ort, an dem du dein Benutzer*innenkonto betreibst, nennen wir „Heimserver“.", + "Invalid URL": "Ungültiger Link", + "Unable to validate homeserver": "Überprüfung des Heimservers nicht möglich", + "%(name)s paused": "%(name)s hat pausiert", + "%(peerName)s held the call": "%(peerName)s hält den Anruf", + "You held the call Resume": "Du hältst den Anruf Fortsetzen", + "sends fireworks": "sendet Feuerwerk", + "Sends the given message with fireworks": "Sendet die gewählte Nachricht mit Feuerwerk", + "sends confetti": "sendet Konfetti", + "Sends the given message with confetti": "Sendet die gewählte Nachricht ohne Konfetti", + "Show chat effects": "Chat-Effekte anzeigen", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "Stellt ┬──┬ ノ( ゜-゜ノ) einer Klartextnachricht voran", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "Stellt (╯°□°)╯︵ ┻━┻ einer Klartextnachricht voran", + "Effects": "Effekte", + "You've reached the maximum number of simultaneous calls.": "Du hast die maximale Anzahl gleichzeitiger Anrufe erreicht.", + "Too Many Calls": "Zu viele Anrufe", + "Call failed because webcam or microphone could not be accessed. Check that:": "Der Anruf ist fehlgeschlagen, weil nicht auf die Webcam oder der das Mikrofon zugegriffen werden konnte. Prüfe nach, ob:", + "Call failed because microphone could not be accessed. Check that a microphone is plugged in and set up correctly.": "Der Anruf ist fehlgeschlagen, weil nicht auf das Mikrofon zugegriffen werden konnte. Prüfe noch einmal nach, ob das Mikrofon eingesteckt und richtig eingestellt ist.", + "You have no visible notifications.": "Du hast keine sichtbaren Benachrichtigungen.", + "%(name)s on hold": "%(name)s wird gehalten", + "You held the call Switch": "Du hältst den Anruf Wechseln", + "sends snowfall": "sendet Schneeflocken", + "Sends the given message with snowfall": "Sendet die gewählte Nachricht mit Schneeflocken", + "Transfer": "Übertragen", + "Failed to transfer call": "Anruf-Übertragung fehlgeschlagen", + "A call can only be transferred to a single user.": "Ein Anruf kann nur auf einen einzelnen Nutzer übertragen werden.", + "Set up with a Security Key": "Mit einem Sicherheitsschlüssel einrichten", + "Use Security Key": "Sicherheitsschlüssel benutzen", + "Use Security Key or Phrase": "Sicherheitsschlüssel oder -phrase benutzen", + "Not a valid Security Key": "Kein gültiger Sicherheisschlüssel", + "This looks like a valid Security Key!": "Dies sieht aus wie ein gültiger Sicherheitsschlüssel!", + "Enter Security Key": "Sicherheitsschlüssel eingeben", + "Enter Security Phrase": "Sicherheitsphrase eingeben", + "Backup could not be decrypted with this Security Phrase: please verify that you entered the correct Security Phrase.": "Das Backup konnte mit dieser Sicherheitsphrase nicht entschlüsselt werden: Bitte überprüfe, ob du die richtige eingegeben hast.", + "Incorrect Security Phrase": "Falsche Sicherheitsphrase", + "Backup could not be decrypted with this Security Key: please verify that you entered the correct Security Key.": "Das Backup konnte mit diesem Sicherheitsschlüssel nicht entschlüsselt werden: Bitte überprüfe, ob du den richtigen Sicherheitsschlüssel eingegeben hast.", + "Unable to access secret storage. Please verify that you entered the correct Security Phrase.": "Zugriff auf geheimen Speicher nicht möglich. Bitte überprüfe, ob du die richtige Sicherheitsphrase eingegeben hast.", + "Invalid Security Key": "Ungültiger Sicherheitsschlüssel", + "Wrong Security Key": "Falscher Sicherheitsschlüssel", + "We recommend you change your password and Security Key in Settings immediately": "Wir empfehlen dir, dein Passwort und deinen Sicherheitsschlüssel sofort in den Einstellungen zu ändern", + "There was an error finding this widget.": "Fehler beim Finden dieses Widgets.", + "Active Widgets": "Aktive Widgets", + "Open dial pad": "Wähltastatur öffnen", + "Start a Conversation": "Beginne eine Konversation", + "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.": "Sichere deine Verschlüsselungsschlüssel mit deinen Kontodaten, falls du den Zugriff auf deine Sitzungen verlierst. Deine Schlüssel werden mit einem eindeutigen Sicherheitsschlüssel gesichert.", + "Channel:": "Kanal: ", + "Workspace: ": "Arbeitsraum: ", + "Dial pad": "Wähltastatur", + "There was an error looking up the phone number": "Beim Suchen der Telefonnummer ist ein Fehler aufgetreten", + "Change which room, message, or user you're viewing": "Ändere welchen Raum, Nachricht oder Nutzer du siehst", + "Unable to look up phone number": "Telefonnummer kann nicht gesucht werden", + "This session has detected that your Security Phrase and key for Secure Messages have been removed.": "In dieser Sitzung wurde festgestellt, dass deine Sicherheitsphrase und dein Schlüssel für sichere Nachrichten entfernt wurden.", + "A new Security Phrase and key for Secure Messages have been detected.": "Eine neue Sicherheitsphrase und ein neuer Schlüssel für sichere Nachrichten wurden erkannt.", + "Make a copy of your Security Key": "Mache eine Kopie von deinem Sicherheitsschlüssel", + "Confirm your Security Phrase": "Deine Sicherheitsphrase bestätigen", + "Secure your backup with a Security Phrase": "Sichere dein Backup mit einer Sicherheitsphrase", + "Your Security Key is in your Downloads folder.": "Dein Sicherheitsschlüssel ist in deinem Download-Ordner.", + "Your Security Key has been copied to your clipboard, paste it to:": "Dein Sicherheitsschlüssel wurde in die Zwischenablage kopiert, füge ihn ein in:", + "Your Security Key": "Dein Sicherheitsschlüssel", + "Your Security Key is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase.": "Dein Sicherheitsschlüssel ist ein Sicherheitsnetz. Du kannst ihn nutzen, um den Zugriff auf deine verschlüsselten Nachrichten wiederherzustellen, falls du deine Sicherheitsphrase vergessen hast.", + "Repeat your Security Phrase...": "Wiederhole deine Sicherheitsphrase...", + "Please enter your Security Phrase a second time to confirm.": "Gib deine Sicherheitsphrase zur Bestätigung ein zweites Mal ein.", + "Great! This Security Phrase looks strong enough.": "Großartig! Diese Sicherheitsphrase sieht stark genug aus.", + "Access your secure message history and set up secure messaging by entering your Security Phrase.": "Greife auf deinen sicheren Chatverlauf zu und richte die sichere Nachrichtenübermittlung ein, indem du deine Sicherheitsphrase (z.B. einem langen Satz, den niemand errät) eingibst.", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a Security Phrase.": "Wir werden eine verschlüsselte Kopie deiner Schlüssel auf unserem Server speichern. Sichere dein Backup mit einer Sicherheitsphrase (z.B. einem langen Satz, den niemand errät).", + "If you've forgotten your Security Key you can ": "Wenn du deinen Sicherheitsschlüssel vergessen hast, kannst du ", + "Access your secure message history and set up secure messaging by entering your Security Key.": "Greife auf deinen sicheren Chatverlauf zu und richte die sichere Nachrichtenübermittlung ein, indem du deinen Sicherheitsschlüssel eingibst.", + "If you've forgotten your Security Phrase you can use your Security Key orset up new recovery options ": "Wenn du deine Sicherheitsphrase vergessen hast, kannst dudeinen Sicherheitsschlüssel nutzen oderneue Wiederherstellungsoptionen einrichten ", + "Security Key mismatch": "Nicht übereinstimmende Sicherheitsschlüssel", + "Set my room layout for everyone": "Setze mein Raum-Layout für alle", + "%(senderName)s has updated the widget layout": "%(senderName)s hat das Widget-Layout aktualisiert", + "Search (must be enabled)": "Suche (muss aktiviert sein)", + "Remember this": "Dies merken", + "The widget will verify your user ID, but won't be able to perform actions for you:": "Das Widget überprüft deine Nutzer-ID, kann jedoch keine Aktionen für dich ausführen:", + "Allow this widget to verify your identity": "Erlaube diesem Widget deine Identität zu überprüfen", + "Use Command + F to search": "Nutze Befehlstaste (⌘) + F zum Suchen", + "Use Ctrl + F to search": "Nutze Strg + F zum Suchen", + "Element Web is currently experimental on mobile. The native apps are recommended for most people.": "Element Web ist derzeit experimentell auf mobilen Endgeräten. Die nativen Apps werden empfohlen.", + "Converts the DM to a room": "Wandelt die Direktnachricht zu Raum um", + "Converts the room to a DM": "Wandelt den Raum zu Direktnachricht um", + "Something went wrong in confirming your identity. Cancel and try again.": "Bei der Bestätigung deiner Identität ist ein Fehler aufgetreten. Abbrechen und erneut versuchen.", + "Use app": "App verwenden", + "Element Web is experimental on mobile. For a better experience and the latest features, use our free native app.": "Element Web ist experimentell auf mobilen Endgeräten. Für eine bessere Erfahrung und die neuesten Erweiterungen, nutze unsere freie, native App.", + "Use app for a better experience": "Nutze die App für eine bessere Erfahrung", + "We asked the browser to remember which homeserver you use to let you sign in, but unfortunately your browser has forgotten it. Go to the sign in page and try again.": "Wir haben deinen Browser gebeten, sich zu merken, bei welchem Homeserver du dich anmeldest, aber dein Browser hat dies leider vergessen. Gehe zur Anmeldeseite und versuche es erneut.", + "Show stickers button": "Sticker-Schaltfläche anzeigen", + "Your homeserver rejected your log in attempt. This could be due to things just taking too long. Please try again. If this continues, please contact your homeserver administrator.": "Dein Homeserver hat deinen Anmeldeversuch abgelehnt. Dies könnte daran liegen, dass der Prozess einfach zu lange dauert. Bitte versuche es erneut. Wenn dies so weitergeht, wende dich bitte an deine Homeserver-Administration.", + "Your homeserver was unreachable and was not able to log you in. Please try again. If this continues, please contact your homeserver administrator.": "Dein Homeserver war nicht erreichbar und konnte dich nicht anmelden. Bitte versuche es erneut. Wenn dies so weitergeht, wende dich bitte an deine Homeserver-Administration.", + "We couldn't log you in": "Wir konnten dich nicht anmelden", + "Windows": "Fenster", + "Screens": "Bildschirme", + "Share your screen": "Deinen Bildschirm teilen", + "Recently visited rooms": "Kürzlich besuchte Räume", + "Show line numbers in code blocks": "Zeilennummern in Code-Blöcken anzeigen", + "Expand code blocks by default": "Code-Blöcke standardmäßig erweitern", + "Try again": "Erneut versuchen" } diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index 118c87e153..9bbef87a69 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -31,7 +31,7 @@ "%(senderName)s banned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.", "Autoplay GIFs and videos": "Αυτόματη αναπαραγωγή GIFs και βίντεο", "Anyone who knows the room's link, apart from guests": "Oποιοσδήποτε", - "%(items)s and %(lastItem)s": "%(items)s %(lastItem)s", + "%(items)s and %(lastItem)s": "%(items)s και %(lastItem)s", "Access Token:": "Κωδικός πρόσβασης:", "Always show message timestamps": "Εμφάνιση πάντα της ένδειξης ώρας στα μηνύματα", "and %(count)s others...|one": "και ένας ακόμα...", @@ -51,7 +51,7 @@ "Cryptography": "Κρυπτογραφία", "Current password": "Τωρινός κωδικός πρόσβασης", "Custom level": "Προσαρμοσμένο επίπεδο", - "/ddg is not a command": "/ddg δεν αναγνωρίζεται ως εντολή", + "/ddg is not a command": "Το /ddg δεν αναγνωρίζεται ως εντολή", "Deactivate Account": "Απενεργοποίηση λογαριασμού", "Decrypt %(text)s": "Αποκρυπτογράφηση %(text)s", "Default": "Προεπιλογή", @@ -60,7 +60,7 @@ "Email": "Ηλεκτρονική διεύθυνση", "Email address": "Ηλεκτρονική διεύθυνση", "Emoji": "Εικονίδια", - "%(senderName)s ended the call.": "%(senderName)s τερμάτισε την κλήση.", + "%(senderName)s ended the call.": "Ο %(senderName)s τερμάτισε την κλήση.", "Error decrypting attachment": "Σφάλμα κατά την αποκρυπτογράφηση της επισύναψης", "Existing Call": "Υπάρχουσα κλήση", "Export": "Εξαγωγή", @@ -92,7 +92,7 @@ "Invited": "Προσκλήθηκε", "Invites": "Προσκλήσεις", "Sign in with": "Συνδεθείτε με", - "%(targetName)s joined the room.": "ο %(targetName)s συνδέθηκε στο δωμάτιο.", + "%(targetName)s joined the room.": "Ο %(targetName)s συνδέθηκε στο δωμάτιο.", "Jump to first unread message.": "Πηγαίνετε στο πρώτο μη αναγνωσμένο μήνυμα.", "%(senderName)s kicked %(targetName)s.": "Ο %(senderName)s έδιωξε τον χρήστη %(targetName)s.", "Kick": "Απομάκρυνση", @@ -604,5 +604,322 @@ "Sets the room name": "Θέτει το θέμα του δωματίου", "Use an identity server": "Χρησιμοποιήστε ένα διακομιστή ταυτοτήτων", "Your %(brand)s is misconfigured": "Οι παράμετροι του %(brand)s σας είναι λανθασμένα ρυθμισμένοι", - "Explore rooms": "Εξερευνήστε δωμάτια" + "Explore rooms": "Εξερευνήστε δωμάτια", + "Whether you're using %(brand)s as an installed Progressive Web App": "Εάν χρησιμοπιείται %(brand)s σαν εγκατεστημένο Progressive Web App", + "Whether you're using %(brand)s on a device where touch is the primary input mechanism": "Ενα χρησιμοποιείται το %(brand)s σε συσκευή αφής", + "Click the button below to confirm adding this phone number.": "Πιέστε το κουμπί από κάτω για να επιβεβαίωσετε την προσθήκη του τηλεφωνικού αριθμού.", + "Confirm": "Επιβεβαίωση", + "Use custom size": "Χρησιμοποιήστε προσαρμοσμένο μέγεθος", + "Font size": "Μέγεθος γραμματοσειράς", + "Render LaTeX maths in messages": "Εμφανίστε μαθηματικά LaTeX σε μηνύματα", + "You started a call": "Ξεκινήσατε μία κλήση", + "Call ended": "Τέλος κλήσης", + "%(senderName)s ended the call": "Ο χρήστης %(senderName)s σταμάτησε την κλήση", + "You ended the call": "Σταματήσατε την κλήση", + "Call in progress": "Κλήση σε εξέλιξη", + "%(senderName)s joined the call": "Ο χρήστης %(senderName)s συνδέθηκε στην κλήση", + "You joined the call": "Συνδεθήκατε στην κλήση", + "Guest": "Επισκέπτης", + "Ok": "Εντάξει", + "Your homeserver has exceeded its user limit.": "Ο διακομιστής σας ξεπέρασε το όριο χρηστών.", + "Use app": "Χρησιμοποιήστε την εφαρμογή", + "Use app for a better experience": "Χρησιμοποιήστε την εφαρμογή για καλύτερη εμπειρία", + "Enable": "Ενεργοποίηση", + "No": "Όχι", + "Yes": "Ναι", + "No need for symbols, digits, or uppercase letters": "Δεν χρειάζονται σύμβολα, ψηφία, ή κεφαλαία γράμματα", + "Use a few words, avoid common phrases": "Χρησιμοποιήστε αρκετές λέξεις, αποφύγετε συνηθισμένες φράσεις", + "Unknown server error": "Άγνωστο σφάλμα διακομιστή", + "User %(user_id)s may or may not exist": "Ο χρήστης %(user_id)s μπορεί να υπάρχει ή να μην υπάρχει", + "User %(user_id)s does not exist": "Ο χρήστης %(user_id)s δεν υπάρχει", + "User %(userId)s is already in the room": "Ο χρήστης %(userId)s είναι ήδη στο δωμάτιο", + "You do not have permission to invite people to this room.": "Δεν έχετε δικαίωμα να προσκαλείτε άτομα σε αυτό το δωμάτιο.", + "Unrecognised address": "Η διεύθυνση δεν αναγνωρίστηκε", + "Error leaving room": "Σφάλμα στην έξοδο από το δωμάτιο", + "%(num)s days ago": "%(num)s μέρες πριν", + "about a day ago": "σχεδόν μία μέρα πριν", + "%(num)s hours ago": "%(num)s ώρες πριν", + "about an hour ago": "σχεδόν μία ώρα πριν", + "%(num)s minutes ago": "%(num)s λεπτά πριν", + "about a minute ago": "σχεδόν ένα λεπτό πριν", + "a few seconds ago": "λίγα δευτερόλεπτα πριν", + "%(items)s and %(count)s others|one": "%(items)s και ένα ακόμα", + "%(items)s and %(count)s others|other": "%(items)s και %(count)s άλλα", + "%(names)s and %(lastPerson)s are typing …": "%(names)s και %(lastPerson)s πληκτρολογούν …", + "%(names)s and %(count)s others are typing …|one": "%(names)s και ένας ακόμα πληκτρολογούν …", + "%(names)s and %(count)s others are typing …|other": "%(names)s και %(count)s άλλοι πληκτρολογούν …", + "%(displayName)s is typing …": "%(displayName)s πληκτρολογεί …", + "Ask this user to verify their session, or manually verify it below.": "Ζητήστε από αυτόν τον χρήστη να επιβεβαιώσει την συνεδρία του, ή επιβεβαιώστε την χειροκίνητα παρακάτω.", + "%(name)s (%(userId)s) signed in to a new session without verifying it:": "Ο %(name)s (%(userId)s) συνδέθηκε σε μία νέα συνεδρία χωρίς να την επιβεβαιώσει:", + "Verify your other session using one of the options below.": "Επιβεβαιώστε την άλλη σας συνεδρία χρησιμοποιώντας μία από τις παρακάτω επιλογές.", + "You signed in to a new session without verifying it:": "Συνδεθήκατε σε μια νέα συνεδρία χωρίς να την επιβεβαιώσετε:", + "Dark": "Σκούρο", + "Light": "Ανοιχτό", + "%(senderName)s removed the rule banning users matching %(glob)s": "Ο %(senderName)s αφαίρεσε τον κανόνα που αποκλείει τους χρήστες που ταιριάζουν με %(glob)s", + "%(senderName)s placed a video call. (not supported by this browser)": "Ο %(senderName)s έκανε μια κλήση βίντεο. (δεν υποστηρίζεται από το πρόγραμμα περιήγησης)", + "%(senderName)s placed a video call.": "Ο %(senderName)s έκανε μία κλήση βίντεο.", + "%(senderName)s placed a voice call. (not supported by this browser)": "Ο %(senderName)s έκανε μια ηχητική κλήση. (δεν υποστηρίζεται από το πρόγραμμα περιήγησης)", + "%(senderName)s placed a voice call.": "Ο %(senderName)s έκανε μία ηχητική κλήση.", + "%(senderName)s declined the call.": "Ο %(senderName)s απέρριψε την κλήση.", + "(an error occurred)": "(συνέβη ένα σφάλμα)", + "(their device couldn't start the camera / microphone)": "(η συσκευή δεν μπόρεσε να ανοίξει την κάμερα / μικρόφωνο)", + "(connection failed)": "(αποτυχία σύνδεσης)", + "%(senderName)s changed the alternative addresses for this room.": "Ο %(senderName)s άλλαξε την εναλλακτική διεύθυνση για αυτό το δωμάτιο.", + "%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "Ο %(senderName)s αφαίρεσε την εναλλακτική διεύθυνση %(addresses)s για αυτό το δωμάτιο.", + "%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "Ο %(senderName)s αφαίρεσε τις εναλλακτικές διευθύνσεις %(addresses)s για αυτό το δωμάτιο.", + "%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "Ο %(senderName)s πρόσθεσε τις εναλλακτικές διευθύνσεις %(addresses)s για αυτό το δωμάτιο.", + "%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "Ο %(senderName)s πρόσθεσε τις εναλλακτικές διευθύνσεις %(addresses)s για αυτό το δωμάτιο.", + "%(senderName)s removed the main address for this room.": "Ο %(senderName)s αφαίρεσε την κύρια διεύθυνση για αυτό το δωμάτιο.", + "%(senderName)s set the main address for this room to %(address)s.": "Ο %(senderName)s έθεσε την κύρια διεύθυνση αυτού του δωματίου σε %(address)s.", + "🎉 All servers are banned from participating! This room can no longer be used.": "🎉 Όλοι οι διακομιστές αποκλείστηκαν από την συμμετοχή! Αυτό το δωμάτιο δεν μπορεί να χρησιμοποιηθεί πλέον.", + "%(senderDisplayName)s changed guest access to %(rule)s": "Ο %(senderDisplayName)s άλλαξε την πρόσβαση επισκεπτών σε %(rule)s", + "%(senderDisplayName)s has prevented guests from joining the room.": "Ο %(senderDisplayName)s απέτρεψε τους επισκέπτες από το να μπαίνουν στο δωμάτιο.", + "%(senderDisplayName)s has allowed guests to join the room.": "Ο %(senderDisplayName)s επέτρεψε τους επισκέπτες να μπαίνουν στο δωμάτιο.", + "%(senderDisplayName)s changed the join rule to %(rule)s": "Ο %(senderDisplayName)s άλλαξε τους κανόνες εισόδου σε %(rule)s", + "%(senderDisplayName)s made the room invite only.": "Ο %(senderDisplayName)s άλλαξε το δωμάτιο σε \"μόνο με πρόσκληση\".", + "%(senderDisplayName)s made the room public to whoever knows the link.": "Ο %(senderDisplayName)s έκανε το δωμάτιο δημόσιο για όποιον γνωρίζει τον σύνδεσμο.", + "%(senderDisplayName)s upgraded this room.": "Ο %(senderDisplayName)s αναβάθμισε αυτό το δωμάτιο.", + "%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "Ο %(senderDisplayName)s άλλαξε το όνομα δωματίου από %(oldRoomName)s σε %(newRoomName)s.", + "%(senderName)s made no change.": "Ο %(senderName)s δεν έκανε καμία αλλαγή.", + "Converts the DM to a room": "Μετατρέπει την προσωπική συνομιλία σε δωμάτιο", + "Converts the room to a DM": "Μετατρέπει το δωμάτιο σε προσωπική συνομιλία", + "Takes the call in the current room off hold": "Επαναφέρει την κλήση στο τρέχον δωμάτιο από την αναμονή", + "Places the call in the current room on hold": "Βάζει την κλήση στο τρέχον δωμάτιο σε αναμονή", + "Sends a message to the given user": "Στέλνει ένα μήνυμα στον δοσμένο χρήστη", + "Opens chat with the given user": "Ανοίγει την συνομιλία με τον δοσμένο χρήστη", + "Send a bug report with logs": "Στέλνει μία αναφορά σφάλματος με logs", + "Displays information about a user": "Εμφανίζει πληροφορίες για έναν χρήστη", + "Displays list of commands with usages and descriptions": "Εμφανίζει τη λίστα εντολών με τρόπους χρήσης και περιγραφές", + "Sends the given emote coloured as a rainbow": "Στέλνει το δοσμένο emote χρωματισμένο σαν ουράνιο τόξο", + "Sends the given message coloured as a rainbow": "Στέλνει το δοσμένο μήνυμα χρωματισμένο σαν ουράνιο τόξο", + "Session already verified!": "Η συνεδρία έχει ήδη επιβεβαιωθεί!", + "Unknown (user, session) pair:": "Άγνωστο ζευγάρι (χρήστης, συνεδρία):", + "You cannot modify widgets in this room.": "Δεν μπορείτε να τροποποιήσετε τα widget σε αυτό το δωμάτιο.", + "Please supply a https:// or http:// widget URL": "Παρακαλώ εισάγετε ένα widget URL με https:// ή http://", + "Please supply a widget URL or embed code": "Παρακαλώ εισάγετε ένα widget URL ή ενσωματώστε κώδικα", + "Adds a custom widget by URL to the room": "Προσθέτει ένα προσαρμοσμένο widget μέσω URL στο δωμάτιο", + "Opens the Developer Tools dialog": "Ανοίγει το παράθυρο Εργαλείων για Προγραμματιστές", + "Could not find user in room": "Δεν βρέθηκε ο χρήστης στο δωμάτιο", + "Failed to set topic": "Αποτυχία ορισμού θέματος", + "Double check that your server supports the room version chosen and try again.": "Επανελέγξτε ότι ο διακομιστής σας υποστηρίζει την έκδοση δωματίου που επιλέξατε και προσπαθήστε ξανά.", + "Error upgrading room": "Σφάλμα αναβάθμισης δωματίου", + "Sends a message as html, without interpreting it as markdown": "Αποστέλλει ένα μήνυμα ως html, χωρίς να το ερμηνεύει ως markdown", + "Prepends ( ͡° ͜ʖ ͡°) to a plain-text message": "Προ-εισάγει ( ͡° ͜ʖ ͡°) σε ένα μήνυμα απλού κειμένου", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "Προ-εισάγει ┬──┬ ノ( ゜-゜ノ) σε ένα μήνυμα απλού κειμένου", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "Προ-εισάγει (╯°□°)╯︵ ┻━┻ σε ένα μήνυμα απλού κειμένου", + "Go Back": "Πηγαίνετε Πίσω", + "Are you sure you want to cancel entering passphrase?": "Είστε σίγουρος/η ότι θέλετε να ακυρώσετε την εισαγωγή κωδικού;", + "Cancel entering passphrase?": "Ακύρωση εισαγωγής κωδικού;", + "Sign In": "Σύνδεση", + "Create Account": "Δημιουργία Λογαριασμού", + "Use your account or create a new one to continue.": "Χρησιμοποιήστε τον λογαριασμό σας ή δημιουργήστε νέο για να συνεχίσετε.", + "Sign In or Create Account": "Συνδεθείτε ή Δημιουργήστε Λογαριασμό", + "Zimbabwe": "Ζιμπάμπουε", + "Zambia": "Ζαμπία", + "Yemen": "Υεμένη", + "Western Sahara": "Δυτική Σαχάρα", + "Vietnam": "Βιετνάμ", + "Venezuela": "Βενεζουέλα", + "Vatican City": "Πόλη του Βατικανό", + "Uzbekistan": "Ουζμπεκιστάν", + "Uruguay": "Ουρουγουάη", + "United Arab Emirates": "Ηνωμένα Αραβικά Εμιράτα", + "Ukraine": "Ουκρανία", + "Uganda": "Ουγκάντα", + "Tuvalu": "Τουβαλού", + "Turkmenistan": "Τουρκμενιστάν", + "Turkey": "Τουρκία", + "Tunisia": "Τυνησία", + "Trinidad & Tobago": "Τρινιντάντ & Τομπάγκο", + "Togo": "Τογκό", + "Thailand": "Ταϊλάνδη", + "Tanzania": "Τανζανία", + "Tajikistan": "Τατζικιστάν", + "Taiwan": "Ταϊβάν", + "Syria": "Συρία", + "Switzerland": "Ελβετία", + "Sweden": "Σουηδία", + "Sudan": "Σουδάν", + "Sri Lanka": "Σρι Λάνκα", + "Spain": "Ισπανία", + "South Sudan": "Νότιο Σουδάν", + "South Korea": "Νότια Κορέα", + "South Africa": "Νότια Αφρική", + "Somalia": "Σομαλία", + "Solomon Islands": "Νήσοι Σολομώντα", + "Slovenia": "Σλοβενία", + "Slovakia": "Σλοβακία", + "Singapore": "Σινγκαπούρη", + "Sierra Leone": "Σιέρα Λεόνε", + "Seychelles": "Σεϋχέλες", + "Serbia": "Σερβία", + "Senegal": "Σενεγάλη", + "Saudi Arabia": "Σαουδική Αραβία", + "Samoa": "Σαμόα", + "Rwanda": "Ρουάντα", + "Russia": "Ρωσία", + "Romania": "Ρουμανία", + "Qatar": "Κατάρ", + "Puerto Rico": "Πουέρτο Ρίκο", + "Portugal": "Πορτογαλία", + "Poland": "Πολωνία", + "Philippines": "Φιλιπίνες", + "Peru": "Περού", + "Paraguay": "Παραγουάη", + "Papua New Guinea": "Παπούα Νέα Γουινέα", + "Panama": "Παναμάς", + "Palestine": "Παλεστίνη", + "Palau": "Παλάο", + "Pakistan": "Πακιστάν", + "Oman": "Ομάν", + "Norway": "Νορβηγία", + "North Korea": "Βόρεια Κορέα", + "Nigeria": "Νιγηρία", + "Niger": "Νίγηρας", + "Nicaragua": "Νικαράγουα", + "New Zealand": "Νέα Ζηλανδία", + "Netherlands": "Ολλανδία", + "Nepal": "Νεπάλ", + "Namibia": "Ναμίμπια", + "Mozambique": "Μοζαμβίκη", + "Morocco": "Μαρόκο", + "Montenegro": "Μαυροβούνιο", + "Mongolia": "Μονγκολία", + "Monaco": "Μονακό", + "Moldova": "Μολδαβία", + "Micronesia": "Μικρονησία", + "Mexico": "Μεξικό", + "Mauritania": "Μαυριτανία", + "Martinique": "Μαρτινίκη", + "Marshall Islands": "Νήσοι Μάρσαλ", + "Malta": "Μάλτα", + "Mali": "Μάλι", + "Maldives": "Μαλδίβες", + "Malaysia": "Μαλαισία", + "Madagascar": "Μαδαγασκάρη", + "Macedonia": "Μακεδονία", + "Macau": "Μακάο", + "Luxembourg": "Λουξεμβούργο", + "Lithuania": "Λιθουανία", + "Liechtenstein": "Λιχτενστάιν", + "Libya": "Λιβύη", + "Lebanon": "Λίβανος", + "Latvia": "Λετονία", + "Laos": "Λάος", + "Kyrgyzstan": "Κιργιστάν", + "Kuwait": "Κουβέιτ", + "Kosovo": "Κόσοβο", + "Kiribati": "Κιριμπάτι", + "Kenya": "Κένυα", + "Kazakhstan": "Καζακστάν", + "Jordan": "Ιορδανία", + "Jersey": "Τζέρσεϋ", + "Japan": "Ιαπωνία", + "Jamaica": "Τζαμάικα", + "Italy": "Ιταλία", + "Israel": "Ισραήλ", + "Ireland": "Ιρλανδία", + "Iraq": "Ιράκ", + "Iran": "Ιράν", + "Indonesia": "Ινδονησία", + "India": "Ινδία", + "Iceland": "Ισλανδία", + "Hungary": "Ουγγαρία", + "Hong Kong": "Χονγκ Κονγκ", + "Honduras": "Ονδούρα", + "Haiti": "Χαϊτί", + "Guinea": "Γουινέα", + "Guatemala": "Γουατεμάλα", + "Guadeloupe": "Γουαδελούπη", + "Grenada": "Γρενάδα", + "Greenland": "Γρινλανδία", + "Greece": "Ελλάδα", + "Gibraltar": "Γιβραλτάρ", + "Ghana": "Γκάνα", + "Germany": "Γερμανία", + "Georgia": "Γεωργία", + "French Polynesia": "Γαλλική Πολυνησία", + "French Guiana": "Γαλλική Γουιάνα", + "France": "Γαλλία", + "Finland": "Φινλανδία", + "Fiji": "Φίτζι", + "Faroe Islands": "Νήσοι Φαρόε", + "Ethiopia": "Αιθιοπία", + "Estonia": "Εσθονία", + "Eritrea": "Ερυθραία", + "El Salvador": "Ελ Σαλβαδόρ", + "Egypt": "Αίγυπτος", + "Ecuador": "Ισημερινός", + "Dominican Republic": "Δομινικανή Δημοκρατία", + "Djibouti": "Τζιμπουτί", + "Denmark": "Δανία", + "Côte d’Ivoire": "Ακτή Ελεφαντοστού", + "Czech Republic": "Δημοκρατία της Τσεχίας", + "Cyprus": "Κύπρος", + "Cuba": "Κούβα", + "Croatia": "Κροατία", + "Costa Rica": "Κόστα Ρίκα", + "Colombia": "Κολομβία", + "China": "Κίνα", + "Chile": "Χιλή", + "Chad": "Τσαντ", + "Central African Republic": "Δημοκρατία της Κεντρικής Αφρικής", + "Cayman Islands": "Νήσοι Κέιμαν", + "Canada": "Καναδάς", + "Cameroon": "Καμερούν", + "Burundi": "Μπουρούντι", + "Burkina Faso": "Μπουρκίνα Φάσο", + "Bulgaria": "Βουλγαρία", + "Brazil": "Βραζιλία", + "Botswana": "Μποτσουάνα", + "Bosnia": "Βοσνία", + "Bolivia": "Βολιβία", + "Bhutan": "Μπουτάν", + "Belgium": "Βέλγιο", + "Belarus": "Λευκορωσία", + "Barbados": "Μπαρμπάντος", + "Bangladesh": "Μπαγκλαντές", + "Bahrain": "Μπαχρέιν", + "Bahamas": "Μπαχάμες", + "Azerbaijan": "Αζερμπαϊτζάν", + "Austria": "Αυστρία", + "Australia": "Αυστραλία", + "Armenia": "Αρμενία", + "Argentina": "Αργεντινή", + "Antarctica": "Ανταρκτική", + "Angola": "Ανγκόλα", + "Andorra": "Ανδόρα", + "American Samoa": "Αμερικανική Σαμόα", + "Algeria": "Αλγερία", + "Albania": "Αλβανία", + "Åland Islands": "Νήσοι Åland", + "Afghanistan": "Αφγανιστάν", + "United States": "Ηνωμένες Πολιτείες", + "United Kingdom": "Ηνωμένο Βασίλειο", + "Your homeserver rejected your log in attempt. This could be due to things just taking too long. Please try again. If this continues, please contact your homeserver administrator.": "Ο διακομιστής σας απέρριψε την προσπάθεια σύνδεσης. Αυτό μπορεί να συνέβη απλά λόγω καθυστέρησης. Παρακαλώ προσπαθήστε ξανά. Αν αυτό συνεχιστεί, παρακαλώ επικοινωνήστε με τον διαχειριστή του διακομιστή σας.", + "Your homeserver was unreachable and was not able to log you in. Please try again. If this continues, please contact your homeserver administrator.": "Δεν μπορέσαμε να επικοινωνήσουμε με τον διακομιστή και δεν σας έχει συνδέσει. Παρακαλώ προσπαθήστε ξανά. Αν αυτό συνεχιστεί, παρακαλώ επικοινωνήστε με τον διαχειριστή του διακομιστή σας.", + "Try again": "Προσπαθήστε ξανά", + "We asked the browser to remember which homeserver you use to let you sign in, but unfortunately your browser has forgotten it. Go to the sign in page and try again.": "Ζητήσαμε από το πρόγραμμα περιήγησης να θυμάται τον διακομιστή που χρησιμοποιείτε για να συνδέεστε, αλλά το πρόγραμμα περιήγησης δεν το έχει αποθηκεύσει. Πηγαίνετε στην σελίδα σύνδεσεις για να προσπαθήσετε ξανά.", + "We couldn't log you in": "Δεν μπορέσαμε να σας συνδέσουμε", + "Room name or address": "Όνομα ή διεύθυνση δωματίου", + "This will end the conference for everyone. Continue?": "Αυτό θα σταματήσει την διάσκεψη για όλους. Συνέχεια;", + "End conference": "Τέλος διάσκεψης", + "You've reached the maximum number of simultaneous calls.": "Έχετε φτάσει τον μέγιστο αριθμό ταυτοχρόνων κλήσεων.", + "Too Many Calls": "Πάρα Πολλές Κλήσεις", + "No other application is using the webcam": "Η κάμερα δεν χρησιμοποιείται από καμία άλλη εφαρμογή", + "Permission is granted to use the webcam": "Έχετε παραχωρήσει την άδεια χρήσης της κάμερας", + "A microphone and webcam are plugged in and set up correctly": "Ένα μικρόφωνο και μια κάμερα έχουν συνδεθεί και εγκατασταθεί σωστά", + "Call failed because webcam or microphone could not be accessed. Check that:": "Η κλήση απέτυχε επειδή δεν μπόρεσε να βρεθεί κάμερα ή μικρόφωνο. Ελέγξτε ότι:", + "Unable to access webcam / microphone": "Αδυναμία πρόσβασης κάμερας / μικροφώνου", + "Call failed because microphone could not be accessed. Check that a microphone is plugged in and set up correctly.": "Η κλήση απέτυχε επειδή δεν μπόρεσε να βρεθεί μικρόφωνο. Ελέγξτε ότι έχετε συνδέσει ένα μικρόφωνο και έχει εγκατασταθεί σωστά.", + "Unable to access microphone": "Αδυναμία πρόσβασης μικροφώνου", + "The call was answered on another device.": "Η κλήση απαντήθηκε σε μια άλλη συσκευή.", + "Answered Elsewhere": "Απαντήθηκε αλλού", + "The call could not be established": "Η κλήση δεν μπόρεσε να πραγματοποιηθεί", + "The other party declined the call.": "Η άλλη πλευρά απέρριψε την κλήση.", + "Call Declined": "Η κλήση απορρίφθηκε", + "Your user agent": "Η συσκευή σας", + "Confirm adding phone number": "Επιβεβαιώστε την προσθήκη του τηλεφωνικού αριθμού", + "Click the button below to confirm adding this email address.": "Πιέστε το κουμπί από κάτω για να επιβεβαιώσετε την προσθήκη της διεύθυνσης ηλ. ταχυδρομείου.", + "Confirm adding email": "Επιβεβαιώστε την προσθήκη διεύθυνσης ηλ. ταχυδρομείου" } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index eb1d0a632e..5bbbdf60b5 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -118,6 +118,11 @@ "This action requires accessing the default identity serverto validate an email address or phone number, but the server does not have any terms of service.": "This action requires accessing the default identity server to validate an email address or phone number, but the server does not have any terms of service.", "Only continue if you trust the owner of the server.": "Only continue if you trust the owner of the server.", "Trust": "Trust", + "We couldn't log you in": "We couldn't log you in", + "We asked the browser to remember which homeserver you use to let you sign in, but unfortunately your browser has forgotten it. Go to the sign in page and try again.": "We asked the browser to remember which homeserver you use to let you sign in, but unfortunately your browser has forgotten it. Go to the sign in page and try again.", + "Try again": "Try again", + "Your homeserver was unreachable and was not able to log you in. Please try again. If this continues, please contact your homeserver administrator.": "Your homeserver was unreachable and was not able to log you in. Please try again. If this continues, please contact your homeserver administrator.", + "Your homeserver rejected your log in attempt. This could be due to things just taking too long. Please try again. If this continues, please contact your homeserver administrator.": "Your homeserver rejected your log in attempt. This could be due to things just taking too long. Please try again. If this continues, please contact your homeserver administrator.", "%(name)s is requesting verification": "%(name)s is requesting verification", "%(brand)s does not have permission to send you notifications - please check your browser settings": "%(brand)s does not have permission to send you notifications - please check your browser settings", "%(brand)s was not given permission to send notifications - please try again": "%(brand)s was not given permission to send notifications - please try again", @@ -411,6 +416,8 @@ "Command error": "Command error", "Usage": "Usage", "Prepends ¯\\_(ツ)_/¯ to a plain-text message": "Prepends ¯\\_(ツ)_/¯ to a plain-text message", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message", "Prepends ( ͡° ͜ʖ ͡°) to a plain-text message": "Prepends ( ͡° ͜ʖ ͡°) to a plain-text message", "Sends a message as plain text, without interpreting it as markdown": "Sends a message as plain text, without interpreting it as markdown", "Sends a message as html, without interpreting it as markdown": "Sends a message as html, without interpreting it as markdown", @@ -472,6 +479,8 @@ "Sends a message to the given user": "Sends a message to the given user", "Places the call in the current room on hold": "Places the call in the current room on hold", "Takes the call in the current room off hold": "Takes the call in the current room off hold", + "Converts the room to a DM": "Converts the room to a DM", + "Converts the DM to a room": "Converts the DM to a room", "Displays action": "Displays action", "Reason": "Reason", "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepted the invitation for %(displayName)s.", @@ -546,6 +555,7 @@ "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget modified by %(senderName)s", "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s widget added by %(senderName)s", "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s widget removed by %(senderName)s", + "%(senderName)s has updated the widget layout": "%(senderName)s has updated the widget layout", "%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s removed the rule banning users matching %(glob)s", "%(senderName)s removed the rule banning rooms matching %(glob)s": "%(senderName)s removed the rule banning rooms matching %(glob)s", "%(senderName)s removed the rule banning servers matching %(glob)s": "%(senderName)s removed the rule banning servers matching %(glob)s", @@ -582,6 +592,7 @@ "Send stickers into this room": "Send stickers into this room", "Send stickers into your active room": "Send stickers into your active room", "Change which room you're viewing": "Change which room you're viewing", + "Change which room, message, or user you're viewing": "Change which room, message, or user you're viewing", "Change the topic of this room": "Change the topic of this room", "See when the topic changes in this room": "See when the topic changes in this room", "Change the topic of your active room": "Change the topic of your active room", @@ -722,6 +733,9 @@ "Notifications": "Notifications", "Enable desktop notifications": "Enable desktop notifications", "Enable": "Enable", + "Use app for a better experience": "Use app for a better experience", + "Element Web is experimental on mobile. For a better experience and the latest features, use our free native app.": "Element Web is experimental on mobile. For a better experience and the latest features, use our free native app.", + "Use app": "Use app", "Your homeserver has exceeded its user limit.": "Your homeserver has exceeded its user limit.", "Your homeserver has exceeded one of its resource limits.": "Your homeserver has exceeded one of its resource limits.", "Contact your server admin.": "Contact your server admin.", @@ -781,6 +795,7 @@ "Font size": "Font size", "Use custom size": "Use custom size", "Enable Emoji suggestions while typing": "Enable Emoji suggestions while typing", + "Show stickers button": "Show stickers button", "Use a more compact ‘Modern’ layout": "Use a more compact ‘Modern’ layout", "Show a placeholder for removed messages": "Show a placeholder for removed messages", "Show join/leave messages (invites/kicks/bans unaffected)": "Show join/leave messages (invites/kicks/bans unaffected)", @@ -791,10 +806,14 @@ "Always show message timestamps": "Always show message timestamps", "Autoplay GIFs and videos": "Autoplay GIFs and videos", "Enable automatic language detection for syntax highlighting": "Enable automatic language detection for syntax highlighting", + "Expand code blocks by default": "Expand code blocks by default", + "Show line numbers in code blocks": "Show line numbers in code blocks", "Show avatars in user and room mentions": "Show avatars in user and room mentions", "Enable big emoji in chat": "Enable big emoji in chat", "Send typing notifications": "Send typing notifications", "Show typing notifications": "Show typing notifications", + "Use Command + F to search": "Use Command + F to search", + "Use Ctrl + F to search": "Use Ctrl + F to search", "Use Command + Enter to send a message": "Use Command + Enter to send a message", "Use Ctrl + Enter to send a message": "Use Ctrl + Enter to send a message", "Automatically replace plain text Emoji": "Automatically replace plain text Emoji", @@ -825,8 +844,7 @@ "How fast should messages be downloaded.": "How fast should messages be downloaded.", "Manually verify all remote sessions": "Manually verify all remote sessions", "IRC display name width": "IRC display name width", - "Enable experimental, compact IRC style layout": "Enable experimental, compact IRC style layout", - "Show chat effects": "Show chat effects", + "Show chat effects (animations when receiving e.g. confetti)": "Show chat effects (animations when receiving e.g. confetti)", "Collecting app version information": "Collecting app version information", "Collecting logs": "Collecting logs", "Uploading logs": "Uploading logs", @@ -847,13 +865,21 @@ "This is your list of users/servers you have blocked - don't leave the room!": "This is your list of users/servers you have blocked - don't leave the room!", "Sends the given message with confetti": "Sends the given message with confetti", "sends confetti": "sends confetti", + "Sends the given message with fireworks": "Sends the given message with fireworks", + "sends fireworks": "sends fireworks", + "Sends the given message with snowfall": "Sends the given message with snowfall", + "sends snowfall": "sends snowfall", + "You held the call Switch": "You held the call Switch", "You held the call Resume": "You held the call Resume", "%(peerName)s held the call": "%(peerName)s held the call", "Video Call": "Video Call", "Voice Call": "Voice Call", "Fill Screen": "Fill Screen", "Return to call": "Return to call", - "%(name)s paused": "%(name)s paused", + "%(name)s on hold": "%(name)s on hold", + "Unable to look up phone number": "Unable to look up phone number", + "There was an error looking up the phone number": "There was an error looking up the phone number", + "Dial pad": "Dial pad", "Unknown caller": "Unknown caller", "Incoming voice call": "Incoming voice call", "Incoming video call": "Incoming video call", @@ -955,10 +981,8 @@ "Upload": "Upload", "This bridge was provisioned by .": "This bridge was provisioned by .", "This bridge is managed by .": "This bridge is managed by .", - "Workspace: %(networkName)s": "Workspace: %(networkName)s", - "Channel: %(channelName)s": "Channel: %(channelName)s", - "Show less": "Show less", - "Show more": "Show more", + "Workspace: ": "Workspace: ", + "Channel: ": "Channel: ", "Failed to upload profile picture!": "Failed to upload profile picture!", "Upload new:": "Upload new:", "No display name": "No display name", @@ -1080,7 +1104,7 @@ "Back up your keys before signing out to avoid losing them.": "Back up your keys before signing out to avoid losing them.", "well formed": "well formed", "unexpected type": "unexpected type", - "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Recovery Key.": "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Recovery Key.", + "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.": "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.", "Backup key stored:": "Backup key stored:", "not stored": "not stored", "Backup key cached:": "Backup key cached:", @@ -1139,12 +1163,10 @@ "Custom theme URL": "Custom theme URL", "Add theme": "Add theme", "Theme": "Theme", - "Message layout": "Message layout", - "Compact": "Compact", - "Modern": "Modern", "Hide advanced": "Hide advanced", "Show advanced": "Show advanced", "Set the name of a font installed on your system & %(brand)s will attempt to use it.": "Set the name of a font installed on your system & %(brand)s will attempt to use it.", + "Enable experimental, compact IRC style layout": "Enable experimental, compact IRC style layout", "Customise your appearance": "Customise your appearance", "Appearance Settings only affect this %(brand)s session.": "Appearance Settings only affect this %(brand)s session.", "Flair": "Flair", @@ -1440,6 +1462,7 @@ "Seen by %(displayName)s (%(userName)s) at %(dateTime)s": "Seen by %(displayName)s (%(userName)s) at %(dateTime)s", "Replying": "Replying", "Room %(name)s": "Room %(name)s", + "Recently visited rooms": "Recently visited rooms", "No recently visited rooms": "No recently visited rooms", "No rooms to show": "No rooms to show", "Unnamed room": "Unnamed room", @@ -1452,6 +1475,8 @@ "Hide Widgets": "Hide Widgets", "Show Widgets": "Show Widgets", "Search": "Search", + "Start a Conversation": "Start a Conversation", + "Open dial pad": "Open dial pad", "Invites": "Invites", "Favourites": "Favourites", "People": "People", @@ -1520,6 +1545,7 @@ "Jump to first invite.": "Jump to first invite.", "Show %(count)s more|other": "Show %(count)s more", "Show %(count)s more|one": "Show %(count)s more", + "Show less": "Show less", "Use default": "Use default", "All messages": "All messages", "Mentions & Keywords": "Mentions & Keywords", @@ -1582,6 +1608,7 @@ "New published address (e.g. #alias:server)": "New published address (e.g. #alias:server)", "Local Addresses": "Local Addresses", "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)", + "Show more": "Show more", "Error updating flair": "Error updating flair", "There was an error updating the flair for this room. The server may not allow it or a temporary error occurred.": "There was an error updating the flair for this room. The server may not allow it or a temporary error occurred.", "Invalid community ID": "Invalid community ID", @@ -1622,6 +1649,7 @@ "Unpin": "Unpin", "Unpin a widget to view it in this panel": "Unpin a widget to view it in this panel", "Options": "Options", + "Set my room layout for everyone": "Set my room layout for everyone", "Widgets": "Widgets", "Edit widgets, bridges & bots": "Edit widgets, bridges & bots", "Add widgets, bridges & bots": "Add widgets, bridges & bots", @@ -1824,6 +1852,9 @@ "Use the Desktop app to search encrypted messages": "Use the Desktop app to search encrypted messages", "This version of %(brand)s does not support viewing some encrypted files": "This version of %(brand)s does not support viewing some encrypted files", "This version of %(brand)s does not support searching encrypted messages": "This version of %(brand)s does not support searching encrypted messages", + "Share your screen": "Share your screen", + "Screens": "Screens", + "Windows": "Windows", "Join": "Join", "No results": "No results", "Please create a new issue on GitHub so that we can investigate this bug.": "Pleasecreate a new issue on GitHub so that we can investigate this bug.", @@ -2035,6 +2066,8 @@ "Explore Account Data": "Explore Account Data", "View Servers in Room": "View Servers in Room", "Verification Requests": "Verification Requests", + "Active Widgets": "Active Widgets", + "There was an error finding this widget.": "There was an error finding this widget.", "Toolbox": "Toolbox", "Developer Tools": "Developer Tools", "There was an error updating your community. The server is unable to process your request.": "There was an error updating your community. The server is unable to process your request.", @@ -2052,6 +2085,19 @@ "Please viewexisting bugs on Github first. No match?Start a new one .": "Please viewexisting bugs on Github first. No match?Start a new one .", "PRO TIP: If you start a bug, please submitdebug logs to help us track down the problem.": "PRO TIP: If you start a bug, please submitdebug logs to help us track down the problem.", "Send feedback": "Send feedback", + "Confirm abort of host creation": "Confirm abort of host creation", + "Are you sure you wish to abort creation of the host? The process cannot be continued.": "Are you sure you wish to abort creation of the host? The process cannot be continued.", + "Abort": "Abort", + "Failed to connect to your homeserver. Please close this dialog and try again.": "Failed to connect to your homeserver. Please close this dialog and try again.", + "Continuing temporarily allows the %(hostSignupBrand)s setup process to access your account to fetch verified email addresses. This data is not stored.": "Continuing temporarily allows the %(hostSignupBrand)s setup process to access your account to fetch verified email addresses. This data is not stored.", + "Learn more in our, and .": "Learn more in our , and .", + "Cookie Policy": "Cookie Policy", + "Privacy Policy": "Privacy Policy", + "Terms of Service": "Terms of Service", + "You should know": "You should know", + "%(hostSignupBrand)s Setup": "%(hostSignupBrand)s Setup", + "Maximize dialog": "Maximize dialog", + "Minimize dialog": "Minimize dialog", "Verify this user to mark them as trusted. Trusting users gives you extra peace of mind when using end-to-end encrypted messages.": "Verify this user to mark them as trusted. Trusting users gives you extra peace of mind when using end-to-end encrypted messages.", "Verifying this user will mark their session as trusted, and also mark your session as trusted to them.": "Verifying this user will mark their session as trusted, and also mark your session as trusted to them.", "Verify this device to mark it as trusted. Trusting this device gives you and other users extra peace of mind when using end-to-end encrypted messages.": "Verify this device to mark it as trusted. Trusting this device gives you and other users extra peace of mind when using end-to-end encrypted messages.", @@ -2070,6 +2116,8 @@ "We couldn't create your DM. Please check the users you want to invite and try again.": "We couldn't create your DM. Please check the users you want to invite and try again.", "Something went wrong trying to invite the users.": "Something went wrong trying to invite the users.", "We couldn't invite those users. Please check the users you want to invite and try again.": "We couldn't invite those users. Please check the users you want to invite and try again.", + "A call can only be transferred to a single user.": "A call can only be transferred to a single user.", + "Failed to transfer call": "Failed to transfer call", "Failed to find the following users": "Failed to find the following users", "The following users might not exist or are invalid, and cannot be invited: %(csvNames)s": "The following users might not exist or are invalid, and cannot be invited: %(csvNames)s", "Recent Conversations": "Recent Conversations", @@ -2083,6 +2131,7 @@ "Go": "Go", "Invite someone using their name, email address, username (like ) or share this room.": "Invite someone using their name, email address, username (like ) or share this room.", "Invite someone using their name, username (like ) or share this room.": "Invite someone using their name, username (like ) or share this room.", + "Transfer": "Transfer", "a new master key signature": "a new master key signature", "a new cross-signing key signature": "a new cross-signing key signature", "a device cross-signing signature": "a device cross-signing signature", @@ -2120,7 +2169,7 @@ "Your password": "Your password", "This session, or the other session": "This session, or the other session", "The internet connection either session is using": "The internet connection either session is using", - "We recommend you change your password and recovery key in Settings immediately": "We recommend you change your password and recovery key in Settings immediately", + "We recommend you change your password and Security Key in Settings immediately": "We recommend you change your password and Security Key in Settings immediately", "New session": "New session", "Use this session to verify your new one, granting it access to encrypted messages:": "Use this session to verify your new one, granting it access to encrypted messages:", "If you didn’t sign in to this session, your account may be compromised.": "If you didn’t sign in to this session, your account may be compromised.", @@ -2199,7 +2248,6 @@ "Find others by phone or email": "Find others by phone or email", "Be found by phone or email": "Be found by phone or email", "Use bots, bridges, widgets and sticker packs": "Use bots, bridges, widgets and sticker packs", - "Terms of Service": "Terms of Service", "To continue you need to accept the terms of this service.": "To continue you need to accept the terms of this service.", "Service": "Service", "Summary": "Summary", @@ -2222,16 +2270,15 @@ "Approve": "Approve", "Decline All": "Decline All", "Remember my selection for this widget": "Remember my selection for this widget", - "A widget would like to verify your identity": "A widget would like to verify your identity", - "A widget located at %(widgetUrl)s would like to verify your identity. By allowing this, the widget will be able to verify your user ID, but not perform actions as you.": "A widget located at %(widgetUrl)s would like to verify your identity. By allowing this, the widget will be able to verify your user ID, but not perform actions as you.", - "Allow": "Allow", - "Deny": "Deny", + "Allow this widget to verify your identity": "Allow this widget to verify your identity", + "The widget will verify your user ID, but won't be able to perform actions for you:": "The widget will verify your user ID, but won't be able to perform actions for you:", + "Remember this": "Remember this", "Wrong file type": "Wrong file type", "Looks good!": "Looks good!", - "Wrong Recovery Key": "Wrong Recovery Key", - "Invalid Recovery Key": "Invalid Recovery Key", + "Wrong Security Key": "Wrong Security Key", + "Invalid Security Key": "Invalid Security Key", "Security Phrase": "Security Phrase", - "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.": "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.", + "Unable to access secret storage. Please verify that you entered the correct Security Phrase.": "Unable to access secret storage. Please verify that you entered the correct Security Phrase.", "Enter your Security Phrase or to continue.": "Enter your Security Phrase or to continue.", "Security Key": "Security Key", "Use your Security Key to continue.": "Use your Security Key to continue.", @@ -2246,25 +2293,25 @@ "Fetching keys from server...": "Fetching keys from server...", "%(completed)s of %(total)s keys restored": "%(completed)s of %(total)s keys restored", "Unable to load backup status": "Unable to load backup status", - "Recovery key mismatch": "Recovery key mismatch", - "Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.": "Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.", - "Incorrect recovery passphrase": "Incorrect recovery passphrase", - "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.": "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.", + "Security Key mismatch": "Security Key mismatch", + "Backup could not be decrypted with this Security Key: please verify that you entered the correct Security Key.": "Backup could not be decrypted with this Security Key: please verify that you entered the correct Security Key.", + "Incorrect Security Phrase": "Incorrect Security Phrase", + "Backup could not be decrypted with this Security Phrase: please verify that you entered the correct Security Phrase.": "Backup could not be decrypted with this Security Phrase: please verify that you entered the correct Security Phrase.", "Unable to restore backup": "Unable to restore backup", "No backup found!": "No backup found!", "Keys restored": "Keys restored", "Failed to decrypt %(failedCount)s sessions!": "Failed to decrypt %(failedCount)s sessions!", "Successfully restored %(sessionCount)s keys": "Successfully restored %(sessionCount)s keys", - "Enter recovery passphrase": "Enter recovery passphrase", + "Enter Security Phrase": "Enter Security Phrase", "Warning: you should only set up key backup from a trusted computer.": "Warning: you should only set up key backup from a trusted computer.", - "Access your secure message history and set up secure messaging by entering your recovery passphrase.": "Access your secure message history and set up secure messaging by entering your recovery passphrase.", - "If you've forgotten your recovery passphrase you can use your recovery key orset up new recovery options ": "If you've forgotten your recovery passphrase you canuse your recovery key orset up new recovery options ", - "Enter recovery key": "Enter recovery key", - "This looks like a valid recovery key!": "This looks like a valid recovery key!", - "Not a valid recovery key": "Not a valid recovery key", + "Access your secure message history and set up secure messaging by entering your Security Phrase.": "Access your secure message history and set up secure messaging by entering your Security Phrase.", + "If you've forgotten your Security Phrase you canuse your Security Key orset up new recovery options ": "If you've forgotten your Security Phrase you canuse your Security Key orset up new recovery options ", + "Enter Security Key": "Enter Security Key", + "This looks like a valid Security Key!": "This looks like a valid Security Key!", + "Not a valid Security Key": "Not a valid Security Key", "Warning: You should only set up key backup from a trusted computer.": "Warning: You should only set up key backup from a trusted computer.", - "Access your secure message history and set up secure messaging by entering your recovery key.": "Access your secure message history and set up secure messaging by entering your recovery key.", - "If you've forgotten your recovery key you can ": "If you've forgotten your recovery key you can ", + "Access your secure message history and set up secure messaging by entering your Security Key.": "Access your secure message history and set up secure messaging by entering your Security Key.", + "If you've forgotten your Security Key you can ": "If you've forgotten your Security Key you can ", "Resume": "Resume", "Hold": "Hold", "Reject invitation": "Reject invitation", @@ -2314,6 +2361,7 @@ "Please enter the code it contains:": "Please enter the code it contains:", "Code": "Code", "Submit": "Submit", + "Something went wrong in confirming your identity. Cancel and try again.": "Something went wrong in confirming your identity. Cancel and try again.", "Start authentication": "Start authentication", "Enter password": "Enter password", "Nice, strong password!": "Nice, strong password!", @@ -2399,6 +2447,7 @@ "Send a Direct Message": "Send a Direct Message", "Explore Public Rooms": "Explore Public Rooms", "Create a Group Chat": "Create a Group Chat", + "Upgrade to %(hostSignupBrand)s": "Upgrade to %(hostSignupBrand)s", "Explore rooms": "Explore rooms", "Failed to reject invitation": "Failed to reject invitation", "Cannot create rooms in this community": "Cannot create rooms in this community", @@ -2424,7 +2473,7 @@ "Create a new community": "Create a new community", "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.", "You’re all caught up": "You’re all caught up", - "You have no visible notifications in this room.": "You have no visible notifications in this room.", + "You have no visible notifications.": "You have no visible notifications.", "%(brand)s failed to get the protocol list from the homeserver. The homeserver may be too old to support third party networks.": "%(brand)s failed to get the protocol list from the homeserver. The homeserver may be too old to support third party networks.", "%(brand)s failed to get the public room list.": "%(brand)s failed to get the public room list.", "The homeserver may be unavailable or overloaded.": "The homeserver may be unavailable or overloaded.", @@ -2541,8 +2590,8 @@ "Create account": "Create account", "Host account on": "Host account on", "Decide where your account is hosted": "Decide where your account is hosted", - "Use Recovery Key or Passphrase": "Use Recovery Key or Passphrase", - "Use Recovery Key": "Use Recovery Key", + "Use Security Key or Phrase": "Use Security Key or Phrase", + "Use Security Key": "Use Security Key", "Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.": "Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.", "This requires the latest %(brand)s on your other devices:": "This requires the latest %(brand)s on your other devices:", "%(brand)s Web": "%(brand)s Web", @@ -2577,39 +2626,38 @@ "Room Autocomplete": "Room Autocomplete", "Users": "Users", "User Autocomplete": "User Autocomplete", - "We'll store an encrypted copy of your keys on our server. Secure your backup with a recovery passphrase.": "We'll store an encrypted copy of your keys on our server. Secure your backup with a recovery passphrase.", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a Security Phrase.": "We'll store an encrypted copy of your keys on our server. Secure your backup with a Security Phrase.", "For maximum security, this should be different from your account password.": "For maximum security, this should be different from your account password.", - "Enter a recovery passphrase": "Enter a recovery passphrase", - "Great! This recovery passphrase looks strong enough.": "Great! This recovery passphrase looks strong enough.", - "Set up with a recovery key": "Set up with a recovery key", + "Enter a Security Phrase": "Enter a Security Phrase", + "Great! This Security Phrase looks strong enough.": "Great! This Security Phrase looks strong enough.", + "Set up with a Security Key": "Set up with a Security Key", "That matches!": "That matches!", "Use a different passphrase?": "Use a different passphrase?", "That doesn't match.": "That doesn't match.", "Go back to set it again.": "Go back to set it again.", - "Please enter your recovery passphrase a second time to confirm.": "Please enter your recovery passphrase a second time to confirm.", - "Repeat your recovery passphrase...": "Repeat your recovery passphrase...", - "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.": "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.", + "Please enter your Security Phrase a second time to confirm.": "Please enter your Security Phrase a second time to confirm.", + "Repeat your Security Phrase...": "Repeat your Security Phrase...", + "Your Security Key is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase.": "Your Security Key is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase.", "Keep a copy of it somewhere secure, like a password manager or even a safe.": "Keep a copy of it somewhere secure, like a password manager or even a safe.", - "Your recovery key": "Your recovery key", + "Your Security Key": "Your Security Key", "Download": "Download", - "Your recovery key has been copied to your clipboard, paste it to:": "Your recovery key has been copied to your clipboard, paste it to:", - "Your recovery key is in your Downloads folder.": "Your recovery key is in your Downloads folder.", + "Your Security Key has been copied to your clipboard, paste it to:": "Your Security Key has been copied to your clipboard, paste it to:", + "Your Security Key is in your Downloads folder.": "Your Security Key is in your Downloads folder.", "Print it and store it somewhere safe": "Print it and store it somewhere safe", "Save it on a USB key or backup drive": "Save it on a USB key or backup drive", "Copy it to your personal cloud storage": "Copy it to your personal cloud storage", "Your keys are being backed up (the first backup could take a few minutes).": "Your keys are being backed up (the first backup could take a few minutes).", "Without setting up Secure Message Recovery, you won't be able to restore your encrypted message history if you log out or use another session.": "Without setting up Secure Message Recovery, you won't be able to restore your encrypted message history if you log out or use another session.", "Set up Secure Message Recovery": "Set up Secure Message Recovery", - "Secure your backup with a recovery passphrase": "Secure your backup with a recovery passphrase", - "Confirm your recovery passphrase": "Confirm your recovery passphrase", - "Make a copy of your recovery key": "Make a copy of your recovery key", + "Secure your backup with a Security Phrase": "Secure your backup with a Security Phrase", + "Confirm your Security Phrase": "Confirm your Security Phrase", + "Make a copy of your Security Key": "Make a copy of your Security Key", "Starting backup...": "Starting backup...", "Success!": "Success!", "Create key backup": "Create key backup", "Unable to create key backup": "Unable to create key backup", "Generate a Security Key": "Generate a Security Key", "We’ll generate a Security Key for you to store somewhere safe, like a password manager or a safe.": "We’ll generate a Security Key for you to store somewhere safe, like a password manager or a safe.", - "Enter a Security Phrase": "Enter a Security Phrase", "Use a secret phrase only you know, and optionally save a Security Key to use for backup.": "Use a secret phrase only you know, and optionally save a Security Key to use for backup.", "Safeguard against losing access to encrypted messages & data by backing up encryption keys on your server.": "Safeguard against losing access to encrypted messages & data by backing up encryption keys on your server.", "Enter your account password to confirm the upgrade:": "Enter your account password to confirm the upgrade:", @@ -2619,6 +2667,7 @@ "Upgrade this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.": "Upgrade this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.", "Enter a security phrase only you know, as it’s used to safeguard your data. To be secure, you shouldn’t re-use your account password.": "Enter a security phrase only you know, as it’s used to safeguard your data. To be secure, you shouldn’t re-use your account password.", "Enter your recovery passphrase a second time to confirm it.": "Enter your recovery passphrase a second time to confirm it.", + "Confirm your recovery passphrase": "Confirm your recovery passphrase", "Store your Security Key somewhere safe, like a password manager or a safe, as it’s used to safeguard your encrypted data.": "Store your Security Key somewhere safe, like a password manager or a safe, as it’s used to safeguard your encrypted data.", "Unable to query secret storage status": "Unable to query secret storage status", "If you cancel now, you may lose encrypted messages & data if you lose access to your logins.": "If you cancel now, you may lose encrypted messages & data if you lose access to your logins.", @@ -2643,13 +2692,13 @@ "File to import": "File to import", "Import": "Import", "New Recovery Method": "New Recovery Method", - "A new recovery passphrase and key for Secure Messages have been detected.": "A new recovery passphrase and key for Secure Messages have been detected.", + "A new Security Phrase and key for Secure Messages have been detected.": "A new Security Phrase and key for Secure Messages have been detected.", "If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.", "This session is encrypting history using the new recovery method.": "This session is encrypting history using the new recovery method.", "Go to Settings": "Go to Settings", "Set up Secure Messages": "Set up Secure Messages", "Recovery Method Removed": "Recovery Method Removed", - "This session has detected that your recovery passphrase and key for Secure Messages have been removed.": "This session has detected that your recovery passphrase and key for Secure Messages have been removed.", + "This session has detected that your Security Phrase and key for Secure Messages have been removed.": "This session has detected that your Security Phrase and key for Secure Messages have been removed.", "If you did this accidentally, you can setup Secure Messages on this session which will re-encrypt this session's message history with a new recovery method.": "If you did this accidentally, you can setup Secure Messages on this session which will re-encrypt this session's message history with a new recovery method.", "If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.", "If disabled, messages from encrypted rooms won't appear in search results.": "If disabled, messages from encrypted rooms won't appear in search results.", @@ -2688,6 +2737,7 @@ "Dismiss read marker and jump to bottom": "Dismiss read marker and jump to bottom", "Jump to oldest unread message": "Jump to oldest unread message", "Upload a file": "Upload a file", + "Search (must be enabled)": "Search (must be enabled)", "Jump to room search": "Jump to room search", "Navigate up/down in the room list": "Navigate up/down in the room list", "Select room from the room list": "Select room from the room list", diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json index 3545565fa3..748d265c89 100644 --- a/src/i18n/strings/eo.json +++ b/src/i18n/strings/eo.json @@ -655,9 +655,9 @@ "Messages in one-to-one chats": "Mesaĝoj en duopaj babiloj", "Unavailable": "Nedisponebla", "View Decrypted Source": "Vidi malĉifritan fonton", - "Failed to update keywords": "Malsukcesis ĝisdatigi la ŝlosilvortojn", + "Failed to update keywords": "Malsukcesis ĝisdatigi la ĉefvortojn", "remove %(name)s from the directory.": "forigi %(name)s de la katalogo.", - "Notifications on the following keywords follow rules which can’t be displayed here:": "La sciigoj de la jenaj ŝlosilvortoj sekvas regulojn kiuj ne povas esti montrataj ĉi tie:", + "Notifications on the following keywords follow rules which can’t be displayed here:": "La sciigoj de la jenaj ĉefvortoj obeas regulojn kiuj ne povas esti montrataj ĉi tie:", "Please set a password!": "Bonvolu agordi pasvorton!", "You have successfully set a password!": "Vi sukcese agordis pasvorton!", "An error occurred whilst saving your email notification preferences.": "Konservo de agordoj pri retpoŝtaj sciigoj eraris.", @@ -671,10 +671,10 @@ "Collecting app version information": "Kolektante informon pri versio de la aplikaĵo", "Enable notifications for this account": "Ŝalti sciigojn por tiu ĉi konto", "Invite to this community": "Inviti al tiu ĉi komunumo", - "Messages containing keywords": "Mesaĝoj enhavantaj ŝlosilovortojn", + "Messages containing keywords": "Mesaĝoj enhavantaj ĉefvortojn", "Error saving email notification preferences": "Konservo de preferoj pri retpoŝtaj sciigoj eraris", "Tuesday": "Mardo", - "Enter keywords separated by a comma:": "Entajpu ŝlosilvortojn apartigitajn per komoj:", + "Enter keywords separated by a comma:": "Entajpu ĉefvortojn apartigitajn per komoj:", "Search…": "Serĉi…", "You have successfully set a password and an email address!": "Vi sukcese agordis pasvorton kaj retpoŝtadreson!", "Remove %(name)s from the directory?": "Ĉu forigi %(name)s de la katalogo?", @@ -708,7 +708,7 @@ "What's new?": "Kio novas?", "Notify me for anything else": "Sciigu min pri ĉio alia", "When I'm invited to a room": "Kiam mi estas invitita al ĉambro", - "Keywords": "Ŝlosilvortoj", + "Keywords": "Ĉefvortoj", "Can't update user notification settings": "Agordoj de sciigoj al uzanto ne ĝisdatigeblas", "Notify for all other messages/rooms": "Sciigu min por ĉiuj aliaj mesaĝoj/ĉambroj", "Unable to look up room ID from server": "Ne povas akiri ĉambran identigilon de la servilo", @@ -2072,7 +2072,7 @@ "Invalid theme schema.": "Nevalida skemo de haŭto.", "Mod": "Reguligisto", "In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "En ĉifritaj ĉambroj, viaj mesaĝoj estas sekurigitaj, kaj nur vi kaj la ricevanto havas la unikajn malĉifrajn ŝlosilojn.", - "Verify all users in a room to ensure it's secure.": "Kontroli ĉiujn uzantojn en ĉambro por certigi, ke ĝi sekuras.", + "Verify all users in a room to ensure it's secure.": "Kontrolu ĉiujn uzantojn en ĉambro por certigi, ke ĝi sekuras.", "In encrypted rooms, verify all users to ensure it’s secure.": "En ĉifritaj ĉambroj, kontroli ĉiujn uzantojn por certigi, ke ili sekuras.", "Verified": "Kontrolita", "Verification cancelled": "Kontrolo nuliĝis", @@ -2329,7 +2329,7 @@ "Show %(count)s more|other": "Montri %(count)s pliajn", "Show %(count)s more|one": "Montri %(count)s plian", "Use default": "Uzi implicitan", - "Mentions & Keywords": "Mencioj kaj ŝlosilvortoj", + "Mentions & Keywords": "Mencioj kaj ĉefvortoj", "Notification options": "Elektebloj pri sciigoj", "Favourited": "Elstarigita", "Leave Room": "Foriri de ĉambro", @@ -2697,5 +2697,167 @@ "Caribbean Netherlands": "Kariba Nederlando", "Burkina Faso": "Burkino", "Bouvet Island": "Buvet-Insulo", - "Anguilla": "Angvilo" + "Anguilla": "Angvilo", + "%(name)s on hold": "%(name)s estas paŭzigita", + "Return to call": "Reveni al voko", + "Fill Screen": "Plenigi ekranon", + "Voice Call": "Voĉvoko", + "Video Call": "Vidvoko", + "%(peerName)s held the call": "%(peerName)s paŭzigis la vokon", + "You held the call Resume": "Vi paŭzigis la vokon Daŭrigi", + "You held the call Switch": "Vi paŭzigis la vokon Baskuli", + "Render LaTeX maths in messages": "Bildigi matematikon de Lateĥo en mesaĝoj", + "%(senderName)s ended the call": "%(senderName)s finis la vokon", + "You ended the call": "Vi finis la vokon", + "New version of %(brand)s is available": "Nova versio de %(brand)s disponeblas", + "Update %(brand)s": "Ĝisdatigi %(brand)s", + "Enable desktop notifications": "Ŝalti labortablajn sciigojn", + "See %(msgtype)s messages posted to your active room": "Vidi mesaĝojn de speco %(msgtype)s afiŝitajn al via aktiva ĉambro", + "See %(msgtype)s messages posted to this room": "Vidi mesaĝojn de speco %(msgtype)s afiŝitajn al ĉi tiu ĉambro", + "Send %(msgtype)s messages as you in your active room": "Sendi mesaĝojn de speco %(msgtype)s kiel vi en via aktiva ĉambro", + "Send %(msgtype)s messages as you in this room": "Sendi mesaĝojn de speco %(msgtype)s kiel vi en ĉi tiu ĉambro", + "See general files posted to your active room": "Sendi ĝeneralajn dosierojn afiŝitajn al via aktiva ĉambro", + "See general files posted to this room": "Sendi ĝeneralajn dosierojn afiŝitajn al ĉi tiu ĉambro", + "Send general files as you in your active room": "Sendi ĝeneralajn dosierojn kiel vi en via aktiva ĉambro", + "Send general files as you in this room": "Sendi ĝeneralajn dosierojn kiel vi en ĉi tiu ĉambro", + "See videos posted to your active room": "Vidi filmojn afiŝitajn al via aktiva ĉambro", + "See videos posted to this room": "Vidi filmojn afiŝitajn al ĉi tiu ĉambro", + "Send videos as you in your active room": "Sendi filmojn kiel vi en via aktiva ĉambro", + "Send videos as you in this room": "Sendi filmojn kiel vi en ĉi tiu ĉambro", + "See images posted to your active room": "Vidi bildojn afiŝitajn al via aktiva ĉambro", + "See images posted to this room": "Vidi bildojn afiŝitajn al ĉi tiu ĉambro", + "Send images as you in your active room": "Sendi bildojn kiel vi en via aktiva ĉambro", + "Send images as you in this room": "Sendi bildojn kiel vi en ĉi tiu ĉambro", + "The %(capability)s capability": "La kapablo %(capability)s", + "See %(eventType)s events posted to your active room": "Vidi eventojn de speco %(eventType)s afiŝitajn al via aktiva ĉambro", + "Send %(eventType)s events as you in your active room": "Sendi eventojn de speco %(eventType)s kiel vi en via aktiva ĉambro", + "See %(eventType)s events posted to this room": "Vidi eventojn de speco %(eventType)s afiŝitajn al ĉi tiu ĉambro", + "Send %(eventType)s events as you in this room": "Sendi eventojn de speco %(eventType)s kiel vi en ĉi tiu ĉambro", + "See messages posted to your active room": "Vidi mesaĝojn senditajn al via aktiva ĉambro", + "See messages posted to this room": "Vidi mesaĝojn senditajn al ĉi tiu ĉambro", + "Send messages as you in your active room": "Sendi mesaĝojn kiel vi en via aktiva ĉambro", + "Send messages as you in this room": "Sendi mesaĝojn kiel vi en ĉi tiu ĉambro", + "See when anyone posts a sticker to your active room": "Vidi ies ajn afiŝojn de glumarkoj al via aktiva ĉambro", + "Send stickers to your active room as you": "Sendi glumarkojn al via aktiva ĉambro kiel vi", + "See when a sticker is posted in this room": "Vidi afiŝojn de glumarkoj en ĉi tiu ĉambro", + "Send stickers to this room as you": "Sendi glumarkojn al ĉi tiu ĉambro kiel vi", + "See when the avatar changes in your active room": "Vidi ŝanĝojn de bildo de ĉambro en via aktiva ĉambro", + "Change the avatar of your active room": "Ŝanĝi la bildon de via aktiva ĉambro", + "See when the avatar changes in this room": "Vidi ŝanĝojn de bildo de ĉambro en ĉi tiu ĉambro", + "Change the avatar of this room": "Ŝanĝi la bildon de ĉi tiu ĉambro", + "See when the name changes in your active room": "Vidi ŝanĝojn de nomo en via aktiva ĉambro", + "Change the name of your active room": "Ŝanĝi la nomon de via aktiva ĉambro", + "See when the name changes in this room": "Vidi ŝanĝojn de nomo en ĉi tiu ĉambro", + "Change the name of this room": "Ŝanĝi la nomon de ĉi tiu ĉambro", + "See when the topic changes in your active room": "Vidi ŝanĝojn de temo en via aktiva ĉambro", + "Change the topic of your active room": "Ŝanĝi la temon de via aktiva ĉambro", + "See when the topic changes in this room": "Vidi ŝanĝojn de temo en ĉi tiu ĉambro", + "Change the topic of this room": "Ŝanĝi la temon de ĉi tiu ĉambro", + "Change which room you're viewing": "Ŝanĝi la vidatan ĉambron", + "Send stickers into your active room": "Sendi glumarkojn al via aktiva ĉambro", + "Send stickers into this room": "Sendi glumarkojn al ĉi tiu ĉambro", + "Takes the call in the current room off hold": "Malpaŭzigas la vokon en la nuna ĉambro", + "Places the call in the current room on hold": "Paŭzigas la vokon en la nuna ĉambro", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "Antaŭmetas ┬──┬ ノ( ゜-゜ノ) al platteksta mesaĝo", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "Antaŭmetas (╯°□°)╯︵ ┻━┻ al platteksta mesaĝo", + "Effects": "Efektoj", + "Zimbabwe": "Zimbabvo", + "Zambia": "Zambio", + "Yemen": "Jemeno", + "Western Sahara": "Okcidenta Saharo", + "Wallis & Futuna": "Valiso kaj Futuno", + "Vietnam": "Vjetnamujo", + "Venezuela": "Venezuelo", + "Vatican City": "Vatikano", + "Vanuatu": "Vanuatuo", + "Uruguay": "Urugvajo", + "U.S. Virgin Islands": "Usonaj Virgulininsuloj", + "Tuvalu": "Tuvalo", + "Turks & Caicos Islands": "Turkoj kaj Kajkoj", + "Turkmenistan": "Turkmenujo", + "Trinidad & Tobago": "Trinidado kaj Tobago", + "Switzerland": "Svisujo", + "Sweden": "Svedujo", + "Swaziland": "Svaziujo", + "Svalbard & Jan Mayen": "Svalbardo kaj Janmajeno", + "Suriname": "Surinamo", + "Sudan": "Sudano", + "St. Vincent & Grenadines": "Sankt-Vincento kaj Grenadinoj", + "St. Pierre & Miquelon": "Sankt-Pjero kaj Mikelono", + "St. Martin": "Sankt-Marteno", + "St. Lucia": "Sankt-Lucio", + "St. Kitts & Nevis": "Sankt-Kito kaj Neviso", + "St. Barthélemy": "Sankt-Bartolomeo", + "St. Helena": "Sankt-Heleno", + "South Sudan": "Sud-Sudano", + "South Georgia & South Sandwich Islands": "Sud-Georgio kaj Sud-Sandviĉinsuloj", + "Sint Maarten": "Sint-Marteno", + "Réunion": "Reunio", + "Pitcairn Islands": "Pitkernaj insuloj", + "Northern Mariana Islands": "Nord-Marianoj", + "Norfolk Island": "Norfolkinsulo", + "Nicaragua": "Nikaragvo", + "Mongolia": "Mongolujo", + "Monaco": "Monako", + "Moldova": "Moldavujo", + "Micronesia": "Mikronezio", + "Mexico": "Meksiko", + "Mayotte": "Majoto", + "Mauritius": "Maŭricio", + "Mauritania": "Maŭritanio", + "Martinique": "Martiniko", + "Marshall Islands": "Marŝaloj", + "Malawi": "Malavio", + "Madagascar": "Madagaskaro", + "Macedonia": "Makedonujo", + "Macau": "Makao", + "Libya": "Libio", + "Liberia": "Liberio", + "Lesotho": "Lesoto", + "Lebanon": "Libano", + "Kuwait": "Kuvajto", + "Kiribati": "Kiribato", + "Jordan": "Jordanio", + "Jersey": "Ĵerzejo", + "Heard & McDonald Islands": "Insuloj de Herdo kaj Makdonaldo", + "Guyana": "Gujano", + "Guinea-Bissau": "Gvineo-Bisaŭo", + "Guinea": "Gvineo", + "Guernsey": "Gernezejo", + "Guam": "Gvamo", + "Guadeloupe": "Gvadelupo", + "Ghana": "Ganao", + "Georgia": "Kartvelujo", + "Gambia": "Gambio", + "Gabon": "Gabono", + "French Southern Territories": "Francaj sudaj teritorioj", + "French Polynesia": "Franca Polinezio", + "Congo - Kinshasa": "Demokratia respubliko Kongo (Kinŝasa)", + "Congo - Brazzaville": "Respubliko Kongo (Brazavila)", + "British Indian Ocean Territory": "Brita hindoceana teritorio", + "Tonga": "Tongo", + "Tokelau": "Tokelao", + "Togo": "Togolando", + "Timor-Leste": "Orienta Timoro", + "Thailand": "Tajujo", + "Tanzania": "Tanzanio", + "Taiwan": "Tajvano", + "São Tomé & Príncipe": "Santomeo kaj Principeo", + "Syria": "Sirio", + "French Guiana": "Franca Gujano", + "Faroe Islands": "Ferooj", + "Falkland Islands": "Falklandoj", + "Djibouti": "Ĝibutio", + "Curaçao": "Kuracao", + "Cocos (Keeling) Islands": "Kokosinsuloj", + "Cayman Islands": "Kajmaninsuloj", + "You've reached the maximum number of simultaneous calls.": "Vi atingis la maksimuman nombron de samtempaj vokoj.", + "Too Many Calls": "Tro multaj vokoj", + "No other application is using the webcam": "Neniu alia aplikaĵo uzas la retfilmilon", + "Permission is granted to use the webcam": "Permeso uzi la retfilmilon estas donita", + "A microphone and webcam are plugged in and set up correctly": "Mikrofono kaj retfilmilo estas ĝuste konektitaj kaj agorditaj", + "Call failed because webcam or microphone could not be accessed. Check that:": "Voko malsukcesis, ĉar retfilmilo aŭ mikrofono ne povis uziĝi. Kontrolu, ke:", + "Unable to access webcam / microphone": "Ne povas aliri retfilmilon / mikrofonon", + "Call failed because microphone could not be accessed. Check that a microphone is plugged in and set up correctly.": "Voko malsukcesis, ĉar mikrofono ne estis uzebla. Kontrolu, ĉu mikrofono estas ĝuste konektita kaj agordita.", + "Unable to access microphone": "Ne povas aliri mikrofonon" } diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 34c40800f7..64de246c0e 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -3,7 +3,7 @@ "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s aceptó la invitación para %(displayName)s.", "Account": "Cuenta", "Access Token:": "Token de Acceso:", - "Admin": "Administrador", + "Admin": "Admin", "Advanced": "Avanzado", "Always show message timestamps": "Siempre mostrar las marcas temporales de mensajes", "Authentication": "Autenticación", @@ -24,8 +24,8 @@ "Banned users": "Usuarios vetados", "Bans user with given id": "Veta al usuario con la ID dada", "Call Timeout": "Tiempo de Espera de Llamada", - "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "No se puede conectar al servidor doméstico via HTTP, cuando es necesario un enlace HTTPS en la barra de direcciones de tu navegador. Ya sea usando HTTPS o habilitando los scripts inseguros.", - "Change Password": "Cambiar Contraseña", + "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "No se puede conectar al servidor base a través de HTTP, cuando es necesario un enlace HTTPS en la barra de direcciones de tu navegador. Ya sea usando HTTPS o habilitando los scripts inseguros.", + "Change Password": "Cambiar contraseña", "%(senderName)s changed their profile picture.": "%(senderName)s cambió su imagen de perfil.", "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s ha cambiado el nivel de acceso de %(powerLevelDiffText)s.", "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s cambió el nombre de la sala a %(roomName)s.", @@ -41,14 +41,14 @@ "Commands": "Comandos", "Confirm password": "Confirmar contraseña", "Continue": "Continuar", - "Create Room": "Crear Sala", + "Create Room": "Crear sala", "Cryptography": "Criptografía", "Current password": "Contraseña actual", "/ddg is not a command": "/ddg no es un comando", "Deactivate Account": "Desactivar Cuenta", "Decrypt %(text)s": "Descifrar %(text)s", - "Deops user with given id": "Degrada al usuario con la ID dada", - "Default": "Por Defecto", + "Deops user with given id": "Quita el poder de operador al usuario con la ID dada", + "Default": "Por defecto", "Disinvite": "Deshacer invitación", "Displays action": "Hacer una acción", "Download %(text)s": "Descargar %(text)s", @@ -61,7 +61,7 @@ "Existing Call": "Llamada Existente", "Export E2E room keys": "Exportar claves de salas con Cifrado de Extremo a Extremo", "Failed to ban user": "Bloqueo del usuario falló", - "Failed to change password. Is your password correct?": "No se pudo cambiar la contraseña. ¿Estás usando la correcta?", + "Failed to change password. Is your password correct?": "No se ha podido cambiar la contraseña. ¿Has escrito tu contraseña actual correctamente?", "Failed to change power level": "Falló al cambiar de nivel de acceso", "Failed to forget room %(errCode)s": "No se pudo olvidar la sala %(errCode)s", "Failed to join room": "No se pudo unir a la sala", @@ -77,7 +77,7 @@ "Failed to unban": "No se pudo quitar veto", "Failed to verify email address: make sure you clicked the link in the email": "No se pudo verificar la dirección de correo electrónico: asegúrate de hacer clic en el enlace del correo electrónico", "Failure to create room": "No se pudo crear sala", - "Favourite": "Agregar a Favoritos", + "Favourite": "Añadir a favoritos", "Favourites": "Favoritos", "Fill screen": "Llenar pantalla", "Filter room members": "Filtrar miembros de la sala", @@ -86,8 +86,8 @@ "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s a %(toPowerLevel)s", "Guests cannot join this room even if explicitly invited.": "Invitados no pueden unirse a esta sala aun cuando han sido invitados explícitamente.", "Hangup": "Colgar", - "Historical": "Histórico", - "Homeserver is": "El Servidor Doméstico es", + "Historical": "Historial", + "Homeserver is": "El servidor base es", "Identity Server is": "El Servidor de Identidad es", "I have verified my email address": "He verificado mi dirección de correo electrónico", "Import E2E room keys": "Importar claves de salas con Cifrado de Extremo a Extremo", @@ -106,13 +106,13 @@ "Labs": "Laboratorios", "Leave room": "Salir de la sala", "%(targetName)s left the room.": "%(targetName)s salió de la sala.", - "Logout": "Cerrar Sesión", + "Logout": "Cerrar sesión", "Low priority": "Prioridad baja", "Accept": "Aceptar", "Add": "Añadir", "Admin Tools": "Herramientas de administración", - "No Microphones detected": "No se ha detectado micrófono", - "No Webcams detected": "No se ha detectado cámara", + "No Microphones detected": "No se ha detectado un micrófono", + "No Webcams detected": "No se ha detectado una cámara", "Default Device": "Dispositivo por defecto", "Microphone": "Micrófono", "Camera": "Cámara", @@ -121,7 +121,7 @@ "Custom": "Personalizado", "Custom level": "Nivel personalizado", "Decline": "Rechazar", - "Enter passphrase": "Ingresar frase de contraseña", + "Enter passphrase": "Introducir frase de contraseña", "Error: Problem communicating with the given homeserver.": "Error: No es posible comunicar con el servidor doméstico indicado.", "Export": "Exportar", "Failed to fetch avatar URL": "Fallo al obtener la URL del avatar", @@ -144,8 +144,8 @@ "Please select the destination room for this message": "Por favor, seleccione la sala destino para este mensaje", "Create new room": "Crear nueva sala", "Start chat": "Iniciar conversación", - "New Password": "Contraseña Nueva", - "Analytics": "Análisis de Estadísticas", + "New Password": "Contraseña nueva", + "Analytics": "Analítica de datos", "Options": "Opciones", "Passphrases must match": "Las contraseñas deben coincidir", "Passphrase must not be empty": "La contraseña no puede estar en blanco", @@ -192,8 +192,8 @@ "Add a topic": "Añadir un tema", "No media permissions": "Sin permisos para el medio", "You may need to manually permit %(brand)s to access your microphone/webcam": "Probablemente necesite dar permisos manualmente a %(brand)s para su micrófono/cámara", - "Are you sure you want to leave the room '%(roomName)s'?": "¿Está seguro de que desea abandonar la sala '%(roomName)s'?", - "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "No se puede conectar al servidor doméstico - compruebe su conexión, asegúrese de que el certificado SSL del servidor es de confiaza, y compruebe que no hay extensiones del navegador bloqueando las peticiones.", + "Are you sure you want to leave the room '%(roomName)s'?": "¿Seguro que quieres salir de la sala '%(roomName)s'?", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "No se puede conectar al servidor base. Por favor, comprueba tu conexión, asegúrate de que el certificado SSL del servidor es de confiaza, y comprueba que no haya extensiones de navegador bloqueando las peticiones.", "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s eliminó el nombre de la sala.", "Drop File Here": "Deje el fichero aquí", "Join asvoice orvideo .": "Unirse convoz ovídeo .", @@ -213,7 +213,7 @@ "No more results": "No hay más resultados", "No results": "No hay resultados", "No users have specific privileges in this room": "Ningún usuario tiene permisos específicos en esta sala", - "OK": "Correcto", + "OK": "Vale", "olm version:": "versión de olm:", "Only people who have been invited": "Solo personas que han sido invitadas", "Operation failed": "Falló la operación", @@ -239,7 +239,7 @@ "Return to login screen": "Regresar a la pantalla de inicio de sesión", "%(brand)s does not have permission to send you notifications - please check your browser settings": "%(brand)s no tiene permiso para enviarte notificaciones - por favor, comprueba los ajustes de tu navegador", "%(brand)s was not given permission to send notifications - please try again": "No se le dio permiso a %(brand)s para enviar notificaciones - por favor, inténtalo nuevamente", - "%(brand)s version:": "versión de %(brand)s:", + "%(brand)s version:": "Versión de %(brand)s:", "Room %(roomId)s not visible": "La sala %(roomId)s no está visible", "Searches DuckDuckGo for results": "Busca resultados en DuckDuckGo", "Show timestamps in 12 hour format (e.g. 2:30pm)": "Mostrar marcas temporales en formato de 12 horas (ej. 2:30pm)", @@ -310,7 +310,7 @@ "You do not have permission to do that in this room.": "No tienes permiso para realizar esa acción en esta sala.", "You cannot place a call with yourself.": "No puedes realizar una llamada contigo mismo.", "Cannot add any more widgets": "no es posible agregar mas widgets", - "Publish this room to the public in %(domain)s's room directory?": "Desea publicar esta sala al publico en el directorio de salas de %(domain)s?", + "Publish this room to the public in %(domain)s's room directory?": "¿Quieres que esta sala aparezca en el directorio de salas de %(domain)s?", "AM": "AM", "PM": "PM", "The maximum permitted number of widgets have already been added to this room.": "La cantidad máxima de widgets permitida ha sido alcanzada en esta sala.", @@ -326,7 +326,7 @@ "You must register to use this functionality": "Usted debe ser un registrar para usar esta funcionalidad", "You need to be able to invite users to do that.": "Debes ser capaz de invitar usuarios para realizar esa acción.", "You need to be logged in.": "Necesitas haber iniciado sesión.", - "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Tu dirección de correo electrónico no parece estar asociada a una ID de Matrix en este Servidor Doméstico.", + "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Tu dirección de correo electrónico no parece estar asociada a una ID de Matrix en este servidor base.", "You seem to be in a call, are you sure you want to quit?": "Parece estar en medio de una llamada, ¿esta seguro que desea salir?", "You seem to be uploading files, are you sure you want to quit?": "Pareces estar subiendo archivos, ¿seguro que quieres salir?", "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "No podrás deshacer este cambio porque estás promoviendo al usuario para tener el mismo nivel de autoridad que tú.", @@ -358,7 +358,7 @@ "The platform you're on": "La plataforma en la que te encuentras", "The version of %(brand)s": "La version de %(brand)s", "Your language of choice": "El idioma de tu elección", - "Your homeserver's URL": "La URL de tu servidor doméstico", + "Your homeserver's URL": "La URL de tu servidor base", "The information being sent to us to help make %(brand)s better includes:": "La información que se nos envía para ayudarnos a mejorar %(brand)s incluye:", "Whether or not you're using the Richtext mode of the Rich Text Editor": "Estés utilizando o no el modo de Texto Enriquecido del Editor de Texto Enriquecido", "Who would you like to add to this community?": "¿A quién te gustaría añadir a esta comunidad?", @@ -400,7 +400,7 @@ "Messages containing my display name": "Mensajes que contengan mi nombre público", "Messages in one-to-one chats": "Mensajes en conversaciones uno a uno", "Unavailable": "No disponible", - "View Decrypted Source": "Ver Fuente Descifrada", + "View Decrypted Source": "Ver fuente descifrada", "Failed to update keywords": "Error al actualizar las palabras clave", "remove %(name)s from the directory.": "eliminar a %(name)s del directorio.", "Notifications on the following keywords follow rules which can’t be displayed here:": "Las notificaciones de las siguientes palabras clave siguen reglas que no se pueden mostrar aquí:", @@ -460,10 +460,10 @@ "Notify for all other messages/rooms": "Notificar para todos los demás mensajes/salas", "Unable to look up room ID from server": "No se puede buscar el ID de la sala desde el servidor", "Couldn't find a matching Matrix room": "No se encontró una sala Matrix que coincida", - "All Rooms": "Todas las Salas", + "All Rooms": "Todas las salas", "You cannot delete this message. (%(code)s)": "No puedes eliminar este mensaje. (%(code)s)", "Thursday": "Jueves", - "Forward Message": "Reenviar Mensaje", + "Forward Message": "Reenviar mensaje", "Logs sent": "Registros enviados", "Back": "Atrás", "Reply": "Responder", @@ -475,7 +475,7 @@ "Messages in group chats": "Mensajes en conversaciones grupales", "Yesterday": "Ayer", "Error encountered (%(errorDetail)s).": "Error encontrado (%(errorDetail)s).", - "Low Priority": "Prioridad Baja", + "Low Priority": "Prioridad baja", "%(brand)s does not know how to join a room on this network": "%(brand)s no sabe cómo unirse a una sala en esta red", "Set Password": "Establecer contraseña", "Off": "Desactivado", @@ -491,7 +491,7 @@ "Failed to change settings": "Error al cambiar los ajustes", "View Community": "Ver la comunidad", "Developer Tools": "Herramientas de desarrollo", - "View Source": "Ver Fuente", + "View Source": "Ver fuente", "Event Content": "Contenido del Evento", "Unable to fetch notification target list": "No se puede obtener la lista de objetivos de notificación", "Quote": "Citar", @@ -508,10 +508,10 @@ "A call is already in progress!": "¡Ya hay una llamada en curso!", "Permission Required": "Permiso Requerido", "You do not have permission to start a conference call in this room": "No tienes permiso para iniciar una llamada de conferencia en esta sala", - "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s", - "%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(time)s", - "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s", - "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s", + "%(weekDayName)s %(time)s": "%(weekDayName)s a las %(time)s", + "%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s %(day)s de %(monthName)s a las %(time)s", + "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s %(day)s de %(monthName)s del %(fullYear)s", + "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s %(day)s de %(monthName)s del %(fullYear)s a las %(time)s", "Show these rooms to non-members on the community page and room list?": "¿Mostrar estas salas a los que no son miembros en la página de la comunidad y la lista de salas?", "Add rooms to the community": "Añadir salas a la comunidad", "Add to community": "Añadir a la comunidad", @@ -523,10 +523,10 @@ "Missing roomId.": "Falta el Id de sala.", "Ignores a user, hiding their messages from you": "Ignora a un usuario, ocultando sus mensajes", "Ignored user": "Usuario ignorado", - "You are now ignoring %(userId)s": "Ahora está ignorando a %(userId)s", - "Stops ignoring a user, showing their messages going forward": "Deja de ignorar a un usuario, mostrando en adelante sus mensajes", + "You are now ignoring %(userId)s": "Ahora ignoras a %(userId)s", + "Stops ignoring a user, showing their messages going forward": "Deja de ignorar a un usuario, mostrando sus mensajes a partir de ahora", "Unignored user": "Usuario no ignorado", - "You are no longer ignoring %(userId)s": "Ya no está ignorando a %(userId)s", + "You are no longer ignoring %(userId)s": "Ya no ignoras a %(userId)s", "Opens the Developer Tools dialog": "Abre el diálogo de Herramientas de Desarrollador", "%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s cambió su nombre público a %(displayName)s.", "%(senderName)s changed the pinned messages for the room.": "%(senderName)s cambió los mensajes con chincheta en la sala.", @@ -564,7 +564,7 @@ "Jump to read receipt": "Saltar a recibo leído", "Mention": "Mencionar", "Invite": "Invitar", - "Share Link to User": "Compartir Enlace al Usuario", + "Share Link to User": "Compartir enlace al usuario", "Send an encrypted reply…": "Enviar una respuesta cifrada…", "Send an encrypted message…": "Enviar un mensaje cifrado…", "Jump to message": "Ir a mensaje", @@ -589,7 +589,7 @@ "Share room": "Compartir sala", "Community Invites": "Invitaciones a comunidades", "Banned by %(displayName)s": "Vetado por %(displayName)s", - "Muted Users": "Usuarios Silenciados", + "Muted Users": "Usuarios silenciados", "Members only (since the point in time of selecting this option)": "Solo miembros (desde el momento en que se selecciona esta opción)", "Members only (since they were invited)": "Solo miembros (desde que fueron invitados)", "Members only (since they joined)": "Solo miembros (desde que se unieron)", @@ -605,7 +605,7 @@ "New community ID (e.g. +foo:%(localDomain)s)": "Nueva ID de comunidad (ej. +foo:%(localDomain)s)", "URL previews are enabled by default for participants in this room.": "La vista previa de URL se activa por defecto en los participantes de esta sala.", "URL previews are disabled by default for participants in this room.": "La vista previa se desactiva por defecto para los participantes de esta sala.", - "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "En salas cifradas, como ésta, la vista previa de la URL se desactivan por defecto para asegurar que el servidor doméstico (donde se generan) no puede recopilar información de los enlaces que vea en esta sala.", + "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "En salas cifradas como ésta, la vista previa de las URL se desactiva por defecto para asegurar que el servidor base (donde se generan) no puede recopilar información de los enlaces que veas en esta sala.", "URL Previews": "Vista previa de URL", "When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.": "Cuando alguien pone una URL en su mensaje, una vista previa se mostrará para ofrecer información sobre el enlace, tal como título, descripción, y una imagen del sitio Web.", "Error decrypting audio": "Error al descifrar el sonido", @@ -645,7 +645,7 @@ "Filter community rooms": "Filtrar salas de la comunidad", "Something went wrong when trying to get your communities.": "Algo fue mal cuando se intentó obtener sus comunidades.", "Display your community flair in rooms configured to show it.": "Muestra la insignia de su comunidad en las salas configuradas a tal efecto.", - "You're not currently a member of any communities.": "Actualmente no es miembro de una comunidad.", + "You're not currently a member of any communities.": "Actualmente no formas parte de ninguna comunidad.", "Unknown Address": "Dirección desconocida", "Delete Widget": "Eliminar Componente", "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Al borrar un widget se elimina para todos usuarios de la sala. ¿Está seguro?", @@ -732,8 +732,8 @@ "Deactivating your account does not by default cause us to forget messages you have sent. If you would like us to forget your messages, please tick the box below.": "Desactivar tu cuenta no hace que por defecto olvidemos los mensajes que has enviado. Si quieres que olvidemos tus mensajes, por favor marca la casilla a continuación.", "Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.": "La visibilidad de mensajes en Matrix es similar a la del correo electrónico. Que olvidemos tus mensajes implica que los mensajes que hayas enviado no se compartirán con ningún usuario nuevo o no registrado, pero aquellos usuarios registrados que ya tengan acceso a estos mensajes seguirán teniendo acceso a su copia.", "Please forget all messages I have sent when my account is deactivated (Warning: this will cause future users to see an incomplete view of conversations)": "Por favor, olvida todos los mensajes enviados al desactivar mi cuenta. (Advertencia: esto provocará que los usuarios futuros vean conversaciones incompletas)", - "To continue, please enter your password:": "Para continuar, ingresa tu contraseña por favor:", - "Clear Storage and Sign Out": "Borrar Almacenamiento y Cerrar Sesión", + "To continue, please enter your password:": "Para continuar, introduce tu contraseña, por favor:", + "Clear Storage and Sign Out": "Borrar almacenamiento y cerrar sesión", "Send Logs": "Enviar Registros", "Refresh": "Refrescar", "We encountered an error trying to restore your previous session.": "Encontramos un error al intentar restaurar su sesión anterior.", @@ -788,19 +788,19 @@ "You are a member of this community": "Usted es un miembro de esta comunidad", "Who can join this community?": "¿Quién puede unirse a esta comunidad?", "Everyone": "Todo el mundo", - "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!": "Su comunidad no tiene una descripción larga, una página HTML para mostrar a sus miembros.
Pulse aquí para abrir los ajustes y definirla", + "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!": "Tu comunidad no tiene una descripción larga, una página HTML para mostrar a sus miembros.
Pulsa aquí para abrir los ajustes y definirla.", "Long Description (HTML)": "Descripción Larga (HTML)", "Description": "Descripción", "Community %(groupId)s not found": "No se encontraron %(groupId)s de la comunidad", "Failed to load %(groupId)s": "Falló la carga de %(groupId)s", "This room is not public. You will not be able to rejoin without an invite.": "Esta sala no es pública. No podrá volver a unirse sin una invitación.", - "Can't leave Server Notices room": "No puede abandonar la sala Avisos del Servidor", - "This room is used for important messages from the Homeserver, so you cannot leave it.": "La sala se usa para mensajes importantes del Servidor Doméstico, así que no puede abandonarla.", + "Can't leave Server Notices room": "No se puede salir de la sala de avisos del servidor", + "This room is used for important messages from the Homeserver, so you cannot leave it.": "La sala se usa para mensajes importantes del servidor base, así que no puedes abandonarla.", "Terms and Conditions": "Términos y condiciones", - "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "Para continuar usando el servidor doméstico %(homeserverDomain)s debe revisar y estar de acuerdo con nuestros términos y condiciones.", + "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "Para continuar usando el servidor base %(homeserverDomain)s, debes revisar y estar de acuerdo con nuestros términos y condiciones.", "Review terms and conditions": "Revisar términos y condiciones", "Old cryptography data detected": "Se detectó información de criptografía antigua", - "Data from an older version of %(brand)s has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "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.", + "Data from an older version of %(brand)s has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "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.", "Your Communities": "Sus Comunidades", "Did you know: you can use communities to filter your %(brand)s experience!": "Sabía que: puede usar comunidades para filtrar su experiencia con %(brand)s !", "To set up a filter, drag a community avatar over to the filter panel on the far left hand side of the screen. You can click on an avatar in the filter panel at any time to see only the rooms and people associated with that community.": "Para configurar un filtro, arrastre un avatar de comunidad sobre el panel de filtro en la parte izquierda de la pantalla. Puede pulsar sobre un avatar en el panel de filtro en cualquier momento para ver solo las salas y personas asociadas con esa comunidad.", @@ -812,22 +812,22 @@ "%(count)sResend all orcancel all now. You can also select individual messages to resend or cancel.|other": "Reenviar todo ocancelar todo ahora. También puedes seleccionar mensajes individuales para reenviar o cancelar.", "%(count)sResend all orcancel all now. You can also select individual messages to resend or cancel.|one": "Reenviar mensaje ocancelar mensaje ahora.", "Connectivity to the server has been lost.": "Se perdió la conexión con el servidor.", - "Sent messages will be stored until your connection has returned.": "Los mensajes enviados se almacenarán hasta que vuelva su conexión.", + "Sent messages will be stored until your connection has returned.": "Los mensajes enviados se almacenarán hasta que vuelva la conexión.", "Active call": "Llamada activa", "There's no one else here! Would you like toinvite others orstop warning about the empty room ?": "¡No hay nadie aquí! ¿Le gustaríainvitar a otros odejar de advertir sobre la sala vacía ?", "Room": "Sala", "Clear filter": "Borrar filtro", "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Si has enviado un error a GitHub, estos registros pueden ayudar a localizar el problema. Contienen información de uso de la aplicación, incluido el nombre de usuario, IDs o alias de las salas o grupos visitados y los nombres de otros usuarios. No contienen mensajes.", "%(brand)s collects anonymous analytics to allow us to improve the application.": "%(brand)s recopila análisis de estadísticas anónimas para permitirnos mejorar la aplicación.", - "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "La privacidad es importante, por lo que no se recopila información personal o identificable en los análisis de estadísticas.", + "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "La privacidad es importante para nosotros, por lo que no se recopila información personal o identificable en los análisis de estadísticas.", "Learn more about how we use analytics.": "Más información sobre el uso de los análisis de estadísticas.", "Check for update": "Comprobar actualizaciones", "Start automatically after system login": "Ejecutar automáticamente después de iniciar sesión en el sistema", "No Audio Outputs detected": "No se detectaron Salidas de Sonido", "Audio Output": "Salida de Sonido", "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Se envió un correo electrónico a %(emailAddress)s. Una vez hayas seguido el enlace que contiene, haz clic a continuación.", - "Please note you are logging into the %(hs)s server, not matrix.org.": "Por favor, tenga en cuenta que está ingresando en el servidor %(hs)s, no en matrix.org.", - "This homeserver doesn't offer any login flows which are supported by this client.": "Este servidor doméstico no ofrece flujos de ingreso soportados por este cliente.", + "Please note you are logging into the %(hs)s server, not matrix.org.": "Por favor, ten en cuenta que estás iniciando sesión en el servidor %(hs)s, y no en matrix.org.", + "This homeserver doesn't offer any login flows which are supported by this client.": "Este servidor base no ofrece ningún flujo de inicio de sesión soportado por este cliente.", "Set a display name:": "Establece un nombre público:", "Upload an avatar:": "Subir un avatar:", "This server does not support authentication with a phone number.": "Este servidor no es compatible con autenticación mediante número telefónico.", @@ -839,20 +839,20 @@ "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "El archivo exportado estará protegido con una contraseña. Deberías ingresar la contraseña aquí para descifrar el archivo.", "Only room administrators will see this warning": "Sólo los administradores de la sala verán esta advertencia", "Please contact your service administrator to continue using the service.": "Por favor, contacta al administrador de tu servicio para continuar utilizando el servicio.", - "This homeserver has hit its Monthly Active User limit.": "Este servidor doméstico ha alcanzado su límite Mensual de Usuarios Activos.", - "This homeserver has exceeded one of its resource limits.": "Este servidor doméstico ha excedido uno de sus límites de recursos.", + "This homeserver has hit its Monthly Active User limit.": "Este servidor base ha alcanzado su límite mensual de usuarios activos.", + "This homeserver has exceeded one of its resource limits.": "Este servidor base ha excedido uno de sus límites de recursos.", "Upgrade Room Version": "Actualizar Versión de la Sala", "Create a new room with the same name, description and avatar": "Crear una sala nueva con el mismo nombre, descripción y avatar", "Update any local room aliases to point to the new room": "Actualizar los alias locales de la sala para que apunten a la nueva", "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Impedir a los usuarios que conversen en la versión antigua de la sala, y publicar un mensaje aconsejándoles que se muden a la nueva", "Put a link back to the old room at the start of the new room so people can see old messages": "Poner un enlace de retorno a la sala antigua al principio de la nueva de modo que se puedan ver los mensajes viejos", - "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "Tu mensaje no se envió porque este servidor doméstico ha alcanzado su Límite Mensual de Usuarios Activos. Por favor, contacta al administrador de tu servicio para continuar utilizando el servicio.", - "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Su mensaje no se envió porque este servidor doméstico ha excedido un límite de recursos. Por favor contacta al administrador de tu servicio para continuar utilizando el servicio.", + "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "Tu mensaje no se ha enviado porque este servidor base ha alcanzado su límite mensual de usuarios activos. Por favor, contacta con el administrador de tu servicio para continuar utilizándolo.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "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.", "Please contact your service administrator to continue using this service.": "Por favor, contacta al administrador de tu servicio para continuar utilizando este servicio.", "System Alerts": "Alertas de Sistema", "Forces the current outbound group session in an encrypted room to be discarded": "Obliga a que la sesión de salida grupal actual en una sala cifrada se descarte", - "Sorry, your homeserver is too old to participate in this room.": "Lo sentimos, tu servidor doméstico es demasiado antiguo para participar en esta sala.", - "Please contact your homeserver administrator.": "Por favor contacta al administrador de tu servidor doméstico.", + "Sorry, your homeserver is too old to participate in this room.": "Lo sentimos, tu servidor base tiene una versión demasiado antigua como para participar en esta sala.", + "Please contact your homeserver administrator.": "Por favor, contacta con la administración de tu servidor base.", "This room has been replaced and is no longer active.": "Esta sala ha sido reemplazada y ya no está activa.", "The conversation continues here.": "La conversación continúa aquí.", "This room is a continuation of another conversation.": "Esta sala es una continuación de otra conversación.", @@ -861,7 +861,7 @@ "The room upgrade could not be completed": "La actualización de la sala no pudo ser completada", "Upgrade this room to version %(version)s": "Actualiza esta sala a la versión %(version)s", "Legal": "Legal", - "Unable to connect to Homeserver. Retrying...": "No es posible conectarse al Servidor Doméstico. Volviendo a intentar...", + "Unable to connect to Homeserver. Retrying...": "No ha sido posible conectarse al servidor base. Volviendo a intentar...", "%(senderName)s set the main address for this room to %(address)s.": "%(senderName)s estableció la dirección principal para esta sala como %(address)s.", "%(senderName)s removed the main address for this room.": "%(senderName)s eliminó la dirección principal para esta sala.", "%(brand)s now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!": "%(brand)s ahora utiliza de 3 a 5 veces menos memoria, porque solo carga información sobre otros usuarios cuando es necesario. Por favor, ¡aguarda mientras volvemos a sincronizar con el servidor!", @@ -872,7 +872,7 @@ "Room information": "Información de la sala", "Room Topic": "Tema de la sala", "Theme": "Tema", - "Voice & Video": "Voz y video", + "Voice & Video": "Voz y vídeo", "Gets or sets the room topic": "Obtiene o establece el tema de la sala", "This room has no topic.": "Esta sala no tiene tema.", "Sets the room name": "Establece el nombre de la sala", @@ -1043,9 +1043,9 @@ "For help with using %(brand)s, click here.": "Si necesitas ayuda usando %(brand)s, haz clic aquí.", "For help with using %(brand)s, click here or start a chat with our bot using the button below.": "Si necesitas ayuda usando %(brand)s, haz clic aquí o abre un chat con nuestro bot usando el botón de abajo.", "Chat with %(brand)s Bot": "Hablar con %(brand)s Bot", - "Help & About": "Ayuda & Acerca de", - "Bug reporting": "Reportar error", - "FAQ": "FAQ", + "Help & About": "Ayuda y acerca de", + "Bug reporting": "Informar de un fallo", + "FAQ": "Preguntas frecuentes", "Versions": "Versiones", "Preferences": "Opciones", "Room list": "Lista de salas", @@ -1130,8 +1130,8 @@ "Got It": "Entendido", "Scissors": "Tijeras", "Call failed due to misconfigured server": "Llamada fallida debido a la mala configuración del servidor", - "Please ask the administrator of your homeserver (%(homeserverDomain)s
) to configure a TURN server in order for calls to work reliably.": "Por favor pídele al administrador de tu servidor doméstico (%(homeserverDomain)s
) que configure un servidor TURN para que las llamadas funcionen correctamente.", - "Alternatively, you can try to use the public server atturn.matrix.org
, but this will not be as reliable, and it will share your IP address with that server. You can also manage this in Settings.": "Alternativamente, puedes tratar de usar el servidor público enturn.matrix.org
, pero éste no será igual de confiable, y compartirá tu dirección IP con ese servidor. También puedes administrar esto en Ajustes.", + "Please ask the administrator of your homeserver (%(homeserverDomain)s
) to configure a TURN server in order for calls to work reliably.": "Por favor, pídele al administrador de tu servidor base (%(homeserverDomain)s
) que configure un servidor TURN para que las llamadas funcionen correctamente.", + "Alternatively, you can try to use the public server atturn.matrix.org
, but this will not be as reliable, and it will share your IP address with that server. You can also manage this in Settings.": "Como alternativa, puedes intentar usar el servidor públicoturn.matrix.org
, pero éste no será igual de confiable, y compartirá tu dirección IP con ese servidor. También puedes configurar esto en ajustes.", "Try using turn.matrix.org": "Trata de usar turn.matrix.org", "Messages": "Mensajes", "Actions": "Acciones", @@ -1141,7 +1141,7 @@ "Changes the avatar of the current room": "Cambia el ávatar de la sala actual", "Use an identity server": "Usar un servidor de identidad", "Use an identity server to invite by email. Click continue to use the default identity server (%(defaultIdentityServerName)s) or manage in Settings.": "Usar un servidor de identidad para invitar por correo. Presiona continuar par usar el servidor de identidad por defecto (%(defaultIdentityServerName)s) o adminístralo en Ajustes.", - "Use an identity server to invite by email. Manage in Settings.": "Usar un servidor de identidad para invitar por correo. Administrar en Ajustes.", + "Use an identity server to invite by email. Manage in Settings.": "Usar un servidor de identidad para invitar por correo. Gestiónalo en ajustes.", "Adds a custom widget by URL to the room": "Añade un widget personalizado por URL a la sala", "Please supply a https:// or http:// widget URL": "Por favor provisiona un URL de widget de http:// o https://", "You cannot modify widgets in this room.": "No puedes modificar widgets en esta sala.", @@ -1162,7 +1162,7 @@ "%(senderName)s placed a video call. (not supported by this browser)": "%(senderName)s hizo una llamada de vídeo (no soportada por este navegador)", "%(name)s (%(userId)s)": "%(name)s (%(userId)s)", "Try out new ways to ignore people (experimental)": "Pruebe nuevas formas de ignorar a usuarios (experimental)", - "Match system theme": "Utilizar el mismo tema del sistema", + "Match system theme": "Utilizar el mismo tema que el sistema", "Show previews/thumbnails for images": "Mostrar vistas previas para las imágenes", "When rooms are upgraded": "Cuando las salas son actualizadas", "My Ban List": "Mi lista de baneos", @@ -1170,7 +1170,7 @@ "Decline (%(counter)s)": "Declinar (%(counter)s)", "Acceptto continue:": "Aceptar para continuar:", "ID": "Identificación", - "Public Name": "Nombre Público", + "Public Name": "Nombre público", "Connecting to integration manager...": "Conectando al gestor de integraciones...", "Cannot connect to integration manager": "No se puede conectar al gestor de integraciones", "The integration manager is offline or it cannot reach your homeserver.": "El gestor de integraciones está desconectado o no puede conectar con su servidor.", @@ -1185,7 +1185,7 @@ "You have %(count)s unread notifications in a prior version of this room.|one": "Tiene %(count)s notificaciones sin leer en una versión anterior de esta sala.", "Setting up keys": "Configurando claves", "Verify this session": "Verificar esta sesión", - "Encryption upgrade available": "Mejora de encriptación disponible", + "Encryption upgrade available": "Mejora de cifrado disponible", "Set up encryption": "Configurar la encriptación", "Verifies a user, session, and pubkey tuple": "Verifica a un usuario, sesión y tupla de clave pública", "Unknown (user, session) pair:": "Par (usuario, sesión) desconocido:", @@ -1213,7 +1213,7 @@ "Channel: %(channelName)s": "Canal: %(channelName)s", "Show less": "Mostrar menos", "Show more": "Mostrar más", - "Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Cambiar la contraseña reiniciará cualquier clave de encriptación end-to-end en todas las sesiones, haciendo el historial de conversaciones encriptado ilegible, a no ser que primero exportes tus claves de sala y después las reimportes. En un futuro esto será mejorado.", + "Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Cambiar la contraseña reiniciará cualquier clave de cifrado end-to-end en todas las sesiones, haciendo el historial de conversaciones encriptado ilegible, a no ser que primero exportes tus claves de sala y después las reimportes. En un futuro esto será mejorado.", "in memory": "en memoria", "not found": "no encontrado", "Identity Server (%(server)s)": "Servidor de Identidad %(server)s", @@ -1226,7 +1226,7 @@ "Do not use an identity server": "No usar un servidor de identidad", "Enter a new identity server": "Introducir un servidor de identidad nuevo", "Change": "Cambiar", - "Manage integrations": "Administrar integraciones", + "Manage integrations": "Gestionar integraciones", "Integration Managers receive configuration data, and can modify widgets, send room invites, and set power levels on your behalf.": "Los administradores de integración reciben datos de configuración, y pueden modificar widgets, enviar invitaciones de sala, y establecer niveles de poder en tu nombre.", "Something went wrong trying to invite the users.": "Algo salió mal al intentar invitar a los usuarios.", "We couldn't invite those users. Please check the users you want to invite and try again.": "No se pudo invitar a esos usuarios. Por favor, revisa los usuarios que quieres invitar e inténtalo de nuevo.", @@ -1242,17 +1242,17 @@ "Clear cache and resync": "Limpiar la caché y resincronizar", "I don't want my encrypted messages": "No quiero mis mensajes cifrados", "Manually export keys": "Exportar claves manualmente", - "You'll lose access to your encrypted messages": "Perderás acceso a tus mensajes encriptados", + "You'll lose access to your encrypted messages": "Perderás acceso a tus mensajes cifrados", "Are you sure you want to sign out?": "¿Estás seguro de que quieres salir?", "Message edits": "Ediciones del mensaje", "New session": "Nueva sesión", - "Use this session to verify your new one, granting it access to encrypted messages:": "Usa esta sesión para verificar tu nueva sesión, dándole acceso a mensajes encriptados:", + "Use this session to verify your new one, granting it access to encrypted messages:": "Usa esta sesión para verificar la nueva, dándole acceso a mensajes cifrados:", "If you didn’t sign in to this session, your account may be compromised.": "Si no te conectaste a esta sesión, es posible que tu cuenta haya sido comprometida.", "This wasn't me": "No fui yo", "If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.": "Si encuentras algún error o quieres compartir una opinión, por favor, contacta con nosotros en GitHub.", "Report bugs & give feedback": "Reportar errores y compartir mi opinión", "Please fill why you're reporting.": "Por favor, explica por qué estás reportando.", - "Report Content to Your Homeserver Administrator": "Reportar contenido a tu administrador del Servidor Doméstico", + "Report Content to Your Homeserver Administrator": "Reportar contenido al administrador de tu servidor base", "Send report": "Enviar reporte", "Room Settings - %(roomName)s": "Configuración de la sala - %(roomName)s", "Upgrading this room requires closing down the current instance of the room and creating a new room in its place. To give room members the best possible experience, we will:": "Actualizar esta sala requiere cerrar la instancia actual de esta sala y crear una nueva sala en su lugar. Para dar a los miembros de la sala la mejor experiencia, haremos lo siguiente:", @@ -1262,13 +1262,13 @@ "Upgrading a room is an advanced action and is usually recommended when a room is unstable due to bugs, missing features or security vulnerabilities.": "Actualizar una sala es una acción avanzada y es normalmente recomendada cuando una sala es inestable debido a fallos, funcionalidades no disponibles y vulnerabilidades.", "This usually only affects how the room is processed on the server. If you're having problems with your %(brand)s, please report a bug.": "Esto solo afecta a como la sala es procesada en el servidor. Si estás teniendo problemas con tu %(brand)s, por favorreporta un fallo.", "You'll upgrade this room from to .": "Actualizarás esta sala de a .", - "Sign out and remove encryption keys?": "¿Salir y borrar las claves de encriptación?", + "Sign out and remove encryption keys?": "¿Salir y borrar las claves de cifrado?", "A username can only contain lower case letters, numbers and '=_-./'": "Un nombre de usuario solo puede contener letras minúsculas, números y '=_-./'", "Checking...": "Comprobando...", "This will allow you to return to your account after signing out, and sign in on other sessions.": "Esto te permitirá volver a tu cuenta después de desconectarte, y conectarte en otras sesiones.", "To help us prevent this in future, please send us logs.": "Para ayudarnos a prevenir esto en el futuro, por favor, envíanos logs.", "Missing session data": "Faltan datos de sesión", - "Some session data, including encrypted message keys, is missing. Sign out and sign in to fix this, restoring keys from backup.": "Algunos datos de sesión, incluyendo claves de mensaje encriptadas, no se encuentran. Desconéctate y vuelve a conectarte para solucionarlo, reestableciendo las claves desde el backup.", + "Some session data, including encrypted message keys, is missing. Sign out and sign in to fix this, restoring keys from backup.": "Algunos datos de sesión, incluyendo claves de mensajes cifrados, no se encuentran. Desconéctate y vuelve a conectarte para solucionarlo, restableciendo las claves desde la copia de seguridad.", "Your browser likely removed this data when running low on disk space.": "Tu navegador probablemente borró estos datos cuando tenía poco espacio de disco.", "Find others by phone or email": "Encontrar a otros por teléfono o email", "Be found by phone or email": "Ser encontrado por teléfono o email", @@ -1279,7 +1279,7 @@ "Summary": "Resumen", "Document": "Documento", "Next": "Siguiente", - "Upload files (%(current)s of %(total)s)": "Subir archivos (%(current)s de %(total)s)", + "Upload files (%(current)s of %(total)s)": "Subir archivos (%(current)s de %(total)s)", "Upload files": "Subir archivos", "Upload all": "Subir todo", "This file is too large to upload. The file size limit is %(limit)s but this file is %(sizeOfThisFile)s.": "Este archivo es demasiado grande para subirse. El limite de tamaño de archivo es %(limit)s pero el archivo es %(sizeOfThisFile)s.", @@ -1365,11 +1365,11 @@ "Delete %(count)s sessions|other": "Borrar %(count)s sesiones", "Delete %(count)s sessions|one": "Borrar %(count)s sesión", "rooms.": "salas.", - "Manage": "Administrar", + "Manage": "Gestionar", "Enable": "Activar", "This session is backing up your keys. ": "Esta sesión está haciendo una copia de seguridad de tus claves. ", "not stored": "no almacenado", - "Message search": "Busqueda de mensajes", + "Message search": "Búsqueda de mensajes", "Upgrade this room to the recommended room version": "Actualizar esta sala a la versión de sala recomendada", "this room": "esta sala", "View older messages in %(roomName)s.": "Ver mensajes más antiguos en %(roomName)s.", @@ -1435,7 +1435,7 @@ "Whether you're using %(brand)s as an installed Progressive Web App": "Si estás usando %(brand)s como una Aplicación Web Progresiva instalada", "If you cancel now, you won't complete your operation.": "Si cancela ahora, no completará la operación.", "Review where you’re logged in": "Revise dónde hizo su registro", - "New login. Was this you?": "Nuevo registro. ¿Fuiste tú?", + "New login. Was this you?": "Nuevo inicio de sesión. ¿Has sido tú?", "%(name)s is requesting verification": "%(name)s solicita verificación", "Sign In or Create Account": "Iniciar sesión o Crear una cuenta", "Use your account or create a new one to continue.": "Usa tu cuenta existente o crea una nueva para continuar.", @@ -1444,7 +1444,7 @@ "Sends a message as html, without interpreting it as markdown": "Envía un mensaje como html, sin interpretarlo en markdown", "Failed to set topic": "No se ha podido establecer el tema", "Command failed": "El comando falló", - "Could not find user in room": "No pude encontrar el usuario en la sala", + "Could not find user in room": "No se ha encontrado el usuario en la sala", "Please supply a widget URL or embed code": "Por favor, proporcione una URL del widget o un código de incrustación", "Displays information about a user": "Muestra información sobre un usuario", "Send a bug report with logs": "Envíe un informe de errores con los registros", @@ -1469,7 +1469,7 @@ "Order rooms by name": "Ordenar las salas por nombre", "Show rooms with unread notifications first": "Mostrar primero las salas con notificaciones no leídas", "Show shortcuts to recently viewed rooms above the room list": "Mostrar atajos a las salas recientemente vistas por encima de la lista de salas", - "Allow fallback call assist server turn.matrix.org when your homeserver does not offer one (your IP address would be shared during a call)": "Permitir el servidor de respaldo de asistencia de llamadas turn.matrix.org cuando su servidor doméstico no lo ofrece (su dirección IP se compartiría durante una llamada)", + "Allow fallback call assist server turn.matrix.org when your homeserver does not offer one (your IP address would be shared during a call)": "Permitir el servidor de respaldo de asistencia de llamadas turn.matrix.org cuando tu servidor base no lo ofrezca (tu dirección IP se compartiría durante una llamada)", "Send read receipts for messages (requires compatible homeserver to disable)": "Enviar recibos de lectura de mensajes (requiere un servidor local compatible para desactivarlo)", "Manually verify all remote sessions": "Verificar manualmente todas las sesiones remotas", "Confirm the emoji below are displayed on both sessions, in the same order:": "Confirma que los emoji de abajo se muestran en el mismo orden en ambas sesiones:", @@ -1478,11 +1478,11 @@ "Cancelling…": "Anulando…", "Verify all your sessions to ensure your account & messages are safe": "Verifica todas tus sesiones abiertas para asegurarte de que tu cuenta y tus mensajes estén seguros", "Set up": "Configurar", - "Verify the new login accessing your account: %(name)s": "Verifique el nuevo ingreso que está accediendo a su cuenta: %(name)s", + "Verify the new login accessing your account: %(name)s": "Verifica el nuevo inicio de sesión que está accediendo a tu cuenta: %(name)s", "From %(deviceName)s (%(deviceId)s)": "De %(deviceName)s (%(deviceId)s)", "This bridge was provisioned by .": "Este puente fue aportado por .", "This bridge is managed by .": "Este puente es administrado por .", - "Your homeserver does not support cross-signing.": "Tu servidor doméstico no soporta las firmas cruzadas.", + "Your homeserver does not support cross-signing.": "Tu servidor base no soporta las firmas cruzadas.", "Cross-signing and secret storage are enabled.": "La firma cruzada y el almacenamiento secreto están activados.", "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "Su cuenta tiene una identidad de firma cruzada en un almacenamiento secreto, pero aún no es confiada en esta sesión.", "Cross-signing and secret storage are not yet set up.": "Las firmas cruzadas y el almacenamiento secreto aún no han sido configurados.", @@ -1515,20 +1515,20 @@ "This session is not backing up your keys, but you do have an existing backup you can restore from and add to going forward.": "Esta sesión no ha creado una copia de seguridad de tus llaves, pero tienes una copia de seguridad existente de la que puedes restaurar y añadir para proceder.", "Connect this session to key backup before signing out to avoid losing any keys that may only be on this session.": "Conecte esta sesión a la copia de seguridad de las claves antes de firmar y así evitar perder las claves que sólo existen en esta sesión.", "Connect this session to Key Backup": "Conecte esta sesión a la copia de respaldo de tu clave", - "Backup has a valid signature from this user": "La copia de seguridad tiene una firma devalido de este usuario", + "Backup has avalid signature from this user": "La copia de seguridad tiene una firma devalido de este usuario", "Backup has ainvalid signature from this user": "La copia de seguridad tiene una firma deno_valida de este usuario", "Backup has a signature fromunknown user with ID %(deviceId)s": "La copia de seguridad tiene una firma dedesconocido del usuario con ID %(deviceId)s", "Backup has a signature fromunknown session with ID %(deviceId)s": "La copia de seguridad tiene una firma dedesconocido de la sesión con ID %(deviceId)s", "Backup has avalid signature from this session": "La copia de seguridad tiene una firmaválida de esta sesión", "Backup has aninvalid signature from this session": "La copia de seguridad tiene una firmano_válida de esta sesión", - "Backup has avalid signature fromverified session": "La copia de seguridad tiene una firma válida deverificada sesión", - "Backup has a valid signature fromunverified session": "La copia de seguridad tiene una firma de válida de sesiónno verificada ", - "Backup has an invalid signature fromverified session": "La copia de seguridad tiene una firma de no válida de sesiónverificada ", - "Backup has an invalid signature fromunverified session": "La copia de seguridad tiene una firma de no válida de sesiónno verificada ", + "Backup has a valid signature fromverified session": "La copia de seguridad tiene una firma válida deverificada sesión", + "Backup has a valid signature fromunverified session": "La copia de seguridad tiene una firma de válida de sesiónno verificada ", + "Backup has an invalid signature fromverified session": "La copia de seguridad tiene una firma de no válida de sesiónverificada ", + "Backup has an invalid signature fromunverified session": "La copia de seguridad tiene una firma de no válida de sesiónno verificada ", "Upgrade to your own domain": "Actualizar a su propio dominio", "Identity Server URL must be HTTPS": "La URL del servidor de identidad debe ser tipo HTTPS", "Not a valid Identity Server (status code %(code)s)": "No es un servidor de identidad válido (código de estado %(code)s)", - "Could not connect to Identity Server": "No se pudo conectar al Servidor de Identidad", + "Could not connect to Identity Server": "No se ha podido conectar al servidor de identidad", "You should remove your personal data from identity server before disconnecting. Unfortunately, identity server is currently offline or cannot be reached.": "Usted debe eliminar sus datos personales del servidor de identidad antes de desconectarse. Desafortunadamente, el servidor de identidad está actualmente desconectado o es imposible comunicarse con él por otra razón.", "check your browser plugins for anything that might block the identity server (such as Privacy Badger)": "comprueba los complementos (plugins) de tu navegador para ver si hay algo que pueda bloquear el servidor de identidad (como p.ej. Privacy Badger)", "contact the administrators of identity server ": "contactar con los administradores del servidor de identidad ", @@ -1537,14 +1537,14 @@ "You are still sharing your personal data on the identity server .": "Usted todavía está compartiendo sus datos personales en el servidor de identidad .", "We recommend that you remove your email addresses and phone numbers from the identity server before disconnecting.": "Le recomendamos que elimine sus direcciones de correo electrónico y números de teléfono del servidor de identidad antes de desconectarse.", "Go back": "Atrás", - "Use an Integration Manager (%(serverName)s) to manage bots, widgets, and sticker packs.": "Usar un Administrador de Integración (%(serverName)s) para manejar los bots, los widgets y los paquetes de pegatinas.", + "Use an Integration Manager (%(serverName)s) to manage bots, widgets, and sticker packs.": "Usar un gestor de integraciones (%(serverName)s) para manejar los bots, widgets y paquetes de pegatinas.", "Use an Integration Manager to manage bots, widgets, and sticker packs.": "Utiliza un Administrador de Integración para gestionar los bots, los widgets y los paquetes de pegatinas.", "Invalid theme schema.": "Esquema de tema inválido.", "Error downloading theme information.": "Error al descargar la información del tema.", "Theme added!": "¡Se añadió el tema!", "Custom theme URL": "URL de tema personalizado", "Add theme": "Añadir tema", - "To report a Matrix-related security issue, please read the Matrix.org Security Disclosure Policy.": "Para informar de un problema de seguridad relacionado con Matrix, por favor lea Security Disclosure Policy de Matrix.or.", + "To report a Matrix-related security issue, please read the Matrix.org Security Disclosure Policy.": "Para informar de un problema de seguridad relacionado con Matrix, por favor lea Security Disclosure Policy de Matrix.or.", "Keyboard Shortcuts": "Atajos de teclado", "Customise your experience with experimental labs features. Learn more.": "Personaliza tu experiencia con las funciones de los laboratorios experimentales. Learn more.", "Something went wrong. Please try again or view your console for hints.": "Algo salió mal. Por favor, inténtalo de nuevo o mira tu consola para encontrar pistas.", @@ -1562,12 +1562,12 @@ "Composer": "Compositor", "Timeline": "Línea de tiempo", "Read Marker lifetime (ms)": "Permanencia del marcador de lectura (en ms)", - "Read Marker off-screen lifetime (ms)": "Permanencia del marcador de lectura fuera de la pantalla (en ms)", + "Read Marker off-screen lifetime (ms)": "Permanencia del marcador de lectura fuera de la pantalla (en ms)", "Session ID:": "Identidad (ID) de sesión:", "Session key:": "Código de sesión:", "Accept all %(invitedRooms)s invites": "Aceptar todas las invitaciones de %(invitedRooms)s", - "Cross-signing": "Firmar cruzada", - "Where you’re logged in": "En el lugar de ingreso (registro)", + "Cross-signing": "Firma cruzada", + "Where you’re logged in": "Sesiones", "Manage the names of and sign out of your sessions below or verify them in your User Profile.": "Administre los nombres de sus sesiones y salga de las sesiones abajo o verifíquelos en su Perfil de Usuario.", "A session's public name is visible to people you communicate with": "El nombre público de una sesión es visible para las personas con las que te comunicas", "This room is bridging messages to the following platforms. Learn more.": "Esta sala está haciendo puente con las siguientes plataformas. Aprende más.", @@ -1582,7 +1582,7 @@ "Discovery options will appear once you have added an email above.": "Las opciones de descubrimiento aparecerán una vez que haya añadido un correo electrónico arriba.", "Unable to revoke sharing for phone number": "No se logró revocar el intercambio de un número de teléfono", "Unable to share phone number": "No se logró compartir el número de teléfono", - "Please enter verification code sent via text.": "Por favor, introduzca el código de verificación enviado por mensaje de texto.", + "Please enter verification code sent via text.": "Por favor, introduce el código de verificación enviado por SMS.", "Discovery options will appear once you have added a phone number above.": "Las opciones de descubrimiento aparecerán una vez que haya añadido un número de teléfono arriba.", "Remove %(phone)s?": "¿Eliminar %(phone)s?", "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains.": "Se ha enviado un mensaje de texto a +%(msisdn)s. Por favor, introduzca el código de verificación que contiene.", @@ -1590,19 +1590,19 @@ "You have not verified this user.": "No has verificado a este usuario.", "You have verified this user. This user has verified all of their sessions.": "Usted ha verificado este usuario. Este usuario ha verificado todas sus sesiones.", "Someone is using an unknown session": "Alguien está usando una sesión desconocida", - "This room is end-to-end encrypted": "Esta sala usa encriptación de extremo a extremo", + "This room is end-to-end encrypted": "Esta sala usa cifrado de extremo a extremo", "Everyone in this room is verified": "Todos los participantes en esta sala están verificados", "Edit message": "Editar mensaje", "Mod": "Mod", "Your key share request has been sent - please check your other sessions for key share requests.": "Su solicitud de intercambio de claves ha sido enviada. Por favor, compruebe en sus otras sesiones si hay solicitudes de intercambio de claves.", "Key share requests are sent to your other sessions automatically. If you rejected or dismissed the key share request on your other sessions, click here to request the keys for this session again.": "Solicitudes para compartir claves son enviadas a sus otras sesiones de forma automática. Si ha rechazado o descartado la solicitud de compartir claves en sus otras sesiones, haga clic aquí para solicitar de nuevo las claves de esta sesión.", - "If your other sessions do not have the key for this message you will not be able to decrypt them.": "Si sus otras sesiones no tienen la clave para este mensaje no podrás desencriptarlas.", + "If your other sessions do not have the key for this message you will not be able to decrypt them.": "Si tus otras sesiones no tienen la clave para este mensaje no podrán descifrarlo.", "Rotate counter-clockwise": "Girar en sentido contrario a las agujas del reloj", "Rotate Right": "Girar a la derecha", "Rotate clockwise": "Girar en el sentido de las agujas del reloj", "Language Dropdown": "Lista selección de idiomas", "%(severalUsers)smade no changes %(count)s times|other": "%(severalUsers)s %(count)s veces no efectuarion cambios", - "%(severalUsers)smade no changes %(count)s times|one": "%(severalUsers)s no efectuaron cambios", + "%(severalUsers)smade no changes %(count)s times|one": "%(severalUsers)s no efectuaron cambios", "%(oneUser)smade no changes %(count)s times|other": "%(oneUser)s %(count)s veces no efectuó cambios", "%(oneUser)smade no changes %(count)s times|one": "%(oneUser)s no efectuó cambios", "Power level": "Nivel de poder", @@ -1614,7 +1614,7 @@ "Can't find this server or its room list": "No puedo encontrar este servidor o su lista de salas", "All rooms": "Todas las salas", "Your server": "Tu", - "Are you sure you want to remove %(serverName)s": "¿Está seguro de querer eliminar %(serverName)s ?", + "Are you sure you want to remove %(serverName)s": "¿Estás seguro de querer eliminar %(serverName)s?", "Remove server": "Quitar servidor", "Matrix": "Matrix", "Add a new server": "Añadir un nuevo servidor", @@ -1623,7 +1623,7 @@ "Add a new server...": "Añade un nuevo servidor ...", "%(networkName)s rooms": "%(networkName)s sala", "Matrix rooms": "Salas de Matrix", - "Use an identity server to invite by email. Use the default (%(defaultIdentityServerName)s) or manage inSettings .": "Usar un Servidor de Identidad para invitar vía correo electrónico.. Use (%(defaultIdentityServerName)s) o seleccione enAjustes .", + "Use an identity server to invite by email.Use the default (%(defaultIdentityServerName)s) or manage inSettings .": "Usar un servidor de identidad para invitar vía correo electrónico.. Usar (%(defaultIdentityServerName)s) o seleccione enAjustes .", "Use an identity server to invite by email. Manage inSettings .": "Utilice un servidor de identidad para invitar por correo electrónico. Gestionar enAjustes .", "Close dialog": "Cerrar diálogo", "Please tell us what went wrong or, better, create a GitHub issue that describes the problem.": "Por favor, díganos qué salió mal o, mejor aún, cree un reporte de GitHub que describa el problema.", @@ -1633,21 +1633,21 @@ "If there is additional context that would help in analysing the issue, such as what you were doing at the time, room IDs, user IDs, etc., please include those things here.": "Si hay algún contexto adicional que ayude a analizar el tema, como por ejemplo lo que estaba haciendo en ese momento, nombre (ID) de sala, nombre (ID)de usuario, etc., por favor incluya esas cosas aquí.", "Removing…": "Quitando…", "Destroy cross-signing keys?": "¿Destruir las claves de firma cruzada?", - "Deleting cross-signing keys is permanent. Anyone you have verified with will see security alerts. You almost certainly don't want to do this, unless you've lost every device you can cross-sign from.": "La eliminación de claves de firma cruzada es definitiva. Cualquiera con el que lo hayas verificado verá alertas de seguridad. Es casi seguro que no quieres hacer esto, a menos que hayas perdido todos los dispositivos puedas usar hacer una firma cruzada.", + "Deleting cross-signing keys is permanent. Anyone you have verified with will see security alerts. You almost certainly don't want to do this, unless you've lost every device you can cross-sign from.": "La eliminación de claves de firma cruzada es definitiva. Cualquiera con el que lo hayas verificado verá alertas de seguridad. Es casi seguro que no quieres hacer esto, a menos que hayas perdido todos los dispositivos puedas usar hacer una firma cruzada.", "Clear cross-signing keys": "Borrar claves de firma cruzada", "Clear all data in this session?": "¿Borrar todos los datos en esta sesión?", - "Clearing all data from this session is permanent. Encrypted messages will be lost unless their keys have been backed up.": "La eliminación de todos los datos de esta sesión es definitiva. Los mensajes encriptados se perderán a menos que se haya hecho una copia de seguridad de sus claves.", + "Clearing all data from this session is permanent. Encrypted messages will be lost unless their keys have been backed up.": "La eliminación de todos los datos de esta sesión es definitiva. Los mensajes cifrados se perderán, a menos que se haya hecho una copia de seguridad de sus claves.", "Clear all data": "Borrar todos los datos", "Please enter a name for the room": "Por favor, introduzca un nombre para la sala", "This room is private, and can only be joined by invitation.": "Esta sala es privada, y sólo se puede acceder a ella por invitación.", - "Enable end-to-end encryption": "Habilitar la encriptación de extremo a extremo", + "Enable end-to-end encryption": "Activar el cifrado de extremo a extremo", "You can’t disable this later. Bridges & most bots won’t work yet.": "No puedes deshabilitar esto después. Los puentes y la mayoría de los bots no funcionarán todavía.", "Create a public room": "Crear una sala pública", - "Create a private room": "Crear una sala pública", + "Create a private room": "Crear una sala privada", "Topic (optional)": "Tema (opcional)", "Make this room public": "Convierte esta sala en pública", - "Hide advanced": "Ocultar avanzado", - "Show advanced": "Mostrar avanzado", + "Hide advanced": "Ocultar opciones avanzadas", + "Show advanced": "Mostrar ajustes avanzados", "Block users on other matrix homeservers from joining this room (This setting cannot be changed later!)": "Evitar que usuarios de otros servidores Matrix se unan a esta sala (¡Este ajuste no puede ser cambiada más tarde!)", "Server did not require any authentication": "El servidor no requirió ninguna autenticación", "Server did not return valid authentication information.": "El servidor no devolvió información de autenticación válida.", @@ -1662,18 +1662,18 @@ "Verification Requests": "Solicitudes de verificación", "Verifying this user will mark their session as trusted, and also mark your session as trusted to them.": "Verificar que este usuario marcará su sesión como de confianza, y también que marcará su sesión como de confianza para él.", "Verify this device to mark it as trusted. Trusting this device gives you and other users extra peace of mind when using end-to-end encrypted messages.": "Verifique este dispositivo para marcarlo como confiable. Confiar en este dispositivo le da a usted y a otros usuarios tranquilidad adicional cuando utilizan mensajes cifrados de extremo a extremo.", - "Verifying this device will mark it as trusted, and users who have verified with you will trust this device.": "La verificación de este dispositivo lo marcará como de confianza. Los usuarios que dejaron verificarse por usted confiarán en este dispositivo.", + "Verifying this device will mark it as trusted, and users who have verified with you will trust this device.": "La verificación de este dispositivo lo marcará como de confianza. Los usuarios que te han verificado confiarán en este dispositivo.", "Integrations are disabled": "Las integraciones están deshabilitadas", "Enable 'Manage Integrations' in Settings to do this.": "Habilita 'Gestionar Integraciones' en Ajustes para hacer esto.", "Integrations not allowed": "Integraciones no están permitidas", "Your %(brand)s doesn't allow you to use an Integration Manager to do this. Please contact an admin.": "Su %(brand)s no le permite utilizar un \"Administrador de Integración\" para hacer esto. Por favor, contacte con un administrador.", "Failed to invite the following users to chat: %(csvUsers)s": "Error invitando a los siguientes usuarios al chat: %(csvUsers)s", - "We couldn't create your DM. Please check the users you want to invite and try again.": "No pudimos crear tu Mensaje Directo Por favor, marcar los usuarios que quieres invitar e inténtalo de nuevo.", + "We couldn't create your DM. Please check the users you want to invite and try again.": "No se ha podido crear el mensaje directo. Por favor, comprueba los usuarios que quieres invitar e inténtalo de nuevo.", "Start a conversation with someone using their name, username (like) or email address.": "Iniciar una conversación con alguien usando su nombre, nombre de usuario (como ) o dirección de correo electrónico.", "Invite someone using their name, username (like ), email address or share this room.": "Invitar a alguien usando su nombre, nombre de usuario (como ), dirección de correo electrónico o compartir esta sala.", "a new master key signature": "una nueva firma de llave maestra", "a new cross-signing key signature": "una nueva firma de código de firma cruzada", - "a device cross-signing signature": "una firma para la firma cruzada de dispositivos", + "a device cross-signing signature": "una firma para la firma cruzada de dispositivos", "a key signature": "un firma de clave", "%(brand)s encountered an error during upload of:": "%(brand)s encontró un error durante la carga de:", "End": "Fin", @@ -1692,22 +1692,22 @@ "You can only join it with a working invite.": "Sólo puedes unirte con una invitación que funciona.", "Try to join anyway": "Intentar unirse de todas formas", "You can still join it because this is a public room.": "Todavía puedes unirte, ya que es una sala pública.", - "Join the discussion": "Unirse a la discusión", + "Join the discussion": "Unirse a la sala", "Do you want to chat with %(user)s?": "¿Quieres chatear con %(user)s?", "Do you want to join %(roomName)s?": "¿Quieres unirte a la sala %(roomName)s?", " invited you": " te ha invitado", "You're previewing %(roomName)s. Want to join it?": "Estás previsualizando %(roomName)s. ¿Quieres unirte?", "%(roomName)s can't be previewed. Do you want to join it?": "La sala %(roomName)s no permite previsualización. ¿Quieres unirte?", - "This room doesn't exist. Are you sure you're at the right place?": "Esta sala no existe. ¿Está seguro de estar en el lugar correcto?", + "This room doesn't exist. Are you sure you're at the right place?": "Esta sala no existe. ¿Estás seguro de estar en el lugar correcto?", "Try again later, or ask a room admin to check if you have access.": "Inténtalo más tarde, o pide que un administrador de la sala compruebe si tienes acceso.", "%(errcode)s was returned while trying to access the room. If you think you're seeing this message in error, please submit a bug report .": "%(errcode)s fue devuelto al intentar acceder a la sala. Si crees que no deberías ver el mensaje, por favorsomete un reporte de error .", - "Re-request encryption keys from your other sessions.": "Re-requestLink>Solicite nuevamente claves de encriptación de sus otras sesiones.", - "This message cannot be decrypted": "Este mensaje no puede ser desencriptado", - "Encrypted by an unverified session": "Encriptado por una sesión no verificada", - "Unencrypted": "Sin encriptación", - "Encrypted by a deleted session": "Encriptado por una sesión eliminada", + "Re-request encryption keys from your other sessions.": "Solicitar otra vez las claves de cifrado de tus otras sesiones.", + "This message cannot be decrypted": "Este mensaje no puede ser descifrado", + "Encrypted by an unverified session": "Cifrado por una sesión no verificada", + "Unencrypted": "Sin cifrar", + "Encrypted by a deleted session": "Cifrado por una sesión eliminada", "Invite only": "Sólamente por invitación", - "Scroll to most recent messages": "Desplácese a los mensajes más recientes", + "Scroll to most recent messages": "Ir a los mensajes más recientes", "Close preview": "Cerrar vista previa", "No recent messages by %(user)s found": "No se han encontrado mensajes recientes de %(user)s", "Try scrolling up in the timeline to see if there are any earlier ones.": "Intente desplazarse hacia arriba en la línea de tiempo para ver si hay alguna anterior.", @@ -1715,7 +1715,7 @@ "You are about to remove %(count)s messages by %(user)s. This cannot be undone. Do you wish to continue?|other": "Estás a punto de eliminar %(count)s mensajes de %(user)s. Esto no se puede deshacer. ¿Desea continuar?", "You are about to remove %(count)s messages by %(user)s. This cannot be undone. Do you wish to continue?|one": "Estás a punto de eliminar 1 mensaje de %(user)s. Esto no se puede deshacer. ¿Desea continuar?", "For a large amount of messages, this might take some time. Please don't refresh your client in the meantime.": "Para una gran cantidad de mensajes, esto podría llevar algún tiempo. Por favor, no refresque a su cliente mientras tanto.", - "Remove %(count)s messages|other": "Eliminar %(count)s mensajes", + "Remove %(count)s messages|other": "Eliminar %(count)s mensajes", "Remove %(count)s messages|one": "Eliminar 1 mensaje", "Deactivate user?": "¿Desactivar usuario?", "Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?": "Desactivando a este usuario, este será desconectado y no podrá volver a ingresar. Además, saldrá de todas las salas a que se había unido. Esta acción no puede ser revertida. ¿Está seguro de desactivar este usuario?", @@ -1743,7 +1743,7 @@ "Reject & Ignore user": "Rechazar e ignorar usuario", "Upgrading this room will shut down the current instance of the room and create an upgraded room with the same name.": "Actualizar esta sala cerrará la instancia actual de la sala y creará una sala actualizada con el mismo nombre.", "This room has already been upgraded.": "Esta sala ya ha sido actualizada.", - "This room is running room version, which this homeserver has marked as unstable.": "Esta sala está ejecutando la versión de sala , la cual ha sido marcado por este servidor doméstico como unstable.", + "This room is running room version , which this homeserver has marked as unstable.": "Esta sala está ejecutando la versión de sala , la cual ha sido marcado por este servidor base como inestable.", "Unknown Command": "Comando desconocido", "Unrecognised command: %(commandText)s": "Comando no reconocido: %(commandText)s", "You can use /help
to list available commands. Did you mean to send this as a message?": "Puedes usar/ayuda
para listar los comandos disponibles. ¿Querías enviarlo como un mensaje?", @@ -1765,23 +1765,23 @@ "No other published addresses yet, add one below": "No tiene direcciones publicadas todavía, agregue una más abajo", "New published address (e.g. #alias:server)": "Nueva dirección publicada (p.ej.. #alias:server)", "Local Addresses": "Direcciones locales", - "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Establezca las direcciones de esta sala para que los usuarios puedan encontrarla a través de tu servidor doméstico (%(localDomain)s)", + "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Establecer las direcciones de esta sala para que los usuarios puedan encontrarla a través de tu servidor base (%(localDomain)s)", "Error updating flair": "Error al actualizar el botón", "There was an error updating the flair for this room. The server may not allow it or a temporary error occurred.": "Error al actualizar el botón para esta sala. Posiblemente el servidor no lo permita o que se produjo un error temporal.", "Waiting for you to accept on your other session…": "Esperando que aceptes en tu otra sesión…", "Waiting for %(displayName)s to accept…": "Esperando a que %(displayName)s acepte…", "Accepting…": "Aceptando…", "Start Verification": "Iniciar verificación", - "Messages in this room are end-to-end encrypted.": "Los mensajes en esta sala están encriptados de extremo a extremo.", + "Messages in this room are end-to-end encrypted.": "Los mensajes de esta sala están cifrados de extremo a extremo.", "Your messages are secured and only you and the recipient have the unique keys to unlock them.": "Sus mensajes son seguros y sólo usted y el destinatario tienen las claves únicas para desbloquearlos.", - "Messages in this room are not end-to-end encrypted.": "Los mensajes en esta habitación NO están encriptados de extremo a extremo.", - "In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "En las salas encriptadas, sus mensajes están seguros y sólo usted y el destinatario tienen las claves únicas para desbloquearlos.", + "Messages in this room are not end-to-end encrypted.": "Los mensajes en esta sala no están cifrados de extremo a extremo.", + "In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "En las salas cifradas, tus mensajes están seguros y solo tú y el destinatario tienen las claves únicas para desbloquearlos.", "Verify User": "Verificar usuario", "For extra security, verify this user by checking a one-time code on both of your devices.": "Para mayor seguridad, verifique este usuario comprobando un código temporal vez en ambos dispositivos.", "Your messages are not secure": "Sus mensajes no son seguros", "One of the following may be compromised:": "Uno de los siguientes puede estar comprometido:", - "Your homeserver": "Su servidor doméstico", - "The homeserver the user you’re verifying is connected to": "El servidor doméstico del usuario a que está verificando está conectado a", + "Your homeserver": "Tu servidor base", + "The homeserver the user you’re verifying is connected to": "El servidor base del usuario a que está verificando está conectado a", "Yours, or the other users’ internet connection": "La conexión a Internet suya, o la de los otros usuarios", "Yours, or the other users’ session": "La sesión suya, o la de los otros usuarios", "Trusted": "De confianza", @@ -1805,7 +1805,7 @@ "Almost there! Is your other session showing the same shield?": "¡Ya casi está! ¿Su otra sesión muestra el mismo escudo?", "Almost there! Is %(displayName)s showing the same shield?": "¡Ya casi está! ¿Está %(displayName)s mostrando el mismo escudo?", "Verify all users in a room to ensure it's secure.": "Verifica a todos los usuarios de una sala para asegurar que es segura.", - "In encrypted rooms, verify all users to ensure it’s secure.": "En las salas encriptadas, verifique a todos los usuarios para asegurarse de son seguros.", + "In encrypted rooms, verify all users to ensure it’s secure.": "En las salas cifrar, verificar a todos los usuarios para asegurarse de son seguras.", "You've successfully verified %(deviceName)s (%(deviceId)s)!": "¡Has verificado con éxito los %(deviceName)s (%(deviceId)s)!", "You've successfully verified %(displayName)s!": "¡Has verificado con éxito los %(displayName)s!", "Verified": "Verificado", @@ -1818,11 +1818,11 @@ "You cancelled verification.": "Usted canceló la verificación.", "Verification cancelled": "Verificación cancelada", "Compare emoji": "Comparar emoji", - "Encryption enabled": "Encriptación habilitada", + "Encryption enabled": "Cifrado activado", "Messages in this room are end-to-end encrypted. Learn more & verify this user in their user profile.": "Los mensajes en esta sala están encriptados de extremo a extremo. Aprende más & verifica este usuario en su perfil de usuario.", - "Encryption not enabled": "Encriptación no habilitada", - "The encryption used by this room isn't supported.": "La encriptación usada por esta sala no es compatible.", - "React": "Reaccione", + "Encryption not enabled": "Cifrado no activado", + "The encryption used by this room isn't supported.": "El cifrado usado por esta sala no es compatible.", + "React": "Reaccionar", "Message Actions": "Acciones de mensaje", "Show image": "Mostrar imagen", "You have ignored this user, so their message is hidden. Show anyways.": "Ha ignorado a este usuario, así que su mensaje se ha ocultado. Mostrar de todos modos.", @@ -1870,7 +1870,7 @@ "Widget ID": "Identificación (ID) de widget", "Using this widget may share datawith %(widgetDomain)s & your Integration Manager.": "Usar este widget puede resultar en compartir datos con %(widgetDomain)s y su Administrador de Integración.", "Using this widget may share data with %(widgetDomain)s.": "Usar este widget puede resultar en compartir datos con %(widgetDomain)s.", - "Widgets do not use message encryption.": "Los widgets no utilizan la encriptación de mensajes.", + "Widgets do not use message encryption.": "Los widgets no utilizan el cifrado de mensajes.", "Widget added by": "Widget añadido por", "This widget may use cookies.": "Este widget posiblemente utilice cookies.", "Maximize apps": "Maximizar apps", @@ -1885,14 +1885,14 @@ "Confirm by comparing the following with the User Settings in your other session:": "Confirme comparando lo siguiente con los ajustes de usuario de su otra sesión:", "Confirm this user's session by comparing the following with their User Settings:": "Confirme la sesión de este usuario comparando lo siguiente con la configuración de usuario de él/ella:", "If they don't match, the security of your communication may be compromised.": "Si no coinciden, la seguridad de su comunicación puede estar comprometida.", - "Your homeserver doesn't seem to support this feature.": "Tu servidor doméstico no parece soportar esta característica.", + "Your homeserver doesn't seem to support this feature.": "Tu servidor base no parece soportar esta funcionalidad.", "Your account is not secure": "Su cuenta no es segura", "Your password": "Su contraseña", "This session, or the other session": "Esta sesión, o la otra sesión", "The internet connection either session is using": "La conexión a Internet usado por cualquiera de las dos sesiones", "We recommend you change your password and recovery key in Settings immediately": "Le recomendamos que cambie inmediatamente su contraseña y su clave de recuperación en Configuración", "To help avoid duplicate issues, please view existing issues first (and add a +1) orcreate a new issue if you can't find it.": "Para ayudar a evitar la duplicación de entradas, por favorver primero los entradas existentes (y añadir un +1) o,si no lo encuentra, crear una nueva entrada .", - "Reporting this message will send its unique 'event ID' to the administrator of your homeserver. If messages in this room are encrypted, your homeserver administrator will not be able to read the message text or view any files or images.": "Reportar este mensaje enviará su único 'event ID' al administrador de su servidor doméstico. Si los mensajes en esta sala están encriptados, el administrador de tu servidor no podrá leer el texto del mensaje ni ver ningún archivo o imagen.", + "Reporting this message will send its unique 'event ID' to the administrator of your homeserver. If messages in this room are encrypted, your homeserver administrator will not be able to read the message text or view any files or images.": "Reportar este mensaje enviará su único 'event ID' al administrador de tu servidor base. Si los mensajes en esta sala están cifrados, el administrador de tu servidor no podrá leer el texto del mensaje ni ver ningún archivo o imagen.", "Command Help": "Ayuda del comando", "Integration Manager": "Administrador de integración", "Verify other session": "Verifique otra sesión", @@ -1923,7 +1923,7 @@ "Access your secure message history and set up secure messaging by entering your recovery key.": "Accede a tu historial de mensajes seguros y configura la mensajería segura introduciendo tu clave de recuperación.", "If you've forgotten your recovery key you can ": "Si has olvidado tu clave de recuperación puedes ", "Resend edit": "Reenviar la edición", - "Resend %(unsentCount)s reaction(s)": "Reenviar %(unsentCount)s reacción(es)", + "Resend %(unsentCount)s reaction(s)": "Reenviar %(unsentCount)s reacción(es)", "Resend removal": "Reenviar la eliminación", "Share Permalink": "Compartir Permalink", "Report Content": "Reportar contenido", @@ -1942,9 +1942,9 @@ "This homeserver would like to make sure you are not a robot.": "A este servidor le gustaría asegurarse de que no eres un robot.", "Country Dropdown": "Seleccione país", "Confirm your identity by entering your account password below.": "Confirme su identidad introduciendo la contraseña de su cuenta.", - "Missing captcha public key in homeserver configuration. Please report this to your homeserver administrator.": "Falta la clave pública del captcha en la configuración del servidor doméstico. Por favor, informe de esto al administrador del servidor doméstico.", - "Please review and accept all of the homeserver's policies": "Por favor, revise y acepte todas las políticas del servidor doméstico", - "Please review and accept the policies of this homeserver:": "Por favor revise y acepte las políticas de este servidor doméstico:", + "Missing captcha public key in homeserver configuration. Please report this to your homeserver administrator.": "Falta la clave pública del captcha en la configuración del servidor base. Por favor, informa de esto al administrador de tu servidor base.", + "Please review and accept all of the homeserver's policies": "Por favor, revisa y acepta todas las políticas del servidor base", + "Please review and accept the policies of this homeserver:": "Por favor, revisa y acepta las políticas de este servidor base:", "Unable to validate homeserver/identity server": "No se pudo validar el servidor doméstico/servidor de identidad", "Your Modular server": "Su servidor modular", "Enter the location of your Modular homeserver. It may use your own domain name or be a subdomain of modular.im.": "Introduzca la ubicación de su Servidor Modular Doméstico. Este puede usar su propio nombre de dominio o ser un subdominio de modular.im.", @@ -1962,7 +1962,7 @@ "Keep going...": "Continúa...", "Passwords don't match": "Las contraseñas no coinciden", "Other users can invite you to rooms using your contact details": "Otros usuarios pueden invitarte las salas utilizando tus datos de contacto", - "Enter phone number (required on this homeserver)": "Ingrese un número de teléfono (requerido en este servidor doméstico)", + "Enter phone number (required on this homeserver)": "Introduce un número de teléfono (es obligatorio en este servidor base)", "Doesn't look like a valid phone number": "No parece ser un número de teléfono válido", "Use lowercase letters, numbers, dashes and underscores only": "Use sólo letras minúsculas, números, guiones y guiones bajos", "Enter username": "Introduce nombre de usuario", @@ -1978,7 +1978,7 @@ "Identity Server URL": "URL del servidor de identidad", "Other servers": "Otros servidores", "Free": "Gratis", - "Join millions for free on the largest public server": "Únete de forma gratuita a millones de personas en el servidor público más grande", + "Join millions for free on the largest public server": "Únete de forma gratuita a millones de personas en el servidor público más grande", "Premium": "Premium", "Premium hosting for organisations Learn more": "Alojamiento Premium para organizaciones Aprende más", "Find other public servers or use a custom server": "Descubra otros servidores públicos o utilice un servidor personalizado", @@ -1989,7 +1989,7 @@ "Couldn't load page": "No pude cargar la página", "You are an administrator of this community. You will not be able to rejoin without an invite from another administrator.": "Usted es un administrador de esta comunidad. No podrás volver a unirte sin una invitación de otro administrador.", "Want more than a community? Get your own server": "¿Quieres más que una comunidad? Obtenga su propio servidor", - "This homeserver does not support communities": "Este servidor doméstico no permite las comunidades", + "This homeserver does not support communities": "Este servidor base no permite las comunidades", "Welcome to %(appName)s": "Bienvenido a %(appName)s", "Liberate your communication": "Libere su comunicación", "Send a Direct Message": "Envía un mensaje directo", @@ -2000,14 +2000,14 @@ "Filter rooms…": "Filtrar salas…", "Self-verification request": "Solicitud de auto-verificación", "%(creator)s created and configured the room.": "Sala creada y configurada por %(creator)s.", - "%(brand)s failed to get the protocol list from the homeserver. The homeserver may be too old to support third party networks.": "%(brand)s no logró obtener la lista de protocolo del servidor doméstico. El servidor doméstico puede ser demasiado viejo para admitir redes de terceros.", + "%(brand)s failed to get the protocol list from the homeserver. The homeserver may be too old to support third party networks.": "%(brand)s no ha posido obtener la lista de protocolo del servidor base. El servidor base puede ser demasiado viejo para admitir redes de terceros.", "%(brand)s failed to get the public room list.": "%(brand)s no logró obtener la lista de salas públicas.", - "The homeserver may be unavailable or overloaded.": "Posiblemente el servidor de doméstico no esté disponible o esté sobrecargado.", - "Preview": "Vista previa", + "The homeserver may be unavailable or overloaded.": "Es posible el servidor de base no esté disponible o esté sobrecargado.", + "Preview": "Ver", "View": "Vista", "Find a room…": "Encuentre una sala…", - "Find a room… (e.g. %(exampleRoom)s)": "Encuentre una sala... (p.ej. %(exampleRoom)s)", - "If you can't find the room you're looking for, ask for an invite or Create a new room.": "Si no puedes encontrar la habitación que buscas, solicite una invitación o Crea una nueva sala.", + "Find a room… (e.g. %(exampleRoom)s)": "Encontrar una sala una sala... (ej.: %(exampleRoom)s)", + "If you can't find the room you're looking for, ask for an invite or Create a new room.": "Si no puedes encontrar la sala que buscas, pide que te inviten a ella o crea una nueva.", "Explore rooms": "Explorar salas", "Jump to first invite.": "Salte a la primera invitación.", "Add room": "Añadir sala", @@ -2024,16 +2024,16 @@ "A verification email will be sent to your inbox to confirm setting your new password.": "Se enviará un correo electrónico de verificación a su bandeja de entrada para confirmar la configuración de su nueva contraseña.", "Your password has been reset.": "Su contraseña ha sido restablecida.", "You have been logged out of all sessions and will no longer receive push notifications. To re-enable notifications, sign in again on each device.": "Ha cerrado todas las sesiones y ya no recibirá más notificaciones push. Para volver a activar las notificaciones, inicie sesión de nuevo en cada dispositivo.", - "Set a new password": "Establezca una nueva contraseña", - "Invalid homeserver discovery response": "Respuesta inválida de descubrimiento de servidor doméstico", + "Set a new password": "Elegir una nueva contraseña", + "Invalid homeserver discovery response": "Respuesta inválida de descubrimiento de servidor base", "Failed to get autodiscovery configuration from server": "No se pudo obtener la configuración de autodescubrimiento del servidor", "Invalid base_url for m.homeserver": "URL-base inválida para m.homeserver", - "Homeserver URL does not appear to be a valid Matrix homeserver": "La URL del servidor doméstico no parece ser un servidor doméstico válido de Matrix", + "Homeserver URL does not appear to be a valid Matrix homeserver": "La URL del servidor base no parece ser un servidor válido de Matrix", "Invalid identity server discovery response": "Respuesta inválida de descubrimiento de servidor de identidad", "Invalid base_url for m.identity_server": "URL_base no válida para m.identity_server", "Identity server URL does not appear to be a valid identity server": "La URL del servidor de identidad no parece ser un servidor de identidad válido", "General failure": "Error no especificado", - "This homeserver does not support login using email address.": "Este servidor doméstico no admite iniciar sesión con una dirección de correo electrónico.", + "This homeserver does not support login using email address.": "Este servidor base no admite iniciar sesión con una dirección de correo electrónico.", "This account has been deactivated.": "Esta cuenta ha sido desactivada.", "Room name or address": "Nombre o dirección de la sala", "Address (optional)": "Dirección (opcional)", @@ -2095,9 +2095,9 @@ "%(senderName)s: %(message)s": "%(senderName)s: %(message)s", "%(senderName)s: %(reaction)s": "%(senderName)s: %(reaction)s", "%(senderName)s: %(stickerName)s": "%(senderName)s: %(stickerName)s", - "Your new session is now verified. It has access to your encrypted messages, and other users will see it as trusted.": "Tu nueva sesión se encuentra verificada ahora. Ahora tiene acceso a los mensajes encriptados y otros usuarios verán la sesión como verificada.", + "Your new session is now verified. It has access to your encrypted messages, and other users will see it as trusted.": "Tu nueva sesión ha sido verificada. Ahora tiene acceso a los mensajes cifrados y otros usuarios la verán como verificada.", "Your new session is now verified. Other users will see it as trusted.": "Tu sesión se encuentra ahora verificada. Otros usuarios la verán como confiable.", - "This session is encrypting history using the new recovery method.": "Esta sesión se encuentra encriptando el historial usando el nuevo método de verificación.", + "This session is encrypting history using the new recovery method.": "Esta sesión está cifrando el historial usando el nuevo método de recuperación.", "Change notification settings": "Cambiar los ajustes de notificaciones", "Communities v2 prototypes. Requires compatible homeserver. Highly experimental - use with caution.": "Prototipo de comunidades v2. Requiere un servidor compatible. Altamente experimental - usar con precuación.", "Font size": "Tamaño de la fuente", @@ -2105,7 +2105,7 @@ "Use a more compact ‘Modern’ layout": "Usar un diseño más 'moderno' y compacto", "Use a system font": "Utilizar una fuente del sistema", "System font name": "Nombre de la fuente", - "Enable experimental, compact IRC style layout": "Activar el diseño de IRC compacto, en prueba", + "Enable experimental, compact IRC style layout": "Activar el diseño experimental de IRC compacto", "Uploading logs": "Subiendo registros", "Downloading logs": "Descargando registro", "Incoming voice call": "Llamada de voz entrante", @@ -2116,7 +2116,7 @@ "There are advanced notifications which are not shown here.": "Hay configuraciones avanzadas que no se muestran aquí.", "You might have configured them in a client other than %(brand)s. You cannot tune them in %(brand)s but they still apply.": "Puede que las hayas configurado en otro cliente además de %(brand)s. No puedes cambiarlas en %(brand)s pero sus efectos siguen aplicándose.", "New version available. Update now.": "Nueva versión disponible. Actualiza ahora.", - "Hey you. You're the best!": "Oye tú. ¡Eres el mejor!", + "Hey you. You're the best!": "Oye, tú. ¡Eres genial!", "Size must be a number": "El tamaño debe ser un dígito", "Custom font size can only be between %(min)s pt and %(max)s pt": "El tamaño de la fuente solo puede estar entre los valores %(min)s y %(max)s", "Use between %(min)s pt and %(max)s pt": "Utiliza un valor entre %(min)s y %(max)s", @@ -2127,16 +2127,16 @@ "Customise your appearance": "Personaliza tu apariencia", "Appearance Settings only affect this %(brand)s session.": "Cambiar las opciones de apariencia solo afecta esta %(brand)s sesión.", "Please verify the room ID or address and try again.": "Por favor, verifica la ID o dirección de esta sala e inténtalo de nuevo.", - "Your server admin has disabled end-to-end encryption by default in private rooms & Direct Messages.": "El administrador del servidor domestico ha deshabilitado la encriptación de extremo a extremo en salas privadas y mensajes directos.", + "Your server admin has disabled end-to-end encryption by default in private rooms & Direct Messages.": "El administrador del servidor base ha deshabilitado el cifrado de extremo a extremo en salas privadas y mensajes directos.", "To link to this room, please add an address.": "Para vincular esta sala, por favor añade una dirección.", - "The authenticity of this encrypted message can't be guaranteed on this device.": "La autenticidad de estos mensajes encriptados no pueden ser garantizados en este dispositivo.", + "The authenticity of this encrypted message can't be guaranteed on this device.": "La autenticidad de este mensaje cifrado no puede ser garantizada en este dispositivo.", "No recently visited rooms": "No hay salas visitadas recientemente", "People": "Gente", - "Explore public rooms": "Buscar salas publicas", + "Explore public rooms": "Buscar salas públicas", "Can't see what you’re looking for?": "¿No encuentras nada de lo que buscas?", "Explore all public rooms": "Buscar todas las salas publicas", "%(count)s results|other": "%(count)s resultados", - "Prepends ( ͡° ͜ʖ ͡°) to a plain-text message": "Antepone ( ͡° ͜ʖ ͡°) a un mensaje de texto sin formato", + "Prepends ( ͡° ͜ʖ ͡°) to a plain-text message": "Antepone ( ͡° ͜ʖ ͡°) a un mensaje de texto", "Group call modified by %(senderName)s": "Llamada grupal modificada por %(senderName)s", "Group call started by %(senderName)s": "Llamada grupal iniciada por %(senderName)s", "Group call ended by %(senderName)s": "Llamada de grupo finalizada por %(senderName)s", @@ -2159,9 +2159,9 @@ "Secret storage:": "Almacenamiento secreto:", "ready": "Listo", "not ready": "no está listo", - "Room ID or address of ban list": "ID de habitación o dirección de la lista de prohibición", + "Room ID or address of ban list": "ID de sala o dirección de la lista de prohibición", "Secure Backup": "Copia de seguridad segura", - "Privacy": "Intimidad", + "Privacy": "Privacidad", "Emoji picker": "Selector de emoji", "Explore community rooms": "Explore las salas comunitarias", "Custom Tag": "Etiqueta personalizada", @@ -2175,29 +2175,29 @@ "List options": "Opciones de lista", "Show %(count)s more|other": "Mostrar %(count)s más", "Show %(count)s more|one": "Mostrar %(count)s más", - "Use default": "Uso por defecto", + "Use default": "Usar valor por defecto", "Mentions & Keywords": "Menciones y palabras clave", "Notification options": "Opciones de notificación", - "Forget Room": "Olvidar habitación", + "Forget Room": "Olvidar sala", "Favourited": "Favorecido", - "Leave Room": "Dejar la habitación", - "Room options": "Opciones de habitación", + "Leave Room": "Salir de la sala", + "Room options": "Opciones de la sala", "Error creating address": "Error al crear la dirección", "There was an error creating that address. It may not be allowed by the server or a temporary failure occurred.": "Hubo un error al crear esa dirección. Es posible que el servidor no lo permita o que haya ocurrido una falla temporal.", "You don't have permission to delete the address.": "No tienes permiso para borrar la dirección.", "There was an error removing that address. It may no longer exist or a temporary error occurred.": "Se produjo un error al eliminar esa dirección. Puede que ya no exista o se haya producido un error temporal.", "Error removing address": "Error al eliminar la dirección", - "Room Info": "Información de la habitación", + "Room Info": "Información de la sala", "Apps": "Aplicaciones", "Unpin app": "Desanclar aplicación", "Edit apps, bridges & bots": "Edite aplicaciones, puentes y bots", "Add apps, bridges & bots": "Agregar aplicaciones, puentes y bots", - "Not encrypted": "No encriptado", + "Not encrypted": "Sin cifrar", "About": "Acerca de", "%(count)s people|other": "%(count)s personas", "%(count)s people|one": "%(count)s persona", "Show files": "Mostrar archivos", - "Room settings": "Configuración de la habitación", + "Room settings": "Configuración de la sala", "You've successfully verified your device!": "¡Ha verificado correctamente su dispositivo!", "Take a picture": "Toma una foto", "Pin to room": "Anclar a la habitación", @@ -2208,8 +2208,8 @@ "Categories": "Categorías", "Information": "Información", "QR Code": "Código QR", - "Room address": "Dirección de la habitación", - "Please provide a room address": "Proporcione una dirección de habitación", + "Room address": "Dirección de la sala", + "Please provide a room address": "Por favor, introduce una dirección de sala", "This address is available to use": "Esta dirección está disponible para usar", "This address is already in use": "Esta dirección ya está en uso", "Preparing to download logs": "Preparándose para descargar registros", @@ -2230,9 +2230,9 @@ "An image will help people identify your community.": "Una imagen ayudará a las personas a identificar su comunidad.", "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone.": "Las salas privadas se pueden encontrar y unirse solo con invitación. Cualquier persona puede encontrar y unirse a las salas públicas.", "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone in this community.": "Las salas privadas se pueden encontrar y unirse solo con invitación. Cualquier persona de esta comunidad puede encontrar salas públicas y unirse a ellas.", - "You might enable this if the room will only be used for collaborating with internal teams on your homeserver. This cannot be changed later.": "Puede habilitar esto si la sala solo se usará para colaborar con equipos internos en su servidor doméstico. Esto no se puede cambiar después.", - "You might disable this if the room will be used for collaborating with external teams who have their own homeserver. This cannot be changed later.": "Puede desactivar esto si la sala se utilizará para colaborar con equipos externos que tengan su propio servidor doméstico. Esto no se puede cambiar después.", - "Create a room in %(communityName)s": "Crea una habitación en %(communityName)s", + "You might enable this if the room will only be used for collaborating with internal teams on your homeserver. This cannot be changed later.": "Puede activar esto si la sala solo se usará para colaborar con equipos internos en tu servidor base. Esto no se puede cambiar después.", + "You might disable this if the room will be used for collaborating with external teams who have their own homeserver. This cannot be changed later.": "Puedes desactivar esto si la sala se utilizará para colaborar con equipos externos que tengan su propio servidor base. Esto no se puede cambiar después.", + "Create a room in %(communityName)s": "Crea una sala en %(communityName)s", "Block anyone not part of %(serverName)s from ever joining this room.": "Bloquea a cualquier persona que no sea parte de %(serverName)s para que no se una a esta sala.", "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.": "Anteriormente usaste una versión más nueva de %(brand)s con esta sesión. Para volver a utilizar esta versión con cifrado de extremo a extremo, deberá cerrar sesión y volver a iniciar sesión.", "There was an error updating your community. The server is unable to process your request.": "Hubo un error al actualizar tu comunidad. El servidor no puede procesar su solicitud.", @@ -2274,7 +2274,7 @@ "You have no visible notifications in this room.": "No tienes notificaciones visibles en esta sala.", "Delete the room address %(alias)s and remove %(name)s from the directory?": "¿Eliminar la dirección de la sala %(alias)s y eliminar %(name)s del directorio?", "delete the address.": "eliminar la dirección.", - "Explore rooms in %(communityName)s": "Explora habitaciones en %(communityName)s", + "Explore rooms in %(communityName)s": "Explora salas en %(communityName)s", "Search rooms": "Buscar salas", "Create community": "Crear comunidad", "Failed to find the general chat for this community": "No se pudo encontrar el chat general de esta comunidad", @@ -2283,22 +2283,22 @@ "Feedback": "Realimentación", "Community settings": "Configuración de la comunidad", "User settings": "Ajustes de usuario", - "Switch to light mode": "Cambiar al modo de luz", - "Switch to dark mode": "Cambiar al modo oscuro", + "Switch to light mode": "Cambiar al modo claro", + "Switch to dark mode": "Cambiar al tema oscuro", "Switch theme": "Cambiar tema", "User menu": "Menú del Usuario", "Community and user menu": "Menú de comunidad y usuario", - "Failed to perform homeserver discovery": "No se pudo realizar el descubrimiento del servidor doméstico", + "Failed to perform homeserver discovery": "No se ha podido realizar el descubrimiento del servidor base", "Syncing...": "Sincronizando ...", "Signing In...": "Iniciando sesión...", "If you've joined lots of rooms, this might take a while": "Si se ha unido a muchas salas, esto puede llevar un tiempo", "Create account": "Crear una cuenta", "Unable to query for supported registration methods.": "No se pueden consultar los métodos de registro admitidos.", - "Registration has been disabled on this homeserver.": "El registro ha sido deshabilitado en este servidor doméstico.", + "Registration has been disabled on this homeserver.": "Se han desactivado los registros en este servidor base.", "Your new account (%(newAccountId)s) is registered, but you're already logged into a different account (%(loggedInUserId)s).": "Su nueva cuenta (%(newAccountId)s) está registrada, pero ya inició sesión en una cuenta diferente (%(loggedInUserId)s).", "Continue with previous account": "Continuar con la cuenta anterior", "Log in to your new account.": "Inicie sesión en su nueva cuenta.", - "You can now close this window or log in to your new account.": "Ahora puede cerrar esta ventana o iniciar sesión en su nueva cuenta.", + "You can now close this window or log in to your new account.": "Ahora puedes cerrar esta ventana o iniciar sesión en otra cuenta.", "Registration Successful": "Registro exitoso", "Create your account": "Crea tu cuenta", "Use Recovery Key or Passphrase": "Usar clave de recuperación o frase de contraseña", @@ -2311,13 +2311,13 @@ "%(brand)s Android": "%(brand)s Android", "or another cross-signing capable Matrix client": "u otro cliente Matrix con capacidad de firma cruzada", "Without completing security on this session, it won’t have access to encrypted messages.": "Sin completar la seguridad en esta sesión, no tendrá acceso a los mensajes cifrados.", - "Failed to re-authenticate due to a homeserver problem": "No se pudo volver a autenticar debido a un problema con el servidor doméstico", + "Failed to re-authenticate due to a homeserver problem": "No ha sido posible volver a autenticarse debido a un problema con el servidor base", "Failed to re-authenticate": "No se pudo volver a autenticar", "Regain access to your account and recover encryption keys stored in this session. Without them, you won’t be able to read all of your secure messages in any session.": "Recupere el acceso a su cuenta y recupere las claves de cifrado almacenadas en esta sesión. Sin ellos, no podrá leer todos sus mensajes seguros en ninguna sesión.", "Enter your password to sign in and regain access to your account.": "Ingrese su contraseña para iniciar sesión y recuperar el acceso a su cuenta.", "Forgotten your password?": "¿Olvidaste tu contraseña?", "Sign in and regain access to your account.": "Inicie sesión y recupere el acceso a su cuenta.", - "You cannot sign in to your account. Please contact your homeserver admin for more information.": "No puede iniciar sesión en su cuenta. Comuníquese con el administrador de su servidor doméstico para obtener más información.", + "You cannot sign in to your account. Please contact your homeserver admin for more information.": "No puedes iniciar sesión en tu cuenta. Ponte en contacto con el administrador de su servidor base para obtener más información.", "You're signed out": "Estás desconectado", "Clear personal data": "Borrar datos personales", "Warning: Your personal data (including encryption keys) is still stored in this session. Clear it if you're finished using this session, or want to sign in to another account.": "Advertencia: sus datos personales (incluidas las claves de cifrado) todavía se almacenan en esta sesión. Bórrelo si terminó de usar esta sesión o si desea iniciar sesión en otra cuenta.", @@ -2326,7 +2326,7 @@ "DuckDuckGo Results": "Resultados de DuckDuckGo", "Emoji Autocomplete": "Autocompletar Emoji", "Notification Autocomplete": "Autocompletar notificación", - "Room Autocomplete": "Autocompletar habitación", + "Room Autocomplete": "Autocompletar sala", "User Autocomplete": "Autocompletar de usuario", "Confirm encryption setup": "Confirmar la configuración de cifrado", "Click the button below to confirm setting up encryption.": "Haga clic en el botón de abajo para confirmar la configuración del cifrado.", @@ -2354,7 +2354,7 @@ "Unable to query secret storage status": "No se puede consultar el estado del almacenamiento secreto", "Retry": "Reintentar", "If you cancel now, you may lose encrypted messages & data if you lose access to your logins.": "Si cancela ahora, puede perder mensajes y datos cifrados si pierde el acceso a sus inicios de sesión.", - "You can also set up Secure Backup & manage your keys in Settings.": "También puede configurar la Copia de seguridad segura y administrar sus claves en Configuración.", + "You can also set up Secure Backup & manage your keys in Settings.": "También puedes configurar la copia de seguridad segura y gestionar sus claves en configuración.", "Set up Secure Backup": "Configurar copia de seguridad segura", "Upgrade your encryption": "Actualice su cifrado", "Set a Security Phrase": "Establecer una frase de seguridad", @@ -2375,7 +2375,7 @@ "Save it on a USB key or backup drive": "Guárdelo en una llave USB o unidad de respaldo", "Copy it to your personal cloud storage": "Cópielo a su almacenamiento personal en la nube", "Your keys are being backed up (the first backup could take a few minutes).": "Se está realizando una copia de seguridad de sus claves (la primera copia de seguridad puede tardar unos minutos).", - "Without setting up Secure Message Recovery, you won't be able to restore your encrypted message history if you log out or use another session.": "Sin configurar Secure Message Recovery, no podrá restaurar su historial de mensajes encriptados si cierra sesión o usa otra sesión.", + "Without setting up Secure Message Recovery, you won't be able to restore your encrypted message history if you log out or use another session.": "Sin configurar Secure Message Recovery, no podrás restaurar tu historial de mensajes encriptados si cierras sesión o usas otra sesión.", "Set up Secure Message Recovery": "Configurar la recuperación segura de mensajes", "Secure your backup with a recovery passphrase": "Asegure su copia de seguridad con una frase de contraseña de recuperación", "Make a copy of your recovery key": "Haz una copia de tu clave de recuperación", @@ -2407,12 +2407,12 @@ "Message downloading sleep time(ms)": "Tiempo de suspensión de descarga de mensajes(ms)", "Navigation": "Navegación", "Calls": "Llamadas", - "Room List": "Lista de habitaciones", + "Room List": "Lista de salas", "Autocomplete": "Autocompletar", "Alt": "Alt", "Alt Gr": "Alt Gr", "Shift": "Shift", - "Super": "Super", + "Super": "Súper", "Ctrl": "Ctrl", "Toggle Bold": "Alternar negrita", "Toggle Italics": "Alternar cursiva", @@ -2447,5 +2447,501 @@ "Page Down": "Página abajo", "Esc": "Esc", "Enter": "Enter", - "Space": "Espacio" + "Space": "Espacio", + "Your server requires encryption to be enabled in private rooms.": "Tu servidor obliga a usar cifrado en las salas privadas.", + "This version of %(brand)s does not support searching encrypted messages": "Esta versión de %(brand)s no puede buscar mensajes cifrados", + "Video conference ended by %(senderName)s": "Videoconferencia terminada por %(senderName)s", + "Join the conference from the room information card on the right": "Únete a la conferencia desde el panel de información de la sala de la derecha", + "Join the conference at the top of this room": "Unirse a la conferencia en la parte de arriba de la sala", + "Ignored attempt to disable encryption": "Se ha ignorado un intento de desactivar el cifrado", + "Messages in this room are end-to-end encrypted. When people join, you can verify them in their profile, just tap on their avatar.": "Los mensajes en esta sala están cifrados de extremo a extremo. Cuando alguien se una podrás verificarle en su perfil, tan solo pulsa en su imagen.", + "Add widgets, bridges & bots": "Añadir widgets, puentes y bots", + "Edit widgets, bridges & bots": "Editar widgets, puentes y bots", + "Widgets": "Widgets", + "Set my room layout for everyone": "Hacer que todo el mundo use mi disposición de sala", + "Unpin a widget to view it in this panel": "Desancla un widget para verlo en este panel", + "You can only pin up to %(count)s widgets|other": "Solo puedes anclar hasta %(count)s widgets", + "Use the + to make a new room or explore existing ones below": "Usa el + para crear una sala nueva o explora una de las existentes más abajo", + "Hide Widgets": "Ocultar widgets", + "Show Widgets": "Mostrar widgets", + "Send general files as you in this room": "Enviar archivos en tu nombre a esta sala", + "See videos posted to this room": "Ver los vídeos que se van publicando en esta sala", + "Send videos as you in this room": "Enviar vídeos en tu nombre a esta sala", + "See images posted to this room": "Ver las imágenes que se vayan publicando en esta sala", + "Send images as you in this room": "Enviar imágenes en tu nombre a esta sala", + "Send %(eventType)s events as you in your active room": "Enviar eventos de tipo %(eventType)s en tu nombre a la sala en la que estés activo", + "See when anyone posts a sticker to your active room": "Ver cuándo se mandan pegatinas a tu sala activa", + "Workspace:": "Entorno de trabajo: ", + "There was an error looking up the phone number": "Ha ocurrido un error al buscar el número de teléfono", + "Unable to look up phone number": "No se ha podido buscar el número de teléfono", + "Fill Screen": "Llenar pantalla", + "Show stickers button": "Mostrar botón de pegatinas", + "See emotes posted to this room": "Ver los emoticonos publicados en esta sala", + "Send emotes as you in this room": "Enviar emoticonos en tu nombre a esta sala", + "Send messages as you in this room": "Enviar mensajes en tu nombre a esta sala", + "The %(capability)s capability": "La capacidad de %(capability)s", + "See %(eventType)s events posted to this room": "Ver los eventos de tipo %(eventType)s publicados en esta sala", + "Send %(eventType)s events as you in this room": "Enviar eventos de tipo %(eventType)s en tu nombre", + "See when a sticker is posted in this room": "Ver cuándo se envían pegatinas a esta sala", + "Send stickers to this room as you": "Enviar pegatinas en tu nombre a esta sala", + "See when the avatar changes in your active room": "Ver cuándo cambia la imagen de la sala actual", + "Change which room, message, or user you're viewing": "Cambiar qué sala, mensaje o usuario estás viendo", + "Change which room you're viewing": "Cambiar qué sala estás viendo", + "Send stickers into your active room": "Enviar pegatinas a la sala en la que estés activamente", + "Send stickers into this room": "Enviar pegatunas a esta sala", + "Remain on your screen while running": "Permanecer en tu pantalla mientras se esté ejecutando", + "Remain on your screen when viewing another room, when running": "Permanecer en la pantalla cuando estés viendo otra sala, mientras se esté ejecutando", + "%(senderName)s has updated the widget layout": "%(senderName)s ha actualizado la disposición de los widgets", + "🎉 All servers are banned from participating! This room can no longer be used.": "🎉 No puede participar ningún servidor. Esta sala ya no se puede usar más.", + "This looks like a valid Security Key!": "¡Parece que es una clave de seguridad válida!", + "Not a valid Security Key": "No es una clave de seguridad válida", + "That phone number doesn't look quite right, please check and try again": "Ese número de teléfono no parece ser correcto, compruébalo e inténtalo de nuevo", + "Great, that'll help people know it's you": "Genial, ayudará a que la gente sepa que eres tú", + "%(ssoButtons)s Or %(usernamePassword)s": "%(ssoButtons)s o %(usernamePassword)s", + "Please enter your Security Phrase a second time to confirm.": "Por favor, escribe tu frase de seguridad una segunda vez para confirmarla.", + "Repeat your Security Phrase...": "Repite tu frase de seguridad...", + "Your Security Key": "Tu clave de seguridad", + "Your Security Key has been copied to your clipboard, paste it to:": "Tu clave de seguridad ha sido copiada a tu portapapeles, pégala en:", + "Your Security Key is in your Downloads folder.": "Tu clave de seguridad está en tu carpeta de Descargas.", + "Secure your backup with a Security Phrase": "Haz tu copia de seguridad más segura con una frase de seguridad", + "Confirm your Security Phrase": "Confirma tu frase de seguridad", + "Make a copy of your Security Key": "Haz una copia de tu clave de seguridad", + "A new Security Phrase and key for Secure Messages have been detected.": "Se ha detectado una nueva frase de seguridad y clave para mensajes seguros.", + "This session has detected that your Security Phrase and key for Secure Messages have been removed.": "Esta sesión ha detectado que tu frase de seguridad y clave para mensajes seguros ha sido eliminada.", + "Search (must be enabled)": "Buscar (debe estar activado)", + "Zimbabwe": "Zimbabue", + "Yemen": "Yemen", + "Wallis & Futuna": "Wallis y Futuna", + "Vanuatu": "Vanuatu", + "Uzbekistan": "Uzbekistán", + "U.S. Virgin Islands": "Islas Vírgenes de los Estados Unidos", + "Tuvalu": "Tuvalu", + "Turks & Caicos Islands": "Islas Turcas y Caicos", + "Turkmenistan": "Turkmenistán", + "Tokelau": "Tokelau", + "Timor-Leste": "Timor Oriental", + "Tajikistan": "Tayikistán", + "São Tomé & Príncipe": "Santo Tomé y Príncipe", + "Swaziland": "Suazilandia", + "Svalbard & Jan Mayen": "Svalbard y Jan Mayen", + "Suriname": "Surinam", + "St. Vincent & Grenadines": "San Vicente y las Granadinas", + "St. Pierre & Miquelon": "San Pedro y Miquelón", + "St. Kitts & Nevis": "San Cristóbal y Nieves", + "St. Helena": "Isla Santa Elena", + "St. Barthélemy": "San Bartolomé", + "South Georgia & South Sandwich Islands": "Islas Georgias del Sur y Sandwich del Sur", + "Solomon Islands": "Islas Salomón", + "Seychelles": "Seychelles", + "Rwanda": "Ruanda", + "Pitcairn Islands": "Islas Pitcairn", + "Palau": "Palaos", + "Oman": "Omán", + "Northern Mariana Islands": "Islas Marianas del Norte", + "Norfolk Island": "Isla Norfolk", + "Niue": "Niue", + "with state key %(stateKey)s": "con la clave de estado %(stateKey)s", + "Zambia": "Zambia", + "Western Sahara": "Sáhara Occidental", + "Vietnam": "Vietnam", + "Venezuela": "Venezuela", + "Vatican City": "Ciudad del Vaticano", + "Uruguay": "Uruguay", + "United Arab Emirates": "Estados Árabes Unidos", + "Ukraine": "Ucrania", + "Uganda": "Uganda", + "Turkey": "Turquía", + "Tunisia": "Túnez", + "Trinidad & Tobago": "Trinidad y Tobago", + "Tonga": "Tonga", + "Togo": "Togo", + "Thailand": "Tailandia", + "Tanzania": "Tanzania", + "Taiwan": "Taiwán", + "Syria": "Siria", + "Switzerland": "Suiza", + "Sweden": "Suecia", + "Sudan": "Sudán", + "St. Martin": "San Martín", + "St. Lucia": "Santa Lucía", + "Sri Lanka": "Sri Lanka", + "Spain": "España", + "South Sudan": "Sudán del Sur", + "South Korea": "Corea del Sur", + "South Africa": "Sudáfrica", + "Somalia": "Somalia", + "Slovenia": "Eslovenia", + "Slovakia": "Eslovaquia", + "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Element with an existing Matrix account on a different homeserver.": "Puedes usar la opción de editar el servidor para iniciar sesión en otros servidores de Matrix indicando una URL de servidor base diferente. Esto te permitirá usar Element con una cuenta de Matrix que ye exista en un servidor base diferente.", + "We call the places where you can host your account ‘homeservers’.": "Llamamos a los sitios donde puedes alojar tu cuenta «servidores base».", + "Use email to optionally be discoverable by existing contacts.": "También puedes usarlo para que tus contactos te encuentren fácilmente.", + "Add an email to be able to reset your password.": "Añade un correo para poder restablecer tu contraseña si te olvidas.", + "Continue with %(ssoButtons)s": "Continuar con %(ssoButtons)s", + "Continue with %(provider)s": "Continuar con %(provider)s", + "Channel: ": "Canal: ", + "Update %(brand)s": "Actualizar %(brand)s", + "This will end the conference for everyone. Continue?": "Esto terminará la conferencia para todo el mundo. ¿Continuar?", + "Nigeria": "Nigeria", + "Niger": "Níger", + "Nicaragua": "Nicaragua", + "New Zealand": "Nueva Zelanda", + "New Caledonia": "Nueva Caledonia", + "Netherlands": "Países Bajos", + "Nepal": "Nepal", + "Nauru": "Nauru", + "Namibia": "Namibia", + "Myanmar": "Birmania", + "Mozambique": "Mozambique", + "Morocco": "Marruecos", + "Montserrat": "Mongolia", + "Monaco": "Mónaco", + "Moldova": "Moldavia", + "Micronesia": "Micronesia", + "Mexico": "México", + "Mayotte": "Mayotte", + "Mauritius": "Mauricio", + "Mauritania": "Mauritania", + "Martinique": "Martinica", + "Marshall Islands": "Islas Marshall", + "Malta": "Malta", + "Mali": "Malí", + "Maldives": "Maldivas", + "Malaysia": "Malasia", + "Malawi": "Malaui", + "Madagascar": "Madagascar", + "Macedonia": "Macedonia del Norte", + "Macau": "Macao", + "Luxembourg": "Luxemburgo", + "Lithuania": "Lituania", + "Liechtenstein": "Liechtenstein", + "Libya": "Libia", + "Liberia": "Liberia", + "Lesotho": "Lesoto", + "Lebanon": "Líbano", + "Latvia": "Letonia", + "Laos": "Laos", + "Kyrgyzstan": "Kirguistán", + "Kuwait": "Kuwait", + "Kosovo": "Kosovo", + "Kiribati": "Kiribati", + "Kenya": "Kenia", + "Kazakhstan": "Kazajistán", + "Jordan": "Jordania", + "Jersey": "Jersey", + "Isle of Man": "Isla de Man", + "Heard & McDonald Islands": "Islas Heard y McDonald", + "Haiti": "Haití", + "Guyana": "Guyana", + "Guinea-Bissau": "Guinea-Bisáu", + "Guernsey": "Guernsey", + "Guam": "Guam", + "Guadeloupe": "Guadalupe", + "Grenada": "Granada", + "Ghana": "Ghana", + "Georgia": "Georgia", + "Gambia": "Gambia", + "French Southern Territories": "Tierras Australes y Antárticas Francesas", + "French Polynesia": "Polinesia Francesa", + "French Guiana": "Guayana Francesa", + "Fiji": "Fiyi", + "Faroe Islands": "Islas Feroe", + "Eritrea": "Eritrea", + "Dominica": "Dominica", + "Djibouti": "Yibuti", + "Curaçao": "Curazao", + "Cook Islands": "Islas Cook", + "Congo - Kinshasa": "República Democrática del Congo", + "Congo - Brazzaville": "República del Congo", + "Comoros": "Comoras", + "Cocos (Keeling) Islands": "Islas Cocos", + "Christmas Island": "Kiritimati", + "Chad": "Chad", + "Central African Republic": "República Centroafricana", + "Caribbean Netherlands": "Caribe Neerlandés", + "Burundi": "Burundi", + "Burkina Faso": "Burkina Faso", + "Brunei": "Brunéi", + "British Virgin Islands": "Islas Vírgenes Británicas", + "British Indian Ocean Territory": "Territorio Británico del Océano Índico", + "Bouvet Island": "Isla Bouvet", + "Botswana": "Botsuana", + "Bosnia": "Bosnia y Herzegovina", + "Bhutan": "Bután", + "Bermuda": "Bermudas", + "Benin": "Benín", + "Belize": "Belice", + "Barbados": "Barbados", + "Bangladesh": "Bangladés", + "Bahrain": "Baréin", + "Azerbaijan": "Azerbaiyán", + "Aruba": "Aruba", + "Anguilla": "Anguila", + "Angola": "Angola", + "American Samoa": "Samoa Americana", + "Algeria": "Argelia", + "Åland Islands": "Åland", + "Go to Home View": "Ir a la vista de inicio", + "Great! This Security Phrase looks strong enough.": "¡Genial! Esta frase de seguridad parece lo suficientemente segura.", + "Use Security Key": "Usar clave de seguridad", + "Use Security Key or Phrase": "Usar clave de seguridad o frase", + "Decide where your account is hosted": "Decide dónde quieres alojar tu cuenta", + "Host account on": "Alojar cuenta en", + "Already have an account? Sign in here": "¿Ya tienes una cuenta? Inicia sesión aquí", + "That username already exists, please try another.": "Ese nombre de usuario ya está en uso, escoge otro.", + "New? Create account": "¿Primera vez? Crea una cuenta", + "There was a problem communicating with the homeserver, please try again later.": "Ha ocurrido un error al conectarse a tu servidor base, inténtalo de nuevo más tarde.", + "New here? Create an account": "¿Primera vez? Crea una cuenta", + "Got an account? Sign in": "¿Ya tienes una cuenta? Iniciar sesión", + "Filter rooms and people": "Filtrar salas y personas", + "You have no visible notifications.": "No tienes notificaciones visibles.", + "%(creator)s created this DM.": "%(creator)s creó este mensaje directo.", + "You do not have permission to create rooms in this community.": "No tienes permisos para crear salas en esta comunidad.", + "Cannot create rooms in this community": "No puedes crear salas en esta comunidad", + "Now, let's help you get started": "Vamos a empezar", + "Welcome %(name)s": "Te damos la bienvenida, %(name)s", + "Add a photo so people know it's you.": "Añade una imagen para que la gente sepa que eres tú.", + "Forgot password?": "¿Has olvidado tu contraseña?", + "Enter phone number": "Escribe tu teléfono móvil", + "Enter email address": "Escribe tu dirección de correo electrónico", + "Something went wrong in confirming your identity. Cancel and try again.": "Ha ocurrido un error al confirmar tu identidad. Cancela e inténtalo de nuevo.", + "Open the link in the email to continue registration.": "Abre el enlace en el mensaje para seguir con el registro.", + "A confirmation email has been sent to %(emailAddress)s": "Se ha enviado un correo de confirmación a %(emailAddress)s", + "Move right": "Mover a la derecha", + "Move left": "Mover a la izquierda", + "Revoke permissions": "Quitar permisos", + "Hold": "Poner en espera", + "Resume": "Recuperar", + "Enter Security Phrase": "Introducir la frase de seguridad", + "Incorrect Security Phrase": "Frase de seguridad incorrecta", + "Unable to set up keys": "No se han podido configurar las claves", + "Invalid Security Key": "Clave de seguridad inválida", + "Wrong Security Key": "Clave de seguridad incorrecta", + "Remember this": "Recordar", + "The widget will verify your user ID, but won't be able to perform actions for you:": "Este widget verificará tu ID de usuario, pero no podrá actuar acciones en tu nombre:", + "Allow this widget to verify your identity": "Permitir a este widget verificar tu identidad", + "Decline All": "Rechazar todo", + "Approve": "Aprobar", + "This widget would like to:": "A este widget le gustaría:", + "Approve widget permissions": "Aprobar permisos de widget", + "About homeservers": "Sobre los servidores base", + "Learn more": "Más información", + "Use your preferred Matrix homeserver if you have one, or host your own.": "Usa tu servidor base de Matrix de confianza o aloja el tuyo propio.", + "Other homeserver": "Otro servidor base", + "Sign into your homeserver": "Iniciar sesión en tu servidor base", + "Matrix.org is the biggest public homeserver in the world, so it’s a good place for many.": "Matrix.org es el mayor servidor base del mundo, por lo que es un buen sitio para muchos.", + "Specify a homeserver": "Especificar un servidor base", + "Invalid URL": "URL inválida", + "Unable to validate homeserver": "No se ha podido validar el servidor base", + "Data on this screen is shared with %(widgetDomain)s": "Los datos en esta ventana se comparten con %(widgetDomain)s", + "Continuing without email": "Continuar sin correo electrónico", + "Modal Widget": "Widget emergente", + "Transfer": "Transferir", + "Failed to transfer call": "No se ha podido transferir la llamada", + "A call can only be transferred to a single user.": "Una llamada solo puede transferirse a un usuario.", + "Invite by email": "Invitar a través de correo electrónico", + "Send feedback": "Enviar comentarios", + "Report a bug": "Informar de un fallo", + "There are two ways you can provide feedback and help us improve %(brand)s.": "Hay dos maneras en las que nos puedes hacer llegar tus comentarios para ayudarnos a mejorar %(brand)s.", + "Comment": "Comentario", + "Add comment": "Añadir comentario", + "Please go into as much detail as you like, so we can track down the problem.": "Incluye todos los detalles que quieras, para que podamos investigar el problema.", + "Tell us below how you feel about %(brand)s so far.": "Cuéntanos qué te está pareciendo %(brand)s.", + "Rate %(brand)s": "Valora %(brand)s", + "Feedback sent": "Comentarios enviados", + "There was an error finding this widget.": "Ha ocurrido un error al buscar este widget.", + "Active Widgets": "Widgets activos", + "This version of %(brand)s does not support viewing some encrypted files": "Esta versión de %(brand)s no permite ver algunos archivos cifrados", + "Use the Desktop app to search encrypted messages": "Usa la aplicación de ordenador para buscar en los mensajes cifrados", + "Use the Desktop app to see all encrypted files": "Usar la aplicación de ordenador para ver todos los archivos cifrados", + "Video conference started by %(senderName)s": "Videoconferencia iniciada por %(senderName)s", + "Video conference updated by %(senderName)s": "Videoconferencia actualizada por %(senderName)s", + "You held the call Resume": "Has puesto la llamada en espera Recuperar", + "You held the call Switch": "Has puesto la llamada en espera Cambiar", + "Reason (optional)": "Motivo (opcional)", + "Homeserver": "Servidor base", + "Server Options": "Opciones del servidor", + "Messages here are end-to-end encrypted. Verify %(displayName)s in their profile - tap on their avatar.": "Estos mensajes se cifran de extremo a extremo. Verifica a %(displayName)s en su perfil - toca su imagen.", + "Role": "Rol", + "Start a new chat": "Empezar una nueva conversación", + "Open dial pad": "Abrir teclado numérico", + "Start a Conversation": "Empezar una conversación", + "This is the start of .": "Este es el inicio de .", + "Add a photo, so people can easily spot your room.": "Añade una imagen para que la gente reconozca la sala fácilmente.", + "%(displayName)s created this room.": "%(displayName)s creó esta sala.", + "You created this room.": "Creaste esta sala.", + "Add a topic to help people know what it is about.": "Añade un tema para que la gente sepa de qué va esta sala.", + "Topic: %(topic)s ": "Tema: %(topic)s ", + "Topic: %(topic)s (edit)": "Tema: %(topic)s (cambiar)", + "Remove messages sent by others": "Eliminar mensajes mandados por otros", + "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.": "Haz una copia de seguridad de tus claves de cifrado con los datos de tu cuenta por si pierdes acceso a tus sesiones. Las clave serán aseguradas con una clave de seguridad única.", + "The operation could not be completed": "No se ha podido completar la operación", + "Failed to save your profile": "No se ha podido guardar tu perfil", + "not found in storage": "no se ha encontrado en la memoria", + "Dial pad": "Teclado numérico", + "%(name)s on hold": "%(name)s está en espera", + "Return to call": "Volver a la llamada", + "Voice Call": "Llamada de voz", + "Video Call": "Videollamada", + "%(peerName)s held the call": "%(peerName)s ha puesto la llamada en espera", + "sends snowfall": "envía copos de nieve", + "Sends the given message with snowfall": "Envía el mensaje con copos de nieve", + "sends fireworks": "envía fuegos artificiales", + "Sends the given message with fireworks": "Envía el mensaje con fuegos artificiales", + "sends confetti": "envía confeti", + "Sends the given message with confetti": "Envía el mensaje con confeti", + "Show chat effects": "Ver efectos", + "Use Ctrl + Enter to send a message": "Usa Control + Intro para enviar un mensaje", + "Use Command + Enter to send a message": "Usa Comando + Intro para enviar un mensje", + "Use Ctrl + F to search": "Usa Control + F para buscar", + "Use Command + F to search": "Usa comando + F para buscar", + "Render LaTeX maths in messages": "Mostrar matemáticas en los mensajes usando LaTeX", + "%(senderName)s ended the call": "%(senderName)s ha terminado la llamada", + "You ended the call": "Has terminado la llamada", + "New version of %(brand)s is available": "Hay una nueva versión de %(brand)s disponible", + "Safeguard against losing access to encrypted messages & data": "Evita perder acceso a datos y mensajes cifrados", + "Use app": "Usar la aplicación", + "Use app for a better experience": "Usa la aplicación para una experiencia mejor", + "Enable desktop notifications": "Activar notificaciones de escritorio", + "Don't miss a reply": "No te pierdas ninguna respuesta", + "Send messages as you in your active room": "Enviar mensajes en tu sala activa", + "See messages posted to your active room": "Ver los mensajes publicados en tu sala activa", + "See text messages posted to your active room": "Ver mensajes de texto publicados a tu sala activa", + "See text messages posted to this room": "Ver mensajes de texto publicados en esta sala", + "Send text messages as you in your active room": "Enviar mensajes de texto en tu nombre a tu sala actual", + "Send text messages as you in this room": "Enviar mensajes de texto en tu nombre a esta sala", + "See messages posted to this room": "Ver los mensajes publicados en esta sala", + "with an empty state key": "con una clave de estado vacía", + "Change the avatar of your active room": "Cambiar la foto de tu sala actual", + "See when the avatar changes in this room": "Ver cuándo cambia la imagen de esta sala", + "Change the avatar of this room": "Cambiar la imagen de esta sala", + "See when the name changes in your active room": "Ver cuándo cambia el tema de tu sala actual", + "Change the name of your active room": "Cambiar el nombre de tu sala actual", + "See when the name changes in this room": "Ver cuándo cambia el tema de esta sala", + "Change the name of this room": "Cambiar el tema de esta sala", + "Sint Maarten": "San Martín", + "Singapore": "Singapur", + "Sierra Leone": "Sierra Leona", + "Serbia": "Serbia", + "Senegal": "Senegal", + "Saudi Arabia": "Arabia Saudí", + "San Marino": "San Marino", + "Samoa": "Samoa", + "Réunion": "Reunión", + "Russia": "Rusia", + "Romania": "Rumanía", + "Qatar": "Catar", + "Puerto Rico": "Puerto Rico", + "Portugal": "Portugal", + "Poland": "Polonia", + "Philippines": "Filipinas", + "Peru": "Perú", + "Paraguay": "Paraguay", + "Papua New Guinea": "Papúa-Nueva Guinea", + "Panama": "Panamá", + "Palestine": "Palestina", + "Pakistan": "Pakistán", + "Norway": "Noruega", + "North Korea": "Corea del Norte", + "Mongolia": "Mongolia", + "Montenegro": "Montenegro", + "Element Web is experimental on mobile. For a better experience and the latest features, use our free native app.": "Element Web en móviles es un experimento. Para una mejor experiencia y las últimas funcionalidades, usa nuestra aplicación nativa gratuita.", + "See when the topic changes in your active room": "Ver cuándo cambia el tema de tu sala actual", + "Change the topic of your active room": "Cambiar el tema de tu sala actual", + "See when the topic changes in this room": "Ver cuándo cambia el tema de esta sala", + "Change the topic of this room": "Cambiar el tema de esta sala", + "%(senderName)s declined the call.": "%(senderName)s ha rechazado la llamada.", + "(an error occurred)": "(ha ocurrido un error)", + "(their device couldn't start the camera / microphone)": "(su dispositivo no ha podido acceder a la cámara o micrófono)", + "(connection failed)": "(conexión fallida)", + "%(senderDisplayName)s changed the server ACLs for this room.": "%(senderDisplayName)s ha cambiado los permisos de la sala.", + "%(senderDisplayName)s set the server ACLs for this room.": "%(senderDisplayName)s ha establecido los permisos de la sala.", + "Converts the DM to a room": "Convierte el mensaje directo a sala", + "Converts the room to a DM": "Convierte la sala a un mensaje directo", + "Takes the call in the current room off hold": "Quita la llamada de la sala actual de espera", + "Places the call in the current room on hold": "Pone la llamada de la sala actual en espera", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "Pone «(╯°□°)╯︵ ┻━┻» delante de un mensaje de texto", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "Pone «┬──┬ ノ( ゜-゜ノ)» después de un mensaje de texto", + "Effects": "Efectos", + "Japan": "Japón", + "Jamaica": "Jamaica", + "Italy": "Italia", + "Israel": "Israel", + "Ireland": "Irlanda", + "Iraq": "Iraq", + "Iran": "Irán", + "Indonesia": "Indonesia", + "India": "India", + "Iceland": "Islandia", + "Hungary": "Hungría", + "Hong Kong": "Hong Kong", + "Honduras": "Honduras", + "Guinea": "Guinea", + "Guatemala": "Guatemala", + "Greenland": "Groenlandia", + "Greece": "Grecia", + "Gibraltar": "Gibraltar", + "Germany": "Alemania", + "Gabon": "Gabón", + "France": "Francia", + "Finland": "Finlandia", + "Falkland Islands": "Islas Malvinas", + "Ethiopia": "Etiopía", + "Estonia": "Estonia", + "Equatorial Guinea": "Guinea Ecuatorial", + "El Salvador": "El Salvador", + "Egypt": "Egipto", + "Ecuador": "Ecuador", + "Dominican Republic": "República Dominicana", + "Denmark": "Dinamarca", + "Côte d’Ivoire": "Costa de Marfil", + "Czech Republic": "República Checa", + "Cyprus": "Chipre", + "Cuba": "Cuba", + "Croatia": "Croacia", + "Costa Rica": "Costa Rica", + "Colombia": "Colombia", + "China": "China", + "Chile": "Chile", + "Cayman Islands": "Islas Caimán", + "Cape Verde": "Cabo Verde", + "Canada": "Canadá", + "Cameroon": "Camerún", + "Cambodia": "Cambodia", + "Bulgaria": "Bulgaria", + "Brazil": "Brasil", + "Bolivia": "Bolivia", + "Belgium": "Bélgica", + "Belarus": "Bielorrusia", + "Bahamas": "Bahamas", + "Austria": "Austria", + "Australia": "Australia", + "Armenia": "Armenia", + "Argentina": "Argentina", + "Antigua & Barbuda": "Antigua y Barbuda", + "Antarctica": "Antártica", + "Andorra": "Andorra", + "Albania": "Albania", + "Afghanistan": "Afganistán", + "United States": "Estados Unidos", + "United Kingdom": "Reino Unido", + "Your homeserver rejected your log in attempt. This could be due to things just taking too long. Please try again. If this continues, please contact your homeserver administrator.": "Tu servidor base está rechazando tu intento de inicio de sesión. Puede que sea porque el proceso esté llevando demasiado. Por favor, inténtalo de nuevo. Si esto sigue ocurriendo, ponte en contacto con la administración de tu servidor base.", + "Your homeserver was unreachable and was not able to log you in. Please try again. If this continues, please contact your homeserver administrator.": "No se ha podido establecer la conexión con tu servidor base, por lo que no se ha podido iniciar tu sesión. Por favor, inténtalo de nuevo. Si sigue ocurriendo, contacta con la administración de tu servidor base.", + "Try again": "Intentarlo de nuevo", + "We asked the browser to remember which homeserver you use to let you sign in, but unfortunately your browser has forgotten it. Go to the sign in page and try again.": "Le hemos preguntado a tu navegador qué servidor base usar para iniciar tu sesión, pero parece que no lo recuerda. Vuelve a la página de inicio de sesión e inténtalo de nuevo.", + "We couldn't log you in": "No hemos podido iniciar tu sesión", + "End conference": "Terminar conferencia", + "You've reached the maximum number of simultaneous calls.": "Has llegado al límite de llamadas simultáneas.", + "Too Many Calls": "Demasiadas llamadas", + "No other application is using the webcam": "No hay otra aplicación usando la cámara", + "Permission is granted to use the webcam": "Se ha dado permiso al programa para acceder a ellos", + "A microphone and webcam are plugged in and set up correctly": "El micrófono y cámara están enchufados y bien configurados", + "Call failed because webcam or microphone could not be accessed. Check that:": "La llamada ha fallado porque no se ha podido acceder a la cámara o al micrófono. Comprueba que:", + "Unable to access webcam / microphone": "No se ha podido acceder a la cámara o micrófono", + "Call failed because microphone could not be accessed. Check that a microphone is plugged in and set up correctly.": "La llamada ha fallado porque no se ha podido acceder al micrófono. Comprueba que tengas uno enchufado y configurado correctamente.", + "Unable to access microphone": "No se ha podido acceder al micrófono", + "The call was answered on another device.": "Esta llamada fue respondida en otro dispositivo.", + "Answered Elsewhere": "Respondida en otra parte", + "The call could not be established": "No se ha podido establecer la llamada", + "The other party declined the call.": "La otra persona ha rechazado la llamada.", + "Call Declined": "Llamada rechazada" } diff --git a/src/i18n/strings/et.json b/src/i18n/strings/et.json index 10f4b6f4a0..4d129c2ca3 100644 --- a/src/i18n/strings/et.json +++ b/src/i18n/strings/et.json @@ -62,7 +62,7 @@ "Voice call": "Häälkõne", "Video call": "Videokõne", "Hangup": "Katkesta kõne", - "Upload file": "Lae fail üles", + "Upload file": "Laadi fail üles", "Send an encrypted reply…": "Saada krüptitud vastus…", "Send a reply…": "Saada vastus…", "Send an encrypted message…": "Saada krüptitud sõnum…", @@ -105,7 +105,7 @@ "expand": "laienda", "Communities": "Kogukonnad", "You cannot delete this image. (%(code)s)": "Sa ei saa seda pilti eemaldada, (%(code)s)", - "Uploaded on %(date)s by %(user)s": "Üles laetud %(date)s %(user)s poolt", + "Uploaded on %(date)s by %(user)s": "Üles laaditud %(date)s %(user)s poolt", "Rotate Left": "Pööra vasakule", "Rotate counter-clockwise": "Pööra vastupäeva", "Rotate Right": "Pööra paremale", @@ -157,7 +157,7 @@ "Remove from community": "Eemalda kogukonnast", "Remove this user from community?": "Kas eemaldan selle kasutaja kogukonnast?", "Failed to remove user from community": "Kasutaja eemaldamine kogukonnast ebaõnnestus", - "Failed to load group members": "Grupi liikmete laadimine ebaõnnestus", + "Failed to load group members": "Grupi liikmete laadimine ei õnnestunud", "Filter community members": "Filtreeri kogukonna liikmeid", "Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "Kas sa soovid eemaldada %(roomName)s jututoa %(groupId)s kogukonnast?", "Removing a room from the community will also remove it from the community page.": "Eemaldades jututoa kogukonnast eemaldad selle ka kogukonna lehelt.", @@ -172,11 +172,11 @@ "%(networkName)s rooms": "%(networkName)s jututoad", "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Kas sa oled kindel et soovid eemaldada (kustutada) seda sündmust? Pane tähele, et see muutus võib tagasi pöörduda, kui muudad hiljem jututoa nime või teema nime.", "Sign out and remove encryption keys?": "Logi välja ja eemalda krüptimisvõtmed?", - "Upload files (%(current)s of %(total)s)": "Lae failid üles (%(current)s / %(total)s)", - "Upload files": "Lae failid üles", + "Upload files (%(current)s of %(total)s)": "Laadin faile üles (%(current)s / %(total)s)", + "Upload files": "Laadi failid üles", "These files are too large to upload. The file size limit is %(limit)s.": "Need failid on üleslaadimiseks liiga suured. Failisuuruse piir on %(limit)s.", "Some files are too large to be uploaded. The file size limit is %(limit)s.": "Mõned failid on üleslaadimiseks liiga suured. Failisuuruse piir on %(limit)s.", - "Upload %(count)s other files|other": "Lae üles %(count)s muud faili", + "Upload %(count)s other files|other": "Laadi üles %(count)s muud faili", "Unable to reject invite": "Ei õnnestu kutset tagasi lükata", "Resend": "Saada uuesti", "Resend edit": "Saada muudetud sõnum uuesti", @@ -222,7 +222,7 @@ "Remove %(name)s from the directory?": "Eemalda %(name)s kataloogist?", "Remove from Directory": "Eemalda kataloogist", "remove %(name)s from the directory.": "eemalda %(name)s kataloogist.", - "You seem to be uploading files, are you sure you want to quit?": "Tundub, et sa parasjagu laed faile üles. Kas sa kindlasti soovid väljuda?", + "You seem to be uploading files, are you sure you want to quit?": "Tundub, et sa parasjagu laadid faile üles. Kas sa kindlasti soovid väljuda?", "Failed to set direct chat tag": "Otsevestluse sildi lisamine ei õnnestunud", "Failed to remove tag %(tagName)s from room": "Sildi %(tagName)s eemaldamine jututoast ebaõnnestus", "Calls": "Kõned", @@ -322,7 +322,7 @@ "Attachment": "Manus", "Error decrypting attachment": "Viga manuse dekrüptimisel", "Decrypt %(text)s": "Dekrüpti %(text)s", - "Download %(text)s": "Lae alla %(text)s", + "Download %(text)s": "Laadi alla %(text)s", "Invalid file%(extra)s": "Vigane fail %(extra)s", "Error decrypting image": "Viga pildi dekrüptimisel", "Show image": "Näita pilti", @@ -416,7 +416,7 @@ "System Alerts": "Süsteemi teated", "This room": "See jututuba", "Joining room …": "Liitun jututoaga …", - "Loading …": "Laen …", + "Loading …": "Laadin …", "e.g. %(exampleValue)s": "näiteks %(exampleValue)s", "Could not find user in room": "Jututoast ei leidnud kasutajat", "Show timestamps in 12 hour format (e.g. 2:30pm)": "Näita ajatempleid 12-tunnises vormingus (näiteks 2:30pl)", @@ -468,7 +468,7 @@ "Search…": "Otsi…", "Cancel search": "Tühista otsing", "Search failed": "Otsing ebaõnnestus", - "Server may be unavailable, overloaded, or search timed out :(": "Server kas pole leitav, on üle koormatud või otsing aegus :(", + "Server may be unavailable, overloaded, or search timed out :(": "Server kas pole leitav, on ülekoormatud või otsing aegus :(", "No more results": "Rohkem otsingutulemusi pole", "%(brand)s is securely caching encrypted messages locally for them to appear in search results:": "Otsingus kasutamiseks %(brand)s puhverdab turvaliselt kohalikku arvutisse krüptitud sõnumeid:", "%(brand)s does not have permission to send you notifications - please check your browser settings": "%(brand)s'il puudub luba sulle teavituste kuvamiseks - palun kontrolli oma brauseri seadistusi", @@ -584,10 +584,10 @@ "You have verified this user. This user has verified all of their sessions.": "Sa oled selle kasutaja verifitseerinud. See kasutaja on verifitseerinud kõik nende sessioonid.", "Someone is using an unknown session": "Keegi kasutab tundmatut sessiooni", "This event could not be displayed": "Seda sündmust ei õnnestunud kuvada", - "Downloading update...": "Laen alla uuendust...", - "Download this file": "Lae see fail alla", + "Downloading update...": "Laadin alla uuendust...", + "Download this file": "Laadi see fail alla", "You can now close this window or log in to your new account.": "Sa võid nüüd sulgeda selle akna või logida sisse oma uuele kontole.", - "Download": "Lae alla", + "Download": "Laadi alla", "Your recovery key is in your Downloads folder.": "Sinu taastevõti on sinu Allalaadimised kasutas.", "Disable": "Lülita välja", "Not currently indexing messages for any room.": "Mitte ainsamagi jututoa sõnumeid hetkel ei indekseerita.", @@ -619,7 +619,7 @@ "%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s muutis jututoa vana nime %(oldRoomName)s uueks nimeks %(newRoomName)s.", "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s muutis jututoa nimeks %(roomName)s.", "Show info about bridges in room settings": "Näita jututoa seadistustes teavet sõnumisildade kohta", - "Upload": "Lae üles", + "Upload": "Laadi üles", "Save": "Salvesta", "General": "Üldist", "Notifications": "Teavitused", @@ -701,7 +701,7 @@ "Show display name changes": "Näita kuvatava nime muutusi", "Match system theme": "Kasuta süsteemset teemat", "Messages containing my display name": "Sõnumid, mis sisaldavad minu kuvatavat nime", - "Failed to upload profile picture!": "Profiilipildi üleslaadimine ebaõnnestus!", + "Failed to upload profile picture!": "Profiilipildi üleslaadimine ei õnnestunud!", "No display name": "Kuvatav nimi puudub", "New passwords don't match": "Uued salasõnad ei klapi", "Passwords can't be empty": "Salasõna ei saa olla tühi", @@ -920,9 +920,9 @@ "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Üritasin laadida teatud hetke selle jututoa ajajoonelt, kuid sul ei ole õigusi selle sõnumi nägemiseks.", "Failed to load timeline position": "Asukoha laadimine ajajoonel ei õnnestunud", "Guest": "Külaline", - "Uploading %(filename)s and %(count)s others|other": "Laen üles %(filename)s ning %(count)s muud faili", - "Uploading %(filename)s and %(count)s others|zero": "Laen üles %(filename)s", - "Uploading %(filename)s and %(count)s others|one": "Laen üles %(filename)s ning veel %(count)s faili", + "Uploading %(filename)s and %(count)s others|other": "Laadin üles %(filename)s ning %(count)s muud faili", + "Uploading %(filename)s and %(count)s others|zero": "Laadin üles %(filename)s", + "Uploading %(filename)s and %(count)s others|one": "Laadin üles %(filename)s ning veel %(count)s faili", "Verify this login": "Verifitseeri see sisselogimissessioon", "Session verified": "Sessioon on verifitseeritud", "Failed to send email": "E-kirja saatmine ebaõnnestus", @@ -974,7 +974,7 @@ "You have no visible notifications": "Sul ei ole nähtavaid teavitusi", "%(brand)s failed to get the protocol list from the homeserver. The homeserver may be too old to support third party networks.": "%(brand)s'il ei õnnestunud koduserverist laadida toetatud protokollide loendit. Toetamaks kolmandate osapoolte võrke võib koduserver olla liiga vana.", "%(brand)s failed to get the public room list.": "%(brand)s'il ei õnnestunud laadida avalike jututubade loendit.", - "The homeserver may be unavailable or overloaded.": "Koduserver pole kas saadaval või on üle koormatud.", + "The homeserver may be unavailable or overloaded.": "Koduserver pole kas saadaval või on ülekoormatud.", "Room not found": "Jututuba ei leidunud", "Preview": "Eelvaade", "View": "Näita", @@ -1011,7 +1011,7 @@ "Everyone": "Kes iganes soovib", "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!": "Sinu kogukonnal on puudu pikk kirjeldus, mis pole muud, kui lihtne HTML-leht, mida kuvatakse liikmetele.
Klõpsi siia ja loo selline leht!", "Long Description (HTML)": "Pikk kirjeldus (HTML)", - "Upload avatar": "Lae üles profiilipilt ehk avatar", + "Upload avatar": "Laadi üles profiilipilt ehk avatar", "Description": "Kirjeldus", "Community %(groupId)s not found": "%(groupId)s kogukonda ei leidunud", "This homeserver does not support communities": "See koduserver ei toeta kogukondade funktsionaalsust", @@ -1030,7 +1030,7 @@ "Click here to fix": "Parandamiseks klõpsi siia", "Server error": "Serveri viga", "Command error": "Käsu viga", - "Server unavailable, overloaded, or something else went wrong.": "Kas server pole saadaval, on üle koormatud või midagi muud läks viltu.", + "Server unavailable, overloaded, or something else went wrong.": "Server pole kas saadaval, on ülekoormatud või midagi muud läks viltu.", "Unknown Command": "Tundmatu käsk", "Unrecognised command: %(commandText)s": "Tundmatu käsk: %(commandText)s", "Send as message": "Saada sõnumina", @@ -1054,7 +1054,7 @@ "Rejecting invite …": "Hülgan kutset …", "Join the conversation with an account": "Liitu vestlusega kasutades oma kontot", "Sign Up": "Registreeru", - "Loading room preview": "Laen jututoa eelvaadet", + "Loading room preview": "Laadin jututoa eelvaadet", "You were kicked from %(roomName)s by %(memberName)s": "%(memberName)s müksas sind välja jututoast %(roomName)s", "Reason: %(reason)s": "Põhjus: %(reason)s", "Forget this room": "Unusta see jututuba", @@ -1177,13 +1177,13 @@ "Recently Direct Messaged": "Viimased otsesõnumite saajad", "Invite someone using their name, username (like), email address or share this room.": "Kutsu kedagi tema nime, kasutajanime (nagu ), e-posti aadressi alusel või jaga seda jututuba.", "Upload completed": "Üleslaadimine valmis", - "%(brand)s now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!": "%(brand)s kasutab varasemaga võrreldes 3-5 korda vähem mälu, sest laeb teavet kasutajate kohta vaid siis, kui vaja. Palun oota hetke, kuni sünkroniseerime andmeid serveriga!", + "%(brand)s now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!": "%(brand)s kasutab varasemaga võrreldes 3-5 korda vähem mälu, sest laadib teavet kasutajate kohta vaid siis, kui vaja. Palun oota hetke, kuni sünkroniseerime andmeid serveriga!", "Updating %(brand)s": "Uuendan rakendust %(brand)s", "I don't want my encrypted messages": "Ma ei soovi oma krüptitud sõnumeid", "Manually export keys": "Ekspordi võtmed käsitsi", "You'll lose access to your encrypted messages": "Sa kaotad ligipääsu oma krüptitud sõnumitele", "Are you sure you want to sign out?": "Kas sa oled kindel, et soovid välja logida?", - "Upload %(count)s other files|one": "Lae üles %(count)s muu fail", + "Upload %(count)s other files|one": "Laadi üles %(count)s muu fail", "Cancel All": "Tühista kõik", "Upload Error": "Üleslaadimise viga", "Verify other session": "Verifitseeri teine sessioon", @@ -1275,7 +1275,7 @@ "Your password has been reset.": "Sinu salasõna on muudetud.", "Dismiss read marker and jump to bottom": "Ära arvesta loetud sõnumite järjehoidjat ning mine kõige lõppu", "Jump to oldest unread message": "Mine vanima lugemata sõnumi juurde", - "Upload a file": "Lae fail üles", + "Upload a file": "Laadi fail üles", "Read Marker lifetime (ms)": "Lugemise markeri iga (ms)", "Unignore": "Lõpeta eiramine", " ": " ", @@ -1289,7 +1289,7 @@ "Key backup": "Võtmete varundus", "Cross-signing": "Risttunnustamine", "Warning: Upgrading a room will not automatically migrate room members to the new version of the room. We'll post a link to the new room in the old version of the room - room members will have to click this link to join the new room.": "Hoiatus: Jututoa versiooni uuendamine ei koli jututoa liikmeid automaatselt uude jututoa olekusse. Vanas jututoa versioonis saab olema viide uuele versioonile ning kõik liikmed peavad seda viidet klõpsama.", - "Uploaded sound": "Üleslaetud heli", + "Uploaded sound": "Üleslaaditud heli", "Sounds": "Helid", "Notification sound": "Teavitusheli", "Reset": "Taasta algolek", @@ -1326,7 +1326,7 @@ "The file '%(fileName)s' failed to upload.": "Faili '%(fileName)s' üleslaadimine ei õnnestunud.", "The file '%(fileName)s' exceeds this homeserver's size limit for uploads": "Faili '%(fileName)s' suurus ületab serveris seadistatud üleslaadimise piiri", "Upload Failed": "Üleslaadimine ei õnnestunud", - "Server may be unavailable, overloaded, or you hit a bug.": "Server kas pole võrgus või on üle koormatud, aga võib-olla oled komistanud süsteemivea otsa.", + "Server may be unavailable, overloaded, or you hit a bug.": "Server kas pole võrgus või on ülekoormatud, aga võib-olla oled hoopis komistanud süsteemivea otsa.", "The server does not support the room version specified.": "See server ei toeta antud jututoa versiooni.", "Failure to create room": "Jututoa loomine ei õnnestunud", "If you cancel now, you won't complete verifying the other user.": "Kui sa katkestad nüüd, siis sul jääb teise kasutaja verifitseerimine lõpetamata.", @@ -1370,7 +1370,7 @@ "Ensure you have a stable internet connection, or get in touch with the server admin": "Palun kontrolli, kas sul on toimiv internetiühendus ning kui on, siis küsi abi koduserveri haldajalt", "Your %(brand)s is misconfigured": "Sinu %(brand)s'i seadistused on paigast ära", "Your homeserver does not support session management.": "Sinu koduserver ei toeta sessioonide haldust.", - "Unable to load session list": "Sessioonide laadimine ei õnnestunud", + "Unable to load session list": "Sessioonide loendi laadimine ei õnnestunud", "Identity server URL does not appear to be a valid identity server": "Isikutuvastusserveri aadress ei tundu viitama kehtivale isikutuvastusserverile", "Looks good!": "Tundub õige!", "Use Recovery Key or Passphrase": "Kasuta taastevõtit või paroolifraasi", @@ -1579,8 +1579,8 @@ "You can now return to your account after signing out, and sign in on other devices.": "Nüüd sa saad peale väljalogimist pöörduda tagasi oma konto juurde või logida sisse muudest seadmetest.", "Remember, you can always set an email address in user settings if you change your mind.": "Jäta meelde, et sa saad alati hiljem määrata kasutajaseadetest oma e-posti aadressi.", "Use bots, bridges, widgets and sticker packs": "Kasuta roboteid, sõnumisildu, vidinaid või kleepsupakke", - "Upload all": "Lae kõik üles", - "This file is too large to upload. The file size limit is %(limit)s but this file is %(sizeOfThisFile)s.": "See fail on üleslaadimiseks liiga suur. Üleslaetavate failide mahupiir on %(limit)s, kuid selle faili suurus on %(sizeOfThisFile)s.", + "Upload all": "Laadi kõik üles", + "This file is too large to upload. The file size limit is %(limit)s but this file is %(sizeOfThisFile)s.": "See fail on üleslaadimiseks liiga suur. Üleslaaditavate failide mahupiir on %(limit)s, kuid selle faili suurus on %(sizeOfThisFile)s.", "Appearance": "Välimus", "Enter recovery passphrase": "Sisesta taastamise paroolifraas", "For security, this session has been signed out. Please sign in again.": "Turvalisusega seotud põhjustel on see sessioon välja logitud. Palun logi uuesti sisse.", @@ -1751,7 +1751,7 @@ "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)s lahkusid ja liitusid uuesti", "%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)s lahkus ja liitus uuesti %(count)s korda", "%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)s lahkus ja liitus uuesti", - "To use it, just wait for autocomplete results to load and tab through them.": "Selle kasutamiseks oota, kuni automaatne sõnalõpetus laeb kõik valikud ja sa saad nad läbi lapata.", + "To use it, just wait for autocomplete results to load and tab through them.": "Selle kasutamiseks oota, kuni automaatne sõnalõpetus laadib kõik valikud ja sa saad nad läbi lapata.", "Bans user with given id": "Keela ligipääs antud tunnusega kasutajale", "Unbans user with given ID": "Taasta ligipääs antud tunnusega kasutajale", "Ignores a user, hiding their messages from you": "Eirab kasutajat peites kõik tema sõnumid sinu eest", @@ -1806,7 +1806,7 @@ "This bridge is managed by .": "Seda võrgusilda haldab .", "Workspace: %(networkName)s": "Tööruum: %(networkName)s", "Channel: %(channelName)s": "Kanal: %(channelName)s", - "Upload new:": "Lae üles uus:", + "Upload new:": "Laadi üles uus:", "Export E2E room keys": "Ekspordi jututubade läbiva krüptimise võtmed", "Your homeserver does not support cross-signing.": "Sinu koduserver ei toeta risttunnustamist.", "Cross-signing and secret storage are enabled.": "Risttunnustamine ja turvahoidla on kasutusel.", @@ -1843,7 +1843,7 @@ "Legal": "Juriidiline teave", "Credits": "Tänuavaldused", "Bug reporting": "Vigadest teatamine", - "Clear cache and reload": "Tühjenda puhver ja lae uuesti", + "Clear cache and reload": "Tühjenda puhver ja laadi uuesti", "FAQ": "Korduma kippuvad küsimused", "Versions": "Versioonid", "%(brand)s version:": "%(brand)s'i versioon:", @@ -1905,7 +1905,7 @@ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (õigused %(powerLevelNumber)s)", "Emoji picker": "Emoji'de valija", "No pinned messages.": "Klammerdatud sõnumeid ei ole.", - "Loading...": "Laen...", + "Loading...": "Laadin...", "Pinned Messages": "Klammerdatud sõnumid", "Unpin Message": "Eemalda sõnumi klammerdus", "No recently visited rooms": "Hiljuti külastatud jututubasid ei leidu", @@ -2414,13 +2414,13 @@ "If the other version of %(brand)s is still open in another tab, please close it as using %(brand)s on the same host with both lazy loading enabled and disabled simultaneously will cause issues.": "Kui %(brand)s teine versioon on mõnel teisel vahekaardil endiselt avatud, palun sulge see. %(brand)s kasutamine samal serveril põhjustab vigu olukorras, kus laisk laadimine on samal ajal lubatud ja keelatud.", "Data from an older version of %(brand)s has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "%(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.", "Navigation": "Navigeerimine", - "Uploading logs": "Laen üles logisid", - "Downloading logs": "Laen alla logisid", + "Uploading logs": "Laadin logisid üles", + "Downloading logs": "Laadin logisid alla", "Can't see what you’re looking for?": "Kas sa ei leia seda, mida otsisid?", "Explore all public rooms": "Sirvi kõiki avalikke jututubasid", "%(count)s results|other": "%(count)s tulemust", "Preparing to download logs": "Valmistun logikirjete allalaadimiseks", - "Download logs": "Lae logikirjed alla", + "Download logs": "Laadi logikirjed alla", "Unexpected server error trying to leave the room": "Jututoast lahkumisel tekkis serveris ootamatu viga", "Error leaving room": "Viga jututoast lahkumisel", "Communities v2 prototypes. Requires compatible homeserver. Highly experimental - use with caution.": "Kogukondade v2 prototüüp. Eeldab, et koduserver toetab sellist funktsionaalsust. Lahendus on esialgne ja katseline - kui kasutad, siis väga ettevaatlikult.", @@ -2972,5 +2972,86 @@ "You held the call Resume": "Sa panid kõne ootele. Jätka kõnet", "You've reached the maximum number of simultaneous calls.": "Oled jõudnud suurima lubatud samaaegsete kõnede arvuni.", "%(name)s paused": "%(name)s peatas ajutiselt kõne", - "Too Many Calls": "Liiga palju kõnesid" + "Too Many Calls": "Liiga palju kõnesid", + "sends fireworks": "saadab ilutulestiku", + "Sends the given message with fireworks": "Lisab sellele sõnumile ilutulestiku", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "Lisab vormindamata sõnumi ette ┬──┬ ノ( ゜-゜ノ)", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "Lisab vormindamata sõnumi ette (╯°□°)╯︵ ┻━┻", + "You held the call Switch": "Sa panid kõne ootele Lülita tagasi", + "%(name)s on hold": "%(name)s on ootel", + "sends snowfall": "saadab lumesaju", + "Sends the given message with snowfall": "Saadab antud sõnumi koos lumesajuga", + "You have no visible notifications.": "Sul pole nähtavaid teavitusi.", + "Transfer": "Suuna kõne edasi", + "Failed to transfer call": "Kõne edasisuunamine ei õnnestunud", + "A call can only be transferred to a single user.": "Kõnet on võimalik edasi suunata vaid ühele kasutajale.", + "There was an error finding this widget.": "Selle vidina leidmisel tekkis viga.", + "Active Widgets": "Kasutusel vidinad", + "Open dial pad": "Ava numbriklahvistik", + "Start a Conversation": "Alusta vestlust", + "Dial pad": "Numbriklahvistik", + "There was an error looking up the phone number": "Telefoninumbri otsimisel tekkis viga", + "Unable to look up phone number": "Telefoninumbrit ei õnnestu leida", + "Channel: ": "Kanal: ", + "Workspace: ": "Tööruum: ", + "Change which room, message, or user you're viewing": "Muuda jututuba, sõnumit või kasutajat, mida hetkel vaatad", + "Use Security Key": "Kasuta turvavõtit", + "Use Security Key or Phrase": "Kasuta turvavõtit või turvafraasi", + "If you've forgotten your Security Key you can ": "Kui sa oled unustanud oma turvavõtme, siis sa võid ", + "Access your secure message history and set up secure messaging by entering your Security Key.": "Sisestades turvavõtme pääsed ligi oma turvatud sõnumitele ning sätid tööle krüptitud sõnumivahetuse.", + "Not a valid Security Key": "Vigane turvavõti", + "This looks like a valid Security Key!": "See tundub olema õige turvavõti!", + "Enter Security Key": "Sisesta turvavõti", + "If you've forgotten your Security Phrase you can use your Security Key orset up new recovery options ": "Kui sa oled unustanud turvafraasi, siis sa saadkasutada oma turvavõtit võiseadistada uued taastamise võimalused ", + "Access your secure message history and set up secure messaging by entering your Security Phrase.": "Sisestades turvafraasi, saad ligipääsu oma turvatud sõnumitele ning sätid toimima krüptitud sõnumivahetuse.", + "Enter Security Phrase": "Sisesta turvafraas", + "Backup could not be decrypted with this Security Phrase: please verify that you entered the correct Security Phrase.": "Selle turvafraasiga ei õnnestunud varundust dekrüptida: palun kontrolli, kas sa kasutad õiget turvafraasi.", + "Incorrect Security Phrase": "Vigane turvafraas", + "Backup could not be decrypted with this Security Key: please verify that you entered the correct Security Key.": "Selle turvavõtmega ei õnnestunud varundust dekrüptida: palun kontrolli, kas sa kasutad õiget turvavõtit.", + "Security Key mismatch": "Turvavõtmed ei klapi", + "Unable to access secret storage. Please verify that you entered the correct Security Phrase.": "Ei õnnestu saada ligipääsu turvahoidlale. Palun kontrolli, et sa oleksid sisestanud õige turvafraasi.", + "Invalid Security Key": "Vigane turvavõti", + "Wrong Security Key": "Vale turvavõti", + "We recommend you change your password and Security Key in Settings immediately": "Me soovitame, et vaheta Seadistuste lehelt koheselt oma salasõna ja turvavõti", + "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.": "Selleks puhuks, kui sa kaotad ligipääsu kõikidele oma sessioonidele, tee varukoopia oma krüptovõtmetest ja kasutajakonto seadistustest. Unikaalse turvavõtmega tagad selle, et sinu varukoopia on kaitstud.", + "This session has detected that your Security Phrase and key for Secure Messages have been removed.": "Oleme tuvastanud, et selles sessioonis ei leidu turvafraasi ega krüptitud sõnumite turvavõtit.", + "A new Security Phrase and key for Secure Messages have been detected.": "Tuvastasin krüptitud sõnumite uue turvafraasi ja turvavõtme.", + "Make a copy of your Security Key": "Tee oma turvavõtmest koopia", + "Confirm your Security Phrase": "Kinnita oma turvafraasi", + "Secure your backup with a Security Phrase": "Krüpti oma varukoopia turvafraasiga", + "Your Security Key is in your Downloads folder.": "Sinu turvavõti asub sinu kaustas Allalaadimised.", + "Your Security Key has been copied to your clipboard, paste it to:": "Sinu turvavõti on kopeeritud lõikelauale, aseta ta:", + "Your Security Key": "Sinu turvavõti", + "Your Security Key is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase.": "Sinu turvavõti toimib julgestusena - juhul, kui sa unustad turvafraasi, siis sa saad seda kasutada taastamaks ligipääsu krüptitud sõnumitele.", + "Repeat your Security Phrase...": "Korda oma turvafraasi...", + "Please enter your Security Phrase a second time to confirm.": "Kinnitamiseks palun sisesta turvafraas teist korda.", + "Set up with a Security Key": "Võta kasutusele turvavõti", + "Great! This Security Phrase looks strong enough.": "Suurepärane! Turvafraas on piisavalt kange.", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a Security Phrase.": "Me salvestame krüptitud koopia sinu krüptovõtmetest oma serveris. Selle koopia krüptimisel kasutame sinu turvafraasi.", + "Set my room layout for everyone": "Kasuta minu jututoa paigutust kõigi jaoks", + "%(senderName)s has updated the widget layout": "%(senderName)s on uuendanud vidinate paigutust", + "Search (must be enabled)": "Otsing (peab olema lubatud)", + "Remember this": "Jäta see meelde", + "The widget will verify your user ID, but won't be able to perform actions for you:": "See vidin verifitseerib sinu kasutajatunnuse, kuid ta ei saa sinu nimel toiminguid teha:", + "Allow this widget to verify your identity": "Luba sellel vidinal sinu isikut verifitseerida", + "Use Ctrl + F to search": "Otsimiseks vajuta Ctrl + F klahve", + "Use Command + F to search": "Otsimiseks vajuta Cmd + F klahve", + "Converts the DM to a room": "Muuda otsevestlus jututoaks", + "Converts the room to a DM": "Muuda jututuba otsevestluseks", + "Use app for a better experience": "Rakendusega saad Matrix'is suhelda parimal viisil", + "Something went wrong in confirming your identity. Cancel and try again.": "Midagi läks sinu isiku tuvastamisel viltu. Tühista viimane toiming ja proovi uuesti.", + "Use app": "Kasuta rakendust", + "Element Web is experimental on mobile. For a better experience and the latest features, use our free native app.": "Brauseripõhine Element toimib mobiiltelefonis mööndustega. Meie rakendusega saad parema kasutajakogemuse ja uusimad funktsionaalsused.", + "Your homeserver rejected your log in attempt. This could be due to things just taking too long. Please try again. If this continues, please contact your homeserver administrator.": "Sinu koduserver ei võimaldanud sul sisse logida. Võib-olla juhtus nii, kuna sisselogimine kestis liiga kaua. Palun proovi mõne hetke pärast uuesti. Kui olukord ikkagi ei muutu, siis palun küsi lisateavet oma koduserveri haldajalt.", + "Your homeserver was unreachable and was not able to log you in. Please try again. If this continues, please contact your homeserver administrator.": "Sinu koduserver ei olnud kättesaadav ning me ei saanud sind sisse logida. Palun proovi mõne hetke pärast uuesti. Kui olukord ikkagi ei muutu, siis palun küsi lisateavet oma koduserveri haldajalt.", + "Try again": "Proovi uuesti", + "We asked the browser to remember which homeserver you use to let you sign in, but unfortunately your browser has forgotten it. Go to the sign in page and try again.": "Me sättisime nii, et sinu veebibrauser jätaks järgmiseks sisselogimiseks meelde sinu koduserveri, kuid kahjuks on ta selle unustanud. Palun mine sisselogimise lehele ja proovi uuesti.", + "We couldn't log you in": "Meil ei õnnestunud sind sisse logida", + "Show stickers button": "Näita kleepsude nuppu", + "Windows": "Aknad", + "Screens": "Ekraanid", + "Share your screen": "Jaga oma ekraani", + "Show line numbers in code blocks": "Näita koodiblokkides reanumbreid", + "Expand code blocks by default": "Vaikimisi kuva koodiblokid tervikuna", + "Recently visited rooms": "Hiljuti külastatud jututoad" } diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json index 842ee436b6..1c518a681e 100644 --- a/src/i18n/strings/fi.json +++ b/src/i18n/strings/fi.json @@ -26,9 +26,9 @@ "Admin": "Ylläpitäjä", "Allow": "Salli", "No Microphones detected": "Mikrofonia ei löytynyt", - "No Webcams detected": "Webkameraa ei löytynyt", + "No Webcams detected": "Kameroita ei löytynyt", "No media permissions": "Ei mediaoikeuksia", - "You may need to manually permit %(brand)s to access your microphone/webcam": "Voit joutua antamaan %(brand)sille luvan mikrofonin/webkameran käyttöön", + "You may need to manually permit %(brand)s to access your microphone/webcam": "Voit joutua antamaan %(brand)sille luvan mikrofonin/kameran käyttöön", "Default Device": "Oletuslaite", "Microphone": "Mikrofoni", "Camera": "Kamera", @@ -76,7 +76,7 @@ "Custom": "Mukautettu", "Custom level": "Mukautettu taso", "/ddg is not a command": "/ddg ei ole komento", - "Deactivate Account": "Deaktivoi tili", + "Deactivate Account": "Poista tili pysyvästi", "Decline": "Hylkää", "Default": "Oletus", "Disinvite": "Peru kutsu", @@ -103,7 +103,7 @@ "Failed to send request.": "Pyynnön lähettäminen epäonnistui.", "Failed to set display name": "Näyttönimen asettaminen epäonnistui", "Failed to unban": "Porttikiellon poistaminen epäonnistui", - "Failed to upload profile picture!": "Profiilikuvan lataaminen epäonnistui!", + "Failed to upload profile picture!": "Profiilikuvan lähetys epäonnistui!", "Failed to verify email address: make sure you clicked the link in the email": "Sähköpostin vahvistus epäonnistui: varmista, että klikkasit sähköpostissa olevaa linkkiä", "Failure to create room": "Huoneen luominen epäonnistui", "Favourites": "Suosikit", @@ -136,7 +136,7 @@ "Logout": "Kirjaudu ulos", "Low priority": "Matala prioriteetti", "Manage Integrations": "Hallinnoi integraatioita", - "Moderator": "Moderaattori", + "Moderator": "Valvoja", "Name": "Nimi", "New passwords don't match": "Uudet salasanat eivät täsmää", "New passwords must match each other.": "Uusien salasanojen on vastattava toisiaan.", @@ -186,8 +186,8 @@ "unknown caller": "tuntematon soittaja", "Unmute": "Poista mykistys", "Unnamed Room": "Nimeämätön huone", - "Uploading %(filename)s and %(count)s others|zero": "Ladataan %(filename)s", - "Uploading %(filename)s and %(count)s others|one": "Ladataan %(filename)s ja %(count)s muuta", + "Uploading %(filename)s and %(count)s others|zero": "Lähetetään %(filename)s", + "Uploading %(filename)s and %(count)s others|one": "Lähetetään %(filename)s ja %(count)s muuta", "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s vaihtoi huoneen nimeksi %(roomName)s.", "Enable automatic language detection for syntax highlighting": "Ota automaattinen kielentunnistus käyttöön syntaksikorostusta varten", "%(senderName)s ended the call.": "%(senderName)s lopetti puhelun.", @@ -302,10 +302,10 @@ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s poisti porttikiellon käyttäjältä %(targetName)s.", "Unable to capture screen": "Ruudun kaappaus epäonnistui", "Unable to enable Notifications": "Ilmoitusten käyttöönotto epäonnistui", - "Uploading %(filename)s and %(count)s others|other": "Ladataan %(filename)s ja %(count)s muuta", - "Upload Failed": "Lataus epäonnistui", - "Upload file": "Lataa tiedostoja", - "Upload new:": "Lataa uusi:", + "Uploading %(filename)s and %(count)s others|other": "Lähetetään %(filename)s ja %(count)s muuta", + "Upload Failed": "Lähetys epäonnistui", + "Upload file": "Lähetä tiedostoja", + "Upload new:": "Lähetä uusi:", "Usage": "Käyttö", "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s vaihtoi aiheeksi \"%(topic)s\".", "Define the power level of a user": "Määritä käyttäjän oikeustaso", @@ -325,7 +325,7 @@ "(could not connect media)": "(mediaa ei voitu yhdistää)", "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s veti takaisin käyttäjän %(targetName)s kutsun.", "You seem to be in a call, are you sure you want to quit?": "Sinulla näyttää olevan puhelu kesken. Haluatko varmasti lopettaa?", - "You seem to be uploading files, are you sure you want to quit?": "Näytät lataavan tiedostoja. Oletko varma että haluat lopettaa?", + "You seem to be uploading files, are you sure you want to quit?": "Näytät lähettävän tiedostoja. Oletko varma että haluat lopettaa?", "Jan": "tammi", "Feb": "helmi", "Mar": "maalis", @@ -348,7 +348,7 @@ "Error decrypting video": "Virhe purettaessa videon salausta", "Add an Integration": "Lisää integraatio", "URL Previews": "URL-esikatselut", - "Drop file here to upload": "Pudota tiedosto tähän ladataksesi sen palvelimelle", + "Drop file here to upload": "Pudota tiedosto tähän lähettääksesi sen palvelimelle", " (unsupported)": " (ei tuettu)", "Check for update": "Tarkista päivitykset", "Username available": "Käyttäjätunnus saatavilla", @@ -364,7 +364,7 @@ "Skip": "Ohita", "Example": "Esimerkki", "Create": "Luo", - "Failed to upload image": "Kuvan lataaminen epäonnistui", + "Failed to upload image": "Kuvan lähetys epäonnistui", "Add a widget": "Lisää sovelma", "Cannot add any more widgets": "Enempää sovelmia ei voida lisätä", "Delete widget": "Poista sovelma", @@ -375,7 +375,7 @@ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Viedyn tiedoston avulla kuka tahansa pystyy purkamaan kaikki salatut viestit jotka voit nähdä, joten sinun täytyy säilyttää sitä huolellisesti. Helpottaaksesi tätä, syötä alle salasana jonka avulla viedyt tiedot salataan. Voit myöhemmin tuoda tiedot ainoastaan samalla salasanalla.", "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Tämä prosessi mahdollistaa aiemmin tallennettujen salausavainten tuominen toiseen Matrix-asiakasohjelmaan. Tämän jälkeen voit purkaa kaikki salatut viestit jotka toinen asiakasohjelma pystyisi purkamaan.", "Who would you like to add to this community?": "Kenet haluaisit lisätä tähän yhteisöön?", - "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Varoitus: henkilöt, jotka lisäät yhteisöön, näkyvät kaikille jotka tietävät yhteisön tunnisteen", + "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Varoitus: kaikki yhteisöön lisätyt henkilöt näkyvät kaikille, jotka tietävät yhteisön tunnuksen", "Invite new community members": "Kutsu uusia jäseniä yhteisöön", "Invite to Community": "Kutsu yhteisöön", "Which rooms would you like to add to this community?": "Mitkä huoneet haluaisit lisätä tähän yhteisöön?", @@ -391,7 +391,7 @@ "You are no longer ignoring %(userId)s": "Huomioit jälleen käyttäjän %(userId)s", "%(senderName)s removed their profile picture.": "%(senderName)s poisti profiilikuvansa.", "%(senderName)s set a profile picture.": "%(senderName)s asetti profiilikuvan.", - "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s muutti tulevat viestit näkyviksi kaikille huoneen jäsenille, alkaen kutsusta huoneeseen.", + "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s muutti tulevan huonehistorian näkyväksi kaikille huoneen jäsenille heidän kutsumisestaan alkaen.", "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s teki tulevan huonehistorian näkyväksi kaikille huoneen jäsenille, heidän liittymisestään alkaen.", "%(senderName)s made future room history visible to all room members.": "%(senderName)s teki tulevan huonehistorian näkyväksi kaikille huoneen jäsenille.", "%(senderName)s made future room history visible to anyone.": "%(senderName)s teki tulevan huonehistorian näkyväksi kaikille.", @@ -405,7 +405,7 @@ "Enable URL previews by default for participants in this room": "Ota linkkien esikatselu käyttöön kaikille huoneen jäsenille", "%(senderName)s sent an image": "%(senderName)s lähetti kuvan", "%(senderName)s sent a video": "%(senderName)s lähetti videon", - "%(senderName)s uploaded a file": "%(senderName)s latasi tiedoston", + "%(senderName)s uploaded a file": "%(senderName)s lähetti tiedoston", "Disinvite this user?": "Peru tämän käyttäjän kutsu?", "Kick this user?": "Poista tämä käyttäjä?", "Unban this user?": "Poista tämän käyttäjän porttikielto?", @@ -425,16 +425,16 @@ "World readable": "Täysin julkinen", "Guests can join": "Vierailijat voivat liittyä", "No rooms to show": "Ei näytettäviä huoneita", - "Upload avatar": "Lataa profiilikuva", + "Upload avatar": "Lähetä profiilikuva", "Community Invites": "Yhteisökutsut", "Banned by %(displayName)s": "%(displayName)s antoi porttikiellon", "Privileged Users": "Etuoikeutetut käyttäjät", "Members only (since the point in time of selecting this option)": "Vain jäsenet (tämän valinnan tekemisestä lähtien)", "Members only (since they were invited)": "Vain jäsenet (kutsumisestaan lähtien)", "Members only (since they joined)": "Vain jäsenet (liittymisestään lähtien)", - "Invalid community ID": "Virheellinen yhteisötunniste", - "'%(groupId)s' is not a valid community ID": "'%(groupId)s' on virheellinen yhteisötunniste", - "New community ID (e.g. +foo:%(localDomain)s)": "Uusi yhteisötunniste (esim. +foo:%(localDomain)s)", + "Invalid community ID": "Virheellinen yhteisön tunnus", + "'%(groupId)s' is not a valid community ID": "'%(groupId)s' on virheellinen yhteisön tunnus", + "New community ID (e.g. +foo:%(localDomain)s)": "Uusi yhteisön tunnus (esim. +foo:%(localDomain)s)", "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s vaihtoi huoneen %(roomName)s kuvan", "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s poisti huoneen kuvan.", "%(senderDisplayName)s changed the room avatar to ": "%(senderDisplayName)s vaihtoi huoneen kuvaksi ", @@ -467,11 +467,11 @@ "Try using one of the following valid address types: %(validTypesList)s.": "Kokeile käyttää yhtä näistä kelvollisista osoitetyypeistä: %(validTypesList)s.", "You have entered an invalid address.": "Olet syöttänyt virheellisen sähköpostiosoitteen.", "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Oletko varma että haluat poistaa tämän tapahtuman? Huomaa että jos poistat huoneen nimen tai aiheen muutoksen, saattaa muutos kumoutua.", - "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "Yhteisötunnisteet voivat sisältää vain merkkejä a-z, 0-9 tai '=_-/'", + "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "Yhteisön tunnukset voivat sisältää vain merkkejä a-z, 0-9 tai '=_-/'", "Something went wrong whilst creating your community": "Jokin meni pieleen yhteisön luomisessa", "Create Community": "Luo yhteisö", "Community Name": "Yhteisön nimi", - "Community ID": "Yhteisötunniste", + "Community ID": "Yhteisön tunnus", "example": "esimerkki", "Add rooms to the community summary": "Lisää huoneita yhteisön yhteenvetoon", "Which rooms would you like to add to this summary?": "Mitkä huoneet haluaisit lisätä tähän yhteenvetoon?", @@ -701,7 +701,7 @@ "Unhide Preview": "Näytä esikatselu", "Unable to join network": "Verkkoon liittyminen epäonnistui", "Sorry, your browser is not able to run %(brand)s.": "Valitettavasti %(brand)s ei toimi selaimessasi.", - "Uploaded on %(date)s by %(user)s": "Ladattu %(date)s käyttäjän %(user)s toimesta", + "Uploaded on %(date)s by %(user)s": "Lähetetty %(date)s käyttäjän %(user)s toimesta", "Messages in group chats": "Viestit ryhmissä", "Yesterday": "Eilen", "Error encountered (%(errorDetail)s).": "Virhe: %(errorDetail)s.", @@ -1030,7 +1030,7 @@ "Thumbs up": "Peukut ylös", "We've sent you an email to verify your address. Please follow the instructions there and then click the button below.": "Lähetimme sinulle sähköpostin osoitteesi vahvistamiseksi. Noudata sähköpostissa olevia ohjeita, ja klikkaa sen jälkeen alla olevaa painiketta.", "Are you sure? You will lose your encrypted messages if your keys are not backed up properly.": "Oletko varma? Et voi lukea salattuja viestejäsi, mikäli avaimesi eivät ole kunnolla varmuuskopioituna.", - "Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "Salatut viestit turvataan kahdenkeskisellä salauksella. Vain sinä ja viestien vastaanottaja(t) omaavat avaimet näiden viestien lukemiseen.", + "Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "Salatut viestit turvataan päästä päähän -salauksella. Vain sinä ja viestien vastaanottaja(t) omaavat avaimet näiden viestien lukemiseen.", "Unable to load key backup status": "Avainten varmuuskopionnin tilan lukeminen epäonnistui", "Back up your keys before signing out to avoid losing them.": "Varmuuskopioi avaimesi ennen kuin kirjaudut ulos välttääksesi avainten menetyksen.", "Backing up %(sessionsRemaining)s keys...": "Varmuuskopioidaan %(sessionsRemaining)s avainta…", @@ -1099,7 +1099,7 @@ "An error ocurred whilst trying to remove the widget from the room": "Poistaessa sovelmaa huoneesta tapahtui virhe", "Minimize apps": "Pienennä sovellukset", "Popout widget": "Avaa sovelma omassa ikkunassaan", - "Prepends ¯\\_(ツ)_/¯ to a plain-text message": "Lisää ”¯\\_(ツ)_/¯” viestin alkuun", + "Prepends ¯\\_(ツ)_/¯ to a plain-text message": "Lisää ¯\\_(ツ)_/¯ viestin alkuun", "User %(userId)s is already in the room": "Käyttäjä %(userId)s on jo huoneessa", "The user must be unbanned before they can be invited.": "Käyttäjän porttikielto täytyy poistaa ennen kutsumista.", "Upgrade to your own domain": "Päivitä omaan verkkotunnukseen", @@ -1130,13 +1130,13 @@ "Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Debug-lokit sisältävät sovelluksen käyttödataa, kuten käyttäjätunnuksesi, vierailemiesi huoneiden ja ryhmien tunnukset tai aliakset, sekä muiden käyttäjien käyttäjätunnukset. Ne eivät sisällä viestejä.", "Before submitting logs, you must create a GitHub issue to describe your problem.": "Ennen lokien lähettämistä sinun täytyy luoda Githubiin issue (kysymys/ongelma), joka sisältää kuvauksen ongelmastasi.", "Unable to load commit detail: %(msg)s": "Commitin tietojen hakeminen epäonnistui: %(msg)s", - "Community IDs cannot be empty.": "Yhteisön ID:t eivät voi olla tyhjänä.", + "Community IDs cannot be empty.": "Yhteisön tunnukset eivät voi olla tyhjänä.", "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": "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", "This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. This action is irreversible.": "Tämä tekee tilistäsi lopullisesti käyttökelvottoman. Et voi kirjautua sisään, eikä kukaan voi rekisteröidä samaa käyttäjätunnusta. Tilisi poistuu kaikista huoneista, joihin se on liittynyt, ja tilisi tiedot poistetaan identiteettipalvelimeltasi. Tämä toimenpidettä ei voi kumota.", "Deactivating your account does not by default cause us to forget messages you have sent. If you would like us to forget your messages, please tick the box below.": "Tilisi poistaminen käytöstä ei oletuksena saa meitä unohtamaan lähettämiäsi viestejä. Jos haluaisit meidän unohtavan viestisi, rastita alla oleva ruutu.", "Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.": "Viestien näkyvyys Matrixissa on samantapainen kuin sähköpostissa. Vaikka se, että unohdamme viestisi, tarkoittaa, ettei viestejäsi jaeta enää uusille tai rekisteröitymättömille käyttäjille, käyttäjät, jotka ovat jo saaneet viestisi pystyvät lukemaan jatkossakin omaa kopiotaan viesteistäsi.", - "Please forget all messages I have sent when my account is deactivated (Warning: this will cause future users to see an incomplete view of conversations)": "Unohda kaikki viestit, jotka olen lähettänyt, kun tilini poistetaan käytöstä (Varoitus: tämä saa tulevat käyttäjät näkemään epätäydellisen version keskusteluista)", - "Verify this user to mark them as trusted. Trusting users gives you extra peace of mind when using end-to-end encrypted messages.": "Varmenna tämä käyttäjä merkitäksesi hänet luotetuksi. Käyttäjiin luottaminen antaa sinulle ylimääräistä mielenrauhaa käyttäessäsi osapuolten välistä salausta.", + "Please forget all messages I have sent when my account is deactivated (Warning: this will cause future users to see an incomplete view of conversations)": "Unohda kaikki viestit, jotka olen lähettänyt, kun tilini poistetaan (Varoitus: tämä saa tulevat käyttäjät näkemään epätäydellisen version keskusteluista)", + "Verify this user to mark them as trusted. Trusting users gives you extra peace of mind when using end-to-end encrypted messages.": "Varmenna tämä käyttäjä merkitäksesi hänet luotetuksi. Käyttäjiin luottaminen antaa sinulle ylimääräistä mielenrauhaa käyttäessäsi päästä päähän -salausta.", "Waiting for partner to confirm...": "Odotetaan, että toinen osapuoli varmistaa...", "Incoming Verification Request": "Saapuva varmennuspyyntö", "You've previously used %(brand)s on %(host)s with lazy loading of members enabled. In this version lazy loading is disabled. As the local cache is not compatible between these two settings, %(brand)s needs to resync your account.": "Olet aikaisemmin käytttänyt %(brand)sia laitteella %(host)s, jossa oli jäsenten laiska lataus käytössä. Tässä versiossa laiska lataus on pois käytöstä. Koska paikallinen välimuisti ei ole yhteensopiva näiden kahden asetuksen välillä, %(brand)sin täytyy synkronoida tilisi tiedot uudelleen.", @@ -1232,7 +1232,7 @@ "A widget located at %(widgetUrl)s would like to verify your identity. By allowing this, the widget will be able to verify your user ID, but not perform actions as you.": "Sovelma osoitteessa %(widgetUrl)s haluaisi todentaa henkilöllisyytesi. Jos sallit tämän, sovelma pystyy todentamaan käyttäjätunnuksesi, muttei voi toimia nimissäsi.", "Remember my selection for this widget": "Muista valintani tälle sovelmalle", "Deny": "Kiellä", - "Data from an older version of %(brand)s has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "Tunnistimme dataa, joka on lähtöisin vanhasta %(brand)sin versiosta. Tämä aiheuttaa toimintahäiriöitä osapuolten välisessä salauksessa vanhassa versiossa. Viestejä, jotka on salattu osapuolten välisellä 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.", + "Data from an older version of %(brand)s has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "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.", "%(brand)s failed to get the protocol list from the homeserver. The homeserver may be too old to support third party networks.": "%(brand)s epäonnistui protokollalistan hakemisessa kotipalvelimelta. Kotipalvelin saattaa olla liian vanha tukeakseen kolmannen osapuolen verkkoja.", "%(brand)s failed to get the public room list.": "%(brand)s ei onnistunut hakemaan julkista huoneluetteloa.", "The homeserver may be unavailable or overloaded.": "Kotipalvelin saattaa olla saavuttamattomissa tai ylikuormitettuna.", @@ -1250,15 +1250,15 @@ "If you don't want to set this up now, you can later in Settings.": "Jos et halua ottaa tätä käyttöön nyt, voit tehdä sen myöhemmin asetuksissa.", "Set up": "Ota käyttöön", "New Recovery Method": "Uusi palautustapa", - "A new recovery passphrase and key for Secure Messages have been detected.": "Uusi palautuksen salalause ja avain salatuille viesteille on löydetty.", + "A new recovery passphrase and key for Secure Messages have been detected.": "Uusi palautuksen salasana ja avain salatuille viesteille on löydetty.", "If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "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.", "Set up Secure Messages": "Ota käyttöön salatut viestit", "Recovery Method Removed": "Palautustapa poistettu", "If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "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.", "Whether or not you're using the 'breadcrumbs' feature (avatars above the room list)": "Käytätkö 'leivänmuruja' (kuvia huoneluettelon yläpuolella) vai et", "Replying With Files": "Tiedostoilla vastaaminen", - "At this time it is not possible to reply with a file. Would you like to upload this file without replying?": "Tiedostolla vastaaminen ei onnistu tällä erää. Haluatko ladata tiedoston vastaamatta?", - "The file '%(fileName)s' failed to upload.": "Tiedoston '%(fileName)s' lataaminen ei onnistunut.", + "At this time it is not possible to reply with a file. Would you like to upload this file without replying?": "Tiedostolla vastaaminen ei ole mahdollista tällä kertaa. Haluatko lähettää tiedoston vastaamatta?", + "The file '%(fileName)s' failed to upload.": "Tiedoston '%(fileName)s' lähettäminen ei onnistunut.", "The server does not support the room version specified.": "Palvelin ei tue määritettyä huoneversiota.", "Changes your avatar in this current room only": "Vaihtaa kuvasi vain nykyisessä huoneessa", "Sends the given message coloured as a rainbow": "Lähettää viestin sateenkaaren väreissä", @@ -1296,14 +1296,14 @@ "Missing session data": "Istunnon dataa puuttuu", "Some session data, including encrypted message keys, is missing. Sign out and sign in to fix this, restoring keys from backup.": "Istunnon dataa, mukaan lukien salausavaimia, puuttuu. Kirjaudu ulos ja sisään, jolloin avaimet palautetaan varmuuskopiosta.", "Your browser likely removed this data when running low on disk space.": "Selaimesi luultavasti poisti tämän datan, kun levytila oli vähissä.", - "Upload files (%(current)s of %(total)s)": "Lataa tiedostot (%(current)s / %(total)s)", - "Upload files": "Lataa tiedostot", - "These files are too large to upload. The file size limit is %(limit)s.": "Tiedostot ovat liian isoja ladattaviksi. Tiedoston kokoraja on %(limit)s.", - "Some files are too large to be uploaded. The file size limit is %(limit)s.": "Osa tiedostoista on liian isoja ladattaviksi. Tiedoston kokoraja on %(limit)s.", - "Upload %(count)s other files|other": "Lataa %(count)s muuta tiedostoa", - "Upload %(count)s other files|one": "Lataa %(count)s muu tiedosto", + "Upload files (%(current)s of %(total)s)": "Lähettää tiedostoa (%(current)s / %(total)s)", + "Upload files": "Lähetä tiedostot", + "These files are too large to upload. The file size limit is %(limit)s.": "Tiedostot ovat liian isoja lähetettäväksi. Tiedoston kokoraja on %(limit)s.", + "Some files are too large to be uploaded. The file size limit is %(limit)s.": "Osa tiedostoista on liian isoja lähetettäväksi. Tiedoston kokoraja on %(limit)s.", + "Upload %(count)s other files|other": "Lähetä %(count)s muuta tiedostoa", + "Upload %(count)s other files|one": "Lähetä %(count)s muu tiedosto", "Cancel All": "Peruuta kaikki", - "Upload Error": "Latausvirhe", + "Upload Error": "Lähetysvirhe", "Use an email address to recover your account": "Voit palauttaa tilisi sähköpostiosoitteen avulla", "Enter email address (required on this homeserver)": "Syötä sähköpostiosoite (vaaditaan tällä kotipalvelimella)", "Doesn't look like a valid email address": "Ei näytä kelvolliselta sähköpostiosoitteelta", @@ -1324,7 +1324,7 @@ "edited": "muokattu", "To help us prevent this in future, please send us logs.": "Voit auttaa meitä estämään tämän toistumisen lähettämällä meille lokeja.", "Name or Matrix ID": "Nimi tai Matrix-tunnus", - "This file is too large to upload. The file size limit is %(limit)s but this file is %(sizeOfThisFile)s.": "Tiedosto on liian iso ladattavaksi. Tiedostojen kokoraja on %(limit)s mutta tämä tiedosto on %(sizeOfThisFile)s.", + "This file is too large to upload. The file size limit is %(limit)s but this file is %(sizeOfThisFile)s.": "Tiedosto on liian iso lähetettäväksi. Tiedostojen kokoraja on %(limit)s mutta tämä tiedosto on %(sizeOfThisFile)s.", "Unbans user with given ID": "Poistaa porttikiellon tunnuksen mukaiselta käyttäjältä", "No homeserver URL provided": "Kotipalvelimen osoite puuttuu", "Unexpected error resolving homeserver configuration": "Odottamaton virhe selvitettäessä kotipalvelimen asetuksia", @@ -1349,7 +1349,7 @@ "You can log in, but some features will be unavailable until the identity server is back online. If you keep seeing this warning, check your configuration or contact a server admin.": "Voit kirjautua, mutta osa toiminnoista on pois käytöstä kunnes identiteettipalvelin on jälleen toiminnassa. Jos tämä varoitus toistuu, tarkista asetuksesi tai ota yhteyttä palvelimen ylläpitäjään.", "Unexpected error resolving identity server configuration": "Odottamaton virhe selvitettäessä identiteettipalvelimen asetuksia", "Low bandwidth mode": "Matalan kaistanleveyden tila", - "Uploaded sound": "Ladattu ääni", + "Uploaded sound": "Asetettu ääni", "Sounds": "Äänet", "Notification sound": "Ilmoitusääni", "Reset": "Palauta alkutilaan", @@ -1367,7 +1367,7 @@ "Edited at %(date)s. Click to view edits.": "Muokattu %(date)s. Klikkaa nähdäksesi muokkaukset.", "Message edits": "Viestin muokkaukset", "Upgrading this room requires closing down the current instance of the room and creating a new room in its place. To give room members the best possible experience, we will:": "Tämän huoneen päivittäminen edellyttää huoneen nykyisen instanssin sulkemista ja uuden huoneen luomista sen tilalle. Jotta tämä kävisi huoneen jäsenten kannalta mahdollisimman sujuvasti, teemme seuraavaa:", - "Upload all": "Lataa kaikki palvelimelle", + "Upload all": "Lähetä kaikki palvelimelle", "Upload": "Lähetä", "Changes your avatar in all rooms": "Vaihtaa kuvasi kaikissa huoneissa", "%(senderName)s made no change.": "%(senderName)s ei tehnyt muutoksia.", @@ -1431,12 +1431,12 @@ "Terms of service not accepted or the identity server is invalid.": "Käyttöehtoja ei ole hyväksytty tai identiteettipalvelin ei ole kelvollinen.", "Enter a new identity server": "Syötä uusi identiteettipalvelin", "Agree to the identity server (%(serverName)s) Terms of Service to allow yourself to be discoverable by email address or phone number.": "Hyväksy identiteettipalvelimen (%(serverName)s) käyttöehdot (Terms of Service), jotta sinut voi löytää sähköpostiosoitteen tai puhelinnumeron perusteella.", - "Deactivate account": "Deaktivoi tili", + "Deactivate account": "Poista tili pysyvästi", "Remove %(email)s?": "Poista %(email)s?", "Remove %(phone)s?": "Poista %(phone)s?", "Command Help": "Komento-ohje", - "This account has been deactivated.": "Tämä tili on deaktivoitu.", - "Sends a message as plain text, without interpreting it as markdown": "Lähettää viestin pelkkänä tekstinä, tulkitsematta sitä markdownina", + "This account has been deactivated.": "Tämä tili on poistettu.", + "Sends a message as plain text, without interpreting it as markdown": "Lähettää viestin sellaisenaan, tulkitsematta sitä markdownina", "You do not have the required permissions to use this command.": "Sinulla ei ole vaadittavia oikeuksia tämän komennon käyttämiseksi.", "Use an identity server": "Käytä identiteettipalvelinta", "If you don't want to useto discover and be discoverable by existing contacts you know, enter another identity server below.": "Ellet halua käyttää palvelinta löytääksesi tuntemiasi ihmisiä ja tullaksesi löydetyksi, syötä toinen identiteettipalvelin alle.", @@ -1467,7 +1467,7 @@ "Strikethrough": "Yliviivattu", "Code block": "Ohjelmakoodia", "This invite to %(roomName)s was sent to %(email)s which is not associated with your account": "Kutsu huoneeseen %(roomName)s lähetettiin osoitteeseen %(email)s, joka ei ole yhteydessä tiliisi", - "Filter": "Suodata", + "Filter": "Haku", "Filter rooms…": "Suodata huoneita…", "Changes the avatar of the current room": "Vaihtaa nykyisen huoneen kuvan", "Error changing power level requirement": "Virhe muutettaessa oikeustasovaatimusta", @@ -1492,9 +1492,9 @@ "Explore rooms": "Selaa huoneita", "ID": "Tunnus", "Unable to revoke sharing for phone number": "Puhelinnumeron jakamista ei voi kumota", - "Deactivate user?": "Deaktivoi käyttäjä?", - "Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?": "Käyttäjän deaktivoiminen kirjaa hänet ulos ja estää häntä kirjautumasta takaisin sisään. Lisäksi hän poistuu kaikista huoneista, joissa hän on. Tätä toimintoa ei voi kumota. Oletko varma, että haluat deaktivoida tämän käyttäjän?", - "Deactivate user": "Deaktivoi käyttäjä", + "Deactivate user?": "Poista käyttäjä pysyvästi?", + "Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?": "Käyttäjän poistaminen kirjaa hänet ulos ja estää häntä kirjautumasta takaisin sisään. Lisäksi hän poistuu kaikista huoneista, joissa hän on. Tätä toimintoa ei voi kumota. Oletko varma, että haluat pysyvästi poistaa tämän käyttäjän?", + "Deactivate user": "Poista käyttäjä pysyvästi", "Link this email with your account in Settings to receive invites directly in %(brand)s.": "Linkitä tämä sähköposti tilisi kanssa asetuksissa, jotta voit saada kutsuja suoraan %(brand)sissa.", "e.g. my-room": "esim. oma-huone", "Please enter a name for the room": "Syötä huoneelle nimi", @@ -1541,7 +1541,7 @@ "Jump to first invite.": "Siirry ensimmäiseen kutsuun.", "DuckDuckGo Results": "DuckDuckGo-tulokset", "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains.": "Tekstiviesti on lähetetty numeroon +%(msisdn)s. Syötä siinä oleva varmistuskoodi.", - "Failed to deactivate user": "Käyttäjän deaktivointi epäonnistui", + "Failed to deactivate user": "Käyttäjän poistaminen epäonnistui", "Hide advanced": "Piilota edistyneet", "Show advanced": "Näytä edistyneet", "Document": "Asiakirja", @@ -1632,9 +1632,9 @@ "Failed to connect to integration manager": "Yhdistäminen integraatioiden lähteeseen epäonnistui", "Trusted": "Luotettu", "Not trusted": "Ei-luotettu", - "This client does not support end-to-end encryption.": "Tämä asiakasohjelma ei tue osapuolten välistä salausta.", - "Messages in this room are not end-to-end encrypted.": "Tämän huoneen viestit eivät ole salattuja.", - "Messages in this room are end-to-end encrypted.": "Tämän huoneen viestit ovat salattuja.", + "This client does not support end-to-end encryption.": "Tämä asiakasohjelma ei tue päästä päähän -salausta.", + "Messages in this room are not end-to-end encrypted.": "Tämän huoneen viestit eivät ole päästä päähän -salattuja.", + "Messages in this room are end-to-end encrypted.": "Tämän huoneen viestit ovat päästä päähän -salattuja.", "Verify": "Varmenna", "You have ignored this user, so their message is hidden. Show anyways.": "Olet jättänyt tämän käyttäjän huomiotta, joten hänen viestit ovat piilotettu. Näytä käyttäjän viestit.", "You verified %(name)s": "Varmensit käyttäjän %(name)s", @@ -1697,7 +1697,7 @@ "Cross-signing private keys:": "Ristiinvarmennuksen salaiset avaimet:", "in secret storage": "salavarastossa", "Secret storage public key:": "Salavaraston julkinen avain:", - "in account data": "tunnuksen tiedoissa", + "in account data": "tilin tiedoissa", "not stored": "ei tallennettu", "Cross-signing": "Ristiinvarmennus", "Backup has a valid signature from this user": "Varmuuskopiossa onkelvollinen allekirjoitus tältä käyttäjältä", @@ -1739,7 +1739,7 @@ "Lock": "Lukko", "Whether you're using %(brand)s on a device where touch is the primary input mechanism": "Käytätkö %(brand)sia laitteella, jossa kosketus on ensisijainen syöttömekanismi", "Whether you're using %(brand)s as an installed Progressive Web App": "Käytätkö %(brand)sia asennettuna PWA:na (Progressive Web App)", - "Cancel entering passphrase?": "Peruuta salalauseen syöttäminen?", + "Cancel entering passphrase?": "Peruuta salasanan syöttäminen?", "Encryption upgrade available": "Salauksen päivitys saatavilla", "a few seconds ago": "muutama sekunti sitten", "about a minute ago": "noin minuutti sitten", @@ -1808,7 +1808,7 @@ "Suggestions": "Ehdotukset", "Your account is not secure": "Tilisi ei ole turvallinen", "Your password": "Salasanasi", - "Incorrect recovery passphrase": "Virheellinen palautuksen salalause", + "Incorrect recovery passphrase": "Virheellinen palautussalasana", "Enter recovery passphrase": "Syötä palautuksen salalause", "Enter recovery key": "Syötä palautusavain", "Confirm your identity by entering your account password below.": "Vahvista henkilöllisyytesi syöttämällä tilisi salasana alle.", @@ -1829,7 +1829,7 @@ "Use your account or create a new one to continue.": "Käytä tiliäsi tai luo uusi jatkaaksesi.", "Create Account": "Luo tili", "Session already verified!": "Istunto on jo vahvistettu!", - "WARNING: Session already verified, but keys do NOT MATCH!": "VAROITUS: Istunto on jo vahvistettu, mutta avaimet EIVÄT VASTAA!", + "WARNING: Session already verified, but keys do NOT MATCH!": "VAROITUS: Istunto on jo vahvistettu, mutta avaimet EIVÄT TÄSMÄÄ!", "Not Trusted": "Ei luotettu", "Ask this user to verify their session, or manually verify it below.": "Pyydä tätä käyttäjää vahvistamaan istuntonsa, tai vahvista se manuaalisesti alla.", "a few seconds from now": "muutama sekunti sitten", @@ -1846,13 +1846,13 @@ "If you cancel now, you won't complete verifying your other session.": "Jos peruutat nyt, toista istuntoasi ei varmenneta.", "Setting up keys": "Otetaan avaimet käyttöön", "Verifies a user, session, and pubkey tuple": "Varmentaa käyttäjän, istunnon ja julkiset avaimet", - "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and session %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "VAROITUS: AVAIMEN VARMENTAMINEN EPÄONNISTUI! Käyttäjän %(userId)s ja laitteen %(deviceId)s istunnon allekirjoitusavain on ”%(fprint)s”, mikä ei täsmää annettuun avaimeen ”%(fingerprint)s”. Tämä voi tarkoittaa, että yhteyksiänne peukaloidaan!", + "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and session %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "VAROITUS: AVAIMEN VARMENTAMINEN EPÄONNISTUI! Käyttäjän %(userId)s ja laitteen %(deviceId)s istunnon allekirjoitusavain on ”%(fprint)s”, mikä ei täsmää annettuun avaimeen ”%(fingerprint)s”. Tämä voi tarkoittaa, että viestintäänne siepataan!", "The signing key you provided matches the signing key you received from %(userId)s's session %(deviceId)s. Session marked as verified.": "Antamasi allekirjoitusavain täsmää käyttäjältä %(userId)s saamaasi istunnon %(deviceId)s allekirjoitusavaimeen. Istunto on varmennettu.", "Displays information about a user": "Näyttää tietoa käyttäjästä", "%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s vaihtoi huoneen nimen %(oldRoomName)s nimeksi %(newRoomName)s.", - "%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s lisäsi vaihtoehtoisia osoitteita %(addresses)s tälle huoneelle.", + "%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s lisäsi vaihtoehtoiset osoitteet %(addresses)s tälle huoneelle.", "%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s lisäsi vaihtoehtoisen osoitteen %(addresses)s tälle huoneelle.", - "%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s poisti vaihtoehtoisia osoitteita %(addresses)s tältä huoneelta.", + "%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s poisti vaihtoehtoiset osoitteet %(addresses)s tältä huoneelta.", "%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s poisti vaihtoehtoisen osoitteitteen %(addresses)s tältä huoneelta.", "%(senderName)s changed the alternative addresses for this room.": "%(senderName)s muutti tämän huoneen vaihtoehtoisia osoitteita.", "%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s muutti tämän huoneen pää- sekä vaihtoehtoisia osoitteita.", @@ -1956,7 +1956,7 @@ "Liberate your communication": "Vapauta viestintäsi", "Send a Direct Message": "Lähetä yksityisviesti", "Explore Public Rooms": "Selaa julkisia huoneita", - "Create a Group Chat": "Luo ryhmä", + "Create a Group Chat": "Luo huone", "Super": "Super", "Cancel replying to a message": "Peruuta viestiin vastaaminen", "Jump to room search": "Siirry huonehakuun", @@ -1981,7 +1981,7 @@ "Review where you’re logged in": "Tarkasta missä olet sisäänkirjautuneena", "New login. Was this you?": "Uusi sisäänkirjautuminen. Olitko se sinä?", "%(name)s is requesting verification": "%(name)s pyytää varmennusta", - "Sends a message as html, without interpreting it as markdown": "Lähettää viestin HTML-muodossa, tulkitsematta sitä Markdowniksi", + "Sends a message as html, without interpreting it as markdown": "Lähettää viestin HTML-muodossa, tulkitsematta sitä markdownina", "Please supply a widget URL or embed code": "Anna sovelman osoite tai upotettava koodinpätkä", "You signed in to a new session without verifying it:": "Olet kirjautunut uuteen istuntoon varmentamatta sitä:", "Verify your other session using one of the options below.": "Varmenna toinen istuntosi käyttämällä yhtä seuraavista tavoista.", @@ -2016,11 +2016,11 @@ "Verify this session by confirming the following number appears on its screen.": "Varmenna tämä istunto varmistamalla, että seuraava numero ilmestyy sen näytölle.", "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Odotetaan toista istuntoasi, %(deviceName)s (%(deviceId)s), varmennukseen…", "Waiting for your other session to verify…": "odotetaan toista istuntoasi varmennukseen…", - "Verify all your sessions to ensure your account & messages are safe": "Varmenna kaikki istuntosi varmistaaksesi, että tunnuksesi ja viestisi ovat turvassa", - "Verify the new login accessing your account: %(name)s": "Varmenna uusi tunnuksellesi sisäänkirjautunut taho: %(name)s", - "Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Tällä hetkellä salasanan vaihtaminen nollaa kaikki osapuolten välisen salauksen avaimet kaikissa istunnoissa, tehden salatusta keskusteluhistoriasta lukukelvotonta, ellet ensin vie kaikkia huoneavaimiasi ja tuo niitä salasanan vaihtamisen jäkeen takaisin. Tulevaisuudessa tämä tulee toimimaan paremmin.", + "Verify all your sessions to ensure your account & messages are safe": "Varmenna kaikki istuntosi varmistaaksesi, että käyttäjätilisi ja viestisi ovat turvassa", + "Verify the new login accessing your account: %(name)s": "Varmenna uusi kirjautuminen tilillesi: %(name)s", + "Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Tällä hetkellä salasanan vaihtaminen nollaa kaikki päästä päähän -salauksen avaimet kaikissa istunnoissa, tehden salatusta keskusteluhistoriasta lukukelvotonta, ellet ensin vie kaikkia huoneavaimiasi ja tuo niitä salasanan vaihtamisen jäkeen takaisin. Tulevaisuudessa tämä tulee toimimaan paremmin.", "Your homeserver does not support cross-signing.": "Kotipalvelimesi ei tue ristiinvarmennusta.", - "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "Tunnuksellasi on ristiinvarmennuksen identiteetti salaisessa tallennustilassa, mutta tämä istunto ei vielä luota siihen.", + "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "Tililläsi on ristiinvarmennuksen identiteetti salaisessa tallennustilassa, mutta tämä istunto ei vielä luota siihen.", "Reset cross-signing and secret storage": "Nollaa ristivarmennus ja salavarasto", "Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Varmenna jokainen istunto erikseen, äläkä luota ristiinvarmennettuihin laitteisiin.", "Securely cache encrypted messages locally for them to appear in search results.": "Pidä salatut viestit turvallisessa välimuistissa, jotta ne näkyvät hakutuloksissa.", @@ -2046,7 +2046,7 @@ "This user has not verified all of their sessions.": "Tämä käyttäjä ei ole varmentanut kaikkia istuntojaan.", "You have not verified this user.": "Et ole varmentanut tätä käyttäjää.", "You have verified this user. This user has verified all of their sessions.": "Olet varmentanut tämän käyttäjän. Tämä käyttäjä on varmentanut kaikki istuntonsa.", - "This room is end-to-end encrypted": "Tämä huone käyttää osapuolten välistä salausta", + "This room is end-to-end encrypted": "Tämä huone käyttää päästä päähän -salausta", "Everyone in this room is verified": "Kaikki tämän huoneen käyttäjät on varmennettu", "Your key share request has been sent - please check your other sessions for key share requests.": "Avainten jakopyyntösi on lähetetty. Tarkista muut istuntosi avainten jakopyyntöjen varalta.", "Key share requests are sent to your other sessions automatically. If you rejected or dismissed the key share request on your other sessions, click here to request the keys for this session again.": "Avainten jakopyynnöt lähetetään muille istunnoillesi automaattisesti. Jos hylkäsit tai jätit huomiotta avainten jakopyynnön toisessa istunnossasi, klikkaa tästä pyytääksesi avaimia uudelleen.", @@ -2096,11 +2096,11 @@ "Destroy cross-signing keys?": "Tuhoa ristiinvarmennuksen avaimet?", "Deleting cross-signing keys is permanent. Anyone you have verified with will see security alerts. You almost certainly don't want to do this, unless you've lost every device you can cross-sign from.": "Ristiinvarmennuksen avainten tuhoamista ei voi kumota. Jokainen, jonka olet varmentanut, tulee näkemään turvallisuushälytyksiä. Et todennäköisesti halua tehdä tätä, ellet ole hukannut kaikkia laitteitasi, joista pystyit ristiinvarmentamaan.", "Clear cross-signing keys": "Tyhjennä ristiinvarmennuksen avaimet", - "Enable end-to-end encryption": "Ota osapuolten välinen salaus käyttöön", + "Enable end-to-end encryption": "Ota päästä päähän -salaus käyttöön", "Session key": "Istunnon tunnus", "Verification Requests": "Varmennuspyynnöt", "Verifying this user will mark their session as trusted, and also mark your session as trusted to them.": "Tämän käyttäjän varmentaminen merkitsee hänen istuntonsa luotetuksi, ja myös merkkaa sinun istuntosi luotetuksi hänen laitteissaan.", - "Verify this device to mark it as trusted. Trusting this device gives you and other users extra peace of mind when using end-to-end encrypted messages.": "Varmenna tämä laite merkataksesi se luotetuksi. Tähän laitteeseen luottaminen antaa sinulle ja muille käyttäjille ylimääräistä mielenrauhaa, kun käytätte osapuolten välistä salausta.", + "Verify this device to mark it as trusted. Trusting this device gives you and other users extra peace of mind when using end-to-end encrypted messages.": "Varmenna tämä laite merkitäksesi sen luotetuksi. Tähän laitteeseen luottaminen antaa sinulle ja muille käyttäjille lisää mielenrauhaa, kun käytätte päästä päähän -salausta.", "Verifying this device will mark it as trusted, and users who have verified with you will trust this device.": "Tämän laitteen varmentaminen merkkaa sen luotetuksi, ja sinut varmentaneet käyttäjät luottavat automaattisesti tähän laitteeseen.", "Confirm to continue": "Haluan jatkaa", "Click the button below to confirm your identity.": "Paina alapuolella olevaa painiketta varmistaaksesi identiteettisi.", @@ -2223,9 +2223,9 @@ "Learn more at element.io/previously-riot": "Lue lisää osoitteessa element.io/previously-riot", "Security & privacy": "Tietoturva ja -suoja", "User menu": "Käyttäjän valikko", - "Video conference started by %(senderName)s": "%(senderName)s aloitti videopuhelun", - "Video conference updated by %(senderName)s": "%(senderName)s muokkasi videopuhelua", - "Video conference ended by %(senderName)s": "%(senderName)s päätti videopuhelun", + "Video conference started by %(senderName)s": "%(senderName)s aloitti ryhmävideopuhelun", + "Video conference updated by %(senderName)s": "%(senderName)s päivitti ryhmävideopuhelun", + "Video conference ended by %(senderName)s": "%(senderName)s päätti ryhmävideopuhelun", "Join the conference from the room information card on the right": "Liity ryhmäpuheluun oikealla olevasta huoneen tiedoista", "Join the conference at the top of this room": "Liity ryhmäpuheluun huoneen ylälaidassa", "This will end the conference for everyone. Continue?": "Tämä päättää ryhmäpuhelun kaikilta. Jatka?", @@ -2237,7 +2237,7 @@ "Message deleted on %(date)s": "Viesti poistettu %(date)s", "Show %(count)s more|one": "Näytä %(count)s lisää", "Show %(count)s more|other": "Näytä %(count)s lisää", - "Mod": "Moderaattori", + "Mod": "Valvoja", "Read Marker off-screen lifetime (ms)": "Viestin luetuksi merkkaamisen kesto, kun Element ei ole näkyvissä (ms)", "Maximize widget": "Suurenna sovelma", "Minimize widget": "Pienennä sovelma", @@ -2253,15 +2253,15 @@ "Error leaving room": "Virhe poistuessa huoneesta", "Unexpected server error trying to leave the room": "Huoneesta poistuessa tapahtui odottamaton palvelinvirhe", "%(senderName)s declined the call.": "%(senderName)s hylkäsi puhelun.", - "(an error occurred)": "(virhe tapahtui)", + "(an error occurred)": "(tapahtui virhe)", "(their device couldn't start the camera / microphone)": "(hänen laitteensa ei voinut käynnistää kameraa tai mikrofonia)", "(connection failed)": "(yhteys katkesi)", "🎉 All servers are banned from participating! This room can no longer be used.": "Kaikki palvelimet ovat saaneet porttikiellon huoneeseen! Tätä huonetta ei voi enää käyttää.", - "Prepends ( ͡° ͜ʖ ͡°) to a plain-text message": "Lisää hymiön ( ͡° ͜ʖ ͡°) viestin alkuun", - "Are you sure you want to cancel entering passphrase?": "Haluatko varmasti peruuttaa salalauseen syöttämisen?", + "Prepends ( ͡° ͜ʖ ͡°) to a plain-text message": "Lisää ( ͡° ͜ʖ ͡°) viestin alkuun", + "Are you sure you want to cancel entering passphrase?": "Haluatko varmasti peruuttaa salasanan syöttämisen?", "The call was answered on another device.": "Puheluun vastattiin toisessa laitteessa.", "Answered Elsewhere": "Vastattu muualla", - "The call could not be established": "Puhelua ei voitu aloittaa", + "The call could not be established": "Puhelua ei voitu muodostaa", "The other party declined the call.": "Toinen osapuoli hylkäsi puhelun.", "Call Declined": "Puhelu hylätty", "%(brand)s Android": "%(brand)s Android", @@ -2341,7 +2341,7 @@ "Enter phone number": "Syötä puhelinnumero", "Now, let's help you get started": "Autetaanpa sinut alkuun", "delete the address.": "poista osoite.", - "Filter rooms and people": "Suodata huoneita ja ihmisiä", + "Filter rooms and people": "Hae huoneita ja ihmisiä", "Go to Home View": "Siirry kotinäkymään", "Community and user menu": "Yhteisö- ja käyttäjävalikko", "Decline All": "Kieltäydy kaikista", @@ -2559,7 +2559,7 @@ "List options": "Lajittele", "Activity": "Aktiivisuus", "A-Z": "A-Ö", - "Server Options": "Palvelimen asetukset", + "Server Options": "Palvelinasetukset", "Information": "Tiedot", "Effects": "Tehosteet", "Zimbabwe": "Zimbabwe", @@ -2682,10 +2682,10 @@ "Self-verification request": "Itsevarmennuspyyntö", "Add a photo so people know it's you.": "Lisää kuva, jotta ihmiset tietävät, että se olet sinä.", "Great, that'll help people know it's you": "Hienoa, tämä auttaa ihmisiä tietämään, että se olet sinä", - "Attach files from chat or just drag and drop them anywhere in a room.": "Liitä tiedostot keskustelusta tai vedä ja pudota ne mihin tahansa huoneeseen.", + "Attach files from chat or just drag and drop them anywhere in a room.": "Liitä tiedostoja alalaidan klemmarilla, tai raahaa ja pudota ne mihin tahansa huoneen kohtaan.", "Use email or phone to optionally be discoverable by existing contacts.": "Käytä sähköpostiosoitetta tai puhelinnumeroa, jos haluat olla löydettävissä nykyisille yhteystiedoille.", "Use email to optionally be discoverable by existing contacts.": "Käytä sähköpostiosoitetta, jos haluat olla löydettävissä nykyisille yhteystiedoille.", - "Add an email to be able to reset your password.": "Lisää sähköpostiosoite, jotta voit nollata salasanasi.", + "Add an email to be able to reset your password.": "Lisää sähköpostiosoite, jotta voit palauttaa salasanasi.", "Forgot password?": "Unohtuiko salasana?", "That phone number doesn't look quite right, please check and try again": "Tämä puhelinnumero ei näytä oikealta, tarkista se ja yritä uudelleen", "Move right": "Siirry oikealle", @@ -2699,12 +2699,160 @@ "Use the Desktop app to see all encrypted files": "Voit tarkastella kaikkia salattuja tiedostoja työpöytäsovelluksella", "Use the Desktop app to search encrypted messages": "Käytä salattuja viestejä työpöytäsovelluksella", "Ignored attempt to disable encryption": "Ohitettu yritys poistaa salaus käytöstä", - "Messages here are end-to-end encrypted. Verify %(displayName)s in their profile - tap on their avatar.": "Tässä olevat viestit on päästä-päähän -salattu. Vahvista %(displayName)s heidät - napauta heidän profiilikuvia.", - "Messages in this room are end-to-end encrypted. When people join, you can verify them in their profile, just tap on their avatar.": "Tämän huoneen viestit on päästä-päähän -salattu. Kun ihmisiä liittyy, voit vahvistaa heidät heidän profiilista, napauta vain heidän profiilikuvaa.", + "Messages here are end-to-end encrypted. Verify %(displayName)s in their profile - tap on their avatar.": "Tässä olevat viestit on päästä päähän -salattu. Vahvista %(displayName)s profiilistaan napauttamalla profiilikuvaa.", + "Messages in this room are end-to-end encrypted. When people join, you can verify them in their profile, just tap on their avatar.": "Tämän huoneen viestit on päästä päähän -salattu. Kun ihmisiä liittyy, heidät voi vahvistaa profiilistaan profiilikuvaa napauttamalla.", "Unpin a widget to view it in this panel": "Irrota sovelma, jotta voit tarkastella sitä tässä paneelissa", "You can only pin up to %(count)s widgets|other": "Voit kiinnittää enintään %(count)s sovelmaa", "Favourited": "Suositut", "Use the + to make a new room or explore existing ones below": "Luo uusi huone tai tutustu alla oleviin + -painikeella", - "%(senderDisplayName)s set the server ACLs for this room.": "%(senderDisplayName)s asetti palvelimen pääsyhallintaluetteloon tämän huoneen.", - "%(senderDisplayName)s changed the server ACLs for this room.": "%(senderDisplayName)s muutti palvelimen pääsyhallintaluetteloa tälle huoneelle." + "%(senderDisplayName)s set the server ACLs for this room.": "%(senderDisplayName)s loi tämän huoneen palvelinten pääsynvalvontalistan.", + "%(senderDisplayName)s changed the server ACLs for this room.": "%(senderDisplayName)s muutti tämän huoneen palvelinten pääsynvalvontalistaa.", + "Expand room list section": "Laajenna huoneluettelon osa", + "Collapse room list section": "Supista huoneluettelon osa", + "Use a different passphrase?": "Käytä eri salalausetta?", + "Already have an account? Sign in here": "Onko sinulla jo tili? Kirjaudu tästä", + "There was a problem communicating with the homeserver, please try again later.": "Yhteydessä kotipalvelimeen ilmeni ongelma, yritä myöhemmin uudelleen.", + "This widget would like to:": "Tämä sovelma haluaa:", + "Learn more": "Lue lisää", + "Other homeserver": "Muu kotipalvelin", + "Matrix.org is the biggest public homeserver in the world, so it’s a good place for many.": "Matrix.org on maailman suurin kotipalvelin, joten se on hyvä paikka monille.", + "Specify a homeserver": "Määritä kotipalvelin", + "The server has denied your request.": "Palvelin eväsi pyyntösi.", + "Just a heads up, if you don't add an email and forget your password, you could permanently lose access to your account.": "Huomio: jos et lisää sähköpostia ja unohdat salasanasi, saatat menettää pääsyn tiliisi pysyvästi.", + "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone in this community.": "Yksityiset huoneet ovat löydettävissä ja liityttävissä vain kutsulla. Julkiset huoneet ovat kenen tahansa tämän yhteisön jäsenen löydettävissä ja liityttävissä.", + "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone.": "Yksityiset huoneet ovat löydettävissä ja liityttävissä vain kutsulla. Julkiset huoneet ovat kenen tahansa löydettävissä ja liityttävissä.", + "Homeserver": "Kotipalvelin", + "Your server admin has disabled end-to-end encryption by default in private rooms & Direct Messages.": "Palvelimesi ylläpitäjä on poistanut päästä päähän -salauksen oletuksena käytöstä yksityisissä huoneissa ja yksityisviesteissä.", + "%(peerName)s held the call": "%(peerName)s piti puhelua pidossa", + "Send general files as you in your active room": "Lähetä aktiiviseen huoneeseesi yleisiä tiedostoja itsenäsi", + "Send general files as you in this room": "Lähetä tähän huoneeseen yleisiä tiedostoja itsenäsi", + "Send videos as you in your active room": "Lähetä aktiiviseen huoneeseesi videoita itsenäsi", + "Send videos as you in this room": "Lähetä tähän huoneeseen videoita itsenäsi", + "Send images as you in your active room": "Lähetä aktiiviseen huoneeseesi kuvia itsenäsi", + "Send images as you in this room": "Lähetä tähän huoneeseen kuvia itsenäsi", + "Send text messages as you in your active room": "Lähetä aktiiviseen huoneeseesi tekstiviestejä itsenäsi", + "Send text messages as you in this room": "Lähetä tähän huoneeseen tekstiviestejä itsenäsi", + "Send messages as you in your active room": "Lähetä aktiiviseen huoneeseesi viestejä itsenäsi", + "Send messages as you in this room": "Lähetä tähän huoneeseen viestejä itsenäsi", + "Show message previews for reactions in DMs": "Näytä reaktioille esikatselu yksityisviesteissä", + "Show message previews for reactions in all rooms": "Näytä reaktioille esikatselu kaikissa huoneissa", + "New spinner design": "Uusi kehrääjä tyyli", + "Render LaTeX maths in messages": "Suorita LaTeX-matematiikkaa viesteissä", + "* %(senderName)s %(emote)s": "* %(senderName)s %(emote)s", + "Downloading logs": "Ladataan lokeja", + "Uploading logs": "Lähetetään lokeja", + "Show chat effects": "Näytä keskustelutehosteet", + "Enable advanced debugging for the room list": "Ota huoneluettelon edistynyt virheenkorjaus käyttöön", + "A connection error occurred while trying to contact the server.": "Yhteysvirhe yritettäessä ottaa yhteyttä palvelimeen.", + "The %(capability)s capability": "%(capability)s-ominaisuus", + "See when the avatar changes in this room": "Näe, milloin kuva vaihtuu tässä huoneessa", + "See when the name changes in your active room": "Näe milloin käyttäjän nimi muuttuu aktiivisessa huoneessa", + "If disabled, messages from encrypted rooms won't appear in search results.": "Jos ei ole käytössä, salattujen huoneiden viestejä ei näytetä hakutuloksissa.", + "Jump to start/end of the composer": "Siirry kirjoittimen alkuun/loppuun", + "Dismiss read marker and jump to bottom": "Hylkää lukumerkki ja hyppää pohjaan", + "Toggle the top left menu": "Vaihda vasemman yläkulman valikkoa", + "New? Create account": "Uusi? Luo tili", + "Continuing without email": "Jatka ilman sähköpostia", + "Invite by email": "Kutsu sähköpostilla", + "Report a bug": "Raportoi virheestä", + "Invalid Recovery Key": "Virheellinen palautusavain", + "Confirm Security Phrase": "Vahvista turvalauseke", + "Upload a file": "Lähetä tiedosto", + "Confirm encryption setup": "Vahvista salauksen asetukset", + "Verify other session": "Vahvista toinen istunto", + "Confirm account deactivation": "Vahvista tilin deaktivointi", + "Toggle right panel": "Vaihda oikea paneeli", + "Navigate composer history": "Selaa kirjoittimen historiaa", + "a key signature": "avaimen allekirjoitus", + "Homeserver feature support:": "Kotipalvelimen ominaisuuksien tuki:", + "Create key backup": "Luo avaimen varmuuskopio", + "Recovery key mismatch": "Palautusavain ei täsmää", + "%(name)s paused": "%(name)s keskeytetty", + "Invalid URL": "Virheellinen URL", + "Reason (optional)": "Syy (valinnainen)", + "Fill Screen": "Täytä näyttö", + "Send feedback": "Lähetä palautetta", + "Rate %(brand)s": "Arvioi %(brand)s", + "%(brand)s Desktop": "%(brand)s Desktop", + "%(brand)s Web": "%(brand)s Web", + "Security Phrase": "Turvalauseke", + "Security Key": "Turva-avain", + "Verify session": "Vahvista istunto", + "Hold": "Pidä", + "Resume": "Jatka", + "Comment": "Kommentti", + "Navigation": "Navigointi", + "Manage": "Hallitse", + "Remain on your screen when viewing another room, when running": "Pysy ruudulla katsellessasi huonetta, kun se on käynnissä", + "Remain on your screen while running": "Pysy ruudulla käynnissä olon ajan", + "Move autocomplete selection up/down": "Siirrä automaattisen täydennyksen valintaa ylös/alas", + "sends snowfall": "lähetä lumisadetta", + "Sends the given message with snowfall": "Lähettää viestin lumisateen kera", + "Sends the given message with fireworks": "Lähettää viestin ilotulitteiden kera", + "sends confetti": "lähettää konfettia", + "Sends the given message with confetti": "Lähettää viestin konfettien kera", + "sends fireworks": "lähetä ilotulitus", + "You held the call Switch": "Puhelu pidossa Vaihda", + "You held the call Resume": "Puhelu pidossa Jatka", + "%(name)s on hold": "%(name)s on pidossa", + "Please verify the room ID or address and try again.": "Tarkista huonetunnus ja yritä uudelleen.", + "Use this when referencing your community to others. The community ID cannot be changed.": "Käytä tätä, kun kutsut muita yhteisöösi. Yhteisön tunnusta ei voi muuttaa.", + "Community ID: +:%(domain)s": "Yhteisön tunnus: + :%(domain)s", + "Are you sure you want to deactivate your account? This is irreversible.": "Haluatko varmasti poistaa tilisi pysyvästi?", + "Data on this screen is shared with %(widgetDomain)s": "Tällä näytöllä olevaa tietoa jaetaan verkkotunnuksen %(widgetDomain)s kanssa", + "A browser extension is preventing the request.": "Selainlaajennus estää pyynnön.", + "Approve widget permissions": "Hyväksy sovelman käyttöoikeudet", + "You have been logged out of all sessions and will no longer receive push notifications. To re-enable notifications, sign in again on each device.": "Olet kirjautunut ulos kaikista istunnoista, etkä enää saa push-ilmoituksia. Ota ilmoitukset uudelleen käyttöön kirjautumalla uudelleen kullekin laitteelle.", + "That username already exists, please try another.": "Antamasi käyttäjänimi on varattu, kokeile toista.", + "Continue with %(ssoButtons)s": "Jatka %(ssoButtons)slla", + "%(ssoButtons)s Or %(usernamePassword)s": "%(ssoButtons)s Tai %(usernamePassword)s", + "Host account on": "Ylläpidä tiliä osoitteessa", + "Decide where your account is hosted": "Päätä, missä tiliäsi isännöidään", + "Your new session is now verified. Other users will see it as trusted.": "Uusi istuntosi on vahvistettu. Muut käyttäjät näkevät sen luotettavana.", + "Your new session is now verified. It has access to your encrypted messages, and other users will see it as trusted.": "Uusi istuntosi on vahvistettu. Sillä on nyt pääsy salattuihin viesteihisi, ja muut käyttäjät näkevät sen luotettavana.", + "Enter a recovery passphrase": "Syötä palautuksen salasana", + "Great! This recovery passphrase looks strong enough.": "Hienoa! Tämä palautuksen salasana näyttää riittävän vahvalta.", + "Please enter your recovery passphrase a second time to confirm.": "Vahvista antamalla palautuksen salasana uudelleen.", + "Repeat your recovery passphrase...": "Toista palautuksen salasana...", + "Enter a security phrase only you know, as it’s used to safeguard your data. To be secure, you shouldn’t re-use your account password.": "Syötä salasana, jonka tiedät vain sinä, koska sitä käytetään tietojesi suojaamiseen. Turvallisuuden takaamiseksi älä käytä samaa salasanaa muualla.", + "Enter your recovery passphrase a second time to confirm it.": "Vahvista antamalla palautuksen salasana uudelleen.", + "Message downloading sleep time(ms)": "Viestin lataamisen odotusaika (ms)", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "Lisää ┬──┬ ノ( ゜-゜ノ) viestin alkuun", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "Lisää (╯°□°)╯︵ ┻━┻ viestin alkuun", + "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.": "Salaisen tallenustilan avaaminen epäonnistui. Varmista, että syötit oikean palautuksen salasanan.", + "Enter a Security Phrase": "Kirjoita turvalauseke", + "Set a Security Phrase": "Aseta turvalauseke", + "Unable to query secret storage status": "Salaisen tallennustilan tilaa ei voi kysellä", + "If you cancel now, you may lose encrypted messages & data if you lose access to your logins.": "Jos peruutat nyt, voit menettää salattuja viestejä ja tietoja, jos menetät pääsyn kirjautumistietoihisi.", + "You can also set up Secure Backup & manage your keys in Settings.": "Voit myös ottaa käyttöön suojatun varmuuskopioinnin ja hallita avaimia asetuksista.", + "Save your Security Key": "Tallenna turva-avain", + "This session is encrypting history using the new recovery method.": "Tämä istunto salaa historiansa käyttäen uutta palautustapaa.", + "This session has detected that your recovery passphrase and key for Secure Messages have been removed.": "Tämä istunto on havainnut, että palauttamisen salauslause ja salattujen viestien avain on poistettu.", + "If you did this accidentally, you can setup Secure Messages on this session which will re-encrypt this session's message history with a new recovery method.": "", + "Close dialog or context menu": "Sulje valintaikkuna tai pikavalikko", + "%(brand)s is securely caching encrypted messages locally for them to appear in search results:": "%(brand)s tallentaa turvallisesti salattuja viestejä välimuistiin, jotta ne näkyvät hakutuloksissa:", + "Navigate recent messages to edit": "Voit muokata viimeisimpiä viestejä", + "Clear room list filter field": "Tyhjennä huoneluettelon suodatinkenttä", + "May include members not in %(communityName)s": "Voi sisältää muitakin kuin yhteistön %(communityName)s jäseniä", + "Failed to transfer call": "Puhelunsiirto epäonnistui", + "A call can only be transferred to a single user.": "Puhelun voi siirtää vain yhdelle käyttäjälle.", + "Active Widgets": "Aktiiviset sovelmat", + "Block anyone not part of %(serverName)s from ever joining this room.": "Estä muita kuin palvelimen %(serverName)s jäseniä liittymästä tähän huoneeseen.", + "Continue with %(provider)s": "Jatka käyttäen palveluntarjoajaa %(provider)s", + "Open dial pad": "Avaa näppäimistö", + "Start a Conversation": "Aloita keskustelu", + "Dial pad": "Näppäimistö", + "There was an error looking up the phone number": "Puhelinnumeron haussa tapahtui virhe", + "Unable to look up phone number": "Puhelinnumeroa ei voi hakea", + "Use Ctrl + F to search": "Etsi painamalla Ctrl + F", + "Use Command + F to search": "Etsi painamalla Komento + F", + "Use app": "Käytä sovellusta", + "Element Web is experimental on mobile. For a better experience and the latest features, use our free native app.": "Element Web on mobiililaitteilla kokeellinen. Ilmainen sovelluksemme tarjoaa paremman kokemuksen ja uusimmat ominaisuudet.", + "Use app for a better experience": "Parempi kokemus sovelluksella", + "Change which room, message, or user you're viewing": "Vaihda näytettävää huonetta, viestiä tai käyttäjää", + "Converts the DM to a room": "Muuntaa yksityisviestin huoneeksi", + "Converts the room to a DM": "Muuntaa huoneen yksityisviestiksi", + "Your homeserver rejected your log in attempt. This could be due to things just taking too long. Please try again. If this continues, please contact your homeserver administrator.": "Kotipalvelimesi hylkäsi kirjautumisyrityksesi. Syynä saattaa olla, että asiat tapahtuvat liian hitaasti. Yritä uudelleen. Mikäli ongelma jatkuu, ota yhteyttä kotipalvelimesi ylläpitäjään.", + "Your homeserver was unreachable and was not able to log you in. Please try again. If this continues, please contact your homeserver administrator.": "Kotipalvelintasi ei tavoitettu eikä sinua siksi kirjattu sisään. Yritä uudelleen. Mikäli ongelma jatkuu, ota yhteyttä kotipalvelimesi ylläpitäjään.", + "Try again": "Yritä uudelleen" } diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index efae1f7b26..3bb86d2c63 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2545,5 +2545,395 @@ "You might enable this if the room will only be used for collaborating with internal teams on your homeserver. This cannot be changed later.": "Vous devriez l'activer si le salon n'est utilisé que pour collaborer avec des équipes internes sur votre serveur d'accueil. Ce ne peut pas être changé plus tard.", "Your server requires encryption to be enabled in private rooms.": "Votre serveur requiert d'activer le chiffrement dans les salons privés.", "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone in this community.": "Les salons privés ne peuvent être trouvés et rejoints seulement par invitation. Les salons publics peut être trouvés et rejoints par n'importe qui dans cette communauté.", - "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone.": "Les salons privés ne peuvent être trouvés et rejoints seulement par invitation. Les salons publics peut être trouvés et rejoints par n'importe qui." + "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone.": "Les salons privés ne peuvent être trouvés et rejoints seulement par invitation. Les salons publics peut être trouvés et rejoints par n'importe qui.", + "Start a new chat": "Commencer une nouvelle discussion", + "Add a photo so people know it's you.": "Ajoutez une photo pour que les gens savent que c'est vous", + "%(ssoButtons)s Or %(usernamePassword)s": "%(ssoButtons)s ou %(usernamePassword)s", + "Decide where your account is hosted": "Décidez où votre compte est hébergé", + "Go to Home View": "Revenir à la page d'accueil", + "Use Ctrl + Enter to send a message": "Utilisez Ctrl + Entrée pour envoyer un message", + "%(senderName)s ended the call": "%(senderName)s a terminé l'appel", + "You ended the call": "Vous avez terminé l'appel", + "%(creator)s created this DM.": "%(creator)s a envoyé ce DM.", + "Now, let's help you get started": "Maintenant, commençons à vous initier", + "Welcome %(name)s": "Bienvenue %(name)s", + "Filter rooms and people": "Filtrer des salons et personnes", + "Got an account? Sign in": "Vous avez un compte ? Connectez-vous", + "New here? Create an account": "Nouveau ici ? Créez un compte", + "There was a problem communicating with the homeserver, please try again later.": "Il y a eu un problème lors de la communication avec le serveur d'accueil, veuillez réessayer ultérieurement.", + "New? Create account": "Nouveau ? Créez un compte", + "That username already exists, please try another.": "Ce nom d'utilisateur existe déjà, essayez-en un autre.", + "Already have an account? Sign in here": "Vous avez déjà un compte ? Connectez-vous ici", + "Algeria": "Algérie", + "Albania": "Albanie", + "Åland Islands": "Îles Åland", + "Afghanistan": "Afghanistan", + "United States": "États-Unis", + "United Kingdom": "Royaume-Uni", + "You've reached the maximum number of simultaneous calls.": "Vous avez atteint le nombre maximum d'appels en simultané.", + "No other application is using the webcam": "Aucune autre application n'est en train d'utiliser la caméra", + "A microphone and webcam are plugged in and set up correctly": "Un microphone et une caméra sont branchées et bien configurées", + "Unable to access webcam / microphone": "Impossible d'accéder à la caméra ou microphone", + "Call failed because microphone could not be accessed. Check that a microphone is plugged in and set up correctly.": "La fonction a échoué car le microphone n'a pas pu être accédé. Vérifiez qu'un microphone est branché et bien configuré.", + "Unable to access microphone": "Impossible d'accéder au microphone", + "Belgium": "Belgique", + "Belarus": "Biélorussie", + "Barbados": "Barbade", + "Bangladesh": "Bangladesh", + "Bahrain": "Bahreïn", + "Bahamas": "Les Bahamas", + "Azerbaijan": "Azerbaïdjan", + "Austria": "Autriche", + "Australia": "Australie", + "Aruba": "Aruba", + "Armenia": "Arménie", + "Argentina": "Argentine", + "Antigua & Barbuda": "Antigue-et-Barbude", + "Antarctica": "Antarctique", + "Anguilla": "Anguilla", + "Angola": "République d'Angola", + "Andorra": "Andorre", + "American Samoa": "Samoa américaines", + "Invite someone using their name, email address, username (like ) or share this room.": "Invitez quelqu'un via leur nom, e-mail ou nom d'utilisateur (p. ex. ) ou partagez ce salon.", + "Start a conversation with someone using their name, email address or username (like ).": "Commencer une conversation avec quelqu'un via leur nom, e-mail ou nom d'utilisateur (comme par exemple ).", + "Too Many Calls": "Trop d'appels", + "Permission is granted to use the webcam": "Permission accordée pour l'utilisation de la webcam", + "Call failed because webcam or microphone could not be accessed. Check that:": "La fonction a échoué car la webcam ou le microphone ne pouvait pas être accédé. Vérifiez que :", + "Send stickers to this room as you": "Envoyer des stickers dans ce salon en tant que vous", + "Zambia": "Zambie", + "Yemen": "Yémen", + "Western Sahara": "Sahara occidental", + "Wallis & Futuna": "Wallis-et-Futuna", + "Vietnam": "Viêt Nam", + "Venezuela": "Vénézuéla", + "Vatican City": "Vatican", + "Vanuatu": "Vanuatu", + "Uzbekistan": "Ouzbékistan", + "Uruguay": "Uruguay", + "United Arab Emirates": "Émirats arabes unis", + "Ukraine": "Ukraine", + "Uganda": "Ouganda", + "U.S. Virgin Islands": "Îles Vierges des États-Unis", + "Tuvalu": "Tuvalu", + "Turks & Caicos Islands": "Îles Turques-et-Caïques", + "Turkmenistan": "Turkménistan", + "Turkey": "Turquie", + "Tunisia": "Tunisie", + "Trinidad & Tobago": "Trinité-et-Tobago", + "Tonga": "Tonga", + "Tokelau": "Tokelau", + "Togo": "Togo", + "Timor-Leste": "Timor oriental", + "Thailand": "Thaïlande", + "Tanzania": "Tanzanie", + "Tajikistan": "Tadjikistan", + "Taiwan": "Taïwan", + "São Tomé & Príncipe": "Sao Tomé-et-Principe", + "Syria": "Syrie", + "Switzerland": "Suisse", + "Sweden": "Suède", + "Swaziland": "Eswatini", + "Svalbard & Jan Mayen": "Svalbard et Jan Mayen", + "Suriname": "Suriname", + "Sudan": "Soudan", + "St. Vincent & Grenadines": "Saint-Vincent-et-les-Grenadines", + "St. Pierre & Miquelon": "Saint-Pierre-et-Miquelon", + "St. Martin": "Saint-Martin (Antilles françaises)", + "St. Lucia": "Sainte-Lucie", + "St. Kitts & Nevis": "Saint-Christophe-et-Niévès", + "St. Helena": "Île Sainte-Hélène", + "St. Barthélemy": "Saint-Barthélemy", + "Sri Lanka": "Sri Lanka", + "Spain": "Espagne", + "South Sudan": "Soudan du Sud", + "South Korea": "Corée du Sud", + "South Georgia & South Sandwich Islands": "Géorgie du Sud-et-les îles Sandwich du Sud", + "South Africa": "Afrique du Sud", + "Somalia": "Somalie", + "Solomon Islands": "Îles Salomon", + "Slovenia": "Slovénie", + "Slovakia": "Slovaquie", + "Sint Maarten": "Saint-Martin (royaume des Pays-Bas)", + "Singapore": "Singapour", + "Sierra Leone": "Sierra Leone", + "Seychelles": "Seychelles", + "Serbia": "Serbie", + "Senegal": "Sénégal", + "Saudi Arabia": "Arabie saoudite", + "San Marino": "Saint-Marin", + "Samoa": "Samoa", + "Réunion": "La Réunion", + "Rwanda": "Rwanda", + "Russia": "Russie", + "Romania": "Roumanie", + "Qatar": "Qatar", + "Puerto Rico": "Porto Rico", + "Portugal": "Portugal", + "Poland": "Pologne", + "Pitcairn Islands": "Îles Pitcairn", + "Philippines": "Philippines", + "Peru": "Pérou", + "Paraguay": "Paraguay", + "Papua New Guinea": "Papouasie-Nouvelle-Guinée", + "Panama": "Panama", + "Palestine": "Palestine", + "Palau": "Palaos", + "Pakistan": "Pakistan", + "Oman": "Oman", + "Norway": "Norvège", + "Northern Mariana Islands": "Îles Mariannes du Nord", + "North Korea": "Corée du Nord", + "Norfolk Island": "Île Norfolk", + "Niue": "Niue", + "Nigeria": "Nigéria", + "Niger": "Niger", + "Nicaragua": "Nicaragua", + "New Zealand": "Nouvelle-Zélande", + "New Caledonia": "Nouvelle-Calédonie", + "Netherlands": "Pays-Bas", + "Nepal": "Népal", + "Nauru": "Nauru", + "Namibia": "Namibie", + "Myanmar": "Birmanie", + "Mozambique": "Mozambique", + "Morocco": "Maroc", + "Montserrat": "Montserrat", + "Montenegro": "Monténégro", + "Mongolia": "Mongolie", + "Monaco": "Monaco", + "Moldova": "Moldavie", + "Micronesia": "États fédérés de Micronésie", + "Mexico": "Mexico", + "Mayotte": "Mayotte", + "Mauritius": "République de Maurice", + "Mauritania": "Mauritanie", + "Martinique": "Martinique", + "Marshall Islands": "Îles Marshall", + "Malta": "Malte", + "Mali": "Mali", + "Maldives": "Maldives", + "Malaysia": "Malaisie", + "Malawi": "Malawi", + "Madagascar": "Madagascar", + "Macedonia": "Macédoine du Nord", + "Macau": "Macao", + "Benin": "Bénin", + "Host account on": "Héberger le compte sur", + "Belize": "Bélize", + "Luxembourg": "Luxembourg", + "Lithuania": "Lituanie", + "Liechtenstein": "Liechtenstein", + "Libya": "Libye", + "Liberia": "Liberia", + "Lesotho": "Lesotho", + "Lebanon": "Liban", + "Latvia": "Lettonie", + "Laos": "Laos", + "Kyrgyzstan": "Kirghizistan", + "Kuwait": "Koweït", + "Kosovo": "Kosovo", + "Kiribati": "Kiribati", + "Kenya": "Kenya", + "Kazakhstan": "Kazakhstan", + "Jordan": "Jordanie", + "Jersey": "Jersey", + "Japan": "Japon", + "Jamaica": "Jamaïque", + "Italy": "Italie", + "Israel": "Israël", + "Isle of Man": "Île de Man", + "Ireland": "Irlande", + "Iraq": "Irak", + "Iran": "Iran", + "Indonesia": "Indonésie", + "India": "Inde", + "Iceland": "Islande", + "Hungary": "Hongrie", + "Hong Kong": "Hong Kong", + "Honduras": "Honduras", + "Heard & McDonald Islands": "Îles Heard-et-MacDonald", + "Haiti": "Haïti", + "Guyana": "Guyana", + "Guinea-Bissau": "Guinée-Bissau", + "Guinea": "Guinée", + "Guernsey": "Guernesey", + "Guatemala": "Guatemala", + "Guam": "Guam", + "Guadeloupe": "Guadeloupe", + "Grenada": "Grenade", + "Greenland": "Groenland", + "Greece": "Grèce", + "Gibraltar": "Gibraltar", + "Ghana": "Ghana", + "Germany": "Allemagne", + "Georgia": "Géorgie", + "Gambia": "Gambie", + "Gabon": "République gabonaise", + "French Southern Territories": "Terres australes et antarctiques françaises", + "French Polynesia": "Polynésie française", + "French Guiana": "Guyane", + "France": "France", + "Finland": "Finlande", + "Fiji": "Îles Fidji", + "Faroe Islands": "Îles Féroé", + "Falkland Islands": "Îles Malouines (Falkland)", + "Ethiopia": "Éthiopie", + "Estonia": "Estonie", + "Eritrea": "Érythrée", + "Equatorial Guinea": "Guinée équatoriale", + "El Salvador": "Le Salvador", + "Egypt": "Égypte", + "Ecuador": "République de l'Équateur", + "Dominican Republic": "République dominicaine", + "Dominica": "Dominique", + "Djibouti": "Djibouti", + "Denmark": "Danemark", + "Côte d’Ivoire": "Côte d’Ivoire (Terre d'Éburnie)", + "Czech Republic": "La République tchèque", + "Cyprus": "Chypre", + "Curaçao": "Curaçao", + "Cuba": "Cuba", + "Croatia": "Croatie", + "Costa Rica": "Costa Rica", + "Cook Islands": "Îles Cook", + "Congo - Kinshasa": "République démocratique du Congo", + "Congo - Brazzaville": "République du Congo", + "Comoros": "Comores", + "Colombia": "Colombia", + "Cocos (Keeling) Islands": "îles Cocos", + "Christmas Island": "île Christmas", + "China": "Chine", + "Chile": "Chili", + "Chad": "Tchad", + "Central African Republic": "République centrafricaine", + "Cayman Islands": "Îles Caïmans", + "Caribbean Netherlands": "Pays-Bas caribéens", + "Cape Verde": "Cap-Vert", + "Canada": "Canada", + "Cameroon": "Cameroun", + "Cambodia": "Cambodge", + "Burundi": "La république du Burundi", + "Burkina Faso": "Burkina Faso", + "Bulgaria": "Bulgarie", + "Brunei": "Brunéi", + "British Virgin Islands": "Îles Vierges britanniques", + "British Indian Ocean Territory": "Territoire britannique de l'océan Indien", + "Brazil": "Brésil", + "Bouvet Island": "Île Bouvet", + "Botswana": "", + "Bosnia": "Bosnie-Herzegovine", + "Bolivia": "", + "Bhutan": "", + "Bermuda": "", + "with state key %(stateKey)s": "avec la ou les clés d'état %(stateKey)s", + "with an empty state key": "avec une clé d'état vide", + "See when anyone posts a sticker to your active room": "Voir quand n'importe qui envoye un sticker dans le salon actuel", + "See when a sticker is posted in this room": "Voir quand un sticker est envoyé dans ce salon", + "See when the avatar changes in your active room": "Voir quand l'avatar change dans le salon actuel", + "Change the avatar of your active room": "Changer l'avatar du salon actuel", + "See when the avatar changes in this room": "Voir quand l'avatar change dans ce salon", + "Change the avatar of this room": "Changer l'avatar de ce salon", + "Send stickers into your active room": "Envoyer des stickers dans le salon actuel", + "See when the topic changes in this room": "Voir quand le sujet change dans ce salon", + "See when the topic changes in your active room": "Voir quand le sujet change dans le salon actuel", + "Change the name of your active room": "Changer le nom du salon actuel", + "See when the name changes in this room": "Traquer quand le nom change dans ce salon", + "Change the name of this room": "Changer le nom de ce salon", + "Change the topic of your active room": "Changer le sujet dans le salon actuel", + "Change the topic of this room": "Changer le sujet de ce salon", + "Send stickers into this room": "Envoyer des stickers dans ce salon", + "Remain on your screen when viewing another room, when running": "Reste sur votre écran quand vous regardez un autre salon lors de l'appel", + "Takes the call in the current room off hold": "Reprends l'appel en cours dans ce salon", + "Places the call in the current room on hold": "Met l'appel en pause dans ce salon", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "Ajoute \"(╯°□°)╯︵ ┻━┻\" en préfixe du message", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "Ajoute \"┬──┬ ノ( ゜-゜ノ)\" en préfixe du message", + "Effects": "Effets", + "Zimbabwe": "Zimbabwe", + "Send images as you in your active room": "Envoie des images sous votre nom dans le salon actuel", + "Send images as you in this room": "Envoie des images sous votre nom dans ce salon", + "See emotes posted to your active room": "Voir les émoticônes envoyées dans le salon actuel", + "See emotes posted to this room": "Voir les émoticônes envoyées dans ce salon", + "Send emotes as you in your active room": "Envoyer des émoticônes sous votre nom dans le salon actuel", + "Send emotes as you in this room": "Envoyer des émoticônes sous votre nom dans ce salon", + "See videos posted to your active room": "Voir les vidéos publiées dans votre salon actuel", + "See videos posted to this room": "Voir les vidéos publiées dans ce salon", + "Send videos as you in your active room": "Envoie des vidéos en tant que vous dans votre salon actuel", + "Send videos as you in this room": "Envoie des vidéos en tant que vous dans ce salon", + "See images posted to this room": "Voir les images publiées dans ce salon", + "See images posted to your active room": "Voir les images publiées dans votre salon actuel", + "See messages posted to your active room": "Voir les messages publiés dans votre salon actuel", + "See messages posted to this room": "Voir les messages publiés dans ce salon", + "Send messages as you in your active room": "Envoie des messages en tant que vous dans votre salon actuel", + "Send messages as you in this room": "Envoie des messages en tant que vous dans ce salon", + "The %(capability)s capability": "La capacité %(capability)s", + "See %(eventType)s events posted to your active room": "Voir les événements %(eventType)s publiés dans votre salon actuel", + "Send %(eventType)s events as you in your active room": "Envoie des événements %(eventType)s en tant que vous dans votre salon actuel", + "See %(eventType)s events posted to this room": "Voir les événements %(eventType)s publiés dans ce salon", + "Send %(eventType)s events as you in this room": "Envoie des événements %(eventType)s en tant que vous dans ce salon", + "Send stickers to your active room as you": "Envoie des stickers en tant que vous dans le salon actuel", + "Continue with %(ssoButtons)s": "Continuer avec %(ssoButtons)s", + "About homeservers": "À propos des serveurs d'accueils", + "Learn more": "En savoir plus", + "Use your preferred Matrix homeserver if you have one, or host your own.": "Utilisez votre serveur d'accueil Matrix préféré si vous en avez un, ou hébergez le vôtre.", + "Other homeserver": "Autre serveur d'accueil", + "We call the places where you can host your account ‘homeservers’.": "Nous appelons ‘serveur d'accueils’ les lieux où vous pouvez héberger votre compte.", + "Sign into your homeserver": "Connectez-vous sur votre serveur d'accueil", + "Matrix.org is the biggest public homeserver in the world, so it’s a good place for many.": "Matrix.org est le plus grand serveur d'accueil dans le monde, donc c'est un bon lieu pour beaucoup.", + "Specify a homeserver": "Spécifiez un serveur d'accueil", + "Invalid URL": "URL invalide", + "Unable to validate homeserver": "Impossible de valider le serveur d'accueil", + "Just a heads up, if you don't add an email and forget your password, you could permanently lose access to your account.": "Juste une remarque, si vous n'ajoutez pas un email et que vous oubliez votre mot de passe, vous pourriez perdre définitivement l'accés à votre compte.", + "Continuing without email": "Continuer sans email", + "Transfer": "Transférer", + "Failed to transfer call": "N'a pas réussi à transférer l'appel", + "A call can only be transferred to a single user.": "Un appel peut seulement être transféré à un seul utilisateur.", + "Invite by email": "Inviter par email", + "Active Widgets": "Gadgets actifs", + "Reason (optional)": "Raison (optionnelle)", + "Continue with %(provider)s": "Continuer avec %(provider)s", + "Homeserver": "Serveur d'accueil", + "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Element with an existing Matrix account on a different homeserver.": "Vous pouvez utiliser les options de serveur personnalisés pour vous connecter à d'autres serveurs Matrix en spécifiant une URL de serveur d'accueil différente. Celà vous permet d'utiliser Element avec un compte Matrix existant sur un serveur d'accueil différent.", + "Server Options": "Options serveur", + "Messages in this room are end-to-end encrypted. When people join, you can verify them in their profile, just tap on their avatar.": "Les messages ici sont chiffrés de bout en bout. Quand les gens joignent, vous pouvez les vérifiez dans leur profil, tappez juste sur leur avatar.", + "Messages here are end-to-end encrypted. Verify %(displayName)s in their profile - tap on their avatar.": "Les messages ici sont chiffrés de bout en bout. Vérifiez %(displayName)s dans leur profil - tapez sur leur avatar.", + "Role": "Rôle", + "Use the + to make a new room or explore existing ones below": "Utilisez le + pour créer un nouveau salon ou explorer les existantes ci-dessous", + "This is the start of .": "C'est le début de .", + "Add a photo, so people can easily spot your room.": "Ajoutez une photo afin que les gens repèrent facilement votre salon.", + "%(displayName)s created this room.": "%(displayName)s a créé ce salon.", + "You created this room.": "Vous avez créé ce salon.", + "Add a topic to help people know what it is about.": "Ajoutez un sujet pour aider les gens à savoir de quoi il est question.", + "Topic: %(topic)s ": "Sujet : %(topic)s ", + "Topic: %(topic)s (edit)": "Sujet : %(topic)s (éditer)", + "This is the beginning of your direct message history with .": "C'est le début de votre historique de messages direct avec .", + "Only the two of you are in this conversation, unless either of you invites anyone to join.": "Seulement vous deux êtes dans cette conversation, à moins que l'un de vous invite quelqu'un à joindre.", + "%(name)s on hold": "%(name)s est en attente", + "Return to call": "Revenir à l'appel", + "Fill Screen": "Remplir l'écran", + "Voice Call": "Appel vocal", + "Video Call": "Appel vidéo", + "%(peerName)s held the call": "%(peerName)s a mis l'appel en pause", + "You held the call Resume": "Vous avez mis l'appel en attente Reprendre", + "You held the call Switch": "Vous avez mis l'appel en attente Basculer", + "sends snowfall": "envoie une chute de neige", + "Sends the given message with snowfall": "Envoie le message donné avec une chute de neige", + "sends fireworks": "envoie des feux d'artifices", + "Sends the given message with fireworks": "Envoie le message donné avec des feux d'artifices", + "sends confetti": "envoie des confettis", + "Sends the given message with confetti": "Envoie le message avec des confettis", + "Show chat effects": "Montrer les effets cosmétiques du chat", + "Use Command + Enter to send a message": "Utilisez Ctrl + Entrée pour envoyer un message", + "Render LaTeX maths in messages": "Formate et affiche les maths format LaTeX dans les messages", + "New version of %(brand)s is available": "Nouvelle version de %(brand)s disponible", + "Update %(brand)s": "Mettre à jour %(brand)s", + "Enable desktop notifications": "Activer les notifications sur le bureau", + "Don't miss a reply": "Ne ratez pas une réponse", + "See %(msgtype)s messages posted to your active room": "Voir les messages de type %(msgtype)s publiés dans le salon actuel", + "See %(msgtype)s messages posted to this room": "Voir les messages de type %(msgtype)s publiés dans ce salon", + "Send %(msgtype)s messages as you in this room": "Envoie des messages de type%(msgtype)s en tant que vous dans ce salon", + "Send %(msgtype)s messages as you in your active room": "Envoie des messages de type %(msgtype)s en tant que vous dans votre salon actuel", + "See general files posted to your active room": "Voir les fichiers postés dans votre salon actuel", + "See general files posted to this room": "Voir les fichiers postés dans ce salon", + "Send general files as you in your active room": "Envoie des fichiers en tant que vous dans votre salon actuel", + "Send general files as you in this room": "Envoie des fichiers en tant que vous dans ce salon" } diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index cc3575dbb3..006412fb88 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -920,7 +920,7 @@ "Messages": "Mensaxes", "Actions": "Accións", "Other": "Outro", - "Prepends ¯\\_(ツ)_/¯ to a plain-text message": "Anteponse ¯\\_(ツ)_/¯ a mensaxe en texto plano", + "Prepends ¯\\_(ツ)_/¯ to a plain-text message": "Antecede con ¯\\_(ツ)_/¯ a mensaxe en texto plano", "Sends a message as plain text, without interpreting it as markdown": "Envía unha mensaxe como texto plano, sen interpretalo como markdown", "Sends a message as html, without interpreting it as markdown": "Envía unha mensaxe como html, sen interpretalo como markdown", "Upgrades a room to a new version": "Subir a sala de versión", @@ -936,7 +936,7 @@ "This room has no topic.": "Esta sala non ten asunto.", "Sets the room name": "Establecer nome da sala", "Use an identity server": "Usar un servidor de identidade", - "Use an identity server to invite by email. Click continue to use the default identity server (%(defaultIdentityServerName)s) or manage in Settings.": "Usar un servidor de identidade para convidar por email. Preme continuar para usar o servidor de identidade por omisión (%(defaultIdentityServerName)s) ou cambiao en Axustes.", + "Use an identity server to invite by email. Click continue to use the default identity server (%(defaultIdentityServerName)s) or manage in Settings.": "Usar un servidor de identidade para convidar por email. Preme continuar para usar o servidor de identidade por defecto (%(defaultIdentityServerName)s) ou cambiao en Axustes.", "Use an identity server to invite by email. Manage in Settings.": "Usar un servidor de indentidade para convidar por email. Xestionao en Axustes.", "Command failed": "O comando fallou", "Could not find user in room": "Non se atopa a usuaria na sala", @@ -1494,7 +1494,7 @@ "Key backup": "Copia da Chave", "Message search": "Buscar mensaxe", "Cross-signing": "Sinatura cruzada", - "Your server admin has disabled end-to-end encryption by default in private rooms & Direct Messages.": "A administración do servidor desactivou por omisión o cifrado extremo-a-extremo en salas privadas e Mensaxes Directas.", + "Your server admin has disabled end-to-end encryption by default in private rooms & Direct Messages.": "A administración do servidor desactivou por defecto o cifrado extremo-a-extremo en salas privadas e Mensaxes Directas.", "A session's public name is visible to people you communicate with": "Un nome público de sesión é visible para a xente coa que te comunicas", "Missing media permissions, click the button below to request.": "Falta permiso acceso multimedia, preme o botón para solicitalo.", "Request media permissions": "Solicitar permiso a multimedia", @@ -1833,7 +1833,7 @@ "Add a new server...": "Engadir un novo servidor...", "%(networkName)s rooms": "Salas de %(networkName)s", "That doesn't look like a valid email address": "Non semella un enderezo de email válido", - "Use an identity server to invite by email. Use the default (%(defaultIdentityServerName)s) or manage inSettings .": "Usa un servidor de identidade para convidar por email.Usa valor por omisión (%(defaultIdentityServerName)s) ou xestionao enAxustes .", + "Use an identity server to invite by email.Use the default (%(defaultIdentityServerName)s) or manage inSettings .": "Usa un servidor de identidade para convidar por email.Usa o valor por defecto (%(defaultIdentityServerName)s) ou xestionao enAxustes .", "Use an identity server to invite by email. Manage inSettings .": "Usa un servidor de identidade para convidar por email. Xestionao enAxustes .", "The following users may not exist": "As seguintes usuarias poderían non existir", "Unable to find profiles for the Matrix IDs listed below - would you like to invite them anyway?": "Non se atopou o perfil dos IDs Matrix da lista inferior - ¿Desexas convidalas igualmente?", @@ -2360,7 +2360,7 @@ "Set the name of a font installed on your system & %(brand)s will attempt to use it.": "Escolle unha das tipografías instaladas no teu sistema e %(brand)s intentará utilizalas.", "Make this room low priority": "Marcar a sala como de baixa prioridade", "Low priority rooms show up at the bottom of your room list in a dedicated section at the bottom of your room list": "As salas de baixa prioridade aparecen abaixo na lista de salas, nunha sección dedicada no final da lista", - "Use default": "Usar por omisión", + "Use default": "Usar por defecto", "Mentions & Keywords": "Mencións e Palabras chave", "Notification options": "Opcións de notificación", "Favourited": "Con marca de Favorita", @@ -2971,5 +2971,86 @@ "You held the call Resume": "Colgaches a chamada, Retomar", "You've reached the maximum number of simultaneous calls.": "Acadaches o número máximo de chamadas simultáneas.", "Too Many Calls": "Demasiadas chamadas", - "%(name)s paused": "detido por %(name)s" + "%(name)s paused": "detido por %(name)s", + "sends fireworks": "envía fogos de artificio", + "Sends the given message with fireworks": "Envia a mensaxe dada con fogos de artificio", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "Antecede con ┬──┬ ノ( ゜-゜ノ) a unha mensaxe de texto plano", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "Antecede con (╯°□°)╯︵ ┻━┻ a unha mensaxe de texto plano", + "%(name)s on hold": "%(name)s agardando", + "You held the call Switch": "Pausaches a chamada Cambiar", + "sends snowfall": "envía neve", + "Sends the given message with snowfall": "Engade neve caendo á mensaxe", + "You have no visible notifications.": "Non tes notificacións visibles.", + "Transfer": "Transferir", + "Failed to transfer call": "Fallou a transferencia da chamada", + "A call can only be transferred to a single user.": "Unha chamada só se pode transferir a unha única usuaria.", + "There was an error finding this widget.": "Houbo un fallo ao buscar o widget.", + "Active Widgets": "Widgets activos", + "Open dial pad": "Abrir marcador", + "Start a Conversation": "Iniciar unha Conversa", + "Dial pad": "Marcador", + "There was an error looking up the phone number": "Houbo un erro buscando o número de teléfono", + "Unable to look up phone number": "Non atopamos o número de teléfono", + "Channel:": "Canle: ", + "Workspace: ": "Espazo de traballo: ", + "Change which room, message, or user you're viewing": "Cambia a sala, mensaxe ou usuaria que estás vendo", + "This session has detected that your Security Phrase and key for Secure Messages have been removed.": "Esta sesión detectou que se eliminaron a túa Frase de Seguridade e chave para Mensaxes Seguras.", + "A new Security Phrase and key for Secure Messages have been detected.": "Detectouse unha nova Frase de Seguridade e chave para as Mensaxes Seguras.", + "Make a copy of your Security Key": "Fai unha copia da túa Chave de Seguridade", + "Confirm your Security Phrase": "Confirma a Frase de Seguridade", + "Secure your backup with a Security Phrase": "Asegura a copia cunha Frase de Seguridade", + "Your Security Key is in your Downloads folder.": "A Chave de Seguridade está no cartafol Descargas.", + "Your Security Key has been copied to your clipboard, paste it to:": "A Chave de Seguridade foi copiada ao portapapeis, pégaa en:", + "Your Security Key": "A túa Chave de Seguridade", + "Your Security Key is a safety net - you can use it to restore access to your encrypted messages if you forget your Security Phrase.": "A túa Chave de Seguridade é unha rede de seguridade - podes utilizala para restablecer o acceso ás mensaxes cifradas se esqueceches a Frase de Seguridade.", + "Repeat your Security Phrase...": "Repite a Frase de Seguridade...", + "Please enter your Security Phrase a second time to confirm.": "Escribe outra vez a Frase de Seguridade para confirmala.", + "Set up with a Security Key": "Configurar cunha Chave de Seguridade", + "Great! This Security Phrase looks strong enough.": "Ben! Esta Frase de Seguridade semella ser forte abondo.", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a Security Phrase.": "Gardaremos unha copia cifrada das túas chaves no noso servidor. Asegura a túa copia cunha Frase de Seguridade.", + "Use Security Key": "Usar Chave de Seguridade", + "Use Security Key or Phrase": "Usar Chave ou Frase de Seguridade", + "If you've forgotten your Security Key you can ": "Se esqueceches a túa Chave de Seguridade podes ", + "Access your secure message history and set up secure messaging by entering your Security Key.": "Accede ao teu historial de mensaxes seguras e asegura a comunicación escribindo a Chave de Seguridade.", + "Not a valid Security Key": "Chave de Seguridade non válida", + "This looks like a valid Security Key!": "Semella unha Chave de Seguridade válida!", + "Enter Security Key": "Escribe a Chave de Seguridade", + "If you've forgotten your Security Phrase you can use your Security Key orset up new recovery options ": "Se esqueceches a túa Frase de Seguridade podesusar a túa Chave de Seguridade ouestablecer novas opcións de recuperación ", + "Access your secure message history and set up secure messaging by entering your Security Phrase.": "Accede ao teu historial de mensaxes seguras e configura a comunicación segura escribindo a túa Frase de Seguridade.", + "Enter Security Phrase": "Escribe a Frase de Seguridade", + "Backup could not be decrypted with this Security Phrase: please verify that you entered the correct Security Phrase.": "Non se puido descifrar a Copia con esta Frase de Seguridade: comproba que escribiches a Frase de Seguridade correcta.", + "Incorrect Security Phrase": "Frase de Seguridade incorrecta", + "Backup could not be decrypted with this Security Key: please verify that you entered the correct Security Key.": "Non se puido descifrar a Copia con esta Chave de Seguridade: comproba que aplicaches a Chave de Seguridade correcta.", + "Security Key mismatch": "Non concorda a Chave de Seguridade", + "Unable to access secret storage. Please verify that you entered the correct Security Phrase.": "Non se puido acceder ao almacenaxe segredo. Comproba que escribiches correctamente a Frase de Seguridade.", + "Invalid Security Key": "Chave de Seguridade non válida", + "Wrong Security Key": "Chave de Seguridade incorrecta", + "We recommend you change your password and Security Key in Settings immediately": "Recomendámosche cambiar o teu contrasinal e Chave de Seguridade inmediatamente nos Axustes", + "Set my room layout for everyone": "Establecer a miña disposición da sala para todas", + "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.": "Fai unha copia de apoio das chaves de cifrado da túa conta en caso de perder o acceso ás túas sesións. As chaves estarán seguras cunha única Chave de Seguridade.", + "%(senderName)s has updated the widget layout": "%(senderName)s actualizou a disposición dos widgets", + "Converts the room to a DM": "Converte a sala en MD", + "Converts the DM to a room": "Converte a MD nunha sala", + "Use Command + F to search": "Usa Command + F para buscar", + "Use Ctrl + F to search": "Usa Ctrl + F para buscar", + "Use app for a better experience": "Para ter unha mellor experiencia usa a app", + "Element Web is experimental on mobile. For a better experience and the latest features, use our free native app.": "Element Web en móbiles está en fase experimental. Para ter unha mellor experiencia e máis funcións utiliza a app nativa gratuíta.", + "Use app": "Usa a app", + "Search (must be enabled)": "Buscar (debe esta activa)", + "Allow this widget to verify your identity": "Permitir a este widget verificar a túa identidade", + "The widget will verify your user ID, but won't be able to perform actions for you:": "Este widget vai verificar o ID do teu usuario, pero non poderá realizar accións no teu nome:", + "Remember this": "Lembrar isto", + "Something went wrong in confirming your identity. Cancel and try again.": "Algo fallou ao intentar confirma a túa identidade. Cancela e inténtao outra vez.", + "Your homeserver rejected your log in attempt. This could be due to things just taking too long. Please try again. If this continues, please contact your homeserver administrator.": "O servidor de inicio rexeitou o intento de conexión. Esto podería deberse a que lle levou moito tempo. Inténtao outra vez e se persiste o problema contacta coa administración do servidor.", + "Your homeserver was unreachable and was not able to log you in. Please try again. If this continues, please contact your homeserver administrator.": "Non temos acceso ao teu servidor de inicio e non puidemos conectarte. Inténtao outra vez. Se persiste o problema, contacta coa administración do servidor.", + "Try again": "Intentar outra vez", + "We asked the browser to remember which homeserver you use to let you sign in, but unfortunately your browser has forgotten it. Go to the sign in page and try again.": "Pedíramoslle ao teu navegador que lembrase o teu servidor de inicio para conectarte, pero o navegador esqueceuno. Vaite á páxina de conexión e inténtao outra vez.", + "We couldn't log you in": "Non puidemos conectarte", + "Show stickers button": "Mostrar botón dos adhesivos", + "Windows": "Ventás", + "Screens": "Pantallas", + "Share your screen": "Compartir a túa pantalla", + "Recently visited rooms": "Salas visitadas recentemente", + "Show line numbers in code blocks": "Mostrar números de liña nos bloques de código", + "Expand code blocks by default": "Por omsión despregar bloques de código" } diff --git a/src/i18n/strings/he.json b/src/i18n/strings/he.json index b17fc5abc5..30ca524699 100644 --- a/src/i18n/strings/he.json +++ b/src/i18n/strings/he.json @@ -161,7 +161,7 @@ "Unable to look up room ID from server": "לא ניתן לאתר מזהה חדר על השרת", "Couldn't find a matching Matrix room": "לא נמצא חדר כזה ב מטריקס", "Invite to this room": "הזמן לחדר זה", - "You cannot delete this message. (%(code)s)": "לא ניתן למחוק הודעה זו. (%(code)s)", + "You cannot delete this message. (%(code)s)": "לא ניתן למחוק הודעה זו. (%(code)s)", "Thursday": "חמישי", "Search…": "חפש…", "Logs sent": "יומנים נשלחו", @@ -196,5 +196,2583 @@ "Thank you!": "רב תודות!", "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "באמצעות הדפדפן הנוכחי שלך המראה של היישום יכול להיות שגוי לחלוטין וחלק מהאפשרויות לא תתפקדנה. אם תרצה לנסות בכל זאת תוכל אבל אז כל האחריות עליך!", "Checking for an update...": "בודק עדכונים...", - "Your %(brand)s is misconfigured": "ה %(brand)s שלך מוגדר באופן שגוי" + "Your %(brand)s is misconfigured": "ה %(brand)s שלך מוגדר באופן שגוי", + "Which officially provided instance you are using, if any": "איזה אינסטנס רשמי אתם משתמשים אם בכללאיזה אינסטנס רשמי אתם משתמשים אם בכלל", + "Your language of choice": "בחירת שפה", + "Whether or not you're logged in (we don't record your username)": "אם הנכם מחוברים או לא (אנחנו לא שומרים מידע על המשתמש שלכם)", + "The version of %(brand)s": "גירסאת מוצר %(brand)s", + "The platform you're on": "הפלטפורמה שהינכם משתמשים בה", + "Add Phone Number": "הוסף מספר טלפון", + "Click the button below to confirm adding this phone number.": "לחצו על הכפתור לאישור הוספת מספר הטלפון הזה.", + "Confirm adding phone number": "אישור הוספת מספר טלפון", + "Confirm adding this phone number by using Single Sign On to prove your identity.": "אשר הוספת מספר טלפון על ידי כניסה חד שלבית לאימות חשבונכם.", + "Add Email Address": "הוספת כתובת מייל", + "Confirm": "אישור", + "Click the button below to confirm adding this email address.": "לחץ על הכפתור בכדי לאשר הוספה של כתובת מייל הזו.", + "Confirm adding email": "אשר הוספת כתובת מייל", + "Single Sign On": "כניסה חד שלבית", + "Opens chat with the given user": "פתח שיחה עם המשתמש הזה", + "Send a bug report with logs": "שולח דוח תקלה עם לוג", + "Displays information about a user": "מציג מידע אודות משתמש", + "Displays list of commands with usages and descriptions": "מציג רשימת פקודות עם שימוש והוראות", + "Sends the given emote coloured as a rainbow": "שולח את האימוג'י צבוע בקשת של צבעים", + "Sends the given message coloured as a rainbow": "שולח את ההודעה כקשת של צבעים", + "Forces the current outbound group session in an encrypted room to be discarded": "מאלץ להתעלם מהתקשורת היוצאת מהתחברות של קבוצה בחדר מוצפן", + "The signing key you provided matches the signing key you received from %(userId)s's session %(deviceId)s. Session marked as verified.": "המפתח החתום שנתתם תואם את המפתח שקבלתם מ %(userId)s מהתחברות %(deviceId)s. ההתחברות סומנה כמאושרת.", + "Verified key": "מפתח מאושר", + "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and session %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "אזהרה: אימות מפתח נכשל! חתימת המפתח של %(userId)s ושל ההתחברות של מכשיר %(deviceId)s הינו \"%(fprint)s\" אשר אינו תואם למפתח הנתון \"%(fingerprint)s\". דבר זה יכול להעיר על כך שישנו נסיון להאזין לתקשורת שלכם!", + "WARNING: Session already verified, but keys do NOT MATCH!": "אזהרה: ההתחברות כבר אושרה אך המפתחות לא תואמים!", + "Session already verified!": "ההתחברות כבר אושרה!", + "Unknown (user, session) pair:": "צימוד לא ידוע (משתמש, התחברות):", + "Verifies a user, session, and pubkey tuple": "מוודא משתמש, התחברות וצמד מפתח ציבורי", + "You cannot modify widgets in this room.": "אינכם יכולים לערוך ווידג'ט בחדר זה.", + "Please supply a https:// or http:// widget URL": "אנא הוסיפו קישור לווידג'ט עם http:// או https://", + "Please supply a widget URL or embed code": "אנא ספקו כתובת של ווידג'ט או קוד הטמעה", + "Adds a custom widget by URL to the room": "מוסיף ווידג'ט מותאם לפי קישור לחדר זה", + "Opens the Developer Tools dialog": "פותח את דיאלוג כלי המפתחים", + "Deops user with given id": "מסיר משתמש עם קוד זיהוי זה", + "Could not find user in room": "משתמש זה לא נמצא בחדר", + "Command failed": "הפקודה נכשלה", + "Define the power level of a user": "הגדירו את רמת ההרשאות של משתמש", + "You are no longer ignoring %(userId)s": "אינכם מתעלמים יותר מ %(userId)s", + "Unignored user": "משתמש מוכר", + "Stops ignoring a user, showing their messages going forward": "הפסקת התעלמות ממשתמש, אשרו את ההודעות שלהם אליכם", + "You are now ignoring %(userId)s": "אתם עכשיו מתעלמים מ %(userId)s", + "Ignored user": "משתמש נעלם", + "Ignores a user, hiding their messages from you": "התעלם ממשתמש, הסתר הודעות מהם", + "Unbans user with given ID": "ביטול חסימה של משתמש עם קוד זיהוי", + "Bans user with given id": "חסום משתמש עם קוד זיהוי", + "Kicks user with given id": "בעט במשתמש עם קוד זיהוי", + "Unrecognised room address:": "כתובת חדר לא מזוהה:", + "Leave room": "עזוב חדר", + "Joins room with given address": "חיבור לחדר עם כתובת מסויימת", + "Use an identity server to invite by email. Manage in Settings.": "השתמש בשרת זיהוי להזמין דרך מייל. ניהול דרך ההגדרות.", + "Use an identity server to invite by email. Click continue to use the default identity server (%(defaultIdentityServerName)s) or manage in Settings.": "השתמש בשרת זיהוי על מנת להזמין דרך מייל. לחצו על המשך להשתמש בשרת ברירת המחדל %(defaultIdentityServerName)s או הגדירו את השרת שלכם בהגדרות.", + "Use an identity server": "השתמש בשרת זיהוי", + "Invites user with given id to current room": "מזמין משתמש עם זיהוי מוגדר לחדר זה", + "Sets the room name": "מגדיר את שם החדר", + "This room has no topic.": "לחדר זה אין נושא.", + "Failed to set topic": "כשלון בהגדרת נושא החדר", + "Gets or sets the room topic": "קורא או כותב את נושא החדר", + "Changes your avatar in all rooms": "משנה את האווטר שלכם בכל החדרים", + "Changes your avatar in this current room only": "משנה את האווטר שלכם בחדר זה בלבד", + "Changes the avatar of the current room": "משנה את האווטר של החדר הנוכחי", + "Changes your display nickname in the current room only": "משנה את שם התצוגה שלכם בחדר זה בלבד", + "Changes your display nickname": "משנה את שם התצוגה שלכם", + "Double check that your server supports the room version chosen and try again.": "בדקו שהשרת תומך בגרסאת החדר ונסו שוב.", + "Error upgrading room": "שגיאה בשדרוג חדר", + "You do not have the required permissions to use this command.": "אין לכם הרשאות להשתמש בפקודה זו.", + "Upgrades a room to a new version": "משדרג את החדר לגרסא חדשה", + "To use it, just wait for autocomplete results to load and tab through them.": "בכדי להשתמש אנא המתינו לתוצאות האוטומטיות להראות והשתמשו בטאב לעבור עליהן.", + "/ddg is not a command": "/ddg אינה פקודה", + "Searches DuckDuckGo for results": "חיפוש תוצאות ב DuckDuckGo", + "Sends a message as html, without interpreting it as markdown": "שלח הודעות כ HTML ללא תרגום שלהם כ MARKDOWN", + "Sends a message as plain text, without interpreting it as markdown": "שלח הודעה כטקסט פשוט ללא תרגום כקוד MARKDOWN", + "Prepends ( ͡° ͜ʖ ͡°) to a plain-text message": "הוסף לפני הודעת טקסט ( ͡° ͜ʖ ͡°)", + "Prepends ┬──┬ ノ( ゜-゜ノ) to a plain-text message": "הוסף לפני הודעת טקסט ┬──┬ ノ( ゜-゜ノ)", + "Prepends (╯°□°)╯︵ ┻━┻ to a plain-text message": "הוסף לפני הודעת טקסט (╯°□°)╯︵ ┻━┻", + "Prepends ¯\\_(ツ)_/¯ to a plain-text message": "הוסף לפני הודעת טקסט ¯\\_(ツ)_/¯", + "Usage": "שימוש", + "Command error": "שגיאת פקודה", + "Other": "אחר", + "Effects": "אפקטים", + "Advanced": "מתקדם", + "Actions": "פעולות", + "Messages": "הודעות", + "Setting up keys": "מגדיר מפתחות", + "Go Back": "חזרה", + "Are you sure you want to cancel entering passphrase?": "האם אתם בטוחים שהינכם רוצים לבטל?", + "Cancel entering passphrase?": "בטל הקלדת סיסמא?", + "Missing user_id in request": "קוד זיהוי משתמש חסר בשורת הבקשה", + "Room %(roomId)s not visible": "קוד זיהוי החדר %(roomId)s אינו נראה", + "Missing room_id in request": "קוד זיהוי החדר חסר בשורת הבקשה", + "You do not have permission to do that in this room.": "אין לכם הרשאות לבצע פעולה זו בחדר זה.", + "You are not in this room.": "אינכם נמצאים בחדר זה.", + "Power level must be positive integer.": "דרגת הרשאות חייבת להיות מספר חיובי.", + "This room is not recognised.": "החדר הזה אינו מזוהה.", + "Failed to send request.": "שליחת בקשה נכשלה.", + "Missing roomId.": "קוד זיהוי של החדר חסר.", + "Unable to create widget.": "לא ניתן היה ליצור ווידג'ט.", + "You need to be able to invite users to do that.": "עליכם להיות מאושרים להזמין משתמשים על מנת לבצע פעולה זו.", + "You need to be logged in.": "עליכם להיות מחוברים.", + "Failed to invite the following users to the %(roomName)s room:": "הזמנת המשתמשים הבאים לחדר %(roomName)s נכשלה:", + "Failed to invite users to the room:": "הזמנת משתמשים לחדר נכשלה:", + "Failed to invite": "הזמנה נכשלה", + "Custom (%(level)s)": "ידני %(level)s", + "Admin": "אדמין", + "Moderator": "מנהל", + "Restricted": "מחוץ לתחום", + "Timor-Leste": "טמור-לסטה", + "St. Martin": "סיינט מרטין", + "Oman": "אומן", + "Unable to load! Check your network connectivity and try again.": "טעינת הדף נכשלה. אנא בדקו את החיבור שלכם לאינטרנט ונסו שנית.", + "e.g.": "כלומר קישור נוכחי של הדף", + "Failure to create room": "כשלון ביצירת חדר", + "The server does not support the room version specified.": "השרת אינו תומך בגירסת החדר הזו.", + "Server may be unavailable, overloaded, or you hit a bug.": "השרת יכול להיות סגור או עמוס או יתכן ויש לכם תקלה.", + "The file '%(fileName)s' exceeds this homeserver's size limit for uploads": "הקובץ %(fileName)s עולה בגודלו על הגודל המותר להעלאה", + "The file '%(fileName)s' failed to upload.": "נכשלה העלאת הקובץ %(fileName)s.", + "At this time it is not possible to reply with a file. Would you like to upload this file without replying?": "לא ניתן כעת להשיב עם קובץ. האם תרצו להעלות את הקובץ ללא תגובה?", + "Replying With Files": "משוב עם קבצים", + "This will end the conference for everyone. Continue?": "זה יסיים את הועידה עבור כולם, להמשיך?", + "End conference": "סיום ועידה", + "You do not have permission to start a conference call in this room": "אין לכם הרשאות להתחיל ועידה בחדר זה", + "Permission Required": "הרשאה דרושה", + "A call is currently being placed!": "כרגע מתבצעת התחברות לשיחה!", + "Call in Progress": "שיחה פעילה", + "You've reached the maximum number of simultaneous calls.": "הגעתם למקסימום שיחות שניתן לבצע בו זמנית.", + "Too Many Calls": "יותר מדי שיחות", + "No other application is using the webcam": "שום אפליקציה אחרת אינה משתמשת במצלמה", + "Permission is granted to use the webcam": "ניתנה הרשאה לשימוש במצלמה", + "A microphone and webcam are plugged in and set up correctly": "מצלמה ומיקרופון מחוברים ומוגדרים היטב", + "Call failed because webcam or microphone could not be accessed. Check that:": "השיחה נכשלה משום שלא ניתן היה להפעיל מצלמה או מיקרופון, בדקו אותם:", + "Unable to access webcam / microphone": "לא ניתן היה להפעיל מצלמה \\ מיקרופון", + "Call failed because microphone could not be accessed. Check that a microphone is plugged in and set up correctly.": "השיחה נכשלה בגלל שלא ניתן היה להפעיל את המיקרופון. אנא בדקו שהמיקרופון מחובר ומוגדר נכון.", + "Unable to access microphone": "לא ניתן לגשת אל המיקרופון", + "Try using turn.matrix.org": "נסו להשתמש ב- turn.matrix.org", + "Alternatively, you can try to use the public server at turn.matrix.org
, but this will not be as reliable, and it will share your IP address with that server. You can also manage this in Settings.": "לחלופין אתם יכולים לנסות את השרת הציבוריturn.matrix.org
, אך דעו שהוא לא יהיה עקבי וכתובת הרשת שלכם תהיה חשופה לשרת הזה. אתם יכולים לנהל תכונה זו בהגדרות השרת.", + "Please ask the administrator of your homeserver (%(homeserverDomain)s
) to configure a TURN server in order for calls to work reliably.": "אנא בקשו ממנהל השרת (%(homeserverDomain)s
) לסדר את הגדרות שרת TURN על מנת שהשיחות יפעלו בעקביות.", + "Call failed due to misconfigured server": "השיחה נכשלה בגלל הגדרות שרת שגויות", + "The call was answered on another device.": "השיחה נענתה במכשיר אחר.", + "Answered Elsewhere": "נענה במקום אחר", + "The call could not be established": "לא ניתן להתקשר", + "The other party declined the call.": "הצד השני דחה את השיחה.", + "Call Declined": "שיחה נדחתה", + "Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.": "כאשר הדף הזה מכיל מידע מזהה כגון, שם חדר, משתמש או קבוצה, המידע הזה מוסר לפני שהוא נשלח אל השרת.", + "The information being sent to us to help make %(brand)s better includes:": "המידע אשר נשלח אלינו על מנת לשפר את %(brand)s מכיל:", + "Analytics": "אנליטיקה", + "Your device resolution": "רזולוציית המסך של המכשיר", + "Your user agent": "סוכן המשתמש שלך", + "Every page you use in the app": "כל דף שאתם משתמשים בו באפליקציה", + "e.g. %(exampleValue)s": "כלומר %(exampleValue)s", + "Whether you're using %(brand)s as an installed Progressive Web App": "האם אתם משתמשים ב %(brand)s כהתקנה מתקשדמת של אפליקציית רשת", + "Whether or not you're using the 'breadcrumbs' feature (avatars above the room list)": "האם אתם משתמשים בתכונת ה 'פירורים' (אוואטרים מעל רשימת החדרים)", + "Whether you're using %(brand)s on a device where touch is the primary input mechanism": "האם אתם משתמשים ב %(brand)s על מכשיר אשר המגע בו הוא התפעול העיקרי", + "Your homeserver's URL": "הקישור של השרת", + "Whether or not you're using the Richtext mode of the Rich Text Editor": "האם אתם משתמשים בתכונה המתקדמת של עורך הטקסט", + "This action requires accessing the default identity serverto validate an email address or phone number, but the server does not have any terms of service.": "פעולה זו דורשת להכנס אל שרת הזיהוי לאשר מייל או טלפון, אבל לשרת אין כללי שרות.", + "Identity server has no terms of service": "לשרת הזיהוי אין כללי שרות", + "Unnamed Room": "חדר ללא שם", + "Failed to add the following rooms to %(groupId)s:": "הוספת החדרים אל %(groupId)s נכשלה:", + "Failed to invite users to %(groupId)s": "הזמנת משתמשים אל %(groupId)s נכשלה", + "Failed to invite users to community": "הזמנת משתמשים אל הקהילה נכשלה", + "Failed to invite the following users to %(groupId)s:": "הזמנת החברים אל %(groupId)s נכשלה:", + "Add to community": "הוסף אל קהילה", + "Room name or address": "שם חדר או כתובת", + "Name or Matrix ID": "שם או שם משתמש", + "Only continue if you trust the owner of the server.": "המשיכו רק אם הנכם בוטחים בבעלים של השרת.", + "American Samoa": "סמואה האמריקאית", + "Algeria": "אלג'ריה", + "Albania": "אלבניה", + "Åland Islands": "איי אלנד", + "Afghanistan": "אפגניסטן", + "United States": "ארצות הברית", + "United Kingdom": "אנגליה", + "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "המייל שלכם לא משוייך לחשבון בשרת הזה.", + "This email address was not found": "המייל הזה לא נמצא", + "Unable to enable Notifications": "לא מצליח להחיל התרעות", + "%(brand)s was not given permission to send notifications - please try again": "%(brand)s לא נתנו הרשאות לשלוח התרעות - אנא נסו שוב", + "%(brand)s does not have permission to send you notifications - please check your browser settings": "%(brand)s אין אישור לשלוח אליכם הודעות - אנא בדקו את הרשאות הדפדפן", + "%(name)s is requesting verification": "%(name)s מבקש אימות", + "Trust": "לבטוח", + "Andorra": "אנדורה", + "Bangladesh": "בנגלדש", + "Bahrain": "בחריין", + "Bahamas": "בהמהס", + "Azerbaijan": "אזרבייג'ין", + "Austria": "אוסטריה", + "Australia": "אוסטרליה", + "Aruba": "ארובה", + "Armenia": "ארמניה", + "Argentina": "ארגנטינה", + "Antigua & Barbuda": "אנטיגואה וברבודה", + "Antarctica": "אנטארקטיקה", + "Anguilla": "אנגילה", + "Angola": "אנגולה", + "Barbados": "ברבדוס", + "Brunei": "ברוניי", + "British Virgin Islands": "איי הבתולה הבריטיים", + "British Indian Ocean Territory": "הטריטוריה הבריטית של האוקיינוס ההודי", + "Brazil": "ברזיל", + "Bouvet Island": "איי בובט", + "Botswana": "בוטסוואנה", + "Bosnia": "בוסניה", + "Bolivia": "בוליביה", + "Bhutan": "בוטאן", + "Bermuda": "ברמודה", + "Benin": "בנין", + "Belize": "בליזה", + "Belgium": "בלגיה", + "Belarus": "בלרוס", + "Bulgaria": "בולגריה", + "Cocos (Keeling) Islands": "איי קוקוס קלינג", + "Christmas Island": "איי קריסטמס", + "China": "סין", + "Chile": "צ'ילה", + "Chad": "צ'אד", + "Central African Republic": "הרפובליקה של מרכז אפריקה", + "Cayman Islands": "איי קיימן", + "Caribbean Netherlands": "קאריבים הולנדים", + "Cape Verde": "קייפ וורדה", + "Canada": "קנדה", + "Cameroon": "קאמרון", + "Cambodia": "קאמבודיה", + "Burundi": "בורונדי", + "Burkina Faso": "בורקינה פאסו", + "Colombia": "קולומביה", + "Comoros": "קומורוס", + "Dominican Republic": "הרפובליקה הדומיניקית", + "Dominica": "דומיניקה", + "Djibouti": "דג'יבוטי", + "Denmark": "דנמרק", + "Côte d’Ivoire": "קוטה דלוואיר", + "Czech Republic": "הרפובליקה הצ'כית", + "Cyprus": "קפריסין", + "Curaçao": "קורצ'ייאו", + "Cuba": "קובה", + "Croatia": "קרואטיה", + "Costa Rica": "קוטה ריקה", + "Cook Islands": "איי קוק", + "Congo - Kinshasa": "קונגו - קינשסה", + "Congo - Brazzaville": "קונגו - בראזווילה", + "Ecuador": "אקוודור", + "French Southern Territories": "הטריטוריות הדרומיות הצרפתיות", + "French Polynesia": "פולינזיה הצרפתית", + "French Guiana": "גיניאה הצרפתית", + "France": "צרפת", + "Finland": "פינלנד", + "Fiji": "פיג'י", + "Faroe Islands": "איי פארואה", + "Falkland Islands": "איי פולקלנד", + "Ethiopia": "אתיופיה", + "Estonia": "אסטוניה", + "Eritrea": "אריתריאה", + "Equatorial Guinea": "גיניאה המשוונית", + "El Salvador": "אל סלבדור", + "Egypt": "מצריים", + "Gabon": "גאבון", + "Guinea-Bissau": "גיניאה ביסאו", + "Guinea": "גיניאה", + "Guernsey": "גורנסיי", + "Guatemala": "גואטמלה", + "Guam": "גואם", + "Guadeloupe": "גואדלופה", + "Grenada": "גרנדה", + "Greenland": "גרינלנד", + "Greece": "יוון", + "Gibraltar": "גיברלטר", + "Ghana": "גאנה", + "Germany": "גרמניה", + "Georgia": "ג'ורג'יה", + "Gambia": "גמביה", + "Guyana": "גויאנה", + "Italy": "איטליה", + "Israel": "ישראל", + "Isle of Man": "איי מן", + "Ireland": "אירלנד", + "Iraq": "עירק", + "Iran": "אירן", + "Indonesia": "אינדונזיה", + "India": "הודו", + "Iceland": "איסלנד", + "Hungary": "הונגריה", + "Hong Kong": "הונק קונג", + "Honduras": "הונדורס", + "Heard & McDonald Islands": "איי הרס ומקדונלד", + "Haiti": "הייטי", + "Jamaica": "ג'מייקה", + "Liberia": "ליבריה", + "Lesotho": "לסות'ו", + "Lebanon": "לבנון", + "Latvia": "לטביה", + "Laos": "לאוס", + "Kyrgyzstan": "קירג'יזסטן", + "Kuwait": "כווית", + "Kosovo": "קוסובו", + "Kiribati": "קיריבאטי", + "Kenya": "קניה", + "Kazakhstan": "קאזחסטן", + "Jordan": "ירדן", + "Jersey": "ג'רסי", + "Japan": "יפן", + "Libya": "לוב", + "Martinique": "מרטיניק", + "Marshall Islands": "איי מארשל", + "Malta": "מלטה", + "Mali": "מאלי", + "Maldives": "מאלדיביים", + "Malaysia": "מלזיה", + "Malawi": "מלאווי", + "Madagascar": "מדגסקר", + "Macedonia": "מאקדוניה", + "Macau": "מאקאו", + "Luxembourg": "לוקסמבורג", + "Lithuania": "ליטואניה", + "Liechtenstein": "ליכטנשטיין", + "Morocco": "מרוקו", + "Montserrat": "מונטסראט", + "Montenegro": "מונטנגרו", + "Mongolia": "מונגוליה", + "Monaco": "מונקו", + "Moldova": "מולדובה", + "Micronesia": "מיקרונזיה", + "Mexico": "מקסיקו", + "Mayotte": "מיוטה", + "Mauritius": "מאוריטיוס", + "Mauritania": "מאוריטניה", + "Namibia": "נמיביה", + "Myanmar": "מיאנמר", + "Mozambique": "מוזמביק", + "Norway": "נורבגיה", + "Northern Mariana Islands": "צפון איי מריאנה", + "North Korea": "צפון קוריאה", + "Norfolk Island": "איי נורפולק", + "Niue": "ניו", + "Nigeria": "ניגריה", + "Niger": "ניגר", + "Nicaragua": "ניקרגואה", + "New Zealand": "ניו זילנד", + "New Caledonia": "קלדוניה החדשה", + "Netherlands": "הולנד", + "Nepal": "נפאל", + "Nauru": "נארו", + "Pakistan": "פקיסטן", + "Palau": "פאלאו", + "Rwanda": "רואנדה", + "Russia": "רוסיה", + "Romania": "רומניה", + "Qatar": "קאטאר", + "Puerto Rico": "פוארטו ריקו", + "Portugal": "פורטוגל", + "Poland": "פולין", + "Pitcairn Islands": "איי פיטצ'יירן", + "Philippines": "פיליפינים", + "Peru": "פרו", + "Paraguay": "פאראגוואי", + "Papua New Guinea": "פפואה ניו גיניאה", + "Panama": "פנמה", + "Palestine": "ישראל", + "Réunion": "ריוניון", + "Slovenia": "סלובניה", + "Slovakia": "סלובקיה", + "Sint Maarten": "סיינט מרטין", + "Singapore": "סינגפור", + "Sierra Leone": "סיירה לאון", + "Seychelles": "איי סיישל", + "Serbia": "סרביה", + "Senegal": "סנגל", + "Saudi Arabia": "ערב הסעודית", + "San Marino": "סאן מרינו", + "Samoa": "סמואה", + "South Georgia & South Sandwich Islands": "דרום ג'ורג'יה ודרום איי סנדוויץ", + "St. Lucia": "סיינט לוסייה", + "St. Kitts & Nevis": "סיינט קיטס ונביס", + "St. Helena": "סיינט הלנה", + "St. Barthélemy": "סיינט ברתלמי", + "Sri Lanka": "סרילנקה", + "Spain": "ספרד", + "South Sudan": "דרום סודן", + "South Korea": "דרום קוריאה", + "South Africa": "דרום אפריקה", + "Somalia": "סומליה", + "Solomon Islands": "איי שלמה", + "St. Vincent & Grenadines": "סיינט וינסנט וגרנדינס", + "St. Pierre & Miquelon": "סיינט פייר ומיקוולון", + "Thailand": "תאילנד", + "Tanzania": "טנזניה", + "Tajikistan": "טג'יקיסטן", + "Taiwan": "טאיוואן", + "São Tomé & Príncipe": "סאו תומא ופרינציפה", + "Syria": "סוריה", + "Switzerland": "שוויץ", + "Sweden": "שוודיה", + "Swaziland": "סוואזילנד", + "Svalbard & Jan Mayen": "סוואלבאד וג'אן מיין", + "Suriname": "סורינמה", + "Sudan": "סודן", + "Togo": "תוגו", + "Uzbekistan": "אוזבקיסטן", + "Uruguay": "אורוגוואי", + "United Arab Emirates": "איחוד האמירויות", + "Ukraine": "אוקרינה", + "Uganda": "אוגנדה", + "U.S. Virgin Islands": "איי הבתולה ארה\"ב", + "Tuvalu": "תובלאו", + "Turks & Caicos Islands": "טוקרס ואיי קאייקו", + "Turkmenistan": "טורקמניסטן", + "Turkey": "טורקיה", + "Tunisia": "תוניסיה", + "Trinidad & Tobago": "טרינידאד וטובאגו", + "Tonga": "טונגה", + "Tokelau": "טוקלאו", + "Vanuatu": "ונואטו", + "Default": "ברירת מחדל", + "Sign In": "כניסה", + "Create Account": "יצירת חשבון", + "Use your account or create a new one to continue.": "השתמשו בחשבונכם או צרו חשבון חדש.", + "Sign In or Create Account": "התחברו או צרו חשבון", + "Zimbabwe": "זימבבואה", + "Zambia": "זמביה", + "Yemen": "תימן", + "Western Sahara": "מערב סהרה", + "Wallis & Futuna": "וואליס ופוטונה", + "Vietnam": "וייטנאם", + "Venezuela": "ונצואלה", + "Vatican City": "ותיקן", + "Use Single Sign On to continue": "השתמש בכניסה חד שלבית על מנת להמשיך", + "Confirm adding this email address by using Single Sign On to prove your identity.": "אשרו הוספת מייל זה על ידי כניסה למערכת להוכיח את זהותכם.", + "Unknown server error": "שגיאת שרת לא ידועה", + "The user's homeserver does not support the version of the room.": "השרת של המשתמש אינו תומך בחדר זה.", + "The user must be unbanned before they can be invited.": "על המשתמש להיום לא חסום לפני שניתן יהיה להזמינו לחדר.", + "User %(user_id)s may or may not exist": "המשתמש %(user_id)s יתכן ואינו קיים", + "User %(user_id)s does not exist": "המשתמש %(user_id)s לא קיים במערכת", + "User %(userId)s is already in the room": "המשתמש %(userId)s כבר נמצא בחדר זה", + "You do not have permission to invite people to this room.": "אין לכם הרשאות להזמין אנשים לחדר זה.", + "Unrecognised address": "כתובת לא מזוהה", + "Error leaving room": "שגיאת נסיון לצאת מהחדר", + "This room is used for important messages from the Homeserver, so you cannot leave it.": "החדר הזה משמש להודעות חשובות מהשרת ולכן אינכם יכולים לעזוב אותו.", + "Can't leave Server Notices room": "לא יכול לעזוב את חדר ההודעות של השרת", + "Unexpected server error trying to leave the room": "שגיאת שרת לא צפויה בנסיון לעזוב את החדר", + "Authentication check failed: incorrect password?": "האימות שלכם נכשל: סיסמא שגוייה?", + "Not a valid %(brand)s keyfile": "קובץ מפתח של %(brand)s אינו תקין", + "Your browser does not support the required cryptography extensions": "הדפדפן שלכם אינו תומך בהצפנה הדרושה", + "%(name)s (%(userId)s)": "%(userId)s %(name)s", + "%(num)s days from now": "בעוד %(num)s ימים מעכשיו", + "about a day from now": "בערך בעוד יום מעכשיו", + "%(num)s hours from now": "בעוד %(num)s שעות", + "about an hour from now": "בערך בעוד כשעה", + "%(num)s minutes from now": "בעוד %(num)s דקות", + "about a minute from now": "בערך עוד דקה אחת", + "a few seconds from now": "בעוד מספר שניות מעכשיו", + "%(num)s days ago": "לפני %(num)s ימים", + "about a day ago": "בערך לפני יום", + "%(num)s hours ago": "לפני %(num)s שעות", + "about an hour ago": "בערך לפני כשעה", + "%(num)s minutes ago": "לפני %(num)s דקות", + "about a minute ago": "לפני בערך דקה", + "a few seconds ago": "לפני מספר שניות", + "%(items)s and %(lastItem)s": "%(items)s ו%(lastItem)s אחרון", + "%(items)s and %(count)s others|one": "%(items)s ועוד אחד אחר", + "%(items)s and %(count)s others|other": "%(items)s ו%(count)s אחרים", + "Unable to connect to Homeserver. Retrying...": "לא מצליח להתחבר אל השרת הראשי. מנסה שוב...", + "Please contact your service administrator to continue using the service.": "אנא צרו קשר עם אדמין השרת על מנת להמשיך להשתמש בשרות.", + "This homeserver has exceeded one of its resource limits.": "השרת הזה חרג מאחד ממגבלות המשאבים שלו.", + "This homeserver has hit its Monthly Active User limit.": "השרת הזה הגיע לקצה מספר המשתמשים הפעילים לחודש.", + "The message you are trying to send is too large.": "ההודעה שהנכם מנסים לשלוח גדולה מדי.", + "Unexpected error resolving identity server configuration": "שגיאה לא צפויה בהתחברות אל שרת הזיהוי", + "Unexpected error resolving homeserver configuration": "שגיאה לא צפוייה של התחברות לשרת הראשי", + "No homeserver URL provided": "לא סופקה כתובת של שרת הראשי", + "You can log in, but some features will be unavailable until the identity server is back online. If you keep seeing this warning, check your configuration or contact a server admin.": "אתם יכולים להכנס, אך כמה מן התכונות יהיו לא פעילים עד ששרת הזיהוי ישוב לפעילות תקינה. אם אתם עדיין רואים את השגיאה הזו אנא צרו קשר עם אדמין השרת או בדקו את ההגדרות שלכם.", + "You can reset your password, but some features will be unavailable until the identity server is back online. If you keep seeing this warning, check your configuration or contact a server admin.": "אתם יכולים לחדש סיסמא, אך כמה מן התכונות יהיו לא פעילים עד ששרת הזיהוי ישוב לפעילות תקינה. אם אתם עדיין רואים את השגיאה הזו אנא צרו קשר עם אדמין השרת או בדקו את ההגדרות שלכם.", + "You can register, but some features will be unavailable until the identity server is back online. If you keep seeing this warning, check your configuration or contact a server admin.": "אתם יכולים להרשם, אך כמה מן התכונות יהיו לא פעילים עד ששרת הזיהוי ישוב לפעילות תקינה. אם אתם עדיין רואים את השגיאה הזו אנא צרו קשר עם אדמין השרת או בדקו את ההגדרות שלכם.", + "Cannot reach identity server": "אין תקשורת עם שרת הזיהוי", + "Ask your %(brand)s admin to check your config for incorrect or duplicate entries.": "בקשו מהאדמין של %(brand)s לבדוק קונפיגורציה לרשומות כפולות שגויות.", + "Ensure you have a stable internet connection, or get in touch with the server admin": "בדקו שיש לכם תקשורת אינטרנט יציבה, או צרו קשר עם האדמין של השרת", + "Cannot reach homeserver": "אין תקשורת עם השרת הראשי", + "See %(msgtype)s messages posted to your active room": "ראו %(msgtype)s הודעות שפורסמו בחדר הפעיל שלכם", + "See %(msgtype)s messages posted to this room": "ראו %(msgtype)s הודעות שפורסמו בחדר זה", + "Send %(msgtype)s messages as you in your active room": "שלחו %(msgtype)s הודעות בשמכם בחדר הפעיל שלכם", + "Send %(msgtype)s messages as you in this room": "שלחו %(msgtype)s הודעות בשמכם בחדר זה", + "See general files posted to your active room": "צפו בקבצים הכללים שפורסמו בחדר הפעיל שלכם", + "See general files posted to this room": "צפו בקבצים כללים אשר פורסמו בחדר זה", + "Send general files as you in your active room": "שלחו קבצים כללים בשמכם בחדר הפעיל שלכם", + "Send general files as you in this room": "שלחו קבצים כללים בשמכם בחדר זה", + "See videos posted to your active room": "ראו סרטונים שנשלחו לחדר הפעיל שלכם", + "See videos posted to this room": "ראו סרטונים שנשלחו לחדר זה", + "Send videos as you in your active room": "שלחו סרטונים בשמכם בחדר הפעיל שלכם", + "Send videos as you in this room": "שלחו סרטונים בשמכם בחדר זה", + "See images posted to your active room": "ראו תמונות שפורסמו בחדר הפעיל שלכם", + "See images posted to this room": "ראו תמונות שפוסמו בחדר זה", + "Send images as you in your active room": "שלחו תמונות בשמכם בחדר הפעיל שלכם", + "Send images as you in this room": "שלחו תמונות בשמכם בחדר זה", + "See emotes posted to your active room": "ראו סמלים שפורסמו בחדר הפעיל שלכם", + "See emotes posted to this room": "ראו סמלים שפורסמו בחדר זה", + "Send emotes as you in your active room": "שלחו סמלים בשמכם בחדר הפעיל שלכם", + "Send emotes as you in this room": "שלחו סמלים בשמכם בחדר זה", + "See text messages posted to your active room": "ראו הודעות טקסט שפורסמו בחדר הפעיל שלכם", + "See text messages posted to this room": "ראו הודעות טקסט שפורסמו בחדר זה", + "Send text messages as you in your active room": "שלחו הודעות טקסט בשמכם בחדר הפעיל שלכם", + "Send text messages as you in this room": "שלחו הודעות טקסט בשמכם בחדר זה", + "See messages posted to your active room": "ראו הודעות שפורסמו בחדר הפעיל שלכם", + "See messages posted to this room": "ראו הודעות שפורסמו בחדר זה", + "Send messages as you in your active room": "שלחו הודעות בשמכם בחדר הפעיל שלכם", + "Send messages as you in this room": "שלחו הודעות בשמכם בחדר זה", + "The %(capability)s capability": "ה%(capability)s יכולת", + "See %(eventType)s events posted to your active room": "ראו %(eventType)s התרעות שפורסמו בחדר הפעיל שלכם", + "Send %(eventType)s events as you in your active room": "שלח %(eventType)s התרעות בשמכם לחדר הפעיל שלכם", + "See %(eventType)s events posted to this room": "ראו %(eventType)s התרעות שפורסמו בשמכם בחדר זה", + "Send %(eventType)s events as you in this room": "שלח %(eventType)s התרעות בשמכם לחדר זה", + "with state key %(stateKey)s": "עם מפתח מצב %(stateKey)s", + "with an empty state key": "עם מפתח ללא מצב", + "See when anyone posts a sticker to your active room": "ראו מתי כל אחד מפרסם מדבקה בחדר הפעיל שלכם", + "Send stickers to your active room as you": "שלחו מדבקות אל החדר הפעיל שלכם בשמכם", + "See when a sticker is posted in this room": "ראו מתי מדבקה מפורסמת בחדר זה", + "Send stickers to this room as you": "שלחו מדבקות לחדר זה בשמכם", + "See when the avatar changes in your active room": "ראו מתי שונה האווטר בחדר הפעיל שלכם", + "Change the avatar of your active room": "שנו את האווטר של החדר הפעיל שלכם", + "See when the avatar changes in this room": "ראו מתי האוורט משתנה בחדר זה", + "Change the avatar of this room": "שנו את האווטר של החדר הזה", + "See when the name changes in your active room": "ראו מתי השם משתנה בחדר הפעיל שלכם", + "Change the name of your active room": "שנו את השם של החדר הפעיל שלכם", + "See when the name changes in this room": "ראו מתי השם שונה בחדר זה", + "Change the name of this room": "שנו את שם החדר הזה", + "See when the topic changes in your active room": "ראו מתי שונה שם הנושא של הקבוצה הפעילה שלכם", + "Change the topic of your active room": "שנו את שם הנושא של החדר הפעיל שלכם", + "See when the topic changes in this room": "ראו מתי הנושא שונה בחדר זה", + "Change the topic of this room": "שנו את שם הנושא של חדר זה", + "Change which room you're viewing": "שנו את החדר שבו אתם נמצאים", + "Send stickers into your active room": "שלחו מדבקות אל החדר הפעיל שלכם", + "Send stickers into this room": "שלחו מדבקות לחדר זה", + "Remain on your screen while running": "השארו במסך זה כאשר אתם פעילים", + "Remain on your screen when viewing another room, when running": "השארו במסך הראשי כאשר אתם עברים בין חדרים בכל קהילה", + "%(names)s and %(lastPerson)s are typing …": "%(names)s ו%(lastPerson)s כותבים…", + "%(names)s and %(count)s others are typing …|one": "%(names)s ועוד משהו כותבים…", + "%(names)s and %(count)s others are typing …|other": "%(names)s ו%(count)s אחרים כותבים…", + "%(displayName)s is typing …": "%(displayName)s כותב…", + "Done": "סיום", + "Interactively verify by Emoji": "אימות עם משוב בעזרת סמלים", + "Manually Verify by Text": "אימות ידני בעזרת טקסט", + "Not Trusted": "לא אמין", + "Ask this user to verify their session, or manually verify it below.": "בקש ממשתמש זה לאמת את ההתחברות שלו, או לאמת אותה באופן ידני למטה.", + "%(name)s (%(userId)s) signed in to a new session without verifying it:": "%(name)s %(userId)s נכנס דרך התחברות חדשה מבלי לאמת אותה:", + "Verify your other session using one of the options below.": "אמתו את ההתחברות האחרת שלכם דרך אחת מהאפשרויות למטה.", + "You signed in to a new session without verifying it:": "נכנסתם דרך התחברות חדשה מבלי לאמת אותה:", + "Dark": "כהה", + "Light": "בהיר", + "%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s עדכן כלל חסימה אשר תאם ל%(oldGlob)s ל%(newGlob)s עבור %(reason)s", + "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)sשינה כלל אשר חסם שרתים שתאמו ל%(oldGlob)s ל%(newGlob)s עבור %(reason)s", + "%(senderName)s changed a rule that was banning rooms matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s שינה כלל אשר חסם חדרים התואמים ל%(oldGlob)s ל%(newGlob)s עבור %(reason)s", + "%(senderName)s changed a rule that was banning users matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s שינה כלל אשר חסם משתמשים שתאמו ל%(oldGlob)s ל%(newGlob)s עבור %(reason)s", + "%(senderName)s created a ban rule matching %(glob)s for %(reason)s": "%(senderName)s יצר כלל חסימה התואם ל%(glob)s עבור %(reason)s", + "%(senderName)s created a rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s יצר כלל החוסם שרתים התואמים ל%(glob)s עבור %(reason)s", + "%(senderName)s created a rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s יצר כלל החוסם חדרים התואמים ל%(glob)s עבור %(reason)s", + "%(senderName)s created a rule banning users matching %(glob)s for %(reason)s": "%(senderName)s יצר כלל החוסם משתמשים התואמים ל%(glob)s עבור %(reason)s", + "%(senderName)s updated a ban rule matching %(glob)s for %(reason)s": "%(senderName)s עדכן כלל חסימה התואם ל%(glob)s עבור %(reason)s", + "%(senderName)s updated the rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s עדכן את הכללים המאפשרים חסימת שרתים התואמים ל%(glob)s עבור %(reason)s", + "%(senderName)s updated the rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s עדכן את הכלל שפאפשר חסימה של חדרים התואמים ל%(glob)s עבור %(reason)s", + "%(senderName)s updated the rule banning users matching %(glob)s for %(reason)s": "%(senderName)s עדכן את הכלל שמאפשר חסימת משתמשים התואמים ל%(glob)s עבור %(reason)s", + "%(senderName)s updated an invalid ban rule": "%(senderName)s עידכן כלל חסימה שגוי", + "%(senderName)s removed a ban rule matching %(glob)s": "%(senderName)s הסיר כלל חסימה התואם ל%(glob)s", + "%(senderName)s removed the rule banning servers matching %(glob)s": "%(senderName)s הסיר את הכלל החוסם שרתים התואמים ל%(glob)s", + "%(senderName)s removed the rule banning rooms matching %(glob)s": "%(senderName)s הסיר את הכלל שחוסם חדרים התואמים ל%(glob)s", + "%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s הסיר את הכלל שחוסם משתמשים התואמים ל %(glob)s", + "%(widgetName)s widget removed by %(senderName)s": "היישומון %(widgetName)s הוסר על ידי %(senderName)s", + "%(widgetName)s widget added by %(senderName)s": "היישומון %(widgetName)s התווסף על ידי %(senderName)s", + "%(widgetName)s widget modified by %(senderName)s": "היישומון %(widgetName)s שונה על ידי %(senderName)s", + "%(senderName)s changed the pinned messages for the room.": "%(senderName)s שינה את ההודעה הנעוצה של החדר.", + "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s שינה את רמת ההרשאה של %(powerLevelDiffText)s.", + "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s מ%(fromPowerLevel)s ל%(toPowerLevel)s", + "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s הגדיר את הסטוריית החדר פתוחה עבור (%(visibility)s) לא ידועים.", + "%(senderName)s made future room history visible to anyone.": "%(senderName)s הגדיר את הסטוריית החדר פתוחה עבור כולם.", + "%(senderName)s made future room history visible to all room members.": "%(senderName)s הגדיר את הסטוריית החדר כפתוחה לכל משתמשי החדר.", + "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s הגדיר את תצוגת ההסטוריה של החדר כפתוחה עבור כל משתמשי החדר, מהרגע שבו הם הצתרפו.", + "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s הגדיר את תצוגת ההסטוריה של החדר כפתוחה עבור כל משתמשי החדר, מהרגע שבו הם הוזמנו.", + "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s שלח הזמנה ל%(targetDisplayName)s להצטרף אל החדר.", + "%(senderName)s revoked the invitation for %(targetDisplayName)s to join the room.": "%(senderName)s דחה את ההזמנה של %(targetDisplayName)s להצטרף אל החדר.", + "%(senderName)s placed a video call. (not supported by this browser)": "%(senderName)s התחיל שיחת וידאו. (אינו נתמך בדפדפן זה)", + "%(senderName)s placed a video call.": "%(senderName)s התחיל שיחת וידאו.", + "%(senderName)s placed a voice call. (not supported by this browser)": "%(senderName)s התחיל שיחה קולית. (אינו נתמך בדפדפן זה)", + "%(senderName)s placed a voice call.": "%(senderName)s התחיל שיחה קולית.", + "%(senderName)s declined the call.": "%(senderName)s דחה את השיחה.", + "%(senderName)s ended the call.": "%(senderName)s סיים את השיחה.", + "(unknown failure: %(reason)s)": "(תקלה לא ידועה: %(reason)s)", + "(no answer)": "(אין תשובה)", + "(an error occurred)": "(שגיאה קרתה)", + "(their device couldn't start the camera / microphone)": "(המכשיר שלהם לא הצליח להתחיל מצלמה \\ מיקרופון)", + "(connection failed)": "(התקשרות נכשלה)", + "(could not connect media)": "(לא ניתן לחבר מדיה)", + "%(senderName)s answered the call.": "%(senderName)s ענה לשיחה.", + "(not supported by this browser)": "(אינו נתמך בדפדפן זה)", + "Someone": "משהו", + "%(senderName)s changed the addresses for this room.": "%(senderName)s שינה את הכתובות של חדר זה.", + "%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s שינה את הכתובת הראשית והמשנית של חדר זה.", + "%(senderName)s changed the alternative addresses for this room.": "%(senderName)s שניה את הכתובת המשנית של חדר זה.", + "%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s הסיר את הכתובת המשנית %(addresses)s עבור חדר זה.", + "%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s הסיר את הכתובת המשנית %(addresses)s עבור חדר זה.", + "%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s הוסיף כתובת משנית %(addresses)s עבור חדר זה.", + "%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s הוסיף את הכתובת המשנית %(addresses)s עבור חדר זה.", + "%(senderName)s removed the main address for this room.": "%(senderName)s הסיר את הכתובת הראשית עבור חדר זה.", + "%(senderName)s set the main address for this room to %(address)s.": "%(senderName)s הגדיר את הכתובת הראשית עבור חדר זה ל- %(address)s.", + "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s שלח תמונה.", + "🎉 All servers are banned from participating! This room can no longer be used.": "🎉 כל השרתים חסומים מהשתתפות! החדר הזה אינו בשימוש יותר.", + "%(senderDisplayName)s changed the server ACLs for this room.": "%(senderDisplayName)s שינה את הגדרות של השרת עבור חדר זה.", + "%(senderDisplayName)s set the server ACLs for this room.": "%(senderDisplayName)s הגדיר את רשימת הכניסה של השרת עבור חדר זה.", + "%(senderDisplayName)s enabled flair for %(newGroups)s and disabled flair for %(oldGroups)s in this room.": "%(senderDisplayName)s הפעיל את פלייר עבור %(newGroups)s וביטל את פלייר עבור %(oldGroups)s בחדר זה.", + "%(senderDisplayName)s disabled flair for %(groups)s in this room.": "%(senderDisplayName)s ביטל פלייר עבור %(groups)s בחדר זה.", + "%(senderDisplayName)s enabled flair for %(groups)s in this room.": "%(senderDisplayName)s הפעילו פלייר עבור %(groups)s בחדר זה.", + "%(senderDisplayName)s changed guest access to %(rule)s": "%(senderDisplayName)s שינה את כללי הכניסה לאורחים ל- %(rule)s", + "%(senderDisplayName)s has prevented guests from joining the room.": "%(senderDisplayName)s מנע אפשרות מאורחים להכנס אל החדר.", + "%(senderDisplayName)s has allowed guests to join the room.": "%(senderDisplayName)s איפשר לאורחים להכנס אל החדר.", + "%(senderDisplayName)s changed the join rule to %(rule)s": "%(senderDisplayName)s שינה את כללי ההצטרפות ל־%(rule)s", + "%(senderDisplayName)s made the room invite only.": "%(senderDisplayName)s הגדיר את החדר כ- \"הזמנה בלבד!\".", + "%(senderDisplayName)s made the room public to whoever knows the link.": "%(senderDisplayName)s הגדיר את החדר כציבורי עבור כל מי שקיבל את הקישור.", + "%(senderDisplayName)s upgraded this room.": "%(senderDisplayName)s שידרג את החדר הזה.", + "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s שינה את שם החדר ל%(roomName)s.", + "%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s שינה את שם החדר מ-%(oldRoomName)s ל%(newRoomName)s.", + "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s הסיר את שם החדר.", + "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s שינה את שם הנושא ל-\"%(topic)s\".", + "%(senderName)s kicked %(targetName)s.": "%(senderName)s בעט החוצה את %(targetName)s.", + "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s משך את ההזמנה מ %(targetName)s.", + "%(senderName)s unbanned %(targetName)s.": "%(senderName)s הסיר חסימה מ %(targetName)s.", + "%(targetName)s left the room.": "%(targetName)s עזב\\ה את החדר.", + "%(targetName)s rejected the invitation.": "%(targetName)s דחו את ההזמנה.", + "%(targetName)s joined the room.": "%(targetName)s הצטרף אל החדר.", + "%(senderName)s made no change.": "%(senderName)s לא עשה שום שינוי.", + "%(senderName)s set a profile picture.": "%(senderName)s הגדירו תמונת פרופיל.", + "%(senderName)s changed their profile picture.": "%(senderName)s שינו את תמונת הפרופיל שלהם.", + "%(senderName)s removed their profile picture.": "%(senderName)s הסירו את תמונת הפרופיל שלהם.", + "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s הסירו את השם הישן שלהם %(oldDisplayName)s.", + "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s הגדירו את שמם ל %(displayName)s.", + "%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s שינו את שמם ל %(displayName)s.", + "%(senderName)s banned %(targetName)s.": "%(senderName)s חסם את %(targetName)s.", + "%(senderName)s invited %(targetName)s.": "%(senderName)s הזמין את %(targetName)s.", + "%(targetName)s accepted an invitation.": "%(targetName)s קיבל את ההזמנה.", + "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s קיבל את ההזמנה עבור %(displayName)s.", + "Reason": "סיבה", + "Displays action": "הצג פעולה", + "Takes the call in the current room off hold": "מחזיר את השיחה הנוכחית ממצב המתנה", + "Places the call in the current room on hold": "שם את השיחה הנוכחית במצב המתנה", + "Sends a message to the given user": "שליחת הודעת למשתמש מסויים", + "Your keys are not being backed up from this session.": "המפתחות שלך אינם מגובים מהתחברות זו .", + "Algorithm:": "אלגוריתם:", + "Backup version:": "גירסת גיבוי:", + "This backup is trusted because it has been restored on this session": "ניתן לסמוך על גיבוי זה מכיוון שהוא שוחזר בהפעלה זו", + "Backup is not signed by any of your sessions": "גיבוי אינו חתום על ידי אף אחד מההתחברויות שלכם", + "Backup has an invalid signature fromunverified session": "לגיבוי יש חתימה לא תקינה מהתחברותלא מאומתת ", + "Backup has an invalid signature fromverified session": "לגיבוי יש חתימה לא תקינה מהתחברותמאומתת ", + "Backup has a valid signature fromverified session": "לגיבוי יש חתימה תקפה מהתחברות מאומתת ממושב", + "Backup has a valid signature fromunverified session": "לגיבוי יש חתימה תקפה מהתחברותלא מאומתת ממושב", + "Backup has an invalid signature from this session": "לגיבוי יש חתימהלא תקפה מהפעלה זו", + "Backup has avalid signature from this session": "לגיבוי יש חתימהתקפה מהפעלה זו", + "Backup has a signature fromunknown session with ID %(deviceId)s": "לגיבוי יש חתימה מ-לא ידוע עם %(deviceId)s", + "Backup has a signature fromunknown user with ID %(deviceId)s": "לגיבוי יש חתימה ממשתמשלא ידוע עם ID%(deviceId)s", + "Backup has ainvalid signature from this user": "לגיבוי יש חתימהלא תקפה ממשתמש זה", + "Backup has avalid signature from this user": "לגיבוי יש חתימהתקפה ממשתמש זה", + "All keys backed up": "כל המפתחות מגובים", + "Backing up %(sessionsRemaining)s keys...": "מגבה מפתחות %(sessionsRemaining)s...", + "Connect this session to Key Backup": "חבר את התחברות הזו לגיבוי מפתח", + "Connect this session to key backup before signing out to avoid losing any keys that may only be on this session.": "חבר את ההפעלה הזו לגיבוי המפתח לפני היציאה, כדי למנוע אובדן מפתחות שיכולים להיות רק בפגישה זו.", + "This session is not backing up your keys, but you do have an existing backup you can restore from and add to going forward.": "הפעלה זו אינה מגבה את המפתחות שלך , אך יש לך גיבוי קיים ממנו תוכל לשחזר ולהוסיף להמשך.", + "This session is backing up your keys. ": "ההתחברות הזו תגבה את כל המפתחות שלכם. ", + "Restore from Backup": "שחזר מגיבוי", + "Unable to load key backup status": "לא ניתן לטעון את מצב גיבוי המפתח", + "Are you sure? You will lose your encrypted messages if your keys are not backed up properly.": "האם אתה בטוח? תאבד את ההודעות המוצפנות שלך אם המפתחות שלך לא מגובים כראוי.", + "Delete Backup": "מחק גיבוי", + "Save": "שמירה", + "Profile picture": "תמונת פרופיל", + "Display Name": "הצג שם", + "Profile": "פרופיל", + "Upgrade to your own domain": "שדרגו לדומיין משלכם", + "The operation could not be completed": "לא ניתן היה להשלים את הפעולה", + "Failed to save your profile": "שמירת הפרופיל שלכם נכשלה", + "Enable audible notifications for this session": "אפשר התראות נשמעות עבור התחברות זו", + "Enable desktop notifications for this session": "החל התראות עבור התחברות זו", + "You might have configured them in a client other than %(brand)s. You cannot tune them in %(brand)s but they still apply.": "יכול להיות שתגדיר אותם בלקוח שאינו %(brand)s. אינך יכול לכוון אותם ב- %(brand)s אך הם עדיין חלים.", + "There are advanced notifications which are not shown here.": "ישנן התראות מתקדמות שלא מוצגות כאן.", + "Add an email address to configure email notifications": "הוסף כתובת דוא\"ל להגדרת התראות דוא\"ל", + "Clear notifications": "נקה התראות", + "The integration manager is offline or it cannot reach your homeserver.": "מנהל האינטגרציה לא מקוון או שהוא לא יכול להגיע לשרת הבית שלך.", + "Cannot connect to integration manager": "לא ניתן להתחבר אל מנהל האינטגרציה", + "Connecting to integration manager...": "מתחבר למנהל האינטגרציה ...", + "%(brand)s can't securely cache encrypted messages locally while running in a web browser. Use%(brand)s Desktop for encrypted messages to appear in search results.": "%(brand)s אינם יכולים לשמור במטמון מאובטח הודעות מוצפנות באופן מקומי בזמן שהם פועלים בדפדפן אינטרנט. השתמש ב-%(brand)s Desktop כדי שהודעות מוצפנות יופיעו בתוצאות החיפוש.", + "%(brand)s is missing some components required for securely caching encrypted messages locally. If you'd like to experiment with this feature, build a custom %(brand)s Desktop withsearch components added .": "%(brand)s חסרים כמה רכיבים הנדרשים לצורך אחסון במטמון מאובטח של הודעות מוצפנות באופן מקומי. אם תרצה להתנסות בתכונה זו, בנה %(brand)s מותאם אישית לדסקטום עםחפש רכיבים להוספה .", + "Securely cache encrypted messages locally for them to appear in search results.": "שמור באופן מאובטח הודעות מוצפנות באופן מקומי כדי שיופיעו בתוצאות החיפוש.", + "Manage": "ניהול", + "Securely cache encrypted messages locally for them to appear in search results, using %(size)s to store messages from %(rooms)s rooms.|one": "שמור באופן מאובטח הודעות מוצפנות באופן מקומי כדי שיופיעו בתוצאות החיפוש באמצעות %(size)s לשמור הודעות מחדרים %(rooms)s.", + "Securely cache encrypted messages locally for them to appear in search results, using %(size)s to store messages from %(rooms)s rooms.|other": "שמור באופן מאובטח הודעות מוצפנות באופן מקומי כדי שיופיעו בתוצאות החיפוש באמצעות %(size)s לשמור הודעות מחדרים %(rooms)s.", + "Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "אמת בנפרד כל מושב שמשתמש בו כדי לסמן אותו כאמצעי מהימן, ולא אמון על מכשירים חתומים צולבים.", + "Encryption": "הצפנה", + "Failed to set display name": "תצוגת שם נכשלה", + "Last seen": "שם משפחה", + "Public Name": "שם ציבורי", + "ID": "קוד זיהוי", + "Delete %(count)s sessions|one": "מחק התחברות %(count)s", + "Delete %(count)s sessions|other": "מחק התחברויות %(count)s", + "Authentication": "אימות", + "Delete sessions|one": "מחק התחברות", + "Delete sessions|other": "מחק התחברויות", + "Click the button below to confirm deleting these sessions.|one": "לחץ על הלחצן למטה כדי לאשר את מחיקת התחברויות אלו.", + "Click the button below to confirm deleting these sessions.|other": "לחץ על הלחצן למטה כדי לאשר את מחיקת הפעלות אלה.", + "Confirm deleting these sessions": "אשר מחיקת התחברויות אלו", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "אשר את מחיקת ההפעלה באמצעות כניסה יחידה כדי להוכיח את זהותך.", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "אשר את מחיקת המפגשים האלה באמצעות כניסה יחידה כדי להוכיח את זהותך.", + "Unable to load session list": "לא מצליח לטעון את רשימת ההתחברויות", + "Your homeserver does not support session management.": "השרת שלכם לא תומך בניהול התחברויות.", + "exists": "קיים", + "Homeserver feature support:": "תמיכה שרת:", + "User signing private key:": "משתמש חותם על מפתח פרטי:", + "Self signing private key:": "מפתח פרטי ברישום עצמאי:", + "not found locally": "לא נמצא באחסון מקומי", + "cached locally": "אוחסן מקומי", + "Master private key:": "מפתח מאסטר פרטי:", + "not found in storage": "לא נמצא באחסון", + "in secret storage": "באחסון סודי", + "Cross-signing private keys:": "מפתחות פרטיים של חתימה צולבת:", + "not found": "לא נמצא", + "in memory": "בזכרון", + "Cross-signing public keys:": "מפתחות ציבוריים של חתימה צולבת:", + "Reset": "אתחל", + "Set up": "הגדר", + "Cross-signing is not set up.": "חתימה צולבת אינה מוגדרת עדיין.", + "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "לחשבונך זהות חתימה צולבת באחסון סודי, אך הפגישה זו אינה מהימנה עדיין.", + "Your homeserver does not support cross-signing.": "השרת שלכם אינו תומך בחתימות-צולבות.", + "Cross-signing is ready for use.": "חתימה צולבת מוכנה לשימוש.", + "Change Password": "שנה סיסמא", + "Current password": "הסיסמא הנוכחית", + "Passwords don't match": "ססמאות לא תואמות", + "Confirm password": "אשרו סיסמא", + "Do you want to set an email address?": "האם אתם רוצים להגדיר כתובת דוא\"ל?", + "Export E2E room keys": "ייצא מפתחות חדר E2E", + "Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "שינוי הסיסמה יאפס כרגע את כל מפתחות ההצפנה מקצה לקצה בכל ההפעלות, מה שהופך את היסטוריית הצ'אט המוצפנת לבלתי קריאה, אלא אם כן אתה מייצא תחילה את מפתחות החדר שלך ומייבא אותם מחדש לאחר מכן. בעתיד זה ישופר.", + "Passwords can't be empty": "ססמאות לא יכולות להיות ריקות", + "New passwords don't match": "הססמאות החדשות לא תואמות", + "No display name": "אין תצוגת שם", + "Upload new:": "העלאה חדשה:", + "Failed to upload profile picture!": "העלאת תמונת פרופיל נכשלה!", + "Show more": "הצג יותר", + "Show less": "הצג פחות", + "Channel: %(channelName)s": "ערוץ: %(channelName)s", + "Workspace: %(networkName)s": "סביבת עבודה: %(networkName)s", + "This bridge is managed by.": "הגשר הזה מנוהל על ידי משתמש .", + "This bridge was provisioned by .": "הגשר הזה נוצר על ידי משתמש .", + "Upload": "העלאה", + "Accept to continue:": "קבל להמשך:", + "Decline (%(counter)s)": "סרב %(counter)s", + "From %(deviceName)s (%(deviceId)s)": "מ- %(deviceName)s %(deviceId)s", + "Your server isn't responding to some requests.": "השרת שלכם אינו מגיב לבקשות מסויימות בקשות.", + "Pin": "נעץ", + "Folder": "תקיה", + "Headphones": "אוזניות", + "Anchor": "עוגן", + "Ball": "כדור", + "Bell": "פעמון", + "Trumpet": "חצוצרה", + "Guitar": "גיטרה", + "Trophy": "פרס", + "Rocket": "רקטה", + "Aeroplane": "אוירון", + "Bicycle": "אופניים", + "Train": "רכבת", + "Flag": "דגל", + "Telephone": "טלפון", + "Hammer": "פטיש", + "Key": "מפתח", + "Lock": "מנעול", + "Scissors": "מספריים", + "Paperclip": "מהדק נייר", + "Pencil": "עפרון", + "Book": "ספר", + "Light bulb": "נורה", + "Gift": "מתנה", + "Clock": "שעון", + "Hourglass": "שעון חול", + "Umbrella": "מטריה", + "Thumbs up": "חיובי", + "Santa": "סנטה", + "Spanner": "סביבון", + "Glasses": "משקפיים", + "Hat": "כובע", + "Robot": "רובוט", + "Smiley": "חיוך", + "Heart": "לב", + "Cake": "עוגה", + "Pizza": "פיצה", + "Corn": "תירס", + "Strawberry": "תות", + "Apple": "תפוח", + "Banana": "בננה", + "Fire": "אש", + "Cloud": "ענן", + "Moon": "לבנה", + "Globe": "גלובוס-דמיוני", + "Mushroom": "פטריה", + "Cactus": "קקטוס", + "Tree": "עץ", + "Flower": "פרח", + "Butterfly": "פרפר", + "Octopus": "תמנון", + "Fish": "דג", + "Turtle": "צב", + "Penguin": "פנגוין", + "Rooster": "תרנגול", + "Panda": "פנדה", + "Rabbit": "שפן", + "Elephant": "פיל", + "Pig": "חזיר", + "Unicorn": "חד קרן", + "Horse": "סוס", + "Lion": "אריה", + "Cat": "חתול", + "Dog": "כלב", + "To be secure, do this in person or use a trusted way to communicate.": "בכדי להיות מאובטח, עשו זאת ביחד או השתמשו בדרך בטוחה לתקשר.", + "They don't match": "הם לא זהים", + "They match": "הם זהים", + "Cancelling…": "מבטל…", + "Waiting for %(displayName)s to verify…": "ממתין ל- %(displayName)s בכדי לאמת…", + "Waiting for your other session to verify…": "ממתין להתחברות השניה שלכם בכדי לאמת…", + "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "ממתין להתחברות השניה שלכם, %(deviceName)s %(deviceId)s, בכדי לאמת…", + "Unable to find a supported verification method.": "לא מצליח למצוא שיטות אימות נתמכות.", + "Verify this user by confirming the following number appears on their screen.": "אמת את המשתמש הזה בכך שאותו מספר מופיע אצלו במסך.", + "Verify this session by confirming the following number appears on its screen.": "אמת את ההתחברות בכך שאותו מספר מופיע לשניכם על המסך.", + "Verify this user by confirming the following emoji appear on their screen.": "אמת את המשתמש הזה בכך שסדרת הסמלים מוצגת זהה אצלו במסך.", + "Confirm the emoji below are displayed on both sessions, in the same order:": "אשר שסדרת הסמלים המוצגת בשתי ההתחברויות הינה זהה ובאותו הסדר:", + "Start": "התחל", + "Compare a unique set of emoji if you don't have a camera on either device": "השווה קבוצה של סמלים אם אין ברשותכם מצלמה על שום מכשיר", + "Compare unique emoji": "השווה סמלים מסויימים", + "or": "או", + "Scan this unique code": "סרוק את הקוד הזה", + "Verify this session by completing one of the following:": "אמת את ההתחברות הזו על ידי סיום אחת מהאפשרויות הבאות:", + "Got It": "קבלתי", + "Secure messages with this user are end-to-end encrypted and not able to be read by third parties.": "הודעות מאובטחות עם משתמש זה כעת מוצפנות מקצה לקצה ואינן יכולות להקרא על ידי אחרים.", + "You've successfully verified this user.": "המשתמש הזה אומת בהצלחה.", + "Verified!": "אומת!", + "The other party cancelled the verification.": "הצד השני ביטל את האימות.", + "Accept": "קבל", + "Decline": "סרב", + "Incoming call": "שיחה נכנסת", + "Incoming video call": "שיחת וידאו נכנסת", + "Incoming voice call": "שיחה קולית נכנסת", + "Unknown caller": "מתקשר לא ידוע", + "%(name)s on hold": "%(name)s במצב המתנה", + "You held the call Switch": "שמם את השיחה על המתנה להחליף", + "sends snowfall": "שלח שלג נופל", + "Sends the given message with snowfall": "שלח הודעה זו עם שלג נופל", + "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s%(day)s%(fullYear)s%(time)s", + "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s, %(monthName)s - %(day)s - %(fullYear)s", + "%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(monthName)s - %(day)s - %(time)s", + "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s", + "Return to call": "חזור לשיחה", + "Fill Screen": "מסך מלא", + "Voice Call": "שיחת אודיו", + "Video Call": "שיחת וידאו", + "%(peerName)s held the call": "%(peerName)s שם את השיחה במצב המתנה", + "You held the call Resume": "שמתם את השיחה במצב המתנה לשוב", + "sends fireworks": "שלח זיקוקים", + "Sends the given message with fireworks": "שולח הודעה זו עם זיקוקים", + "sends confetti": "שלח קונפטי", + "Sends the given message with confetti": "שולח הודעה זו ביחד עם קונפטי", + "This is your list of users/servers you have blocked - don't leave the room!": "זוהי רשימת השרתים\\משתמשים אשר בחרתם לחסום - אל תצאו מחדר זה!", + "My Ban List": "רשימת החסומים שלי", + "When rooms are upgraded": "כאשר חדרים משתדרגים", + "Encrypted messages in group chats": "הודעות מוצפנות בצאטים של קבוצות", + "Encrypted messages in one-to-one chats": "הודעות מוצפנות בחדרים של אחד-ל-לאחד", + "Messages containing @room": "הודעות שמכילות שם חדר כגון: room@", + "Messages containing my username": "הודעות שמכילות את שם המשתמש שלי", + "Downloading logs": "מוריד לוגים", + "Uploading logs": "מעלה לוגים", + "Show chat effects": "הצג אפקטים של צאט", + "Enable experimental, compact IRC style layout": "אפשר באופן נסיוני תצוגה ממוזערת בסגנון של IRC", + "IRC display name width": "רוחב תצוגת השם של IRC", + "Manually verify all remote sessions": "אמת באופן ידני את כל ההתחברויות", + "How fast should messages be downloaded.": "באיזו מהירות הודעות יורדות.", + "Enable message search in encrypted rooms": "אפשר חיפוש הודעות בחדרים מוצפנים", + "Show previews/thumbnails for images": "הראה תצוגה מקדימה\\ממוזערת של תמונות", + "Allow fallback call assist server turn.matrix.org when your homeserver does not offer one (your IP address would be shared during a call)": "אפשר שימוש בשרת של מטריקס כאשר השרת שלכם לא פעיל (כתובת ה-IP שלכם תשותף במהלך השיחה)", + "Low bandwidth mode": "תצורת התחברות איטית", + "Show hidden events in timeline": "הצג ארועים מוסתרים בקו הזמן", + "Show shortcuts to recently viewed rooms above the room list": "הצג קיצורים אל חדרים שנצפו לאחרונה מעל לרשימת החדרים", + "Show rooms with unread notifications first": "הצג קודם חדרים עם התרעות שלא נקראו", + "Order rooms by name": "סדר חדרים לפי שם", + "Show developer tools": "הצג כלי מפתחים", + "Prompt before sending invites to potentially invalid matrix IDs": "שאלו אותי לפני שאתם שולחים הזמנה אל קוד זיהוי אפשרי של משתמש מערכת", + "Enable widget screenshots on supported widgets": "אפשר צילומי מסך של ישומונים עבור ישומונים נתמכים", + "Room Colour": "צבע החדר", + "Enable URL previews by default for participants in this room": "אפשר לחברים בחדר זה לצפות בתצוגת קישורים", + "Enable URL previews for this room (only affects you)": "אפשר תצוגת קישורים בחדר זה בלבד (רק משפיע עליכם)", + "Enable inline URL previews by default": "אפשר צפייה של תצוגת קישורים בצאט כברירת מחדל", + "Never send encrypted messages to unverified sessions in this room from this session": "לעולם אל תשלח הודעות מוצפנות אל התחברות שאינה מאומתת בחדר זה, מהתחברות זו", + "Never send encrypted messages to unverified sessions from this session": "לעולם אל תשלח הודעות מוצפנות אל התחברות שאינה מאומתת מהתחברות זו", + "Send analytics data": "שלח מידע אנליטי", + "Allow Peer-to-Peer for 1:1 calls": "אפשר התקשרות ישירה 1:1", + "System font name": "שם גופן מערכת", + "Use a system font": "השתמש בגופן מערכת", + "Match system theme": "התאם לתבנית המערכת", + "Enable Community Filter Panel": "החל פנל לסינון קהילות", + "Mirror local video feed": "שקף זרימת וידאו מקומית", + "Automatically replace plain text Emoji": "החלף טקסט עם סמל באופן אוטומטי", + "Use Ctrl + Enter to send a message": "השתמש ב Ctrl + Enter על מנת לשלוח הודעה", + "Use Command + Enter to send a message": "השתמש במקלדת Command + Enter על מנת לשלוח הודעה", + "Show typing notifications": "הצג התרעות כתיבה", + "Send typing notifications": "שלח התרעות כתיבה", + "Enable big emoji in chat": "החל סמלים גדולים בצאט", + "Show avatars in user and room mentions": "הצג אווטארים באזכורים של משתמשים וחדרים", + "Enable automatic language detection for syntax highlighting": "החל זיהוי שפה אוטומטי עבור הדגשת מבנה הכתיבה", + "Autoplay GIFs and videos": "נגן אנימציות וסרטונים", + "Always show message timestamps": "תמיד הצג חותמות זמן של הודעות", + "Show timestamps in 12 hour format (e.g. 2:30pm)": "הצג חותמות זמן של 12 שעות (כלומר 2:30pm)", + "Show read receipts sent by other users": "הצג הודעות שנקראו בידי משתמשים אחרים", + "Show display name changes": "הצג שינויים של שמות", + "Show avatar changes": "הצג שינויים באווטר", + "Show join/leave messages (invites/kicks/bans unaffected)": "הצג הודעות הצטרף/עזב (הזמנות/בעיטות/חסימות לא מושפעות)", + "Show a placeholder for removed messages": "הצד מקום לתצוגת הודעות שהוסרו", + "Use a more compact ‘Modern’ layout": "השתמש בתצוגה מודרנית ומצומצמת יותר", + "Enable Emoji suggestions while typing": "החל הצעות לסמלים בזמן כתיבה", + "Use custom size": "השתמש בגודל מותאם אישית", + "Font size": "גודל אותיות", + "Show info about bridges in room settings": "הצג מידע אודות גשרים בהגדרות של החדרים", + "Enable advanced debugging for the room list": "החל דיבאגין מתקדם עבור רשימת החדרים", + "Offline encrypted messaging using dehydrated devices": "שליחת הודעות מוצפנות במצב אופליין עם שימוש במכשיר מיובש", + "Show message previews for reactions in all rooms": "הראה תצוגה מקדימה של הודעות עבור תגובות בכל החדרים", + "Show message previews for reactions in DMs": "הראה תצוגת הודעות מוקדמת עבור תגובות במצב דינאמי", + "Support adding custom themes": "מיכה להוספת תבניות מותאמות אישית", + "Try out new ways to ignore people (experimental)": "נסו דרכים חדשות להתעלם מאנשים (נסיוני)", + "Multiple integration managers": "מנהלי אנטגרציות מרובות", + "Render simple counters in room header": "הצג ספירה בראש החדר", + "Group & filter rooms by custom tags (refresh to apply changes)": "סינון קבוצות וחדרים על פי תגיות מנוסחות (ריפרש להחיל שינויים)", + "Custom user status messages": "נוסח הודעות מצב של משתמשים", + "Message Pinning": "נעיצת הודעות", + "New spinner design": "עיצוב מסובב חדש", + "Communities v2 prototypes. Requires compatible homeserver. Highly experimental - use with caution.": "גירסת קהילות 2. דורש שרת תואם. מאוד נסיוני - השתמשו בזהירות.", + "Render LaTeX maths in messages": "בצע מתמטיקה של LaTeX בהודעות", + "Change notification settings": "שינוי הגדרת התרעות", + "%(senderName)s: %(stickerName)s": "%(senderName)s: %(stickerName)s", + "%(senderName)s: %(message)s": "%(senderName)s :%(message)s", + "%(senderName)s: %(reaction)s": "%(senderName)s: %(reaction)s", + "* %(senderName)s %(emote)s": "* %(senderName)s %(emote)s", + "%(senderName)s is calling": "%(senderName)s מתקשר", + "Waiting for answer": "ממתין לתשובה", + "%(senderName)s started a call": "%(senderName)s התחיל שיחה", + "You started a call": "התחלתם שיחה", + "Call ended": "השיחה הסתיימה", + "%(senderName)s ended the call": "%(senderName)s סיים את השיחה", + "You ended the call": "סיימתם את השיחה", + "Call in progress": "שיחה פעילה", + "%(senderName)s joined the call": "%(senderName)s התחבר אל השיחה", + "You joined the call": "התחברתם אל השיחה בהצלחה", + "Failed to join room": "התחברות לחדר נכשלה", + "The person who invited you already left the room, or their server is offline.": "האדם שהזמין אתכם כבר עזב את החדר או שהשרת לא פעיל.", + "The person who invited you already left the room.": "האדם שהזמין אתכם כבר עזב את החדר.", + "Please contact your homeserver administrator.": "אנא צרו קשר עם מנהל השרת שלכם.", + "Sorry, your homeserver is too old to participate in this room.": "סליחה, השרת שלכם ישן מדי בשביל להתחבר אל חדר זה.", + "There was an error joining the room": "הייתה שגיאה בהתחברות אל החדר", + "Guest": "אורח", + "New version of %(brand)s is available": "גרסה חדשה של %(brand)s קיימת", + "Update %(brand)s": "עדכן %(brand)s", + "Verify the new login accessing your account: %(name)s": "אמתו את הכניסה החדשה לחשבונכם: %(name)s", + "New login. Was this you?": "כניסה חדשה. האם זה אתם?", + "Other users may not trust it": "יתכן משתמשים אחרים לא יבטחו בזה", + "Safeguard against losing access to encrypted messages & data": "שמור מפני איבוד גישה אל הודעות ומידע מוצפן", + "Verify": "אימות", + "Upgrade": "שדרג", + "Verify this session": "אשרו את ההתחברות הזאת", + "Encryption upgrade available": "שדרוג הצפנה קיים", + "Set up Secure Backup": "צור גיבוי מאובטח", + "Ok": "בסדר", + "Contact your server admin.": "צרו קשר עם מנהל השרת.", + "Your homeserver has exceeded one of its resource limits.": "השרת שלכם חרג מאחד או יותר משאבים אשר הוקצו לו.", + "Your homeserver has exceeded its user limit.": "השרת שלכם חרג ממגבלות מספר המשתמשים שלו.", + "Enable": "החל", + "Enable desktop notifications": "אשרו התרעות שולחן עבודה", + "Don't miss a reply": "אל תפספסו תגובה", + "Later": "מאוחר יותר", + "Review where you’re logged in": "סקור מהיכן כבר התחברת", + "Review": "סקירה", + "Verify all your sessions to ensure your account & messages are safe": "אשרו את כל ההתחברויות שלך על מנת לוודא שהחשבון וההודעות שלכם מאובטחים", + "No": "לא", + "Yes": "כן", + "Send anonymous usage data which helps us improve %(brand)s. This will use acookie .": "שלחמידע שימוש אנונימי אשר עוזר לנו לשפר את %(brand)s. זה ישתמש בעוגייה .", + "Help us improve %(brand)s": "עזרו לנו לשפר את %(brand)s", + "Unknown App": "אפליקציה לא ידועה", + "Short keyboard patterns are easy to guess": "דפוסים קצרים קל לנחש", + "Straight rows of keys are easy to guess": "שורות מסודרות של מקשים מאוד קל לנחש", + "Common names and surnames are easy to guess": "שמות משפחה ושמות רגילים מאוד קל לנחש", + "Names and surnames by themselves are easy to guess": "שמות ושמות משפחה בעצמם קלים מאוד לניחוש", + "A word by itself is easy to guess": "מילה כשלעצמה מאוד קל לנחש", + "This is similar to a commonly used password": "זוהי סיסמא זהה לסיסמא מאוד מוכרת", + "This is a very common password": "זוהי סיסמא מאוד מוכרת", + "This is a top-100 common password": "זוהי אחת ממאה הסיסמאות המוכרות ביותר", + "This is a top-10 common password": "זוהי אחת מעשר הסיסמאות המוכרות ביותר", + "Dates are often easy to guess": "תאריכים לעתים קל לנחש", + "Recent years are easy to guess": "קל לנחש שנים קודמות", + "Sequences like abc or 6543 are easy to guess": "סדרות כמו 'abc' ו '6543' קלות לניחוש", + "Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"": "דפוסים כמו 'abcabcabc' קשות רק מעט יותר מ- 'abc'", + "Repeats like \"aaa\" are easy to guess": "דפוסים כמו 'aaa' קל לנחש", + "Add another word or two. Uncommon words are better.": "הוסיפו עוד מילה או שניים. מילים לא מוכרות טובות יותר.", + "Predictable substitutions like '@' instead of 'a' don't help very much": "שינויים צפויים כמו שינוי a ל '@' גם לא עוזר הרבה", + "Reversed words aren't much harder to guess": "מילים הפוכות לא ממש קשה לנחש", + "All-uppercase is almost as easy to guess as all-lowercase": "ניתן לנחש את כל האותיות הקטנות כגדולות בקלות", + "Capitalization doesn't help very much": "אותיות גדולות לא ממש עוזרות", + "Avoid dates and years that are associated with you": "המנעו מתאריכים ושנים אשר משוייכים אליכם", + "Avoid years that are associated with you": "המנעו משנים אשר משוייכים אליכם", + "Avoid recent years": "המנעו משימוש בשנים קודמות", + "Avoid sequences": "המנעו מסדרות", + "Avoid repeated words and characters": "המנעו ממילים ואותיות נשנות", + "Use a longer keyboard pattern with more turns": "השתמשו בדפוס ארוך שמכיל אותיות מכל שורה במקלדת", + "No need for symbols, digits, or uppercase letters": "אין צורך בסמלים, מספרים או אותיות גדולות", + "Use a few words, avoid common phrases": "השתמשו במילים ספורות, המנעו מביטויים מוכרים", + "Verification Requests": "בקשות אימות", + "View Servers in Room": "צפה בשרתים בחדר", + "Please forget all messages I have sent when my account is deactivated (Warning: this will cause future users to see an incomplete view of conversations)": "אנא שכח את כל ההודעות ששלחתי כאשר חשבוני מושבת ( אזהרה: זה יגרום למשתמשים עתידיים לראות תצוגה חלקית של שיחות)", + "Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.": "נראות ההודעות במטריקס דומה לדוא\"ל. המשמעות של שכחת ההודעות שלך היא שהודעות ששלחת לא ישותפו עם משתמשים חדשים או לא רשומים, אך למשתמשים רשומים שכבר יש להם גישה להודעות אלה עדיין תהיה גישה להעתק שלהם.", + "Deactivating your account does not by default cause us to forget messages you have sent. If you would like us to forget your messages, please tick the box below.": "השבתת חשבונך אינה ברירת המחדל גורמת לנו לשכוח הודעות ששלחת. אם תרצה שנשכח את הודעותיך, סמן את התיבה למטה.", + "This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. This action is irreversible.": "זה יהפוך את חשבונך ללא שימוש לצמיתות. לא תוכל להתחבר, ואף אחד לא יוכל לרשום מחדש את אותו מזהה משתמש. זה יביא לחשבונך לעזוב את כל החדרים בהם הוא משתתף, וזה יסיר את פרטי חשבונך משרת הזהות שלך. פעולה זו היא בלתי הפיכה. ", + "Server did not return valid authentication information.": "השרת לא החזיר מידע אימות תקף.", + "Server did not require any authentication": "השרת לא נדרש לאימות כלשהו", + "There was a problem communicating with the server. Please try again.": "הייתה בעיה בתקשורת עם השרת. בבקשה נסה שוב.", + "To continue, please enter your password:": "להמשך, הזן את הסיסמה שלך:", + "Confirm account deactivation": "אשר את השבתת החשבון", + "Are you sure you want to deactivate your account? This is irreversible.": "האם אתה בטוח שברצונך להשבית את חשבונך? זה בלתי הפיך.", + "Confirm your account deactivation by using Single Sign On to prove your identity.": "אשר את השבתת חשבונך באמצעות כניסה יחידה כדי להוכיח את זהותך.", + "Continue With Encryption Disabled": "המשך כאשר ההצפנה מושבתת", + "Incompatible Database": "מסד נתונים לא תואם", + "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.": "השתמשת בעבר בגרסה חדשה יותר של %(brand)s עם הפעלה זו. כדי להשתמש בגרסה זו שוב עם הצפנה מקצה לקצה, יהיה עליך לצאת ולחזור שוב.", + "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": "כדי להימנע מאיבוד היסטוריית הצ'אט שלך, עליך לייצא את מפתחות החדר שלך לפני שאתה מתנתק. יהיה עליך לחזור לגרסה החדשה יותר של %(brand)s כדי לעשות זאת", + "Sign out": "יציאה", + "Create Room": "צור חדר", + "Block anyone not part of %(serverName)s from ever joining this room.": "חסום ממישהו שאינו חלק מ- %(serverName)s מלהצטרף אי פעם לחדר זה.", + "Make this room public": "הפוך חדר זה לציבורי", + "Topic (optional)": "נושא (לא חובה)", + "Name": "שם", + "Create a room in %(communityName)s": "צור חדר בקהילה %(communityName)s", + "Create a private room": "צור חדר פרטי", + "Create a public room": "צור חדר ציבורי", + "You might disable this if the room will be used for collaborating with external teams who have their own homeserver. This cannot be changed later.": "ייתכן שתשבית זאת אם החדר ישמש לשיתוף פעולה עם צוותים חיצוניים שיש להם שרת בית משלהם. לא ניתן לשנות זאת מאוחר יותר.", + "You might enable this if the room will only be used for collaborating with internal teams on your homeserver. This cannot be changed later.": "ייתכן שתאפשר זאת אם החדר ישמש רק לשיתוף פעולה עם צוותים פנימיים בשרת הבית שלך. לא ניתן לשנות זאת מאוחר יותר.", + "Enable end-to-end encryption": "אפשר הצפנה מקצה לקצה", + "Your server requires encryption to be enabled in private rooms.": "השרת שלכם דורש הפעלת הצפנה בחדרים פרטיים.", + "You can’t disable this later. Bridges & most bots won’t work yet.": "אינך יכול להשבית זאת מאוחר יותר. גשרים ורוב הרובוטים עדיין לא יעבדו.", + "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone in this community.": "ניתן למצוא חדרים פרטיים ולהצטרף אליהם בהזמנה בלבד. חדרים ציבוריים יכולים למצוא ולהצטרף לכל אחד בקהילה זו.", + "Private rooms can be found and joined by invitation only. Public rooms can be found and joined by anyone.": "ניתן למצוא חדרים פרטיים ולהצטרף אליהם בהזמנה בלבד. חדרים ציבוריים יכולים למצוא ולהצטרף לכל אחד.", + "Please enter a name for the room": "אנא הזינו שם לחדר", + "example": "דוגמא", + "Community ID": "זהות קהילה", + "Example": "דוגמא", + "Community Name": "שם קהילה", + "Create Community": "צור קהילה", + "Something went wrong whilst creating your community": "משהו השתבש בעת יצירת הקהילה שלך", + "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "מזהי קהילה עשויים להכיל רק תווים a-z, 0-9 או '= _-. /'", + "Community IDs cannot be empty.": "מזהי קהילה לא יכולים להיות ריקים.", + "An image will help people identify your community.": "תמונה תעזור לאנשים לזהות את הקהילה שלך.", + "Add image (optional)": "הוספת תמונה (לא חובה)", + "Create": "צור", + "Enter name": "הזן שם", + "What's the name of your community or team?": "איך קוראים לקהילה או לצוות שלך?", + "You can change this later if needed.": "תוכל לשנות זאת מאוחר יותר במידת הצורך.", + "Use this when referencing your community to others. The community ID cannot be changed.": "השתמש בזה בעת התייחסות לקהילה שלך לאחרים. לא ניתן לשנות את מזהה הקהילה.", + "Community ID: +:%(domain)s": "קוד קהילה: + :%(domain)s", + "There was an error creating your community. The name may be taken or the server is unable to process your request.": "אירעה שגיאה ביצירת הקהילה שלך. השם עשוי להילקח או שהשרת אינו יכול לעבד את בקשתך.", + "Clear all data": "נקה את כל הנתונים", + "Clearing all data from this session is permanent. Encrypted messages will be lost unless their keys have been backed up.": "ניקוי כל הנתונים מהפגישה זו הוא קבוע. הודעות מוצפנות יאבדו אלא אם כן גובו על המפתחות שלהן.", + "Clear all data in this session?": "למחוק את כל הנתונים בפגישה זו?", + "Reason (optional)": "סיבה (לא חובה)", + "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "האם אתה בטוח שברצונך להסיר (למחוק) אירוע זה? שים לב שאם תמחק שם של חדר או שינוי נושא, זה עלול לבטל את השינוי.", + "Confirm Removal": "אשר הסרה", + "Removing…": "מסיר…", + "Invite people to join %(communityName)s": "הזמנת אנשים להצטרף אל %(communityName)s", + "Send %(count)s invites|one": "שלח %(count)s הזמנות", + "Send %(count)s invites|other": "שלח %(count)s הזמנות", + "Skip": "דלג", + "Show": "הצג", + "Hide": "הסתר", + "People you know on %(brand)s": "אנשים שאתם מכירים ב-%(brand)s", + "Add another email": "הוסף עוד כתובת דוא\"ל", + "Email address": "כתובת דוא\"ל", + "Unable to load commit detail: %(msg)s": "לא ניתן לטעון את פרטי ההתחייבות: %(msg)s", + "If there is additional context that would help in analysing the issue, such as what you were doing at the time, room IDs, user IDs, etc., please include those things here.": "אם ישנו הקשר נוסף שיעזור לניתוח הבעיה, כגון מה שעשיתם באותו זמן, תעודות זהות, מזהי משתמש וכו ', אנא כללו את הדברים כאן.", + "Notes": "הערות", + "GitHub issue": "סוגיית GitHub", + "Download logs": "הורד יומנים", + "Before submitting logs, you must create a GitHub issue to describe your problem.": "לפני שמגישים יומנים, עליכם ליצור בעיה של GitHub כדי לתאר את הבעיה שלכם.", + "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "תזכורת: הדפדפן שלך אינו נתמך, כך שהחוויה שלך עשויה להיות בלתי צפויה.", + "Preparing to download logs": "מתכונן להורדת יומנים", + "Please tell us what went wrong or, better, create a GitHub issue that describes the problem.": "אנא ספר לנו מה השתבש או, יותר טוב, צור בעיה של GitHub המתארת את הבעיה.", + "Close dialog": "סגור דיאלוג", + "Invite anyway": "הזמן בכל מקרה", + "Invite anyway and never warn me again": "הזמן בכל מקרה ולעולם לא הזהיר אותי שוב", + "Unable to find profiles for the Matrix IDs listed below - would you like to invite them anyway?": "לא הצלחת למצוא פרופילים עבור מזהי המטריצה המפורטים להלן - האם תרצה להזמין אותם בכל זאת?", + "The following users may not exist": "המשתמשים הבאים עשויים שלא להתקיים", + "Use an identity server to invite by email. Manage in Settings .": "השתמש בשרת זהות כדי להזמין בדוא\"ל. לנהל בהגדרות .", + "Use an identity server to invite by email.Use the default (%(defaultIdentityServerName)s) or manage inSettings .": "השתמש בשרת זהות כדי להזמין בדוא\"ל.השתמש בברירת המחדל (%(defaultIdentityServerName)s) או נהל בהגדרות .", + "Try using one of the following valid address types: %(validTypesList)s.": "נסה להשתמש באחד מסוגי הכתובות החוקיים הבאים: %(validTypesList)s.", + "You have entered an invalid address.": "הזנת כתובת לא חוקית.", + "That doesn't look like a valid email address": "זה לא נראה כמו כתובת דוא\"ל תקפה", + "email address": "כתובת דוא\"ל", + "Matrix Room ID": "זהות חדר מטריקס", + "Matrix ID": "זהות מטריקס", + "Matrix rooms": "חדרים במטריקס", + "%(networkName)s rooms": "חדרים ב-%(networkName)s", + "Add a new server...": "הוסף שרת חדש...", + "Server name": "שם השרת", + "Enter the name of a new server you want to explore.": "הזן את שם השרת החדש שתרצה לחקור.", + "Add a new server": "הוסף שרת חדש", + "Matrix": "מטריקס", + "Remove server": "הסר שרת", + "Are you sure you want to remove %(serverName)s": "האם אתה בטוח שברצונך להסיר %(serverName)s", + "Your server": "השרת שלכם", + "All rooms": "כל החדרים", + "Can't find this server or its room list": "לא ניתן למצוא שרת זה או את רשימת החדרים שלו", + "Looks good": "נראה טוב", + "Enter a server name": "הכנס שם שרת", + "Home": "הבית", + "And %(count)s more...|other": "ו%(count)s עוד...", + "Sign in with single sign-on": "היכנס באמצעות כניסה יחידה", + "Continue with %(provider)s": "המשך עם %(provider)s", + "Homeserver": "שרת הבית", + "Join millions for free on the largest public server": "הצטרפו למיליונים בחינם בשרת הציבורי הגדול ביותר", + "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Element with an existing Matrix account on a different homeserver.": "באפשרותך להשתמש באפשרויות השרת המותאמות אישית כדי להיכנס לשרתי מטריקס אחרים על ידי ציון כתובת URL אחרת של שרת בית. זה מאפשר לך להשתמש ב- Element עם חשבון מטריקס קיים בשרת בית אחר.", + "Server Options": "אפשרויות שרת", + "Room directory": "מדריך חדרים", + "This address is already in use": "כתובת זו נמצאת בשימוש", + "This address is available to use": "כתובת זו זמינה לשימוש", + "Please provide a room address": "אנא ספקו כתובת לחדר", + "Some characters not allowed": "חלק מהתווים אינם מורשים", + "e.g. my-room": "כגון החדר-שלי", + "Room address": "כתובת חדר", + "In reply to": " בתשובה ל- ", + "Unable to load event that was replied to, it either does not exist or you do not have permission to view it.": "לא ניתן לטעון אירוע שהשיב לו, או שהוא לא קיים או שאין לך הרשאה להציג אותו.", + "QR Code": "קוד QR", + "Custom level": "דרגה מותאמת", + "Power level": "דרגת מנהל", + "%(oneUser)smade no changes %(count)s times|one": "%(oneUser)s לא ערכו שינוי", + "%(oneUser)smade no changes %(count)s times|other": "%(oneUser)s לא ערך שום שינוי %(count)s פעמים", + "%(severalUsers)smade no changes %(count)s times|one": "%(severalUsers)s לא ערכו שום שינוי", + "%(severalUsers)smade no changes %(count)s times|other": "%(severalUsers)s לא ערכו שום שינוי %(count)s פעמים", + "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s שינו את האוואטר שלהם", + "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)s שינו את האוואטר שלהם %(count)s פעמים", + "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)s שינו את האוואטר שלהם", + "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)s שימו את האווטאר שלהם %(count)s פעמים", + "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)s שינו את שמם", + "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)s שינו את שמם %(count)s פעמים", + "%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)s שינו את שמם", + "%(severalUsers)schanged their name %(count)s times|other": "%(severalUsers)s שינו את שמם %(count)s פעמים", + "was kicked %(count)s times|one": "נבעטו", + "was kicked %(count)s times|other": "נבעטו %(count)s פעמים", + "were kicked %(count)s times|one": "נבעט", + "were kicked %(count)s times|other": "נבעט %(count)s פעמים", + "was unbanned %(count)s times|one": "חסימה בוטלה", + "was unbanned %(count)s times|other": "חסימה בוטלה %(count)s פעמים", + "were unbanned %(count)s times|one": "חסימה בוטלה", + "were unbanned %(count)s times|other": "חסימה בוטלה %(count)s פעמים", + "was banned %(count)s times|one": "נחסם", + "was banned %(count)s times|other": "נחסם %(count)s פעמים", + "were banned %(count)s times|one": "נחסמו", + "were banned %(count)s times|other": "נחסם %(count)s פעמים", + "was invited %(count)s times|one": "הוזמן", + "was invited %(count)s times|other": "הוזמן %(count)s פעמים", + "were invited %(count)s times|one": "הוזמנו", + "were invited %(count)s times|other": "הוזמנו %(count)s פעמים", + "%(oneUser)shad their invitation withdrawn %(count)s times|one": "%(oneUser)s משכו את ההזמנה שלהם", + "%(oneUser)shad their invitation withdrawn %(count)s times|other": "%(oneUser)s משך את ההזמנה שלו %(count)s פעמים", + "%(severalUsers)shad their invitations withdrawn %(count)s times|one": "%(severalUsers)s משכו את ההזמנות שלהם", + "%(severalUsers)shad their invitations withdrawn %(count)s times|other": "%(severalUsers)s משכו את ההזמנות שלהם %(count)s פעמים", + "%(oneUser)srejected their invitation %(count)s times|one": "%(oneUser)s דחו את ההזמנה שלו\\ה", + "%(oneUser)srejected their invitation %(count)s times|other": "%(oneUser)s דחה את ההזמנה %(count)s פעמים", + "%(severalUsers)srejected their invitations %(count)s times|one": "%(severalUsers)s דחו את ההזמנה שלהם", + "%(severalUsers)srejected their invitations %(count)s times|other": "%(severalUsers)s דחו את ההזמנה שלהם%(count)s פעמים", + "%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)s עזב וחזר", + "%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)s עזב וחזר %(count)s פעמים", + "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)s עזבו וחזרו", + "%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)s עזבו וחזרו %(count)s פעמים", + "%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)s הצטרפ/ה ועזב/ה", + "%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)s הצטרף ועזב/ה %(count)s פעמים", + "%(severalUsers)sjoined and left %(count)s times|one": "%(severalUsers)s הצתרפו ועזבו", + "%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)s הצתרפו ועזבו %(count)s פעמים", + "%(oneUser)sleft %(count)s times|one": "%(oneUser)s עזב\\ה", + "%(oneUser)sleft %(count)s times|other": "%(oneUser)s עזב %(count)s פעמים", + "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)s עזבו", + "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)s עזבו %(count)s פעמים", + "%(oneUser)sjoined %(count)s times|one": "%(oneUser)s הצתרפו", + "%(severalUsers)sjoined %(count)s times|other": "%(severalUsers)s הצתרפו %(count)s פעמים", + "%(oneUser)sjoined %(count)s times|other": "%(oneUser)s הצתרפו %(count)s פעמים", + "%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)s הצטרפ/ה", + "%(nameList)s %(transitionList)s": "%(nameList)s-%(transitionList)s", + "Language Dropdown": "תפריט שפות", + "Information": "מידע", + "Rotate clockwise": "סובב עם כיוון השעון", + "Rotate Right": "סובב ימינה", + "Rotate counter-clockwise": "סובב נגד כיוון השעון", + "Rotate Left": "סובב שמאלה", + "collapse": "כווץ", + "expand": "הרחב", + "Please create a new issue on GitHub so that we can investigate this bug.": "אנאצור בעיה חדשה ב- GitHub כדי שנוכל לחקור את הבאג הזה.", + "No results": "אין תוצאות", + "Join": "הצטרפות", + "This version of %(brand)s does not support searching encrypted messages": "גרסה זו של %(brand)s אינה תומכת בחיפוש הודעות מוצפנות", + "This version of %(brand)s does not support viewing some encrypted files": "גרסה זו של %(brand)s אינה תומכת בצפייה בקבצים מוצפנים מסוימים", + "Use the Desktop app to search encrypted messages": "השתמשו ב אפליקציית שולחן העבודה לחיפוש הודעות מוצפנות", + "Use the Desktop app to see all encrypted files": "השתמשו ב אפליקציית שולחן העבודה כדי לראות את כל הקבצים המוצפנים", + "Popout widget": "יישומון קופץ", + "Message deleted": "הודעה נמחקה", + "reacted with %(shortName)s ": "הגיבו עם %(shortName)s ", + "reacted with %(content)s ": "הגיבו עם %(content)s ", + "Reactions": "תגובות", + "Show all": "הצג הכל", + "Error decrypting video": "שגיאה בפענוח וידאו", + "You sent a verification request": "שלחתם בקשה לקוד אימות", + "%(name)s wants to verify": "%(name)s רוצה לאמת", + "Declining …": "מסרב…", + "Accepting …": "מקבל…", + "%(name)s cancelled": "%(name)s ביטל", + "%(name)s declined": "%(name)s סרב", + "You cancelled": "ביטלתם", + "You declined": "דחיתם", + "%(name)s accepted": "%(name)s אישרו", + "You accepted": "אשרתם", + "%(name)s cancelled verifying": "%(name)s ביטל את האימות", + "You cancelled verifying %(name)s": "בטלתם אימות עם %(name)s", + "You verified %(name)s": "אימתת את %(name)s", + "You have ignored this user, so their message is hidden. Show anyways.": "התעלמת ממשתמש זה, ולכן המסר שלו מוסתר. הצג בכל מקרה. ", + "Video conference started by %(senderName)s": "ועידת וידאו התחילה על ידי %(senderName)s", + "Video conference updated by %(senderName)s": "ועידת הווידאו עודכנה על ידי %(senderName)s", + "Video conference ended by %(senderName)s": "ועידת הווידיאו הסתיימה ב- %(senderName)s", + "Join the conference from the room information card on the right": "הצטרפו לכנס מכרטיס המידע על החדר בצד ימין", + "Join the conference at the top of this room": "הצטרף לכנס בחלק העליון של החדר הזה", + "Show image": "הצג תמונה", + "Error decrypting image": "שגיאה בפענוח הודעה", + "Invalid file%(extra)s": "קובץ לא תקין %(extra)s", + "Download %(text)s": "הורד %(text)s", + "Decrypt %(text)s": "פענח %(text)s", + "Error decrypting attachment": "שגיאה בפענוח קבצים מצורפים", + "Attachment": "נספחים", + "Message Actions": "פעולות הודעה", + "React": "הגב", + "Error decrypting audio": "שגיאה בפענוח שמע", + "The encryption used by this room isn't supported.": "ההצפנה בה משתמשים בחדר זה אינה נתמכת.", + "Encryption not enabled": "ההצפנה לא מופעלת", + "Ignored attempt to disable encryption": "התעלם מהניסיון להשבית את ההצפנה", + "Encryption enabled": "הצפנה הופעלה", + "Messages in this room are end-to-end encrypted. When people join, you can verify them in their profile, just tap on their avatar.": "ההודעות בחדר זה מוצפנות מקצה לקצה. כשאנשים מצטרפים, אתה יכול לאמת אותם בפרופיל שלהם, פשוט הקש על הדמות שלהם.", + "Messages here are end-to-end encrypted. Verify %(displayName)s in their profile - tap on their avatar.": "ההודעות כאן מוצפנות מקצה לקצה. אמת את %(displayName)s בפרופיל שלהם - הקש על הדמות שלהם.", + "Compare emoji": "השווה סמלים", + "Verification cancelled": "אימות בוטל", + "You cancelled verification.": "בטלתם את האימות.", + "%(displayName)s cancelled verification.": "הצג אימותים מבוטלים %(displayName)s.", + "You cancelled verification on your other session.": "ביטלת את האימות בהפעלה האחרת שלך.", + "Verification timed out.": "תם הזמן הקצוב לאימות.", + "Start verification again from their profile.": "התחל לאמת שוב מהפרופיל שלהם.", + "Start verification again from the notification.": "התחל אימות שוב מההודעה.", + "Got it": "הבנתי", + "Verified": "מאומת", + "You've successfully verified %(displayName)s!": "אמתתם בהצלחה את %(displayName)s!", + "You've successfully verified %(deviceName)s (%(deviceId)s)!": "אימתת בהצלחה את %(deviceName)s (%(deviceId)s)!", + "You've successfully verified your device!": "אימתת בהצלחה את המכשיר שלך!", + "In encrypted rooms, verify all users to ensure it’s secure.": "בחדרים מוצפנים, אמת את כל המשתמשים כדי לוודא שהוא מאובטח.", + "Verify all users in a room to ensure it's secure.": "אמת את כל המשתמשים בחדר כדי לוודא שהוא מאובטח.", + "Almost there! Is %(displayName)s showing the same shield?": "כמעט שם! האם %(displayName)s מציג את אותו מגן?", + "Almost there! Is your other session showing the same shield?": "כמעט שם! האם הפגישה השנייה שלך מראה את אותו מגן?", + "Verify by emoji": "אמת על ידי אמוג'י", + "Verify by comparing unique emoji.": "אמת את זה על ידי השוואת אמוג'י ייחודי.", + "If you can't scan the code above, verify by comparing unique emoji.": "אם אינך יכול לסרוק את הקוד לעיל, ודא על ידי השוואת אמוג'י ייחודי.", + "Ask %(displayName)s to scan your code:": "בקש מ- %(displayName)s לסרוק את הקוד שלכם:", + "Verify by scanning": "אמת על ידי סריקה", + "The session you are trying to verify doesn't support scanning a QR code or emoji verification, which is what %(brand)s supports. Try with a different client.": "ההפעלה שאתה מנסה לאמת אינה תומכת בסריקת קוד QR או אימות אמוג'י, וזה מה שתומך ב- %(brand)s. נסה עם לקוח אחר.", + "Security": "אבטחה", + "This client does not support end-to-end encryption.": "לקוח זה אינו תומך בהצפנה מקצה לקצה.", + "Role": "תפקיד", + "Failed to deactivate user": "השבתת משתמש נכשלה", + "Deactivate user?": "השבת משתמש?", + "Deactivate user": "השבת משתמש", + "Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?": "השבתת משתמש זה תנתק אותו וימנע ממנו להתחבר חזרה. בנוסף, הם יעזבו את כל החדרים בהם הם נמצאים. לא ניתן לבטל פעולה זו. האם אתה בטוח שברצונך להשבית משתמש זה?", + "Are you sure?": "האם אתם בטוחים?", + "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "לא תוכל לבטל את השינוי הזה מכיוון שאתה מקדם את המשתמש לאותה רמת ניהול כמוך.", + "Failed to change power level": "שינוי דרגת מנהל נכשל", + "Failed to remove user from community": "הסרת המשתמש מהקהילה נכשלה", + "Failed to withdraw invitation": "ביטול ההזמנה נכשל", + "Remove this user from community?": "הסר משתמש זה מהקהילה?", + "Disinvite this user from community?": "הסר הזמנה למשתמש זה מהקהילה?", + "Remove from community": "הסר מהקהילה", + "Unmute": "בטל השתקה", + "Failed to mute user": "כשלון בהשתקת משתמש", + "Failed to ban user": "כשלון בחסימת משתמש", + "Ban this user?": "חסום משתמש זה?", + "Unban this user?": "בטל חסימה למשתמש זה?", + "Ban": "חסום", + "Remove recent messages": "הסר הודעות אחרונות", + "Remove %(count)s messages|one": "הסר הודעה 1", + "Remove %(count)s messages|other": "הסר %(count)s הודעות", + "For a large amount of messages, this might take some time. Please don't refresh your client in the meantime.": "עבור כמות גדולה של הודעות, זה עלול לארוך זמן מה. אנא אל תרענן את הלקוח שלך בינתיים.", + "You are about to remove %(count)s messages by %(user)s. This cannot be undone. Do you wish to continue?|one": "אתה עומד להסיר הודעה אחת מאת %(user)s. אי אפשר לבטל את זה. האם אתה מקווה להמשיך?", + "You are about to remove %(count)s messages by %(user)s. This cannot be undone. Do you wish to continue?|other": "אתה עומד להסיר %(count)s הודעות מאת %(user)s. אי אפשר לבטל את זה. האם אתה מקווה להמשיך?", + "Remove recent messages by %(user)s": "הסר את ההודעות האחרונות של %(user)s", + "Try scrolling up in the timeline to see if there are any earlier ones.": "נסה לגלול למעלה בציר הזמן כדי לראות אם יש קודמים.", + "No recent messages by %(user)s found": "לא נמצאו הודעות אחרונות של %(user)s", + "Failed to kick": "כשלון לבעוט משתמש החוצה", + "Kick this user?": "בעט את משתמש זה?", + "Disinvite this user?": "הסר הזמנה למשתמש זה?", + "Kick": "בעט", + "Disinvite": "לבטל את הזמנתו", + "Demote": "הורד", + "You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the room it will be impossible to regain privileges.": "לא תוכל לבטל את השינוי הזה מכיוון שאתה מוריד את עצמך בדרגה, אם אתה המשתמש המיועד האחרון בחדר, אי אפשר יהיה להחזיר לו הרשאות.", + "Demote yourself?": "להוריד את עצמך?", + "Direct message": "הודעה ישירה", + "Share Link to User": "שתף קישור למשתמש", + "Invite": "הזמן", + "Mention": "אזכר", + "Jump to read receipt": "קפצו לקבלת קריאה", + "Hide sessions": "הסתר מושבים", + "%(count)s sessions|one": "%(count)s מושבים", + "%(count)s sessions|other": "%(count)s מושבים", + "Hide verified sessions": "הסתר מושבים מאומתים", + "%(count)s verified sessions|one": "1 מושב מאומת", + "%(count)s verified sessions|other": "%(count)s מושבים מאומתים", + "Not trusted": "לא אמין", + "Trusted": "אמין", + "Room settings": "הגדרות חדר", + "Share room": "שתף חדר", + "Show files": "הצג קבצים", + "%(count)s people|one": "%(count)s cbh בני אדם", + "%(count)s people|other": "%(count)s אנשים%(count)s", + "About": "אודות", + "Not encrypted": "לא מוצפן", + "Add widgets, bridges & bots": "הוסף יישומונים, גשרים ובוטים", + "Edit widgets, bridges & bots": "ערוך ישומונים, גשרים ובוטים", + "Widgets": "ישומונים", + "Options": "אפשרויות", + "Unpin a widget to view it in this panel": "הסר נעיצת יישומון על מנת להציגו בפנל זה", + "Unpin": "הסר נעיצה", + "You can only pin up to %(count)s widgets|other": "אתה יכול להצמיד עד%(count)s ווידג'טים בלבד", + "Room Info": "מידע החדר", + "Yours, or the other users’ session": "שלך, או ההפעלה של המשתמשים האחרים", + "Yours, or the other users’ internet connection": "שלך, או חיבור האינטרנט של המשתמשים האחרים", + "The homeserver the user you’re verifying is connected to": "שרת הבית שהמשתמש שאתה מאמת מחובר אליו", + "Your homeserver": "שרת הבית שלכם", + "One of the following may be compromised:": "אחד מהדברים הבאים עלול להוות סיכון:", + "Your messages are not secure": "ההודעות שלך אינן מאובטחות", + "For extra security, verify this user by checking a one-time code on both of your devices.": "ליתר ביטחון, אמת משתמש זה על ידי בדיקת קוד חד פעמי בשני המכשירים שלך.", + "Verify User": "אמת משתמש", + "In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "בחדרים מוצפנים ההודעות שלכם מאובטחות ורק לכם ולמקבל יש את המפתחות הייחודיים לפתיחתן.", + "Messages in this room are not end-to-end encrypted.": "הודעות בחדר זה אינן מוצפנות מקצה לקצה.", + "Your messages are secured and only you and the recipient have the unique keys to unlock them.": "ההודעות שלך מאובטחות ורק לך ולמקבל יש את המפתחות הייחודיים לפתיחתן.", + "Messages in this room are end-to-end encrypted.": "ההודעות בחדר זה מוצפנות מקצה לקצה.", + "Start Verification": "התחל אימות", + "Accepting…": "מקבל…", + "Waiting for %(displayName)s to accept…": "ממתין לקבלת %(displayName)s …", + "Waiting for you to accept on your other session…": "מחכה שתסכים בפגישה השנייה שלך …", + "When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.": "כאשר מישהו מכניס כתובת URL להודעה שלו, ניתן להציג תצוגה מקדימה של כתובת אתר כדי לתת מידע נוסף על קישור זה, כמו הכותרת, התיאור והתמונה מהאתר.", + "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "בחדרים מוצפנים, כמו זה, תצוגות מקדימות של כתובות אתרים מושבתות כברירת מחדל כדי להבטיח ששרת הבית שלך (במקום בו נוצרות התצוגות המקדימות) אינו יכול לאסוף מידע על קישורים שאתה רואה בחדר זה.", + "URL previews are disabled by default for participants in this room.": "תצוגות מקדימות של כתובות אתרים מושבתות כברירת מחדל עבור משתתפים בחדר זה.", + "URL previews are enabled by default for participants in this room.": "תצוגות מקדימות של כתובות אתרים מופעלות כברירת מחדל עבור משתתפים בחדר זה.", + "You have disabled URL previews by default.": "יש לך השבת תצוגות מקדימות של כתובות אתרים כברירת מחדל.", + "You have enabled URL previews by default.": "כברירת מחדל, הפעלת תצוגה מקדימה של כתובות אתרים.", + "Publish this room to the public in %(domain)s's room directory?": "לפרסם את החדר הזה לציבור במדריך החדרים של%(domain)s?", + "Room avatar": "אוואטר של החדר", + "Room Topic": "נושא החדר", + "Room Name": "שם חדר", + "New community ID (e.g. +foo:%(localDomain)s)": "מזהה קהילה חדש (למשל + foo:%(localDomain)s)", + "This room is not showing flair for any communities": "חדר זה אינו מגלה כישרון בקרב קהילות כלשהן", + "Showing flair for these communities:": "מציג כשרון עבור קהילות אלו:", + "'%(groupId)s' is not a valid community ID": "'%(groupId)s' אינו קוד זהות קהילה תקין", + "Invalid community ID": "קוד זהות קהילה שגוי", + "There was an error updating the flair for this room. The server may not allow it or a temporary error occurred.": "אירעה שגיאה בעדכון הכשרון לחדר זה. ייתכן שהשרת לא מאפשר זאת או שהתרחשה שגיאה זמנית.", + "Error updating flair": "שגיאה בעדכון כשרון", + "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "הגדר כתובות לחדר זה כדי שמשתמשים יוכלו למצוא את החדר הזה דרך שרת הבית שלך (%(localDomain)s)", + "Local Addresses": "כתובות מקומיות", + "New published address (e.g. #alias:server)": "כתובת חדשה שפורסמה (למשל #alias:server)", + "No other published addresses yet, add one below": "עדיין אין כתובות שפורסמו, הוסף כתובת למטה", + "Other published addresses:": "כתובות מפורסמות אחרות:", + "Published addresses can be used by anyone on any server to join your room. To publish an address, it needs to be set as a local address first.": "כל אחד מהשרתים יכול להשתמש בכתובות שפורסמו כדי להצטרף לחדר שלך. כדי לפרסם כתובת, תחילה יש להגדיר אותה ככתובת מקומית.", + "Published Addresses": "כתובות מפורסמות", + "Local address": "כתובות מקומיות", + "This room has no local addresses": "לחדר זה אין כתובות מקומיות", + "not specified": "לא מוגדר", + "Main address": "כתובת ראשית", + "Error removing address": "שגיאה בהסרת כתובת", + "There was an error removing that address. It may no longer exist or a temporary error occurred.": "אירעה שגיאה בהסרת כתובת זו. יתכן שהוא כבר לא קיים או שהתרחשה שגיאה זמנית.", + "You don't have permission to delete the address.": "אין לך הרשאה למחוק את הכתובת.", + "There was an error creating that address. It may not be allowed by the server or a temporary failure occurred.": "אירעה שגיאה ביצירת כתובת זו. ייתכן שהשרת אינו מאפשר זאת או שהתרחש כשל זמני.", + "Error creating address": "שגיאה ביצירת כתובת", + "There was an error updating the room's alternative addresses. It may not be allowed by the server or a temporary failure occurred.": "אירעה שגיאה בעדכון הכתובות החלופיות של החדר. ייתכן שהשרת אינו מאפשר זאת או שהתרחש כשל זמני.", + "There was an error updating the room's main address. It may not be allowed by the server or a temporary failure occurred.": "אירעה שגיאה בעדכון הכתובת הראשית של החדר. ייתכן שהשרת אינו מאפשר זאת או שהתרחש כשל זמני.", + "Error updating main address": "שגיאה בעדכון כתובת ראשית", + "Mark all as read": "סמן הכל כנקרא", + "Jump to first unread message.": "קפצו להודעה הראשונה שלא נקראה.", + "Invited by %(sender)s": "הוזמנו על ידי %(sender)s", + "Revoke invite": "שלול הזמנה", + "Admin Tools": "כלי מנהל", + "Could not revoke the invite. The server may be experiencing a temporary problem or you do not have sufficient permissions to revoke the invite.": "לא ניתן היה לבטל את ההזמנה. ייתכן שהשרת נתקל בבעיה זמנית או שאין לך הרשאות מספיקות לבטל את ההזמנה.", + "Failed to revoke invite": "ביטול ההזמנה נכשל", + "Show Stickers": "הצג מדבקות", + "Stickerpack": "חבילת מדבקות", + "Hide Stickers": "הסתר מדבקות", + "Add some now": "הוסף אותם כעת", + "You don't currently have any stickerpacks enabled": "כרגע אין לך חבילות מדבקה מופעלות", + "Failed to connect to integration manager": "ההתחברות למנהל האינטגרציה נכשלה", + "Send as message": "שלח כהודעה", + "Hint: Begin your message with//
to start it with a slash.": "רמז: התחל את ההודעה שלך עם//
כדי להתחיל אותה עם קו נטוי.", + "You can use/help
to list available commands. Did you mean to send this as a message?": "באפשרותך להשתמש ב-/help
כדי לרשום פקודות זמינות. האם התכוונת לשלוח זאת כהודעה?", + "Unrecognised command: %(commandText)s": "פקודה לא מזוהה: %(commandText)s", + "Unknown Command": "פקודה לא ידועה", + "Server unavailable, overloaded, or something else went wrong.": "השרת לא זמין, עמוס מדי או שמשהו אחר השתבש.", + "Server error": "שגיאת שרת", + "Only room administrators will see this warning": "רק מנהלי חדרים יראו את האזהרה הזו", + "This room is running room version, which this homeserver has marked as unstable.": "חדר זה מריץ את גרסת החדר , ששרת הבית הזה סימן כ- לא יציב .", + "This room has already been upgraded.": "החדר הזה כבר שודרג.", + "Upgrading this room will shut down the current instance of the room and create an upgraded room with the same name.": "שדרוג חדר זה יסגור את המופע הנוכחי של החדר וייצור חדר משודרג עם אותו שם.", + "Unread messages.": "הודעות שלא נקראו.", + "%(count)s unread messages.|one": "1 הודעה שלא נקראה.", + "%(count)s unread messages.|other": "%(count)s הודעות שלא נקראו.", + "%(count)s unread messages including mentions.|one": "1 אזכור שלא נקרא.", + "%(count)s unread messages including mentions.|other": "%(count)s הודעות שלא נקראו כולל אזכורים.", + "Room options": "אפשרויות חדר", + "Loading room preview": "טוען תצוגת חדר", + "Sign Up": "הרשמה", + "Join the conversation with an account": "הצטרף לשיחה עם חשבון", + "Rejecting invite …": "דוחה הזמנה…", + "Loading …": "טוען…", + "Joining room …": "מצתרף אל חדר…", + "This room": "חדר זה", + "%(count)s results|one": "תוצאות %(count)s", + "%(count)s results|other": "תוצאות %(count)s", + "Use the + to make a new room or explore existing ones below": "השתמשו ב- + כדי ליצור חדר חדש או לחקור את החדרים הקיימים למטה", + "Explore all public rooms": "צפה בכל החדרים הציבוריים", + "Start a new chat": "התחל צאט חדש", + "Can't see what you’re looking for?": "אינכם מוצאים את מה שאתם מחפשים?", + "Custom Tag": "תגיות מותאמות", + "Historical": "היסטוריה", + "System Alerts": "התרעות מערכת", + "Low priority": "עדיפות נמוכה", + "Explore public rooms": "שוטט בחדרים ציבוריים", + "Explore community rooms": "שוטט בחדרי קהילות", + "Create new room": "צור חדר חדש", + "Add room": "הוסף חדר", + "Start chat": "התחל שיחה", + "People": "אנשים", + "Favourites": "מועדפים", + "Invites": "הזמנות", + "Show Widgets": "הצג ישומונים", + "Hide Widgets": "הסתר ישומונים", + "Forget room": "שכח חדר", + "Join Room": "הצטרף אל חדר", + "(~%(count)s results)|one": "(תוצאת %(count)s)", + "(~%(count)s results)|other": "(תוצאת %(count)s)", + "No recently visited rooms": "אין חדרים שבקרתם בהם לאחרונה", + "Room %(name)s": "חדר %(name)s", + "Replying": "משיבים", + "Seen by %(displayName)s (%(userName)s) at %(dateTime)s": "נראה על ידי %(displayName)s (%(userName)s) בזמן %(dateTime)s", + "Seen by %(userName)s at %(dateTime)s": "נראה על ידי %(userName)s בזמן %(dateTime)s", + "Unknown": "לא ידוע", + "Offline": "לא מחובר", + "Idle": "לא פעיל", + "Unknown for %(duration)s": "זמן לא ידוע %(duration)s", + "Offline for %(duration)s": "לא מחובר %(duration)s", + "Idle for %(duration)s": "לא פעיל %(duration)s", + "Online for %(duration)s": "מחובר %(duration)s", + "%(duration)sd": "%(duration)s (ימים)", + "%(duration)sh": "%(duration)s (שעות)", + "%(duration)sm": "%(duration)s (דקות)", + "%(duration)ss": "(שניות) %(duration)s", + "Jump to message": "קפוץ להודעה", + "Pinned Messages": "הודעות מוצמדות", + "Loading...": "טוען...", + "No pinned messages.": "אין הודעות מוצמדות.", + "This is the start of .": "זוהי התחלת חדר .", + "Add a photo, so people can easily spot your room.": "הוסף תמונה, כך שאנשים יוכלו לזהות את החדר שלך בקלות.", + "%(displayName)s created this room.": "%(displayName)s יצר את החדר הזה.", + "You created this room.": "אתם יצרתם את החדר הזה.", + "Add a topic to help people know what it is about.": "הוספת נושא לעזור לאנשים להבין במה מדובר.", + "Topic: %(topic)s ": "נושאים: %(topic)s ", + "Topic: %(topic)s (edit)": "נושאים: %(topic)s (עריכה)", + "This is the beginning of your direct message history with .": "זו ההתחלה של היסטוריית ההודעות הישירות שלך עם .", + "Only the two of you are in this conversation, unless either of you invites anyone to join.": "רק שניכם נמצאים בשיחה הזו, אלא אם כן מישהו מכם מזמין מישהו להצטרף.", + "Code block": "בלוק קוד", + "Strikethrough": "קו חוצה", + "Italics": "נטוי", + "Bold": "מודגש", + "You do not have permission to post to this room": "אין לך הרשאה לפרסם בחדר זה", + "This room has been replaced and is no longer active.": "חדר זה הוחלף ואינו פעיל יותר.", + "The conversation continues here.": "השיחה נמשכת כאן.", + "Send a message…": "שליחת הודעה…", + "Send an encrypted message…": "שליחת הודעה מוצפנת…", + "Send a reply…": "שליחת תגובה…", + "Send an encrypted reply…": "שליחת תגובה מוצפנת…", + "Upload file": "העלאת קובץ", + "Emoji picker": "בחירת סמלים", + "Hangup": "ניתוק", + "Video call": "שיחת וידאו", + "Voice call": "שיחת אודיו", + "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (ניהול %(powerLevelNumber)s)", + "Filter room members": "סינון חברי חדר", + "Invited": "מוזמן", + "and %(count)s others...|one": "ועוד אחד אחר...", + "and %(count)s others...|other": "ו %(count)s אחרים...", + "Close preview": "סגור תצוגה מקדימה", + "Scroll to most recent messages": "גלול להודעות האחרונות", + "Please select the destination room for this message": "אנא בחר בחדר היעד להודעה זו", + "The authenticity of this encrypted message can't be guaranteed on this device.": "לא ניתן להבטיח את האותנטיות של הודעה מוצפנת זו במכשיר זה.", + "Encrypted by a deleted session": "הוצפן על ידי מושב שנמחק", + "Unencrypted": "לא מוצפן", + "Encrypted by an unverified session": "הוצפן על ידי מושב לא מאומת", + "This message cannot be decrypted": "לא ניתן לפענח את ההודעה הזו", + " Re-request encryption keys from your other sessions.": "בקש מחדש מפתחות הצפנה מהפעלות האחרות שלך.", + "Key request sent.": "בקשת המפתח נשלחה.", + "If your other sessions do not have the key for this message you will not be able to decrypt them.": "אם למפגשים האחרים שלך אין מפתח להודעה זו לא תוכל לפענח אותם.", + "Key share requests are sent to your other sessions automatically. If you rejected or dismissed the key share request on your other sessions, click here to request the keys for this session again.": "בקשות לשיתוף מפתח נשלחות להפעלות האחרות שלך באופן אוטומטי. אם דחית או דחית את בקשת שיתוף המפתח בהפעלות האחרות שלך, לחץ כאן לבקש שוב את המפתחות להפעלה זו.", + "Your key share request has been sent - please check your other sessions for key share requests.": "בקשת שיתוף המפתח שלך נשלחה - אנא בדוק אם קיימות בקשות לשיתוף מפתח בהפעלות האחרות שלך.", + "%(senderName)s uploaded a file": "%(senderName)s העלה תמונה", + "%(senderName)s sent a video": "%(senderName)s שלח\\ה סרטון", + "%(senderName)s sent an image": "%(senderName)s שלח\\ה תמונה", + "This event could not be displayed": "לא ניתן להציג את הארוע הזה", + "Mod": "ממתן", + "Edit message": "ערוך הודעה", + "Everyone in this room is verified": "כולם מאומתים בחדר זה", + "This room is end-to-end encrypted": "חדר זה מוצפן מקצה לקצה", + "Someone is using an unknown session": "מישהו משתמש בהפעלה לא ידועה", + "You have verified this user. This user has verified all of their sessions.": "אימתת משתמש זה. משתמש זה אימת את כל ההפעלות שלו.", + "You have not verified this user.": "לא אימתת משתמש זה.", + "This user has not verified all of their sessions.": "משתמש זה לא אימת את כל ההפעלות שלו.", + "Drop file here to upload": "גרור קובץ לכאן בכדי להעלות", + "Drop File Here": "גרור קובץ לכאן", + "Phone Number": "מספר טלפון", + "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains.": "הודעת טקסט נשלחה אל %(msisdn)s. אנא הזן את קוד האימות שהוא מכיל.", + "Remove %(phone)s?": "הסר מספרי %(phone)s ?", + "Email Address": "כתובת דוא\"ל", + "We've sent you an email to verify your address. Please follow the instructions there and then click the button below.": "שלחנו לך דוא\"ל לאימות הכתובת שלך. אנא עקוב אחר ההוראות שם ואז לחץ על הכפתור למטה.", + "Add": "הוספה", + "Unable to add email address": "לא ניתן להוסיף את כתובת הדוא\"ל", + "This doesn't appear to be a valid email address": "לא נראה שזו כתובת דוא\"ל חוקית", + "Invalid Email Address": "כתובת דוא\"ל לא תקינה", + "Remove %(email)s?": "הסר כתובות %(email)s ?", + "Unable to remove contact information": "לא ניתן להסיר את פרטי הקשר", + "Discovery options will appear once you have added a phone number above.": "אפשרויות גילוי יופיעו לאחר הוספת מספר טלפון לעיל.", + "Verification code": "קוד אימות", + "Please enter verification code sent via text.": "אנא הזן קוד אימות שנשלח באמצעות טקסט.", + "Incorrect verification code": "קוד אימות שגוי", + "Unable to verify phone number.": "לא ניתן לאמת את מספר הטלפון.", + "Unable to share phone number": "לא ניתן לשתף מספר טלפון", + "Unable to revoke sharing for phone number": "לא ניתן לבטל את השיתוף למספר טלפון", + "Discovery options will appear once you have added an email above.": "אפשרויות גילוי יופיעו לאחר הוספת דוא\"ל לעיל.", + "Share": "לשתף", + "Revoke": "לשלול", + "Complete": "מושלם", + "Verify the link in your inbox": "אמת את הקישור בתיבת הדואר הנכנס שלך", + "Unable to verify email address.": "לא ניתן לאמת את כתובת הדוא\"ל.", + "Click the link in the email you received to verify and then click continue again.": "לחץ על הקישור בהודעת הדוא\"ל שקיבלת כדי לאמת ואז לחץ על המשך שוב.", + "Your email address hasn't been verified yet": "כתובת הדוא\"ל שלך עדיין לא אומתה", + "Unable to share email address": "לא ניתן לשתף את כתובת הדוא\"ל", + "Unable to revoke sharing for email address": "לא ניתן לבטל את השיתוף לכתובת הדוא\"ל", + "Who can access this room?": "למי מותר להכנס לחדר זה?", + "Encrypted": "מוצפן", + "Once enabled, encryption cannot be disabled.": "לאחר הפעלתו, לא ניתן לבטל את ההצפנה.", + "Security & Privacy": "אבטחה ופרטיות", + "Who can read history?": "למי מותר לקרוא הסטוריה?", + "Members only (since they joined)": "חברים בלבד (מאז שהצתרפו)", + "Members only (since they were invited)": "חברים בלבד (מאז שהוזמנו)", + "Members only (since the point in time of selecting this option)": "חברים בלבד (מאז נקודת הזמן לבחירת אפשרות זו)", + "Anyone": "כולם", + "Changes to who can read history will only apply to future messages in this room. The visibility of existing history will be unchanged.": "שינויים במי שיכול לקרוא היסטוריה יחולו רק על הודעות עתידיות בחדר זה. נראות ההיסטוריה הקיימת לא תשתנה.", + "Anyone who knows the room's link, including guests": "כל מי שמכיר את קישור החדר, כולל אורחים", + "Anyone who knows the room's link, apart from guests": "כל מי שמכיר את קישור החדר, מלבד האורחים", + "Only people who have been invited": "רק משתמשים אשר הוזמנו", + "To link to this room, please add an address.": "לקישור לחדר זה, אנא הוסף כתובת.", + "Click here to fix": "לחץ כאן לתקן", + "Guests cannot join this room even if explicitly invited.": "אורחים אינם יכולים להצטרף לחדר זה גם אם הם מוזמנים במפורש.", + "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.": "לאחר הפעלתו, לא ניתן להשבית את ההצפנה לחדר. הודעות שנשלחות בחדר מוצפן אינן נראות על ידי השרת, רק על ידי משתתפי החדר. הפעלת הצפנה עשויה למנוע בוטים וגשרים רבים לעבוד כראוי. למידע נוסף על הצפנה. ", + "Enable encryption?": "הפעל הצפנה?", + "Select the roles required to change various parts of the room": "בחר את התפקידים הנדרשים לשינוי חלקים שונים של החדר", + "Permissions": "הרשאות", + "Roles & Permissions": "תפקידים והרשאות", + "Send %(eventType)s events": "שלח התרעות %(eventType)s", + "Banned users": "משתמשים חסומים", + "Muted Users": "משתמשים מושתקים", + "Privileged Users": "משתמשים מורשים", + "No users have specific privileges in this room": "אין למשתמשים הרשאות ספציפיות בחדר זה", + "Notify everyone": "התרעה לכולם", + "Remove messages sent by others": "הסרת הודעות שנשלחו על ידי אחרים", + "Ban users": "חסימת משתמשים", + "Kick users": "בעט משתמשים", + "Change settings": "שינוי הגדרות", + "Invite users": "הזמנת משתמשים", + "Send messages": "שלח הודעות", + "Default role": "תפקיד ברירת מחדל", + "An error occurred changing the user's power level. Ensure you have sufficient permissions and try again.": "אירעה שגיאה בשינוי רמת ההספק של המשתמש. ודא שיש לך הרשאות מספיקות ונסה שוב.", + "Error changing power level": "שגיאה בשינוי דרגת הניהול", + "An error occurred changing the room's power level requirements. Ensure you have sufficient permissions and try again.": "אירעה שגיאה בשינוי דרישות רמת הניהול של החדר. ודא שיש לך הרשאות מספיקות ונסה שוב.", + "Error changing power level requirement": "שגיאה בשינוי דרישת דרגת ניהול", + "Banned by %(displayName)s": "נחסם על ידי %(displayName)s", + "Unban": "הסר חסימה", + "Failed to unban": "שגיאה בהסרת חסימה", + "Modify widgets": "שנה ישומונים", + "Enable room encryption": "הפעל הצפנת חדר", + "Upgrade the room": "שדרג את החדר", + "Change topic": "שנה נושא", + "Change permissions": "שנה הרשאות", + "This widget may use cookies.": "יישומון זה עשוי להשתמש בעוגיות.", + "Widget added by": "ישומון נוסף על ידי", + "Widgets do not use message encryption.": "יישומונים אינם משתמשים בהצפנת הודעות.", + "Using this widget may share datawith %(widgetDomain)s.": "שימוש ביישומון זה עשוי לשתף נתונים עם %(widgetDomain)s.", + "Using this widget may share data with %(widgetDomain)s & your Integration Manager.": "שימוש ביישומון זה עשוי לשתף נתונים עם %(widgetDomain)s ומנהל האינטגרציה שלך.", + "Widget ID": "קוד זהות הישומון", + "Room ID": "קוד זהות החדר", + "%(brand)s URL": "קישור %(brand)s", + "Your theme": "ערכת הנושא שלכם", + "Your user ID": "קוד זהות המשתמש שלכם", + "Your avatar URL": "כתובת הקישור לאווטאר שלכם", + "Your display name": "שם התצוגה שלכם", + "Any of the following data may be shared:": "ניתן לשתף כל אחד מהנתונים הבאים:", + "Unknown Address": "כתובת לא ידועה", + "Cancel search": "בטל חיפוש", + "Quick Reactions": "תגובות מהירות", + "Categories": "נושאים", + "Flags": "דגלים", + "Symbols": "סמלים", + "Objects": "עצמים", + "Travel & Places": "טיולים ומקומות", + "Activities": "פעילויות", + "Food & Drink": "משקאות ומזון", + "Animals & Nature": "חיות וטבע", + "Smileys & People": "סמיילי ואנשים", + "Frequently Used": "לעיתים קרובות בשימוש", + "You're not currently a member of any communities.": "כרגע אינך חבר בקהילות כלשהן.", + "Display your community flair in rooms configured to show it.": "הצג את הכשרון הקהילתי שלך בחדרים שהוגדרו להציג אותו.", + "Something went wrong when trying to get your communities.": "משהו השתבש כשניסה להשיג את הקהילות שלך.", + "Filter community rooms": "סנן חדרי קהילה", + "Only visible to community members": "גלוי רק לחברי הקהילה", + "Visible to everyone": "גלוי לכולם", + "Visibility in Room List": "נראות ברשימת החדרים", + "The visibility of '%(roomName)s' in %(groupId)s could not be updated.": "לא ניתן היה לעדכן את החשיפה של '%(roomName)s' ב-%(groupId)s.", + "Something went wrong!": "משהו השתבש!", + "Failed to remove '%(roomName)s' from %(groupId)s": "הסרת '%(roomName)s' מ-%(groupId)s נכשלה", + "Failed to remove room from community": "הסרת החדר מהקהילה נכשלה", + "Removing a room from the community will also remove it from the community page.": "הסרת חדר מהקהילה תסיר אותו גם מדף הקהילה.", + "Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "האם אתה בטוח שברצונך להסיר את '%(roomName)s' מ-%(groupId)s?", + "Filter community members": "סנן את חברי הקהילה", + "Failed to load group members": "טעינת חברי הקבוצה נכשלה", + "Can't load this message": "לא ניתן לטעון הודעה זו", + "Submit logs": "הגש יומנים", + "edited": "נערך", + "Edited at %(date)s. Click to view edits.": "נערך ב-%(date)s. לחץ לצפייה בעריכות.", + "Click to view edits": "לחץ לצפות בעריכות", + "Edited at %(date)s": "נערך ב-%(date)s", + "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "אתה עומד להועבר לאתר של צד שלישי כדי שתוכל לאמת את חשבונך לשימוש עם %(integrationsUrl)s. האם אתה מקווה להמשיך?", + "Add an Integration": "הוסף אינטגרציה", + "Failed to copy": "שגיאה בהעתקה", + "Copied!": "הועתק!", + "This room is a continuation of another conversation.": "החדר הזה הוא המשך לשיחה אחרת.", + "Click here to see older messages.": "לחץ כאן לראות הודעות ישנות.", + "%(senderDisplayName)s changed the room avatar to ": "%(senderDisplayName)s שינה את האווטאר של החדר ל- ", + "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s הסיר את האווטאר של החדר.", + "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s שינה את האווטר עבור חדר %(roomName)s", + "Message deleted on %(date)s": "הודעה נמחקה בתאריך %(date)s", + "Message deleted by %(name)s": "הודעה נמחקה על ידיד%(name)s", + "Change history visibility": "שנה תצוגת הסטוריה", + "Change main address for the room": "שנה את הכתובת הראשית של החדר", + "Change room name": "שנה את שם החדר", + "Change room avatar": "שנה אווטר של החדר", + "Browse": "דפדף", + "Set a new custom sound": "הגדר צליל מותאם אישי", + "Notification sound": "צלילי התרעה", + "Sounds": "צלילים", + "Uploaded sound": "צלילים שהועלו", + "Room Addresses": "כתובות חדרים", + "URL Previews": "תצוגת קישורים", + "Bridges": "גשרים", + "This room isn’t bridging messages to any platforms. Learn more.": "החדר הזה לא מגשר על מסרים לאף פלטפורמה. למידע נוסף. ", + "This room is bridging messages to the following platforms. Learn more.": "חדר זה מגשר בין מסרים לפלטפורמות הבאות. למידע נוסף. ", + "Open Devtools": "פתח כלי מפתח", + "Developer options": "אפשרויות מפתח", + "Room version:": "גרסאת חדש:", + "Room version": "גרסאת חדר", + "Internal room ID:": "תעודת זהות בחדר פנימי:", + "Room information": "מידע החדר", + "View older messages in %(roomName)s.": "צפה בהודעות ישנות ב-%(roomName)s.", + "this room": "חדר זה", + "Upgrade this room to the recommended room version": "שדרג חדר זה לגרסת החדר המומלצת", + "Warning: Upgrading a room will not automatically migrate room members to the new version of the room. We'll post a link to the new room in the old version of the room - room members will have to click this link to join the new room.": " אזהרה : שדרוג חדר לא יעביר באופן אוטומטי את חברי החדר לגרסה החדשה של החדר. נפרסם קישור לחדר החדש בגרסה הישנה של החדר - חברי החדר יצטרכו ללחוץ על קישור זה כדי להצטרף לחדר החדש.", + "This room is not accessible by remote Matrix servers": "לא ניתן לגשת לחדר זה באמצעות שרתי מטריקס מרוחקים", + "Voice & Video": "שמע ווידאו", + "Camera": "מצלמה", + "Microphone": "מיקרופון", + "Audio Output": "יציאת שמע", + "Default Device": "התקן ברירת מחדל", + "No Webcams detected": "לא נמצאה מצלמת רשת", + "No Microphones detected": "לא נמצא מיקרופון", + "No Audio Outputs detected": "לא התגלו יציאות אודיו", + "Request media permissions": "בקש הרשאות למדיה", + "Missing media permissions, click the button below to request.": "חסרות הרשאות מדיה, לחץ על הלחצן למטה כדי לבקש.", + "You may need to manually permit %(brand)s to access your microphone/webcam": "ייתכן שיהיה עליך לאפשר ידנית ל-%(brand)s גישה למיקרופון / מצלמת האינטרנט שלך", + "No media permissions": "אין הרשאות מדיה", + "A session's public name is visible to people you communicate with": "השם הציבורי של הפגישה גלוי לאנשים שאיתם אתה מתקשר", + "Manage the names of and sign out of your sessions below or verify them in your User Profile.": "נהל את שמות ההפעלות שלך והוצא אותן למטה או אמת אותן בפרופיל המשתמש שלך .", + "Where you’re logged in": "היכן שאתה מחובר", + "Learn more about how we use analytics.": "למידע נוסף על אופן השימוש שלנו בניתוחים.", + "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "פרטיות חשובה לנו, ולכן איננו אוספים נתונים אישיים או ניתנים לזיהוי לניתוח שלנו.", + "%(brand)s collects anonymous analytics to allow us to improve the application.": "%(brand)s אוספת ניתוח אנונימי כדי לאפשר לנו לשפר את היישום.", + "Privacy": "פרטיות", + "Your server admin has disabled end-to-end encryption by default in private rooms & Direct Messages.": "מנהל השרת שלך השבית הצפנה מקצה לקצה כברירת מחדל בחדרים פרטיים ובהודעות ישירות.", + "Cross-signing": "חתימה צולבת", + "Message search": "חיפוש הודעה", + "Secure Backup": "גיבוי מאובטח", + "Reject all %(invitedRooms)s invites": "דחה את כל ההזמנות של %(invitedRooms)s", + "Accept all %(invitedRooms)s invites": "קבל את כל ההזמנות של %(invitedRooms)s", + "Bulk options": "אפשרויות בתפזורת", + "Session key:": "מפתח מושב:", + "Session ID:": "מזהה מושב:", + "Cryptography": "קריפטוגרפיה", + "Import E2E room keys": "ייבא מפתחות לחדר E2E", + " ": "<לא נתמך>", + "Unignore": "הסר התעלמות", + "Read Marker off-screen lifetime (ms)": "חיי סמן קריאה מחוץ למסך (ms)", + "Read Marker lifetime (ms)": "חיי סמן קריאה (ms)", + "Autocomplete delay (ms)": "עיכוב השלמה אוטומטית (ms)", + "Timeline": "קו זמן", + "Composer": "כתבן", + "Room list": "רשימת חדרים", + "Preferences": "העדפות", + "Show tray icon and minimize window to it on close": "הצג את סמל המגש וצמצם את החלון אליו בסגירה", + "Always show the window menu bar": "הראה תמיד את שורת תפריט החלונות", + "Start automatically after system login": "התחל באופן אוטומטי לאחר הכניסה", + "Subscribe": "הרשמה", + "Room ID or address of ban list": "זהות החדר או כתובת של רשימת החסומים", + "If this isn't what you want, please use a different tool to ignore users.": "אם זה לא מה שאתה רוצה, השתמש בכלי אחר כדי להתעלם ממשתמשים.", + "Subscribing to a ban list will cause you to join it!": "הרשמה לרשימת איסורים תגרום לך להצטרף אליה!", + "Subscribed lists": "רשימת הרשמות", + "Ignore": "התעלם", + "eg: @bot:* or example.org": "למשל: @bot: * או example.org", + "Server or user ID to ignore": "שרת או משתמש להתעלם ממנו", + "Your personal ban list holds all the users/servers you personally don't want to see messages from. After ignoring your first user/server, a new room will show up in your room list named 'My Ban List' - stay in this room to keep the ban list in effect.": "רשימת האיסורים האישית שלך מכילה את כל המשתמשים / שרתים שאתה אישית לא רוצה לראות מהם הודעות. לאחר שהתעלמת מהמשתמש / השרת הראשונים שלך, חדר חדש יופיע ברשימת החדרים שלך בשם 'רשימת האיסורים שלי' - הישאר בחדר זה כדי לשמור על רשימת האיסורים.", + "Personal ban list": "רשימת חסומים פרטית", + "Ignoring people is done through ban lists which contain rules for who to ban. Subscribing to a ban list means the users/servers blocked by that list will be hidden from you.": "התעלמות מאנשים נעשית באמצעות רשימות איסור המכילות כללים למי לאסור. הרשמה להרשמה לרשימת איסורים פירושה שהמשתמשים / השרתים החסומים על ידי רשימה זו יוסתרו ממך.", + "Add users and servers you want to ignore here. Use asterisks to have %(brand)s match any characters. For example, @bot:*
would ignore all users that have the name 'bot' on any server.": "הוסף משתמשים ושרתים שתרצה להתעלם מהם כאן. השתמש בכוכביות כדי שאחוזים %(brand)s יתאימו לכל תו. לדוגמא,@bot: *
יתעלם מכל המשתמשים שיש להם את השם 'בוט' בשרת כלשהו.", + "⚠ These settings are meant for advanced users.": "⚠ הגדרות אלה מיועדות למשתמשים מתקדמים.", + "Ignored users": "משתמשים שהתעלמתם מהם", + "You are currently subscribed to:": "אתם רשומים אל:", + "View rules": "צפה בכללים", + "Unsubscribe": "הסרת הרשמה", + "You are not subscribed to any lists": "אימכם רשומים לשום רשימה", + "You are currently ignoring:": "אתם כרגע מתעלמים מ:", + "You have not ignored anyone.": "לא התעלמתם מאף אחד.", + "User rules": "כללי משתמש", + "Server rules": "כללי שרת", + "Ban list rules - %(roomName)s": "כללים לרשימת חסימות - %(roomName)s", + "None": "ללא", + "Please try again or view your console for hints.": "נסה שוב או הצג את המסוף שלך לקבלת רמזים.", + "Error unsubscribing from list": "שגיאה בהסרת הרשמה מרשימה זו", + "Error removing ignored user/server": "שגיאה בהסרת משתמש / שרת שהתעלמו ממנו", + "Please verify the room ID or address and try again.": "אנא אמת את מזהה החדר או את הכתובת ונסה שוב.", + "Error subscribing to list": "שגיאה בהרשמה אל הרשימה", + "Something went wrong. Please try again or view your console for hints.": "משהו השתבש. נסה שוב או הצג את המסוף שלך לקבלת רמזים.", + "Error adding ignored user/server": "שגיאה בהוספת שרת\\משתמש שהתעלמתם ממנו", + "Ignored/Blocked": "התעלם\\חסום", + "Customise your experience with experimental labs features. Learn more.": "התאם אישית את החוויה שלך בעזרת תכונות מעבדתיות ניסיוניות. למידע נוסף .", + "Labs": "מעבדות", + "Clear cache and reload": "נקה מטמון ואתחל", + "click to reveal": "לחץ בשביל לחשוף", + "Access Token:": "אסימון גישה:", + "Identity Server is": "שרת ההזדהות הינו", + "Homeserver is": "שרת הבית הינו", + "olm version:": "גרסת OLM:", + "%(brand)s version:": "גרסאת %(brand)s:", + "Versions": "גרסאות", + "Keyboard Shortcuts": "קיצורי מקלדת", + "FAQ": "שאלות", + "Help & About": "עזרה ואודות", + "To report a Matrix-related security issue, please read the Matrix.org Security Disclosure Policy.": "כדי לדווח על בעיית אבטחה הקשורה למטריקס, אנא קראו את מדיניות גילוי האבטחה של Matrix.org .", + "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "אם הגשת באג באמצעות GitHub, יומני איתור באגים יכולים לעזור לנו לאתר את הבעיה. יומני איתור באגים מכילים נתוני שימוש ביישומים הכוללים את שם המשתמש שלך, המזהים או הכינויים של החדרים או הקבוצות שבהם ביקרת ושמות המשתמשים של משתמשים אחרים. הם אינם מכילים הודעות.", + "Bug reporting": "דיווח על תקלות ובאגים", + "Chat with %(brand)s Bot": "דבר עם הבוט של %(brand)s", + "For help with using %(brand)s, click here or start a chat with our bot using the button below.": "לעזרה בשימוש ב-%(brand)s לחץ על כאן או התחל צ'אט עם הבוט שלנו באמצעות הלחצן למטה.", + "For help with using %(brand)s, click here.": "בשביל לעזור בקידום ושימוש ב- %(brand)s, לחצו כאן.", + "Credits": "בזכות", + "Legal": "חוקי", + "General": "כללי", + "Discovery": "מציאה", + "Deactivate account": "סגור חשבון", + "Deactivate Account": "סגור חשבון", + "Deactivating your account is a permanent action - be careful!": "סגירת החשבון הינה פעולה מוחלטת - היו זהירים!", + "Account management": "ניהול חשבון", + "Agree to the identity server (%(serverName)s) Terms of Service to allow yourself to be discoverable by email address or phone number.": "הסכים לתנאי השירות של שרת הזהות (%(serverName)s) כדי לאפשר לעצמך להיות גלוי על ידי כתובת דוא\"ל או מספר טלפון.", + "Language and region": "שפה ואיזור", + "Account": "חשבון", + "Set a new account password...": "הגדר סיסמא חדשה לחשבון...", + "Phone numbers": "מספרי טלפון", + "Email addresses": "כתובות דוא\"ל", + "Your password was successfully changed. You will not receive push notifications on other sessions until you log back in to them": "הסיסמה שלך שונתה בהצלחה. לא תקבל התראות דחיפה בפגישות אחרות עד שתתחבר אליהם שוב", + "Success": "הצלחה", + "Flair": "כשרון", + "Appearance Settings only affect this %(brand)s session.": "התאמת תצוגה משפיעה רק על התחברות זו %(brand)s.", + "Customise your appearance": "התאם את התצוגה שלך", + "Set the name of a font installed on your system & %(brand)s will attempt to use it.": "הגדר את שם הגופן המותקן במערכת שלך ו- %(brand)s ים ינסו להשתמש בו.", + "Show advanced": "הצג מתקדם", + "Hide advanced": "הסתר מתקדם", + "Modern": "מודרני", + "Compact": "ממוזער", + "Message layout": "תבנית הודעה", + "Theme": "ערכת נושא", + "Add theme": "הוסף ערכת נושא חדשה", + "Custom theme URL": "כתובת ערכת נושא מותאמת אישית", + "Theme added!": "ערכת נושא התווספה בהצלחה!", + "Error downloading theme information.": "שגיאה בהורדת מידע אודות ערכת הנושא.", + "Invalid theme schema.": "סכמת תבנית לא תקינה.", + "Use between %(min)s pt and %(max)s pt": "השתמש בין %(min)s ל %(max)s נקודות", + "Custom font size can only be between %(min)s pt and %(max)s pt": "גודל גופן מותאם אישית יכול להיות רק בין %(min)s ל %(max)s נקודות", + "Size must be a number": "הגדול חייב להיות מספר", + "Hey you. You're the best!": "היי, אתם אלופים!", + "Check for update": "בדוק עדכונים", + "New version available. Update now.": "גרסא חדשה קיימת. שדרגו עכשיו.", + "Integration Managers receive configuration data, and can modify widgets, send room invites, and set power levels on your behalf.": "מנהלי שילוב מקבלים נתוני תצורה ויכולים לשנות ווידג'טים, לשלוח הזמנות לחדר ולהגדיר רמות הספק מטעמכם.", + "Manage integrations": "נהל שילובים", + "Use an Integration Manager to manage bots, widgets, and sticker packs.": "השתמש במנהל שילוב לניהול בוטים, ווידג'טים וחבילות מדבקות.", + "Use an Integration Manager (%(serverName)s) to manage bots, widgets, and sticker packs.": "השתמש במנהל שילוב (%(serverName)s) לניהול בוטים, ווידג'טים וחבילות מדבקות.", + "Change": "שנה", + "Enter a new identity server": "הכנס שרת הזדהות חדש", + "Do not use an identity server": "אל תשתמש בשרת הזדהות", + "Using an identity server is optional. If you choose not to use an identity server, you won't be discoverable by other users and you won't be able to invite others by email or phone.": "השימוש בשרת זהות הוא אופציונלי. אם תבחר לא להשתמש בשרת זהות, משתמשים אחרים לא יוכלו לגלות ולא תוכל להזמין אחרים בדוא\"ל או בטלפון.", + "Disconnecting from your identity server will mean you won't be discoverable by other users and you won't be able to invite others by email or phone.": "ההתנתקות משרת הזהות שלך פירושה שלא תגלה משתמשים אחרים ולא תוכל להזמין אחרים בדוא\"ל או בטלפון.", + "You are not currently using an identity server. To discover and be discoverable by existing contacts you know, add one below.": "אינך משתמש כרגע בשרת זהות. כדי לגלות ולהיות נגלים על ידי אנשי קשר קיימים שאתה מכיר, הוסף אחד למטה.", + "Identity Server": "שרת הזדהות", + "If you don't want to useto discover and be discoverable by existing contacts you know, enter another identity server below.": "אם אינך רוצה להשתמש ב- כדי לגלות ולהיות נגלה על ידי אנשי קשר קיימים שאתה מכיר, הזן שרת זהות אחר למטה.", + "You are currently using to discover and be discoverable by existing contacts you know. You can change your identity server below.": "אתה משתמש כרגע ב די לגלות ולהיות נגלה על ידי אנשי קשר קיימים שאתה מכיר. תוכל לשנות את שרת הזהות שלך למטה.", + "Identity Server (%(server)s)": "שרת הזדהות (%(server)s)", + "Go back": "חזרה", + "We recommend that you remove your email addresses and phone numbers from the identity server before disconnecting.": "אנו ממליצים שתסיר את כתובות הדוא\"ל ומספרי הטלפון שלך משרת הזהות לפני שתתנתק.", + "You are still sharing your personal data on the identity server .": "אתה עדיין משתף את הנתונים האישיים שלך בשרת הזהות .", + "Disconnect anyway": "התנתק בכל מקרה", + "wait and try again later": "המתינו ונסו שוב מאוחר יותר", + "contact the administrators of identity server ": "צרו קשר עם מנהל שרת ההזדהות ", + "check your browser plugins for anything that might block the identity server (such as Privacy Badger)": "בדוק בתוספי הדפדפן שלך כל דבר העלול לחסום את שרת הזהות (כגון תגית פרטיות)", + "You should:": "עליכם:", + "You should remove your personal data from identity server before disconnecting. Unfortunately, identity server is currently offline or cannot be reached.": "עליך להסיר את הנתונים האישיים שלך משרת הזהות לפני ההתנתקות. למרבה הצער, שרת זהות נמצא במצב לא מקוון או שאי אפשר להגיע אליו.", + "Disconnect": "התנתק", + "Disconnect from the identity server ?": "התנק משרת ההזדהות ?", + "Disconnect identity server": "נתק שרת הזדהות", + "The identity server you have chosen does not have any terms of service.": "לשרת הזהות שבחרת אין תנאי שירות.", + "Terms of service not accepted or the identity server is invalid.": "תנאי השרות לא התקבלו או ששרת הזיהוי אינו תקין.", + "Disconnect from the identity server and connect to instead?": "התנתק משרת זיהוי עכשווי והתחבר אל במקום?", + "Change identity server": "שנה כתובת של שרת הזיהוי", + "Checking server": "בודק שרת", + "Could not connect to Identity Server": "לא ניתן להתחבר אל שרת הזיהוי", + "Not a valid Identity Server (status code %(code)s)": "שרת זיהוי לא מאושר(קוד סטטוס %(code)s)", + "Identity Server URL must be HTTPS": "הזיהוי של כתובת השרת חייבת להיות מאובטחת ב- HTTPS", + "not ready": "לא מוכן", + "ready": "מוכן", + "Secret storage:": "אחסון סודי:", + "in account data": "במידע בחשבון", + "Secret storage public key:": "מקום שמירה סודי של המפתח הציבורי:", + "Backup key cached:": "גבה מפתח במטמון:", + "not stored": "לא שמור", + "Backup key stored:": "גבה מפתח שמור:", + "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Recovery Key.": "גבה את מפתחות ההצפנה שלך עם נתוני חשבונך במקרה שתאבד גישה למפגשים שלך. המפתחות שלך מאובטחים באמצעות מפתח שחזור ייחודי.", + "unexpected type": "סוג בלתי צפוי", + "well formed": "מעוצב היטב", + "Back up your keys before signing out to avoid losing them.": "גבה את המפתחות שלך לפני היציאה כדי להימנע מלאבד אותם.", + "Leave Room": "עזוב חדר", + "Settings": "הגדרות", + "Favourited": "מועדפים", + "Forget Room": "שכח חדר", + "Notification options": "אפשרויות התרעות", + "Mentions & Keywords": "אזכורים ומילות מפתח", + "Use default": "השתמש בברירת מחדל", + "Show %(count)s more|one": "הצג עוד %(count)s", + "Show %(count)s more|other": "הצג עוד %(count)s", + "Jump to first invite.": "קפצו להזמנה ראשונה.", + "Jump to first unread room.": "קפצו לחדר הראשון שלא נקרא.", + "List options": "רשימת אפשרויות", + "A-Z": "א-ת", + "Activity": "פעילות", + "Sort by": "סדר לפי", + "Show previews of messages": "הצג תצוגה מקדימה של הודעות", + "Show rooms with unread messages first": "הצג תחילה חדרים עם הודעות שלא נקראו", + "Appearance": "מראה", + "%(errcode)s was returned while trying to access the room. If you think you're seeing this message in error, please submit a bug report .": "%(errcode)s הוחזר בזמן שניסה לגשת לחדר. אם אתה חושב שאתה רואה הודעה זו בטעות, אנאהגש דוח באגים .", + "Try again later, or ask a room admin to check if you have access.": "נסה שוב מאוחר יותר, או בקש ממנהל החדר לבדוק אם יש לך גישה.", + "%(roomName)s is not accessible at this time.": "לא ניתן להכנס אל %(roomName)s בזמן הזה.", + "This room doesn't exist. Are you sure you're at the right place?": "החדר הזה לא קיים. האם אתה בטוח שאתה נמצא במקום הנכון?", + "%(roomName)s does not exist.": "%(roomName)s לא קיים.", + "%(roomName)s can't be previewed. Do you want to join it?": "לא ניתן לצפות ב־%(roomName)s. האם תרצו להצטרף?", + "You're previewing %(roomName)s. Want to join it?": "אתם צופים ב־%(roomName)s. האם תרצו להצטרף?", + "Reject & Ignore user": "דחה והתעלם ממשתמש זה", + "invited you": " הזמין אתכם", + "Do you want to join %(roomName)s?": "האם אתם מעוניינים להצטרף אל %(roomName)s?", + "Start chatting": "החלו לדבר", + " wants to chat": " מעוניין לדבר איתכם", + "Do you want to chat with %(user)s?": "האם אתם רוצים לדבר עם %(user)s?", + "Share this email in Settings to receive invites directly in %(brand)s.": "שתף דוא\"ל זה בהגדרות כדי לקבל הזמנות ישירות ב-%(brand)s.", + "Use an identity server in Settings to receive invites directly in %(brand)s.": "השתמש בשרת זהות בהגדרות כדי לקבל הזמנות ישירות ב-%(brand)s.", + "This invite to %(roomName)s was sent to %(email)s": "הזמנה לחדר %(roomName)s נשלחה לכתובת %(email)s", + "Link this email with your account in Settings to receive invites directly in %(brand)s.": "קשר דוא\"ל זה לחשבונך בהגדרות כדי לקבל הזמנות ישירות ב-%(brand)s.", + "This invite to %(roomName)s was sent to %(email)s which is not associated with your account": "הזמנה זו ל-%(roomName)s נשלחה ל-%(email)s שאינה משויכת לחשבונך", + "Join the discussion": "הצטרף אל הדיון", + "You can still join it because this is a public room.": "אתה עדיין יכול להצטרף אליו כי זה חדר ציבורי.", + "Try to join anyway": "נסה להצטרף בכל מקרה", + "You can only join it with a working invite.": "אתה יכול להצטרף אליו רק עם הזמנה עובדת.", + "An error (%(errcode)s) was returned while trying to validate your invite. You could try to pass this information on to a room admin.": "שגיאה (%(errcode)s) הוחזרה בעת ניסיון לאמת את ההזמנה שלך. אתה יכול לנסות להעביר מידע זה למנהל חדר.", + "Something went wrong with your invite to %(roomName)s": "משהו השתבש עם ההזמנה שלכם אל חדר %(roomName)s", + "You were banned from %(roomName)s by %(memberName)s": "נחסמתם מ-%(roomName)s על ידי %(memberName)s", + "Re-join": "הצטרפות מחדש", + "Forget this room": "שכח חדר זה", + "Reason: %(reason)s": "סיבה: %(reason)s", + "You were kicked from %(roomName)s by %(memberName)s": "אתם נבעטתם מ-%(roomName)s על ידי %(memberName)s", + "Are you sure you want to leave the room '%(roomName)s'?": "האם אתה בטוח שברצונך לעזוב את החדר '%(roomName)s'?", + "This room is not public. You will not be able to rejoin without an invite.": "חדר זה אינו ציבורי. לא תוכל להצטרף שוב ללא הזמנה.", + "You do not have permission to create rooms in this community.": "אין לך הרשאה ליצור חדרים בקהילה זו.", + "Cannot create rooms in this community": "לא ניתן ליצור חדרים בקהילה זו", + "Failed to reject invitation": "דחיית ההזמנה נכשלה", + "Explore rooms": "שיטוט בחדרים", + "Create a Group Chat": "צור צ'אט קבוצתי", + "Explore Public Rooms": "חקור חדרים ציבוריים", + "Send a Direct Message": "שלח הודעה ישירה", + "Liberate your communication": "שחררו את התקשורת שלכם", + "Welcome to %(appName)s": "ברוכים הבאים אל %(appName)s", + "Now, let's help you get started": "עכשיו, בואו נעזור לכם להתחיל", + "Welcome %(name)s": "ברוכים הבאים %(name)s", + "Add a photo so people know it's you.": "הוסף תמונה כדי שאנשים יידעו שאתה זה.", + "Great, that'll help people know it's you": "נהדר, זה יעזור לאנשים לדעת שזה אתה", + "Failed to load %(groupId)s": "טעינת %(groupId)s נכשלה", + "This homeserver does not support communities": "שרת בית זה אינו תומך בקהילות", + "Community %(groupId)s not found": "קהילת %(groupId)s לא נמצאה", + "Description": "תאור", + "Upload avatar": "העלה אוואטר", + "Long Description (HTML)": "תאור ארוך (HTML)", + "Your community hasn't got a Long Description, a HTML page to show to community members.
Click here to open settings and give it one!": "לקהילה שלך אין תיאור ארוך, דף HTML להצגה בפני חברי הקהילה.
לחץ כאן כדי לפתוח הגדרות ולתת לו אחת!", + "Everyone": "כולם", + "Who can join this community?": "מי יכולים להצטרף לקהילה זו?", + "You are a member of this community": "אתם חברים בקהילה זו", + "You are an administrator of this community": "אתם המנהלים של קהילה זו", + "Leave this community": "עזוב קהילה זו", + "Join this community": "הצטרפות לקהילה זו", + "%(inviter)s has invited you to join this community": "%(inviter)s הזמין אותך להצטרף לקהילה זו", + "Featured Users:": "משתמשים מומלצים:", + "Featured Rooms:": "חדרים מומלצים:", + "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "חדרים אלה מוצגים בפני חברי הקהילה בדף הקהילה. חברי הקהילה יכולים להצטרף לחדרים על ידי לחיצה עליהם.", + "Changes made to your communityname andavatar might not be seen by other users for up to 30 minutes.": "שינויים שבוצעו בקהילתךשם וב-הדמות ייתכן שלא יופיעו על ידי משתמשים אחרים למשך עד 30 דקות.", + "Want more than a community? Get your own server": "רוצה יותר מקהילה? קבל שרת משלך ", + "Community Settings": "הגדרות קהילה", + "Unable to leave community": "לא ניתן לעזוב את הקהילה", + "Leave %(groupName)s?": "עזוב את %(groupName)s?", + "Leave Community": "עזוב קהילה", + "You are an administrator of this community. You will not be able to rejoin without an invite from another administrator.": "אתה מנהל קהילה זו. לא תוכל להצטרף מחדש ללא הזמנה ממנהל אחר.", + "Unable to join community": "לא ניתן להצטרף לקהילה", + "Unable to accept invite": "לא ניתן לקבל הזמנה", + "Failed to update community": "עדכון הקהילה נכשל", + "Failed to upload image": "העלאת התמונה נכשלה", + "The user '%(displayName)s' could not be removed from the summary.": "לא ניתן היה להסיר את המשתמש '%(displayName)s' מהסיכום.", + "Failed to remove a user from the summary of %(groupId)s": "הסרת משתמש מהסיכום של %(groupId)s נכשלה", + "Add a User": "הוסף משתמש", + "Failed to add the following users to the summary of %(groupId)s:": "נכשל הוספת המשתמשים הבאים לסיכום של %(groupId)s:", + "Who would you like to add to this summary?": "את מי תרצה להוסיף לסיכום זה?", + "Add users to the community summary": "הוסף משתמשים לסיכום הקהילה", + "The room '%(roomName)s' could not be removed from the summary.": "לא ניתן היה להסיר את החדר '%(roomName)s' מהסיכום.", + "Failed to remove the room from the summary of %(groupId)s": "הסרת החדר נכשלה מהסיכום של %(groupId)s", + "Add a Room": "הוסף חדר", + "Failed to add the following rooms to the summary of %(groupId)s:": "נכשלה הוספת החדרים הבאים לסיכום של %(groupId)s:", + "Add to summary": "הוסף לסיכום", + "Which rooms would you like to add to this summary?": "אילו חדרים תרצה להוסיף לסיכום זה?", + "Add rooms to the community summary": "הוסף חדרים לסיכום הקהילה", + "HTML for your community's page
\n\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n\n You can even add images with Matrix URLs \n
\n": "HTML לדף הקהילה שלך
\n\n השתמש בתיאור הארוך כדי להציג חברים חדשים בקהילה, או הפץ\n כמה קישורים חשובים\n
\n\n אתה יכול אפילו להוסיף תמונות עם כתובות אתרי מטריצה \n
\n", + "Create community": "צור קהילה", + "Communities": "קהילות", + "Attach files from chat or just drag and drop them anywhere in a room.": "צרף קבצים מצ'ט או פשוט גרור ושחרר אותם לכל מקום בחדר.", + "No files visible in this room": "אין קבצים גלויים בחדר זה", + "You must join the room to see its files": "עליך להצטרף לחדר כדי לראות את הקבצים שלו", + "You must register to use this functionality": "עליך להירשם כדי להשתמש בפונקציונליות זו", + "Couldn't load page": "לא ניתן לטעון את הדף", + "Sign in with SSO": "היכנס באמצעות SSO", + "Use email to optionally be discoverable by existing contacts.": "השתמש באימייל כדי שאפשר יהיה למצוא אותו על ידי אנשי קשר קיימים.", + "Use email or phone to optionally be discoverable by existing contacts.": "השתמש בדוא\"ל או בטלפון בכדי שאפשר יהיה לגלות אותם על ידי אנשי קשר קיימים.", + "Add an email to be able to reset your password.": "הוסף דוא\"ל כדי שתוכל לאפס את הסיסמה שלך.", + "Phone (optional)": "טלפון (לא חובה)", + "Use lowercase letters, numbers, dashes and underscores only": "השתמש באותיות קטנות, מספרים, מקפים וקווים תחתונים בלבד", + "Enter phone number (required on this homeserver)": "הזן מספר טלפון (חובה בשרת בית זה)", + "Other users can invite you to rooms using your contact details": "משתמשים אחרים יכולים להזמין אותך לחדרים באמצעות פרטי יצירת הקשר שלך", + "Enter email address (required on this homeserver)": "הזן כתובת דוא\"ל (חובה בשרת הבית הזה)", + "Use an email address to recover your account": "השתמש בכתובת דוא\"ל לשחזור חשבונך", + "Sign in": "כניסה", + "Sign in with": "כניסה עם", + "Forgot password?": "שכחנו סיסמה?", + "Phone": "טלפון", + "Username": "שם משתמש", + "Email": "דוא\"ל", + "That phone number doesn't look quite right, please check and try again": "מספר הטלפון הזה לא נראה בסדר, אנא בדוק ונסה שוב", + "Enter phone number": "הזן טלפון", + "Enter email address": "הזן כתובת דוא\"ל", + "Enter username": "הזן שם משתמש", + "Keep going...": "המשיכו...", + "Password is allowed, but unsafe": "סיסמא מותרת, אך אינה בטוחה", + "Nice, strong password!": "יפה, סיסמה חזקה!", + "Enter password": "הזן סיסמה", + "Start authentication": "התחל אימות", + "Submit": "הגש", + "Code": "קוד", + "Please enter the code it contains:": "אנא הכנס את הקוד שהוא מכיל:", + "A text message has been sent to %(msisdn)s": "הודעת טקסט נשלחה אל %(msisdn)s", + "Token incorrect": "אסימון שגוי", + "Open the link in the email to continue registration.": "פתח את הקישור בדוא\"ל להמשך ההרשמה.", + "A confirmation email has been sent to %(emailAddress)s": "דוא\"ל אישור נשלח אל %(emailAddress)s", + "Please review and accept the policies of this homeserver:": "אנא עיין וקבל את המדיניות של שרת בית זה:", + "Please review and accept all of the homeserver's policies": "אנא עיין וקבל את כל המדיניות של שרת הבית", + "Missing captcha public key in homeserver configuration. Please report this to your homeserver administrator.": "חסר מפתח ציבורי של captcha בתצורת שרת הבית. אנא דווח על כך למנהל שרת הבית שלך.", + "Password": "סיסמה", + "Confirm your identity by entering your account password below.": "אשר את זהותך על ידי הזנת סיסמת החשבון שלך למטה.", + "Country Dropdown": "נפתח במדינה", + "This homeserver would like to make sure you are not a robot.": "שרת בית זה רוצה לוודא שאתה לא רובוט.", + "User Status": "סטטוס משתמש", + "Away": "מרוחק", + "This room is public": "חדר זה ציבורי", + "Move right": "הזז ימינה", + "Move left": "הזז שמאלה", + "Revoke permissions": "שלילת הרשאות", + "Remove for everyone": "הסר לכולם", + "Delete widget": "מחק ישומון", + "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "מחיקת יישומון מסירה אותו לכל המשתמשים בחדר זה. האם אתה בטוח שברצונך למחוק את היישומון הזה?", + "Delete Widget": "מחק ישומון", + "Take a picture": "צלם תמונה", + "Set a new status...": "הגדר סטטוס חדש ...", + "Set status": "הגדר סטטוס", + "Update status": "עדכן סטטוס", + "Clear status": "נקה סטטוס", + "Report Content": "דווח על תוכן", + "Collapse Reply Thread": "כווץ התשובה", + "Share Message": "שתף הודעה", + "Share Permalink": "שתף קישור קבוע", + "Resend removal": "שלח את ההסרה מחדש", + "Resend %(unsentCount)s reaction(s)": "שלח שוב תגובות %(unsentCount)s", + "Resend edit": "שלח שוב את העריכה", + "Unable to reject invite": "לא ניתן לדחות את ההזמנה", + "Are you sure you want to reject the invitation?": "האם אתם בטוחים שברצונכם לדחות את ההזמנה?", + "Reject invitation": "דחה הזמנה", + "Hold": "החזק", + "Resume": "תקציר", + "If you've forgotten your recovery key you can ": "אם שכחת את מפתח השחזור שלך, תוכל ", + "Access your secure message history and set up secure messaging by entering your recovery key.": "גש להיסטוריית ההודעות המאובטחות שלך והגדר הודעות מאובטחות על ידי הזנת מפתח השחזור שלך.", + "Warning: You should only set up key backup from a trusted computer.": " אזהרה : עליך להגדיר גיבוי מקשים רק ממחשב מהימן.", + "Not a valid recovery key": "לא מפתח שחזור תקף", + "This looks like a valid recovery key!": "זה נראה כמו מפתח שחזור תקף!", + "Enter recovery key": "הזן מפתח שחזור", + "If you've forgotten your recovery passphrase you canuse your recovery key orset up new recovery options ": "אם שכחת את ביטוי סיסמת ההתאוששות שלך, תוכללהשתמש במפתח השחזור אולהגדיר אפשרויות שחזור חדשות ", + "Access your secure message history and set up secure messaging by entering your recovery passphrase.": "גש להיסטוריית ההודעות המאובטחות שלך והגדר הודעות מאובטחות על ידי הזנת משפט סיסמה לשחזור שלך.", + "Warning: you should only set up key backup from a trusted computer.": " אזהרה : עליך להגדיר גיבוי מקשים רק ממחשב מהימן.", + "Enter recovery passphrase": "הזן ביטוי סיסמה לשחזור", + "Successfully restored %(sessionCount)s keys": "שוחזר בהצלחה %(sessionCount)s מפתחות", + "Failed to decrypt %(failedCount)s sessions!": "הפענוח של %(failedCount)s שניות נכשל!", + "Keys restored": "מפתחות משוחזרים", + "No backup found!": "לא נמצא גיבוי!", + "Unable to restore backup": "לא ניתן לשחזר את הגיבוי", + "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.": "לא ניתן היה לפענח גיבוי עם ביטוי סיסמה לשחזור זה: ודא שהזנת את משפט סיסמת השחזור הנכון.", + "Incorrect recovery passphrase": "משפט סיסמה שגוי לשחזור", + "Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.": "לא ניתן היה לפענח גיבוי באמצעות מפתח שחזור זה: ודא שהזנת את מפתח השחזור הנכון.", + "Recovery key mismatch": "אי התאמה בין מפתח השחזור", + "Unable to load backup status": "לא ניתן לטעון את מצב הגיבוי", + "%(completed)s of %(total)s keys restored": "%(completed)s שניות מתוך %(total)s מפתחות שוחזרו", + "Fetching keys from server...": "מאחזר מפתחות מהשרת ...", + "Restoring keys from backup": "שחזור מפתחות מגיבוי", + "Retry": "נסה שוב", + "Unable to set up keys": "לא ניתן להגדיר מקשים", + "Click the button below to confirm setting up encryption.": "לחץ על הלחצן למטה כדי לאשר את הגדרת ההצפנה.", + "Confirm encryption setup": "אשר את הגדרת ההצפנה", + "Clear cross-signing keys": "נקה מפתחות חתימה צולבת", + "Deleting cross-signing keys is permanent. Anyone you have verified with will see security alerts. You almost certainly don't want to do this, unless you've lost every device you can cross-sign from.": "מחיקת מפתחות חתימה צולבת הינה קבועה. כל מי שאימתת איתו יראה התראות אבטחה. כמעט בוודאות אינך רוצה לעשות זאת, אלא אם איבדת כל מכשיר ממנו תוכל לחתום.", + "Destroy cross-signing keys?": "להרוס מפתחות חתימה צולבת?", + "Use your Security Key to continue.": "השתמש במפתח האבטחה שלך כדי להמשיך.", + "Security Key": "מפתח אבטחה", + "Enter your Security Phrase or to continue.": "הזן את ביטוי האבטחה שלך או כדי להמשיך.", + "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.": "אין אפשרות לגשת לאחסון סודי. אנא ודא שהזנת את משפט סיסמת השחזור הנכון.", + "Security Phrase": "ביטוי אבטחה", + "Invalid Recovery Key": "מפתח שחזור לא תקין", + "Wrong Recovery Key": "מפתח שחזור שגוי", + "Looks good!": "נראה טוב!", + "Wrong file type": "סוג קובץ שגוי", + "Deny": "סרב", + "Allow": "אפשר", + "A widget located at %(widgetUrl)s would like to verify your identity. By allowing this, the widget will be able to verify your user ID, but not perform actions as you.": "יישומון שנמצא ב- %(widgetUrl)s מעוניין לאמת את זהותך. בכך שתאפשר זאת, היישומון יוכל לאמת את מזהה המשתמש שלך, אך לא לבצע פעולות כמוך.", + "A widget would like to verify your identity": "יישומון רוצה לאמת את זהותך", + "Remember my selection for this widget": "זכור את הבחירה שלי עבור יישומון זה", + "Decline All": "סרב להכל", + "Approve": "אישור", + "This widget would like to:": "יישומון זה רוצה:", + "Approve widget permissions": "אשר הרשאות יישומון", + "Verification Request": "בקשת אימות", + "Verify other session": "אמת מושבים אחרים", + "Upload Error": "שגיאת העלאה", + "Cancel All": "בטל הכל", + "Upload %(count)s other files|one": "העלה %(count)s של קובץ אחר", + "Upload %(count)s other files|other": "העלה %(count)s של קבצים אחרים", + "Some files are too large to be uploaded. The file size limit is %(limit)s.": "חלק מהקבצים גדולים מדי כדי להעלות אותם. מגבלת גודל הקובץ היא %(limit)s.", + "These files are too large to upload. The file size limit is %(limit)s.": "קבצים אלה גדולים מדי להעלאה. מגבלת גודל הקובץ היא %(limit)s.", + "This file is too large to upload. The file size limit is %(limit)s but this file is %(sizeOfThisFile)s.": "קובץ זה גדול מדי להעלאה. מגבלת גודל הקובץ היא %(limit)s אך קובץ זה הוא %(sizeOfThisFile)s.", + "Upload all": "מעלה הכל", + "Upload files (%(current)s of %(total)s)": "מעלה קבצים (%(current)s מ %(total)s)", + "Upload files": "מעלה קבצים", + "Next": "הבא", + "Document": "מסמך", + "Summary": "תקציר", + "Service": "שֵׁרוּת", + "To continue you need to accept the terms of this service.": "כדי להמשיך עליך לקבל את תנאי השירות הזה.", + "Terms of Service": "תנאי השירות", + "Use bots, bridges, widgets and sticker packs": "השתמש בבוטים, גשרים, ווידג'טים וחבילות מדבקות", + "Be found by phone or email": "להימצא בטלפון או בדוא\"ל", + "Find others by phone or email": "מצא אחרים בטלפון או בדוא\"ל", + "Integration Manager": "מנהל אינטגרציה", + "Your browser likely removed this data when running low on disk space.": "סביר להניח שהדפדפן שלך הסיר נתונים אלה כאשר שטח הדיסק שלהם נמוך.", + "Some session data, including encrypted message keys, is missing. Sign out and sign in to fix this, restoring keys from backup.": "חלק מנתוני ההפעלה, כולל מפתחות הודעות מוצפנים, חסרים. צא והיכנס כדי לתקן זאת, ושחזר את המפתחות מהגיבוי.", + "Missing session data": "חסרים נתוני הפעלות", + "To help us prevent this in future, please send us logs.": "כדי לעזור לנו למנוע זאת בעתיד, אנא שלחו לנו יומנים .", + "Command Help": "עזרה לפיקוד", + "Copy": "העתק", + "Link to selected message": "קישור להודעה שנבחרה", + "Share Room Message": "שתף הודעה בחדר", + "Share Community": "שתף קהילה", + "Share User": "שתף משתמש", + "Link to most recent message": "קישור להודעה האחרונה", + "Share Room": "שתף חדר", + "This will allow you to reset your password and receive notifications.": "זה יאפשר לך לאפס את הסיסמה שלך ולקבל התראות.", + "Please check your email and click on the link it contains. Once this is done, click continue.": "אנא בדוק את הדוא\"ל שלך ולחץ על הקישור שהוא מכיל. לאחר שתסיים, לחץ על המשך.", + "Verification Pending": "אימות בהמתנה", + "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "ניקוי שטח האחסון של הדפדפן עשוי לפתור את הבעיה, אך ינתק אתכם ויגרום לכל היסטוריית צ'אט מוצפנת להיות בלתי קריאה.", + "If you have previously used a more recent version of %(brand)s, your session may be incompatible with this version. Close this window and return to the more recent version.": "אם השתמשת בעבר בגרסה עדכנית יותר של %(brand)s, ייתכן שההפעלה שלך אינה תואמת לגרסה זו. סגרו חלון זה וחזרו לגרסה העדכנית יותר.", + "We encountered an error trying to restore your previous session.": "נתקלנו בשגיאה בניסיון לשחזר את ההפעלה הקודמת שלך.", + "Unable to restore session": "לא ניתן לשחזר את ההפעלה", + "Refresh": "רענן", + "Send Logs": "שלח יומנים", + "Clear Storage and Sign Out": "נקה אחסון והתנתק", + "Sign out and remove encryption keys?": "להתנתק ולהסיר מפתחות הצפנה?", + "About homeservers": "אודות שרתי בית", + "Learn more": "למד עוד", + "Use your preferred Matrix homeserver if you have one, or host your own.": "השתמש בשרת הבית המועדף על מטריקס אם יש לך כזה, או מארח משלך.", + "Other homeserver": "שרת בית אחר", + "We call the places where you can host your account ‘homeservers’.": "אנו מכנים את המקומות שבהם אתה יכול לארח את חשבונך 'שרתים ביתיים'.", + "Sign into your homeserver": "היכנס לשרת הבית שלך", + "Matrix.org is the biggest public homeserver in the world, so it’s a good place for many.": "Matrix.org היא שרת הבית הציבורי הגדול בעולם, ולכן זה מקום טוב עבור רבים.", + "Specify a homeserver": "ציין שרת בית", + "Invalid URL": "כתובת אתר לא חוקית", + "Unable to validate homeserver": "לא ניתן לאמת את שרת הבית", + "Recent changes that have not yet been received": "שינויים אחרונים שטרם התקבלו", + "The server is not configured to indicate what the problem is (CORS).": "השרת אינו מוגדר לציין מהי הבעיה (CORS).", + "A connection error occurred while trying to contact the server.": "אירעה שגיאת חיבור בעת ניסיון ליצור קשר עם השרת.", + "Your area is experiencing difficulties connecting to the internet.": "האזור שלך חווה קשיים בחיבור לאינטרנט.", + "The server has denied your request.": "השרת דחה את בקשתך.", + "The server is offline.": "השרת לא מקוון.", + "A browser extension is preventing the request.": "סיומת דפדפן מונעת את הבקשה.", + "Your firewall or anti-virus is blocking the request.": "חומת האש או האנטי-וירוס שלך חוסמים את הבקשה.", + "The server (%(serverName)s) took too long to respond.": "לשרת (%(serverName)s) לקח יותר מדי זמן להגיב.", + "Your server isn't responding to some of your requests. Below are some of the most likely reasons.": "השרת שלך לא מגיב לחלק מהבקשות שלך. להלן כמה מהסיבות הסבירות ביותר.", + "Server isn't responding": "השרת לא מגיב", + "You're all caught up.": "כולכם נתפסתם.", + "You'll upgrade this room fromto .": "תשדרג את החדר הזה מ- ל- .", + "This usually only affects how the room is processed on the server. If you're having problems with your %(brand)s, please report a bug.": "זה בדרך כלל משפיע רק על אופן עיבוד החדר בשרת. אם אתה נתקל בבעיות באחוזים שלך %(brand)s, אנא דווח על באג .", + "Upgrading a room is an advanced action and is usually recommended when a room is unstable due to bugs, missing features or security vulnerabilities.": "שדרוג חדר הוא פעולה מתקדמת ומומלץ בדרך כלל כאשר החדר אינו יציב עקב באגים, תכונות חסרות או פרצות אבטחה.", + "Upgrade public room": "שדרג חדר ציבורי", + "Upgrade private room": "שדרג חדר פרטי", + "Automatically invite users": "הזמן משתמשים באופן אוטומטי", + "Put a link back to the old room at the start of the new room so people can see old messages": "החזירו קישור לחדר הישן בתחילת החדר החדש כדי שאנשים יוכלו לראות הודעות ישנות", + "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "עצור מהמשתמשים לדבר בגרסה הישנה של החדר, ושלח הודעה הממליצה למשתמשים לעבור לחדר החדש", + "Update any local room aliases to point to the new room": "עדכן את כינויי החדר המקומיים בכדי להצביע על החדר החדש", + "Create a new room with the same name, description and avatar": "צור חדר חדש עם אותו שם, תיאור ואווטאר", + "Upgrading this room requires closing down the current instance of the room and creating a new room in its place. To give room members the best possible experience, we will:": "שדרוג חדר זה מחייב סגירת המופע הנוכחי של החדר ויצירת חדר חדש במקומו. כדי להעניק לחברי החדר את החוויה הטובה ביותר האפשרית, אנו:", + "Upgrade Room Version": "גרסת חדר שדרוג", + "Upgrade this room to version %(version)s": "שדרג חדר זה לגרסה %(version)s", + "The room upgrade could not be completed": "לא ניתן היה להשלים את שדרוג החדר", + "Failed to upgrade room": "שדרוג החדר נכשל", + "Room Settings - %(roomName)s": "הגדרות חדר - %(roomName)s", + "Send report": "שלח דיווח", + "Reporting this message will send its unique 'event ID' to the administrator of your homeserver. If messages in this room are encrypted, your homeserver administrator will not be able to read the message text or view any files or images.": "דיווח על הודעה זו ישלח את 'מזהה האירוע' הייחודי למנהל שרת הבית שלך. אם הודעות בחדר זה מוצפנות, מנהל שרת הבית שלך לא יוכל לקרוא את טקסט ההודעה או להציג קבצים או תמונות.", + "Report Content to Your Homeserver Administrator": "דווח על תוכן למנהל שרת הבית שלך", + "Please fill why you're reporting.": "אנא מלאו מדוע אתם מדווחים.", + "Email (optional)": "דוא\"ל (לא חובה)", + "Just a heads up, if you don't add an email and forget your password, you could permanently lose access to your account.": "רק קדימה, אם לא תוסיף דוא\"ל ושכחת את הסיסמה שלך, אתה יכול לאבד לצמיתות את הגישה לחשבונך .", + "Continuing without email": "ממשיך ללא דוא\"ל", + "Doesn't look like a valid email address": "לא נראה כמו כתובת דוא\"ל תקפה", + "This wasn't me": "זה לא הייתי אני", + "If you didn’t sign in to this session, your account may be compromised.": "אם לא נכנסת למפגש זה, ייתכן שחשבונך נפגע.", + "Use this session to verify your new one, granting it access to encrypted messages:": "השתמש בפגישה זו כדי לאמת את הפגישה החדשה שלך, והעניק לה גישה להודעות מוצפנות:", + "New session": "מושב חדש", + "We recommend you change your password and recovery key in Settings immediately": "אנו ממליצים לך לשנות את הסיסמה ומפתח השחזור שלך בהגדרות באופן מיידי", + "The internet connection either session is using": "חיבור האינטרנט או כל מושב משתמש", + "This session, or the other session": "המושב הזה או המושב האחר", + "Your password": "הסיסמה שלכם", + "Your account is not secure": "חשבונכם אינו מאובטח", + "Data on this screen is shared with %(widgetDomain)s": "הנתונים על המסך הזה משותפים עם %(widgetDomain)s", + "Modal Widget": "יישומון מודאלי", + "Message edits": "עריכת הודעות", + "Your homeserver doesn't seem to support this feature.": "נראה ששרת הבית שלך אינו תומך בתכונה זו.", + "Verify session": "אמת מושב", + "If they don't match, the security of your communication may be compromised.": "אם הם לא תואמים, אבטחת התקשורת שלך עלולה להיפגע.", + "Session key": "מפתח מושב", + "Session ID": "זהות מושב", + "Session name": "שם מושב", + "Confirm this user's session by comparing the following with their User Settings:": "אשר את הפעלת המשתמש הזה על ידי השוואה בין הדברים הבאים להגדרות המשתמש שלהם:", + "Confirm by comparing the following with the User Settings in your other session:": "אשר על ידי השוואה בין הדברים הבאים להגדרות המשתמש בפגישה האחרת שלך:", + "Are you sure you want to sign out?": "האם אתה בטוח שברצונך לצאת?", + "You'll lose access to your encrypted messages": "תאבד את הגישה להודעות המוצפנות שלך", + "Manually export keys": "ייצא ידנית מפתחות", + "I don't want my encrypted messages": "אני לא רוצה את ההודעות המוצפנות שלי", + "Start using Key Backup": "התחל להשתמש בגיבוי מקשים", + "Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "הודעות מוצפנות מאובטחות באמצעות הצפנה מקצה לקצה. רק לך ולמקבל / ים יש / ה מקשים לקריאת הודעות אלה.", + "Updating %(brand)s": "מעדכן %(brand)s", + "%(brand)s now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!": "%(brand)s משתמש כעת בזכרון פחות פי 3-5, על ידי טעינת מידע רק על משתמשים אחרים בעת הצורך. אנא המתן בזמן שאנחנו מסתנכרנים מחדש עם השרת!", + "Clear cache and resync": "נקה מטמון וסנכרן מחדש", + "Incompatible local cache": "מטמון מקומי לא תואם", + "If the other version of %(brand)s is still open in another tab, please close it as using %(brand)s on the same host with both lazy loading enabled and disabled simultaneously will cause issues.": "אם הגרסה האחרת של %(brand)s עדיין פתוחה בכרטיסייה אחרת, אנא סגור אותה כשימוש ב-%(brand)s באותו מארח כאשר טעינה עצלה מופעלת וגם מושבתת בו זמנית תגרום לבעיות.", + "You've previously used %(brand)s on %(host)s with lazy loading of members enabled. In this version lazy loading is disabled. As the local cache is not compatible between these two settings, %(brand)s needs to resync your account.": "השתמשת בעבר ב- %(brand)s ב- %(host)s עם טעינה עצלה של חברים מופעלת. בגרסה זו טעינה עצלה מושבתת. מכיוון שהמטמון המקומי אינו תואם בין שתי ההגדרות הללו, %(brand)s צריך לסנכרן מחדש את חשבונך.", + "Signature upload failed": "העלאת החתימה נכשלה", + "Signature upload success": "הצלחה בהעלאת חתימה", + "Unable to upload": "לא ניתן להעלות", + "Cancelled signature upload": "העלאת החתימה בוטלה", + "Upload completed": "העלאה הושלמה", + "%(brand)s encountered an error during upload of:": "%(brand)s נתקל בשגיאה במהלך ההעלאה של:", + "a key signature": "חתימת מפתח", + "a new cross-signing key signature": "חתימת מפתח צולבת חדשה", + "a device cross-signing signature": "חתימה צולבת של התקן", + "a new master key signature": "חתימת מפתח ראשית חדשה", + "Invite someone using their name, username (like ) or share this room.": "הזמינו מישהו המשתמש בשמו, שם המשתמש (כמו ) או שתפו את החדר הזה .", + "Invite someone using their name, email address, username (like ) or share this room.": "הזמינו מישהו המשתמש בשמו, כתובת הדוא\"ל, שם המשתמש (כמו ) או שתפו את החדר הזה .", + "Go": "המשך", + "This won't invite them to %(communityName)s. To invite someone to %(communityName)s, click here": "זה לא יזמין אותם ל- %(communityName)s. להזמנת מישהו ל- %(communityName)s לחץ על כאן ", + "Start a conversation with someone using their name or username (like ).": "התחל שיחה עם מישהו המשתמש בשמו או בשם המשתמש שלו (כמו ).", + "Start a conversation with someone using their name, email address or username (like ).": "התחל שיחה עם מישהו המשתמש בשמו, כתובת הדוא\"ל או שם המשתמש שלו (כמו ).", + "Direct Messages": "הודעות ישירות", + "Recently Direct Messaged": "הודעות ישירות לאחרונה", + "May include members not in %(communityName)s": "עשוי לכלול חברים שאינם ב- %(communityName)s", + "Suggestions": "הצעות", + "Recent Conversations": "שיחות אחרונות", + "The following users might not exist or are invalid, and cannot be invited: %(csvNames)s": "המשתמשים הבאים עשויים שלא להתקיים או שאינם תקפים, ולא ניתן להזמין אותם: %(csvNames)s", + "Failed to find the following users": "מציאת המשתמשים הבאים נכשלה", + "We couldn't invite those users. Please check the users you want to invite and try again.": "לא יכולנו להזמין את המשתמשים האלה. אנא בדוק את המשתמשים שברצונך להזמין ונסה שוב.", + "Something went wrong trying to invite the users.": "משהו השתבש בניסיון להזמין את המשתמשים.", + "We couldn't create your DM. Please check the users you want to invite and try again.": "לא הצלחנו ליצור את ה- DM שלך. אנא בדוק את המשתמשים שברצונך להזמין ונסה שוב.", + "Failed to invite the following users to chat: %(csvUsers)s": "הזמנת המשתמשים הבאים לצ'אט נכשלה: %(csvUsers)s", + "Invite by email": "הזמנה באמצעות דוא\"ל", + "Click the button below to confirm your identity.": "לחץ על הלחצן למטה כדי לאשר את זהותך.", + "Confirm to continue": "אשרו בכדי להמשיך", + "To continue, use Single Sign On to prove your identity.": "כדי להמשיך, השתמש בכניסה יחידה כדי להוכיח את זהותך.", + "Your %(brand)s doesn't allow you to use an Integration Manager to do this. Please contact an admin.": "%(brand)s שלכם אינו מאפשר לך להשתמש במנהל שילוב לשם כך. אנא צרו קשר עם מנהל מערכת.", + "Integrations not allowed": "שילובים אינם מורשים", + "Enable 'Manage Integrations' in Settings to do this.": "אפשר 'ניהול אינטגרציות' בהגדרות כדי לעשות זאת.", + "Integrations are disabled": "שילובים מושבתים", + "Incoming Verification Request": "בקשת אימות נכנסת", + "Waiting for partner to confirm...": "מחכה לשותף שיאשר ...", + "Verifying this device will mark it as trusted, and users who have verified with you will trust this device.": "אימות מכשיר זה יסמן אותו כאמין, ומשתמשים שאימתו איתך יסמכו על מכשיר זה.", + "Verify this device to mark it as trusted. Trusting this device gives you and other users extra peace of mind when using end-to-end encrypted messages.": "אמת את המכשיר הזה כדי לסמן אותו כאמין. אמון במכשיר זה מעניק לך ולמשתמשים אחרים שקט נפשי נוסף בשימוש בהודעות מוצפנות מקצה לקצה.", + "Verifying this user will mark their session as trusted, and also mark your session as trusted to them.": "אימות משתמש זה יסמן את ההפעלה שלו כאמינה, וגם יסמן את ההפעלה שלך כאמינה להם.", + "Verify this user to mark them as trusted. Trusting users gives you extra peace of mind when using end-to-end encrypted messages.": "אמת את המשתמש הזה כדי לסמן אותו כאמין. אמון במשתמשים מעניק לך שקט נפשי נוסף בשימוש בהודעות מוצפנות מקצה לקצה.", + "Send feedback": "שלח משוב", + "PRO TIP: If you start a bug, please submit debug logs to help us track down the problem.": "טיפ למקצוענים: אם אתה מפעיל באג, שלחיומני איתור באגים כדי לעזור לנו לאתר את הבעיה.", + "Please viewexisting bugs on Github first. No match?Start a new one .": "אנא צפה תחילה בבאגים קיימים ב- Github . אין התאמה?התחל חדש .", + "Report a bug": "דיווח על תקלה", + "Feedback": "משוב", + "There are two ways you can provide feedback and help us improve %(brand)s.": "ישנן שתי דרכים בהן ניתן לספק משוב ולעזור לנו לשפר את %(brand)s.", + "Comment": "תגובה", + "Add comment": "הוספת תגובה", + "Please go into as much detail as you like, so we can track down the problem.": "אנא פרט כמה שתרצה, כדי שנוכל לאתר את הבעיה.", + "Tell us below how you feel about %(brand)s so far.": "ספר לנו בהמשך מה אתה מרגיש לגבי %(brand)s עד כה.", + "Rate %(brand)s": "דרג את %(brand)s", + "Feedback sent": "משוב נשלח", + "An error has occurred.": "קרתה שגיאה.", + "Update community": "עדכן קהילה", + "There was an error updating your community. The server is unable to process your request.": "אירעה שגיאה בעדכון הקהילה שלך. השרת אינו יכול לעבד את בקשתך.", + "Transfer": "לְהַעֲבִיר", + "Failed to transfer call": "העברת השיחה נכשלה", + "A call can only be transferred to a single user.": "ניתן להעביר שיחה רק למשתמש יחיד.", + "End": "מקש סוף", + "Space": "מקש רווח", + "Enter": "מקש אנטר", + "Esc": "אסקייפ Esc", + "Page Down": "עמוד למטה", + "Page Up": "גלול למעלה", + "Cancel autocomplete": "בטל השלמה אוטומטית", + "Move autocomplete selection up/down": "הזז את הבחירה בהשלמה אוטומטית למעלה / למטה", + "Go to Home View": "עבור אל תצוגת הבית", + "Toggle this dialog": "החלף דו-שיח זה", + "Toggle right panel": "החלף את החלונית הימנית", + "Activate selected button": "הפעל את הלחצן שנבחר", + "Close dialog or context menu": "סגור את תיבת הדו-שיח או את תפריט ההקשר", + "Toggle the top left menu": "החלף את התפריט הימני העליון", + "Previous/next room or DM": "החדר הקודם / הבא או DM", + "Previous/next unread room or DM": "חדר שלא נקרא / DM הקודם / הבא", + "Clear room list filter field": "נקה את שדה הסינון של רשימת החדרים", + "Expand room list section": "הרחב את קטע רשימת החדרים", + "Collapse room list section": "כווץ את קטע רשימת החדרים", + "Select room from the room list": "בחר חדר מרשימת החדרים", + "Navigate up/down in the room list": "נווט למעלה / למטה ברשימת החדרים", + "Jump to room search": "קפצו לחיפוש חדרים", + "Upload a file": "לעלות קובץ", + "Jump to oldest unread message": "קפיצה להודעה הוותיקה ביותר שלא נקראה", + "Dismiss read marker and jump to bottom": "דחה את סמן הקריאה וקפוץ לתחתית", + "Scroll up/down in the timeline": "גלול למעלה / למטה בציר הזמן", + "Toggle video on/off": "הפעל / כבה את הסרטון", + "Toggle microphone mute": "החלף השתקה של מיקרופון", + "Cancel replying to a message": "בטל מענה להודעה", + "Navigate composer history": "נווט בהיסטוריית המלחין", + "Jump to start/end of the composer": "קפיצה להתחלה / סוף של המלחין", + "Navigate recent messages to edit": "נווט בהודעות אחרונות לעריכה", + "New line": "שורה חדשה", + "Toggle Quote": "גרשיים", + "Toggle Italics": "אותיות נטויות", + "Toggle Bold": "הדגשת אותיות", + "Ctrl": "קונטרול", + "Super": "סופר", + "Shift": "הזזה", + "Alt Gr": "החלפה ל Gr", + "Alt": "החלפה", + "Autocomplete": "השלמה אוטומטית", + "Room List": "רשימת חדרים", + "Calls": "שיחות", + "Navigation": "ניווט", + "Message downloading sleep time(ms)": "הורדת זמן שינה (ms)", + "%(doneRooms)s out of %(totalRooms)s": "%(doneRooms)s מתוך %(totalRooms)s", + "Indexed rooms:": "חדרים רשומים:", + "Indexed messages:": "הודעות באינדקס:", + "Space used:": "שטח משומש:", + "%(brand)s is securely caching encrypted messages locally for them to appear in search results:": "%(brand)s מאחסן באופן מאובטח הודעות מוצפנות באופן מקומי כדי שיופיעו בתוצאות החיפוש:", + "Currently indexing: %(currentRoom)s": "אינדקס כרגע: %(currentRoom)s", + "Not currently indexing messages for any room.": "כרגע לא מוסיף לאינדקס הודעות עבור אף חדר.", + "Disable": "השבת", + "If disabled, messages from encrypted rooms won't appear in search results.": "אם מושבת, הודעות מחדרים מוצפנים לא יופיעו בתוצאות החיפוש.", + "If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "אם לא הסרת את שיטת השחזור, ייתכן שתוקף מנסה לגשת לחשבונך. שנה את סיסמת החשבון שלך והגדר מיד שיטת שחזור חדשה בהגדרות.", + "If you did this accidentally, you can setup Secure Messages on this session which will re-encrypt this session's message history with a new recovery method.": "אם עשית זאת בטעות, באפשרותך להגדיר הודעות מאובטחות בהפעלה זו אשר תצפין מחדש את היסטוריית ההודעות של הפגישה בשיטת שחזור חדשה.", + "This session has detected that your recovery passphrase and key for Secure Messages have been removed.": "בפגישה זו זוהה כי ביטוי הסיסמה והמפתח לשחזור שלך עבור הודעות מאובטחות הוסר.", + "Recovery Method Removed": "שיטת השחזור הוסרה", + "Set up Secure Messages": "הגדר הודעות מאובטחות", + "Go to Settings": "עבור להגדרות", + "This session is encrypting history using the new recovery method.": "הפעלה זו היא הצפנת היסטוריה בשיטת השחזור החדשה.", + "If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "אם לא הגדרת את שיטת השחזור החדשה, ייתכן שתוקף מנסה לגשת לחשבונך. שנה את סיסמת החשבון שלך והגדר מיד שיטת שחזור חדשה בהגדרות.", + "A new recovery passphrase and key for Secure Messages have been detected.": "ביטוי סיסמה ומפתח שחזור חדשים עבור הודעות מאובטחות זוהו.", + "New Recovery Method": "שיטת שחזור חדשה", + "Import": "יבא", + "File to import": "קובץ ליבא", + "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "קובץ הייצוא יהיה מוגן באמצעות משפט סיסמה. עליך להזין כאן את משפט הסיסמה כדי לפענח את הקובץ.", + "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "תהליך זה מאפשר לך לייבא מפתחות הצפנה שייצאת בעבר מלקוח מטריקס אחר. לאחר מכן תוכל לפענח את כל ההודעות שהלקוח האחר יכול לפענח.", + "Import room keys": "יבא מפתחות חדר", + "Export": "יצא", + "Confirm passphrase": "אשר ביטוי", + "Enter passphrase": "הזן ביטוי סיסמה", + "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "הקובץ המיוצא יאפשר לכל מי שיוכל לקרוא אותו לפענח את כל ההודעות המוצפנות שאתה יכול לראות, לכן עליך להקפיד לשמור עליו מאובטח. כדי לעזור בכך, עליך להזין משפט סיסמה למטה, שישמש להצפנת הנתונים המיוצאים. ניתן יהיה לייבא את הנתונים רק באמצעות אותו ביטוי סיסמה.", + "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "תהליך זה מאפשר לך לייצא את המפתחות להודעות שקיבלת בחדרים מוצפנים לקובץ מקומי. לאחר מכן תוכל לייבא את הקובץ ללקוח מטריקס אחר בעתיד, כך שלקוח יוכל גם לפענח הודעות אלה.", + "Export room keys": "ייצא מפתחות לחדר", + "Unknown error": "שגיאה לא ידועה", + "Passphrase must not be empty": "ביטוי הסיסמה לא יכול להיות ריק", + "Passphrases must match": "ביטויי סיסמה חייבים להתאים", + "Unable to set up secret storage": "לא ניתן להגדיר אחסון סודי", + "Save your Security Key": "שמור את מפתח האבטחה שלך", + "Confirm Security Phrase": "אשר את ביטוי האבטחה", + "Set a Security Phrase": "הגדר ביטוי אבטחה", + "Upgrade your encryption": "שדרג את ההצפנה שלך", + "You can also set up Secure Backup & manage your keys in Settings.": "אתה יכול גם להגדיר גיבוי מאובטח ולנהל את המפתחות שלך בהגדרות.", + "If you cancel now, you may lose encrypted messages & data if you lose access to your logins.": "אם תבטל עכשיו, אתה עלול לאבד הודעות ונתונים מוצפנים אם תאבד את הגישה לכניסות שלך.", + "Unable to query secret storage status": "לא ניתן לשאול על סטטוס האחסון הסודי", + "Store your Security Key somewhere safe, like a password manager or a safe, as it’s used to safeguard your encrypted data.": "אחסן את מפתח האבטחה שלך במקום בטוח, כמו מנהל סיסמאות או כספת, מכיוון שהוא משמש כדי להגן על הנתונים המוצפנים שלך.", + "Enter your recovery passphrase a second time to confirm it.": "הזן את משפט סיסמת ההתאוששות שלך בפעם השנייה כדי לאשר זאת.", + "Enter a security phrase only you know, as it’s used to safeguard your data. To be secure, you shouldn’t re-use your account password.": "הזן ביטוי אבטחה רק אתה מכיר, מכיוון שהוא משמש כדי להגן על הנתונים שלך. כדי להיות בטוח, אתה לא צריך להשתמש מחדש בסיסמת החשבון שלך.", + "Upgrade this session to allow it to verify other sessions, granting them access to encrypted messages and marking them as trusted for other users.": "שדרג את ההפעלה הזו כדי לאפשר לה לאמת פעילויות אחרות, הענק להם גישה להודעות מוצפנות וסמן אותן כאמינות עבור משתמשים אחרים.", + "You'll need to authenticate with the server to confirm the upgrade.": "יהיה עליך לבצע אימות מול השרת כדי לאשר את השדרוג.", + "Restore": "לשחזר", + "Restore your key backup to upgrade your encryption": "שחזר את גיבוי המפתח שלך כדי לשדרג את ההצפנה שלך", + "Enter your account password to confirm the upgrade:": "הזן את סיסמת החשבון שלך כדי לאשר את השדרוג:", + "Safeguard against losing access to encrypted messages & data by backing up encryption keys on your server.": "הגן מפני אובדן גישה להודעות ונתונים מוצפנים על ידי גיבוי של מפתחות הצפנה בשרת שלך.", + "Use a secret phrase only you know, and optionally save a Security Key to use for backup.": "השתמש בביטוי סודי רק אתה מכיר, ושמור שמור מפתח אבטחה לשימוש לגיבוי.", + "Enter a Security Phrase": "הזן ביטוי אבטחה", + "We’ll generate a Security Key for you to store somewhere safe, like a password manager or a safe.": "ניצור עבורך מפתח אבטחה לאחסון בטוח, כמו מנהל סיסמאות או כספת.", + "Generate a Security Key": "צור מפתח אבטחה", + "Unable to create key backup": "לא ניתן ליצור גיבוי מפתח", + "Create key backup": "צור מפתח גיבוי", + "Success!": "הצלחה!", + "Starting backup...": "מתחיל גיבוי...", + "Make a copy of your recovery key": "צור עותק של מפתח השחזור שלך", + "Confirm your recovery passphrase": "אשר את משפט סיסמת ההתאוששות שלך", + "Secure your backup with a recovery passphrase": "אבטח את הגיבוי שלך עם משפט סיסמה לשחזור", + "Set up Secure Message Recovery": "הגדר שחזור הודעות מאובטח", + "Without setting up Secure Message Recovery, you won't be able to restore your encrypted message history if you log out or use another session.": "מבלי להגדיר שחזור הודעות מאובטח, לא תוכל לשחזר את היסטוריית ההודעות המוצפנת שלך אם אתה מתנתק או משתמש בהפעלה אחרת.", + "Your keys are being backed up (the first backup could take a few minutes).": "גיבוי המפתחות שלך (הגיבוי הראשון יכול לקחת מספר דקות).", + "Copy it to your personal cloud storage": " העתק אותו לאחסון הענן האישי שלך", + "Save it on a USB key or backup drive": " שמור אותו במפתח USB או בכונן גיבוי", + "Print it and store it somewhere safe": " הדפיסו אותו ואחסנו במקום בטוח", + "Your recovery key is in your Downloads folder.": "מפתח השחזור שלך נמצא בתיקיה הורדות .", + "Your recovery key has been copied to your clipboard, paste it to:": "מפתח השחזור שלך הועתק אל הלוח שלך , הדבק אותו ל:", + "Download": "הורדה", + "Your recovery key": "מפתח ההתאוששות שלך", + "Keep a copy of it somewhere secure, like a password manager or even a safe.": "שמור עותק ממנו במקום מאובטח, כמו מנהל סיסמאות או אפילו כספת.", + "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.": "מפתח השחזור שלך הוא רשת ביטחון - אתה יכול להשתמש בו כדי להחזיר את הגישה להודעות המוצפנות שלך אם תשכח את משפט הסיסמה לשחזור שלך.", + "Repeat your recovery passphrase...": "חזור על משפט סיסמת ההתאוששות שלך ...", + "Please enter your recovery passphrase a second time to confirm.": "אנא הזן את משפט סיסמת השחזור שלך בפעם השנייה כדי לאשר.", + "Go back to set it again.": "חזור להגדיר אותו שוב.", + "That doesn't match.": "זה לא תואם.", + "Use a different passphrase?": "להשתמש בביטוי סיסמה אחר?", + "That matches!": "זה מתאים!", + "Set up with a recovery key": "הגדר עם מפתח שחזור", + "Great! This recovery passphrase looks strong enough.": "גדול! ביטוי סיסמה לשחזור זה נראה מספיק חזק.", + "Enter a recovery passphrase": "הזן ביטוי סיסמה לשחזור", + "For maximum security, this should be different from your account password.": "ליתר ביטחון, זה צריך להיות שונה מסיסמת החשבון שלך.", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a recovery passphrase.": "נאחסן עותק מוצפן של המפתחות שלך בשרת שלנו. אבטח את הגיבוי שלך עם משפט סיסמה לשחזור.", + "User Autocomplete": "השלמה אוטומטית למשתמשים", + "Users": "משתמשים", + "Room Autocomplete": "השלמה אוטומטית לחדרים", + "Notification Autocomplete": "השלמה אוטומטית להתראות", + "Room Notification": "הודעת חדר", + "Notify the whole room": "הודע לכל החדר", + "Emoji Autocomplete": "השלמה אוטומטית של אימוג'י", + "Emoji": "אימוג'י", + "DuckDuckGo Results": "תוצאות DuckDuckGo", + "Results from DuckDuckGo": "תוצאות מ- DuckDuckGo", + "Community Autocomplete": "השלמה אוטומטית של קהילות", + "Command Autocomplete": "השלמה אוטומטית של פקודות", + "Commands": "פקודות", + "Warning: Your personal data (including encryption keys) is still stored in this session. Clear it if you're finished using this session, or want to sign in to another account.": "אזהרה: הנתונים האישיים שלך (כולל מפתחות הצפנה) עדיין נשמרים בפגישה זו. נקה זאת אם סיימת להשתמש בהפעלה זו, או אם ברצונך להיכנס לחשבון אחר.", + "Clear personal data": "נקה מידע אישי", + "You're signed out": "התנתקתם", + "You cannot sign in to your account. Please contact your homeserver admin for more information.": "אינך יכול להיכנס לחשבונך. אנא פנה למנהל שרת הבית שלך למידע נוסף.", + "Sign in and regain access to your account.": "היכנס וקבל שוב גישה לחשבונך.", + "Forgotten your password?": "שכחת את הסיסמה שלך?", + "Enter your password to sign in and regain access to your account.": "הזן את הסיסמה שלך כדי להיכנס לחזרה ולחזור אליה.", + "Regain access to your account and recover encryption keys stored in this session. Without them, you won’t be able to read all of your secure messages in any session.": "השיב שוב גישה לחשבונך ושחזר מפתחות הצפנה המאוחסנים בהפעלה זו. בלעדיהם, לא תוכל לקרוא את כל ההודעות המאובטחות שלך בשום הפעלה.", + "Failed to re-authenticate": "האימות מחדש נכשל", + "Incorrect password": "סיסמה שגויה", + "Failed to re-authenticate due to a homeserver problem": "האימות מחדש נכשל עקב בעיית שרת בית", + "Without completing security on this session, it won’t have access to encrypted messages.": "מבלי להשלים את האבטחה במפגש זה, לא תהיה לו גישה להודעות מוצפנות.", + "Your new session is now verified. Other users will see it as trusted.": "ההפעלה החדשה שלך אומתה. משתמשים אחרים יראו בכך אמין.", + "Your new session is now verified. It has access to your encrypted messages, and other users will see it as trusted.": "ההפעלה החדשה שלך אומתה. יש לו גישה להודעות המוצפנות שלך, ומשתמשים אחרים יראו בכך אמינים.", + "or another cross-signing capable Matrix client": "או לקוח מטריקס אחר עם יכולת חתימה צולבת", + "%(brand)s Android": "%(brand)s אנדרויד", + "%(brand)s iOS": "%(brand)s אפל", + "%(brand)s Desktop": "%(brand)s למחשב דסקטופ", + "%(brand)s Web": "%(brand)s ברשת", + "This requires the latest %(brand)s on your other devices:": "לשם כך נדרשים האחוזים האחרונים %(brand)s במכשירים האחרים שלך:", + "Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.": "אשר את זהותך על ידי אימות התחברות זו מאחד מהפגישות האחרות שלך, והעניק לה גישה להודעות מוצפנות.", + "Use Recovery Key": "השתמש במפתח שחזור", + "Use Recovery Key or Passphrase": "השתמש במפתח השחזור או בביטוי הסיסמה", + "Decide where your account is hosted": "החלט היכן מתארח חשבונך", + "Host account on": "חשבון מארח ב", + "Create account": "צור חשבון", + "Registration Successful": "ההרשמה בוצעה בהצלחה", + "You can now close this window or log in to your new account.": "כעת תוכלו לסגור חלון זה או להיכנס לחשבונכם החדש.", + "Log in to your new account.": " היכנס לחשבונך החדש.", + "Continue with previous account": "המשך בחשבון הקודם", + "Your new account (%(newAccountId)s) is registered, but you're already logged into a different account (%(loggedInUserId)s).": "החשבון החדש שלך (%(newAccountId)s) רשום, אך אתה כבר מחובר לחשבון אחר (%(loggedInUserId)s).", + "Already have an account? Sign in here": "כבר יש לכם חשבון? היכנסו כאן ", + "%(ssoButtons)s Or %(usernamePassword)s": "%(ssoButtons)s או %(usernamePassword)s", + "Continue with %(ssoButtons)s": "המשך עם %(ssoButtons)s", + "That username already exists, please try another.": "שם משתמש זה כבר קיים, אנא נסה אחר.", + "This server does not support authentication with a phone number.": "שרת זה אינו תומך באימות עם מספר טלפון.", + "Registration has been disabled on this homeserver.": "ההרשמה הושבתה בשרת הבית הזה.", + "Unable to query for supported registration methods.": "לא ניתן לשאול לשיטות רישום נתמכות.", + "New? Create account": "חָדָשׁ? צור חשבון ", + "If you've joined lots of rooms, this might take a while": "אם הצטרפת להרבה חדרים, זה עשוי לקחת זמן מה", + "Signing In...": "מתחבר...", + "Syncing...": "מסנכרן...", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "לא ניתן להתחבר לשרת בית - אנא בדוק את הקישוריות שלך, וודא ש- תעודת ה- SSL של שרת הביתה שלך מהימנה ושהסיומת לדפדפן אינה חוסמת בקשות.", + "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "לא ניתן להתחבר לשרת ביתי באמצעות HTTP כאשר כתובת HTTPS נמצאת בסרגל הדפדפן שלך. השתמש ב- HTTPS או הפעל סקריפטים לא בטוחים .", + "There was a problem communicating with the homeserver, please try again later.": "הייתה תקשורת עם שרת הבית. נסה שוב מאוחר יותר.", + "This homeserver doesn't offer any login flows which are supported by this client.": "שרת בית זה אינו מציע זרמי התחברות הנתמכים על ידי לקוח זה.", + "Failed to perform homeserver discovery": "נכשל גילוי שרת הבית", + "Please note you are logging into the %(hs)s server, not matrix.org.": "שים לב שאתה מתחבר לשרת %(hs)s, לא ל- matrix.org.", + "Incorrect username and/or password.": "שם משתמש ו / או סיסמה שגויים.", + "This account has been deactivated.": "חשבון זה הושבת.", + "Please contact your service administrator to continue using this service.": "אנא פנה למנהל השירות שלך כדי להמשיך להשתמש בשירות זה.", + "This homeserver does not support login using email address.": "שרת בית זה אינו תומך בכניסה באמצעות כתובת דוא\"ל.", + "General failure": "שגיאה כללית", + "Identity server URL does not appear to be a valid identity server": "נראה שכתובת האתר של שרת זהות אינה שרת זהות חוקי", + "Invalid base_url for m.identity_server": "Base_url לא חוקי עבור m.identity_server", + "Invalid identity server discovery response": "תגובת גילוי שרת זהות לא חוקית", + "Homeserver URL does not appear to be a valid Matrix homeserver": "נראה שכתובת האתר של שרת הבית אינה שרת ביתי של מטריקס", + "Invalid base_url for m.homeserver": "Base_url לא חוקי עבור m.homeserver", + "Failed to get autodiscovery configuration from server": "קבלת תצורת הגילוי האוטומטי מהשרת נכשלה", + "Invalid homeserver discovery response": "תגובת גילוי שרת בית לא חוקית", + "Set a new password": "הגדר סיסמה חדשה", + "Return to login screen": "חזור למסך הכניסה", + "You have been logged out of all sessions and will no longer receive push notifications. To re-enable notifications, sign in again on each device.": "הוצאת מכל ההפעלות ולא תקבל עוד התראות דחיפה. כדי להפעיל מחדש את ההתראות, היכנס שוב בכל מכשיר.", + "Your password has been reset.": "הסיסמה שלך אופסה.", + "I have verified my email address": "אימתתי את כתובת הדוא\"ל שלי", + "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "דוא\"ל נשלח אל %(emailAddress)s. לאחר שתעקוב אחר הקישור שהוא מכיל, לחץ למטה.", + "Sign in instead": "היכנס במקום זאת", + "Send Reset Email": "שלח איפוס אימייל", + "A verification email will be sent to your inbox to confirm setting your new password.": "דוא\"ל אימות יישלח לתיבת הדואר הנכנס שלך כדי לאשר את הגדרת הסיסמה החדשה שלך.", + "New Password": "סיסמה חדשה", + "Changing your password will reset any end-to-end encryption keys on all of your sessions, making encrypted chat history unreadable. Set up Key Backup or export your room keys from another session before resetting your password.": "שינוי הסיסמה יאפס את כל מפתחות ההצפנה מקצה לקצה בכל ההפעלות שלך, מה שהופך את היסטוריית הצ'אט המוצפנת לבלתי קריאה. הגדר גיבוי מקשים או ייצא את מפתחות החדר שלך מהפעלה אחרת לפני איפוס הסיסמה שלך.", + "New passwords must match each other.": "סיסמאות חדשות חייבות להתאים זו לזו.", + "A new password must be entered.": "יש להזין סיסמה חדשה.", + "The email address linked to your account must be entered.": "יש להזין את כתובת הדוא\"ל המקושרת לחשבונך.", + "Failed to send email": "כשלון בשליחת מייל", + "Session verified": "מושב נכשל", + "Verify this login": "אמת את הכניסה הזאת", + "Could not load user profile": "לא ניתן לטעון את פרופיל המשתמש", + "Community and user menu": "תפריט משתמש וקהילה", + "User menu": "תפריט משתמש", + "Switch theme": "שנה ערכת נושא", + "Switch to dark mode": "שנה למצב כהה", + "Switch to light mode": "שנה למצב בהיר", + "User settings": "הגדרות משתמש", + "Community settings": "הגדרות קהילה", + "All settings": "כל ההגדרות", + "Security & privacy": "אבטחה ופרטיות", + "Notification settings": "הגדרות התראה", + "New here? Create an account": "חדש פה? צור חשבון ", + "Got an account? Sign in": "יש לך חשבון? היכנס ", + "Failed to find the general chat for this community": "מציאת הצ'אט הכללי לקהילה זו נכשלה", + "Uploading %(filename)s and %(count)s others|one": "מעלה %(filename)s ו-%(count)s אחרים", + "Uploading %(filename)s and %(count)s others|zero": "מעלה %(filename)s", + "Uploading %(filename)s and %(count)s others|other": "מעלה %(filename)s ו-%(count)s אחרים", + "Failed to load timeline position": "טעינת מיקום ציר הזמן נכשלה", + "Tried to load a specific point in this room's timeline, but was unable to find it.": "ניסה לטעון נקודה מסוימת בציר הזמן של החדר הזה, אך לא הצליח למצוא אותה.", + "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "ניסיתי לטעון נקודה ספציפית בציר הזמן של החדר הזה, אך אין לך הרשאה להציג את ההודעה המדוברת.", + "You have %(count)s unread notifications in a prior version of this room.|one": "יש לך %(count)s הודעה שלא נקראה בגירסה קודמת של חדר זה.", + "You have %(count)s unread notifications in a prior version of this room.|other": "יש לך %(count)s הודעות שלא נקראו בגרסה קודמת של חדר זה.", + "Failed to reject invite": "דחיית הזמנה נכשלה", + "Room": "חדר", + "No more results": "אין יותר תוצאות", + "Server may be unavailable, overloaded, or search timed out :(": "יתכן שהשרת לא יהיה זמין, עמוס יתר על המידה או שתם הזמן הקצוב לחיפוש :(", + "Search failed": "החיפוש נכשל", + "You seem to be in a call, are you sure you want to quit?": "נראה שאתה בשיחה, האם אתה בטוח שאתה רוצה להפסיק?", + "You seem to be uploading files, are you sure you want to quit?": "נראה שאתה מעלה קבצים, האם אתה בטוח שברצונך להפסיק?", + "Sent messages will be stored until your connection has returned.": "הודעות שנשלחו יאוחסנו עד שהחיבור שלך יחזור.", + "Connectivity to the server has been lost.": "הקישוריות לשרת אבדה.", + "%(count)sResend all orcancel all now. You can also select individual messages to resend or cancel.|one": "שלח הכל מחדש אובטל הכל עכשיו. אתה יכול גם לבחור הודעות בודדות לשליחה מחדש או לביטול.", + "%(count)sResend all orcancel all now. You can also select individual messages to resend or cancel.|other": "שלח הכל מחדש אובטל הכל עכשיו. אתה יכול גם לבחור הודעות בודדות לשליחה מחדש או לביטול.", + "%(count)s of your messages have not been sent.|one": "ההודעה שלך לא נשלחה.", + "%(count)s of your messages have not been sent.|other": "חלק מההודעות שלך לא נשלחו.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "ההודעה שלך לא נשלחה מכיוון ששרת הבית הזה חרג ממגבלת המשאבים. אנא פנה למנהל השירות שלך כדי להמשיך להשתמש בשירות.", + "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "ההודעה שלך לא נשלחה מכיוון ששרת הבתים הזה הגיע למגבלת המשתמשים הפעילים החודשיים שלה. אנא פנה למנהל השירות שלך כדי להמשיך להשתמש בשירות.", + "You can't send any messages until you review and agree toour terms and conditions .": "אינך יכול לשלוח שום הודעה עד שתבדוק ותסכים להתנאים וההגבלות שלנו .", + "Filter rooms and people": "סנן חדרים ואנשים", + "Clear filter": "נקה מסנן", + "Filter": "סנן", + "Explore rooms in %(communityName)s": "חקור חדרים בקהילת %(communityName)s", + "If you can't find the room you're looking for, ask for an invite or Create a new room.": "אם אינך מוצא את החדר שאתה מחפש, בקש הזמנה או צור חדר חדש .", + "Find a room… (e.g. %(exampleRoom)s)": "מצא חדר (דוגמא: %(exampleRoom)s)", + "Find a room…": "מצא חדר…", + "View": "צפה", + "Preview": "תצוגה מקדימה", + "delete the address.": "מחק את הכתובת.", + "Delete the room address %(alias)s and remove %(name)s from the directory?": "למחוק את כתובת החדר %(alias)s ולהסיר את %(name)s מהספרייה?", + "The homeserver may be unavailable or overloaded.": "שרת הבית עשוי להיות לא זמין או עומס יתר.", + "%(brand)s failed to get the public room list.": "%(brand)s לא הצליחו להשיג את רשימת החדרים הציבוריים.", + "%(brand)s failed to get the protocol list from the homeserver. The homeserver may be too old to support third party networks.": "%(brand)s לא הצליחו להשיג את רשימת הפרוטוקולים משרת הבית. שרת הבית עשוי להיות זקן מכדי לתמוך ברשתות צד שלישי.", + "You have no visible notifications.": "אין לך התראות גלויות.", + "You’re all caught up": "כולכם מעודכנים", + "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "צור קהילה שתקבץ משתמשים וחדרים! בנה דף בית מותאם אישית כדי לסמן את החלל שלך ביקום מטריקס.", + "Create a new community": "צור קהילה חדשה", + "Error whilst fetching joined communities": "שגיאה בעת אחזור קהילות שהצטרפו", + "To set up a filter, drag a community avatar over to the filter panel on the far left hand side of the screen. You can click on an avatar in the filter panel at any time to see only the rooms and people associated with that community.": "להגדרת מסנן, גרור אווטאר קהילתי לחלונית המסנן בצד שמאל הקיצוני של המסך. אתה יכול ללחוץ על אווטאר בחלונית המסנן בכל עת כדי לראות רק את החדרים והאנשים המשויכים לקהילה זו.", + "Did you know: you can use communities to filter your %(brand)s experience!": "האם ידעת: תוכל להשתמש בקהילות כדי לסנן את חוויית %(brand)s שלך!", + "Your Communities": "הקהילות שלכם", + "%(creator)s created and configured the room.": "%(creator)s יצא והגדיר את החדר.", + "%(creator)s created this DM.": "%(creator)s יצר את DM הזה.", + "Logout": "יציאה", + "Self-verification request": "בקשה לאימות עצמי", + "Data from an older version of %(brand)s has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "נתגלו גרסאות ישנות יותר של %(brand)s. זה יגרום לתקלה בקריפטוגרפיה מקצה לקצה בגרסה הישנה יותר. הודעות מוצפנות מקצה לקצה שהוחלפו לאחרונה בעת השימוש בגרסה הישנה עשויות שלא להיות ניתנות לפענוח בגירסה זו. זה עלול גם לגרום להודעות שהוחלפו עם גרסה זו להיכשל. אם אתה נתקל בבעיות, צא וחזור שוב. כדי לשמור על היסטוריית ההודעות, ייצא וייבא מחדש את המפתחות שלך.", + "Old cryptography data detected": "נתגלו נתוני הצפנה ישנים", + "Terms and Conditions": "תנאים והגבלות", + "Review terms and conditions": "עיין בתנאים ובהגבלות", + "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "כדי להמשיך להשתמש בשרת הבית (%(homeserverDomain)s), עליך לבדוק ולהסכים לתנאים ולהגבלות שלנו.", + "For security, this session has been signed out. Please sign in again.": "למען ביטחון, הפגישה הזו נותקה. אנא היכנסו שוב.", + "Signed Out": "יציאה", + "Channel:": "ערוץ: ", + "Dial pad": "לוח חיוג", + "There was an error looking up the phone number": "אירעה שגיאה בחיפוש מספר הטלפון", + "Unable to look up phone number": "לא ניתן לחפש את מספר הטלפון", + "%(senderName)s has updated the widget layout": "%(senderName)s עדכן את פריסת היישומון", + "There was an error finding this widget.": "אירעה שגיאה במציאת היישומון הזה.", + "Active Widgets": "יישומונים פעילים", + "Set my room layout for everyone": "הגדר את פריסת החדר שלי עבור כולם", + "Open dial pad": "פתח לוח חיוג", + "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.": "גבה את מפתחות ההצפנה שלך עם נתוני חשבונך במקרה שתאבד את הגישה להפעלות שלך. המפתחות שלך מאובטחים באמצעות מפתח אבטחה ייחודי.", + "If you've forgotten your Security Key you can ": "אם שכחת את מפתח האבטחה שלך תוכל