From 9151640d408ea5b48f12b7510081b7f32874561e Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 14 Apr 2026 14:15:36 +0100 Subject: [PATCH 1/9] Exclude binary files from Sonar analysis (#33144) * Exclude png files from Sonar analysis They just cause errors `11:39:29.466 WARN Invalid character encountered in file /home/runner/work/element-web/element-web/apps/web/res/vector-icons/152.png at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.` * Modify sonar-project.properties for exclusions Updated sonar.exclusions to include additional file types. --- sonar-project.properties | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/sonar-project.properties b/sonar-project.properties index 0729966d8b..7f08ea24b2 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -7,7 +7,23 @@ sonar.organization=element-hq sonar.sources=. sonar.tests=apps/web/test,apps/web/playwright,apps/desktop/playwright,packages sonar.test.inclusions=apps/web/test/*,apps/web/playwright/*,apps/desktop/playwright/*,packages/*/src/**/*.test.*,packages/*/src/test/**/* -sonar.exclusions=apps/web/__mocks__,docs,apps/web/element.io,apps/web/nginx,apps/web/src/vector/modernizr.cjs +sonar.exclusions=\ + apps/web/__mocks__,\ + docs,\ + apps/web/element.io,\ + apps/web/nginx,\ + apps/web/src/vector/modernizr.cjs,\ + **/*.webm,\ + **/*.ogg,\ + **/*.mp3,\ + **/*.woff2,\ + **/*.ttf,\ + **/*.webp,\ + **/*.jpg,\ + **/*.apng,\ + **/*.ico,\ + **/*.png,\ + **/*.gif sonar.cpd.exclusions=**/src/i18n/strings/*.json sonar.javascript.lcov.reportPaths=apps/web/coverage/lcov.info,packages/shared-components/coverage/lcov.info From cc9549da0adf58e9770dfc4585269642e5fc7e53 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 14 Apr 2026 14:17:32 +0100 Subject: [PATCH 2/9] Skip bulk of CI in pull_request renovate runs (#33141) * Skip bulk of CI in pull_request renovate runs Relying instead on running the full suite in the merge queue to lower the impact of Renovate on the github actions concurrency limits in the org * Iterate --- .github/workflows/build-and-test.yaml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index c5cf85727d..cad1faca0c 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -54,6 +54,8 @@ jobs: outputs: num-runners: ${{ env.NUM_RUNNERS }} runners-matrix: ${{ steps.runner-vars.outputs.matrix }} + # Skip pull_request runs on renovate PRs to speed up CI time, delegating to the full run in merge queue + skip: ${{ inputs.skip || (github.event_name == 'pull_request' && startsWith(github.head_ref, 'renovate/')) }} steps: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -102,7 +104,7 @@ jobs: playwright_ew: name: "Run Tests [${{ matrix.project }}] ${{ matrix.runner }}/${{ needs.build_ew.outputs.num-runners }}" needs: build_ew - if: inputs.skip != true + if: needs.build_ew.outputs.skip != 'true' runs-on: ubuntu-24.04 permissions: actions: read @@ -182,7 +184,7 @@ jobs: downstream-modules: name: Downstream Playwright tests [element-modules] needs: build_ew - if: inputs.skip != true && github.event_name == 'merge_group' + if: needs.build_ew.outputs.skip != 'true' && github.event_name == 'merge_group' uses: element-hq/element-modules/.github/workflows/reusable-playwright-tests.yml@main # zizmor: ignore[unpinned-uses] with: webapp-artifact: webapp @@ -192,7 +194,7 @@ jobs: name: "Prepare Element Desktop" uses: ./.github/workflows/build_desktop_prepare.yaml needs: build_ew - if: inputs.skip != true + if: needs.build_ew.outputs.skip != 'true' permissions: contents: read with: @@ -204,7 +206,6 @@ jobs: needs: prepare_ed name: "Desktop Windows" uses: ./.github/workflows/build_desktop_windows.yaml - if: inputs.skip != true strategy: matrix: arch: [x64, ia32, arm64] @@ -216,7 +217,6 @@ jobs: needs: prepare_ed name: "Desktop Linux" uses: ./.github/workflows/build_desktop_linux.yaml - if: inputs.skip != true strategy: matrix: sqlcipher: [system, static] @@ -236,13 +236,13 @@ jobs: needs: prepare_ed name: "Desktop macOS" uses: ./.github/workflows/build_desktop_macos.yaml - if: inputs.skip != true with: blob_report: true complete: name: end-to-end-tests needs: + - build_ew - playwright_ew - downstream-modules - prepare_ed @@ -253,25 +253,25 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - if: inputs.skip != true + if: needs.build_ew.outputs.skip != 'true' with: persist-credentials: false repository: element-hq/element-web - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5 - if: inputs.skip != true + if: needs.build_ew.outputs.skip != 'true' - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 - if: inputs.skip != true + if: needs.build_ew.outputs.skip != 'true' with: cache: "pnpm" node-version: "lts/*" - name: Install dependencies - if: inputs.skip != true + if: needs.build_ew.outputs.skip != 'true' run: pnpm install --frozen-lockfile - name: Download blob reports from GitHub Actions Artifacts - if: inputs.skip != true + if: needs.build_ew.outputs.skip != 'true' uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: pattern: blob-report-* @@ -279,7 +279,7 @@ jobs: merge-multiple: true - name: Merge into HTML Report - if: inputs.skip != true + if: needs.build_ew.outputs.skip != 'true' run: | pnpm playwright merge-reports \ --config=playwright-merge.config.ts \ @@ -291,7 +291,7 @@ jobs: # Upload the HTML report even if one of our reporters fails, this can happen when stale screenshots are detected - name: Upload HTML report - if: always() && inputs.skip != true + if: always() && needs.build_ew.outputs.skip != 'true' uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: html-report From 80cf9e5b4acd179fce950d2e34cbe99ed624824d Mon Sep 17 00:00:00 2001 From: Zack Date: Tue, 14 Apr 2026 15:20:15 +0200 Subject: [PATCH 3/9] Shared Components Restructure, Cherry Picked | Room Shell Structure (#32917) * refactor(shared-components): move composer and right-panel tree * refactor: cleanup remaining structure leftovers * test(shared-components): add room shell visual baselines * Correct Path --- .../src/components/views/elements/AppTile.tsx | 2 +- .../views/right_panel/ExtensionsCard.tsx | 2 +- .../views/right_panel/WidgetCard.tsx | 2 +- .../WidgetContextMenuViewModel.tsx | 32 +++++++++--------- .../WidgetContextMenuViewModel-test.tsx | 24 ++++++------- .../Banner.stories.tsx/critical-auto.png | Bin 0 -> 10299 bytes .../Banner.stories.tsx/default-auto.png | Bin 0 -> 8557 bytes .../Banner/Banner.stories.tsx/info-auto.png | Bin 0 -> 10278 bytes .../Banner.stories.tsx/success-auto.png | Bin 0 -> 10936 bytes .../Banner.stories.tsx/with-action-auto.png | Bin 0 -> 14859 bytes .../with-avatar-image-auto.png | Bin 0 -> 7965 bytes .../with-loads-of-content-auto.png | Bin 0 -> 43888 bytes .../Banner.stories.tsx/without-close-auto.png | Bin 0 -> 6822 bytes .../default-auto.png | Bin 0 -> 32076 bytes .../only-basic-modification-auto.png | Bin 0 -> 24880 bytes packages/shared-components/src/index.ts | 4 +-- .../room/RoomStatusBar/RoomStatusBarView.tsx | 2 +- .../composer/Banner/Banner.module.css | 0 .../composer/Banner/Banner.stories.tsx | 0 .../composer/Banner/Banner.test.tsx | 0 .../src/{ => room}/composer/Banner/Banner.tsx | 2 +- .../Banner/__snapshots__/Banner.test.tsx.snap | 0 .../src/{ => room}/composer/Banner/index.ts | 0 .../WidgetContextMenuView.stories.tsx | 4 +-- .../WidgetContextMenuView.test.tsx | 6 ++-- .../WidgetContextMenuView.tsx | 6 ++-- .../WidgetContextMenuView.test.tsx.snap | 0 .../WidgetContextMenuView}/index.ts | 0 28 files changed, 43 insertions(+), 43 deletions(-) rename apps/web/src/viewmodels/{ => room}/right-panel/WidgetContextMenuViewModel.tsx (91%) rename apps/web/test/viewmodels/{ => room}/right-panel/WidgetContextMenuViewModel-test.tsx (92%) create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/critical-auto.png create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/default-auto.png create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/info-auto.png create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/success-auto.png create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/with-action-auto.png create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/with-avatar-image-auto.png create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/with-loads-of-content-auto.png create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/without-close-auto.png create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.stories.tsx/default-auto.png create mode 100644 packages/shared-components/__vis__/linux/__baselines__/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.stories.tsx/only-basic-modification-auto.png rename packages/shared-components/src/{ => room}/composer/Banner/Banner.module.css (100%) rename packages/shared-components/src/{ => room}/composer/Banner/Banner.stories.tsx (100%) rename packages/shared-components/src/{ => room}/composer/Banner/Banner.test.tsx (100%) rename packages/shared-components/src/{ => room}/composer/Banner/Banner.tsx (98%) rename packages/shared-components/src/{ => room}/composer/Banner/__snapshots__/Banner.test.tsx.snap (100%) rename packages/shared-components/src/{ => room}/composer/Banner/index.ts (100%) rename packages/shared-components/src/{right-panel/WidgetContextMenu => room/right-panel/WidgetContextMenuView}/WidgetContextMenuView.stories.tsx (94%) rename packages/shared-components/src/{right-panel/WidgetContextMenu => room/right-panel/WidgetContextMenuView}/WidgetContextMenuView.test.tsx (95%) rename packages/shared-components/src/{right-panel/WidgetContextMenu => room/right-panel/WidgetContextMenuView}/WidgetContextMenuView.tsx (96%) rename packages/shared-components/src/{right-panel/WidgetContextMenu => room/right-panel/WidgetContextMenuView}/__snapshots__/WidgetContextMenuView.test.tsx.snap (100%) rename packages/shared-components/src/{right-panel/WidgetContextMenu => room/right-panel/WidgetContextMenuView}/index.ts (100%) diff --git a/apps/web/src/components/views/elements/AppTile.tsx b/apps/web/src/components/views/elements/AppTile.tsx index c35a77489f..9f3a203666 100644 --- a/apps/web/src/components/views/elements/AppTile.tsx +++ b/apps/web/src/components/views/elements/AppTile.tsx @@ -63,7 +63,7 @@ import { toWidgetDescriptor } from "../../../modules/WidgetLifecycleApi"; import { parseUrl } from "../../../utils/UrlUtils"; import RightPanelStore from "../../../stores/right-panel/RightPanelStore.ts"; import { RightPanelPhases } from "../../../stores/right-panel/RightPanelStorePhases.ts"; -import { WidgetContextMenu } from "../../../viewmodels/right-panel/WidgetContextMenuViewModel.tsx"; +import { WidgetContextMenu } from "../../../viewmodels/room/right-panel/WidgetContextMenuViewModel.tsx"; // Note that there is advice saying allow-scripts shouldn't be used with allow-same-origin // because that would allow the iframe to programmatically remove the sandbox attribute, but diff --git a/apps/web/src/components/views/right_panel/ExtensionsCard.tsx b/apps/web/src/components/views/right_panel/ExtensionsCard.tsx index 25aabadd55..51cd5599e9 100644 --- a/apps/web/src/components/views/right_panel/ExtensionsCard.tsx +++ b/apps/web/src/components/views/right_panel/ExtensionsCard.tsx @@ -31,7 +31,7 @@ import { IntegrationManagers } from "../../../integrations/IntegrationManagers"; import EmptyState from "./EmptyState"; import { shouldShowComponent } from "../../../customisations/helpers/UIComponents.ts"; import { UIComponent } from "../../../settings/UIFeature.ts"; -import { WidgetContextMenu } from "../../../viewmodels/right-panel/WidgetContextMenuViewModel.tsx"; +import { WidgetContextMenu } from "../../../viewmodels/room/right-panel/WidgetContextMenuViewModel.tsx"; interface Props { room: Room; diff --git a/apps/web/src/components/views/right_panel/WidgetCard.tsx b/apps/web/src/components/views/right_panel/WidgetCard.tsx index b9c7c23957..12b65e0702 100644 --- a/apps/web/src/components/views/right_panel/WidgetCard.tsx +++ b/apps/web/src/components/views/right_panel/WidgetCard.tsx @@ -18,7 +18,7 @@ import { ContextMenuButton, useContextMenu } from "../../structures/ContextMenu" import { WidgetLayoutStore } from "../../../stores/widgets/WidgetLayoutStore"; import RightPanelStore from "../../../stores/right-panel/RightPanelStore"; import Heading from "../typography/Heading"; -import { WidgetContextMenu } from "../../../viewmodels/right-panel/WidgetContextMenuViewModel"; +import { WidgetContextMenu } from "../../../viewmodels/room/right-panel/WidgetContextMenuViewModel"; interface IProps { room: Room; diff --git a/apps/web/src/viewmodels/right-panel/WidgetContextMenuViewModel.tsx b/apps/web/src/viewmodels/room/right-panel/WidgetContextMenuViewModel.tsx similarity index 91% rename from apps/web/src/viewmodels/right-panel/WidgetContextMenuViewModel.tsx rename to apps/web/src/viewmodels/room/right-panel/WidgetContextMenuViewModel.tsx index 83f02a1c05..43932592fb 100644 --- a/apps/web/src/viewmodels/right-panel/WidgetContextMenuViewModel.tsx +++ b/apps/web/src/viewmodels/room/right-panel/WidgetContextMenuViewModel.tsx @@ -17,22 +17,22 @@ import { } from "@element-hq/web-shared-components"; import { type ApprovalOpts, WidgetLifecycle } from "@matrix-org/react-sdk-module-api/lib/lifecycles/WidgetLifecycle"; -import ErrorDialog from "../../components/views/dialogs/ErrorDialog"; -import QuestionDialog from "../../components/views/dialogs/QuestionDialog"; -import MatrixClientContext from "../../contexts/MatrixClientContext"; -import { useScopedRoomContext } from "../../contexts/ScopedRoomContext"; -import { _t } from "../../languageHandler"; -import { getConfigLivestreamUrl, startJitsiAudioLivestream } from "../../Livestream"; -import Modal from "../../Modal"; -import SettingsStore from "../../settings/SettingsStore"; -import { WidgetLayoutStore } from "../../stores/widgets/WidgetLayoutStore"; -import { WidgetMessagingStore } from "../../stores/widgets/WidgetMessagingStore"; -import { isAppWidget } from "../../stores/WidgetStore"; -import WidgetUtils from "../../utils/WidgetUtils"; -import { WidgetType } from "../../widgets/WidgetType"; -import { ModuleRunner } from "../../modules/ModuleRunner"; -import { ElementWidget, type WidgetMessaging } from "../../stores/widgets/WidgetMessaging"; -import dis from "../../dispatcher/dispatcher"; +import ErrorDialog from "../../../components/views/dialogs/ErrorDialog"; +import QuestionDialog from "../../../components/views/dialogs/QuestionDialog"; +import MatrixClientContext from "../../../contexts/MatrixClientContext"; +import { useScopedRoomContext } from "../../../contexts/ScopedRoomContext"; +import { _t } from "../../../languageHandler"; +import { getConfigLivestreamUrl, startJitsiAudioLivestream } from "../../../Livestream"; +import Modal from "../../../Modal"; +import SettingsStore from "../../../settings/SettingsStore"; +import { WidgetLayoutStore } from "../../../stores/widgets/WidgetLayoutStore"; +import { WidgetMessagingStore } from "../../../stores/widgets/WidgetMessagingStore"; +import { isAppWidget } from "../../../stores/WidgetStore"; +import WidgetUtils from "../../../utils/WidgetUtils"; +import { WidgetType } from "../../../widgets/WidgetType"; +import { ModuleRunner } from "../../../modules/ModuleRunner"; +import { ElementWidget, type WidgetMessaging } from "../../../stores/widgets/WidgetMessaging"; +import dis from "../../../dispatcher/dispatcher"; const checkRevokeButtonState = ( cli: MatrixClient, diff --git a/apps/web/test/viewmodels/right-panel/WidgetContextMenuViewModel-test.tsx b/apps/web/test/viewmodels/room/right-panel/WidgetContextMenuViewModel-test.tsx similarity index 92% rename from apps/web/test/viewmodels/right-panel/WidgetContextMenuViewModel-test.tsx rename to apps/web/test/viewmodels/room/right-panel/WidgetContextMenuViewModel-test.tsx index 1d9cf070fa..6c99855fda 100644 --- a/apps/web/test/viewmodels/right-panel/WidgetContextMenuViewModel-test.tsx +++ b/apps/web/test/viewmodels/room/right-panel/WidgetContextMenuViewModel-test.tsx @@ -12,18 +12,18 @@ import { type MatrixClient, Room } from "matrix-js-sdk/src/matrix"; import { WidgetContextMenuViewModel, type WidgetContextMenuViewModelProps, -} from "../../../src/viewmodels/right-panel/WidgetContextMenuViewModel"; -import { stubClient } from "../../test-utils"; -import WidgetUtils from "../../../src/utils/WidgetUtils"; -import { type IApp } from "../../../src/utils/WidgetUtils-types"; -import { WidgetLayoutStore } from "../../../src/stores/widgets/WidgetLayoutStore"; -import * as livestream from "../../../src/Livestream"; -import Modal from "../../../src/Modal"; -import SettingsStore from "../../../src/settings/SettingsStore"; -import { SettingLevel } from "../../../src/settings/SettingLevel"; -import * as widgetStore from "../../../src/stores/WidgetStore"; -import { WidgetMessagingStore } from "../../../src/stores/widgets/WidgetMessagingStore"; -import { type WidgetMessaging } from "../../../src/stores/widgets/WidgetMessaging"; +} from "../../../../src/viewmodels/room/right-panel/WidgetContextMenuViewModel"; +import { stubClient } from "../../../test-utils"; +import WidgetUtils from "../../../../src/utils/WidgetUtils"; +import { type IApp } from "../../../../src/utils/WidgetUtils-types"; +import { WidgetLayoutStore } from "../../../../src/stores/widgets/WidgetLayoutStore"; +import * as livestream from "../../../../src/Livestream"; +import Modal from "../../../../src/Modal"; +import SettingsStore from "../../../../src/settings/SettingsStore"; +import { SettingLevel } from "../../../../src/settings/SettingLevel"; +import * as widgetStore from "../../../../src/stores/WidgetStore"; +import { WidgetMessagingStore } from "../../../../src/stores/widgets/WidgetMessagingStore"; +import { type WidgetMessaging } from "../../../../src/stores/widgets/WidgetMessaging"; describe("WidgetContextMenuViewModel", () => { const widgetId = "w1"; diff --git a/packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/critical-auto.png b/packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/critical-auto.png new file mode 100644 index 0000000000000000000000000000000000000000..155515af35ae3814e797be22dd6ad3459a0e5e2c GIT binary patch literal 10299 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 W8M?~)4)Yz0u;YfNL z0EyH{4Lyc5goE@NIwYY8p@l#oKoXL?_{MlY-ne7D^7D=1zdhDid+oKq{muE!Z?65~ zHt2@Zp_7LI0D#i1o7bEG0EH$1;D`Q$KgdV=kG`4%0Dc7Ax^~4SE@zbq%XFEiHf`kb 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 XPgrQ9DW)m^=-&+5*AN_v* zjPVxpEdT((*!#C%F9HAty#T;hqu+d`w~T(D%LV|p1H6CzE(}(-)+xnzW0}#`L3RV8!!EuETlKLdxc`mw|4wm<+tk@tm;Yu*8b6>gI8V-hBaG& z9ZOz*^Y?d~?nc}Yx&Mp}Ihu-i>64V@&aT-cYj+JeRL;V|c9r~u< z`n?k+4sijS0f3$QuYk_!@%-nw+i}#kSaJ!sz~S=on4`&?n6GZJcgour9IMgSQ=H#j zzS`I}_P4FI&o3tp08fuByWSjDI0OV&<8WSNZrxyxMPLE^V0v8b^MBE*l=;s!zNKx! z895}*LA~oYUN0Yy-Ud%pY;l<6HMFNkVI6L+beW#X4I+BdMJKJCHyHy?-am(Kv^bG6 zWoSuV&tziH6+8BH?^OIDrPep#Zr7h(vNl=rt2&K5ar=7h2T&?0Q~rf>B~XWD}J z)0_%ci%+4MZ3zXxeAftAqF8Xjf z@Bt_cDV{)8G#CAY=~m9{IJ56Ki=+a=mgIqwBc1Gw@|3~i7@8e%ZL#!t%!un;ucycQ z^_5IEDxF)b5+Ive{^!{tU!1apXLe3(M~bbLBbKWRcOQQ-p$m#Z1qN+F3Nz@bNJZpk zz#kEYJ>d8%Dg81bjGD+w`@GbwzX@J)rAzoA+M9jIw`5qi<S(N~NIBE&_}sG#gFS1D!QTV!*!7J@06P-# zi?`Pz`X=;;1?OmXd>mFD(*!CMY`++pd#w*GfsUrHtt6Z6Zov?!M9$jbw3%x>An=x? zD$gy9*z$hm-bmPf25g)KRgWAkg%B2+-7@mM7g`ouSRrA#m58{Y*;q~}nJU7cMyS`i zp*EUO6H!&3yA@f^)b+~cv+`gIC>PPY->!RgK9l(J$q^oT?zZZayNamOHmw_OGe4nt z;c3ExjgR2@&GHYO65F^mMrC%(caJhB$b&cqMptCWb!2FBk-<^oHB673 zpCyAYBog>CaA@Xx49}=ANbQ464VrHIbh;GEL#)yb45=8qAu4-{O(sb}Q(b%cj6O~U zR13ii+mW63tpL3(HyM9EIvzcu-pkoyx4W+XY6Iiuzz(1hXGf-VlN+|9I&0&sN~43$`650_8jkczA(#TiLo(CDR)x*-2VbnBL$I^r*kYo z2{W(${lWd(+k~t{0*)dKN32hRwYO;9rDuy~Z~L(7(Q3?Lm0NdusbiiSHL)_|b*YQ= zxj)6Jl6K3^Rd=ZqqGF2V!5oX#cU5_vvEz%({fVYP*?E!!>{ZUJwM`Kkvad5uj90WLeqW1fQH?n3mtTUlVtQhiOE{hjorC>e_!U(KLVzl zC@XOf#l`ytKzdSXUT(O}a#z+Jynqm+5ANq4Y&$#L9Lb&Ls$z&AJI{&ErG{Yo*?I22 z?~6y(qxZPNe$yypP%2t=VTgo+huGO&#NfCkq_W+o+;aJ;t9?cU^?WN$w}#t#v>PUv zqlNKwc$QY#5uAty0LZU`q8#~b`>2u*k(WX;{;2A74mvZ;^I^9*Die{|I2nAQ_#z0K zcGh4BDXmR}XhGWtC__Ph~a9zCvS#V^@`c2%r7^Gw!H8`=*9*9tU$~36C zfC>xSc|wnHvRS$AmWs7oZA`?jjERJ8vEzo@eweDeT)$b~^pg)GnKM$3IIL`Gsia#a95E`a`~Tz7z(mo3)D;k`Ws86O^%9Y7yTf z4ais_1nW1KRI<-452)??tF|Ju?O*HTjSGApD=ck!(^kpkSln#G@~ij$R~=WlKZa+W z#Ly}=A3(D|%ZJYFgRhi{5n*PtNaPe=Xp(@33}H(hQJia*Vsn?28}yC@jlmW&<>I_;VqZ^nd z_u5`U3YAe!fx{X=MopIV6jY)TRnM zSdZ;o{R?!eJY@P}F=r948nj51%xQEs{sX42icv3O_bX48jHQ*yk~?$N3ig-07tAWf zr7>I7uy{(?)_o_d26IT)#S9=%%ej;@AjBTyTra|s_1S$iy`5_8Ja^FQLR9f149dv} zP+-^YUxV&C<$Dmi=Cyl*NMUg5;*JtN)4=h>P&hI}Umxr`q*kTeuk>VP$grF5a(|13+TQTo*X5TtHb*95sUhbT{c*_mhLcJR2TjmtIIJ_rv2+_i= zt1p;)F9!N=j7W)C=0Jb$q9N} zzBA`9A&uX=+3tPdJ|DQaQXlh?H)|)_8%CmEaFW%xh6XYLXf+iPCCe>rGg5g;XBTMd<=c=62S4GLEg{>?Y`-A9^Ov^N_ za7>t4`dCEH|U3r<-;4H50xGbKg?Qf^8|| zHNL8lTkzr~TXC0xk+EQ`T3nGKXdeB?0;2e^6}cwfb-^VnXOg}RXg~k%0HT`?!52s= zZaVd5V%O`5VDCZFMS50eC=fQ+=O&+tVZ^gBSmoajOn9S}noUeRA4@Y0?uZZicdZRo z5pr3I)KV0+GIE#Mr*@t#TS3 zBX{bc>FYV^ypNq!@&2PU`vj&GvaHfWi0}#&1-L_rp{|%hCoc!KzqWa>bAQw^!Lw%6 zFkZyp)JplTM>6*KY;fUJk?L|vDWt_4Wo-vM_PM;A*cn{>*k&#Cko^VM<V8wQB;!+U6G1jzsfyJd z{qBlC#2*|(BOZKjmM+(80#i7rJhAO&``Vy|ZOTcwUX_5W<7h{hy*2uD2T#HDP>Fl# z-L>U5Yj-SOs>AKFL(_tFYrg>gm=2uhRBH`zX){0J0$GI4@=WfsDFZ5J_-tNjmlNvS zgZLMa-GZr#p4klKmFW}lQ$|r{>s9|8Agj1hVM59H`Ow(v??JqYR3ea{tff$F2ga&- z9fca@zxPd6v@qgf6R`R85t+A(mp)=T5@~U%Su{nZR4je{keA9)rBLQS=D4S<2_id(vqCu7fkkf zIY6|kBkp{6%`j7N2KUx2u>FQTs}L1vp44mXcNOUeG}sI%@I8pA-B)09eq?TZ&9~ zSC96vW|I1=rz4_9-dj0L8mAY9a}t028t})F{FI6i6?|kKrpW=3EkqaG*Ci}SH@x+O zqpkR@7}7IOsuwDT%0Vnxe?V|*)@o(;;qzrvtNJ>?10e*iKWIi_30eNudUt?}s?0AMosr5Dh-#CTI@MHoG! ziD?UnW2Os+>I-h?2XE0sxr{XB{x@>Ad|yV@zgN{t;P8N!`P6!PPJS>SWz{wK?|Lp-A^V;p;9X zuGJ8A?K9HjKOeHZzD$2@Nezvg$_7%@_Xu_h8cON6;cr{ci)j?mE4tsYtywS!_tDZ;blRUTP zT)AsC8p3V6{ZyYu17h39&RTag*lgB!0(vhNyChuYKYz2pDn4F_y#ryq_A5?2x*QTZ z`BJobhu(?pH?DqZm7LQrbn?q;8^gvPY}|v5FxWuB1_?JvxIw}V5^j)igM=F-+#uoq tCE=XT007YGJVroo^bgC1UlgqY;9ZROmPZK*NqP&w+w1(V=u>~(`(NWFB3S?c literal 0 HcmV?d00001 diff --git a/packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/with-loads-of-content-auto.png b/packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/with-loads-of-content-auto.png new file mode 100644 index 0000000000000000000000000000000000000000..e53356df7f2424ad15d08608fa6c204c357fcfc9 GIT binary patch literal 43888 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 -;Hzu@i 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 literal 0 HcmV?d00001 diff --git a/packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/without-close-auto.png b/packages/shared-components/__vis__/linux/__baselines__/room/composer/Banner/Banner.stories.tsx/without-close-auto.png new file mode 100644 index 0000000000000000000000000000000000000000..fd13d4ee0bcaee5f62e00be845dd579c09b0abb2 GIT binary patch literal 6822 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 UU!HljL5pO<*hyn@MyWUbA8wiOxc~qF literal 0 HcmV?d00001 diff --git a/packages/shared-components/__vis__/linux/__baselines__/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.stories.tsx/only-basic-modification-auto.png b/packages/shared-components/__vis__/linux/__baselines__/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.stories.tsx/only-basic-modification-auto.png new file mode 100644 index 0000000000000000000000000000000000000000..fcc53714a7e337acd0c97cbfee1779bffe60618e GIT binary patch literal 24880 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 a3RJB5JC*yHO>;1U+P~LmPv&mB3;zd4^qx5Y literal 0 HcmV?d00001 diff --git a/packages/shared-components/src/index.ts b/packages/shared-components/src/index.ts index ed5360d84e..64c504c5fb 100644 --- a/packages/shared-components/src/index.ts +++ b/packages/shared-components/src/index.ts @@ -10,7 +10,7 @@ export * from "./audio/Clock"; export * from "./audio/PlayPauseButton"; export * from "./audio/SeekBar"; export * from "./core/AvatarWithDetails"; -export * from "./composer/Banner"; +export * from "./room/composer/Banner"; export * from "./crypto/SasEmoji"; export * from "./event-tiles/UrlPreviewGroupView"; export * from "./room/timeline/ReadMarker"; @@ -25,6 +25,7 @@ export * from "./core/pill-input/PillInput"; export * from "./room/RoomStatusBar"; export * from "./room/WidgetPip"; export * from "./room/HistoryVisibilityBadge"; +export * from "./room/right-panel/WidgetContextMenuView"; export * from "./room/timeline/DateSeparatorView"; export * from "./room/timeline/TimelineSeparator"; export * from "./room/timeline/event-tile/actions/ActionBarView"; @@ -53,7 +54,6 @@ export * from "./room-list/VirtualizedRoomListView/RoomListItemAccessibilityWrap export * from "./core/utils/Box"; export * from "./core/utils/Flex"; export * from "./core/utils/LinkedText"; -export * from "./right-panel/WidgetContextMenu"; export * from "./core/VirtualizedList"; export * from "./resize"; diff --git a/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.tsx b/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.tsx index 89d7031fc3..a6b2fc492d 100644 --- a/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.tsx +++ b/packages/shared-components/src/room/RoomStatusBar/RoomStatusBarView.tsx @@ -12,7 +12,7 @@ import { Button, InlineSpinner, Text } from "@vector-im/compound-web"; import styles from "./RoomStatusBarView.module.css"; import { type ViewModel, useViewModel } from "../../core/viewmodel"; import { useI18n } from "../../core/i18n/i18nContext"; -import { Banner } from "../../composer/Banner"; +import { Banner } from "../composer/Banner"; export interface RoomStatusBarViewActions { /** * Called when the user clicks on the 'resend all' button in the 'unsent messages' bar. diff --git a/packages/shared-components/src/composer/Banner/Banner.module.css b/packages/shared-components/src/room/composer/Banner/Banner.module.css similarity index 100% rename from packages/shared-components/src/composer/Banner/Banner.module.css rename to packages/shared-components/src/room/composer/Banner/Banner.module.css diff --git a/packages/shared-components/src/composer/Banner/Banner.stories.tsx b/packages/shared-components/src/room/composer/Banner/Banner.stories.tsx similarity index 100% rename from packages/shared-components/src/composer/Banner/Banner.stories.tsx rename to packages/shared-components/src/room/composer/Banner/Banner.stories.tsx diff --git a/packages/shared-components/src/composer/Banner/Banner.test.tsx b/packages/shared-components/src/room/composer/Banner/Banner.test.tsx similarity index 100% rename from packages/shared-components/src/composer/Banner/Banner.test.tsx rename to packages/shared-components/src/room/composer/Banner/Banner.test.tsx diff --git a/packages/shared-components/src/composer/Banner/Banner.tsx b/packages/shared-components/src/room/composer/Banner/Banner.tsx similarity index 98% rename from packages/shared-components/src/composer/Banner/Banner.tsx rename to packages/shared-components/src/room/composer/Banner/Banner.tsx index 0e5779d8fd..1253c25fe1 100644 --- a/packages/shared-components/src/composer/Banner/Banner.tsx +++ b/packages/shared-components/src/room/composer/Banner/Banner.tsx @@ -20,7 +20,7 @@ import ErrorIcon from "@vector-im/compound-design-tokens/assets/web/icons/error" import InfoIcon from "@vector-im/compound-design-tokens/assets/web/icons/info"; import styles from "./Banner.module.css"; -import { _t } from "../../core/i18n/i18n"; +import { _t } from "../../../core/i18n/i18n"; interface BannerProps { /** diff --git a/packages/shared-components/src/composer/Banner/__snapshots__/Banner.test.tsx.snap b/packages/shared-components/src/room/composer/Banner/__snapshots__/Banner.test.tsx.snap similarity index 100% rename from packages/shared-components/src/composer/Banner/__snapshots__/Banner.test.tsx.snap rename to packages/shared-components/src/room/composer/Banner/__snapshots__/Banner.test.tsx.snap diff --git a/packages/shared-components/src/composer/Banner/index.ts b/packages/shared-components/src/room/composer/Banner/index.ts similarity index 100% rename from packages/shared-components/src/composer/Banner/index.ts rename to packages/shared-components/src/room/composer/Banner/index.ts diff --git a/packages/shared-components/src/right-panel/WidgetContextMenu/WidgetContextMenuView.stories.tsx b/packages/shared-components/src/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.stories.tsx similarity index 94% rename from packages/shared-components/src/right-panel/WidgetContextMenu/WidgetContextMenuView.stories.tsx rename to packages/shared-components/src/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.stories.tsx index 6776d119be..d693baf939 100644 --- a/packages/shared-components/src/right-panel/WidgetContextMenu/WidgetContextMenuView.stories.tsx +++ b/packages/shared-components/src/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.stories.tsx @@ -16,8 +16,8 @@ import { type WidgetContextMenuViewSnapshot, WidgetContextMenuView, } from "./WidgetContextMenuView"; -import { useMockedViewModel } from "../../core/viewmodel/useMockedViewModel"; -import { withViewDocs } from "../../../.storybook/withViewDocs"; +import { useMockedViewModel } from "../../../core/viewmodel/useMockedViewModel"; +import { withViewDocs } from "../../../../.storybook/withViewDocs"; type WidgetContextMenuViewModelProps = WidgetContextMenuViewSnapshot & WidgetContextMenuViewActions; diff --git a/packages/shared-components/src/right-panel/WidgetContextMenu/WidgetContextMenuView.test.tsx b/packages/shared-components/src/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.test.tsx similarity index 95% rename from packages/shared-components/src/right-panel/WidgetContextMenu/WidgetContextMenuView.test.tsx rename to packages/shared-components/src/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.test.tsx index 231f77f856..073d2bb963 100644 --- a/packages/shared-components/src/right-panel/WidgetContextMenu/WidgetContextMenuView.test.tsx +++ b/packages/shared-components/src/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.test.tsx @@ -19,9 +19,9 @@ import { WidgetContextMenuView, } from "./WidgetContextMenuView"; import * as stories from "./WidgetContextMenuView.stories.tsx"; -import { MockViewModel } from "../../core/viewmodel/MockViewModel.ts"; -import { I18nApi } from "../../core/i18n/I18nApi.ts"; -import { I18nContext } from "../../core/i18n/i18nContext.ts"; +import { MockViewModel } from "../../../core/viewmodel/MockViewModel.ts"; +import { I18nApi } from "../../../core/i18n/I18nApi.ts"; +import { I18nContext } from "../../../core/i18n/i18nContext.ts"; const { Default, OnlyBasicModification } = composeStories(stories); diff --git a/packages/shared-components/src/right-panel/WidgetContextMenu/WidgetContextMenuView.tsx b/packages/shared-components/src/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.tsx similarity index 96% rename from packages/shared-components/src/right-panel/WidgetContextMenu/WidgetContextMenuView.tsx rename to packages/shared-components/src/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.tsx index 0aadc64e20..1cad04b59e 100644 --- a/packages/shared-components/src/right-panel/WidgetContextMenu/WidgetContextMenuView.tsx +++ b/packages/shared-components/src/room/right-panel/WidgetContextMenuView/WidgetContextMenuView.tsx @@ -9,9 +9,9 @@ import React, { type ReactNode, type JSX } from "react"; import { IconButton, Menu, MenuItem } from "@vector-im/compound-web"; import TriggerIcon from "@vector-im/compound-design-tokens/assets/web/icons/overflow-horizontal"; -import { type ViewModel } from "../../core/viewmodel/ViewModel.ts"; -import { useI18n } from "../../core/i18n/i18nContext.ts"; -import { useViewModel } from "../../core/viewmodel/useViewModel.ts"; +import { type ViewModel } from "../../../core/viewmodel/ViewModel.ts"; +import { useI18n } from "../../../core/i18n/i18nContext.ts"; +import { useViewModel } from "../../../core/viewmodel/useViewModel.ts"; export interface WidgetContextMenuViewSnapshot { /** diff --git a/packages/shared-components/src/right-panel/WidgetContextMenu/__snapshots__/WidgetContextMenuView.test.tsx.snap b/packages/shared-components/src/room/right-panel/WidgetContextMenuView/__snapshots__/WidgetContextMenuView.test.tsx.snap similarity index 100% rename from packages/shared-components/src/right-panel/WidgetContextMenu/__snapshots__/WidgetContextMenuView.test.tsx.snap rename to packages/shared-components/src/room/right-panel/WidgetContextMenuView/__snapshots__/WidgetContextMenuView.test.tsx.snap diff --git a/packages/shared-components/src/right-panel/WidgetContextMenu/index.ts b/packages/shared-components/src/room/right-panel/WidgetContextMenuView/index.ts similarity index 100% rename from packages/shared-components/src/right-panel/WidgetContextMenu/index.ts rename to packages/shared-components/src/room/right-panel/WidgetContextMenuView/index.ts From 201f5dfd9050c78825d413f4d2f50b716fd04df6 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 14 Apr 2026 16:22:48 +0100 Subject: [PATCH 4/9] Fix build-and-test.yaml skip behaviour for downstream runs --- .github/workflows/build-and-test.yaml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index cad1faca0c..eb469502d9 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -104,7 +104,7 @@ jobs: playwright_ew: name: "Run Tests [${{ matrix.project }}] ${{ matrix.runner }}/${{ needs.build_ew.outputs.num-runners }}" needs: build_ew - if: needs.build_ew.outputs.skip != 'true' + if: needs.build_ew.outputs.skip == 'false' runs-on: ubuntu-24.04 permissions: actions: read @@ -184,7 +184,7 @@ jobs: downstream-modules: name: Downstream Playwright tests [element-modules] needs: build_ew - if: needs.build_ew.outputs.skip != 'true' && github.event_name == 'merge_group' + if: needs.build_ew.outputs.skip == 'false' && github.event_name == 'merge_group' uses: element-hq/element-modules/.github/workflows/reusable-playwright-tests.yml@main # zizmor: ignore[unpinned-uses] with: webapp-artifact: webapp @@ -194,7 +194,7 @@ jobs: name: "Prepare Element Desktop" uses: ./.github/workflows/build_desktop_prepare.yaml needs: build_ew - if: needs.build_ew.outputs.skip != 'true' + if: needs.build_ew.outputs.skip == 'false' permissions: contents: read with: @@ -253,25 +253,25 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - if: needs.build_ew.outputs.skip != 'true' + if: needs.build_ew.outputs.skip == 'false' with: persist-credentials: false repository: element-hq/element-web - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5 - if: needs.build_ew.outputs.skip != 'true' + if: needs.build_ew.outputs.skip == 'false' - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 - if: needs.build_ew.outputs.skip != 'true' + if: needs.build_ew.outputs.skip == 'false' with: cache: "pnpm" node-version: "lts/*" - name: Install dependencies - if: needs.build_ew.outputs.skip != 'true' + if: needs.build_ew.outputs.skip == 'false' run: pnpm install --frozen-lockfile - name: Download blob reports from GitHub Actions Artifacts - if: needs.build_ew.outputs.skip != 'true' + if: needs.build_ew.outputs.skip == 'false' uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: pattern: blob-report-* @@ -279,7 +279,7 @@ jobs: merge-multiple: true - name: Merge into HTML Report - if: needs.build_ew.outputs.skip != 'true' + if: needs.build_ew.outputs.skip == 'false' run: | pnpm playwright merge-reports \ --config=playwright-merge.config.ts \ @@ -291,7 +291,7 @@ jobs: # Upload the HTML report even if one of our reporters fails, this can happen when stale screenshots are detected - name: Upload HTML report - if: always() && needs.build_ew.outputs.skip != 'true' + if: always() && needs.build_ew.outputs.skip == 'false' uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: html-report From b63c3646bd50d8254d545fa68ff12d8f67ed8496 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 15:40:35 +0000 Subject: [PATCH 5/9] Update docker (#33145) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build_desktop_linux.yaml | 2 +- .github/workflows/cd.yaml | 2 +- .github/workflows/docker.yaml | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build_desktop_linux.yaml b/.github/workflows/build_desktop_linux.yaml index 4ddd2624ad..767fa06c10 100644 --- a/.github/workflows/build_desktop_linux.yaml +++ b/.github/workflows/build_desktop_linux.yaml @@ -133,7 +133,7 @@ jobs: # This allows contributors to test changes to the dockerbuild image within a pull request - name: Build docker image - uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7 + uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7 if: steps.changed_files.outputs.any_modified == 'true' with: file: apps/desktop/dockerbuild/Dockerfile diff --git a/.github/workflows/cd.yaml b/.github/workflows/cd.yaml index e00296abf1..137ab69e17 100644 --- a/.github/workflows/cd.yaml +++ b/.github/workflows/cd.yaml @@ -50,7 +50,7 @@ jobs: run: "pnpm install --frozen-lockfile" - name: Login to GitHub Container Registry - uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4 + uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4 with: registry: ghcr.io username: ${{ github.repository_owner }} diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index e276754640..c33629c2cd 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -39,7 +39,7 @@ jobs: - name: Build and load id: test-build - uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7 + uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7 with: context: . file: apps/web/Dockerfile @@ -97,14 +97,14 @@ jobs: latest=${{ contains(github.ref_name, '-rc.') && 'false' || 'auto' }} - name: Login to Docker Hub - uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4 + uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4 if: github.event_name != 'pull_request' with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to GitHub Container Registry - uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4 + uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4 if: github.event_name != 'pull_request' with: registry: ghcr.io @@ -140,7 +140,7 @@ jobs: services/web-repositories/secret/data/oci.element.io password | OCI_PASSWORD ; - name: Login to oci.element.io Registry - uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4 + uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4 if: github.event_name != 'pull_request' with: registry: oci-push.vpn.infra.element.io @@ -149,7 +149,7 @@ jobs: - name: Build and push id: build-and-push - uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7 + uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7 if: github.event_name != 'pull_request' with: context: . From 181b06b3c85d47a659830bba9de32fc5c5414481 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 14 Apr 2026 21:14:28 +0100 Subject: [PATCH 6/9] Fix static analysis CI gate not working (#33146) * Debug CI * Debug CI * Fix ci final job * Revert test change --- .github/workflows/static_analysis.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/static_analysis.yaml b/.github/workflows/static_analysis.yaml index 74dbde5153..51d7926b83 100644 --- a/.github/workflows/static_analysis.yaml +++ b/.github/workflows/static_analysis.yaml @@ -125,7 +125,9 @@ jobs: # Dummy job to simplify branch protections ci: name: Static Analysis - needs: [lint, i18n] + needs: [lint, i18n, zizmor] + if: always() runs-on: ubuntu-24.04 steps: - - run: echo "Ok" + - if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') + run: exit 1 From c106abd72173f6c0b7b9df4446c3d83a63bfb7d8 Mon Sep 17 00:00:00 2001 From: ElementRobot Date: Wed, 15 Apr 2026 10:35:12 +0200 Subject: [PATCH 7/9] [create-pull-request] automated change (#33092) Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com> --- apps/web/src/i18n/strings/cs.json | 11 +- apps/web/src/i18n/strings/cy.json | 11 +- apps/web/src/i18n/strings/da.json | 41 ++- apps/web/src/i18n/strings/de_DE.json | 11 +- apps/web/src/i18n/strings/el.json | 11 +- apps/web/src/i18n/strings/eo.json | 11 +- apps/web/src/i18n/strings/es.json | 11 +- apps/web/src/i18n/strings/et.json | 11 +- apps/web/src/i18n/strings/fa.json | 11 +- apps/web/src/i18n/strings/fi.json | 11 +- apps/web/src/i18n/strings/fr.json | 21 +- apps/web/src/i18n/strings/gl.json | 11 +- apps/web/src/i18n/strings/he.json | 11 +- apps/web/src/i18n/strings/hr.json | 11 +- apps/web/src/i18n/strings/hu.json | 11 +- apps/web/src/i18n/strings/hy.json | 11 +- apps/web/src/i18n/strings/id.json | 13 +- apps/web/src/i18n/strings/is.json | 10 +- apps/web/src/i18n/strings/it.json | 11 +- apps/web/src/i18n/strings/ja.json | 11 +- apps/web/src/i18n/strings/ka.json | 11 +- apps/web/src/i18n/strings/ko.json | 11 +- apps/web/src/i18n/strings/lo.json | 11 +- apps/web/src/i18n/strings/lt.json | 11 +- apps/web/src/i18n/strings/lv.json | 11 +- apps/web/src/i18n/strings/mg_MG.json | 11 +- apps/web/src/i18n/strings/nb_NO.json | 11 +- apps/web/src/i18n/strings/nl.json | 11 +- apps/web/src/i18n/strings/pl.json | 11 +- apps/web/src/i18n/strings/pt.json | 11 +- apps/web/src/i18n/strings/pt_BR.json | 11 +- apps/web/src/i18n/strings/ru.json | 295 +++++++++--------- apps/web/src/i18n/strings/sk.json | 11 +- apps/web/src/i18n/strings/sq.json | 11 +- apps/web/src/i18n/strings/sv.json | 11 +- apps/web/src/i18n/strings/tr.json | 11 +- apps/web/src/i18n/strings/uk.json | 11 +- apps/web/src/i18n/strings/vi.json | 11 +- apps/web/src/i18n/strings/zh_Hans.json | 11 +- apps/web/src/i18n/strings/zh_Hant.json | 11 +- .../src/i18n/strings/fr.json | 29 +- .../src/i18n/strings/ru.json | 73 ++++- 42 files changed, 319 insertions(+), 548 deletions(-) diff --git a/apps/web/src/i18n/strings/cs.json b/apps/web/src/i18n/strings/cs.json index 218fa3b6c4..3f291cac32 100644 --- a/apps/web/src/i18n/strings/cs.json +++ b/apps/web/src/i18n/strings/cs.json @@ -2227,8 +2227,6 @@ "aliases_section": "Adresy místnosti", "avatar_field_label": "Avatar místnosti", "canonical_alias_field_label": "Hlavní adresa", - "default_url_previews_off": "Ve výchozím nastavení jsou náhledy URL adres zakázané pro členy této místnosti.", - "default_url_previews_on": "Ve výchozím nastavení jsou náhledy URL adres povolené pro členy této místnosti.", "description_space": "Upravte nastavení týkající se vašeho prostoru.", "error_creating_alias_description": "Při vytváření adresy došlo k chybě. Mohl to zakázat server, nebo mohlo dojít k dočasnému selhání.", "error_creating_alias_title": "Chyba při tvorbě adresy", @@ -2259,12 +2257,7 @@ "published_aliases_explainer_space": "Zveřejněné adresy může použít kdokoli na jakémkoli serveru, aby se připojil k vašemu prostoru.", "published_aliases_section": "Publikovaná adresa", "save": "Uložit změny", - "topic_field_label": "Téma místnosti", - "url_preview_encryption_warning": "V šifrovaných místnostech, jako je tato, jsou URL náhledy ve výchozím nastavení vypnuté, aby bylo možné zajistit, že váš domovský server neshromažďuje informace o odkazech, které v této místnosti vidíte.", - "url_preview_explainer": "Když někdo ve zprávě pošle URL adresu, může být zobrazen její náhled obsahující informace jako titulek, popis a obrázek z cílové stránky.", - "url_previews_section": "Náhledy webových adres", - "user_url_previews_default_off": "Vypnuli jste automatické náhledy webových adres.", - "user_url_previews_default_on": "Zapnuli jste automatické náhledy webových adres." + "topic_field_label": "Téma místnosti" }, "notifications": { "browse_button": "Procházet", @@ -2687,8 +2680,6 @@ "username": "Uživatelské jméno" }, "inline_url_previews_default": "Nastavit povolení náhledů URL adres jako výchozí", - "inline_url_previews_room": "Povolit náhledy URL adres pro členy této místnosti jako výchozí", - "inline_url_previews_room_account": "Povolit náhledy URL adres pro tuto místnost (ovlivňuje pouze vás)", "insert_trailing_colon_mentions": "Vložit dvojtečku za zmínku o uživateli na začátku zprávy", "invite_controls": { "default_label": "Povolit uživatelům pozvat vás do místností" diff --git a/apps/web/src/i18n/strings/cy.json b/apps/web/src/i18n/strings/cy.json index 4277fe0f92..00df88dfcd 100644 --- a/apps/web/src/i18n/strings/cy.json +++ b/apps/web/src/i18n/strings/cy.json @@ -2227,8 +2227,6 @@ "aliases_section": "Cyfeiriadau Ystafell", "avatar_field_label": "Afatar ystafell", "canonical_alias_field_label": "Prif gyfeiriad", - "default_url_previews_off": "Mae rhagolygon URL wedi'u hanalluogi fel rhagosodiad ar gyfer cyfranogwyr yn yr ystafell hon.", - "default_url_previews_on": "Mae rhagolygon URL wedi'u galluogi fel rhagosodiad ar gyfer cyfranogwyr yn yr ystafell hon.", "description_space": "Golygu gosodiadau sy'n ymwneud â'ch gofod.", "error_creating_alias_description": "Bu gwall wrth greu'r cyfeiriad hwnnw. Mae'n bosib na chaiff ei ganiatáu gan y gweinydd neu fe ddigwyddodd methiant dros dro.", "error_creating_alias_title": "Gwall wrth greu cyfeiriad", @@ -2259,12 +2257,7 @@ "published_aliases_explainer_space": "Gall unrhyw un ar unrhyw weinydd ddefnyddio cyfeiriadau cyhoeddedig i ymuno â'ch gofod.", "published_aliases_section": "Cyfeiriadau Cyhoeddedig", "save": "Cadw'r Newidiadau", - "topic_field_label": "Pwnc yr Ystafell", - "url_preview_encryption_warning": "Mewn ystafelloedd wedi'u hamgryptio, fel yr un hon, mae rhagolygon URL yn cael eu hanalluogi fel rhagosodiad i sicrhau na all eich gweinydd cartref (lle mae'r rhagolygon yn cael eu cynhyrchu) gasglu gwybodaeth am ddolenni welwch yn yr ystafell hon.", - "url_preview_explainer": "Pan fydd rhywun yn rhoi URL yn eu neges, mae modd dangos rhagolwg URL i roi mwy o wybodaeth am y ddolen honno fel y teitl, disgrifiad, a delwedd o'r wefan.", - "url_previews_section": "Rhagolygon URL", - "user_url_previews_default_off": "Rydych wedi analluogi rhagolygon URL fel rhagosodiad.", - "user_url_previews_default_on": "Rydych chi wedi galluogi rhagolygon URL fel rhagosodiad." + "topic_field_label": "Pwnc yr Ystafell" }, "notifications": { "browse_button": "Pori", @@ -2685,8 +2678,6 @@ "username": "Enw defnyddiwr" }, "inline_url_previews_default": "Galluogi rhagolygon URL mewnol fel rhagosodiad", - "inline_url_previews_room": "Galluogi rhagolygon URL fel rhagosodiad ar gyfer cyfranogwyr yn yr ystafell hon", - "inline_url_previews_room_account": "Galluogi rhagolygon URL ar gyfer yr ystafell hon (yn effeithio arnoch chi yn unig)", "insert_trailing_colon_mentions": "Mewnosod colon sy'n llusgo ar ôl i'r defnyddiwr sôn amdano ar ddechrau neges", "invite_controls": { "default_label": "Caniatáu i ddefnyddwyr eich gwahodd i ystafelloedd" diff --git a/apps/web/src/i18n/strings/da.json b/apps/web/src/i18n/strings/da.json index 1229114876..d10c9d15c7 100644 --- a/apps/web/src/i18n/strings/da.json +++ b/apps/web/src/i18n/strings/da.json @@ -114,7 +114,7 @@ "show_advanced": "Vis avanceret", "show_all": "Vis alle", "sign_in": "Log ind", - "sign_out": "Log ud", + "sign_out": "Fjern denne enhed", "skip": "Spring over", "start": "Start", "start_chat": "Start samtale", @@ -705,6 +705,7 @@ "decline_invitation_dialog": { "title": "Afvis invitation" }, + "desktop_default_device_name": "%(brand)s Skrivebord: %(platformName)s", "devtools": { "active_widgets": "Aktive widgets", "category_other": "Andre", @@ -979,6 +980,8 @@ "unknown_error_code": "Ukendt fejlkode", "update_power_level": "Kunne ikke ændre effektniveau" }, + "error_app_open_in_another_tab_title": "%(brand)s er åbnet i et andet faneblad", + "error_app_opened_in_another_window": "%(brand)s er åben i et andet vindue. Klik på \"%(label)s\" for at bruge %(brand)s her og frakoble det andet vindue.", "error_database_closed_description": { "for_desktop": "Din disk er måske fyldt. Vær venlig at rydde noget plads og genindlæse.", "for_web": "Hvis du har ryddet browserdata, er denne meddelelse forventet. %(brand)s kan også være åben i en anden fane, eller din disk er fuld. Ryd venligst lidt plads og genindlæs" @@ -1146,6 +1149,7 @@ "continue": "Fortsæt alligevel", "linux": "Linux", "macos": "Mac", + "title": "%(brand)s understøtter ikke denne browser", "windows_64bit": "Windows (64-bit)", "windows_arm_64bit": "Windows (ARM 64-bit)" }, @@ -1938,8 +1942,6 @@ "aliases_section": "Rummets adresser", "avatar_field_label": "Avatar for rummet", "canonical_alias_field_label": "Hovedadresse", - "default_url_previews_off": "URL-forhåndsvisninger er som standard deaktiveret for deltagere i dette rum.", - "default_url_previews_on": "URL-forhåndsvisninger er som standard aktiveret for deltagere i dette rum.", "description_space": "Redigér indstillinger for din klynge.", "error_creating_alias_description": "Der opstod en fejl under oprettelsen af ​​adressen. Den er muligvis ikke tilladt af serveren, eller der er opstået en midlertidig fejl.", "error_creating_alias_title": "Fejl ved oprettelse af adresse", @@ -1966,12 +1968,7 @@ "published_aliases_explainer_space": "Publicerede adresser kan bruges af alle til at tilslutte sig din klynge.", "published_aliases_section": "Offentliggjorte adresser", "save": "Gem ændringer", - "topic_field_label": "Rummets emne", - "url_preview_encryption_warning": "I krypterede rum, som dette, er URL-forhåndsvisninger som standard deaktiveret for at sikre, at din hjemmeserver (hvor forhåndsvisningerne genereres) ikke kan indsamle oplysninger om links, du ser i dette rum.", - "url_preview_explainer": "Når nogen indtaster en URL i sin besked, kan der vises en forhåndsvisning af URL'en, der giver flere oplysninger om linket, f.eks. titel, beskrivelse og et billede fra webstedet.", - "url_previews_section": "URL-forhåndsvisninger", - "user_url_previews_default_off": "Du har deaktiveret URL-forhåndsvisning som standard.", - "user_url_previews_default_on": "Du har aktiveret URL-forhåndsvisninger som standard." + "topic_field_label": "Rummets emne" }, "notifications": { "browse_button": "Gennemse", @@ -2291,9 +2288,7 @@ "remove_msisdn_prompt": "Fjern %(phone)s?", "spell_check_locale_placeholder": "Vælg en lokalitet" }, - "inline_url_previews_default": "Aktivér indbyggede URL-forhåndsvisninger som standard", - "inline_url_previews_room": "Aktivér forhåndsvisning af URL-adresser som standard for deltagere i dette rum", - "inline_url_previews_room_account": "Aktivér forhåndsvisning af URL-adresser for dette rum (påvirker kun dig)", + "inline_url_previews_default": "Aktivér forhåndsvisninger", "insert_trailing_colon_mentions": "Indsæt et afsluttende kolon efter brugeromtaler i starten af en meddelelse", "jump_to_bottom_on_send": "Gå til bunden af tidslinjen, når du sender en besked", "key_backup": { @@ -2462,20 +2457,20 @@ "best_security_note": "For at opnå den bedste sikkerhed skal du bekræfte dine sessioner og logge ud fra enhver session, som du ikke genkender eller bruger længere.", "browser": "Browser", "confirm_sign_out": { - "one": "Bekræft, at du logger af denne enhed", - "other": "Bekræft, at du logger af disse enheder" + "one": "Bekræft fjernelse af denne enhed", + "other": "Bekræft fjernelse af disse enheder" }, "confirm_sign_out_body": { - "one": "Klik på knappen herunder for at bekræfte, at du logger af denne enhed.", - "other": "Klik på knappen herunder for at bekræfte, at du logger af disse enheder." + "one": "Klik på knappen nedenfor for at bekræfte fjernelse af denne enhed.", + "other": "Klik på knappen nedenfor for at bekræfte fjernelse af disse enheder." }, "confirm_sign_out_continue": { - "one": "Log ud af enheden", - "other": "Log ud af enheder" + "one": "Fjern enhed", + "other": "Fjern enheder" }, "confirm_sign_out_sso": { - "one": "Bekræft, at du logger af denne enhed ved at bruge Single Sign On for at bevise din identitet.", - "other": "Bekræft, at du logger af disse enheder ved at bruge Single Sign On for at bevise din identitet." + "one": "Bekræft fjernelse af denne enhed ved at bruge Single Sign-On til at bevise din identitet.", + "other": "Bekræft fjernelse af disse enheder ved at bruge Single Sign-On til at bevise din identitet." }, "current_session": "Nuværende session", "desktop_session": "Skrivebordssession", @@ -2526,7 +2521,7 @@ "sign_in_with_qr": "Forbind ny enhed", "sign_in_with_qr_button": "Vis QR-kode", "sign_in_with_qr_description": "Brug en QR-kode til at logge ind på en anden enhed og opsætte sikker beskedkommunikation.", - "sign_out": "Log ud af denne session", + "sign_out": "Fjern denne session", "sign_out_all_other_sessions": "Log ud af alle andre sessioner (%(otherSessionsCount)s)", "sign_out_confirm_description": { "one": "Er du sikker på, at du vil logge ud af %(count)s sessionen?", @@ -3284,6 +3279,9 @@ "truncated_list_n_more": { "other": "Og %(count)s mere..." }, + "unsupported_browser": { + "title": "%(brand)s understøtter ikke denne browser" + }, "unsupported_server_description": "Denne server bruger en ældre version af Matrix. Opgrader til Matrix %(version)s for at kunne bruge %(brand)s uden fejl.", "unsupported_server_title": "Din server er ikke understøttet", "update": { @@ -3487,6 +3485,7 @@ "voice_call": "Stemmeopkald", "you_are_presenting": "Du præsenterer" }, + "web_default_device_name": "%(appName)s: %(browserName)s på %(osName)s", "welcome_to_element": "Velkommen til Element", "widget": { "added_by": "Widget tilføjet af", diff --git a/apps/web/src/i18n/strings/de_DE.json b/apps/web/src/i18n/strings/de_DE.json index a14cca6ee9..945fb8e718 100644 --- a/apps/web/src/i18n/strings/de_DE.json +++ b/apps/web/src/i18n/strings/de_DE.json @@ -2219,8 +2219,6 @@ "aliases_section": "Chatadressen", "avatar_field_label": "Chat Avatar", "canonical_alias_field_label": "Primäre Adresse", - "default_url_previews_off": "URL-Vorschau ist für Mitglieder des Chats standardmäßig deaktiviert.", - "default_url_previews_on": "URL-Vorschau ist für Mitglieder des Chats standardmäßig aktiviert.", "description_space": "Einstellungen vom Space bearbeiten.", "error_creating_alias_description": "Es gab einen Fehler beim Anlegen der Adresse. Entweder erlaubt es der Server nicht oder es gab ein temporäres Problem.", "error_creating_alias_title": "Fehler beim Anlegen der Adresse", @@ -2251,12 +2249,7 @@ "published_aliases_explainer_space": "Veröffentlichte Adressen erlauben jedem, den Space zu betreten.", "published_aliases_section": "Öffentliche Adresse", "save": "Speichern", - "topic_field_label": "Chat-Thema", - "url_preview_encryption_warning": "In verschlüsselten Chats wie diesem ist die Linkvorschau standardmäßig deaktiviert, damit dein Homeserver (der die Vorschau erzeugt) keine Informationen über Links in diesem Chat erhält.", - "url_preview_explainer": "Die URL-Vorschau kann Informationen wie den Titel, die Beschreibung sowie ein Vorschaubild der Website enthalten.", - "url_previews_section": "URL-Vorschau", - "user_url_previews_default_off": "Du hast die URL-Vorschau standardmäßig deaktiviert.", - "user_url_previews_default_on": "Du hast die URL-Vorschau standardmäßig aktiviert." + "topic_field_label": "Chat-Thema" }, "notifications": { "browse_button": "Durchsuchen", @@ -2678,8 +2671,6 @@ "username": "Benutzername" }, "inline_url_previews_default": "URL-Vorschau standardmäßig aktivieren", - "inline_url_previews_room": "URL-Vorschau für Chat Mitglieder", - "inline_url_previews_room_account": "URL-Vorschau für dich in diesem Chat", "insert_trailing_colon_mentions": "Doppelpunkt nach Erwähnungen einfügen", "invite_controls": { "default_label": "Nutzern erlauben, dich in Chats einzuladen" diff --git a/apps/web/src/i18n/strings/el.json b/apps/web/src/i18n/strings/el.json index f2d21753cb..8565897d1f 100644 --- a/apps/web/src/i18n/strings/el.json +++ b/apps/web/src/i18n/strings/el.json @@ -1728,8 +1728,6 @@ "aliases_section": "Διευθύνσεις δωματίων", "avatar_field_label": "Εικόνα δωματίου", "canonical_alias_field_label": "Κύρια διεύθυνση", - "default_url_previews_off": "Η προεπισκόπηση διευθύνσεων URL είναι απενεργοποιημένη από προεπιλογή για τους συμμετέχοντες σε αυτό το δωμάτιο.", - "default_url_previews_on": "Η προεπισκόπηση διευθύνσεων URL είναι ενεργοποιημένη από προεπιλογή για τους συμμετέχοντες σε αυτό το δωμάτιο.", "description_space": "Επεξεργαστείτε τις ρυθμίσεις που σχετίζονται με τον χώρο σας.", "error_creating_alias_description": "Παρουσιάστηκε σφάλμα κατά τη δημιουργία αυτής της διεύθυνσης. Ενδέχεται να μην επιτρέπεται από τον διακομιστή ή να έχει παρουσιαστεί προσωρινή αποτυχία.", "error_creating_alias_title": "Σφάλμα δημιουργίας διεύθυνσης", @@ -1756,12 +1754,7 @@ "published_aliases_explainer_space": "Οι δημοσιευμένες διευθύνσεις μπορούν να χρησιμοποιηθούν από οποιονδήποτε σε οποιονδήποτε διακομιστή για να συμμετάσχει στο χώρο σας.", "published_aliases_section": "Δημοσιευμένες Διευθύνσεις", "save": "Αποθήκευση Αλλαγών", - "topic_field_label": "Θέμα Δωματίου", - "url_preview_encryption_warning": "Σε κρυπτογραφημένα δωμάτια, όπως αυτό, οι προεπισκόπηση URL είναι απενεργοποιημένη από προεπιλογή για να διασφαλιστεί ότι ο κεντρικός σας διακομιστής (όπου δημιουργείται μια προεπισκόπηση) δεν μπορεί να συγκεντρώσει πληροφορίες σχετικά με συνδέσμους που βλέπετε σε αυτό το δωμάτιο.", - "url_preview_explainer": "Όταν κάποιος εισάγει μια διεύθυνση URL στο μήνυμά του, μπορεί να εμφανιστεί μια προεπισκόπηση του URL για να δώσει περισσότερες πληροφορίες σχετικά με αυτόν τον σύνδεσμο, όπως τον τίτλο, την περιγραφή και μια εικόνα από τον ιστότοπο.", - "url_previews_section": "Προεπισκόπηση συνδέσμων", - "user_url_previews_default_off": "Έχετε απενεργοποιημένη από προεπιλογή την προεπισκόπηση συνδέσμων.", - "user_url_previews_default_on": "Έχετε ενεργοποιημένη από προεπιλογή την προεπισκόπηση συνδέσμων." + "topic_field_label": "Θέμα Δωματίου" }, "notifications": { "browse_button": "Εξερεύνηση", @@ -2039,8 +2032,6 @@ "spell_check_locale_placeholder": "Επιλογή τοπικών ρυθμίσεων" }, "inline_url_previews_default": "Ενεργοποιήστε τις ενσωματωμένες προεπισκοπήσεις URL από προεπιλογή", - "inline_url_previews_room": "Ενεργοποιήστε τις προεπισκοπήσεις URL από προεπιλογή για τους συμμετέχοντες σε αυτό το δωμάτιο", - "inline_url_previews_room_account": "Ενεργοποίηση προεπισκόπισης URL για αυτό το δωμάτιο (επηρεάζει μόνο εσάς)", "insert_trailing_colon_mentions": "Εισαγάγετε άνω και κάτω τελεία μετά την αναφορά του χρήστη στην αρχή ενός μηνύματος", "jump_to_bottom_on_send": "Μεταβείτε στο τέλος του χρονολογίου όταν στέλνετε ένα μήνυμα", "key_backup": { diff --git a/apps/web/src/i18n/strings/eo.json b/apps/web/src/i18n/strings/eo.json index a4fba455da..40f0c10f28 100644 --- a/apps/web/src/i18n/strings/eo.json +++ b/apps/web/src/i18n/strings/eo.json @@ -1381,8 +1381,6 @@ "aliases_section": "Adresoj de ĉambro", "avatar_field_label": "Profilbildo de ĉambro", "canonical_alias_field_label": "Ĉefa adreso", - "default_url_previews_off": "Antaŭrigardoj de URL-oj estas implicite malŝaltitaj por anoj de tiu ĉi ĉambro.", - "default_url_previews_on": "Antaŭrigardoj de URL-oj estas implicite ŝaltitaj por anoj de tiu ĉi ĉambro.", "description_space": "Redaktu agordojn pri via aro.", "error_creating_alias_description": "Eraris kreado de tiu adreso. Eble ĝi ne estas permesata de la servilo, aŭ okazis portempa fiasko.", "error_creating_alias_title": "Eraris kreado de adreso", @@ -1409,12 +1407,7 @@ "published_aliases_explainer_space": "Publikigitajn adresojn povas uzi ajna persono sur ajna servilo por aliĝi al via aro.", "published_aliases_section": "Publikigitaj adresoj", "save": "Konservi ŝanĝojn", - "topic_field_label": "Temo de ĉambro", - "url_preview_encryption_warning": "En ĉifritaj ĉambroj, kiel ĉi tiu, antaŭrigardoj al URL-oj estas implicite malŝaltitaj por certigi, ke via hejmservilo (kie la antaŭrigardoj estas generataj) ne povas kolekti informojn pri ligiloj en ĉi tiu ĉambro.", - "url_preview_explainer": "Kiam iu metas URL-on en sian mesaĝon, antaŭrigardo al tiu URL povas montriĝi, por doni pliajn informojn pri tiu ligilo, kiel ekzemple la titolon, priskribon, kaj bildon el la retejo.", - "url_previews_section": "Antaŭrigardoj al retpaĝoj", - "user_url_previews_default_off": "Vi malŝaltis implicitajn antaŭrigardojn al retpaĝoj.", - "user_url_previews_default_on": "Vi ŝaltis implicitajn antaŭrigardojn al retpaĝoj." + "topic_field_label": "Temo de ĉambro" }, "notifications": { "browse_button": "Foliumi", @@ -1657,8 +1650,6 @@ "remove_msisdn_prompt": "Ĉu forigi %(phone)s?" }, "inline_url_previews_default": "Ŝalti entekstan antaŭrigardon al retadresoj", - "inline_url_previews_room": "Ŝalti URL-antaŭrigardon por anoj de ĉi tiu ĉambro", - "inline_url_previews_room_account": "Ŝalti URL-antaŭrigardon en ĉi tiu ĉambro (nur por vi)", "jump_to_bottom_on_send": "Salti al subo de historio sendinte mesaĝon", "key_backup": { "setup_secure_backup": { diff --git a/apps/web/src/i18n/strings/es.json b/apps/web/src/i18n/strings/es.json index e7857db6e1..e45d26f78f 100644 --- a/apps/web/src/i18n/strings/es.json +++ b/apps/web/src/i18n/strings/es.json @@ -1847,8 +1847,6 @@ "aliases_section": "Direcciones de la sala", "avatar_field_label": "Avatar de la sala", "canonical_alias_field_label": "Dirección principal", - "default_url_previews_off": "La vista previa de URLs se desactiva por defecto para los participantes de esta sala.", - "default_url_previews_on": "La vista previa de URLs se activa por defecto en los participantes de esta sala.", "description_space": "Edita los ajustes de tu espacio.", "error_creating_alias_description": "Hubo un error al crear esa dirección. Es posible que el servidor no lo permita o que haya ocurrido una falla temporal.", "error_creating_alias_title": "Error al crear la dirección", @@ -1875,12 +1873,7 @@ "published_aliases_explainer_space": "Los espacios publicados pueden usarse por cualquiera, independientemente de su servidor base.", "published_aliases_section": "Direcciones publicadas", "save": "Guardar cambios", - "topic_field_label": "Asunto de la sala", - "url_preview_encryption_warning": "En salas cifradas como ésta, la vista previa de las URLs se desactiva por defecto para asegurar que el servidor base (donde se generan) no pueda recopilar información de los enlaces que veas en esta sala.", - "url_preview_explainer": "Cuando alguien incluya una dirección URL en su mensaje, puede mostrarse una vista previa para ofrecer información sobre el enlace, que incluirá el título, descripción, y una imagen del sitio web.", - "url_previews_section": "Vista previa de enlaces", - "user_url_previews_default_off": "Has desactivado la vista previa de URLs por defecto.", - "user_url_previews_default_on": "Has activado las vista previa de URLs por defecto." + "topic_field_label": "Asunto de la sala" }, "notifications": { "browse_button": "Seleccionar", @@ -2172,8 +2165,6 @@ "spell_check_locale_placeholder": "Elige un idioma" }, "inline_url_previews_default": "Activar la vista previa de URLs en línea por defecto", - "inline_url_previews_room": "Activar la vista previa de URLs por defecto para los participantes de esta sala", - "inline_url_previews_room_account": "Activar la vista previa de URLs en esta sala (solo para ti)", "insert_trailing_colon_mentions": "Inserta automáticamente dos puntos después de las menciones que hagas al principio de los mensajes", "jump_to_bottom_on_send": "Saltar abajo del todo al enviar un mensaje", "key_backup": { diff --git a/apps/web/src/i18n/strings/et.json b/apps/web/src/i18n/strings/et.json index bd0ded64ac..82e8cd0c18 100644 --- a/apps/web/src/i18n/strings/et.json +++ b/apps/web/src/i18n/strings/et.json @@ -2219,8 +2219,6 @@ "aliases_section": "Jututubade aadressid", "avatar_field_label": "Jututoa tunnuspilt ehk avatar", "canonical_alias_field_label": "Põhiaadress", - "default_url_previews_off": "URL'ide eelvaated on vaikimisi lülitatud välja selles jututoas osalejate jaoks.", - "default_url_previews_on": "URL'ide eelvaated on vaikimisi kasutusel selles jututoas osalejate jaoks.", "description_space": "Muuda oma kogukonnakeskuse seadistusi.", "error_creating_alias_description": "Aadressi loomisel tekkis viga. See kas on serveri poolt keelatud või tekkis ajutine tõrge.", "error_creating_alias_title": "Viga aadressi loomisel", @@ -2251,12 +2249,7 @@ "published_aliases_explainer_space": "Avaldatud aadresse saab igaüks igast serverist kasutada liitumiseks sinu kogukonnakeskusega.", "published_aliases_section": "Avaldatud aadressid", "save": "Salvesta muutused", - "topic_field_label": "Jututoa teema", - "url_preview_encryption_warning": "Krüptitud jututubades, nagu see praegune, URL'ide eelvaated ei ole vaikimisi kasutusel. See tagab, et sinu koduserver (kus eelvaated luuakse) ei saaks koguda teavet viidete kohta, mida sa siin jututoas näed.", - "url_preview_explainer": "Kui keegi lisab oma sõnumisse URL'i, siis võidakse näidata selle URL'i eelvaadet, mis annab lisateavet tema kohta, nagu näiteks pealkiri, kirjeldus ja kuidas ta välja näeb.", - "url_previews_section": "URL'ide eelvaated", - "user_url_previews_default_off": "Vaikimisi oled URL'ide eelvaated lülitanud välja.", - "user_url_previews_default_on": "Vaikimisi oled URL'ide eelvaated võtnud kasutusele." + "topic_field_label": "Jututoa teema" }, "notifications": { "browse_button": "Sirvi", @@ -2678,8 +2671,6 @@ "username": "Kasutajanimi" }, "inline_url_previews_default": "Luba URL'ide vaikimisi eelvaated", - "inline_url_previews_room": "Luba URL'ide vaikimisi eelvaated selles jututoas osalejate jaoks", - "inline_url_previews_room_account": "Luba URL'ide eelvaated selle jututoa jaoks (mõjutab vaid sind)", "insert_trailing_colon_mentions": "Mainimiste järel näita sõnumi alguses koolonit", "invite_controls": { "default_label": "Luba kasutajatel sind kutsida jututubadesse" diff --git a/apps/web/src/i18n/strings/fa.json b/apps/web/src/i18n/strings/fa.json index 1caa6dee48..14ada631b6 100644 --- a/apps/web/src/i18n/strings/fa.json +++ b/apps/web/src/i18n/strings/fa.json @@ -1253,8 +1253,6 @@ "aliases_section": "آدرس‌های اتاق", "avatar_field_label": "آواتار اتاق", "canonical_alias_field_label": "آدرس اصلی", - "default_url_previews_off": "پیش نمایش URL به طور پیش فرض برای شرکت کنندگان در این اتاق غیرفعال است.", - "default_url_previews_on": "پیش نمایش URL به طور پیش فرض برای شرکت کنندگان در این اتاق فعال است.", "description_space": "تنظیمات مربوط به فضای کاری خود را ویرایش کنید.", "error_creating_alias_description": "هنگام ایجاد آدرس خطایی روی داد. ممکن است سرور مجاز نباشد و یا اینکه خطایی موقت رخ داده باشد.", "error_creating_alias_title": "خطا در ایجاد آدرس", @@ -1276,12 +1274,7 @@ "publish_toggle": "این اتاق را در فهرست اتاق %(domain)s برای عموم منتشر شود؟", "published_aliases_section": "آدرس‌های منتشر شده", "save": "ذخیره تغییرات", - "topic_field_label": "موضوع اتاق", - "url_preview_encryption_warning": "در اتاق های رمزگذاری شده، مانند این اتاق، پیش نمایش URL به طور پیش فرض غیرفعال است تا اطمینان حاصل شود که سرور شما (جایی که پیش نمایش ها ایجاد می شود) نمی تواند اطلاعات مربوط به پیوندهایی را که در این اتاق مشاهده می کنید جمع آوری کند.", - "url_preview_explainer": "هنگامی که فردی یک URL را در پیام خود قرار می دهد، می توان با مشاهده پیش نمایش آن URL، اطلاعات بیشتری در مورد آن پیوند مانند عنوان ، توضیحات و یک تصویر از وب سایت دریافت کرد.", - "url_previews_section": "پیش‌نمایش URL", - "user_url_previews_default_off": "شما به طور پیش فرض پیش نمایش url را غیر فعال کرده اید.", - "user_url_previews_default_on": "شما به طور پیش فرض پیش نمایش url را فعال کرده اید." + "topic_field_label": "موضوع اتاق" }, "notifications": { "browse_button": "جستجو", @@ -1460,8 +1453,6 @@ "remove_msisdn_prompt": "%(phone)s را پاک می‌کنید؟" }, "inline_url_previews_default": "فعال‌سازی پیش‌نمایش URL به صورت پیش‌فرض", - "inline_url_previews_room": "امکان پیش‌نمایش URL را به صورت پیش‌فرض برای اعضای این اتاق فعال کن", - "inline_url_previews_room_account": "فعال‌سازی پیش‌نمایش URL برای این اتاق (تنها شما را تحت تاثیر قرار می‌دهد)", "jump_to_bottom_on_send": "زمانی که پیام ارسال می‌کنید، به صورت خودکار به آخرین پیام پرش کن", "key_backup": { "setup_secure_backup": { diff --git a/apps/web/src/i18n/strings/fi.json b/apps/web/src/i18n/strings/fi.json index b5b7f8055e..edaa54aadf 100644 --- a/apps/web/src/i18n/strings/fi.json +++ b/apps/web/src/i18n/strings/fi.json @@ -1839,8 +1839,6 @@ "aliases_section": "Huoneen osoitteet", "avatar_field_label": "Huoneen kuva", "canonical_alias_field_label": "Pääosoite", - "default_url_previews_off": "URL-esikatselut ovat oletuksena pois päältä tämän huoneen jäsenillä.", - "default_url_previews_on": "URL-esikatselut on päällä oletusarvoisesti tämän huoneen jäsenillä.", "description_space": "Muokkaa tilaasi liittyviä asetuksia.", "error_creating_alias_description": "Osoitetta luotaessa tapahtui virhe. Voi olla, että palvelin ei salli sitä tai kyseessä oli tilapäinen virhe.", "error_creating_alias_title": "Virhe osoitetta luotaessa", @@ -1869,12 +1867,7 @@ "published_aliases_explainer_space": "Julkaistuja osoitteita voi käyttää kuka tahansa millä tahansa palvelimella liittyäkseen tilaasi.", "published_aliases_section": "Julkaistut osoitteet", "save": "Tallenna muutokset", - "topic_field_label": "Huoneen aihe", - "url_preview_encryption_warning": "Salatuissa huoneissa, kuten tässä, osoitteiden esikatselut ovat oletuksena pois käytöstä, jotta kotipalvelimesi (missä osoitteiden esikatselut luodaan) ei voi kerätä tietoa siitä, mitä linkkejä näet tässä huoneessa.", - "url_preview_explainer": "Kun joku asettaa osoitteen linkiksi viestiinsä, URL-esikatselu voi näyttää tietoja linkistä kuten otsikon, kuvauksen ja kuvan verkkosivulta.", - "url_previews_section": "URL-esikatselut", - "user_url_previews_default_off": "Olet oletusarvoisesti ottanut URL-esikatselut pois käytöstä.", - "user_url_previews_default_on": "Olet oletusarvoisesti ottanut URL-esikatselut käyttöön." + "topic_field_label": "Huoneen aihe" }, "notifications": { "browse_button": "Selaa", @@ -2222,8 +2215,6 @@ "username": "Käyttäjätunnus" }, "inline_url_previews_default": "Ota linkkien esikatselu käyttöön oletusarvoisesti", - "inline_url_previews_room": "Ota linkkien esikatselu käyttöön kaikille huoneen jäsenille", - "inline_url_previews_room_account": "Ota linkkien esikatselut käyttöön tässä huoneessa (koskee ainoastaan sinua)", "insert_trailing_colon_mentions": "Lisää kaksoispiste käyttäjän maininnan perään viestin alussa", "jump_to_bottom_on_send": "Siirry aikajanan pohjalle, kun lähetät viestin", "key_backup": { diff --git a/apps/web/src/i18n/strings/fr.json b/apps/web/src/i18n/strings/fr.json index ec23bc8a48..bef6cbf469 100644 --- a/apps/web/src/i18n/strings/fr.json +++ b/apps/web/src/i18n/strings/fr.json @@ -829,7 +829,7 @@ "invalid_json": "Ne semble pas être du JSON valide.", "level": "Rang", "low_bandwidth_mode": "Mode faible bande passante", - "low_bandwidth_mode_description": "Nécessite un serveur d’accueil compatible.", + "low_bandwidth_mode_description": "Désactive le chiffrement, la présence, les avatars, les accusés de lecture et les notifications de saisie.", "main_timeline": "Historique principal", "manual_device_verification": "Vérification manuelle de l'appareil", "no_receipt_found": "Aucun accusé disponible", @@ -1114,7 +1114,7 @@ "verification_requested_toast_title": "Vérification requise", "verified_identity_changed": "L'identité numérique de %(displayName)s (%(userId)s) a été réinitialisée. En savoir plus", "verified_identity_changed_no_displayname": "L'identité de %(userId)s a été réinitialisée. En savoir plus ", - "verify_toast_description": "À compter de fin avril 2026, les appareils non vérifiés ne pourront plus envoyer ni recevoir de messages.En savoir plus", + "verify_toast_description": "À compter de fin octobre 2026, les appareils non vérifiés ne pourront plus envoyer ni recevoir de messages.En savoir plus", "verify_toast_title": "Vérifiez cet appareil", "withdraw_verification_action": "Révoquer la vérification" }, @@ -2237,8 +2237,6 @@ "aliases_section": "Adresses du salon", "avatar_field_label": "Avatar du salon", "canonical_alias_field_label": "Adresse principale", - "default_url_previews_off": "Les aperçus d'URL sont désactivés par défaut pour les participants de ce salon.", - "default_url_previews_on": "Les aperçus d'URL sont activés par défaut pour les participants de ce salon.", "description_space": "Modifiez les paramètres de votre espace.", "error_creating_alias_description": "Une erreur est survenue lors de la création de l’adresse. Ce n’est peut-être pas autorisé par le serveur ou une erreur temporaire est survenue.", "error_creating_alias_title": "Erreur lors de la création de l’adresse", @@ -2269,12 +2267,7 @@ "published_aliases_explainer_space": "Les adresses publiées peuvent être utilisées par tout le monde sur tous les serveurs pour rejoindre votre espace.", "published_aliases_section": "Adresses publiées", "save": "Enregistrer les modifications", - "topic_field_label": "Sujet du salon", - "url_preview_encryption_warning": "Dans les salons chiffrés, comme celui-ci, l’aperçu des liens est désactivé par défaut pour s’assurer que le serveur d’accueil (où sont générés les aperçus) ne puisse pas collecter d’informations sur les liens qui apparaissent dans ce salon.", - "url_preview_explainer": "Quand quelqu’un met un lien dans son message, un aperçu du lien peut être affiché afin de fournir plus d’informations sur ce lien comme le titre, la description et une image du site.", - "url_previews_section": "Aperçus des liens", - "user_url_previews_default_off": "Vous avez désactivé les aperçus d’URL par défaut.", - "user_url_previews_default_on": "Vous avez activé les aperçus d’URL par défaut." + "topic_field_label": "Sujet du salon" }, "notifications": { "browse_button": "Parcourir", @@ -2696,9 +2689,8 @@ "unable_to_load_msisdns": "Impossible de charger les numéros de téléphone", "username": "Nom d’utilisateur" }, - "inline_url_previews_default": "Activer l’aperçu des URL par défaut", - "inline_url_previews_room": "Activer l’aperçu des URL par défaut pour les participants de ce salon", - "inline_url_previews_room_account": "Activer l’aperçu des URL pour ce salon (n’affecte que vous)", + "inline_url_previews_default": "Activer les aperçus", + "inline_url_previews_encrypted": "Activer les aperçus dans les sallons chiffrés", "insert_trailing_colon_mentions": "Insérer deux-points après les mentions de l'utilisateur au début d'un message", "invite_controls": { "default_label": "Autoriser les utilisateurs à vous inviter dans les salons" @@ -2836,6 +2828,8 @@ "enable_tray_icon": "Afficher l’icône dans la barre d’état et minimiser la fenêtre lors de la fermeture", "keyboard_heading": "Raccourcis clavier", "keyboard_view_shortcuts_button": "Pour voir tous les raccourcis claviers, cliquez ici.", + "link_previews_description": "Affiche des informations sur les liens sous les messages", + "link_previews_heading": "Aperçus des liens", "media_heading": "Images, GIF et vidéos", "presence_description": "Partager votre activité et votre statut avec les autres.", "publish_timezone": "Publier le fuseau horaire sur le profil public", @@ -4002,6 +3996,7 @@ "change_name_this_room": "Changer le nom de ce salon", "change_topic_active_room": "Changer le sujet dans le salon actuel", "change_topic_this_room": "Changer le sujet de ce salon", + "download_file": "Télécharger des fichiers depuis le dépôt multimédia", "receive_membership_active_room": "Afficher quand des personnes rejoignent, partent, ou sont invités dans votre salon actif", "receive_membership_this_room": "Voir quand une personne rejoint, quitte ou est invitée sur ce salon", "remove_ban_invite_leave_active_room": "Expulser, bannir ou inviter des personnes dans votre salon actif et en partir", diff --git a/apps/web/src/i18n/strings/gl.json b/apps/web/src/i18n/strings/gl.json index a1d49ff9f4..4c57a53c69 100644 --- a/apps/web/src/i18n/strings/gl.json +++ b/apps/web/src/i18n/strings/gl.json @@ -1608,8 +1608,6 @@ "aliases_section": "Enderezos da sala", "avatar_field_label": "Avatar da sala", "canonical_alias_field_label": "Enderezo principal", - "default_url_previews_off": "As vistas previas de URL están desactivadas por defecto para as participantes desta sala.", - "default_url_previews_on": "As vistas previas de URL están activas por defecto para os participantes desta sala.", "description_space": "Editar os axustes relativos ao teu espazo.", "error_creating_alias_description": "Algo fallou ao crear ese enderezo. Podería non estar autorizado polo servidor ou ser un fallo temporal.", "error_creating_alias_title": "Fallo ao crear o enderezo", @@ -1636,12 +1634,7 @@ "published_aliases_explainer_space": "Os enderezos publicados podense usar por calquera en calquera servidor para unirse ao teu espazo.", "published_aliases_section": "Enderezos publicados", "save": "Gardar cambios", - "topic_field_label": "Asunto da sala", - "url_preview_encryption_warning": "Nas salas cifradas, como é esta, está desactivado por defecto a previsualización das URL co fin de asegurarse de que o servidor local (que é onde se gardan as previsualizacións) non poida recoller información sobre das ligazóns que se ven nesta sala.", - "url_preview_explainer": "Cando alguén pon unha URL na mensaxe, esta previsualízarase para que así se coñezan xa cousas delas como o título, a descrición ou as imaxes que inclúe ese sitio web.", - "url_previews_section": "Vista previa de URL", - "user_url_previews_default_off": "Desactivou a vista previa de URL por defecto.", - "user_url_previews_default_on": "Activou a vista previa de URL por defecto." + "topic_field_label": "Asunto da sala" }, "notifications": { "browse_button": "Buscar", @@ -1907,8 +1900,6 @@ "spell_check_locale_placeholder": "Elixe o idioma" }, "inline_url_previews_default": "Activar por defecto as vistas previas en liña de URL", - "inline_url_previews_room": "Activar a vista previa de URL por defecto para as participantes nesta sala", - "inline_url_previews_room_account": "Activar vista previa de URL nesta sala (só che afecta a ti)", "insert_trailing_colon_mentions": "Inserir dous puntos tras mencionar a outra usuaria no inicio da mensaxe", "jump_to_bottom_on_send": "Ir ao final da cronoloxía cando envías unha mensaxe", "key_backup": { diff --git a/apps/web/src/i18n/strings/he.json b/apps/web/src/i18n/strings/he.json index 40028d2387..a25d699131 100644 --- a/apps/web/src/i18n/strings/he.json +++ b/apps/web/src/i18n/strings/he.json @@ -1325,8 +1325,6 @@ "aliases_section": "כתובות חדרים", "avatar_field_label": "אוואטר של החדר", "canonical_alias_field_label": "כתובת ראשית", - "default_url_previews_off": "תצוגות מקדימות של כתובות אתרים מושבתות כברירת מחדל עבור משתתפים בחדר זה.", - "default_url_previews_on": "תצוגות מקדימות של כתובות אתרים מופעלות כברירת מחדל עבור משתתפים בחדר זה.", "description_space": "שינוי הגדרות הנוגעות למרחב העבודה שלכם.", "error_creating_alias_description": "אירעה שגיאה ביצירת כתובת זו. ייתכן שהשרת אינו מאפשר זאת או שהתרחש כשל זמני.", "error_creating_alias_title": "שגיאה ביצירת כתובת", @@ -1353,12 +1351,7 @@ "published_aliases_explainer_space": "כל אחד בכל שרת יכול להשתמש בכתובות שפורסמו כדי להצטרף למרחב העבודה שלכם.", "published_aliases_section": "כתובות מפורסמות", "save": "שמור שינוייים", - "topic_field_label": "נושא החדר", - "url_preview_encryption_warning": "בחדרים מוצפנים, כמו זה, תצוגות מקדימות של כתובות אתרים מושבתות כברירת מחדל כדי להבטיח ששרת הבית שלך (במקום בו נוצרות התצוגות המקדימות) אינו יכול לאסוף מידע על קישורים שאתה רואה בחדר זה.", - "url_preview_explainer": "כאשר מישהו מכניס כתובת URL להודעה שלו, ניתן להציג תצוגה מקדימה של כתובת אתר כדי לתת מידע נוסף על קישור זה, כמו הכותרת, התיאור והתמונה מהאתר.", - "url_previews_section": "תצוגת קישורים", - "user_url_previews_default_off": "יש לך השבת תצוגות מקדימות של כתובות אתרים כברירת מחדל.", - "user_url_previews_default_on": "כברירת מחדל, הפעלת תצוגה מקדימה של כתובות אתרים." + "topic_field_label": "נושא החדר" }, "notifications": { "browse_button": "דפדף", @@ -1587,8 +1580,6 @@ "remove_msisdn_prompt": "הסר מספרי %(phone)s ?" }, "inline_url_previews_default": "אפשר צפייה של תצוגת קישורים בצאט כברירת מחדל", - "inline_url_previews_room": "אפשר לחברים בחדר זה לצפות בתצוגת קישורים", - "inline_url_previews_room_account": "הראה תצוגה מקדימה של קישורים בחדר זה (משפיע רק עליכם)", "insert_trailing_colon_mentions": "הוסף נקודתיים לאחר אזכור המשתמש בתחילת ההודעה", "jump_to_bottom_on_send": "קפוץ לתחתית השיחה בעת שליחת הודעה", "key_backup": { diff --git a/apps/web/src/i18n/strings/hr.json b/apps/web/src/i18n/strings/hr.json index 473875bc76..01a38d5c33 100644 --- a/apps/web/src/i18n/strings/hr.json +++ b/apps/web/src/i18n/strings/hr.json @@ -2250,8 +2250,6 @@ "aliases_section": "Adrese soba", "avatar_field_label": "Avatar sobe", "canonical_alias_field_label": "Glavna adresa", - "default_url_previews_off": "Pregledi URL-ova zadano su onemogućeni za sudionike u ovoj sobi.", - "default_url_previews_on": "Pregledi URL-ova zadano su omogućeni za sudionike u ovoj sobi.", "description_space": "Uredite postavke koje se odnose na vaš prostor.", "error_creating_alias_description": "Došlo je do pogreške prilikom izrade te adrese. Poslužitelj to možda ne dopušta ili je došlo do privremenog kvara.", "error_creating_alias_title": "Pogreška prilikom izrade adrese", @@ -2282,12 +2280,7 @@ "published_aliases_explainer_space": "Objavljene adrese može upotrebljavati svatko na svakom poslužitelju kako bi se pridružio vašem prostoru.", "published_aliases_section": "Objavljene adrese", "save": "Spremi promjene", - "topic_field_label": "Tema sobe", - "url_preview_encryption_warning": "U šifriranim sobama, poput ove, pregledi URL-ova zadano su onemogućeni kako bi se osiguralo da vaš matični poslužitelj (na kojem se generiraju pregledi) ne može prikupljati informacije o poveznicama koje vidite u ovoj sobi.", - "url_preview_explainer": "Kada netko u svoju poruku unese URL, može se prikazati pregled URL-a kako bi se dobile dodatne informacije o toj poveznici, kao što su naslov, opis i slika s mrežnog mjesta.", - "url_previews_section": "Pregledi URL-ova", - "user_url_previews_default_off": "Zadano onemogućili preglede URL-ova.", - "user_url_previews_default_on": "Zadano ste omogućili preglede URL-ova." + "topic_field_label": "Tema sobe" }, "notifications": { "browse_button": "Pregledaj", @@ -2713,8 +2706,6 @@ "username": "Korisničko ime" }, "inline_url_previews_default": "Zadano omogući umetnute pretpreglede URL-ova", - "inline_url_previews_room": "Omogući preglede URL-ova prema zadanim postavkama za sudionike u ovoj sobi", - "inline_url_previews_room_account": "Omogući preglede URL-ova za ovu sobu (utječe samo na vas)", "insert_trailing_colon_mentions": "Umetni dvotočku nakon što spominjanja korisnika na početku poruke", "invite_controls": { "default_label": "Dopustite korisnicima da vas pozovu u sobe" diff --git a/apps/web/src/i18n/strings/hu.json b/apps/web/src/i18n/strings/hu.json index 5b9765dc7e..78e9cf2222 100644 --- a/apps/web/src/i18n/strings/hu.json +++ b/apps/web/src/i18n/strings/hu.json @@ -2219,8 +2219,6 @@ "aliases_section": "Szobacímek", "avatar_field_label": "Szoba profilképe", "canonical_alias_field_label": "Fő cím", - "default_url_previews_off": "A webcím-előnézet alapértelmezetten tiltva van a szobában lévőknek.", - "default_url_previews_on": "A webcím-előnézet alapértelmezetten engedélyezve van a szobában lévőknek.", "description_space": "A tér beállításainak szerkesztése.", "error_creating_alias_description": "Hiba történt a cím létrehozása során. Nincs engedélyezve a kiszolgálón, vagy átmeneti hiba történt.", "error_creating_alias_title": "Cím beállítási hiba", @@ -2251,12 +2249,7 @@ "published_aliases_explainer_space": "A közzétett címet bárki használhatja a térbe való belépéshez, bármelyik kiszolgálóról.", "published_aliases_section": "Nyilvánosságra hozott cím", "save": "Változtatások mentése", - "topic_field_label": "Szoba témája", - "url_preview_encryption_warning": "A titkosított szobákban, mint például ez is, a webcím-előnézet alapértelmezetten ki van kapcsolva, hogy biztosított legyen, hogy a Matrix-kiszolgáló (amelyen az előnézet készül) ne tudjon információt gyűjteni arról, hogy milyen hivatkozásokat lát ebben a szobában.", - "url_preview_explainer": "Ha valaki webcímet helyez az üzenetébe, akkor lehetőség van egy előnézet megjelenítésére, amellyel további információt kaphat a hivatkozásról, mint a cím, a leírás és a weboldal képe.", - "url_previews_section": "Webcím-előnézet", - "user_url_previews_default_off": "A webcím-előnézet alapból tiltva van.", - "user_url_previews_default_on": "A webcím-előnézet alapból engedélyezve van." + "topic_field_label": "Szoba témája" }, "notifications": { "browse_button": "Böngészés", @@ -2678,8 +2671,6 @@ "username": "Felhasználónév" }, "inline_url_previews_default": "Beágyazott webcím-előnézetek alapértelmezett engedélyezése", - "inline_url_previews_room": "Webcím-előnézetek alapértelmezett engedélyezése a szobatagok számára", - "inline_url_previews_room_account": "Webcím-előnézetek engedélyezése ebben a szobában (csak Önt érinti)", "insert_trailing_colon_mentions": "Záró kettőspont beszúrása egy felhasználó üzenet elején való megemlítésekor", "invite_controls": { "default_label": "Felhasználók meghívhatják szobákba" diff --git a/apps/web/src/i18n/strings/hy.json b/apps/web/src/i18n/strings/hy.json index 5180b09bde..c75bef0ccb 100644 --- a/apps/web/src/i18n/strings/hy.json +++ b/apps/web/src/i18n/strings/hy.json @@ -2143,8 +2143,6 @@ "aliases_section": "Սենյակի հասցեներ", "avatar_field_label": "Սենյակի ավատար", "canonical_alias_field_label": "Հիմնական հասցե", - "default_url_previews_off": "URL նախադիտումները լռելյայն անջատված են այս սենյակի մասնակիցների համար:", - "default_url_previews_on": "URL- ի նախադիտումները միացված են լռելյայն այս սենյակի մասնակիցների համար:", "description_space": "Խմբագրել ձեր տարածքին վերաբերող կարգավորումները:", "error_creating_alias_description": "Այդ հասցեն ստեղծելիս սխալ տեղի ունեցավ։ Հնարավոր է՝ սերվերը թույլ չի տվել դա, կամ ժամանակավոր խափանում է տեղի ունեցել։", "error_creating_alias_title": "Հասցեի ստեղծման սխալ", @@ -2173,12 +2171,7 @@ "published_aliases_explainer_space": "Հրապարակված հասցեները կարող են օգտագործվել ցանկացած մեկի կողմից ցանկացած սերվերում` ձեր տարածքին միանալու համար:", "published_aliases_section": "Հրապարակված հասցեներ", "save": "Պահպանել փոփոխությունները", - "topic_field_label": "Սենյակի թեմա", - "url_preview_encryption_warning": "Գաղտնագրված սենյակներում, ինչպես այս մեկը, URL նախադիտումները անջատվում են լռելյայն `ապահովելու համար, որ ձեր homeserver-ը (որտեղ առաջանում են նախադիտումները) չկարողանա տեղեկություններ հավաքել այս սենյակում տեսած հղումների մասին:", - "url_preview_explainer": "Երբ ինչոր մեկը URL է դնում իր հաղորդագրության մեջ, URL- ի նախադիտումը կարող է ցուցադրվել` այդ հղման մասին լրացուցիչ տեղեկություններ տալու համար, ինչպիսիք են վերնագիրը, նկարագրությունը և կայքէջից պատկերը:", - "url_previews_section": "URL- ի նախադիտումներ", - "user_url_previews_default_off": "Դուք լռելյայն անջատել եք URL- ի նախադիտումները:", - "user_url_previews_default_on": "Դուք լռելյայն միացրել եք URL- ի նախադիտումները:" + "topic_field_label": "Սենյակի թեմա" }, "notifications": { "browse_button": "Զննել", @@ -2591,8 +2584,6 @@ "username": "Օգտանուն" }, "inline_url_previews_default": "Լռելյայն միացնել URL- ի ներդիրային նախադիտումները", - "inline_url_previews_room": "Միացնել URL-ների նախադիտումները լռելյայնորեն այս սենյակի մասնակիցների համար", - "inline_url_previews_room_account": "Միացնել URL-ների նախադիտումները այս սենյակի համար (ազդում է միայն ձեզ վրա)", "insert_trailing_colon_mentions": "Հաղորդագրության սկզբում գտնվող օգտատիրոջ հիշատակումից հետո ավելացնել երկկետ", "invite_controls": { "default_label": "Թույլատրել օգտատերերին հրավիրել ձեզ սենյակներ" diff --git a/apps/web/src/i18n/strings/id.json b/apps/web/src/i18n/strings/id.json index e38a50f039..f38c311c4c 100644 --- a/apps/web/src/i18n/strings/id.json +++ b/apps/web/src/i18n/strings/id.json @@ -115,7 +115,7 @@ "show_advanced": "Tampilkan lanjutan", "show_all": "Tampilkan semua", "sign_in": "Masuk", - "sign_out": "Keluar", + "sign_out": "Hapus perangkat ini", "skip": "Lewat", "start": "Mulai", "start_chat": "Mulai obrolan", @@ -2208,8 +2208,6 @@ "aliases_section": "Alamat Ruangan", "avatar_field_label": "Avatar ruangan", "canonical_alias_field_label": "Alamat utama", - "default_url_previews_off": "Tampilan URL dinonaktifkan secara bawaan untuk anggota di ruangan ini.", - "default_url_previews_on": "Tampilan URL diaktifkan secara bawaan untuk anggota di ruangan ini.", "description_space": "Edit pengaturan yang berkaitan dengan space Anda.", "error_creating_alias_description": "Terjadi sebuah kesalahan membuat alamat. Ini mungkin tidak diperbolehkan oleh servernya atau ada kegagalan sementara.", "error_creating_alias_title": "Terjadi kesalahan membuat alamat", @@ -2240,12 +2238,7 @@ "published_aliases_explainer_space": "Alamat yang dipublikasikan dapat digunakan oleh siapa saja di server apa saja untuk bergabung dengan space Anda.", "published_aliases_section": "Alamat yang Dipublikasikan", "save": "Simpan Perubahan", - "topic_field_label": "Topik Ruangan", - "url_preview_encryption_warning": "Di ruangan terenkripsi, seperti ruangan ini, tampilan URL dinonaktifkan secara bawaan untuk memastikan homeserver Anda (di mana tampilannya dibuat) tidak mendapatkan informasi tentang tautan yang Anda lihat di ruangan ini.", - "url_preview_explainer": "Ketika seseorang menambahkan URL di pesannya, sebuah tampilan URL dapat ditampilkan untuk memberikan informasi lainnya tentang tautan itu seperti judul, deskripsi, dan sebuah gambar dari website.", - "url_previews_section": "Tampilan URL", - "user_url_previews_default_off": "Anda telah menonaktifkan tampilan URL secara bawaan.", - "user_url_previews_default_on": "Anda telah mengaktifkan tampilan URL secara bawaan." + "topic_field_label": "Topik Ruangan" }, "notifications": { "browse_button": "Jelajahi", @@ -2667,8 +2660,6 @@ "username": "Nama pengguna" }, "inline_url_previews_default": "Aktifkan tampilan URL secara bawaan", - "inline_url_previews_room": "Aktifkan tampilan URL secara bawaan untuk anggota di ruangan ini", - "inline_url_previews_room_account": "Aktifkan tampilan URL secara bawaan (hanya memengaruhi Anda)", "insert_trailing_colon_mentions": "Tambahkan sebuah karakter titik dua sesudah sebutan pengguna dari awal pesan", "invite_controls": { "default_label": "Izinkan pengguna mengundang Anda ke ruangan" diff --git a/apps/web/src/i18n/strings/is.json b/apps/web/src/i18n/strings/is.json index afe6602bcc..9eba2eb287 100644 --- a/apps/web/src/i18n/strings/is.json +++ b/apps/web/src/i18n/strings/is.json @@ -1543,8 +1543,6 @@ "aliases_section": "Vistföng spjallrása", "avatar_field_label": "Auðkennismynd spjallrásar", "canonical_alias_field_label": "Aðalvistfang", - "default_url_previews_off": "Forskoðun vefslóða er sjálfgefið óvirk fyrir þátttakendur í þessari spjallrás.", - "default_url_previews_on": "Forskoðun vefslóða er sjálfgefið virk fyrir þátttakendur í þessari spjallrás.", "description_space": "Breyta stillingum viðkomandi svæðinu þínu.", "error_creating_alias_title": "Villa við að búa til vistfang", "error_deleting_alias_description_forbidden": "Þú hefur ekki heimild til að eyða vistfanginu.", @@ -1564,11 +1562,7 @@ "publish_toggle": "Birta þessa spjallrás opinberlega á skrá %(domain)s yfir spjallrásir?", "published_aliases_section": "Birt vistföng", "save": "Vista breytingar", - "topic_field_label": "Umfjöllunarefni spjallrásar", - "url_preview_encryption_warning": "Í dulrituðum spjallrásum, eins og þessari, er sjálfgefið slökkt á forskoðun vefslóða til að tryggja að heimaþjónn þinn (þar sem forskoðunin myndast) geti ekki safnað upplýsingum um tengla sem þú sérð í þessari spjallrás.", - "url_previews_section": "Forskoðun vefslóða", - "user_url_previews_default_off": "Þú hefur óvirkt forskoðun vefslóða sjálfgefið.", - "user_url_previews_default_on": "Þú hefur virkt forskoðun vefslóða sjálfgefið." + "topic_field_label": "Umfjöllunarefni spjallrásar" }, "notifications": { "browse_button": "Skoða", @@ -1809,8 +1803,6 @@ "spell_check_locale_placeholder": "Veldu staðfærslu" }, "inline_url_previews_default": "Sjálfgefið virkja forskoðun innfelldra vefslóða", - "inline_url_previews_room": "Virkja forskoðun vefslóða sjálfgefið fyrir þátttakendur í þessari spjallrás", - "inline_url_previews_room_account": "Virkja forskoðun vefslóða fyrir þessa spjallrás (einungis fyrir þig)", "insert_trailing_colon_mentions": "Setja tvípunkt á eftir þar sem minnst er á notanda í upphafi skilaboða", "jump_to_bottom_on_send": "Hoppa neðst á tímalínuna þegar þú sendir skilaboð", "key_backup": { diff --git a/apps/web/src/i18n/strings/it.json b/apps/web/src/i18n/strings/it.json index 9d76f15d7d..8189af9104 100644 --- a/apps/web/src/i18n/strings/it.json +++ b/apps/web/src/i18n/strings/it.json @@ -1908,8 +1908,6 @@ "aliases_section": "Indirizzi stanza", "avatar_field_label": "Avatar della stanza", "canonical_alias_field_label": "Indirizzo principale", - "default_url_previews_off": "Le anteprime degli URL sono inattive in modo predefinito per i partecipanti di questa stanza.", - "default_url_previews_on": "Le anteprime degli URL sono attive in modo predefinito per i partecipanti di questa stanza.", "description_space": "Modifica le impostazioni relative al tuo spazio.", "error_creating_alias_description": "Si è verificato un errore creando l'indirizzo. Potrebbe non essere permesso dal server o un problema temporaneo.", "error_creating_alias_title": "Errore creazione indirizzo", @@ -1936,12 +1934,7 @@ "published_aliases_explainer_space": "Gli indirizzi pubblicati possono essere usati da chiunque su tutti i server per entrare nel tuo spazio.", "published_aliases_section": "Indirizzi pubblicati", "save": "Salva modifiche", - "topic_field_label": "Argomento stanza", - "url_preview_encryption_warning": "Nelle stanze criptate, come questa, le anteprime degli URL sono disattivate in modo predefinito per garantire che il tuo homeserver (dove vengono generate le anteprime) non possa raccogliere informazioni sui collegamenti che vedi in questa stanza.", - "url_preview_explainer": "Quando qualcuno inserisce un URL nel proprio messaggio, è possibile mostrare un'anteprima dell'URL per fornire maggiori informazioni su quel collegamento, come il titolo, la descrizione e un'immagine dal sito web.", - "url_previews_section": "Anteprime URL", - "user_url_previews_default_off": "Hai disattivato le anteprime degli URL in modo predefinito.", - "user_url_previews_default_on": "Hai attivato le anteprime degli URL in modo predefinito." + "topic_field_label": "Argomento stanza" }, "notifications": { "browse_button": "Sfoglia", @@ -2247,8 +2240,6 @@ "spell_check_locale_placeholder": "Scegli una lingua" }, "inline_url_previews_default": "Attiva le anteprime URL in modo predefinito", - "inline_url_previews_room": "Attiva le anteprime URL in modo predefinito per i partecipanti in questa stanza", - "inline_url_previews_room_account": "Attiva le anteprime URL in questa stanza (riguarda solo te)", "insert_trailing_colon_mentions": "Inserisci dei due punti dopo le citazioni degli utenti all'inizio di un messaggio", "jump_to_bottom_on_send": "Salta in fondo alla linea temporale quando invii un messaggio", "key_backup": { diff --git a/apps/web/src/i18n/strings/ja.json b/apps/web/src/i18n/strings/ja.json index 966462b0cd..490416472f 100644 --- a/apps/web/src/i18n/strings/ja.json +++ b/apps/web/src/i18n/strings/ja.json @@ -1739,8 +1739,6 @@ "aliases_section": "ルームのアドレス", "avatar_field_label": "ルームのアバター", "canonical_alias_field_label": "メインアドレス", - "default_url_previews_off": "このルームの参加者には、既定でURLプレビューが無効です。", - "default_url_previews_on": "このルームの参加者には、既定でURLプレビューが有効です。", "description_space": "スペースの設定を変更します。", "error_creating_alias_description": "アドレスを作成する際にエラーが発生しました。サーバーで許可されていないか、一時的な障害が発生した可能性があります。", "error_creating_alias_title": "アドレスを作成する際にエラーが発生しました", @@ -1767,12 +1765,7 @@ "published_aliases_explainer_space": "公開アドレスを設定すると、どのサーバーのユーザーでも、あなたのスペースに参加できるようになります。", "published_aliases_section": "公開アドレス", "save": "変更を保存", - "topic_field_label": "ルームのトピック", - "url_preview_encryption_warning": "このルームを含めて、暗号化されたルームでは、あなたのホームサーバー(これがプレビューを作成します)によるリンクの情報の収集を防ぐため、URLプレビューは既定で無効になっています。", - "url_preview_explainer": "メッセージにURLが含まれる場合、タイトル、説明、ウェブサイトの画像などがURLプレビューとして表示されます。", - "url_previews_section": "URLプレビュー", - "user_url_previews_default_off": "URLプレビューが既定で無効です。", - "user_url_previews_default_on": "URLプレビューが既定で有効です。" + "topic_field_label": "ルームのトピック" }, "notifications": { "browse_button": "参照", @@ -2048,8 +2041,6 @@ "spell_check_locale_placeholder": "ロケールを選択" }, "inline_url_previews_default": "既定でインラインURLプレビューを有効にする", - "inline_url_previews_room": "このルームの参加者のために既定でURLプレビューを有効にする", - "inline_url_previews_room_account": "このルームのURLプレビューを有効にする(あなたにのみ適用)", "insert_trailing_colon_mentions": "ユーザーをメンションする際にコロンを挿入", "jump_to_bottom_on_send": "メッセージを送信する際にタイムラインの最下部に移動", "key_backup": { diff --git a/apps/web/src/i18n/strings/ka.json b/apps/web/src/i18n/strings/ka.json index 5d43204f97..9c14feaf3a 100644 --- a/apps/web/src/i18n/strings/ka.json +++ b/apps/web/src/i18n/strings/ka.json @@ -1386,8 +1386,6 @@ "aliases_section": "ოთახის მისამართები", "avatar_field_label": "ოთახის ავატარი", "canonical_alias_field_label": "მთავარი მისამართი", - "default_url_previews_off": "URL-ის გადახედვა ნაგულისხმევად გამორთულია ამ ოთახში მონაწილეებისთვის.", - "default_url_previews_on": "URL-ის გადახედვა ნაგულისხმევად ჩართულია ამ ოთახში მონაწილეებისთვის.", "description_space": "შეცვალეთ პარამეტრები, რომლებიც დაკავშირებულია თქვენს სივრცესთან.", "error_creating_alias_description": "ამ მისამართის შექმნისას მოხდა შეცდომა. ეს შეიძლება არ იყოს დაშვებული სერვერის მიერ ან მოხდა დროებითი უკმარისობა.", "error_creating_alias_title": "შეცდომა მისამართის შექმნისას", @@ -1414,12 +1412,7 @@ "published_aliases_explainer_space": "გამოქვეყნებული მისამართები შეიძლება გამოყენებულ იქნას ნებისმიერ სერვერზე, რათა შეუერთდეს თქვენს სივრცეს.", "published_aliases_section": "გამოქვეყნებული მისამართები", "save": "ცვლილებების შენახვა", - "topic_field_label": "ოთახის თემა", - "url_preview_encryption_warning": "დაშიფრულ ოთახებში, როგორიცაა ეს, URL-ის გადახედვა ნაგულისხმევად გამორთულია, რათა უზრუნველყოს, რომ თქვენი სახლის სერვერი (სადაც იქმნება გადახედვები) ვერ შეაგროვებს ინფორმაციას ამ ოთახში ნახულ ბმულებზე.", - "url_preview_explainer": "როდესაც ვინმე ათავსებს URL-ს თავის შეტყობინებაში, URL-ის გადახედვა შეიძლება ნაჩვენები იყოს ამ ბმულის შესახებ მეტი ინფორმაციის მისაღებად, როგორიცაა სათაური, აღწერა და სურათი ვებსაიტიდან.", - "url_previews_section": "URL გადახედვები", - "user_url_previews_default_off": "თქვენ გაქვთ ინვალიდი URL-ის გადახედვა ნაგულისხმევად.", - "user_url_previews_default_on": "თქვენ გაქვთ ჩართულია URL-ის გადახედვა ნაგულისხმევად." + "topic_field_label": "ოთახის თემა" }, "notifications": { "browse_button": "დათვალიერება", @@ -1685,8 +1678,6 @@ "spell_check_locale_placeholder": "აირჩიეთ ლოკალი" }, "inline_url_previews_default": "ნაგულისხმევად ჩართული URL-ის გადახედვის ჩართვა", - "inline_url_previews_room": "URL-ის გადახედვის ჩართვა ნაგულისხმევად ამ ოთახში მონაწილეებისთვის", - "inline_url_previews_room_account": "ამ ოთახისთვის URL-ის გადახედვის ჩართვა (მხოლოდ თქვენზე მოქმედებს)", "insert_trailing_colon_mentions": "ჩადეთ ბოლო ორწერტილი მას შემდეგ, რაც მომხმარებელი აღნიშნავს შეტყობინების დასაწყისში", "jump_to_bottom_on_send": "შეტყობინების გაგზავნისას გადადით ქრონოლოგიის ბოლოში", "key_backup": { diff --git a/apps/web/src/i18n/strings/ko.json b/apps/web/src/i18n/strings/ko.json index 987969ea21..474b3f567f 100644 --- a/apps/web/src/i18n/strings/ko.json +++ b/apps/web/src/i18n/strings/ko.json @@ -2196,8 +2196,6 @@ "aliases_section": "방 주소", "avatar_field_label": "방 아바타", "canonical_alias_field_label": "기본 주소", - "default_url_previews_off": "기본으로 URL 미리 보기가 이 방에 참여한 사람들 모두에게 꺼졌습니다.", - "default_url_previews_on": "기본으로 URL 미리 보기가 이 방에 참여한 사람들 모두에게 켜졌습니다.", "description_space": "스페이스와 관련된 설정을 편집하세요.", "error_creating_alias_description": "해당 주소를 생성하는 과정에서 오류가 발생했습니다. 서버에서 허용하지 않거나 일시적인 오류가 발생했을 수 있습니다.", "error_creating_alias_title": "주소 생성 중 오류 발생", @@ -2226,12 +2224,7 @@ "published_aliases_explainer_space": "공개된 주소는 어떤 서버의 누구든지 귀하의 공간에 참여하는 데 사용할 수 있습니다.", "published_aliases_section": "공개된 주소", "save": "변경 사항 저장", - "topic_field_label": "방 주제", - "url_preview_encryption_warning": "지금 이 방처럼, 암호화된 방에서는 홈서버 (미리 보기가 만들어지는 곳)에서 이 방에서 보여지는 링크에 대해 알 수 없도록 기본으로 URL 미리 보기가 꺼집니다.", - "url_preview_explainer": "누군가 메시지에 URL을 넣으면, URL 미리 보기로 웹사이트에서 온 제목, 설명, 그리고 이미지 등 그 링크에 대한 정보가 표시됩니다.", - "url_previews_section": "URL 미리보기", - "user_url_previews_default_off": "기본으로 URL 미리 보기를 껐습니다.", - "user_url_previews_default_on": "기본으로 URL 미리 보기를 켰습니다." + "topic_field_label": "방 주제" }, "notifications": { "browse_button": "찾기", @@ -2648,8 +2641,6 @@ "username": "사용자 이름" }, "inline_url_previews_default": "기본으로 인라인 URL 미리 보기 사용하기", - "inline_url_previews_room": "이 방에 참여한 모두에게 기본으로 URL 미리보기 사용하기", - "inline_url_previews_room_account": "이 방에서 URL 미리보기 사용하기 (오직 나만 영향을 받음)", "insert_trailing_colon_mentions": "메시지 시작 부분에 사용자 언급 뒤에 콜론을 추가합니다", "invite_controls": { "default_label": "사용자가 방에 초대할 수 있도록 허용" diff --git a/apps/web/src/i18n/strings/lo.json b/apps/web/src/i18n/strings/lo.json index 23be8ff319..4ae16559a0 100644 --- a/apps/web/src/i18n/strings/lo.json +++ b/apps/web/src/i18n/strings/lo.json @@ -1574,8 +1574,6 @@ "aliases_section": "ທີ່ຢູ່ຂອງຫ້ອງ", "avatar_field_label": "ຮູບ avatar ຫ້ອງ", "canonical_alias_field_label": "ທີ່ຢູ່ຫຼັກ", - "default_url_previews_off": "ການສະແດງຕົວຢ່າງ URL ຖືກປິດການນຳໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນສຳລັບຜູ້ເຂົ້າຮ່ວມໃນຫ້ອງນີ້.", - "default_url_previews_on": "ການສະແດງຕົວຢ່າງ URL ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນສໍາລັບຜູ້ເຂົ້າຮ່ວມໃນຫ້ອງນີ້.", "description_space": "ແກ້ໄຂການຕັ້ງຄ່າທີ່ກ່ຽວຂ້ອງກັບພື້ນທີ່ຂອງທ່ານ.", "error_creating_alias_description": "ເກີດຄວາມຜິດພາດໃນການສ້າງທີ່ຢູ່ນັ້ນ. ມັນອາດຈະບໍ່ໄດ້ຮັບການອະນຸຍາດຈາກເຊີບເວີ ຫຼືບໍ່ສຳເລັດ ຊົ່ວຄາວເກີດຂຶ້ນ.", "error_creating_alias_title": "ເກີດຄວາມຜິດພາດໃນການສ້າງທີ່ຢູ່", @@ -1602,12 +1600,7 @@ "published_aliases_explainer_space": "ທີ່ຢູ່ທີ່ເຜີຍແຜ່ສາມາດຖືກນໍາໃຊ້ໂດຍຜູ້ໃດຜູ້ຫນຶ່ງໃນເຊີບເວີຂອງການເຂົ້າຮ່ວມຊ່ອງຂອງທ່ານ.", "published_aliases_section": "ທີ່ຢູ່ເຜີຍແຜ່", "save": "ບັນທຶກການປ່ຽນແປງ", - "topic_field_label": "ຫົວຂໍ້ຫ້ອງ", - "url_preview_encryption_warning": "ໃນຫ້ອງທີ່ເຂົ້າລະຫັດ, ເຊັ່ນດຽວກັບ, ການສະແດງຕົວຢ່າງ URLໄດ້ປິດໃຊ້ງານໂດຍຄ່າເລີ່ມຕົ້ນເພື່ອຮັບປະກັນວ່າ homeserver ຂອງທ່ານ (ບ່ອນສະແດງຕົວຢ່າງ) ບໍ່ສາມາດລວບລວມຂໍ້ມູນກ່ຽວກັບການເຊື່ອມຕໍ່ທີ່ທ່ານເຫັນຢູ່ໃນຫ້ອງນີ້.", - "url_preview_explainer": "ເມື່ອຜູ້ໃດຜູ້ນຶ່ງໃສ່ URL ໃນຂໍ້ຄວາມຂອງພວກເຂົາ, ການສະແດງຕົວຢ່າງ URL ສາມາດສະແດງເພື່ອໃຫ້ຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການເຊື່ອມຕໍ່ນັ້ນເຊັ່ນຫົວຂໍ້, ຄໍາອະທິບາຍແລະຮູບພາບຈາກເວັບໄຊທ໌.", - "url_previews_section": "ຕົວຢ່າງ URL", - "user_url_previews_default_off": "ທ່ານໄດ້ ປິດໃຊ້ງານ ຕົວຢ່າງ URL ຕາມຄ່າເລີ່ມຕົ້ນ.", - "user_url_previews_default_on": "ທ່ານໄດ້ ເປີດໃຊ້ງານ ຕົວຢ່າງ URL ຕາມຄ່າເລີ່ມຕົ້ນ." + "topic_field_label": "ຫົວຂໍ້ຫ້ອງ" }, "notifications": { "browse_button": "ຄົ້ນຫາ", @@ -1869,8 +1862,6 @@ "remove_msisdn_prompt": "ລຶບ %(phone)sອອກບໍ?" }, "inline_url_previews_default": "ເປີດໃຊ້ການສະແດງຕົວຢ່າງ URL ໃນແຖວຕາມຄ່າເລີ່ມຕົ້ນ", - "inline_url_previews_room": "ເປີດໃຊ້ການສະແດງຕົວຢ່າງ URL ໂດຍຄ່າເລີ່ມຕົ້ນສໍາລັບຜູ້ເຂົ້າຮ່ວມໃນຫ້ອງນີ້", - "inline_url_previews_room_account": "ເປີດໃຊ້ຕົວຢ່າງ URL ສໍາລັບຫ້ອງນີ້ (ມີຜົນຕໍ່ທ່ານເທົ່ານັ້ນ)", "insert_trailing_colon_mentions": "ຈໍ້າສອງເມັດພາຍຫຼັງຈາກຜູ້ໃຊ້ກ່າວເຖິງໃນຕອນເລີ່ມຕົ້ນຂອງຂໍ້ຄວາມ", "jump_to_bottom_on_send": "ໄປຫາລຸ່ມສຸດຂອງທາມລາຍເມື່ອທ່ານສົ່ງຂໍ້ຄວາມ", "key_backup": { diff --git a/apps/web/src/i18n/strings/lt.json b/apps/web/src/i18n/strings/lt.json index a0bc2f2b9c..9b90d0b829 100644 --- a/apps/web/src/i18n/strings/lt.json +++ b/apps/web/src/i18n/strings/lt.json @@ -1197,8 +1197,6 @@ "aliases_section": "Kambario Adresai", "avatar_field_label": "Kambario pseudoportretas", "canonical_alias_field_label": "Pagrindinis adresas", - "default_url_previews_off": "URL nuorodų peržiūros šio kambario dalyviams yra išjungtos kaip numatytosios.", - "default_url_previews_on": "URL nuorodų peržiūros šio kambario dalyviams yra įjungtos kaip numatytosios.", "description_space": "Redaguoti su savo erdve susijusius nustatymus.", "error_creating_alias_description": "Kuriant šį adresą įvyko klaida. Gali būti, kad serveris jo neleidžia arba įvyko laikina klaida.", "error_creating_alias_title": "Klaida kuriant adresą", @@ -1225,12 +1223,7 @@ "published_aliases_explainer_space": "Paskelbtus adresus gali naudoti bet kas bet kuriame serveryje, prisijungimui prie jūsų erdvės.", "published_aliases_section": "Paskelbti Adresai", "save": "Išsaugoti Pakeitimus", - "topic_field_label": "Kambario Tema", - "url_preview_encryption_warning": "Šifruotuose kambariuose, tokiuose kaip šis, URL nuorodų peržiūros pagal numatymą yra išjungtos, kad būtų užtikrinta, jog jūsų serveris (kur yra generuojamos peržiūros) negali rinkti informacijos apie jūsų šiame kambaryje peržiūrėtas nuorodas.", - "url_preview_explainer": "Kai kas nors į savo žinutę įtraukia URL, gali būti rodoma URL peržiūra, suteikianti daugiau informacijos apie tą nuorodą, tokios kaip pavadinimas, aprašymas ir vaizdas iš svetainės.", - "url_previews_section": "URL nuorodų peržiūros", - "user_url_previews_default_off": "Jūs išjungėte URL nuorodų peržiūras kaip numatytasias.", - "user_url_previews_default_on": "Jūs įjungėte URL nuorodų peržiūras kaip numatytasias." + "topic_field_label": "Kambario Tema" }, "notifications": { "browse_button": "Naršyti", @@ -1475,8 +1468,6 @@ "remove_msisdn_prompt": "Pašalinti %(phone)s?" }, "inline_url_previews_default": "Įjungti URL nuorodų peržiūras kaip numatytasias", - "inline_url_previews_room": "Įjungti URL nuorodų peržiūras kaip numatytasias šiame kambaryje esantiems dalyviams", - "inline_url_previews_room_account": "Įjungti URL nuorodų peržiūras šiame kambaryje (įtakoja tik jus)", "insert_trailing_colon_mentions": "Įterpti dvitaškį po naudotojo paminėjimų žinutės pradžioje", "jump_to_bottom_on_send": "Peršokti į laiko juostos apačią, kai siunčiate žinutę", "key_backup": { diff --git a/apps/web/src/i18n/strings/lv.json b/apps/web/src/i18n/strings/lv.json index 6ebf006013..d0c60566f7 100644 --- a/apps/web/src/i18n/strings/lv.json +++ b/apps/web/src/i18n/strings/lv.json @@ -1841,8 +1841,6 @@ "aliases_section": "Istabas adreses", "avatar_field_label": "Istabas avatars", "canonical_alias_field_label": "Galvenā adrese", - "default_url_previews_off": "ULR priekšskatījumi šīs istabas dalībniekiem pēc noklusējuma ir atspējoti.", - "default_url_previews_on": "URL priekšskatījumi šīs istabas dalībniekiem pēc noklusējuma ir iespējoti.", "description_space": "Rediģējiet ar jūsu telpu saistītos iestatījumus.", "error_creating_alias_description": "Veidojot šo adresi, radās kļūda. Iespējams, serveris to neatļauj vai arī ir radusies īslaicīga kļūme.", "error_creating_alias_title": "Veidojot adresi, radās kļūda", @@ -1869,12 +1867,7 @@ "published_aliases_explainer_space": "Publicētās adreses var izmantot ikviens jebkurā serverī, lai pievienotos jūsu telpai.", "published_aliases_section": "Publiskotās adreses", "save": "Saglabāt izmaiņas", - "topic_field_label": "Istabas temats", - "url_preview_encryption_warning": "Šifrētās istabās, tādās kā šī, URL priekšskatījumi pēc noklusējumi ir atspējoti, lai nodrošinātu, ka mājasserveris (kurā priekšskatījumi tiek izveidoti) nevar iegūt informāciju par šajā istabā redzamajām saitēm.", - "url_preview_explainer": "Kad kāds savā ziņā ievieto URL, var tikt parādīts priekšskatījums, lai sniegtu vairāk informācijas par saiti, kā piemēram, virsraksts, apraksts un attēls no tīmekļvietnes.", - "url_previews_section": "URL priekšskatījumi", - "user_url_previews_default_off": "Tu pēc noklusējuma esi atspējojis URL priekšskatījumus.", - "user_url_previews_default_on": "Tu pēc noklusējuma esi iespējojis URL priekšskatījumus." + "topic_field_label": "Istabas temats" }, "notifications": { "browse_button": "Pārlūkot", @@ -2164,8 +2157,6 @@ "spell_check_locale_placeholder": "Izvēlieties lokalizāciju" }, "inline_url_previews_default": "Iespējot URL priekšskatījumus pēc noklusējuma", - "inline_url_previews_room": "Iespējot URL priekšskatījumus pēc noklusējuma visiem šīs istabas dalībniekiem", - "inline_url_previews_room_account": "Iespējot URL priekšskatījumus šajā istabā (ietekmē tikai Tevi)", "insert_trailing_colon_mentions": "Jāievieto beigu kols pēc lietotāja pieminēšanas ziņas sākumā", "jump_to_bottom_on_send": "Nosūtot ziņu, pāriet uz laika skalas beigām", "key_backup": { diff --git a/apps/web/src/i18n/strings/mg_MG.json b/apps/web/src/i18n/strings/mg_MG.json index 9012242c9f..c290f91b3e 100644 --- a/apps/web/src/i18n/strings/mg_MG.json +++ b/apps/web/src/i18n/strings/mg_MG.json @@ -1892,8 +1892,6 @@ "aliases_section": "Adiresy ao amin'ny efitrano", "avatar_field_label": "Avatar efitra", "canonical_alias_field_label": "Adiresy lehibe", - "default_url_previews_off": "Ny fijeriny URL dia esorina hoany mpandray anjara amin'ity efitrano ity.", - "default_url_previews_on": "Ny fijerena URL dia alefa amin'ny alàlany default hoany mpandray anjara amin'ity efitrano ity.", "description_space": "Ahitsio ny kira mifandraika amin'ny habakabaka.", "error_creating_alias_description": "Nisy lesoka tamin'ny famoronana io adiresy io. Mety tsy avelany mpizara izany na nisy tsy fahombiazana vonjimaika.", "error_creating_alias_title": "Hadisoana tamin'ny famoronana adiresy", @@ -1920,12 +1918,7 @@ "published_aliases_explainer_space": "Ny adiresy navoaka dia azon'ny olona ampiasaina aminy mpizara rehetra mba hiditra amin'ny habakao.", "published_aliases_section": "Adiresy navoaka", "save": "Alaina ny fanovana", - "topic_field_label": "Lohahevitra Efitrano", - "url_preview_encryption_warning": "Ao aminy efitrano misy miafina, toa an'ity iray ity, ny fijerena URL dia kilemaina amin'ny alàlany default mba hahazoana antoka fa tsy afaka manangona fampahalalana momba ny rohy hitanao ao amin'ity efitrano ity ny mpampiantrano anao (izay anaovana ny preview).", - "url_preview_explainer": "Rehefa misy olona mametraka URL ao amin'ny hafany, dia azo aseho ny fijerena URL mba hanomezana fampahalalana bebe kokoa momba an'io rohy io toy ny lohateny, famaritana, ary sary avy aminy tranokala.", - "url_previews_section": "Topi-maso amin'ny Url", - "user_url_previews_default_off": "Ianao dia manana sembana Zahao ny URL amin'ny alàlany default.", - "user_url_previews_default_on": "Ianao dia manana afaka Zahao ny URL aminy alàlan'ny default." + "topic_field_label": "Lohahevitra Efitrano" }, "notifications": { "browse_button": "Mikaroka", @@ -2231,8 +2224,6 @@ "spell_check_locale_placeholder": "Misafidiana toerana iray" }, "inline_url_previews_default": "Alefaso ny fijerena URL an-tserasera aminy alàlan'ny default", - "inline_url_previews_room": "Alefaso amin'ny alàlany ara-pototra hoany mpandray anjara amin'ity efitrano ity ny fijerena URL", - "inline_url_previews_room_account": "Alefaso ny fijerena URL ho an'ity efitrano ity (miantraika aminao ihany)", "insert_trailing_colon_mentions": "Ampidiro tsangambato aoriana aorian'ny fiteny mpampiasa eo am-piandohany hafatra", "jump_to_bottom_on_send": "Mankanesa any amin'ny farany fandaharam-potoana rehefa mandefa hafatra ianao", "key_backup": { diff --git a/apps/web/src/i18n/strings/nb_NO.json b/apps/web/src/i18n/strings/nb_NO.json index 0c1a647d0e..70c828465e 100644 --- a/apps/web/src/i18n/strings/nb_NO.json +++ b/apps/web/src/i18n/strings/nb_NO.json @@ -2218,8 +2218,6 @@ "aliases_section": "Rom-adresser", "avatar_field_label": "Rommets avatar", "canonical_alias_field_label": "Hovedadresse", - "default_url_previews_off": "URL-forhåndsvisninger er skrudd av som standard for deltakerene i dette rommet.", - "default_url_previews_on": "URL-forhåndsvisninger er skrudd på som standard for deltakerene i dette rommet.", "description_space": "Rediger innstillinger knyttet til området ditt.", "error_creating_alias_description": "Det oppstod en feil ved opprettelsen av adressen. Det kan hende at serveren ikke tillater det, eller at det oppstod en midlertidig feil.", "error_creating_alias_title": "Feil ved oppretting av adresse", @@ -2250,12 +2248,7 @@ "published_aliases_explainer_space": "Publiserte adresser kan brukes av hvem som helst på hvilken som helst server for å bli med i ditt område.", "published_aliases_section": "Publiserte adresser", "save": "Lagre endringer", - "topic_field_label": "Rommets tema", - "url_preview_encryption_warning": "I krypterte rom som denne, er URL-forhåndsvisninger skrudd av som standard for å sikre at hjemmeserveren din (der forhåndsvisningene blir generert) ikke kan samle inn informasjon om lenkene som du ser i dette rommet.", - "url_preview_explainer": "Når noen legger til en URL i meldingene deres, kan en URL-forhåndsvisning bli vist for å gi mere informasjonen om den lenken, f.eks. tittelen, beskrivelsen, og et bilde fra nettstedet.", - "url_previews_section": "URL-forhåndsvisninger", - "user_url_previews_default_off": "Du har skrudd av URL-forhåndsvisninger som standard.", - "user_url_previews_default_on": "Du har skrudd på URL-forhåndsvisninger som standard." + "topic_field_label": "Rommets tema" }, "notifications": { "browse_button": "Bla", @@ -2677,8 +2670,6 @@ "username": "Brukernavn" }, "inline_url_previews_default": "Skru på URL-forhåndsvisninger inni meldinger som standard", - "inline_url_previews_room": "Skru på URL-forhåndsvisninger som standard for deltakerne i dette rommet", - "inline_url_previews_room_account": "Skru på URL-forhåndsvisninger for dette rommet (Påvirker bare deg)", "insert_trailing_colon_mentions": "Sett inn et etterfølgende kolon etter at brukeromtaler i starten av en melding", "invite_controls": { "default_label": "Tillat brukere å invitere deg til rom" diff --git a/apps/web/src/i18n/strings/nl.json b/apps/web/src/i18n/strings/nl.json index d1262d0bb1..39df2fb253 100644 --- a/apps/web/src/i18n/strings/nl.json +++ b/apps/web/src/i18n/strings/nl.json @@ -1619,8 +1619,6 @@ "aliases_section": "Kameradressen", "avatar_field_label": "Kamerafbeelding", "canonical_alias_field_label": "Hoofdadres", - "default_url_previews_off": "URL-voorvertoningen zijn voor deelnemers van deze kamer standaard uitgeschakeld.", - "default_url_previews_on": "URL-voorvertoningen zijn voor deelnemers van deze kamer standaard ingeschakeld.", "description_space": "Bewerk instellingen gerelateerd aan jouw space.", "error_creating_alias_description": "Er is een fout opgetreden bij het aanmaken van dit adres. Dit wordt mogelijk niet toegestaan door de server, of er is een tijdelijk probleem opgetreden.", "error_creating_alias_title": "Fout bij aanmaken van het adres", @@ -1647,12 +1645,7 @@ "published_aliases_explainer_space": "Gepubliceerde adressen kunnen door iedereen op elke server gebruikt worden om jouw Space te betreden.", "published_aliases_section": "Gepubliceerde adressen", "save": "Wijzigingen opslaan", - "topic_field_label": "Kameronderwerp", - "url_preview_encryption_warning": "In versleutelde kamers zoals deze zijn URL-voorvertoningen standaard uitgeschakeld, om te voorkomen dat jouw homeserver (waar de voorvertoningen worden gemaakt) informatie kan verzamelen over de koppelingen die je hier ziet.", - "url_preview_explainer": "Als iemand een URL in een bericht invoegt, kan er een URL-voorvertoning weergegeven worden met meer informatie over de koppeling, zoals de titel, omschrijving en een afbeelding van de website.", - "url_previews_section": "URL-voorvertoningen", - "user_url_previews_default_off": "Je hebt URL-voorvertoningen standaard uitgeschakeld.", - "user_url_previews_default_on": "Je hebt URL-voorvertoningen standaard ingeschakeld." + "topic_field_label": "Kameronderwerp" }, "notifications": { "browse_button": "Bladeren", @@ -1924,8 +1917,6 @@ "spell_check_locale_placeholder": "Kies een landinstelling" }, "inline_url_previews_default": "Inline URL-voorvertoning standaard inschakelen", - "inline_url_previews_room": "URL-voorvertoning voor alle deelnemers aan deze kamer standaard inschakelen", - "inline_url_previews_room_account": "URL-voorvertoning in dit kamer inschakelen (geldt alleen voor jou)", "insert_trailing_colon_mentions": "Voeg een dubbele punt in nadat de persoon het aan het begin van een bericht heeft vermeld", "jump_to_bottom_on_send": "Naar de onderkant van de tijdlijn springen wanneer je een bericht verstuurd", "key_backup": { diff --git a/apps/web/src/i18n/strings/pl.json b/apps/web/src/i18n/strings/pl.json index 7ca20bc041..53a1edb041 100644 --- a/apps/web/src/i18n/strings/pl.json +++ b/apps/web/src/i18n/strings/pl.json @@ -2184,8 +2184,6 @@ "aliases_section": "Adresy pokoju", "avatar_field_label": "Awatar pokoju", "canonical_alias_field_label": "Główny adres", - "default_url_previews_off": "Podgląd linków są domyślnie wyłączone dla uczestników tego pokoju.", - "default_url_previews_on": "Podgląd linków są domyślnie włączone dla uczestników tego pokoju.", "description_space": "Edytuj ustawienia powiązane z twoją przestrzenią.", "error_creating_alias_description": "Wystąpił błąd podczas aktualizowania tego adresu. Serwer mógł odrzucić żądanie lub wystąpił błąd tymczasowy.", "error_creating_alias_title": "Wystąpił błąd podczas tworzenia adresu", @@ -2214,12 +2212,7 @@ "published_aliases_explainer_space": "Opublikowane adresy mogą być używane przez każdego, kto dołączył do Twojej przestrzeni.", "published_aliases_section": "Opublikowane adresy", "save": "Zapisz zmiany", - "topic_field_label": "Temat pokoju", - "url_preview_encryption_warning": "W pokojach szyfrowanych, takich jak ten, podgląd adresów URL jest domyślnie wyłączony, aby upewnić się, że serwer (na którym generowane są podglądy) nie może zbierać informacji o linkach, które widzisz w pokoju.", - "url_preview_explainer": "Gdy ktoś umieści URL w wiadomości, można wyświetlić podgląd adresu URL, aby podać więcej informacji o tym łączu, takich jak tytuł, opis i obraz ze strony internetowej.", - "url_previews_section": "Podgląd linków", - "user_url_previews_default_off": "Podgląd linków jest domyślnie wyłączony.", - "user_url_previews_default_on": "Podgląd linków jest domyślnie włączony." + "topic_field_label": "Temat pokoju" }, "notifications": { "browse_button": "Przeglądaj", @@ -2639,8 +2632,6 @@ "username": "Nazwa użytkownika" }, "inline_url_previews_default": "Włącz domyślny podgląd URL w tekście", - "inline_url_previews_room": "Włącz domyślny podgląd URL dla uczestników w tym pokoju", - "inline_url_previews_room_account": "Włącz podgląd URL dla tego pokoju (dotyczy tylko Ciebie)", "insert_trailing_colon_mentions": "Wstawiaj dwukropek po wzmiance użytkownika na początku wiadomości", "invite_controls": { "default_label": "Zezwól użytkownikom na zapraszanie Cię do pokojów" diff --git a/apps/web/src/i18n/strings/pt.json b/apps/web/src/i18n/strings/pt.json index 9c5b4ca25f..64957224e6 100644 --- a/apps/web/src/i18n/strings/pt.json +++ b/apps/web/src/i18n/strings/pt.json @@ -2082,8 +2082,6 @@ "aliases_section": "Endereços de salas", "avatar_field_label": "Avatar da sala", "canonical_alias_field_label": "Endereço principal", - "default_url_previews_off": "As pré-visualizações de URL estão desactivadas por predefinição para os participantes nesta sala.", - "default_url_previews_on": "As pré-visualizações de URL estão activadas por predefinição para os participantes nesta sala.", "description_space": "Edita as definições relativas ao teu espaço.", "error_creating_alias_description": "Ocorreu um erro ao criares esse endereço. Pode não ser permitido pelo servidor ou ocorreu uma falha temporária.", "error_creating_alias_title": "Erro ao criar o endereço", @@ -2112,12 +2110,7 @@ "published_aliases_explainer_space": "Os endereços publicados podem ser usados por qualquer pessoa em qualquer servidor para se juntar ao teu espaço.", "published_aliases_section": "Endereços publicados", "save": "Salvar Alterações", - "topic_field_label": "Tópico da sala", - "url_preview_encryption_warning": "Em salas encriptadas, como esta, as pré-visualizações de URL são desactivadas por predefinição para garantir que o teu servidor doméstico (onde as pré-visualizações são geradas) não pode recolher informações sobre as ligações que vês nesta sala.", - "url_preview_explainer": "Quando alguém coloca um URL na sua mensagem, pode ser mostrada uma pré-visualização do URL para dar mais informações sobre essa ligação, como o título, a descrição e uma imagem do sítio Web.", - "url_previews_section": "Pré-visualização de links", - "user_url_previews_default_off": "Você desabilitou pré-visualizações de links por padrão.", - "user_url_previews_default_on": "Você habilitou pré-visualizações de links por padrão." + "topic_field_label": "Tópico da sala" }, "notifications": { "browse_button": "Navegar", @@ -2520,8 +2513,6 @@ "username": "Nome de utilizador" }, "inline_url_previews_default": "Ativar pré-visualizações de URL embutidas por predefinição", - "inline_url_previews_room": "Ativar pré-visualizações de URL por defeito para os participantes nesta sala", - "inline_url_previews_room_account": "Ativar pré-visualizações URL para esta sala (só te afeta a ti)", "insert_trailing_colon_mentions": "Insere dois pontos após as menções do utilizador no início de uma mensagem", "jump_to_bottom_on_send": "Salta para o fundo da linha de tempo quando enviar uma mensagem", "key_backup": { diff --git a/apps/web/src/i18n/strings/pt_BR.json b/apps/web/src/i18n/strings/pt_BR.json index 3f8d69fed1..6941da75d6 100644 --- a/apps/web/src/i18n/strings/pt_BR.json +++ b/apps/web/src/i18n/strings/pt_BR.json @@ -2195,8 +2195,6 @@ "aliases_section": "Endereços da sala", "avatar_field_label": "Foto da sala", "canonical_alias_field_label": "Endereço principal", - "default_url_previews_off": "Pré-visualizações de links estão desativadas por padrão para participantes desta sala.", - "default_url_previews_on": "Pré-visualizações de links estão ativadas por padrão para participantes desta sala.", "description_space": "Editar configurações relacionadas ao seu espaço.", "error_creating_alias_description": "Ocorreu um erro ao criar esse endereço. Isso pode não ser permitido pelo servidor ou houve um problema temporário.", "error_creating_alias_title": "Erro ao criar o endereço", @@ -2225,12 +2223,7 @@ "published_aliases_explainer_space": "Endereços publicados podem ser usados por qualquer um em qualquer servidor para entrar em seu espaço.", "published_aliases_section": "Endereços publicados", "save": "Salvar alterações", - "topic_field_label": "Descrição da sala", - "url_preview_encryption_warning": "Em salas criptografadas, como esta, as pré-visualizações de links estão desativadas por padrão para garantir que o seu servidor local (onde as visualizações são geradas) não possa coletar informações sobre os links que você vê nesta sala.", - "url_preview_explainer": "Quando alguém inclui um link em uma mensagem, a pré-visualização do link pode ser exibida para fornecer mais informações sobre esse link, como o título, a descrição e uma imagem do site.", - "url_previews_section": "Pré-visualização de links", - "user_url_previews_default_off": "Você desativou pré-visualizações de links por padrão.", - "user_url_previews_default_on": "Você ativou pré-visualizações de links por padrão." + "topic_field_label": "Descrição da sala" }, "notifications": { "browse_button": "Buscar", @@ -2650,8 +2643,6 @@ "username": "Nome de usuário" }, "inline_url_previews_default": "Ativar, por padrão, a visualização de resumo de links", - "inline_url_previews_room": "Ativar, para todos os participantes desta sala, a visualização de links", - "inline_url_previews_room_account": "Ativar, para esta sala, a visualização de links (só afeta você)", "insert_trailing_colon_mentions": "Insira dois pontos à direita após o usuário mencionar no início de uma mensagem", "invite_controls": { "default_label": "Permitir que usuários convidem você para salas" diff --git a/apps/web/src/i18n/strings/ru.json b/apps/web/src/i18n/strings/ru.json index d89f064ffc..0cc7277f64 100644 --- a/apps/web/src/i18n/strings/ru.json +++ b/apps/web/src/i18n/strings/ru.json @@ -11,18 +11,18 @@ "other": "%(count)s непрочитанных сообщения(-й), включая упоминания.", "one": "1 непрочитанное упоминание." }, - "recent_rooms": "Недавние комнаты", - "room_name": "Комната %(name)s", - "room_status_bar": "Строка состояния комнаты", + "recent_rooms": "Недавние чаты", + "room_name": "Чат %(name)s", + "room_status_bar": "Строка состояния чата", "seek_bar_label": "Панель поиска аудио", "unread_messages": "Непрочитанные сообщения.", "user_menu": "Меню пользователя" }, - "a11y_jump_first_unread_room": "Перейти в первую непрочитанную комнату.", + "a11y_jump_first_unread_room": "Перейти в первый непрочитанный чат.", "action": { "accept": "Принять", "add": "Добавить", - "add_existing_room": "Добавить существующую комнату", + "add_existing_room": "Добавить существующий чат", "add_people": "Добавить людей", "apply": "Применить", "approve": "Согласиться", @@ -41,7 +41,7 @@ "copy": "Копировать", "copy_link": "Копировать ссылку", "create": "Создать", - "create_a_room": "Создать комнату", + "create_a_room": "Создать чат", "create_account": "Создать учётную запись", "decline": "Отклонить", "decline_and_block": "Отклонить и заблокировать", @@ -58,7 +58,7 @@ "enter_fullscreen": "Перейти в полноэкранный режим", "exit_fullscreeen": "Выйти из полноэкранного режима", "expand": "Развернуть", - "explore_public_rooms": "Просмотреть публичные комнаты", + "explore_public_rooms": "Просмотреть публичные групповые чаты", "explore_rooms": "Обзор комнат", "export": "Экспорт", "forward": "Переслать", @@ -75,14 +75,14 @@ "join": "Войти", "learn_more": "Узнать больше", "leave": "Покинуть", - "leave_room": "Покинуть комнату", + "leave_room": "Покинуть чат", "logout": "Выйти", "manage": "Управление", "maximise": "Развернуть", "mention": "Упомянуть", "minimise": "Свернуть", - "new_room": "Новая комната", - "new_video_room": "Новая видеокомната", + "new_room": "Новый чат", + "new_video_room": "Новый видеочат", "next": "Далее", "no": "Нет", "ok": "ОК", @@ -147,7 +147,7 @@ }, "analytics": { "accept_button": "Всё в порядке", - "bullet_1": "Мы <не записываем и не профилируем любые данные учетной записи", + "bullet_1": "Мы не записываем и не профилируем любые данные аккаунта", "bullet_2": "Мы не передаем информацию третьим лицам", "consent_migration": "Ранее вы давали согласие на передачу нам анонимных данных об использовании. Мы изменили порядок предоставления этих данных.", "disable_prompt": "Вы можете отключить это в любое время в настройках", @@ -219,7 +219,7 @@ "incorrect_password": "Неверный пароль", "log_in_new_account": "Войти в новую учётную запись.", "logout_dialog": { - "description": "Уверены, что хотите выйти?", + "description": "Вы уверены, что хотите удалить это устройство?", "megolm_export": "Выгрузить ключи вручную", "setup_key_backup_title": "Вы потеряете доступ к вашим шифрованным сообщениям", "setup_secure_backup_description_1": "Эти сообщения защищены сквозным шифрованием. Только вы и ваш собеседник имеете ключи для их расшифровки и чтения.", @@ -229,7 +229,7 @@ "misconfigured_body": "Попросите администратора %(brand)s проверить конфигурационный файл на наличие неправильных или повторяющихся записей.", "misconfigured_title": "Ваш %(brand)s неправильно настроен", "mobile_create_account_title": "Вы собираетесь создать учетную запись на %(hsName)s", - "msisdn_field_description": "Другие пользователи могут приглашать вас в комнаты, используя ваши контактные данные", + "msisdn_field_description": "Другие пользователи могут приглашать вас в чаты, используя ваши контактные данные", "msisdn_field_label": "Телефон", "msisdn_field_number_invalid": "Этот номер телефона неправильный, проверьте его и повторите попытку", "msisdn_field_required_invalid": "Введите номер телефона", @@ -298,7 +298,7 @@ "confirm_new_password": "Подтвердите новый пароль", "devices_logout_success": "Вы вышли из всех устройств и больше не будете получать push-уведомления. Для повторного включения уведомлений снова войдите на каждом устройстве.", "other_devices_logout_warning_1": "При выходе из устройств удаляются хранящиеся на них ключи шифрования сообщений, что сделает зашифрованную историю чатов нечитаемой.", - "other_devices_logout_warning_2": "Если вы хотите сохранить доступ к истории общения в зашифрованных комнатах, настройте резервное копирование ключей или экспортируйте ключи сообщений с одного из других ваших устройств, прежде чем продолжить.", + "other_devices_logout_warning_2": "Если вы хотите сохранить доступ к истории общения в зашифрованных чатах, настройте резервное копирование ключей или экспортируйте ключи сообщений с одного из других ваших устройств, прежде чем продолжить.", "password_not_entered": "Введите новый пароль.", "passwords_mismatch": "Новые пароли должны совпадать.", "rate_limit_error": "Слишком много попыток за короткое время. Подождите некоторое время, прежде чем повторить попытку.", @@ -329,7 +329,7 @@ "server_picker_title_default": "Параметры сервера", "server_picker_title_registration": "Ваша учётная запись обслуживается", "session_logged_out_description": "Для обеспечения безопасности ваш сеанс был завершён. Пожалуйста, войдите снова.", - "session_logged_out_title": "Выполнен выход", + "session_logged_out_title": "Сеанс удалён", "set_email": { "description": "Это позволит при необходимости сбросить пароль и получать уведомления.", "verification_pending_description": "Проверьте свою электронную почту и нажмите на ссылку в письме. После этого нажмите кнопку Продолжить.", @@ -359,7 +359,7 @@ "sso_complete_in_browser_dialog_title": "Перейдите в браузер для завершения входа", "sso_failed_missing_storage": "Мы попросили браузер запомнить, какой домашний сервер вы используете для входа в систему, но, к сожалению, ваш браузер забыл об этом. Перейдите на страницу входа и попробуйте ещё раз.", "sso_or_username_password": "%(ssoButtons)s или %(usernamePassword)s", - "sync_footer_subtitle": "Если вы присоединились к большому количеству комнат, это может занять некоторое время", + "sync_footer_subtitle": "Если вы присоединились к большому количеству чатов, это может занять некоторое время", "syncing": "Синхронизация…", "uia": { "code": "Код", @@ -369,8 +369,8 @@ "email_resent": "Отправлено повторно!", "fallback_button": "Начать аутентификацию", "mas_cross_signing_reset_cta": "Перейти к учетной записи", - "mas_cross_signing_reset_description": "Сбросьте свои данные через поставщика учетной записи, а затем вернитесь и нажмите «Повторить».", - "mas_cross_signing_reset_title": "Перейдите в свою учетную запись, чтобы сбросить свою личность", + "mas_cross_signing_reset_description": "Вы собираетесь перейти в свой аккаунт %(serverName)s, чтобы сбросить настройки своей идентификации. Как только вы завершите сброс настроек в аккаунте, вернитесь сюда и нажми «Повторить».", + "mas_cross_signing_reset_title": "Перейдите в свою учетную запись, чтобы сбросить идентификацию", "msisdn": "Текстовое сообщение отправлено на %(msisdn)s", "msisdn_token_incorrect": "Неверный код проверки", "msisdn_token_prompt": "Введите полученный код:", @@ -529,7 +529,7 @@ "offline": "Не в сети", "on": "Включить", "options": "Дополнительно", - "orphan_rooms": "Прочие комнаты", + "orphan_rooms": "Прочие чаты", "password": "Пароль", "people": "Люди", "preferences": "Параметры", @@ -537,20 +537,20 @@ "preview_message": "Эй! Ты лучший!", "privacy": "Конфиденциальность", "private": "Приватное", - "private_room": "Приватная комната", + "private_room": "Приватный чат", "private_space": "Приватное пространство", "profile": "Профиль", "public": "Публичное", - "public_room": "Публичная комната", + "public_room": "Публичный чат", "public_space": "Публичное пространство", "qr_code": "QR-код", "random": "Случайный", "reactions": "Реакции", "recommended": "Рекомендуемое", "report_a_bug": "Сообщить об ошибке", - "room": "Комната", - "room_name": "Название комнаты", - "rooms": "Комнаты", + "room": "Чат", + "room_name": "Название чата", + "rooms": "Чаты", "save": "Сохранить", "saved": "Сохранено", "saving": "Сохранение…", @@ -577,7 +577,7 @@ "unavailable": "недоступен", "unencrypted": "Не зашифровано", "unmute": "Вернуть право речи", - "unnamed_room": "Комната без названия", + "unnamed_room": "Чат без названия", "unnamed_space": "Безымянное пространство", "unverified": "Не заверено", "updating": "Обновление…", @@ -587,20 +587,20 @@ "verified": "Заверено", "version": "Версия", "video": "Видео", - "video_room": "Видеокомната", + "video_room": "Видеочат", "view_message": "Посмотреть сообщение", "voice": "Голос", "warning": "Внимание" }, "composer": { "autocomplete": { - "@room_description": "Уведомить всю комнату", + "@room_description": "Уведомить весь чат", "command_a11y": "Автозаполнение команды", "command_description": "Команды", "emoji_a11y": "Автодополнение смайлов", "notification_a11y": "Автозаполнение уведомлений", - "notification_description": "Уведомления комнаты", - "room_a11y": "Автозаполнение комнаты", + "notification_description": "Уведомления чата", + "room_a11y": "Автозаполнение чата", "space_a11y": "Автозаполнение пространства", "user_a11y": "Автозаполнение пользователя", "user_description": "Пользователи" @@ -629,7 +629,7 @@ }, "mode_plain": "Скрыть форматирование", "mode_rich_text": "Показать форматирование", - "no_perms_notice": "Вы не можете писать в эту комнату", + "no_perms_notice": "Вы не можете писать в этот чат", "placeholder": "Отправить незашифрованное сообщение...", "placeholder_encrypted": "Отправить зашифрованное сообщение…", "placeholder_reply": "Отправить незашифрованный ответ…", @@ -637,12 +637,12 @@ "placeholder_thread": "Ответить в небезопасном обсуждение…", "placeholder_thread_encrypted": "Ответить в обсуждение…", "poll_button": "Опрос", - "poll_button_no_perms_description": "У вас нет разрешения начинать опросы в этой комнате.", + "poll_button_no_perms_description": "У вас нет разрешения начинать опросы в этом чате", "poll_button_no_perms_title": "Требуется разрешение", "replying_title": "Отвечает", "room_unencrypted": "Сообщения в этой комнате не защищены сквозным шифрованием.", "room_upgraded_link": "Разговор продолжается здесь.", - "room_upgraded_notice": "Эта комната заменена и более неактивна.", + "room_upgraded_notice": "Этот чат заменён и более неактивен.", "send_button_title": "Отправить сообщение", "send_button_voice_message": "Отправить голосовое сообщение", "send_voice_message": "Отправить голосовое сообщение", @@ -653,33 +653,33 @@ "console_scam_warning": "Если кто-то сказал вам скопировать/вставить что-то здесь, велика вероятность, что вас пытаются обмануть!", "console_wait": "Подождите!", "create_room": { - "action_create_room": "Создать комнату", - "action_create_video_room": "Создать видеокомнату", - "encrypted_video_room_warning": "Вы не сможете отключить это позже. Комната будет зашифрована, а встроенный вызов — нет.", + "action_create_room": "Создать чат", + "action_create_video_room": "Создать видеочат", + "encrypted_video_room_warning": "Вы не сможете отключить это позже. Чат будет зашифрован, а встроенный вызов — нет.", "encrypted_warning": "Вы не сможете отключить это позже. Мосты и большинство ботов пока не будут работать.", - "encryption_forced": "Вашему серверу необходимо включить шифрование в приватных комнатах.", + "encryption_forced": "Вашему серверу необходимо включить шифрование в приватных чатах.", "encryption_label": "Включить сквозное шифрование", - "error_title": "Не удалось создать комнату", + "error_title": "Не удалось создать чат", "generic_error": "Возможно, сервер недоступен, перегружен или случилась ошибка.", - "join_rule_change_notice": "Вы можете изменить это в любое время из настроек комнаты.", - "join_rule_invite": "Приватная комната (только по приглашению)", - "join_rule_invite_label": "Только приглашенные люди смогут найти и присоединиться к этой комнате.", + "join_rule_change_notice": "Вы можете изменить это в любое время из настроек чата.", + "join_rule_invite": "Приватный чат (только по приглашению)", + "join_rule_invite_label": "Только приглашенные люди смогут найти и присоединиться к этому чату.", "join_rule_knock_label": "Любой желающий может подать заявку на участие, но администраторы или модераторы должны предоставить доступ. Это можно изменить позже.", - "join_rule_public_label": "Любой желающий сможет найти эту комнату и присоединиться к ней.", - "join_rule_public_parent_space_label": "Любой сможет найти и присоединиться к этой комнате, а не только участники .", + "join_rule_public_label": "Любой желающий сможет найти этот чат и присоединиться к нему.", + "join_rule_public_parent_space_label": "Любой сможет найти и присоединиться к этому чату, а не только участники .", "join_rule_restricted": "Стандартная", "join_rule_restricted_label": "Любой может присоединиться в .", - "name_validation_required": "Пожалуйста, введите название комнаты", - "room_visibility_label": "Видимость комнаты", + "name_validation_required": "Пожалуйста, введите название чата", + "room_visibility_label": "Видимость чата", "state_encryption_label": "Шифровать события состояния", - "title_private_room": "Создать приватную комнату", - "title_public_room": "Создать публичную комнату", + "title_private_room": "Создать приватный чат", + "title_public_room": "Создать групповой чат", "title_video_room": "Создайте видеокомнату", "topic_label": "Тема (опционально)", - "unfederated": "Запретить кому-либо, не входящему в %(serverName)s, когда-либо присоединяться к этой комнате.", + "unfederated": "Запретить кому-либо, не входящему в %(serverName)s, когда-либо присоединяться к этому чату.", "unfederated_label_default_off": "Вы можете включить это, если комната будет использоваться только для совместной работы с внутренними командами на вашем домашнем сервере. Это не может быть изменено позже.", "unfederated_label_default_on": "Вы можете отключить это, если комната будет использоваться для совместной работы с внешними командами, у которых есть собственный домашний сервер. Это не может быть изменено позже.", - "unsupported_version": "Сервер не поддерживает указанную версию комнаты." + "unsupported_version": "Сервер не поддерживает указанную версию чата." }, "create_space": { "add_details_prompt": "Добавьте некоторые подробности, чтобы помочь людям узнать его.", @@ -689,11 +689,11 @@ "address_label": "Адрес", "address_placeholder": "например, my-space", "creating": "Создание…", - "creating_rooms": "Создание комнат…", + "creating_rooms": "Создание чата…", "done_action": "В моё пространство", - "done_action_first_room": "Перейти в мою первую комнату", - "explainer": "Пространства — это новый способ организации комнат и людей. Какой вид пространства вы хотите создать? Вы можете изменить это позже.", - "failed_create_initial_rooms": "Не удалось создать первоначальные комнаты пространства", + "done_action_first_room": "Перейти в мой первый чат", + "explainer": "Пространства — это новый способ организации комнат. Какой тип пространства вы хотите создать?", + "failed_create_initial_rooms": "Не удалось создать первоначальные чаты пространства", "failed_invite_users": "Не удалось пригласить следующих пользователей в ваше пространство: %(csvUsers)s", "invite_teammates_by_username": "Пригласить по имени пользователя", "invite_teammates_description": "Убедитесь, что правильные люди имеют доступ. Вы можете пригласить больше людей позже.", @@ -703,20 +703,20 @@ "name_required": "Пожалуйста, введите название пространства", "personal_space": "Только я", "personal_space_description": "Приватное пространство для организации ваших комнат", - "private_description": "Только по приглашениям, лучший вариант для себя или команды", + "private_description": "Только по приглашению, для личного пользования или для команды.", "private_heading": "Ваше приватное пространство", "private_only_heading": "Ваше пространство", "private_personal_description": "Убедитесь, что правильные люди имеют доступ к %(name)s", "private_personal_heading": "С кем вы работаете?", "private_space": "Я и мои товарищи по команде", "private_space_description": "Приватное пространство для вас и ваших товарищей по команде", - "public_description": "Открытое пространство для всех, лучший вариант для сообществ", + "public_description": "Присоединиться может кто угодно, лучший вариант для создания сообществ.", "public_heading": "Ваше публичное пространство", "search_public_button": "Поиск публичных пространств", - "setup_rooms_community_description": "Давайте создадим для каждого из них отдельную комнату.", + "setup_rooms_community_description": "Для начала создайте несколько чатов.", "setup_rooms_community_heading": "Какие вещи вы хотите обсуждать в %(spaceName)s?", "setup_rooms_description": "Позже можно добавить и другие, в том числе уже существующие.", - "setup_rooms_private_description": "Мы создадим комнаты для каждого из них.", + "setup_rooms_private_description": "Для начала создайте несколько комнат.", "setup_rooms_private_heading": "Над какими проектами ваша команда работает?", "share_description": "Сейчас здесь только ты, с другими будет ещё лучше.", "share_heading": "Поделиться %(name)s", @@ -738,16 +738,16 @@ }, "decline_invitation_dialog": { "confirm": "Вы действительно хотите отклонить приглашение присоединиться \"%(roomName)s\"?", - "ignore_user_help": "Вы не увидите сообщений или приглашений в комнату от этого пользователя.", + "ignore_user_help": "Вы не увидите сообщений или приглашений в чатах от этого пользователя.", "reason_description": "Опишите причину сообщения о проблеме.", - "report_room_description": "Сообщите об этой комнате своему поставщику учетной записи.", + "report_room_description": "Сообщите об этом чате своему поставщику учетной записи.", "title": "Отклонить приглашение" }, "desktop_default_device_name": "%(brand)s Рабочий стол: %(platformName)s", "devtools": { "active_widgets": "Активные виджеты", "category_other": "Другие", - "category_room": "Комната", + "category_room": "Чат", "caution_colon": "Предупреждение:", "client_versions": "Версия клиента", "crypto": { @@ -810,9 +810,10 @@ "event_sent": "Событие отправлено!", "event_type": "Тип события", "expired": "Срок действия истек", + "expires_in": "Истекает через", "explore_account_data": "Посмотреть данные учётной записи", - "explore_room_account_data": "Посмотреть данные учётной записи комнаты", - "explore_room_state": "Посмотреть состояние комнаты", + "explore_room_account_data": "Посмотреть данные учётной записи чата", + "explore_room_state": "Посмотреть состояние чата", "failed_to_find_widget": "При обнаружении этого виджета произошла ошибка.", "failed_to_load": "Не удалось загрузить.", "failed_to_save": "Не удалось сохранить настройки.", @@ -832,9 +833,9 @@ "only_joined_members": "Только зарегистрированные пользователи", "original_event_source": "Оригинальный исходный код", "restore_from_backup": "Восстановить из резервной копии", - "room_encrypted": "Комната зашифрована ✅", - "room_id": "ID комнаты: %(roomId)s", - "room_not_encrypted": "Комната не имеет шифрования 🚨", + "room_encrypted": "Чат зашифрован ✅", + "room_id": "ID чата: %(roomId)s", + "room_not_encrypted": "Чат не имеет шифрования 🚨", "room_notifications_dot": "Точка: ", "room_notifications_highlight": "Выделение: ", "room_notifications_last_event": "Последнее событие:", @@ -842,7 +843,7 @@ "room_notifications_thread_id": "Id обсуждения: ", "room_notifications_total": "Всего: ", "room_notifications_type": "Тип: ", - "room_status": "Статус комнаты", + "room_status": "Статус чата", "room_unread_status_count": { "one": "Статус непрочитанной комнаты: %(status)s, количество: %(count)s", "few": "Статус непрочитанных комнат: %(status)s, количество: %(count)s", @@ -851,13 +852,13 @@ "save_setting_values": "Сохранить значения настроек", "see_history": "Посмотреть историю", "send_custom_account_data_event": "Отправить пользовательское событие данных учётной записи", - "send_custom_room_account_data_event": "Отправить пользовательское событие данных учётной записи комнаты", + "send_custom_room_account_data_event": "Отправить пользовательское событие данных учётной записи чата", "send_custom_state_event": "Оправить пользовательское событие состояния", "send_custom_timeline_event": "Отправить пользовательское событие ленты сообщений", "server_info": "Информация сервера", "server_versions": "Версия сервера", "settable_global": "Устанавливается на глобальном уровне", - "settable_room": "Устанавливается для комнаты", + "settable_room": "Устанавливается для чата", "setting_colon": "Настройки:", "setting_definition": "Установка определения:", "setting_id": "ID настроек", @@ -898,7 +899,7 @@ "users": "Пользователи", "value": "Значение", "value_colon": "Значение:", - "value_in_this_room": "Значение в этой комнате", + "value_in_this_room": "Значение в этом чате", "value_this_room_colon": "Значение в этой комнате:", "values_explicit": "Значения на явных уровнях", "values_explicit_colon": "Значения на явных уровнях:", @@ -959,7 +960,7 @@ "event_shield_reason_unverified_identity": "Зашифровано неподтвержденным пользователем.", "export_unsupported": "Ваш браузер не поддерживает необходимые криптографические расширения", "forgot_recovery_key": "Забыли ключ восстановления?", - "identity_needs_reset_description": "Для обеспечения доступа к истории сообщений необходимо сбросить криптографическую идентификацию.", + "identity_needs_reset_description": "Для обеспечения доступа к истории сообщений необходимо сбросить идентификацию.", "import_invalid_keyfile": "Недействительный файл ключей %(brand)s", "import_invalid_passphrase": "Ошибка аутентификации: возможно, неправильный пароль?", "key_storage_out_of_sync": "Хранилище ключей не синхронизировано.", @@ -986,7 +987,7 @@ "title": "Метод восстановления удален", "warning": "Если вы не убрали метод восстановления, злоумышленник может получить доступ к вашей учётной записи. Смените пароль учётной записи и сразу задайте новый способ восстановления в настройках." }, - "set_up_recovery": "Настроить восстановление", + "set_up_recovery": "Создать резервную копию своих чатов.", "set_up_recovery_toast_description": "Создайте ключ восстановления, который можно использовать для восстановления зашифрованной истории сообщений в случае потери доступа к своим устройствам.", "set_up_toast_title": "Настроить безопасное резервное копирование", "setup_secure_backup": { @@ -1114,7 +1115,7 @@ "cannot_load_config": "Не удалось загрузить файл конфигурации. Попробуйте обновить страницу.", "connection": "Возникла проблема при обмене данными с домашним сервером. Повторите попытку позже.", "dialog_description_default": "Произошла ошибка.", - "download_media": "Не удалось загрузить исходный медиафайл, исходный URL-адрес не найден", + "download_media": "Не удалось скачать исходный медиафайл, исходный URL-адрес не найден", "edit_history_unsupported": "Ваш сервер, похоже, не поддерживает эту возможность.", "failed_copy": "Не удалось скопировать", "hs_blocked": "Доступ к этому домашнему серверу заблокирован вашим администратором.", @@ -1129,7 +1130,7 @@ "non_urgent_echo_failure_toast": "Ваш сервер не отвечает на некоторые запросы.", "resource_limits": "Превышен один из лимитов на ресурсы сервера.", "session_restore": { - "clear_storage_button": "Очистить хранилище и выйти", + "clear_storage_button": "Удалить это устройство", "clear_storage_description": "Выйти и удалить ключи шифрования?", "description_1": "Произошла ошибка при попытке восстановить предыдущий сеанс.", "description_2": "Если вы использовали более новую версию %(brand)s, то ваш сеанс может быть несовместим с ней. Закройте это окно и вернитесь к более новой версии.", @@ -1549,7 +1550,8 @@ "render_reaction_images": "Обработка пользовательских изображений в реакциях", "render_reaction_images_description": "Иногда их называют \"пользовательскими эмодзи\".", "report_to_moderators": "Пожаловаться модераторам", - "report_to_moderators_description": "В поддерживающих модерирование комнатах, кнопка \"Пожаловаться\" позволит вам сообщить о нарушении модераторам комнаты.", + "report_to_moderators_description": "В поддерживающих модерирование чатах, кнопка \"Пожаловаться\" позволит вам сообщить о нарушении модераторам комнаты.", + "room_list_sections": "Разделы списка чатов", "share_history_on_invite": "Поделиться зашифрованной историей с новыми участниками", "share_history_on_invite_description": "Приглашая пользователя в зашифрованную комнату, для которой установлена видимость истории как «общая», поделитесь зашифрованной историей с этим пользователем и примите зашифрованную историю, когда вас приглашают в такую комнату.", "share_history_on_invite_warning": "Эта функция ЭКСПЕРИМЕНТАЛЬНАЯ и в ней реализованы не все меры безопасности. Не включайте её в рабочих учётных записях.", @@ -1754,6 +1756,11 @@ "failed_send_poll_title": "Не удалось отправить опрос", "notes": "Результаты отображаются только после завершения опроса", "option_label": "Вариант %(number)s, %(answer)s", + "option_label_with_total": { + "one": "Вариант %(number)s, %(answer)s, %(count)s голос", + "few": "Вариант %(number)s, %(answer)s, %(count)s голоса", + "many": "Вариант %(number)s, %(answer)s, %(count)s голосов" + }, "options_add_button": "Добавить вариант", "options_heading": "Создать варианты", "options_label": "Вариант %(number)s", @@ -1976,6 +1983,7 @@ "error_join_incompatible_version_1": "К сожалению, ваш домашний сервер слишком старый для участия.", "error_join_incompatible_version_2": "Пожалуйста, свяжитесь с администратором вашего сервера.", "error_join_title": "Не удалось войти", + "error_join_unknown": "Произошла неизвестная ошибка.", "error_jump_to_date": "Сервер вернул %(statusCode)s с кодом ошибки %(errorCode)s", "error_jump_to_date_connection": "При попытке найти указанную дату и перейти к ней, произошла сетевая ошибка. Возможно, ваш домашний сервер не работает или возникла временная проблема с подключением к Интернету. Пожалуйста, попробуйте еще раз. Если это продолжится, обратитесь к администратору homeserver.", "error_jump_to_date_details": "Сведения об ошибке", @@ -2005,7 +2013,9 @@ "few": "%(count)s пользователя запрашивают присоединения", "many": "%(count)s пользователей запрашивают присоединения" }, - "room_is_public": "Это публичная комната" + "room_is_public": "Это публичная комната", + "shared_history_tooltip": "Новые участники могут видеть историю", + "world_readable_history_tooltip": "Кто угодно может видеть историю" }, "header_avatar_open_settings_label": "Открыть настройки комнаты", "header_face_pile_tooltip": "Люди", @@ -2034,11 +2044,11 @@ "invite_email_mismatch_suggestion": "Введите адрес эл.почты в Настройках, чтобы получать приглашения прямо в %(brand)s.", "invite_sent_to_email": "Это приглашение было отправлено на %(email)s", "invite_sent_to_email_room": "Это приглашение в %(roomName)s было отправлено на %(email)s", - "invite_subtitle": " пригласил(а) вас", + "invite_subtitle": " приглашает вас", "invite_this_room": "Пригласить в комнату", "invite_title": "Хотите присоединиться к %(roomName)s?", "inviter_unknown": "Неизвестно", - "invites_you_text": " пригласил(а) тебя", + "invites_you_text": " приглашает вас", "join_button_account": "Зарегистрироваться", "join_failed_needs_invite": "Для просмотра %(roomName)s необходимо приглашение", "join_the_discussion": "Войти в комнату", @@ -2050,7 +2060,7 @@ "jump_read_marker": "Перейти к первому непрочитанному сообщению.", "jump_to_bottom_button": "Перейти к последним сообщениям", "kick_reason": "Причина: %(reason)s", - "kicked_by": "%(memberName)s исключил(а) вас", + "kicked_by": "%(memberName)s исключил вас", "kicked_from_room_by": "%(memberName)s удалил(а) вас из %(roomName)s", "knock_cancel_action": "Отменить запрос", "knock_denied_subtitle": "Поскольку вам отказали в доступе, вы не сможете присоединиться к группе, пока вас не пригласит администратор или модератор группы.", @@ -2079,6 +2089,7 @@ "button_view_all": "Посмотреть все", "description": "Закрепленные сообщения", "go_to_newest_message": "Посмотрите закрепленное сообщение на временной шкале и самое новое закрепленное сообщение здесь.", + "go_to_next_message": "Просмотрите это и предыдущее закрепленное сообщение в истории сообщений здесь", "title": "%(index)s из %(length)s Закрепленные сообщения" }, "read_topic": "Нажмите, чтобы увидеть тему", @@ -2129,8 +2140,9 @@ "home_menu_label": "Параметры раздела \"Главная\"", "join_public_room_label": "Присоединиться к публичной комнате", "joining_rooms_status": { - "one": "Сейчас вы состоите в %(count)s комнате", - "other": "Сейчас вы состоите в %(count)s комнатах" + "one": "Сейчас вы состоите в %(count)s чате", + "few": "Сейчас вы состоите в %(count)s чатах", + "many": "Сейчас вы состоите в %(count)s чатах" }, "list_title": "Список комнат", "more_options": { @@ -2141,6 +2153,11 @@ "one": "Удаляются сообщения в %(count)s комнате", "other": "Удаляются сообщения в %(count)s комнатах" }, + "section": { + "chats": "Чаты", + "favourites": "Избранное", + "low_priority": "Низкий приоритет" + }, "show_less": "Показать меньше", "show_n_more": { "other": "Показать ещё %(count)s", @@ -2214,8 +2231,6 @@ "aliases_section": "Адреса комнаты", "avatar_field_label": "Аватар комнаты", "canonical_alias_field_label": "Главный адрес", - "default_url_previews_off": "Предпросмотр ссылок по умолчанию выключен для участников этой комнаты.", - "default_url_previews_on": "Предпросмотр ссылок по умолчанию включен для участников этой комнаты.", "description_space": "Редактировать настройки, относящиеся к вашему пространству.", "error_creating_alias_description": "При создании этого адреса произошла ошибка. Это может быть запрещено сервером или произошел временный сбой.", "error_creating_alias_title": "Ошибка при создании адреса", @@ -2246,12 +2261,7 @@ "published_aliases_explainer_space": "Опубликованные адреса могут быть использованы любым человеком на любом сервере для присоединения к вашему пространству.", "published_aliases_section": "Публичные адреса", "save": "Сохранить изменения", - "topic_field_label": "Тема комнаты", - "url_preview_encryption_warning": "В зашифрованных комнатах, подобных этой, предварительный просмотр URL-адресов отключен по умолчанию, чтобы гарантировать, что ваш сервер (где создаются предварительные просмотры) не может собирать информацию о ссылках, которые вы видите в этой комнате.", - "url_preview_explainer": "Когда кто-то вставляет URL-адрес в свое сообщение, то можно просмотреть его, чтобы получить дополнительную информацию об этой ссылке, такую как название, описание и изображение с веб-сайта.", - "url_previews_section": "Предпросмотр содержимого ссылок", - "user_url_previews_default_off": "Предпросмотр ссылок по умолчанию выключен для вас.", - "user_url_previews_default_on": "Предпросмотр ссылок по умолчанию включен для вас." + "topic_field_label": "Тема комнаты" }, "notifications": { "browse_button": "Просматривать", @@ -2283,7 +2293,7 @@ "error_unbanning": "Не удалось разблокировать", "events_default": "Отправить сообщения", "invite": "Пригласить пользователей", - "kick": "Удалять пользователей", + "kick": "Исключить пользователей", "m.call": "Начать %(brand)s звонок", "m.call.member": "Присоединяйтесь к %(brand)s звонку", "m.reaction": "Отправлять реакции", @@ -2341,25 +2351,26 @@ "history_visibility_warning": "Изменения не затронут старые сообщения, только новые. Подробнее", "history_visibility_world_readable": "Любой (история общедоступна)", "join_rule_description": "Укажите, кто может присоединиться к %(roomName)s.", - "join_rule_invite": "Приватное (только по приглашению)", + "join_rule_invite": "Только по приглашению", "join_rule_invite_description": "Присоединиться могут только приглашенные люди.", "join_rule_knock": "Присоединиться", "join_rule_knock_description": "Люди не могут присоединиться до тех пор, пока им не будет предоставлен доступ.", - "join_rule_public_description": "Любой желающий может найти и присоединиться.", + "join_rule_public": "Любой", + "join_rule_public_description": "Любой желающий может присоединиться.", "join_rule_restricted": "Участники пространства", - "join_rule_restricted_description": "Любой человек в пространстве может найти и присоединиться. Укажите здесь, какие пространства могут получить доступ.", - "join_rule_restricted_description_active_space": "Любой человек в может найти и присоединиться. Вы можете выбрать и другие пространства.", - "join_rule_restricted_description_prompt": "Любой человек в пространстве может найти и присоединиться. Вы можете выбрать несколько пространств.", - "join_rule_restricted_description_spaces": "Пространства с доступом", + "join_rule_restricted_description": "Любой человек в пространстве может присоединиться без приглашения. Укажите здесь, какие пространства могут получить доступ.", + "join_rule_restricted_description_active_space": "Любой человек в может присоединиться.", + "join_rule_restricted_description_prompt": "Любой человек в пространстве может присоединиться.", + "join_rule_restricted_description_spaces": "Разрешённые пространства", "join_rule_restricted_dialog_description": "Определите, какие пространства могут получить доступ к этой комнате. Если пространство выбрано, его члены могут найти и присоединиться к .", "join_rule_restricted_dialog_empty_warning": "Вы удаляете все пространства. Доступ будет по умолчанию только по приглашениям", "join_rule_restricted_dialog_filter_placeholder": "Поиск пространств", - "join_rule_restricted_dialog_heading_known": "Другие пространства, которые вы знаете", - "join_rule_restricted_dialog_heading_other": "Другие пространства или комнаты, которые вы могли не знать", - "join_rule_restricted_dialog_heading_room": "Пространства, которые вы знаете, уже содержат эту комнату", + "join_rule_restricted_dialog_heading_known": "Ваши пространства, которые не содержат эту комнату", + "join_rule_restricted_dialog_heading_other": "Другие пространства, в которых вы не участвуете", + "join_rule_restricted_dialog_heading_room": "Ваши пространства, которые содержат эту комнату", "join_rule_restricted_dialog_heading_space": "Пространства, которые вы знаете, уже содержат эту комнату", "join_rule_restricted_dialog_heading_unknown": "Это, скорее всего, те, в которых участвуют другие администраторы комнат.", - "join_rule_restricted_dialog_title": "Выберите места", + "join_rule_restricted_dialog_title": "Выберите пространства", "join_rule_restricted_n_more": { "one": "и еще %(count)s", "few": "и еще %(count)s", @@ -2396,7 +2407,7 @@ "upload_avatar_label": "Загрузить аватар", "visibility": { "alias_section": "Адрес", - "error_failed_save": "Не удалось обновить видимость этого пространства", + "error_failed_save": "Не удалось обновить параметры этого пространства", "error_update_guest_access": "Не удалось обновить гостевой доступ к этому пространству", "error_update_history_visibility": "Не удалось обновить видимость истории этого пространства", "guest_access_disabled": "У тебя нет прав на изменение гостевого доступа.", @@ -2406,7 +2417,7 @@ "history_visibility_anyone_space_description": "Дайте людям возможность предварительно ознакомиться с вашим пространством, прежде чем они присоединятся к нему.", "history_visibility_anyone_space_disabled": "У тебя нет прав на изменение видимости истории.", "history_visibility_anyone_space_recommendation": "Рекомендуется для публичных пространств.", - "title": "Видимость" + "title": "Безопасность и приватность" }, "voip": { "call_type_section": "Тип звонка", @@ -2476,7 +2487,7 @@ "settings": { "account": { "dialog_title": "Настройки: Учетная запись", - "title": "Учетная запись" + "title": "Аккаунт" }, "all_rooms_home": "Показывать все комнаты на Главной", "all_rooms_home_description": "Все комнаты, в которых вы находитесь, будут отображаться на Главной.", @@ -2490,8 +2501,8 @@ "custom_font_name": "Название системного шрифта", "custom_font_size": "Использовать другой размер", "custom_theme_add": "Добавить пользовательскую тему", - "custom_theme_downloading": "Загрузка пользовательской темы…", - "custom_theme_error_downloading": "Ошибка при загрузке темы", + "custom_theme_downloading": "Скачивание пользовательской темы…", + "custom_theme_error_downloading": "Ошибка при скачивании темы", "custom_theme_help": "Введите URL-адрес пользовательской темы, которую вы хотите применить.", "custom_theme_invalid": "Неверная схема темы.", "dialog_title": "Настройки: Внешний вид", @@ -2534,7 +2545,7 @@ "export_keys": "Экспортировать ключи", "import_keys": "Импортировать ключи", "other_people_device_description": "Внимание: пользователи, которые явно не подтвердили вашу личность (например, с помощью эмодзи), не получат ваши зашифрованные сообщения. Кроме того, неверифицированные устройства верифицированных пользователей не будут получать ваши зашифрованные сообщения.", - "other_people_device_label": "В зашифрованных комнатах отправляйте сообщения только проверенным пользователям", + "other_people_device_label": "В зашифрованных чатах отправляйте сообщения только проверенным пользователям", "other_people_device_title": "Устройства других людей", "reset_identity": "Сбросить криптографическую идентификацию", "reset_in_progress": "Выполняется сброс...", @@ -2575,7 +2586,7 @@ "key_storage_warning": "Хранилище ключей не синхронизировано. Нажмите кнопку ниже, чтобы устранить проблему.", "save_key_description": "Не сообщайте эту информацию никому!", "save_key_title": "Ключ восстановления", - "set_up_recovery": "Настройка восстановления", + "set_up_recovery": "Получить ключ восстановления", "set_up_recovery_confirm_button": "Завершить настройку", "set_up_recovery_confirm_description": "Введите ключ восстановления, показанный на предыдущем экране, чтобы завершить настройку восстановления.", "set_up_recovery_confirm_title": "Для подтверждения введите ключ восстановления", @@ -2677,8 +2688,7 @@ "username": "Имя пользователя" }, "inline_url_previews_default": "Предпросмотр ссылок по умолчанию", - "inline_url_previews_room": "Включить предпросмотр ссылок для участников этой комнаты по умолчанию", - "inline_url_previews_room_account": "Включить предпросмотр ссылок в этой комнате (влияет только на вас)", + "inline_url_previews_encrypted": "Включить предварительный просмотр в зашифрованных комнатах", "insert_trailing_colon_mentions": "Вставлять двоеточие после упоминания пользователя в начале сообщения", "invite_controls": { "default_label": "Разрешить пользователям приглашать вас в комнаты" @@ -2823,7 +2833,7 @@ "rm_lifetime_offscreen": "Задержка прочтения сообщения при отсутствии активности (мс)", "room_directory_heading": "Каталог комнат", "room_list_heading": "Список комнат", - "show_avatars_pills": "Показывать аватары в упоминаниях пользователей, комнатах и событиях", + "show_avatars_pills": "Показывать аватары в упоминаниях пользователей, чатах и событиях", "show_polls_button": "Показывать кнопку опроса", "startup_window_behaviour_label": "Запуск и поведение окна", "surround_text": "Обводить выделенный текст при вводе специальных символов", @@ -2841,7 +2851,7 @@ "dehydrated_device_enabled": "Устройство в автономном режиме", "dialog_title": "Настройки: Безопасность и конфиденциальность", "e2ee_default_disabled_warning": "Администратор вашего сервера отключил сквозное шифрование по умолчанию в приватных комнатах и диалогах.", - "enable_message_search": "Включить поиск сообщений в зашифрованных комнатах", + "enable_message_search": "Включить поиск сообщений в зашифрованных чатах", "encryption_section": "Шифрование", "ignore_users_empty": "У вас нет игнорируемых пользователей.", "ignore_users_section": "Игнорируемые пользователи", @@ -2861,7 +2871,7 @@ "message_search_pending_rooms": "Комнаты, ожидающие индексации: %(pendingRooms)s", "message_search_room_progress": "%(doneRooms)s из %(totalRooms)s", "message_search_section": "Поиск по сообщениям", - "message_search_sleep_time": "Как быстро сообщения должны быть загружены.", + "message_search_sleep_time": "Как быстро сообщения должны быть скачаны.", "message_search_space_used": "Занято места:", "message_search_unsupported": "Отсутствуют некоторые необходимые компоненты для %(brand)s, чтобы безопасно кэшировать шифрованные сообщения локально. Если вы хотите попробовать эту возможность, соберите самостоятельно %(brand)s Desktop с добавлением поисковых компонентов.", "message_search_unsupported_web": "%(brand)s не может безопасно кэшировать зашифрованные сообщения локально во время работы в веб-браузере. Используйте %(brand)s Desktop, чтобы зашифрованные сообщения появились в результатах поиска.", @@ -2938,7 +2948,7 @@ "rename_form_caption": "Пожалуйста, имейте в виду, что названия сеансов также видны людям, с которыми вы общаетесь.", "rename_form_heading": "Переименовать сеанс", "rename_form_learn_more": "Переименование сеансов", - "rename_form_learn_more_description_1": "Другие пользователи, будучи в личных сообщениях и посещаемых вами комнатах, могут видеть полный перечень ваших сеансов.", + "rename_form_learn_more_description_1": "Другие пользователи, будучи в личных сообщениях и посещаемых вами чатах, могут видеть полный перечень ваших сеансов.", "rename_form_learn_more_description_2": "Это даёт им уверенности в том, с кем они общаются, но также означает, что они могут видеть вводимое здесь название сеанса.", "security_recommendations": "Рекомендации по безопасности", "security_recommendations_description": "Усильте защиту учётной записи, следуя этим рекомендациям.", @@ -2964,7 +2974,7 @@ "unknown_session": "Неизвестный тип сеанса", "unverified_session": "Незаверенный сеанс", "unverified_session_explainer_1": "Этот сеанс не поддерживает шифрование, потому и не может быть подтверждён.", - "unverified_session_explainer_2": "Через этот сеанс вы не можете участвовать в комнатах с шифрованием.", + "unverified_session_explainer_2": "Через этот сеанс вы не можете участвовать в чатах с шифрованием.", "unverified_session_explainer_3": "Для лучшей безопасности и конфиденциальности, рекомендуется использовать клиенты Matrix с поддержкой шифрования.", "unverified_sessions": "Незаверенные сеансы", "unverified_sessions_explainer_1": "Неподтверждённые сеансы — это сеансы, вошедшие с вашими учётными данными, но до сих пор не подтверждённые.", @@ -3029,11 +3039,13 @@ "connection_section": "Соединение", "dialog_title": "Настройки: Голос и видео", "echo_cancellation": "Эхоподавление", + "echo_cancellation_description": "Устраняет эхо микрофона во время звонков. Эта настройка также влияет на Element Call.", "enable_fallback_ice_server": "Разрешить резервный сервер помощи при вызове (%(server)s)", "enable_fallback_ice_server_description": "Только применяется, когда у домашнего сервера нет своего TURN-сервера. Ваш IP-адрес будет виден на время звонка.", "mirror_local_feed": "Зеркально отражать видео со своей камеры", "missing_permissions_prompt": "Отсутствуют разрешения для доступа к камере/микрофону. Нажмите кнопку ниже, чтобы запросить их.", "noise_suppression": "Подавление шума", + "noise_suppression_description": "Уменьшает фоновый шум микрофона во время звонков. Эта настройка также влияет на Element Call.", "request_permissions": "Запросить доступ к медиа устройству", "title": "Голос и видео", "video_input_empty": "Веб-камера не обнаружена", @@ -3100,7 +3112,7 @@ "manual_device_verification_confirm_title": "Внимание: ручная проверка устройства", "me": "Отображение действий", "msg": "Отправить сообщение данному пользователю", - "myavatar": "Меняет изображение профиля во всех комнатах", + "myavatar": "Меняет изображение профиля во всех чатах", "myroomavatar": "Меняет изображение профиля только в текущей комнате", "myroomnick": "Изменяет ваш псевдоним только для текущей комнаты", "nick": "Изменяет ваш псевдоним", @@ -3341,9 +3353,9 @@ "unable_to_decrypt": "Не удалось расшифровать сообщение" }, "disambiguated_profile": "%(displayName)s (%(matrixId)s)", - "download_action_downloading": "Загрузка", - "download_failed": "Загрузка не удалась", - "download_failed_description": "Произошла ошибка при загрузке этого файла", + "download_action_downloading": "Скачивание", + "download_failed": "Скачивание не удалось", + "download_failed_description": "Произошла ошибка при скачивании этого файла", "e2e_state": "Состояние сквозного шифрования", "edits": { "tooltip_label": "Изменено %(date)s. Нажмите для посмотра истории изменений.", @@ -3362,7 +3374,7 @@ "unable_to_find": "Попытка загрузить выбранный интервал истории чата этой комнаты не удалась, так как запрошенный элемент не найден." }, "m.audio": { - "error_downloading_audio": "Ошибка загрузки аудио", + "error_downloading_audio": "Ошибка скачивания аудио", "error_processing_audio": "Ошибка обработки звукового сообщения", "error_processing_voice_message": "Ошибка при обработке голосового сообщения" }, @@ -3459,7 +3471,7 @@ "m.room.history_visibility": { "invited": "%(senderName)s сделал(а) историю разговора видимой для всех собеседников с момента их приглашения.", "joined": "%(senderName)s сделал(а) историю разговора видимой для всех собеседников с момента их входа в комнату.", - "shared": "%(senderName)s сделал(а) историю разговора видимой для всех собеседников.", + "shared": "%(senderName)s делает историю разговора видимой для всех собеседников.", "unknown": "%(senderName)s сделал(а) историю комнаты видимой в неизвестном режиме (%(visibility)s).", "world_readable": "%(senderName)s сделал(а) историю разговора видимой для всех." }, @@ -3481,11 +3493,11 @@ "change_name_avatar": "%(oldDisplayName)s изменил(а) имя и аватар", "invite": "%(senderName)s пригласил(а) %(targetName)s", "join": "%(targetName)s теперь с нами", - "kick": "%(senderName)s удалил(а) %(targetName)s", - "kick_reason": "%(senderName)s удалил(а) %(targetName)s: %(reason)s", + "kick": "%(senderName)s исключает %(targetName)s", + "kick_reason": "%(senderName)s исключил %(targetName)s: %(reason)s", "left": "%(targetName)s покинул(а) комнату", "left_reason": "%(targetName)s покинул(а) комнату: %(reason)s", - "no_change": "%(senderName)s не сделал(а) изменений", + "no_change": "%(senderName)s не сделано изменений", "reject_invite": "%(targetName)s отклонил(а) приглашение", "reject_invite_reason": "%(targetName)s отклонил приглашение: %(reason)s", "remove_avatar": "%(senderName)s удалил(а) аватар", @@ -3651,8 +3663,9 @@ "one": "%(oneUser)s присоединился(лась)" }, "joined_and_left": { - "other": "%(oneUser)s присоединился(лась) и покинул(а) %(count)s раз(а)", - "one": "%(oneUser)s присоединился(лась) и покинул(а)" + "one": "%(oneUser)s присоединяется и покидает", + "few": "%(oneUser)s присоединяется и покидает %(count)s раза", + "many": "%(oneUser)s присоединяется и покидает %(count)s раз" }, "joined_and_left_multiple": { "other": "%(severalUsers)s присоединились и покинули %(count)s раз(а)", @@ -3663,16 +3676,18 @@ "one": "%(severalUsers)s присоединились" }, "kicked": { - "one": "был удалён", - "other": "удалено %(count)s раз(а)" + "one": "исключили", + "few": "исключили %(count)s раза", + "many": "исключили %(count)s раз" }, "kicked_multiple": { "one": "были удалены", "other": "удалены %(count)s раз(а)" }, "left": { - "other": "%(oneUser)s покинул(а) %(count)s раз(а)", - "one": "%(oneUser)s покинул(а)" + "one": "%(oneUser)s покидает", + "few": "%(oneUser)s покидает %(count)s раза", + "many": "%(oneUser)s покидает %(count)s раз" }, "left_multiple": { "other": "%(severalUsers)s покинули %(count)s раз(а)", @@ -3753,7 +3768,7 @@ "changelog": "История изменений", "check_action": "Проверить наличие обновлений", "checking": "Проверка наличия обновлений…", - "downloading": "Загрузка обновления…", + "downloading": "Скачивание обновления…", "error_encountered": "Обнаружена ошибка (%(errorDetail)s).", "error_unable_load_commit": "Не возможно загрузить детали подтверждения:: %(msg)s", "new_version_available": "Доступна новая версия. Обновить сейчас.", @@ -3808,7 +3823,7 @@ "disinvite_button_space": "Отозвать приглашение в пространство", "error_ban_user": "Не удалось заблокировать пользователя", "error_deactivate": "Не удалось деактивировать пользователя", - "error_kicking_user": "Не удалось удалить пользователя", + "error_kicking_user": "Не удалось исключить пользователя", "error_mute_user": "Не удалось заглушить пользователя", "error_revoke_3pid_invite_description": "Не удалось отозвать приглашение. Возможно, на сервере возникла вре́менная проблема или у вас недостаточно прав для отзыва приглашения.", "error_revoke_3pid_invite_title": "Не удалось отменить приглашение", @@ -3817,11 +3832,11 @@ "ignore_confirm_title": "Игнорировать %(user)s", "invited_by": "Приглашен %(sender)s", "jump_to_rr_button": "Перейти к последнему прочитанному сообщению", - "kick_button_room": "Удалить из комнаты", - "kick_button_room_name": "Удалить из %(roomName)s", + "kick_button_room": "Исключить из комнаты", + "kick_button_room_name": "Исключить из %(roomName)s", "kick_button_space": "Исключить из пространства", - "kick_button_space_everything": "Удалить их отовсюду, где я могу", - "kick_space_specific": "Удалить их из некоторых мест, где я могу", + "kick_button_space_everything": "Исключить участника отовсюду, где я могу", + "kick_space_specific": "Исключить участника из некоторых мест, где я могу", "kick_space_warning": "Они по-прежнему смогут получить доступ ко всему, где вы не являетесь администратором.", "promote_warning": "Вы не сможете отменить это действие, так как этот пользователь получит уровень прав, равный вашему.", "redact": { @@ -3845,7 +3860,7 @@ "room_encrypted": "Сообщения в этой комнате защищены сквозным шифрованием.", "room_encrypted_detail": "Ваши сообщения в безопасности, ключи для расшифровки есть только у вас и получателя.", "room_unencrypted": "Сообщения в этой комнате не защищены сквозным шифрованием.", - "room_unencrypted_detail": "В зашифрованных комнатах ваши сообщения в безопасности: только у вас и у получателя есть ключи для расшифровки.", + "room_unencrypted_detail": "В зашифрованных чатах ваши сообщения в безопасности: только у вас и у получателя есть ключи для расшифровки.", "send_message": "Отправить сообщение", "share_button": "Поделиться профилем", "unban_button_room": "Разблокировать в комнате", @@ -4021,8 +4036,8 @@ "see_videos_sent_active_room": "Посмотрите видео размещённые в вашей активной комнате", "see_videos_sent_this_room": "Посмотрите видео размещённые в этой комнате", "send_emotes_active_room": "Отправляйте эмоции от своего имени в активную комнату", - "send_emotes_this_room": "Отправляйте эмоции от своего имени в эту комнату", - "send_event_type_active_room": "Отправляйте %(eventType)s события от своего имени в вашей активной комнате", + "send_emotes_this_room": "Отправляйте смайлики от своего имени в это чат", + "send_event_type_active_room": "Отправляйте события %(eventType)s от своего имени в вашем активном чате", "send_event_type_this_room": "Отправляйте события %(eventType)s от своего имени в этой комнате", "send_files_active_room": "Отправьте файлы от своего имени в активной комнате", "send_files_this_room": "Отправьте файлы от своего имени в этой комнате", @@ -4053,7 +4068,7 @@ "remove": "Убрать для всех", "revoke": "Отозвать разрешения", "screenshot": "Сделать снимок", - "start_audio_stream": "Запустить аудио трансляцию" + "start_audio_stream": "Запустить аудиотрансляцию" }, "cookie_warning": "Этот виджет может использовать куки.", "error_hangup_description": "Вас отключили от звонка. (Ошибка: %(message)s)", @@ -4118,10 +4133,10 @@ "recentYears": "Последние года легко угадываемы", "sequences": "Последовательности типа abc или 6543 легко угадываемы", "similarToCommon": "Это похоже на распространённый пароль", - "simpleRepeat": "Повторы типа \"ааа\" легко угадываемы", + "simpleRepeat": "Повторы типа «ааа» легко угадываемы", "straightRow": "Прямые ряды клавиш легко угадываемы", - "topHundred": "Это топ-100 распространённых паролей", - "topTen": "Это топ-10 распространённых паролей", + "topHundred": "Это 100 самых распространённых паролей", + "topTen": "Это 10 самых распространённых паролей", "userInputs": "Не должно быть никаких личных данных или данных, связанных со страницами.", "wordByItself": "Общеупотребительные слова легко угадываемы" } diff --git a/apps/web/src/i18n/strings/sk.json b/apps/web/src/i18n/strings/sk.json index 47d4474b1c..3ba4c4db1e 100644 --- a/apps/web/src/i18n/strings/sk.json +++ b/apps/web/src/i18n/strings/sk.json @@ -2251,8 +2251,6 @@ "aliases_section": "Adresy miestnosti", "avatar_field_label": "Obrázok miestnosti", "canonical_alias_field_label": "Hlavná adresa", - "default_url_previews_off": "Náhľady URL adries sú predvolene zakázané pre členov tejto miestnosti.", - "default_url_previews_on": "Náhľady URL adries sú predvolene povolené pre členov tejto miestnosti.", "description_space": "Upravte nastavenia týkajúce sa vášho priestoru.", "error_creating_alias_description": "Pri vytváraní tejto adresy došlo k chybe. Je možné, že ju server nepovoľuje alebo došlo k dočasnému zlyhaniu.", "error_creating_alias_title": "Chyba pri vytváraní adresy", @@ -2283,12 +2281,7 @@ "published_aliases_explainer_space": "Zverejnené adresy môže použiť ktokoľvek na akomkoľvek serveri, aby sa pripojil k vášmu priestoru.", "published_aliases_section": "Zverejnené adresy", "save": "Uložiť zmeny", - "topic_field_label": "Téma miestnosti", - "url_preview_encryption_warning": "Náhľady URL adries sú v šifrovaných miestnostiach ako je táto predvolene zakázané, aby ste si mohli byť istí, že obsah odkazov z vašej konverzácii nebude zaznamenaný na vašom domovskom serveri počas ich generovania.", - "url_preview_explainer": "Ak niekto vo svojej správe pošle URL adresu, môže byť zobrazený jej náhľad obsahujúci názov, popis a obrázok z cieľovej web stránky.", - "url_previews_section": "Náhľady URL adries", - "user_url_previews_default_off": "Predvolene máte zakázané náhľady URL adries.", - "user_url_previews_default_on": "Predvolene máte povolené náhľady URL adries." + "topic_field_label": "Téma miestnosti" }, "notifications": { "browse_button": "Prechádzať", @@ -2713,8 +2706,6 @@ "username": "Používateľské meno" }, "inline_url_previews_default": "Predvolene povoliť náhľady URL adries", - "inline_url_previews_room": "Predvolene povoliť náhľady URL adries pre členov tejto miestnosti", - "inline_url_previews_room_account": "Povoliť náhľady URL adries pre túto miestnosť (ovplyvňuje len vás)", "insert_trailing_colon_mentions": "Vložiť na koniec dvojbodku za zmienkou používateľa na začiatku správy", "invite_controls": { "default_label": "Povoliť používateľom pozývať vás do miestností" diff --git a/apps/web/src/i18n/strings/sq.json b/apps/web/src/i18n/strings/sq.json index 7a41ab152a..cef1c7e45e 100644 --- a/apps/web/src/i18n/strings/sq.json +++ b/apps/web/src/i18n/strings/sq.json @@ -1786,8 +1786,6 @@ "aliases_section": "Adresa Dhomash", "avatar_field_label": "Avatar dhome", "canonical_alias_field_label": "Adresë kryesore", - "default_url_previews_off": "Për pjesëmarrësit në këtë dhomë paraparja e URL-ve është e çaktivizuar, si parazgjedhje.", - "default_url_previews_on": "Për pjesëmarrësit në këtë dhomë paraparja e URL-ve është e aktivizuar, si parazgjedhje.", "description_space": "Përpunoni rregullime që lidhen me hapësirën tuaj.", "error_creating_alias_description": "Pati një gabim në krijimin e asaj adrese. Mund të mos lejohet nga shërbyesi, ose ndodhi një gabim i përkohshëm.", "error_creating_alias_title": "Gabim në krijim adrese", @@ -1814,12 +1812,7 @@ "published_aliases_explainer_space": "Adresat e publikuara mund të përdoren nga cilido, në cilindo shërbyes, për të hyrë në hapësirën tuaj.", "published_aliases_section": "Adresa të Publikuara", "save": "Ruaji Ndryshimet", - "topic_field_label": "Temë Dhome", - "url_preview_encryption_warning": "Në dhoma të fshehtëzuara, si kjo, paraparja e URL-ve është e çaktivizuar, si parazgjedhje, për të garantuar që shërbyesi juaj home (ku edhe prodhohen paraparjet) të mos grumbullojë të dhëna rreth lidhjesh që shihni në këtë dhomë.", - "url_preview_explainer": "Kur dikush vë një URL në mesazh, për të dhënë rreth lidhjes më tepër të dhëna, të tilla si titulli, përshkrimi dhe një figurë e sajtit, do të shfaqet një paraparje e URL-së.", - "url_previews_section": "Paraparje URL-sh", - "user_url_previews_default_off": "E keni çaktivizuar, si parazgjedhje, paraparjen e URL-ve.", - "user_url_previews_default_on": "E keni aktivizuar, si parazgjedhje, paraparjen e URL-ve." + "topic_field_label": "Temë Dhome" }, "notifications": { "browse_button": "Shfletoni", @@ -2108,8 +2101,6 @@ "spell_check_locale_placeholder": "Zgjidhni vendore" }, "inline_url_previews_default": "Aktivizo, si parazgjedhje, paraparje URL-sh brendazi", - "inline_url_previews_room": "Aktivizo, si parazgjedhje, paraparje URL-sh për pjesëmarrësit në këtë dhomë", - "inline_url_previews_room_account": "Aktivizo paraparje URL-sh për këtë dhomë (prek vetëm ju)", "insert_trailing_colon_mentions": "Fut dy pika pas përmendjesh përdoruesi, në fillim të një mesazhi", "jump_to_bottom_on_send": "Kalo te fundi i rrjedhës kohore, kur dërgoni një mesazh", "key_backup": { diff --git a/apps/web/src/i18n/strings/sv.json b/apps/web/src/i18n/strings/sv.json index a50fddfe6c..48715ab1ae 100644 --- a/apps/web/src/i18n/strings/sv.json +++ b/apps/web/src/i18n/strings/sv.json @@ -2141,8 +2141,6 @@ "aliases_section": "Rumsadresser", "avatar_field_label": "Rumsavatar", "canonical_alias_field_label": "Huvudadress", - "default_url_previews_off": "URL-förhandsgranskning är inaktiverat som förval för deltagare i detta rum.", - "default_url_previews_on": "URL-förhandsgranskning är aktiverat som förval för deltagare i detta rum.", "description_space": "Redigera inställningar relaterat till ditt utrymme.", "error_creating_alias_description": "Ett fel inträffade vid skapande av adressen. Det kanske inte tillåts av servern, eller så inträffade ett tillfälligt fel.", "error_creating_alias_title": "Fel vid skapande av adress", @@ -2171,12 +2169,7 @@ "published_aliases_explainer_space": "Publicerade adresser kan användas av vem som helst på vilken server som helst för att gå med i ditt utrymme.", "published_aliases_section": "Publicerade adresser", "save": "Spara ändringar", - "topic_field_label": "Rumsämne", - "url_preview_encryption_warning": "I krypterade rum, som detta, är URL-förhandsgranskning inaktiverad som förval för att säkerställa att din hemserver (där förhandsgranskningar genereras) inte kan samla information om länkar du ser i rummet.", - "url_preview_explainer": "När någon lägger en URL i sitt meddelande, kan URL-förhandsgranskning ge mer information om länken, såsom titel, beskrivning, och en bild från webbplatsen.", - "url_previews_section": "URL-förhandsgranskning", - "user_url_previews_default_off": "Du har inaktiverat URL-förhandsgranskning som förval.", - "user_url_previews_default_on": "Du har aktiverat URL-förhandsgranskning som förval." + "topic_field_label": "Rumsämne" }, "notifications": { "browse_button": "Bläddra", @@ -2589,8 +2582,6 @@ "username": "Användarnamn" }, "inline_url_previews_default": "Aktivera inbäddad URL-förhandsgranskning som standard", - "inline_url_previews_room": "Aktivera URL-förhandsgranskning som standard för deltagare i detta rum", - "inline_url_previews_room_account": "Aktivera URL-förhandsgranskning för detta rum (påverkar bara dig)", "insert_trailing_colon_mentions": "Infoga kolon efter användaromnämnande på början av ett meddelande", "invite_controls": { "default_label": "Tillåt användare att bjuda in dig till rum" diff --git a/apps/web/src/i18n/strings/tr.json b/apps/web/src/i18n/strings/tr.json index 3b5b7e2a4f..142d45f61f 100644 --- a/apps/web/src/i18n/strings/tr.json +++ b/apps/web/src/i18n/strings/tr.json @@ -2078,8 +2078,6 @@ "aliases_section": "Oda Adresleri", "avatar_field_label": "Oda avatarı", "canonical_alias_field_label": "Ana adres", - "default_url_previews_off": "URL ön izlemeleri, bu odadaki kullanıcılar için varsayılan olarak devre dışı bıraktırılmıştır.", - "default_url_previews_on": "URL önizlemeleri, bu odadaki katılımcılar için varsayılan olarak etkin.", "description_space": "Alanınızla ilgili ayarları düzenleyin.", "error_creating_alias_description": "Adres oluşturulurken hata ile karşılaşıldı. Sunucu tarafından izin verilmemiş yada geçici bir hata olabilir.", "error_creating_alias_title": "Adres oluşturulurken hata", @@ -2108,12 +2106,7 @@ "published_aliases_explainer_space": "Yayınlanan adresler, herhangi bir sunucudaki herkes tarafından alanınıza katılmak için kullanılabilir.", "published_aliases_section": "Yayınlanmış adresler", "save": "Değişiklikleri Kaydet", - "topic_field_label": "Oda Başlığı", - "url_preview_encryption_warning": "Bunun gibi şifreli odalarda, ana sunucunuzun (önizlemelerin oluşturulduğu yer) bu odada gördüğünüz bağlantılar hakkında bilgi toplayamamasını sağlamak için URL önizlemeleri varsayılan olarak devre dışı bırakılır.", - "url_preview_explainer": "Birisi mesajına bir URL eklediğinde, bu bağlantı hakkında başlık, açıklama ve web sitesinden bir görüntü gibi daha fazla bilgi vermek için bir URL önizlemesi gösterilebilir.", - "url_previews_section": "URL önizlemeleri", - "user_url_previews_default_off": "URL önizlemelerini varsayılan olarak devre dışı bıraktınız.", - "user_url_previews_default_on": "URL önizlemelerini varsayılan olarak etkinleştirdiniz." + "topic_field_label": "Oda Başlığı" }, "notifications": { "browse_button": "Gözat", @@ -2510,8 +2503,6 @@ "username": "Kullanıcı Adı" }, "inline_url_previews_default": "Varsayılan olarak satır içi URL önizlemeleri aç", - "inline_url_previews_room": "Bu odadaki katılımcılar için URL önizlemeyi varsayılan olarak açık hale getir", - "inline_url_previews_room_account": "Bu oda için URL önizlemeyi aç (sadece sizi etkiler)", "insert_trailing_colon_mentions": "Mesajın başında kullanıcı etiketlerinden sonra iki nokta üst üste ekle", "jump_to_bottom_on_send": "Mesaj gönderdiğinizde zaman çizelgesinin en sonuna atla", "key_backup": { diff --git a/apps/web/src/i18n/strings/uk.json b/apps/web/src/i18n/strings/uk.json index 0ed408e2f9..d1a9e78af1 100644 --- a/apps/web/src/i18n/strings/uk.json +++ b/apps/web/src/i18n/strings/uk.json @@ -2215,8 +2215,6 @@ "aliases_section": "Адреси кімнати", "avatar_field_label": "Аватар кімнати", "canonical_alias_field_label": "Основна адреса", - "default_url_previews_off": "Попередній перегляд URL-адрес типово вимкнений для учасників цієї кімнати.", - "default_url_previews_on": "Попередній перегляд URL-адрес типово увімкнений для учасників цієї кімнати.", "description_space": "Змінити налаштування, що стосуються вашого простору.", "error_creating_alias_description": "Помилка створення такої адреси. Можливо, сервер цього не дозволяє або стався тимчасовий збій.", "error_creating_alias_title": "Помилка створення адреси", @@ -2247,12 +2245,7 @@ "published_aliases_explainer_space": "Загальнодоступні адреси можуть бути використані будь-ким на будь-якому сервері для приєднання до вашого простору.", "published_aliases_section": "Загальнодоступні адреси", "save": "Зберегти зміни", - "topic_field_label": "Тема кімнати", - "url_preview_encryption_warning": "У кімнатах з шифруванням, як у цій, попередній перегляд посилань усталено вимкнено. Це робиться, щоб гарантувати, що ваш домашній сервер (на якому генеруються перегляди) не матиме змоги збирати дані щодо посилань, які ви бачите у цій кімнаті.", - "url_preview_explainer": "Коли хтось додає URL-адресу у повідомлення, можливо автоматично показувати для цієї URL-адресу попередній перегляд його заголовку, опису й зображення.", - "url_previews_section": "Попередній перегляд URL-адрес", - "user_url_previews_default_off": "Ви вимкнули усталений попередній перегляд URL-адрес.", - "user_url_previews_default_on": "Ви увімкнули усталений попередній перегляд URL-адрес." + "topic_field_label": "Тема кімнати" }, "notifications": { "browse_button": "Огляд", @@ -2674,8 +2667,6 @@ "username": "Ім'я користувача" }, "inline_url_previews_default": "Увімкнути вбудований перегляд гіперпосилань за умовчанням", - "inline_url_previews_room": "Увімкнути попередній перегляд гіперпосилань за умовчанням для учасників цієї кімнати", - "inline_url_previews_room_account": "Увімкнути попередній перегляд гіперпосилань в цій кімнаті (стосується тільки вас)", "insert_trailing_colon_mentions": "Додавати двокрапку після згадки користувача на початку повідомлення", "invite_controls": { "default_label": "Дозволити користувачам запрошувати вас до кімнат" diff --git a/apps/web/src/i18n/strings/vi.json b/apps/web/src/i18n/strings/vi.json index 945a7054ea..109d09a3aa 100644 --- a/apps/web/src/i18n/strings/vi.json +++ b/apps/web/src/i18n/strings/vi.json @@ -1726,8 +1726,6 @@ "aliases_section": "Các địa chỉ Phòng", "avatar_field_label": "Hình đại diện phòng", "canonical_alias_field_label": "Địa chỉ chính", - "default_url_previews_off": "Xem trước URL bị tắt theo mặc định đối với những người tham gia trong phòng này.", - "default_url_previews_on": "Xem trước URL được bật theo mặc định cho những người tham gia trong phòng này.", "description_space": "Chỉnh sửa cài đặt liên quan đến space của bạn.", "error_creating_alias_description": "Đã xảy ra lỗi khi tạo địa chỉ đó. Nó có thể không được máy chủ cho phép hoặc xảy ra lỗi tạm thời.", "error_creating_alias_title": "Lỗi khi tạo địa chỉ", @@ -1754,12 +1752,7 @@ "published_aliases_explainer_space": "Địa chỉ đã xuất bản có thể được sử dụng bởi bất kỳ ai trên bất kỳ máy chủ nào để tham gia space của bạn.", "published_aliases_section": "Các địa chỉ công khai", "save": "Lưu thay đổi", - "topic_field_label": "Chủ đề phòng", - "url_preview_encryption_warning": "Trong các phòng được mã hóa, như phòng này, tính năng xem trước URL bị tắt theo mặc định để đảm bảo rằng máy chủ của bạn (nơi tạo bản xem trước) không thể thu thập thông tin về các liên kết mà bạn nhìn thấy trong phòng này.", - "url_preview_explainer": "Khi ai đó đặt URL trong tin nhắn của họ, bản xem trước URL có thể được hiển thị để cung cấp thêm thông tin về liên kết đó như tiêu đề, mô tả và hình ảnh từ trang web.", - "url_previews_section": "Xem trước URL", - "user_url_previews_default_off": "Bạn đã tắt disabled xem trước URL theo mặc định.", - "user_url_previews_default_on": "Bạn đã bật enabled URL xem trước URL theo mặc định." + "topic_field_label": "Chủ đề phòng" }, "notifications": { "browse_button": "Duyệt qua", @@ -2053,8 +2046,6 @@ "spell_check_locale_placeholder": "Chọn vùng miền" }, "inline_url_previews_default": "Bật xem trước nội dung liên kết theo mặc định", - "inline_url_previews_room": "Bật xem trước nội dung liên kết cho mọi người trong phòng này", - "inline_url_previews_room_account": "Bật xem trước nội dung liên kết trong phòng này (chỉ với bạn)", "insert_trailing_colon_mentions": "Chèn dấu hai chấm phía sau các đề cập người dùng ở đầu một tin nhắn", "jump_to_bottom_on_send": "Chuyển đến cuối dòng thời gian khi bạn gửi tin nhắn", "key_backup": { diff --git a/apps/web/src/i18n/strings/zh_Hans.json b/apps/web/src/i18n/strings/zh_Hans.json index 1202dd5930..baa3c19ae0 100644 --- a/apps/web/src/i18n/strings/zh_Hans.json +++ b/apps/web/src/i18n/strings/zh_Hans.json @@ -1709,8 +1709,6 @@ "aliases_section": "房间地址", "avatar_field_label": "房间头像", "canonical_alias_field_label": "主要地址", - "default_url_previews_off": "已对此房间的参与者默认禁用URL预览。", - "default_url_previews_on": "已对此房间的参与者默认启用URL预览。", "description_space": "编辑关于你的空间的设置。", "error_creating_alias_description": "创建地址时出现错误。可能是服务器不允许,也可能是出现了一个暂时的错误。", "error_creating_alias_title": "创建地址时出现错误", @@ -1737,12 +1735,7 @@ "published_aliases_explainer_space": "任何服务器上的人均可通过公布的地址加入你的空间。", "published_aliases_section": "公布的地址", "save": "保存修改", - "topic_field_label": "房间话题", - "url_preview_encryption_warning": "在加密的房间中,比如此房间,URL预览默认是禁用的,以确保你的家服务器(生成预览的地方)无法收集与你在此房间中看到的链接有关的信息。", - "url_preview_explainer": "当有人在他们的消息里放置URL时,可显示URL预览以给出更多有关链接的信息,如其网站的标题、描述以及图片。", - "url_previews_section": "URL预览", - "user_url_previews_default_off": "你已经默认禁用URL预览。", - "user_url_previews_default_on": "你已经默认启用URL预览。" + "topic_field_label": "房间话题" }, "notifications": { "browse_button": "浏览", @@ -2023,8 +2016,6 @@ "spell_check_locale_placeholder": "选择区域设置" }, "inline_url_previews_default": "默认启用行内URL预览", - "inline_url_previews_room": "对此房间的所有参与者默认启用URL预览", - "inline_url_previews_room_account": "对此房间启用URL预览(仅影响你)", "insert_trailing_colon_mentions": "在消息开头的提及用户的地方后面插入尾随冒号", "jump_to_bottom_on_send": "发送消息时跳转到时间线底部", "key_backup": { diff --git a/apps/web/src/i18n/strings/zh_Hant.json b/apps/web/src/i18n/strings/zh_Hant.json index bc6d8a9be0..47079c9d9d 100644 --- a/apps/web/src/i18n/strings/zh_Hant.json +++ b/apps/web/src/i18n/strings/zh_Hant.json @@ -1874,8 +1874,6 @@ "aliases_section": "聊天室位址", "avatar_field_label": "聊天室大頭照", "canonical_alias_field_label": "主要位址", - "default_url_previews_off": "此聊天室已預設對參與者停用網址預覽。", - "default_url_previews_on": "此聊天室已預設對參與者啟用網址預覽。", "description_space": "編輯您的聊天空間的設定。", "error_creating_alias_description": "建立該位址時發生錯誤。伺服器可能不允許這麼做,或是有暫時性的問題。", "error_creating_alias_title": "建立位址錯誤", @@ -1902,12 +1900,7 @@ "published_aliases_explainer_space": "任何伺服器上的人都可以使用已發佈的位址加入您的聊天空間。", "published_aliases_section": "已發佈的位址", "save": "儲存變更", - "topic_field_label": "聊天室主題", - "url_preview_encryption_warning": "在加密的聊天室中(這個就是),會預設停用網址預覽以確保您的家伺服器(產生預覽資訊的地方)無法透過這個聊天室收集您看到的連結的相關資訊。", - "url_preview_explainer": "當某人在他們的訊息中放置網址時,可以顯示如標題、描述與網頁上的圖片等等來給您更多關於該連結的資訊。", - "url_previews_section": "網址預覽", - "user_url_previews_default_off": "您已預設停用網址預覽。", - "user_url_previews_default_on": "您已預設停用網址預覽。" + "topic_field_label": "聊天室主題" }, "notifications": { "browse_button": "瀏覽", @@ -2242,8 +2235,6 @@ "spell_check_locale_placeholder": "選擇語系" }, "inline_url_previews_default": "預設啟用行內網址預覽", - "inline_url_previews_room": "對此聊天室中的參與者預設啟用網址預覽", - "inline_url_previews_room_account": "對此聊天室啟用網址預覽(僅影響您)", "insert_trailing_colon_mentions": "在使用者於訊息開頭提及之後插入跟隨冒號", "jump_to_bottom_on_send": "傳送訊息時,跳到時間軸底部", "key_backup": { diff --git a/packages/shared-components/src/i18n/strings/fr.json b/packages/shared-components/src/i18n/strings/fr.json index 74af7f0369..b9583de5b4 100644 --- a/packages/shared-components/src/i18n/strings/fr.json +++ b/packages/shared-components/src/i18n/strings/fr.json @@ -4,6 +4,7 @@ }, "action": { "back": "Retour", + "click": "Clic", "collapse": "Réduire", "delete": "Supprimer", "dismiss": "Ignorer", @@ -11,24 +12,35 @@ "edit": "Modifier", "explore_rooms": "Parcourir les salons", "go": "C’est parti", + "hide": "Masquer", "invite": "Inviter", "new_conversation": "Nouvelle conversation", "new_room": "Nouveau salon", "new_video_room": "Nouveau salon visio", "open_menu": "Ouvrir le menu", "pause": "Pause", + "pin": "Épingler", "play": "Lecture", + "react": "Réagir", "remove": "Supprimer", + "reply": "Répondre", + "reply_in_thread": "Répondre dans le fil de discussion", "retry": "Réessayer", "search": "Rechercher", - "start_chat": "Démarrer une discussion" + "start_chat": "Démarrer une discussion", + "unpin": "Désépingler", + "view_source": "Voir la source" }, "common": { "attachment": "Pièce jointe", "encryption_enabled": "Chiffrement activé", + "options": "Options", "preferences": "Préférences", "state_encryption_enabled": "Chiffrement expérimental de l'état activé" }, + "keyboard": { + "shift": "Maj" + }, "left_panel": { "open_dial_pad": "Ouvrir le pavé de numérotation", "separator_label": "Cliquez ou glissez pour agrandir" @@ -129,7 +141,8 @@ }, "room_options": "Options du salon", "section_header": { - "toggle": "Afficher/masquer la section %(section)s" + "toggle": "Afficher/masquer la section %(section)s", + "toggle_unread": "Afficher ou masquer la section « %(section)s s » contenant un ou plusieurs salon non lus" }, "show_message_previews": "Afficher les aperçus des messages", "sort": "Trier", @@ -146,6 +159,9 @@ "terms": { "tac_button": "Voir les conditions générales" }, + "threads": { + "error_start_thread_existing_relation": "Impossible de créer un fil de discussion à partir d’un événement avec une relation existante" + }, "time": { "about_day_ago": "il y a environ un jour", "about_hour_ago": "il y a environ une heure", @@ -172,6 +188,8 @@ "sender_unsigned_device": "Envoyé depuis un appareil non sécurisé.", "unable_to_decrypt": "Impossible de déchiffrer le message" }, + "download_action_decrypting": "Déchiffrement", + "download_action_downloading": "Téléchargement en cours", "m.audio": { "audio_player": "Lecteur audio", "error_downloading_audio": "Erreur lors du téléchargement de l’audio", @@ -190,6 +208,13 @@ "state_enabled": "Les messages et les événements de ce salon sont chiffrés de bout en bout. Lorsque des personnes rejoignent le salon, vous pouvez les vérifier dans leur profil en cliquant sur leur photo de profil.", "unsupported": "Le chiffrement utilisé par ce salon n’est pas pris en charge." }, + "mab": { + "collapse_reply_chain": "Réduire les citations", + "copy_link_thread": "Copier le lien du fil de discussion", + "expand_reply_chain": "Étendre les citations", + "label": "Actions de message", + "view_in_room": "Voir dans le salon" + }, "message_timestamp_received_at": "Reçu à : %(dateTime)s", "message_timestamp_sent_at": "Envoyé à : %(dateTime)s", "url_preview": { diff --git a/packages/shared-components/src/i18n/strings/ru.json b/packages/shared-components/src/i18n/strings/ru.json index 38abf64ff5..cc269cfaa3 100644 --- a/packages/shared-components/src/i18n/strings/ru.json +++ b/packages/shared-components/src/i18n/strings/ru.json @@ -50,6 +50,14 @@ "context_menu": { "title": "Настройки комнаты" }, + "history_visibility_badge": { + "private": "Новые участники не видят историю", + "shared": "Новые участники видят историю", + "world_readable": "Кто угодно может видеть историю" + }, + "jump_to_date": "Перейти к дате", + "jump_to_date_prompt": "Выберите дату для перехода", + "pinned_message_badge": "Закреплённое сообщение", "status_bar": { "delete_all": "Удалить всё", "exceeded_resource_limit_description": "Свяжись с администратором сервиса, чтобы продолжить пользоваться услугой.", @@ -66,12 +74,41 @@ } }, "room_list": { + "a11y": { + "default": "Открыть комнату %(roomName)s", + "invitation": "Открыть приглашение в комнату %(roomName)s.", + "mention": { + "one": "Открыть чат %(roomName)s с 1 непрочитанным упоминанием.", + "few": "Открыть чат %(roomName)s с %(count)s непрочитанными упоминаниями.", + "many": "Открыть чат %(roomName)s с %(count)s непрочитанными упоминаниями." + }, + "unread": { + "one": "Открыть чат %(roomName)s с 1 непрочитанным сообщением.", + "few": "Открыть чат %(roomName)s с %(count)s непрочитанными сообщениями.", + "many": "Открыть чат %(roomName)s с %(count)s непрочитанными сообщениями." + }, + "unsent_message": "Открыть комнату %(roomName)s с неотправленным сообщением." + }, "appearance": "Внешний вид", "collapse_filters": "Свернуть список фильтров", "empty": { + "no_chats": "Пока нет чатов", + "no_chats_description": "Начните с отправки сообщения или создания комнаты", + "no_chats_description_no_room_rights": "Начните переписку с отправки сообщения", + "no_favourites": "У вас пока нет избранных чатов", + "no_favourites_description": "Вы можете добавить чат в избранное в настройках чата", + "no_invites": "У вас нет непросмотренных приглашений", + "no_lowpriority": "У вас нет комнат с низким приориетом", + "no_mentions": "У вас нет непрочитанных упоминаний", + "no_people": "У вас нет личных чатов", + "no_people_description": "Вы можете убрать фильтры, чтобы просмотреть свои чаты", + "no_rooms": "Вы пока не состоите ни в одной комнате", + "no_rooms_description": "Вы можете убрать фильтры, чтобы увидеть свои чаты", + "no_unread": "Поздравляем! У вас нет непрочитанных сообщений", "show_activity": "Посмотреть всю активность", "show_chats": "Показать все чаты" }, + "expand_filters": "Раскрыть список фильтров", "filters": { "favourite": "Избранное", "invites": "Приглашения", @@ -101,6 +138,7 @@ "sort": "Сортировать", "sort_type": { "activity": "Последняя активность", + "atoz": "А-Я", "unread_first": "Сначала непрочитанные" }, "space_menu": { @@ -129,12 +167,43 @@ }, "timeline": { "decryption_failure": { - "sender_unsigned_device": "Отправлено с незащищенного устройства" + "blocked": "Отправитель заблокировал получение этого сообщения, поскольку ваше устройство не проверено.", + "historical_event_no_key_backup": "История сообщений недоступна на этом устройстве", + "historical_event_unverified_device": "Вам необходимо подтвердить это устройство для доступа к истории сообщений.", + "historical_event_user_not_joined": "У вас нет доступа к этому сообщению", + "sender_identity_previously_verified": "Подтвержденная личность отправителя была сброшена", + "sender_unsigned_device": "Отправлено с незащищенного устройства", + "unable_to_decrypt": "Не удалось расшифровать сообщение" }, "m.audio": { "audio_player": "Аудиоплеер", - "error_downloading_audio": "Ошибка загрузки аудио", + "error_downloading_audio": "Ошибка скачивания аудио", "unnamed_audio": "Безымянное аудио" + }, + "m.room.encryption": { + "disable_attempt": "Проигнорированная попытка отключить шифрование", + "disabled": "Шифрование не включено", + "enabled": "Сообщения в этой комнате защищены сквозным шифрованием. Когда пользователи присоединяются, вы можете подтвердить их профиль, нажав на их аватар.", + "enabled_dm": "Сообщения защищены сквозным шифрованием. Подтвердите %(displayName)s в профиле, нажав на аватар.", + "enabled_local": "Сообщения в этом чате защищены сквозным шифрованием.", + "parameters_changed": "Некоторые параметры шифрования были изменены.", + "state_enabled": "Сообщения и события состояния в этой комнате защищены сквозным шифрованием. Когда пользователи присоединяются, вы можете подтвердить их профиль, нажав на аватар.", + "unsupported": "Шифрование, используемое в этой комнате, не поддерживается." + }, + "mab": { + "view_in_room": "Просмотреть в чате" + }, + "message_timestamp_received_at": "Получено в %(dateTime)s", + "message_timestamp_sent_at": "Отправлено в %(dateTime)s" + }, + "widget": { + "context_menu": { + "move_left": "Переместить влево", + "move_right": "Переместить вправо", + "remove": "Скрыть для всех", + "revoke": "Отозвать разрешения", + "screenshot": "Сделать снимок", + "start_audio_stream": "Начать аудиотрансляцию" } } } From dfdd438ae67ce0392c0c41250ffbf4458c79deae Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 09:48:15 +0100 Subject: [PATCH 8/9] Update eslint-plugins (#33123) * Update eslint-plugins * Hold back esbuild to unbreak vitepress --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- package.json | 3 +- pnpm-lock.yaml | 351 +++++++++++++++++++++++++++++++------------------ 2 files changed, 222 insertions(+), 132 deletions(-) diff --git a/package.json b/package.json index 19497482b8..8ea1940c0e 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,8 @@ "yaml@2.8.2": "2.8.3", "undici@7.22.2": "7.24.7", "@xmldom/xmldom@0.8.11": "0.9.9", - "esbuild@<=0.24.2": ">=0.25.0", + "esbuild@<=0.24.2": "0.27.4", + "esbuild@~0.27.0": "0.27.4", "minimatch@>=10.0.0 <10.2.3": ">=10.2.3" } }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cd233c58f..2f1f4b9ed8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -73,7 +73,8 @@ overrides: yaml@2.8.2: 2.8.3 undici@7.22.2: 7.24.7 '@xmldom/xmldom@0.8.11': 0.9.9 - esbuild@<=0.24.2: '>=0.25.0' + esbuild@<=0.24.2: 0.27.4 + esbuild@~0.27.0: 0.27.4 minimatch@>=10.0.0 <10.2.3: '>=10.2.3' packageExtensionsChecksum: sha256-OFePh8Fn8A1ZEWgJF51vTMPT/HEVyXQyj6YGIztPb0w= @@ -149,7 +150,7 @@ importers: version: 3.14.0 eslint-plugin-matrix-org: specifier: ^3.0.0 - version: 3.0.0(d28b6cfeddcbcf776e114e7554fcab7e) + version: 3.0.0(882721dbd3307f2fde4046d20d66d9fc) husky: specifier: ^9.0.0 version: 9.1.7 @@ -231,7 +232,7 @@ importers: version: 1.59.1 '@stylistic/eslint-plugin': specifier: ^5.0.0 - version: 5.9.0(eslint@8.57.1) + version: 5.10.0(eslint@8.57.1) '@types/auto-launch': specifier: ^5.0.1 version: 5.0.5(patch_hash=b60dc9846a11a1684ce52c55493f29ea398d3dc44b88f66ab44e9843d6c01538) @@ -249,7 +250,7 @@ importers: version: 11.1.8 '@typescript-eslint/eslint-plugin': specifier: ^8.0.0 - version: 8.57.2(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + version: 8.58.1(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.0.0 version: 8.58.0(eslint@8.57.1)(typescript@5.9.3) @@ -288,7 +289,7 @@ importers: version: 2.32.0(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-matrix-org: specifier: ^3.0.0 - version: 3.0.0(d28b6cfeddcbcf776e114e7554fcab7e) + version: 3.0.0(882721dbd3307f2fde4046d20d66d9fc) eslint-plugin-n: specifier: ^17.12.0 version: 17.24.0(eslint@8.57.1)(typescript@5.9.3) @@ -456,7 +457,7 @@ importers: version: 1.0.3 matrix-js-sdk: specifier: github:matrix-org/matrix-js-sdk#develop - version: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/b6ea6e105e5a2d95cfbafc75cfcc0903a6378ef3 + version: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6d270b46858984e7b2f8774a828c35db1d177f08 matrix-widget-api: specifier: ^1.17.0 version: 1.17.0 @@ -610,7 +611,7 @@ importers: version: 5.1.1(encoding@0.1.13)(webpack@5.105.4) '@stylistic/eslint-plugin': specifier: ^5.0.0 - version: 5.9.0(eslint@8.57.1) + version: 5.10.0(eslint@8.57.1) '@svgr/webpack': specifier: ^8.0.0 version: 8.1.0(typescript@5.9.3) @@ -709,7 +710,7 @@ importers: version: 0.7.39 '@typescript-eslint/eslint-plugin': specifier: ^8.19.0 - version: 8.57.2(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + version: 8.58.1(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.19.0 version: 8.58.0(eslint@8.57.1)(typescript@5.9.3) @@ -754,13 +755,13 @@ importers: version: 2.32.0(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) eslint-plugin-jest: specifier: ^29.0.0 - version: 29.15.0(@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@30.3.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0))(typescript@5.9.3) + version: 29.15.2(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@30.3.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0))(typescript@5.9.3) eslint-plugin-jsx-a11y: specifier: ^6.5.1 version: 6.10.2(eslint@8.57.1) eslint-plugin-matrix-org: specifier: ^3.0.0 - version: 3.0.0(d28b6cfeddcbcf776e114e7554fcab7e) + version: 3.0.0(882721dbd3307f2fde4046d20d66d9fc) eslint-plugin-react: specifier: ^7.28.0 version: 7.37.5(eslint@8.57.1) @@ -1102,7 +1103,7 @@ importers: version: 10.2.19(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(rollup@4.60.1(patch_hash=603340e49399c6044e41a3998891667387d5ec1acbd38d4e5862f2ba3ef58de8))(storybook@10.2.19(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3)(vite@8.0.5(@emnapi/core@1.8.1)(@emnapi/runtime@1.8.1)(@types/node@18.19.130)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.27.4)) '@stylistic/eslint-plugin': specifier: ^5.7.0 - version: 5.9.0(eslint@8.57.1) + version: 5.10.0(eslint@8.57.1) '@testing-library/dom': specifier: ^10.4.1 version: 10.4.1 @@ -1126,7 +1127,7 @@ importers: version: 19.2.3(@types/react@19.2.10) '@typescript-eslint/eslint-plugin': specifier: ^8.53.1 - version: 8.57.2(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + version: 8.58.1(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.53.1 version: 8.58.0(eslint@8.57.1)(typescript@5.9.3) @@ -1159,7 +1160,7 @@ importers: version: 6.10.2(eslint@8.57.1) eslint-plugin-matrix-org: specifier: ^3.0.0 - version: 3.0.0(d28b6cfeddcbcf776e114e7554fcab7e) + version: 3.0.0(882721dbd3307f2fde4046d20d66d9fc) eslint-plugin-react: specifier: ^7.37.5 version: 7.37.5(eslint@8.57.1) @@ -1171,7 +1172,7 @@ importers: version: 7.0.1(eslint@8.57.1) eslint-plugin-storybook: specifier: ^10.0.7 - version: 10.2.13(eslint@8.57.1)(storybook@10.2.19(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3) + version: 10.3.5(eslint@8.57.1)(storybook@10.2.19(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3) eslint-plugin-unicorn: specifier: ^56.0.0 version: 56.0.1(eslint@8.57.1) @@ -5023,7 +5024,7 @@ packages: '@storybook/csf-plugin@10.2.19': resolution: {integrity: sha512-BpjYIOdyQn/Rm6MjUAc5Gl8HlARZrskD/OhUNShiOh2fznb523dHjiE5mbU1kKM/+L1uvRlEqqih40rTx+xCrg==} peerDependencies: - esbuild: '>=0.25.0' + esbuild: 0.27.4 rollup: 4.60.1 storybook: ^10.2.19 vite: '*' @@ -5073,8 +5074,8 @@ packages: typescript: optional: true - '@stylistic/eslint-plugin@5.9.0': - resolution: {integrity: sha512-FqqSkvDMYJReydrMhlugc71M76yLLQWNfmGq+SIlLa7N3kHp8Qq8i2PyWrVNAfjOyOIY+xv9XaaYwvVW7vroMA==} + '@stylistic/eslint-plugin@5.10.0': + resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^9.0.0 || ^10.0.0 @@ -5663,13 +5664,13 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.57.2': - resolution: {integrity: sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==} + '@typescript-eslint/eslint-plugin@8.58.1': + resolution: {integrity: sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.57.2 + '@typescript-eslint/parser': ^8.58.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/parser@8.58.0': resolution: {integrity: sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA==} @@ -5678,31 +5679,35 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.57.2': - resolution: {integrity: sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.58.0': resolution: {integrity: sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.57.2': - resolution: {integrity: sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==} + '@typescript-eslint/project-service@8.58.1': + resolution: {integrity: sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/project-service@8.58.2': + resolution: {integrity: sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/scope-manager@8.58.0': resolution: {integrity: sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.57.2': - resolution: {integrity: sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==} + '@typescript-eslint/scope-manager@8.58.1': + resolution: {integrity: sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/scope-manager@8.58.2': + resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/tsconfig-utils@8.58.0': resolution: {integrity: sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==} @@ -5710,26 +5715,36 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.57.2': - resolution: {integrity: sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==} + '@typescript-eslint/tsconfig-utils@8.58.1': + resolution: {integrity: sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/tsconfig-utils@8.58.2': + resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.58.1': + resolution: {integrity: sha512-HUFxvTJVroT+0rXVJC7eD5zol6ID+Sn5npVPWoFuHGg9Ncq5Q4EYstqR+UOqaNRFXi5TYkpXXkLhoCHe3G0+7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/types@8.57.2': - resolution: {integrity: sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/types@8.58.0': resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.57.2': - resolution: {integrity: sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==} + '@typescript-eslint/types@8.58.1': + resolution: {integrity: sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/types@8.58.2': + resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/typescript-estree@8.58.0': resolution: {integrity: sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==} @@ -5737,21 +5752,44 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.57.2': - resolution: {integrity: sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==} + '@typescript-eslint/typescript-estree@8.58.1': + resolution: {integrity: sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/typescript-estree@8.58.2': + resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/utils@8.58.1': + resolution: {integrity: sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.57.2': - resolution: {integrity: sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==} + '@typescript-eslint/utils@8.58.2': + resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/visitor-keys@8.58.0': resolution: {integrity: sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.58.1': + resolution: {integrity: sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/visitor-keys@8.58.2': + resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -8065,14 +8103,14 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-jest@29.15.0: - resolution: {integrity: sha512-ZCGr7vTH2WSo2hrK5oM2RULFmMruQ7W3cX7YfwoTiPfzTGTFBMmrVIz45jZHd++cGKj/kWf02li/RhTGcANJSA==} + eslint-plugin-jest@29.15.2: + resolution: {integrity: sha512-kEN4r9RZl1xcsb4arGq89LrcVdOUFII/JSCwtTPJyv16mDwmPrcuEQwpxqZHeINvcsd7oK5O/rhdGlxFRaZwvQ==} engines: {node: ^20.12.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^8.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 jest: '*' - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <7.0.0' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': optional: true @@ -8139,11 +8177,11 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-storybook@10.2.13: - resolution: {integrity: sha512-ftNfZVL5zXhGMPEy/7PTCEriVH0zCBI89uiYYgSSTtM1b4l++VP+/MzJ17U1R1/jgENsp9LJm+jwRJnViv79RQ==} + eslint-plugin-storybook@10.3.5: + resolution: {integrity: sha512-rEFkfU3ypF44GpB4tiJ9EFDItueoGvGi3+weLHZax2ON2MB7VIDsxdSUGvIU5tMURg+oWYlpzCyLm4TpDq2deA==} peerDependencies: eslint: '>=8' - storybook: ^10.2.13 + storybook: ^10.3.5 eslint-plugin-unicorn@56.0.1: resolution: {integrity: sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==} @@ -9913,8 +9951,8 @@ packages: matrix-events-sdk@0.0.1: resolution: {integrity: sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==} - matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/b6ea6e105e5a2d95cfbafc75cfcc0903a6378ef3: - resolution: {tarball: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/b6ea6e105e5a2d95cfbafc75cfcc0903a6378ef3} + matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6d270b46858984e7b2f8774a828c35db1d177f08: + resolution: {tarball: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6d270b46858984e7b2f8774a828c35db1d177f08} version: 41.3.0 engines: {node: '>=22.0.0'} @@ -12439,8 +12477,8 @@ packages: resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} engines: {node: '>=18'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} tinyqueue@3.0.0: @@ -12982,7 +13020,7 @@ packages: peerDependencies: '@types/node': 18.19.130 '@vitejs/devtools': ^0.1.0 - esbuild: ^0.27.0 || ^0.28.0 + esbuild: 0.27.4 jiti: '>=1.21.0' less: ^4.0.0 sass: ^1.70.0 @@ -16052,7 +16090,7 @@ snapshots: picomatch: 4.0.4 semver: 7.7.4 source-map-support: 0.5.19 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tslib: 2.8.1 transitivePeerDependencies: - '@babel/traverse' @@ -17759,10 +17797,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@stylistic/eslint-plugin@5.9.0(eslint@8.57.1)': + '@stylistic/eslint-plugin@5.10.0(eslint@8.57.1)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/types': 8.58.2 eslint: 8.57.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -18465,14 +18503,14 @@ snapshots: '@types/node': 18.19.130 optional: true - '@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 '@typescript-eslint/parser': 8.58.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/type-utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.58.1 eslint: 8.57.1 ignore: 7.0.5 natural-compare: 1.4.0 @@ -18493,47 +18531,65 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.57.2(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) - '@typescript-eslint/types': 8.58.0 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/project-service@8.58.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) - '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.57.2': + '@typescript-eslint/project-service@8.58.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.58.2(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color '@typescript-eslint/scope-manager@8.58.0': dependencies: '@typescript-eslint/types': 8.58.0 '@typescript-eslint/visitor-keys': 8.58.0 - '@typescript-eslint/tsconfig-utils@8.57.2(typescript@5.9.3)': + '@typescript-eslint/scope-manager@8.58.1': dependencies: - typescript: 5.9.3 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 + + '@typescript-eslint/scope-manager@8.58.2': + dependencies: + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/visitor-keys': 8.58.2 '@typescript-eslint/tsconfig-utils@8.58.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.57.2(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.58.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + typescript: 5.9.3 + + '@typescript-eslint/tsconfig-utils@8.58.2(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.58.1(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.1(eslint@8.57.1)(typescript@5.9.3) debug: 4.4.3 eslint: 8.57.1 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -18541,24 +18597,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.57.2': {} - '@typescript-eslint/types@8.58.0': {} - '@typescript-eslint/typescript-estree@8.57.2(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.57.2(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 - debug: 4.4.3 - minimatch: 10.2.5 - semver: 7.7.4 - tinyglobby: 0.2.15 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.58.1': {} + + '@typescript-eslint/types@8.58.2': {} '@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3)': dependencies: @@ -18569,33 +18612,79 @@ snapshots: debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.57.2(eslint@8.57.1)(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.58.1(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.58.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.9.3) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.7.4 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.58.2(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.58.2(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/visitor-keys': 8.58.2 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.7.4 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.58.1(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@5.9.3) eslint: 8.57.1 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.57.2': + '@typescript-eslint/utils@8.58.2(eslint@8.57.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.57.2 - eslint-visitor-keys: 5.0.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3) + eslint: 8.57.1 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color '@typescript-eslint/visitor-keys@8.58.0': dependencies: '@typescript-eslint/types': 8.58.0 eslint-visitor-keys: 5.0.1 + '@typescript-eslint/visitor-keys@8.58.1': + dependencies: + '@typescript-eslint/types': 8.58.1 + eslint-visitor-keys: 5.0.1 + + '@typescript-eslint/visitor-keys@8.58.2': + dependencies: + '@typescript-eslint/types': 8.58.2 + eslint-visitor-keys: 5.0.1 + '@ungap/structured-clone@1.3.0': {} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -20215,7 +20304,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 7.0.5 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 webpack: 5.105.4(webpack-cli@7.0.2) core-js-compat@3.48.0: @@ -21367,12 +21456,12 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@29.15.0(@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@30.3.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0))(typescript@5.9.3): + eslint-plugin-jest@29.15.2(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@30.3.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) jest: 30.3.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0) typescript: 5.9.3 transitivePeerDependencies: @@ -21397,20 +21486,20 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-matrix-org@3.0.0(d28b6cfeddcbcf776e114e7554fcab7e): + eslint-plugin-matrix-org@3.0.0(882721dbd3307f2fde4046d20d66d9fc): dependencies: '@babel/core': 7.29.0 '@babel/eslint-parser': 7.28.6(@babel/core@7.29.0)(eslint@8.57.1) '@babel/eslint-plugin': 7.27.1(@babel/eslint-parser@7.28.6(@babel/core@7.29.0)(eslint@8.57.1))(eslint@8.57.1) - '@stylistic/eslint-plugin': 5.9.0(eslint@8.57.1) - '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@stylistic/eslint-plugin': 5.10.0(eslint@8.57.1) + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': 8.58.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 eslint-config-google: 0.14.0(eslint@8.57.1) eslint-config-prettier: 10.1.8(eslint@8.57.1) eslint-plugin-deprecate: 0.9.0(eslint@8.57.1) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) - eslint-plugin-jest: 29.15.0(@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@30.3.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0))(typescript@5.9.3) + eslint-plugin-jest: 29.15.2(@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@30.3.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0))(typescript@5.9.3) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react-hooks: 7.0.1(eslint@8.57.1) @@ -21490,9 +21579,9 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-storybook@10.2.13(eslint@8.57.1)(storybook@10.2.19(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3): + eslint-plugin-storybook@10.3.5(eslint@8.57.1)(storybook@10.2.19(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.57.2(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.58.2(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 storybook: 10.2.19(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) transitivePeerDependencies: @@ -23608,7 +23697,7 @@ snapshots: matrix-events-sdk@0.0.1: {} - matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/b6ea6e105e5a2d95cfbafc75cfcc0903a6378ef3: + matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6d270b46858984e7b2f8774a828c35db1d177f08: dependencies: '@babel/runtime': 7.28.6 '@matrix-org/matrix-sdk-crypto-wasm': 18.0.0 @@ -23973,7 +24062,7 @@ snapshots: proc-log: 5.0.0 semver: 7.7.4 tar: 7.5.13 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 which: 5.0.0 transitivePeerDependencies: - supports-color @@ -23988,7 +24077,7 @@ snapshots: proc-log: 6.1.0 semver: 7.7.4 tar: 7.5.13 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 which: 6.0.1 transitivePeerDependencies: - supports-color @@ -24860,7 +24949,7 @@ snapshots: postcss-js: 4.1.0(postcss@8.5.8) postcss-simple-vars: 7.0.1(postcss@8.5.8) sugarss: 5.0.1(postcss@8.5.8) - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 postcss-modules-extract-imports@3.1.0(postcss@8.5.8): dependencies: @@ -26765,7 +26854,7 @@ snapshots: tinyexec@1.0.4: {} - tinyglobby@0.2.15: + tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 @@ -27270,7 +27359,7 @@ snapshots: picomatch: 4.0.4 postcss: 8.5.8 rollup: 4.60.1(patch_hash=603340e49399c6044e41a3998891667387d5ec1acbd38d4e5862f2ba3ef58de8) - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 optionalDependencies: '@types/node': 18.19.130 fsevents: 2.3.3 @@ -27287,7 +27376,7 @@ snapshots: picomatch: 4.0.4 postcss: 8.5.8 rolldown: 1.0.0-rc.12(@emnapi/core@1.8.1)(@emnapi/runtime@1.8.1) - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 optionalDependencies: '@types/node': 18.19.130 esbuild: 0.27.4 @@ -27398,7 +27487,7 @@ snapshots: std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tinyrainbow: 3.1.0 vite: 7.3.2(@types/node@18.19.130)(jiti@2.6.1)(lightningcss@1.32.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 @@ -27428,7 +27517,7 @@ snapshots: std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tinyrainbow: 3.1.0 vite: 8.0.5(@emnapi/core@1.8.1)(@emnapi/runtime@1.8.1)(@types/node@18.19.130)(esbuild@0.27.4)(jiti@2.6.1)(sugarss@5.0.1(postcss@8.5.8))(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 From 5475edbbc5fb47f2628f0a0433623e53025c2a85 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 15 Apr 2026 09:59:27 +0100 Subject: [PATCH 9/9] Fix layered.sh linking js-sdk incorrectly (#33143) * Simplify layered.sh pnpm link already installs dependencies, this was causing the prepare script to run twice * Improve logging in fetchdep and make linter happier * Fix incorrectly linking js-sdk --- scripts/fetchdep.sh | 22 +++++++++++++--------- scripts/layered.sh | 20 ++++++++++---------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/scripts/fetchdep.sh b/scripts/fetchdep.sh index 1299815bbb..b326c0e6b4 100755 --- a/scripts/fetchdep.sh +++ b/scripts/fetchdep.sh @@ -27,7 +27,10 @@ clone() { then echo "Trying to use $org/$repo#$branch" # Disable auth prompts: https://serverfault.com/a/665959 - GIT_TERMINAL_PROMPT=0 git clone https://github.com/$org/$repo.git $repo --branch "$branch" --depth 1 && exit 0 + if GIT_TERMINAL_PROMPT=0 git clone "https://github.com/$org/$repo.git" "$repo" --branch "$branch" --depth 1; then + git -C "$repo" log -1 + exit 0 + fi fi } @@ -39,7 +42,7 @@ getPRInfo() { apiEndpoint="https://api.github.com/repos/$PR_ORG/$PR_REPO/pulls/$number" - head=$(curl $apiEndpoint | jq -r '.head.label') + head=$(curl "$apiEndpoint" | jq -r '.head.label') fi } @@ -47,16 +50,17 @@ getPRInfo() { # GH API for more info - "fork:branch". Some give us this directly. if [ -n "$PR_NUMBER" ]; then # GitHub - getPRInfo $PR_NUMBER + getPRInfo "$PR_NUMBER" elif [ -n "$REVIEW_ID" ]; then # Netlify - getPRInfo $REVIEW_ID + getPRInfo "$REVIEW_ID" fi # for forks, $head will be in the format "fork:branch", so we split it by ":" # into an array. On non-forks, this has the effect of splitting into a single # element array given ":" shouldn't appear in the head - it'll just be the # branch name. Based on the results, we clone. +# shellcheck disable=SC2206 BRANCH_ARRAY=(${head//:/ }) TRY_ORG=$deforg TRY_BRANCH=${BRANCH_ARRAY[0]} @@ -67,13 +71,13 @@ if [[ "$head" == *":"* ]]; then fi TRY_BRANCH=${BRANCH_ARRAY[1]} fi -clone ${TRY_ORG} $defrepo ${TRY_BRANCH} +clone "$TRY_ORG" "$defrepo" "$TRY_BRANCH" # For merge queue runs we need to extract the temporary branch name # the ref_name will look like `gh-readonly-queue//pr--` if [[ "$GITHUB_EVENT_NAME" == "merge_group" ]]; then withoutPrefix=${GITHUB_REF_NAME#gh-readonly-queue/} - clone $deforg $defrepo ${withoutPrefix%%/pr-*} + clone "$deforg" "$defrepo" "${withoutPrefix%%/pr-*}" fi # Try the target branch of the push or PR, or the branch that was pushed to @@ -83,10 +87,10 @@ if [[ "$GITHUB_EVENT_NAME" == "push" ]]; then base_or_branch=${GITHUB_REF} fi if [ -n "$base_or_branch" ]; then - clone $deforg $defrepo $base_or_branch + clone "$deforg" "$defrepo" "$base_or_branch" fi # Try HEAD which is the branch name in Netlify (not BRANCH which is pull/xxxx/head for PR builds) -clone $deforg $defrepo $HEAD +clone "$deforg" "$defrepo" "$HEAD" # Use the default branch as the last resort. -clone $deforg $defrepo $defbranch +clone "$deforg" "$defrepo" "$defbranch" diff --git a/scripts/layered.sh b/scripts/layered.sh index 6e5c91be29..912ef56a32 100755 --- a/scripts/layered.sh +++ b/scripts/layered.sh @@ -14,7 +14,7 @@ set -ex # for the primary repo (element-web in this case). # Install dependencies -pnpm install --frozen-lockfile +pnpm install --frozen-lockfile $@ # Pass appropriate repo to fetchdep.sh export PR_ORG=element-hq @@ -25,16 +25,16 @@ js_sdk_dep=$(jq -r '.dependencies["matrix-js-sdk"]' < $(pnpm -w root)/../apps/we # Set up the js-sdk first (unless package.json pins a specific version) if [ "$js_sdk_dep" = "github:matrix-org/matrix-js-sdk#develop" ]; then scripts/fetchdep.sh matrix-org matrix-js-sdk develop - pushd matrix-js-sdk - [ -n "$JS_SDK_GITHUB_BASE_REF" ] && git fetch --depth 1 origin $JS_SDK_GITHUB_BASE_REF && git checkout $JS_SDK_GITHUB_BASE_REF - pnpm link - pnpm install --frozen-lockfile - popd - # Link into into element-web - pnpm link matrix-js-sdk + if [ -n "$JS_SDK_GITHUB_BASE_REF" ]; then + git -C matrix-js-sdk fetch --depth 1 origin $JS_SDK_GITHUB_BASE_REF + git -C matrix-js-sdk checkout $JS_SDK_GITHUB_BASE_REF + fi + pnpm -C matrix-js-sdk install --frozen-lockfile --ignore-scripts + + # Link into into element-web & the monorepo + pnpm -C apps/web link ./matrix-js-sdk + pnpm link ./matrix-js-sdk else echo "Skipping matrix-js-sdk fetch and link as package.json pins $js_sdk_dep" fi - -pnpm install --frozen-lockfile $@