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 8c460b4f81..43a1494497 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,132 @@
+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)
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 1316b26030..2263c7de32 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "matrix-react-sdk",
- "version": "3.12.0",
+ "version": "3.13.1",
"description": "SDK for matrix.org using React",
"author": "matrix.org",
"repository": {
@@ -54,48 +54,47 @@
"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.11",
+ "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",
+ "project-name-generator": "^2.1.9",
"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",
@@ -108,68 +107,71 @@
"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": [
diff --git a/res/css/_common.scss b/res/css/_common.scss
index 87336a1c03..6e9d252659 100644
--- a/res/css/_common.scss
+++ b/res/css/_common.scss
@@ -21,6 +21,11 @@ limitations under the License.
$hover-transition: 0.08s cubic-bezier(.46, .03, .52, .96); // quadratic
+$EventTile_e2e_state_indicator_width: 4px;
+
+$MessageTimestamp_width: 46px; /* 8 + 30 (avatar) + 8 */
+$MessageTimestamp_width_hover: calc($MessageTimestamp_width - 2 * $EventTile_e2e_state_indicator_width);
+
:root {
font-size: 10px;
}
diff --git a/res/css/_components.scss b/res/css/_components.scss
index a6e1f81583..006bac09c9 100644
--- a/res/css/_components.scss
+++ b/res/css/_components.scss
@@ -71,6 +71,7 @@
@import "./views/dialogs/_EditCommunityPrototypeDialog.scss";
@import "./views/dialogs/_FeedbackDialog.scss";
@import "./views/dialogs/_GroupAddressPicker.scss";
+@import "./views/dialogs/_HostSignupDialog.scss";
@import "./views/dialogs/_IncomingSasDialog.scss";
@import "./views/dialogs/_InviteDialog.scss";
@import "./views/dialogs/_KeyboardShortcutsDialog.scss";
@@ -106,6 +107,7 @@
@import "./views/elements/_AddressTile.scss";
@import "./views/elements/_DesktopBuildsNotice.scss";
@import "./views/elements/_DirectorySearchBox.scss";
+@import "./views/elements/_DesktopCapturerSourcePicker.scss";
@import "./views/elements/_Dropdown.scss";
@import "./views/elements/_EditableItemList.scss";
@import "./views/elements/_ErrorBoundary.scss";
diff --git a/res/css/structures/_LeftPanel.scss b/res/css/structures/_LeftPanel.scss
index 1424d9cda0..168590502d 100644
--- a/res/css/structures/_LeftPanel.scss
+++ b/res/css/structures/_LeftPanel.scss
@@ -180,6 +180,11 @@ $groupFilterPanelWidth: 56px; // only applies in this file, used for calculation
.mx_LeftPanel_roomListContainer {
width: 68px;
+ .mx_LeftPanel_userHeader {
+ flex-direction: row;
+ justify-content: center;
+ }
+
.mx_LeftPanel_filterContainer {
// Organize the flexbox into a centered column layout
flex-direction: column;
diff --git a/res/css/structures/_LeftPanelWidget.scss b/res/css/structures/_LeftPanelWidget.scss
index 4df651d7b6..6e2d99bb37 100644
--- a/res/css/structures/_LeftPanelWidget.scss
+++ b/res/css/structures/_LeftPanelWidget.scss
@@ -134,7 +134,7 @@ limitations under the License.
mask-position: center;
mask-size: contain;
mask-repeat: no-repeat;
- mask-image: url('$(res)/img/feather-customised/widget/maximise.svg');
+ mask-image: url('$(res)/img/feather-customised/maximise.svg');
background: $muted-fg-color;
}
}
diff --git a/res/css/structures/_RoomDirectory.scss b/res/css/structures/_RoomDirectory.scss
index c7a660da43..48c03a5f96 100644
--- a/res/css/structures/_RoomDirectory.scss
+++ b/res/css/structures/_RoomDirectory.scss
@@ -64,28 +64,23 @@ limitations under the License.
}
.mx_RoomDirectory_table {
- font-size: $font-12px;
color: $primary-fg-color;
- width: 100%;
+ display: grid;
+ font-size: $font-12px;
+ grid-template-columns: max-content auto max-content max-content max-content;
+ row-gap: 24px;
text-align: left;
- table-layout: fixed;
+ width: 100%;
}
.mx_RoomDirectory_roomAvatar {
- width: 32px;
- padding-right: 14px;
- vertical-align: top;
-}
-
-.mx_RoomDirectory_roomDescription {
- padding-bottom: 16px;
+ padding: 2px 14px 0 0;
}
.mx_RoomDirectory_roomMemberCount {
+ align-self: center;
color: $light-fg-color;
- width: 60px;
- padding: 0 10px;
- text-align: center;
+ padding: 3px 10px 0;
&::before {
background-color: $light-fg-color;
@@ -105,8 +100,7 @@ limitations under the License.
}
.mx_RoomDirectory_join, .mx_RoomDirectory_preview {
- width: 80px;
- text-align: center;
+ align-self: center;
white-space: nowrap;
}
diff --git a/res/css/structures/_RoomView.scss b/res/css/structures/_RoomView.scss
index 572c7166d2..36bf96359b 100644
--- a/res/css/structures/_RoomView.scss
+++ b/res/css/structures/_RoomView.scss
@@ -219,7 +219,7 @@ hr.mx_RoomView_myReadMarker {
position: relative;
top: -1px;
z-index: 1;
- transition: width 400ms easeInSine 1s, opacity 400ms easeInSine 1s;
+ transition: width 400ms easeinsine 1s, opacity 400ms easeinsine 1s;
width: 99%;
opacity: 1;
}
diff --git a/res/css/structures/_UserMenu.scss b/res/css/structures/_UserMenu.scss
index 84c21364ce..f2577938e5 100644
--- a/res/css/structures/_UserMenu.scss
+++ b/res/css/structures/_UserMenu.scss
@@ -119,14 +119,10 @@ limitations under the License.
}
&.mx_UserMenu_minimized {
- .mx_UserMenu_userHeader {
- .mx_UserMenu_row {
- justify-content: center;
- }
+ padding-right: 0px;
- .mx_UserMenu_userAvatarContainer {
- margin-right: 0;
- }
+ .mx_UserMenu_userAvatarContainer {
+ margin-right: 0px;
}
}
}
@@ -276,6 +272,9 @@ limitations under the License.
.mx_UserMenu_iconHome::before {
mask-image: url('$(res)/img/element-icons/roomlist/home.svg');
}
+ .mx_UserMenu_iconHosting::before {
+ mask-image: url('$(res)/img/element-icons/brands/element.svg');
+ }
.mx_UserMenu_iconBell::before {
mask-image: url('$(res)/img/element-icons/notifications.svg');
diff --git a/res/css/views/auth/_AuthBody.scss b/res/css/views/auth/_AuthBody.scss
index 8f0c758e7a..90dca32e48 100644
--- a/res/css/views/auth/_AuthBody.scss
+++ b/res/css/views/auth/_AuthBody.scss
@@ -34,7 +34,7 @@ limitations under the License.
h3 {
font-size: $font-14px;
font-weight: 600;
- color: $authpage-primary-color;
+ color: $authpage-secondary-color;
}
h3.mx_AuthBody_centered {
diff --git a/res/css/views/auth/_AuthHeader.scss b/res/css/views/auth/_AuthHeader.scss
index b1372affee..13d5195160 100644
--- a/res/css/views/auth/_AuthHeader.scss
+++ b/res/css/views/auth/_AuthHeader.scss
@@ -18,7 +18,7 @@ limitations under the License.
display: flex;
flex-direction: column;
width: 206px;
- padding: 25px 40px;
+ padding: 25px 25px;
box-sizing: border-box;
}
diff --git a/res/css/views/auth/_AuthHeaderLogo.scss b/res/css/views/auth/_AuthHeaderLogo.scss
index 917dcabf67..86f0313b68 100644
--- a/res/css/views/auth/_AuthHeaderLogo.scss
+++ b/res/css/views/auth/_AuthHeaderLogo.scss
@@ -17,7 +17,7 @@ limitations under the License.
.mx_AuthHeaderLogo {
margin-top: 15px;
flex: 1;
- padding: 0 10px;
+ padding: 0 25px;
}
.mx_AuthHeaderLogo img {
diff --git a/res/css/views/auth/_InteractiveAuthEntryComponents.scss b/res/css/views/auth/_InteractiveAuthEntryComponents.scss
index 5df73b139f..ffaad3cd7a 100644
--- a/res/css/views/auth/_InteractiveAuthEntryComponents.scss
+++ b/res/css/views/auth/_InteractiveAuthEntryComponents.scss
@@ -83,7 +83,10 @@ limitations under the License.
}
.mx_InteractiveAuthEntryComponents_termsPolicy {
- display: block;
+ display: flex;
+ flex-direction: row;
+ justify-content: start;
+ align-items: center;
}
.mx_InteractiveAuthEntryComponents_passwordSection {
diff --git a/res/css/views/auth/_LanguageSelector.scss b/res/css/views/auth/_LanguageSelector.scss
index 781561f876..885ee7f30d 100644
--- a/res/css/views/auth/_LanguageSelector.scss
+++ b/res/css/views/auth/_LanguageSelector.scss
@@ -23,6 +23,7 @@ limitations under the License.
font-size: $font-14px;
font-weight: 600;
color: $authpage-lang-color;
+ width: auto;
}
.mx_AuthBody_language .mx_Dropdown_arrow {
diff --git a/res/css/views/auth/_Welcome.scss b/res/css/views/auth/_Welcome.scss
index f0e2b3de33..894174d6e2 100644
--- a/res/css/views/auth/_Welcome.scss
+++ b/res/css/views/auth/_Welcome.scss
@@ -18,7 +18,6 @@ limitations under the License.
display: flex;
flex-direction: column;
align-items: center;
-
&.mx_WelcomePage_registrationDisabled {
.mx_ButtonCreateAccount {
display: none;
@@ -27,6 +26,6 @@ limitations under the License.
}
.mx_Welcome .mx_AuthBody_language {
- width: 120px;
+ width: 160px;
margin-bottom: 10px;
}
diff --git a/res/css/views/dialogs/_HostSignupDialog.scss b/res/css/views/dialogs/_HostSignupDialog.scss
new file mode 100644
index 0000000000..1378ac9053
--- /dev/null
+++ b/res/css/views/dialogs/_HostSignupDialog.scss
@@ -0,0 +1,138 @@
+/*
+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.
+*/
+
+.mx_HostSignupDialog {
+ width: 90vw;
+ max-width: 580px;
+ height: 80vh;
+ max-height: 600px;
+
+ .mx_HostSignupDialog_info {
+ text-align: center;
+
+ .mx_HostSignupDialog_content_top {
+ margin-bottom: 24px;
+ }
+
+ .mx_HostSignupDialog_paragraphs {
+ text-align: left;
+ padding-left: 25%;
+ padding-right: 25%;
+ }
+
+ .mx_HostSignupDialog_buttons {
+ margin-bottom: 24px;
+ display: flex;
+ justify-content: center;
+
+ button {
+ padding: 12px;
+ margin: 0 16px;
+ }
+ }
+
+ .mx_HostSignupDialog_footer {
+ display: flex;
+ justify-content: center;
+ align-items: baseline;
+
+ img {
+ padding-right: 5px;
+ }
+ }
+ }
+
+ iframe {
+ width: 100%;
+ height: 100%;
+ border: none;
+ background-color: #fff;
+ min-height: 540px;
+ }
+}
+
+.mx_HostSignupDialog_text_dark {
+ color: $primary-fg-color;
+}
+
+.mx_HostSignupDialog_text_light {
+ color: $secondary-fg-color;
+}
+
+.mx_HostSignup_maximize_button {
+ mask: url('$(res)/img/feather-customised/maximise.svg');
+ mask-repeat: no-repeat;
+ mask-position: center;
+ mask-size: cover;
+ width: 14px;
+ height: 14px;
+ background-color: $dialog-close-fg-color;
+ cursor: pointer;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+}
+
+.mx_HostSignup_minimize_button {
+ mask: url('$(res)/img/feather-customised/minimise.svg');
+ mask-repeat: no-repeat;
+ mask-position: center;
+ mask-size: cover;
+ width: 14px;
+ height: 14px;
+ background-color: $dialog-close-fg-color;
+ cursor: pointer;
+ position: absolute;
+ top: 10px;
+ right: 25px;
+}
+
+.mx_HostSignup_persisted {
+ width: 90vw;
+ max-width: 580px;
+ height: 80vh;
+ max-height: 600px;
+ top: 0;
+ left: 0;
+ position: fixed;
+ display: none;
+}
+
+.mx_HostSignupDialog_minimized {
+ position: fixed;
+ bottom: 80px;
+ right: 26px;
+ width: 314px;
+ height: 217px;
+ overflow: hidden;
+
+ &.mx_Dialog {
+ padding: 12px;
+ }
+
+ .mx_Dialog_title {
+ text-align: left !important;
+ padding-left: 20px;
+ font-size: $font-15px;
+ }
+
+ iframe {
+ width: 100%;
+ height: 100%;
+ border: none;
+ background-color: #fff;
+ }
+}
diff --git a/res/css/views/elements/_DesktopCapturerSourcePicker.scss b/res/css/views/elements/_DesktopCapturerSourcePicker.scss
new file mode 100644
index 0000000000..69dde5925e
--- /dev/null
+++ b/res/css/views/elements/_DesktopCapturerSourcePicker.scss
@@ -0,0 +1,72 @@
+/*
+Copyright 2021 Šimon Brandner
+
+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_desktopCapturerSourcePicker {
+ overflow: hidden;
+}
+
+.mx_desktopCapturerSourcePicker_tabLabels {
+ display: flex;
+ padding: 0 0 8px 0;
+}
+
+.mx_desktopCapturerSourcePicker_tabLabel,
+.mx_desktopCapturerSourcePicker_tabLabel_selected {
+ width: 100%;
+ text-align: center;
+ border-radius: 8px;
+ padding: 8px 0;
+ font-size: $font-13px;
+}
+
+.mx_desktopCapturerSourcePicker_tabLabel_selected {
+ background-color: $tab-label-active-bg-color;
+ color: $tab-label-active-fg-color;
+}
+
+.mx_desktopCapturerSourcePicker_panel {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ align-items: flex-start;
+ height: 500px;
+ overflow: overlay;
+}
+
+.mx_desktopCapturerSourcePicker_stream_button {
+ display: flex;
+ flex-direction: column;
+ margin: 8px;
+ border-radius: 4px;
+}
+
+.mx_desktopCapturerSourcePicker_stream_button:hover,
+.mx_desktopCapturerSourcePicker_stream_button:focus {
+ background: $roomtile-selected-bg-color;
+}
+
+.mx_desktopCapturerSourcePicker_stream_thumbnail {
+ margin: 4px;
+ width: 312px;
+}
+
+.mx_desktopCapturerSourcePicker_stream_name {
+ margin: 0 4px;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ width: 312px;
+}
diff --git a/res/css/views/elements/_SSOButtons.scss b/res/css/views/elements/_SSOButtons.scss
index f762468c7f..e02816780f 100644
--- a/res/css/views/elements/_SSOButtons.scss
+++ b/res/css/views/elements/_SSOButtons.scss
@@ -16,13 +16,26 @@ limitations under the License.
.mx_SSOButtons {
display: flex;
+ flex-wrap: wrap;
justify-content: center;
+ .mx_SSOButtons_row {
+ & + .mx_SSOButtons_row {
+ margin-top: 16px;
+ }
+ }
+
.mx_SSOButton {
position: relative;
width: 100%;
- padding-left: 32px;
- padding-right: 32px;
+ padding: 7px 32px;
+ text-align: center;
+ border-radius: 8px;
+ display: inline-block;
+ font-size: $font-14px;
+ font-weight: $font-semi-bold;
+ border: 1px solid $input-border-color;
+ color: $primary-fg-color;
> img {
object-fit: contain;
@@ -32,10 +45,22 @@ limitations under the License.
}
}
+ .mx_SSOButton_default {
+ color: $button-primary-bg-color;
+ background-color: $button-secondary-bg-color;
+ border-color: $button-primary-bg-color;
+ }
+ .mx_SSOButton_default.mx_SSOButton_primary {
+ color: $button-primary-fg-color;
+ background-color: $button-primary-bg-color;
+ }
+
.mx_SSOButton_mini {
box-sizing: border-box;
width: 50px; // 48px + 1px border on all sides
height: 50px; // 48px + 1px border on all sides
+ min-width: 50px; // prevent crushing by the flexbox
+ padding: 12px;
> img {
left: 12px;
@@ -43,7 +68,7 @@ limitations under the License.
}
& + .mx_SSOButton_mini {
- margin-left: 24px;
+ margin-left: 16px;
}
}
}
diff --git a/res/css/views/elements/_ServerPicker.scss b/res/css/views/elements/_ServerPicker.scss
index ae1e445a9f..188eb5d655 100644
--- a/res/css/views/elements/_ServerPicker.scss
+++ b/res/css/views/elements/_ServerPicker.scss
@@ -59,7 +59,7 @@ limitations under the License.
}
.mx_ServerPicker_server {
- color: $primary-fg-color;
+ color: $authpage-primary-color;
grid-column: 1;
grid-row: 2;
margin-bottom: 16px;
diff --git a/res/css/views/messages/_RedactedBody.scss b/res/css/views/messages/_RedactedBody.scss
index e4ab0c0835..600ac0c6b7 100644
--- a/res/css/views/messages/_RedactedBody.scss
+++ b/res/css/views/messages/_RedactedBody.scss
@@ -30,7 +30,7 @@ limitations under the License.
mask-size: contain;
content: '';
position: absolute;
- top: 2px;
+ top: 1px;
left: 0;
}
}
diff --git a/res/css/views/messages/_ViewSourceEvent.scss b/res/css/views/messages/_ViewSourceEvent.scss
index 076932ee97..66825030e0 100644
--- a/res/css/views/messages/_ViewSourceEvent.scss
+++ b/res/css/views/messages/_ViewSourceEvent.scss
@@ -35,13 +35,13 @@ limitations under the License.
mask-size: auto 12px;
visibility: hidden;
background-color: $accent-color;
- mask-image: url('$(res)/img/feather-customised/widget/maximise.svg');
+ mask-image: url('$(res)/img/feather-customised/maximise.svg');
}
&.mx_ViewSourceEvent_expanded .mx_ViewSourceEvent_toggle {
mask-position: 0 bottom;
margin-bottom: 7px;
- mask-image: url('$(res)/img/feather-customised/widget/minimise.svg');
+ mask-image: url('$(res)/img/feather-customised/minimise.svg');
}
&:hover .mx_ViewSourceEvent_toggle {
diff --git a/res/css/views/rooms/_AppsDrawer.scss b/res/css/views/rooms/_AppsDrawer.scss
index 8731d22660..492ed95973 100644
--- a/res/css/views/rooms/_AppsDrawer.scss
+++ b/res/css/views/rooms/_AppsDrawer.scss
@@ -24,26 +24,45 @@ $MiniAppTileHeight: 200px;
flex-direction: column;
overflow: hidden;
+ .mx_AppsContainer_resizerHandleContainer {
+ width: 100%;
+ height: 10px;
+ margin-top: -3px; // move it up so the interactions are slightly more comfortable
+ display: block;
+ position: relative;
+ }
+
.mx_AppsContainer_resizerHandle {
cursor: ns-resize;
- border-radius: 3px;
- // Override styles from library
- width: unset !important;
- height: 4px !important;
+ // Override styles from library, making the whole area the target area
+ width: 100% !important;
+ height: 100% !important;
// This is positioned directly below frame
position: absolute;
- bottom: -8px !important; // override from library
+ 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;
+ // We then render the pill handle in an ::after to keep it in the handle's
+ // area without being a massive line across the screen
+ &::after {
+ content: '';
+ position: absolute;
+ border-radius: 3px;
+
+ // The combination of these two should make the pill 4px high
+ top: 6px;
+ bottom: 0;
+
+ // Together, these make the bar 64px wide
+ // These are also overridden from the library
+ left: calc(50% - 32px);
+ right: calc(50% - 32px);
+ }
}
&:hover {
- .mx_AppsContainer_resizerHandle {
+ .mx_AppsContainer_resizerHandle::after {
opacity: 0.8;
background: $primary-fg-color;
}
diff --git a/res/css/views/rooms/_EventTile.scss b/res/css/views/rooms/_EventTile.scss
index 429ac7ed4b..42df3211de 100644
--- a/res/css/views/rooms/_EventTile.scss
+++ b/res/css/views/rooms/_EventTile.scss
@@ -26,7 +26,7 @@ $left-gutter: 64px;
}
.mx_EventTile.mx_EventTile_info {
- padding-top: 0px;
+ padding-top: 1px;
}
.mx_EventTile_avatar {
@@ -37,7 +37,7 @@ $left-gutter: 64px;
}
.mx_EventTile.mx_EventTile_info .mx_EventTile_avatar {
- top: $font-8px;
+ top: $font-6px;
left: $left-gutter;
}
@@ -74,7 +74,6 @@ $left-gutter: 64px;
margin-left: 5px;
display: inline-block;
vertical-align: top;
- height: 16px;
overflow: hidden;
user-select: none;
@@ -421,15 +420,15 @@ $left-gutter: 64px;
}
.mx_EventTile:hover.mx_EventTile_verified .mx_EventTile_line {
- border-left: $e2e-verified-color 4px solid;
+ border-left: $e2e-verified-color $EventTile_e2e_state_indicator_width solid;
}
.mx_EventTile:hover.mx_EventTile_unverified .mx_EventTile_line {
- border-left: $e2e-unverified-color 4px solid;
+ border-left: $e2e-unverified-color $EventTile_e2e_state_indicator_width solid;
}
.mx_EventTile:hover.mx_EventTile_unknown .mx_EventTile_line {
- border-left: $e2e-unknown-color 4px solid;
+ border-left: $e2e-unknown-color $EventTile_e2e_state_indicator_width solid;
}
.mx_EventTile:hover.mx_EventTile_verified.mx_EventTile_info .mx_EventTile_line,
@@ -447,8 +446,7 @@ $left-gutter: 64px;
.mx_EventTile:hover.mx_EventTile_verified .mx_EventTile_line > a > .mx_MessageTimestamp,
.mx_EventTile:hover.mx_EventTile_unverified .mx_EventTile_line > a > .mx_MessageTimestamp,
.mx_EventTile:hover.mx_EventTile_unknown .mx_EventTile_line > a > .mx_MessageTimestamp {
- left: 3px;
- width: auto;
+ width: $MessageTimestamp_width_hover;
}
// Explicit relationships so that it doesn't apply to nested EventTile components (e.g in Replies)
@@ -493,7 +491,6 @@ $left-gutter: 64px;
// https://github.com/vector-im/vector-web/issues/754
overflow-x: overlay;
overflow-y: visible;
- max-height: 30vh;
}
code {
@@ -502,6 +499,22 @@ $left-gutter: 64px;
}
}
+.mx_EventTile_lineNumbers {
+ float: left;
+ margin: 0 0.5em 0 -1.5em;
+ color: gray;
+}
+
+.mx_EventTile_lineNumber {
+ text-align: right;
+ display: block;
+ padding-left: 1em;
+}
+
+.mx_EventTile_collapsedCodeBlock {
+ max-height: 30vh;
+}
+
.mx_EventTile:hover .mx_EventTile_body pre,
.mx_EventTile.focus-visible:focus-within .mx_EventTile_body pre {
border: 1px solid #e5e5e5; // deliberate constant as we're behind an invert filter
@@ -513,21 +526,42 @@ $left-gutter: 64px;
}
// Inserted adjacent to
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/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/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/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/themes/dark/css/_dark.scss b/res/themes/dark/css/_dark.scss
index 08fe2e9f57..612b8e03bd 100644
--- a/res/themes/dark/css/_dark.scss
+++ b/res/themes/dark/css/_dark.scss
@@ -258,6 +258,7 @@ $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
}
.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/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..2a28c8e43f 100644
--- a/src/@types/global.d.ts
+++ b/src/@types/global.d.ts
@@ -36,6 +36,7 @@ import {Analytics} from "../Analytics";
import CountlyAnalytics from "../CountlyAnalytics";
import UserActivity from "../UserActivity";
import {ModalWidgetStore} from "../stores/ModalWidgetStore";
+import { WidgetLayoutStore } from "../stores/widgets/WidgetLayoutStore";
declare global {
interface Window {
@@ -59,6 +60,7 @@ declare global {
mxNotifier: typeof Notifier;
mxRightPanelStore: RightPanelStore;
mxWidgetStore: WidgetStore;
+ mxWidgetLayoutStore: WidgetLayoutStore;
mxCallHandler: CallHandler;
mxAnalytics: Analytics;
mxCountlyAnalytics: typeof CountlyAnalytics;
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 bcb2042f84..41a5941092 100644
--- a/src/CallHandler.tsx
+++ b/src/CallHandler.tsx
@@ -82,7 +82,10 @@ 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 { roomForVirtualRoom, getOrCreateVirtualRoomForRoom } from './VoipUserMapper';
+import { addManagedHybridWidget, isManagedHybridWidgetEnabled } from './widgets/ManagedHybrid';
const CHECK_PSTN_SUPPORT_ATTEMPTS = 3;
@@ -133,6 +136,15 @@ export default class CallHandler {
return window.mxCallHandler;
}
+ /*
+ * Gets the user-facing room associated with a call (call.roomId may be the call "virtual room"
+ * if a voip_mxid_translate_pattern is set in the config)
+ */
+ public static roomIdForCall(call: MatrixCall) {
+ if (!call) return null;
+ return roomForVirtualRoom(call.roomId) || call.roomId;
+ }
+
start() {
this.dispatcherRef = dis.register(this.onAction);
// add empty handlers for media actions, otherwise the media keys
@@ -284,11 +296,15 @@ export default class CallHandler {
// We don't allow placing more than one call per room, but that doesn't mean there
// can't be more than one, eg. in a glare situation. This checks that the given call
// is the call we consider 'the' call for its room.
- const callForThisRoom = this.getCallForRoom(call.roomId);
+ const mappedRoomId = CallHandler.roomIdForCall(call);
+
+ const callForThisRoom = this.getCallForRoom(mappedRoomId);
return callForThisRoom && call.callId === callForThisRoom.callId;
}
private setCallListeners(call: MatrixCall) {
+ const mappedRoomId = CallHandler.roomIdForCall(call);
+
call.on(CallEvent.Error, (err: CallError) => {
if (!this.matchesCallForThisRoom(call)) return;
@@ -318,7 +334,7 @@ export default class CallHandler {
Analytics.trackEvent('voip', 'callHangup');
- this.removeCallForRoom(call.roomId);
+ this.removeCallForRoom(mappedRoomId);
});
call.on(CallEvent.State, (newState: CallState, oldState: CallState) => {
if (!this.matchesCallForThisRoom(call)) return;
@@ -342,8 +358,9 @@ export default class CallHandler {
this.play(AudioID.Ringback);
break;
case CallState.Ended:
+ {
Analytics.trackEvent('voip', 'callEnded', 'hangupReason', call.hangupReason);
- this.removeCallForRoom(call.roomId);
+ this.removeCallForRoom(mappedRoomId);
if (oldState === CallState.InviteSent && (
call.hangupParty === CallParty.Remote ||
(call.hangupParty === CallParty.Local && call.hangupReason === CallErrorCode.InviteTimeout)
@@ -375,10 +392,14 @@ export default class CallHandler {
title: _t("Answered Elsewhere"),
description: _t("The call was answered on another device."),
});
- } else if (oldState !== CallState.Fledgling) {
+ } else if (oldState !== CallState.Fledgling && oldState !== CallState.Ringing) {
// don't play the end-call sound for calls that never got off the ground
this.play(AudioID.CallEnd);
}
+
+ this.logCallStats(call, mappedRoomId);
+ break;
+ }
}
});
call.on(CallEvent.Replaced, (newCall: MatrixCall) => {
@@ -392,25 +413,70 @@ export default class CallHandler {
this.pause(AudioID.Ringback);
}
- this.calls.set(newCall.roomId, newCall);
+ this.calls.set(mappedRoomId, newCall);
this.setCallListeners(newCall);
this.setCallState(newCall, newCall.state);
});
}
+ private async logCallStats(call: MatrixCall, mappedRoomId: string) {
+ const stats = await call.getCurrentCallStats();
+ logger.debug(
+ `Call completed. Call ID: ${call.callId}, virtual room ID: ${call.roomId}, ` +
+ `user-facing room ID: ${mappedRoomId}, direction: ${call.direction}, ` +
+ `our Party ID: ${call.ourPartyId}, hangup party: ${call.hangupParty}, ` +
+ `hangup reason: ${call.hangupReason}`,
+ );
+ if (!stats) {
+ logger.debug(
+ "Call statistics are undefined. The call has " +
+ "probably failed before a peerConn was established",
+ );
+ return;
+ }
+ logger.debug("Local candidates:");
+ for (const cand of stats.filter(item => item.type === 'local-candidate')) {
+ const address = cand.address || cand.ip; // firefox uses 'address', chrome uses 'ip'
+ logger.debug(
+ `${cand.id} - type: ${cand.candidateType}, address: ${address}, port: ${cand.port}, ` +
+ `protocol: ${cand.protocol}, relay protocol: ${cand.relayProtocol}, network type: ${cand.networkType}`,
+ );
+ }
+ logger.debug("Remote candidates:");
+ for (const cand of stats.filter(item => item.type === 'remote-candidate')) {
+ const address = cand.address || cand.ip; // firefox uses 'address', chrome uses 'ip'
+ logger.debug(
+ `${cand.id} - type: ${cand.candidateType}, address: ${address}, port: ${cand.port}, ` +
+ `protocol: ${cand.protocol}`,
+ );
+ }
+ logger.debug("Candidate pairs:");
+ for (const pair of stats.filter(item => item.type === 'candidate-pair')) {
+ logger.debug(
+ `${pair.localCandidateId} / ${pair.remoteCandidateId} - state: ${pair.state}, ` +
+ `nominated: ${pair.nominated}, ` +
+ `requests sent ${pair.requestsSent}, requests received ${pair.requestsReceived}, ` +
+ `responses received: ${pair.responsesReceived}, responses sent: ${pair.responsesSent}, ` +
+ `bytes received: ${pair.bytesReceived}, bytes sent: ${pair.bytesSent}, `,
+ );
+ }
+ }
+
private setCallAudioElement(call: MatrixCall) {
const audioElement = getRemoteAudioElement();
if (audioElement) call.setRemoteAudioElement(audioElement);
}
private setCallState(call: MatrixCall, status: CallState) {
+ const mappedRoomId = CallHandler.roomIdForCall(call);
+
console.log(
- `Call state in ${call.roomId} changed to ${status}`,
+ `Call state in ${mappedRoomId} changed to ${status}`,
);
dis.dispatch({
action: 'call_state',
- room_id: call.roomId,
+ room_id: mappedRoomId,
state: status,
});
}
@@ -477,14 +543,20 @@ export default class CallHandler {
}, null, true);
}
- private placeCall(
+ private async placeCall(
roomId: string, type: PlaceCallType,
localElement: HTMLVideoElement, remoteElement: HTMLVideoElement,
) {
Analytics.trackEvent('voip', 'placeCall', 'type', type);
CountlyAnalytics.instance.trackStartCall(roomId, type === PlaceCallType.Video, false);
- const call = createNewMatrixCall(MatrixClientPeg.get(), roomId);
+
+ const mappedRoomId = (await getOrCreateVirtualRoomForRoom(roomId)) || roomId;
+ logger.debug("Mapped real room " + roomId + " to room ID " + mappedRoomId);
+
+ const call = createNewMatrixCall(MatrixClientPeg.get(), mappedRoomId);
+
this.calls.set(roomId, call);
+
this.setCallListeners(call);
this.setCallAudioElement(call);
@@ -508,9 +580,17 @@ export default class CallHandler {
});
return;
}
- call.placeScreenSharingCall(remoteElement, localElement);
+
+ call.placeScreenSharingCall(
+ remoteElement,
+ localElement,
+ async () : Promise => {
+ const {finished} = Modal.createDialog(DesktopCapturerSourcePicker);
+ const [source] = await finished;
+ return source;
+ });
} else {
- console.error("Unknown conf call type: %s", type);
+ console.error("Unknown conf call type: " + type);
}
}
@@ -518,6 +598,12 @@ export default class CallHandler {
switch (payload.action) {
case 'place_call':
{
+ // We might be using managed hybrid widgets
+ if (isManagedHybridWidgetEnabled()) {
+ addManagedHybridWidget(payload.room_id);
+ return;
+ }
+
// if the runtime env doesn't do VoIP, whine.
if (!MatrixClientPeg.get().supportsVoip()) {
Modal.createTrackedDialog('Call Handler', 'VoIP is unsupported', ErrorDialog, {
@@ -538,7 +624,7 @@ export default class CallHandler {
const room = MatrixClientPeg.get().getRoom(payload.room_id);
if (!room) {
- console.error("Room %s does not exist.", payload.room_id);
+ console.error(`Room ${payload.room_id} does not exist.`);
return;
}
@@ -549,7 +635,7 @@ export default class CallHandler {
});
return;
} else if (members.length === 2) {
- console.info("Place %s call in %s", payload.type, payload.room_id);
+ console.info(`Place ${payload.type} call in ${payload.room_id}`);
this.placeCall(payload.room_id, payload.type, payload.local_element, payload.remote_element);
} else { // > 2
@@ -564,17 +650,17 @@ export default class CallHandler {
}
break;
case 'place_conference_call':
- console.info("Place conference call in %s", payload.room_id);
+ console.info("Place conference call in " + payload.room_id);
Analytics.trackEvent('voip', 'placeConferenceCall');
CountlyAnalytics.instance.trackStartCall(payload.room_id, payload.type === PlaceCallType.Video, true);
this.startCallApp(payload.room_id, payload.type);
break;
case 'end_conference':
- console.info("Terminating conference call in %s", payload.room_id);
+ console.info("Terminating conference call in " + payload.room_id);
this.terminateCallApp(payload.room_id);
break;
case 'hangup_conference':
- console.info("Leaving conference call in %s", payload.room_id);
+ console.info("Leaving conference call in "+ payload.room_id);
this.hangupCallApp(payload.room_id);
break;
case 'incoming_call':
@@ -586,13 +672,14 @@ export default class CallHandler {
const call = payload.call as MatrixCall;
- if (this.getCallForRoom(call.roomId)) {
+ const mappedRoomId = CallHandler.roomIdForCall(call);
+ if (this.getCallForRoom(mappedRoomId)) {
// ignore multiple incoming calls to the same room
return;
}
Analytics.trackEvent('voip', 'receiveCall', 'type', call.type);
- this.calls.set(call.roomId, call)
+ this.calls.set(mappedRoomId, call)
this.setCallListeners(call);
}
break;
diff --git a/src/ContentMessages.tsx b/src/ContentMessages.tsx
index 5409a606de..bec36d49f6 100644
--- a/src/ContentMessages.tsx
+++ b/src/ContentMessages.tsx
@@ -497,7 +497,7 @@ export default class ContentMessages {
content.info.mimetype = file.type;
}
- const prom = new Promise((resolve) => {
+ const prom = new Promise((resolve) => {
if (file.type.indexOf('image/') === 0) {
content.msgtype = 'm.image';
infoForImageFile(matrixClient, roomId, file).then((imageInfo) => {
diff --git a/src/CountlyAnalytics.ts b/src/CountlyAnalytics.ts
index b4727bc88b..974c08df18 100644
--- a/src/CountlyAnalytics.ts
+++ b/src/CountlyAnalytics.ts
@@ -840,7 +840,7 @@ export default class CountlyAnalytics {
let endTime = CountlyAnalytics.getTimestamp();
const cli = MatrixClientPeg.get();
if (!cli.getRoom(roomId)) {
- await new Promise(resolve => {
+ await new Promise(resolve => {
const handler = (room) => {
if (room.roomId === roomId) {
cli.off("Room", handler);
@@ -880,7 +880,7 @@ export default class CountlyAnalytics {
let endTime = CountlyAnalytics.getTimestamp();
if (!room.findEventById(eventId)) {
- await new Promise(resolve => {
+ await new Promise(resolve => {
const handler = (ev) => {
if (ev.getId() === eventId) {
room.off("Room.localEchoUpdated", handler);
diff --git a/src/HtmlUtils.tsx b/src/HtmlUtils.tsx
index 637c0a2696..7d6b049914 100644
--- a/src/HtmlUtils.tsx
+++ b/src/HtmlUtils.tsx
@@ -422,6 +422,8 @@ export function bodyToHtml(content: IContent, highlights: string[], opts: IOpts
if (SettingsStore.getValue("feature_latex_maths")) {
const phtml = cheerio.load(safeBody,
{ _useHtmlParser2: true, decodeEntities: false })
+ // @ts-ignore - The types for `replaceWith` wrongly expect
+ // Cheerio instance to be returned.
phtml('div, span[data-mx-maths!=""]').replaceWith(function(i, e) {
return katex.renderToString(
AllHtmlEntities.decode(phtml(e).attr('data-mx-maths')),
diff --git a/src/IdentityAuthClient.js b/src/IdentityAuthClient.js
index fbdb6812ee..d3bfee2380 100644
--- a/src/IdentityAuthClient.js
+++ b/src/IdentityAuthClient.js
@@ -165,6 +165,7 @@ export default class IdentityAuthClient {
});
const [confirmed] = await finished;
if (confirmed) {
+ // eslint-disable-next-line react-hooks/rules-of-hooks
useDefaultIdentityServer();
} else {
throw new AbortedIdentityActionError(
diff --git a/src/Lifecycle.ts b/src/Lifecycle.ts
index f87af1a791..7780d4c87a 100644
--- a/src/Lifecycle.ts
+++ b/src/Lifecycle.ts
@@ -46,11 +46,13 @@ import {IntegrationManagers} from "./integrations/IntegrationManagers";
import {Mjolnir} from "./mjolnir/Mjolnir";
import DeviceListener from "./DeviceListener";
import {Jitsi} from "./widgets/Jitsi";
-import {SSO_HOMESERVER_URL_KEY, SSO_ID_SERVER_URL_KEY} from "./BasePlatform";
+import {SSO_HOMESERVER_URL_KEY, SSO_ID_SERVER_URL_KEY, SSO_IDP_ID_KEY} from "./BasePlatform";
import ThreepidInviteStore from "./stores/ThreepidInviteStore";
import CountlyAnalytics from "./CountlyAnalytics";
import CallHandler from './CallHandler';
import LifecycleCustomisations from "./customisations/Lifecycle";
+import ErrorDialog from "./components/views/dialogs/ErrorDialog";
+import {_t} from "./languageHandler";
const HOMESERVER_URL_KEY = "mx_hs_url";
const ID_SERVER_URL_KEY = "mx_is_url";
@@ -162,7 +164,8 @@ export async function getStoredSessionOwner(): Promise<[string, boolean]> {
* query-parameters extracted from the real query-string of the starting
* URI.
*
- * @param {String} defaultDeviceDisplayName
+ * @param {string} defaultDeviceDisplayName
+ * @param {string} fragmentAfterLogin path to go to after a successful login, only used for "Try again"
*
* @returns {Promise} promise which resolves to true if we completed the token
* login, else false
@@ -170,6 +173,7 @@ export async function getStoredSessionOwner(): Promise<[string, boolean]> {
export function attemptTokenLogin(
queryParams: Record,
defaultDeviceDisplayName?: string,
+ fragmentAfterLogin?: string,
): Promise {
if (!queryParams.loginToken) {
return Promise.resolve(false);
@@ -179,6 +183,12 @@ export function attemptTokenLogin(
const identityServer = localStorage.getItem(SSO_ID_SERVER_URL_KEY);
if (!homeserver) {
console.warn("Cannot log in with token: can't determine HS URL to use");
+ Modal.createTrackedDialog("SSO", "Unknown HS", ErrorDialog, {
+ title: _t("We couldn't log you in"),
+ description: _t("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."),
+ button: _t("Try again"),
+ });
return Promise.resolve(false);
}
@@ -198,8 +208,28 @@ export function attemptTokenLogin(
return true;
});
}).catch((err) => {
- console.error("Failed to log in with login token: " + err + " " +
- err.data);
+ Modal.createTrackedDialog("SSO", "Token Rejected", ErrorDialog, {
+ title: _t("We couldn't log you in"),
+ description: err.name === "ConnectionError"
+ ? _t("Your homeserver was unreachable and was not able to log you in. Please try again. " +
+ "If this continues, please contact your homeserver administrator.")
+ : _t("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."),
+ button: _t("Try again"),
+ onFinished: tryAgain => {
+ if (tryAgain) {
+ const cli = Matrix.createClient({
+ baseUrl: homeserver,
+ idBaseUrl: identityServer,
+ });
+ const idpId = localStorage.getItem(SSO_IDP_ID_KEY) || undefined;
+ PlatformPeg.get().startSingleSignOn(cli, "sso", fragmentAfterLogin, idpId);
+ }
+ },
+ });
+ console.error("Failed to log in with login token:");
+ console.error(err);
return false;
});
}
@@ -366,7 +396,7 @@ async function abortLogin() {
// The plan is to gradually move the localStorage access done here into
// SessionStore to avoid bugs where the view becomes out-of-sync with
// localStorage (e.g. isGuest etc.)
-async function restoreFromLocalStorage(opts?: { ignoreGuest?: boolean }): Promise {
+export async function restoreFromLocalStorage(opts?: { ignoreGuest?: boolean }): Promise {
const ignoreGuest = opts?.ignoreGuest;
if (!localStorage) {
diff --git a/src/Login.ts b/src/Login.ts
index 6493b244e0..aecc0493c7 100644
--- a/src/Login.ts
+++ b/src/Login.ts
@@ -33,10 +33,20 @@ interface IPasswordFlow {
type: "m.login.password";
}
+export enum IdentityProviderBrand {
+ Gitlab = "org.matrix.gitlab",
+ Github = "org.matrix.github",
+ Apple = "org.matrix.apple",
+ Google = "org.matrix.google",
+ Facebook = "org.matrix.facebook",
+ Twitter = "org.matrix.twitter",
+}
+
export interface IIdentityProvider {
id: string;
name: string;
icon?: string;
+ brand?: IdentityProviderBrand | string;
}
export interface ISSOFlow {
diff --git a/src/Markdown.js b/src/Markdown.js
index dc4d442aff..f670bded12 100644
--- a/src/Markdown.js
+++ b/src/Markdown.js
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
-import commonmark from 'commonmark';
+import * as commonmark from 'commonmark';
import {escape} from "lodash";
const ALLOWED_HTML_TAGS = ['sub', 'sup', 'del', 'u'];
diff --git a/src/RoomNotifs.js b/src/RoomNotifs.js
index a86c521ac4..600655f635 100644
--- a/src/RoomNotifs.js
+++ b/src/RoomNotifs.js
@@ -202,12 +202,13 @@ function setRoomNotifsStateUnmuted(roomId, newState) {
}
function findOverrideMuteRule(roomId) {
- if (!MatrixClientPeg.get().pushRules ||
- !MatrixClientPeg.get().pushRules['global'] ||
- !MatrixClientPeg.get().pushRules['global'].override) {
+ const cli = MatrixClientPeg.get();
+ if (!cli.pushRules ||
+ !cli.pushRules['global'] ||
+ !cli.pushRules['global'].override) {
return null;
}
- for (const rule of MatrixClientPeg.get().pushRules['global'].override) {
+ for (const rule of cli.pushRules['global'].override) {
if (isRuleForRoom(roomId, rule)) {
if (isMuteRule(rule) && rule.enabled) {
return rule;
diff --git a/src/SlashCommands.tsx b/src/SlashCommands.tsx
index 79c21c4af5..a39ad33b04 100644
--- a/src/SlashCommands.tsx
+++ b/src/SlashCommands.tsx
@@ -48,6 +48,7 @@ import SettingsStore from "./settings/SettingsStore";
import {UIFeature} from "./settings/UIFeature";
import {CHAT_EFFECTS} from "./effects"
import CallHandler from "./CallHandler";
+import {guessAndSetDMRoom} from "./Rooms";
// XXX: workaround for https://github.com/microsoft/TypeScript/issues/31816
interface HTMLInputEvent extends Event {
@@ -1112,6 +1113,24 @@ export const Commands = [
return success();
},
}),
+ new Command({
+ command: "converttodm",
+ description: _td("Converts the room to a DM"),
+ category: CommandCategories.other,
+ runFn: function(roomId, args) {
+ const room = MatrixClientPeg.get().getRoom(roomId);
+ return success(guessAndSetDMRoom(room, true));
+ },
+ }),
+ new Command({
+ command: "converttoroom",
+ description: _td("Converts the DM to a room"),
+ category: CommandCategories.other,
+ runFn: function(roomId, args) {
+ const room = MatrixClientPeg.get().getRoom(roomId);
+ return success(guessAndSetDMRoom(room, false));
+ },
+ }),
// Command definitions for autocompletion ONLY:
// /me is special because its not handled by SlashCommands.js and is instead done inside the Composer classes
diff --git a/src/TextForEvent.js b/src/TextForEvent.js
index 56e9abc0f2..3afe41d216 100644
--- a/src/TextForEvent.js
+++ b/src/TextForEvent.js
@@ -19,6 +19,7 @@ import * as Roles from './Roles';
import {isValid3pidInvite} from "./RoomInvite";
import SettingsStore from "./settings/SettingsStore";
import {ALL_RULE_TYPES, ROOM_RULE_TYPES, SERVER_RULE_TYPES, USER_RULE_TYPES} from "./mjolnir/BanList";
+import {WIDGET_LAYOUT_EVENT_TYPE} from "./stores/widgets/WidgetLayoutStore";
function textForMemberEvent(ev) {
// XXX: SYJS-16 "sender is sometimes null for join messages"
@@ -477,6 +478,11 @@ function textForWidgetEvent(event) {
}
}
+function textForWidgetLayoutEvent(event) {
+ const senderName = event.sender?.name || event.getSender();
+ return _t("%(senderName)s has updated the widget layout", {senderName});
+}
+
function textForMjolnirEvent(event) {
const senderName = event.getSender();
const {entity: prevEntity} = event.getPrevContent();
@@ -583,6 +589,7 @@ const stateHandlers = {
// TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111)
'im.vector.modular.widgets': textForWidgetEvent,
+ [WIDGET_LAYOUT_EVENT_TYPE]: textForWidgetLayoutEvent,
};
// Add all the Mjolnir stuff to the renderer
diff --git a/src/VoipUserMapper.ts b/src/VoipUserMapper.ts
new file mode 100644
index 0000000000..a4f5822065
--- /dev/null
+++ b/src/VoipUserMapper.ts
@@ -0,0 +1,79 @@
+/*
+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 { ensureDMExists, findDMForUser } from './createRoom';
+import { MatrixClientPeg } from "./MatrixClientPeg";
+import DMRoomMap from "./utils/DMRoomMap";
+import SdkConfig from "./SdkConfig";
+
+// Functions for mapping users & rooms for the voip_mxid_translate_pattern
+// config option
+
+export function voipUserMapperEnabled(): boolean {
+ return SdkConfig.get()['voip_mxid_translate_pattern'] !== undefined;
+}
+
+// only exported for tests
+export function userToVirtualUser(userId: string, templateString?: string): string {
+ if (templateString === undefined) templateString = SdkConfig.get()['voip_mxid_translate_pattern'];
+ if (!templateString) return null;
+ return templateString.replace('${mxid}', encodeURIComponent(userId).replace(/%/g, '=').toLowerCase());
+}
+
+// only exported for tests
+export function virtualUserToUser(userId: string, templateString?: string): string {
+ if (templateString === undefined) templateString = SdkConfig.get()['voip_mxid_translate_pattern'];
+ if (!templateString) return null;
+
+ const regexString = templateString.replace('${mxid}', '(.+)');
+
+ const match = userId.match('^' + regexString + '$');
+ if (!match) return null;
+
+ return decodeURIComponent(match[1].replace(/=/g, '%'));
+}
+
+async function getOrCreateVirtualRoomForUser(userId: string):Promise {
+ const virtualUser = userToVirtualUser(userId);
+ if (!virtualUser) return null;
+
+ return await ensureDMExists(MatrixClientPeg.get(), virtualUser);
+}
+
+export async function getOrCreateVirtualRoomForRoom(roomId: string):Promise {
+ const user = DMRoomMap.shared().getUserIdForRoomId(roomId);
+ if (!user) return null;
+ return getOrCreateVirtualRoomForUser(user);
+}
+
+export function roomForVirtualRoom(roomId: string):string {
+ const virtualUser = DMRoomMap.shared().getUserIdForRoomId(roomId);
+ if (!virtualUser) return null;
+ const realUser = virtualUserToUser(virtualUser);
+ const room = findDMForUser(MatrixClientPeg.get(), realUser);
+ if (room) {
+ return room.roomId;
+ } else {
+ return null;
+ }
+}
+
+export function isVirtualRoom(roomId: string):boolean {
+ const virtualUser = DMRoomMap.shared().getUserIdForRoomId(roomId);
+ if (!virtualUser) return null;
+ const realUser = virtualUserToUser(virtualUser);
+ return Boolean(realUser);
+}
diff --git a/src/accessibility/KeyboardShortcuts.tsx b/src/accessibility/KeyboardShortcuts.tsx
index 48d0eb2ab1..7a0ba58c97 100644
--- a/src/accessibility/KeyboardShortcuts.tsx
+++ b/src/accessibility/KeyboardShortcuts.tsx
@@ -168,6 +168,12 @@ const shortcuts: Record = {
key: Key.U,
}],
description: _td("Upload a file"),
+ }, {
+ keybinds: [{
+ modifiers: [CMD_OR_CTRL],
+ key: Key.F,
+ }],
+ description: _td("Search (must be enabled)"),
},
],
diff --git a/src/async-components/views/dialogs/security/CreateKeyBackupDialog.js b/src/async-components/views/dialogs/security/CreateKeyBackupDialog.js
index ab39a094db..863ee2b427 100644
--- a/src/async-components/views/dialogs/security/CreateKeyBackupDialog.js
+++ b/src/async-components/views/dialogs/security/CreateKeyBackupDialog.js
@@ -95,7 +95,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
const blob = new Blob([this._keyBackupInfo.recovery_key], {
type: 'text/plain;charset=us-ascii',
});
- FileSaver.saveAs(blob, 'recovery-key.txt');
+ FileSaver.saveAs(blob, 'security-key.txt');
this.setState({
downloaded: true,
@@ -238,7 +238,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
)}
{_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("Advanced")}
- {_t("Set up with a recovery key")}
+ {_t("Set up with a Security Key")}
;
@@ -310,7 +310,7 @@ export default class CreateKeyBackupDialog extends React.PureComponent {
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
return
);
}
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 (
@@ -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..4df74f77ce 100644
--- a/src/components/views/rooms/EventTile.js
+++ b/src/components/views/rooms/EventTile.js
@@ -37,6 +37,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 +66,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',
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 {
,
);
- 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 2d6396c83f..45db15df7c 100644
--- a/src/components/views/rooms/RoomList.tsx
+++ b/src/components/views/rooms/RoomList.tsx
@@ -455,8 +455,9 @@ export default class RoomList extends React.PureComponent {
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")}
{_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.",
)}
;
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 {
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/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 76bec190bf..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,9 +235,9 @@
"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",
@@ -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",
@@ -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,11 +1253,11 @@
"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á.",
@@ -1265,7 +1265,7 @@
"Try to join anyway": "Stejně se pokusit vstoupit",
"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živatel reagoval s %(shortName)s",
+ "reacted with %(shortName)s": " reagoval/a s %(shortName)s",
"edited": "upraveno",
"Maximize apps": "Maximalizovat aplikace",
"Rotate Left": "Otočit doleva",
@@ -1509,11 +1509,11 @@
"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",
@@ -1530,10 +1530,10 @@
"Quick Reactions": "Rychlé reakce",
"Cancel search": "Zrušit hledání",
"Please create a new issue on GitHub so that we can investigate this bug.": "Vyrobte prosím nové 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",
@@ -1806,7 +1806,7 @@
"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",
@@ -1822,13 +1822,13 @@
"Send a reply…": "Odpovědět…",
"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í.",
@@ -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",
@@ -2789,7 +2789,7 @@
"Fill Screen": "Vyplnit obrazovku",
"Voice Call": "Hlasový hovor",
"Video Call": "Videohovor",
- "%(senderName)s ended the call": "Uživatel %(senderName)s ukončil hovor",
+ "%(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ě",
@@ -2879,7 +2879,7 @@
"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 seznam přístupů serveru pro tuto místnost.",
+ "%(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",
@@ -2904,5 +2904,69 @@
"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"
+ "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 or set up new recovery options": "Pokud jste zapomněli bezpečnostní frázi, můžete použít bezpečnostní klíč nebo nastavit 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/de_DE.json b/src/i18n/strings/de_DE.json
index 14fba36d90..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",
@@ -202,7 +202,7 @@
"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 or stop warning about the empty room?": "Sonst ist hier aktuell niemand. Möchtest du Benutzer einladen oder die Warnmeldung 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.",
@@ -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,9 +1328,9 @@
"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 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.": "Alternativ kannst du versuchen, den öffentlichen Server unter turn.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 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.": "Alternativ kannst du versuchen, den öffentlichen Server unter turn.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 server to 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 Rohtext, ohne sie als Markdown darzustellen",
@@ -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 von unbekanntem/r Nutzer!n mit ID %(deviceId)s",
"Backup key stored: ": "Backup Schlüssel gespeichert: ",
"Clear notifications": "Benachrichtigungen löschen",
- "Disconnect from the identity server and 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,60 +1573,60 @@
"%(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 in Settings.": "Verwende einen Identitätsserver um mit einer E-Mail-Adresse einzuladen. Benutzer den Standard-Identitätsserver (%(defaultIdentityServerName)s) oder konfiguriere einen in den Einstellungen.",
- "Use an identity server to invite by email. Manage in Settings.": "Verwende einen Identitätsserver um mit einer E-Mail-Adresse einzuladen. Diese können in den Einstellungen 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 in Settings.": "Verwende einen Identitätsserver, um per E-Mail einzuladen. Nutze den Standard-Identitätsserver (%(defaultIdentityServerName)s) oder konfiguriere einen in den Einstellungen.",
+ "Use an identity server to invite by email. Manage in Settings.": "Verwende einen Identitätsserver, um mit einer E-Mail-Adresse einzuladen. Diese können in den Einstellungen 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",
@@ -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 with search 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 der integrierten Suchfunktion bauen.",
"Backup has a valid signature from this user": "Die Sicherung hat eine gültige Signatur dieses Benutzers",
- "Backup has a invalid signature from this user": "Die Sicherung hat eine ungültige Signatur dieses Benutzers",
+ "Backup has a invalid signature from this user": "Die Sicherung hat eine ungültige Signatur von diesem/r Benutzer!n",
"Backup has a valid signature from verified session ": "Die Sicherung hat eine gültige Signatur von einer verifizierten Sitzung ",
"Backup has a valid signature from unverified session ": "Die Sicherung hat eine gültige Signatur von einer nicht verifizierten Sitzung ",
"Backup has an invalid signature from verified session ": "Die Sicherung hat eine ungültige Signatur von einer verifizierten Sitzung ",
"Backup has an invalid signature from unverified session ": "Die Sicherung hat eine ungültige Signatur von einer nicht 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 ist sende 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, please submit 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 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 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.": "Bitte erstelle 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 from to .": "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",
@@ -2979,5 +2979,75 @@
"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."
+ "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 or set up new recovery options": "Wenn du deine Sicherheitsphrase vergessen hast, kannst du deinen Sicherheitsschlüssel nutzen oder neue 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 398d83f3fe..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": "Απομάκρυνση",
@@ -608,5 +608,318 @@
"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": "Επιβεβαίωση"
+ "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 274bd247e2..a9d31bb9f2 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 server to 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",
@@ -474,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.",
@@ -548,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",
@@ -725,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.",
@@ -784,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)",
@@ -794,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",
@@ -1089,7 +1105,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:",
@@ -1449,6 +1465,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",
@@ -1635,6 +1652,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",
@@ -1837,6 +1855,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.": "Please create a new issue on GitHub so that we can investigate this bug.",
@@ -2067,6 +2088,19 @@
"Please view existing bugs on Github first. No match? Start a new one.": "Please view existing bugs on Github first. No match? Start a new one.",
"PRO TIP: If you start a bug, please submit debug logs to help us track down the problem.": "PRO TIP: If you start a bug, please submit debug 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.",
@@ -2138,7 +2172,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.",
@@ -2217,7 +2251,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",
@@ -2240,16 +2273,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.",
@@ -2264,25 +2296,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 or set up new recovery options": "If you've forgotten your recovery passphrase you can use your recovery key or set 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 can use your Security Key or set up new recovery options": "If you've forgotten your Security Phrase you can use your Security Key or set 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",
@@ -2332,6 +2364,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!",
@@ -2417,6 +2450,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 pro": "Upgrade to pro",
"Explore rooms": "Explore rooms",
"Failed to reject invitation": "Failed to reject invitation",
"Cannot create rooms in this community": "Cannot create rooms in this community",
@@ -2559,8 +2593,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",
@@ -2595,39 +2629,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:",
@@ -2637,6 +2670,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.",
@@ -2661,13 +2695,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.",
@@ -2706,6 +2740,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/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 as voice or video.": "Unirse con voz o ví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)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|other": "Reenviar todo o cancelar todo ahora. También puedes seleccionar mensajes individuales para reenviar o cancelar.",
"%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|one": "Reenviar mensaje o cancelar 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 to invite others or stop warning about the empty room?": "¡No hay nadie aquí! ¿Le gustaría invitar a otros o dejar 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 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.": "Alternativamente, puedes tratar de usar el servidor público en turn.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 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.": "Como alternativa, puedes intentar usar el servidor público turn.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)",
"Accept to 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 de valido de este usuario",
+ "Backup has a valid signature from this user": "La copia de seguridad tiene una firma de valido de este usuario",
"Backup has a invalid signature from this user": "La copia de seguridad tiene una firma de no_valida de este usuario",
"Backup has a signature from unknown user with ID %(deviceId)s": "La copia de seguridad tiene una firma de desconocido del usuario con ID %(deviceId)s",
"Backup has a signature from unknown session with ID %(deviceId)s": "La copia de seguridad tiene una firma de desconocido de la sesión con ID %(deviceId)s",
"Backup has a valid signature from this session": "La copia de seguridad tiene una firma válida de esta sesión",
"Backup has an invalid signature from this session": "La copia de seguridad tiene una firma no_válida de esta sesión",
- "Backup has a valid signature from verified session ": "La copia de seguridad tiene una firma válida de verificada sesión ",
- "Backup has a valid signature from unverified session ": "La copia de seguridad tiene una firma de válida de sesión no verificada",
- "Backup has an invalid signature from verified session ": "La copia de seguridad tiene una firma de no válida de sesión verificada",
- "Backup has an invalid signature from unverified session ": "La copia de seguridad tiene una firma de no válida de sesión no verificada",
+ "Backup has a valid signature from verified session ": "La copia de seguridad tiene una firma válida de verificada sesión ",
+ "Backup has a valid signature from unverified session ": "La copia de seguridad tiene una firma de válida de sesión no verificada",
+ "Backup has an invalid signature from verified session ": "La copia de seguridad tiene una firma de no válida de sesión verificada",
+ "Backup has an invalid signature from unverified session ": "La copia de seguridad tiene una firma de no válida de sesión no 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 in Settings.": "Usar un Servidor de Identidad para invitar vía correo electrónico. . Use (%(defaultIdentityServerName)s)o seleccione en Ajustes.",
+ "Use an identity server to invite by email. Use the default (%(defaultIdentityServerName)s) or manage in Settings.": "Usar un servidor de identidad para invitar vía correo electrónico. . Usar (%(defaultIdentityServerName)s)o seleccione en Ajustes.",
"Use an identity server to invite by email. Manage in Settings.": "Utilice un servidor de identidad para invitar por correo electrónico. Gestionar en Ajustes.",
"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 favor somete 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 data with %(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) or create a new issue if you can't find it.": "Para ayudar a evitar la duplicación de entradas, por favor ver 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 e00395706d..4d129c2ca3 100644
--- a/src/i18n/strings/et.json
+++ b/src/i18n/strings/et.json
@@ -2991,5 +2991,67 @@
"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"
+ "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 or set up new recovery options": "Kui sa oled unustanud turvafraasi, siis sa saad kasutada oma turvavõtit või seadistada 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 77f59690dd..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",
@@ -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?",
@@ -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.",
@@ -1130,7 +1130,7 @@
"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.",
@@ -1257,8 +1257,8 @@
"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.",
@@ -1436,7 +1436,7 @@
"Remove %(phone)s?": "Poista %(phone)s?",
"Command Help": "Komento-ohje",
"This account has been deactivated.": "Tämä tili on poistettu.",
- "Sends a message as plain text, without interpreting it as markdown": "Lähettää viestin pelkkänä tekstinä, tulkitsematta sitä markdownina",
+ "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 use to 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.",
@@ -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 on kelvollinen allekirjoitus tältä käyttäjältä",
@@ -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",
+ "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.",
@@ -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",
@@ -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",
@@ -2705,8 +2705,8 @@
"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?",
@@ -2745,8 +2745,8 @@
"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": "Katso, milloin nimi vaihtuu tässä huoneessa",
- "See when the name changes in your active room": "Katso, milloin nimi muuttuu aktiivisessa huoneessa",
+ "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",
@@ -2787,26 +2787,26 @@
"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ähetä viesti lumisateen kera",
+ "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ähetä konfettia",
+ "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ötunnusta ei voi muuttaa.",
- "Community ID: +:%(domain)s": "Yhteisötunnus: +:%(domain)s",
+ "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ä olevia tietoja jaetaan %(widgetDomain)s:n kanssa",
+ "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": "Isännöi tiliä osoitteessa",
+ "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.",
@@ -2816,7 +2816,7 @@
"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)",
+ "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.",
@@ -2828,9 +2828,31 @@
"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.": "Jos teit tämän vahingossa, voit ottaa käyttöön turvalliset viestit tälle istunnolle, se salaa tämän istunnon viestihistorian uudella palautustavalla.",
+ "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ä"
+ "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 13ff009e9f..3bb86d2c63 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -2561,7 +2561,7 @@
"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",
+ "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",
@@ -2821,7 +2821,7 @@
"Brazil": "Brésil",
"Bouvet Island": "Île Bouvet",
"Botswana": "",
- "Bosnia": "",
+ "Bosnia": "Bosnie-Herzegovine",
"Bolivia": "",
"Bhutan": "",
"Bermuda": "",
@@ -2848,5 +2848,92 @@
"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"
+ "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 421a64aba0..006412fb88 100644
--- a/src/i18n/strings/gl.json
+++ b/src/i18n/strings/gl.json
@@ -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 in Settings.": "Usa un servidor de identidade para convidar por email. Usa valor por omisión (%(defaultIdentityServerName)s) ou xestionao en Axustes.",
+ "Use an identity server to invite by email. Use the default (%(defaultIdentityServerName)s) or manage in Settings.": "Usa un servidor de identidade para convidar por email. Usa o valor por defecto (%(defaultIdentityServerName)s) ou xestionao en Axustes.",
"Use an identity server to invite by email. Manage in Settings.": "Usa un servidor de identidade para convidar por email. Xestionao en Axustes.",
"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",
@@ -2975,7 +2975,7 @@
"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",
+ "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",
@@ -2990,5 +2990,67 @@
"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"
+ "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 or set up new recovery options": "Se esqueceches a túa Frase de Seguridade podes usar a túa Chave de Seguridade ou establecer 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 a1ca215c3b..30ca524699 100644
--- a/src/i18n/strings/he.json
+++ b/src/i18n/strings/he.json
@@ -608,7 +608,7 @@
"Vanuatu": "ונואטו",
"Default": "ברירת מחדל",
"Sign In": "כניסה",
- "Create Account": "צור חשבון",
+ "Create Account": "יצירת חשבון",
"Use your account or create a new one to continue.": "השתמשו בחשבונכם או צרו חשבון חדש.",
"Sign In or Create Account": "התחברו או צרו חשבון",
"Zimbabwe": "זימבבואה",
@@ -767,8 +767,8 @@
"%(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 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 התחיל שיחה קולית. (אינו נתמך בדפדפן זה)",
@@ -803,7 +803,7 @@
"%(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 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 שידרג את החדר הזה.",
@@ -816,7 +816,7 @@
"%(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 הצתרף אל החדר.",
+ "%(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 שינו את תמונת הפרופיל שלהם.",
@@ -1103,7 +1103,7 @@
"Show read receipts sent by other users": "הצג הודעות שנקראו בידי משתמשים אחרים",
"Show display name changes": "הצג שינויים של שמות",
"Show avatar changes": "הצג שינויים באווטר",
- "Show join/leave messages (invites/kicks/bans unaffected)": "הצג הודעות הצתרף\\עזב (הזמנות\\בעיטות\\חסימות לא מושפעות)",
+ "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": "החל הצעות לסמלים בזמן כתיבה",
@@ -1258,7 +1258,7 @@
"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",
+ "Invite people to join %(communityName)s": "הזמנת אנשים להצטרף אל %(communityName)s",
"Send %(count)s invites|one": "שלח %(count)s הזמנות",
"Send %(count)s invites|other": "שלח %(count)s הזמנות",
"Skip": "דלג",
@@ -1363,8 +1363,8 @@
"%(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 פעמים",
+ "%(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 עזב\\ה",
@@ -1374,7 +1374,7 @@
"%(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 הצתרף",
+ "%(severalUsers)sjoined %(count)s times|one": "%(severalUsers)s הצטרפ/ה",
"%(nameList)s %(transitionList)s": "%(nameList)s-%(transitionList)s",
"Language Dropdown": "תפריט שפות",
"Information": "מידע",
@@ -1386,7 +1386,7 @@
"expand": "הרחב",
"Please create a new issue on GitHub so that we can investigate this bug.": "אנא צור בעיה חדשה ב- GitHub כדי שנוכל לחקור את הבאג הזה.",
"No results": "אין תוצאות",
- "Join": "הצתרפות",
+ "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": "השתמשו ב אפליקציית שולחן העבודה לחיפוש הודעות מוצפנות",
@@ -1632,7 +1632,7 @@
"Show Widgets": "הצג ישומונים",
"Hide Widgets": "הסתר ישומונים",
"Forget room": "שכח חדר",
- "Join Room": "הצתרף אל חדר",
+ "Join Room": "הצטרף אל חדר",
"(~%(count)s results)|one": "(תוצאת %(count)s)",
"(~%(count)s results)|other": "(תוצאת %(count)s)",
"No recently visited rooms": "אין חדרים שבקרתם בהם לאחרונה",
@@ -2068,11 +2068,11 @@
"%(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. האם תרצו להצתרף?",
+ "%(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?",
+ "Do you want to join %(roomName)s?": "האם אתם מעוניינים להצטרף אל %(roomName)s?",
"Start chatting": "החלו לדבר",
" wants to chat": " מעוניין לדבר איתכם",
"Do you want to chat with %(user)s?": "האם אתם רוצים לדבר עם %(user)s?",
@@ -2081,14 +2081,14 @@
"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": "הצתרף אל הדיון",
+ "Join the discussion": "הצטרף אל הדיון",
"You can still join it because this is a public room.": "אתה עדיין יכול להצטרף אליו כי זה חדר ציבורי.",
- "Try to join anyway": "נסה להצתרף בכל מקרה",
+ "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": "הצתרפות מחדש",
+ "Re-join": "הצטרפות מחדש",
"Forget this room": "שכח חדר זה",
"Reason: %(reason)s": "סיבה: %(reason)s",
"You were kicked from %(roomName)s by %(memberName)s": "אתם נבעטתם מ-%(roomName)s על ידי %(memberName)s",
@@ -2097,7 +2097,7 @@
"You do not have permission to create rooms in this community.": "אין לך הרשאה ליצור חדרים בקהילה זו.",
"Cannot create rooms in this community": "לא ניתן ליצור חדרים בקהילה זו",
"Failed to reject invitation": "דחיית ההזמנה נכשלה",
- "Explore rooms": "חקור חדרים",
+ "Explore rooms": "שיטוט בחדרים",
"Create a Group Chat": "צור צ'אט קבוצתי",
"Explore Public Rooms": "חקור חדרים ציבוריים",
"Send a Direct Message": "שלח הודעה ישירה",
@@ -2115,11 +2115,11 @@
"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?": "מי יכול להצתרף לקהילה זו?",
+ "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": "הצתרף לקהילה זו",
+ "Join this community": "הצטרפות לקהילה זו",
"%(inviter)s has invited you to join this community": "%(inviter)s הזמין אותך להצטרף לקהילה זו",
"Featured Users:": "משתמשים מומלצים:",
"Featured Rooms:": "חדרים מומלצים:",
@@ -2742,5 +2742,37 @@
"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": "יציאה"
+ "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 ": "אם שכחת את מפתח האבטחה שלך תוכל