diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 74425f25b4..b2c765a9a8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -66,7 +66,7 @@ jobs: run: VERSION=$(scripts/get-version-from-git.sh) yarn build - name: Upload Artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 with: name: webapp-${{ matrix.image }} path: webapp diff --git a/.github/workflows/build_debian.yaml b/.github/workflows/build_debian.yaml index 48c21c9dc5..6ad62f85aa 100644 --- a/.github/workflows/build_debian.yaml +++ b/.github/workflows/build_debian.yaml @@ -62,7 +62,7 @@ jobs: dpkg-gencontrol -v"$VERSION" -ldebian/tmp/DEBIAN/changelog dpkg-deb -Zxz --root-owner-group --build debian/tmp element-web.deb - - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 with: name: element-web.deb path: element-web.deb diff --git a/.github/workflows/build_develop.yml b/.github/workflows/build_develop.yml index a923e1db1d..0915a784c8 100644 --- a/.github/workflows/build_develop.yml +++ b/.github/workflows/build_develop.yml @@ -53,7 +53,7 @@ jobs: - run: mv dist/element-*.tar.gz dist/develop.tar.gz - - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 with: name: webapp path: dist/develop.tar.gz diff --git a/.github/workflows/end-to-end-tests-netlify.yaml b/.github/workflows/end-to-end-tests-netlify.yaml index 049f4ea343..a08efa220b 100644 --- a/.github/workflows/end-to-end-tests-netlify.yaml +++ b/.github/workflows/end-to-end-tests-netlify.yaml @@ -25,7 +25,7 @@ jobs: actions: read steps: - name: Download HTML report - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} run-id: ${{ github.event.workflow_run.id }} diff --git a/.github/workflows/end-to-end-tests.yaml b/.github/workflows/end-to-end-tests.yaml index d2bb8ecd52..df87229cf9 100644 --- a/.github/workflows/end-to-end-tests.yaml +++ b/.github/workflows/end-to-end-tests.yaml @@ -74,7 +74,7 @@ jobs: run: VERSION=$(scripts/get-version-from-git.sh) yarn build - name: Upload Artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 with: name: webapp path: webapp @@ -128,7 +128,7 @@ jobs: repository: element-hq/element-web - name: 📥 Download artifact - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 with: name: webapp path: webapp @@ -172,7 +172,7 @@ jobs: - name: Upload blob report to GitHub Actions Artifacts if: always() - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 with: name: all-blob-reports-${{ matrix.project }}-${{ matrix.runner }} path: blob-report @@ -212,7 +212,7 @@ jobs: - name: Download blob reports from GitHub Actions Artifacts if: inputs.skip != true - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 with: pattern: all-blob-reports-* path: all-blob-reports @@ -228,7 +228,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 - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 with: name: html-report path: playwright-report diff --git a/.github/workflows/netlify.yaml b/.github/workflows/netlify.yaml index ab2433c267..9507567ef6 100644 --- a/.github/workflows/netlify.yaml +++ b/.github/workflows/netlify.yaml @@ -28,7 +28,7 @@ jobs: Exercise caution. Use test accounts. - name: 📥 Download artifact - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} run-id: ${{ github.event.workflow_run.id }} diff --git a/.github/workflows/playwright-image-updates.yaml b/.github/workflows/playwright-image-updates.yaml index 1ce3d767a7..15ea93e19b 100644 --- a/.github/workflows/playwright-image-updates.yaml +++ b/.github/workflows/playwright-image-updates.yaml @@ -32,7 +32,7 @@ jobs: - name: Create Pull Request id: cpr - uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 + uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8 with: token: ${{ secrets.ELEMENT_BOT_TOKEN }} branch: actions/playwright-image-updates diff --git a/.github/workflows/shared-component-visual-tests-netlify.yaml b/.github/workflows/shared-component-visual-tests-netlify.yaml index 816d899836..950dd8febf 100644 --- a/.github/workflows/shared-component-visual-tests-netlify.yaml +++ b/.github/workflows/shared-component-visual-tests-netlify.yaml @@ -27,7 +27,7 @@ jobs: run: "sudo apt-get install -y tree" - name: Download Diffs - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} run-id: ${{ github.event.workflow_run.id }} diff --git a/.github/workflows/shared-component-visual-tests.yaml b/.github/workflows/shared-component-visual-tests.yaml index 1652d58568..ebe821fa28 100644 --- a/.github/workflows/shared-component-visual-tests.yaml +++ b/.github/workflows/shared-component-visual-tests.yaml @@ -60,7 +60,7 @@ jobs: - name: Upload received images & diffs if: always() - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 with: name: received-images path: packages/shared-components/playwright/shared-component-received diff --git a/.github/workflows/static_analysis.yaml b/.github/workflows/static_analysis.yaml index 9f90572371..3ac32ac756 100644 --- a/.github/workflows/static_analysis.yaml +++ b/.github/workflows/static_analysis.yaml @@ -41,8 +41,8 @@ jobs: - name: Typecheck Shared Components run: "yarn --cwd packages/shared-components run lint:types" - i18n_lint: - name: "i18n Check" + i18n_lint_ew: + name: "i18n Check (Element Web)" uses: matrix-org/matrix-web-i18n/.github/workflows/i18n_check.yml@main permissions: pull-requests: read @@ -59,6 +59,15 @@ jobs: devtools|settings|elementCallUrl labs|sliding_sync_description + i18n_lint_shared_components: + name: "i18n Check (Shared Components)" + uses: matrix-org/matrix-web-i18n/.github/workflows/i18n_check.yml@main + permissions: + pull-requests: read + with: + path: "packages/shared-components" + hardcoded-words: "Element" + rethemendex_lint: name: "Rethemendex Check" runs-on: ubuntu-24.04 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f18c33dc0d..a9f6d910de 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -84,7 +84,7 @@ jobs: - name: Upload Artifact if: env.ENABLE_COVERAGE == 'true' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 with: name: coverage-${{ matrix.runner }} path: | @@ -159,7 +159,7 @@ jobs: - name: Upload Artifact if: env.ENABLE_COVERAGE == 'true' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 with: name: coverage-sharedcomponents path: | diff --git a/.github/workflows/triage-move-review-requests.yml b/.github/workflows/triage-move-review-requests.yml index 4d8745f4bd..6933233c0a 100644 --- a/.github/workflows/triage-move-review-requests.yml +++ b/.github/workflows/triage-move-review-requests.yml @@ -9,7 +9,7 @@ jobs: name: Move PRs asking for design review to the design board runs-on: ubuntu-24.04 steps: - - uses: octokit/graphql-action@abaeca7ba4f0325d63b8de7ef943c2418d161b93 # v3.0.0 + - uses: octokit/graphql-action@ddde8ebb2493e79f390e6449c725c21663a67505 # v3.0.2 id: find_team_members with: headers: '{"GraphQL-Features": "projects_next_graphql"}' @@ -52,7 +52,7 @@ jobs: fi env: TEAM: "design" - - uses: octokit/graphql-action@abaeca7ba4f0325d63b8de7ef943c2418d161b93 # v3.0.0 + - uses: octokit/graphql-action@ddde8ebb2493e79f390e6449c725c21663a67505 # v3.0.2 id: add_to_project if: steps.any_matching_reviewers.outputs.match == 'true' with: @@ -76,7 +76,7 @@ jobs: name: Move PRs asking for design review to the design board runs-on: ubuntu-24.04 steps: - - uses: octokit/graphql-action@abaeca7ba4f0325d63b8de7ef943c2418d161b93 # v3.0.0 + - uses: octokit/graphql-action@ddde8ebb2493e79f390e6449c725c21663a67505 # v3.0.2 id: find_team_members with: headers: '{"GraphQL-Features": "projects_next_graphql"}' @@ -119,7 +119,7 @@ jobs: fi env: TEAM: "product" - - uses: octokit/graphql-action@abaeca7ba4f0325d63b8de7ef943c2418d161b93 # v3.0.0 + - uses: octokit/graphql-action@ddde8ebb2493e79f390e6449c725c21663a67505 # v3.0.2 id: add_to_project if: steps.any_matching_reviewers.outputs.match == 'true' with: diff --git a/.github/workflows/update-jitsi.yml b/.github/workflows/update-jitsi.yml index 67e3fb19c5..694393de07 100644 --- a/.github/workflows/update-jitsi.yml +++ b/.github/workflows/update-jitsi.yml @@ -23,7 +23,7 @@ jobs: run: "yarn update:jitsi" - name: Create Pull Request - uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 + uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8 with: token: ${{ secrets.ELEMENT_BOT_TOKEN }} branch: actions/jitsi-update diff --git a/localazy.json b/localazy.json index 7ba5ef2542..669ac657c3 100644 --- a/localazy.json +++ b/localazy.json @@ -18,6 +18,18 @@ "file": "element-web.json", "excludes": ["src/i18n/strings/en_EN.json"], "lang": "${autodetectLang}" + }, + { + "pattern": "packages/shared-components/src/i18n/strings/en_EN.json", + "file": "shared-components.json", + "lang": "inherited" + }, + { + "group": "existing", + "pattern": "packages/shared-components/src/i18n/strings/*.json", + "file": "shared-components.json", + "excludes": ["packages/shared-components/src/i18n/strings/en_EN.json"], + "lang": "${autodetectLang}" } ] }, @@ -27,6 +39,10 @@ { "conditions": "equals: ${file}, element-web.json", "output": "src/i18n/strings/${langLsrUnderscore}.json" + }, + { + "conditions": "equals: ${file}, shared-components.json", + "output": "packages/shared-components/src/i18n/strings/${langLsrUnderscore}.json" } ], "includeSourceLang": "${includeSourceLang|false}", diff --git a/package.json b/package.json index 21a431728e..036480bc82 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "UserFriendlyError" ], "scripts": { - "i18n": "matrix-gen-i18n src res packages/shared-components/src && yarn i18n:sort && yarn i18n:lint", + "i18n": "matrix-gen-i18n src res && yarn i18n:sort && yarn i18n:lint", "i18n:sort": "jq --sort-keys '.' src/i18n/strings/en_EN.json > src/i18n/strings/en_EN.json.tmp && mv src/i18n/strings/en_EN.json.tmp src/i18n/strings/en_EN.json", "i18n:lint": "matrix-i18n-lint && prettier --log-level=silent --write src/i18n/strings/ --ignore-path /dev/null", "i18n:diff": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && yarn i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json", @@ -69,7 +69,7 @@ "postinstall": "patch-package" }, "resolutions": { - "**/pretty-format/react-is": "19.2.1", + "**/pretty-format/react-is": "19.2.3", "@types/react": "19.2.7", "@types/react-dom": "19.2.3", "oidc-client-ts": "3.4.1", @@ -85,7 +85,7 @@ "@element-hq/web-shared-components": "link:packages/shared-components", "@fontsource/fira-code": "^5", "@fontsource/inter": "^5", - "@formatjs/intl-segmenter": "^11.5.7", + "@formatjs/intl-segmenter": "^12.0.0", "@matrix-org/analytics-events": "^0.30.0", "@matrix-org/emojibase-bindings": "^1.5.0", "@matrix-org/react-sdk-module-api": "^2.4.0", @@ -137,7 +137,7 @@ "opus-recorder": "^8.0.3", "pako": "^2.0.3", "png-chunks-extract": "^1.0.0", - "posthog-js": "1.302.2", + "posthog-js": "1.313.0", "qrcode": "1.5.4", "re-resizable": "6.11.2", "react": "^19.0.0", diff --git a/packages/shared-components/.prettierrc.js b/packages/shared-components/.prettierrc.js new file mode 100644 index 0000000000..4954ff865e --- /dev/null +++ b/packages/shared-components/.prettierrc.js @@ -0,0 +1,5 @@ +// Even though this (at time of writing) is identical Element Web's +// .prettierrc.js, shared components needs its own because otherwise +// this refers to element web's copy of eslint-plugin-matrix-org which +// would require element-web's modules to be installed. +module.exports = require("eslint-plugin-matrix-org/.prettierrc.js"); diff --git a/packages/shared-components/.storybook/languageAddon.tsx b/packages/shared-components/.storybook/languageAddon.tsx index e1483738f5..b1474bd308 100644 --- a/packages/shared-components/.storybook/languageAddon.tsx +++ b/packages/shared-components/.storybook/languageAddon.tsx @@ -10,16 +10,14 @@ import { WithTooltip, IconButton, TooltipLinkList } from "storybook/internal/com import React from "react"; import { GlobeIcon } from "@storybook/icons"; -// We can't import `shared/i18n.tsx` directly here. -// The storybook addon doesn't seem to benefit the vite config of storybook and we can't resolve the alias in i18n.tsx. -import json from "../../../webapp/i18n/languages.json"; -const languages = Object.keys(json).filter((lang) => lang !== "default"); +const languages = JSON.parse(process.env.STORYBOOK_LANGUAGES); /** * Returns the title of a language in the user's locale. */ function languageTitle(language: string): string { - return new Intl.DisplayNames([language], { type: "language", style: "short" }).of(language) || language; + const normalisedLang = language.toLowerCase().replace("_", "-"); + return new Intl.DisplayNames([normalisedLang], { type: "language", style: "short" }).of(normalisedLang) || language; } export const languageAddon: Addon = { diff --git a/packages/shared-components/.storybook/main.ts b/packages/shared-components/.storybook/main.ts index efc35752b5..520426b3ed 100644 --- a/packages/shared-components/.storybook/main.ts +++ b/packages/shared-components/.storybook/main.ts @@ -7,12 +7,15 @@ Please see LICENSE files in the repository root for full details. import type { StorybookConfig } from "@storybook/react-vite"; import path from "node:path"; +import fs from "node:fs"; import { nodePolyfills } from "vite-plugin-node-polyfills"; import { mergeConfig } from "vite"; +// Get a list of available languages so the language selector can display them at runtime +const languages = fs.readdirSync("src/i18n/strings").map((f) => f.slice(0, -5)); + const config: StorybookConfig = { stories: ["../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], - staticDirs: ["../../../webapp"], addons: ["@storybook/addon-docs", "@storybook/addon-designs", "@storybook/addon-a11y"], framework: "@storybook/react-vite", core: { @@ -29,8 +32,42 @@ const config: StorybookConfig = { $webapp: path.resolve("../../webapp"), }, }, - // Needed for counterpart to work - plugins: [nodePolyfills({ include: ["process", "util"] })], + plugins: [ + // Needed for counterpart to work + nodePolyfills({ include: ["process", "util"] }), + { + name: "language-middleware", + configureServer(server) { + server.middlewares.use((req, res, next) => { + if (req.url === "/i18n/languages.json") { + // Dynamically generate a languages.json file based on what files are available + const langJson: Record = {}; + for (const lang of languages) { + const normalizedLanguage = lang.toLowerCase().replace("_", "-"); + const languageParts = normalizedLanguage.split("-"); + if (languageParts.length === 2 && languageParts[0] === languageParts[1]) { + langJson[languageParts[0]] = `${lang}.json`; + } else { + langJson[normalizedLanguage] = `${lang}.json`; + } + } + + res.setHeader("Content-Type", "application/json"); + res.end(JSON.stringify(langJson)); + } else if (req.url?.startsWith("/i18n/")) { + // Serve the individual language files, which annoyingly can't be a simple + // static dir because the directory structure in src doesn't match what + // the app requests. + const langFile = req.url.split("/").pop(); + res.setHeader("Content-Type", "application/json"); + fs.createReadStream(`src/i18n/strings/${langFile}`).pipe(res); + } else { + next(); + } + }); + }, + }, + ], server: { allowedHosts: ["localhost", ".docker.internal"], }, @@ -42,5 +79,9 @@ const config: StorybookConfig = { url: "https://element-hq.github.io/compound-web/", }, }, + env: (config) => ({ + ...config, + STORYBOOK_LANGUAGES: JSON.stringify(languages), + }), }; export default config; diff --git a/packages/shared-components/package.json b/packages/shared-components/package.json index e3bba648e0..ea35eb99f8 100644 --- a/packages/shared-components/package.json +++ b/packages/shared-components/package.json @@ -34,8 +34,11 @@ "package.json" ], "scripts": { + "i18n": "matrix-gen-i18n src && yarn i18n:sort && yarn i18n:lint", + "i18n:sort": "jq --sort-keys '.' src/i18n/strings/en_EN.json > src/i18n/strings/en_EN.json.tmp && mv src/i18n/strings/en_EN.json.tmp src/i18n/strings/en_EN.json", + "i18n:lint": "matrix-i18n-lint && prettier --log-level=silent --write src/i18n/strings/ --ignore-path /dev/null", "test": "jest", - "prepare": "patch-package && yarn --cwd ../.. build:res && node scripts/gatherTranslationKeys.ts && vite build", + "prepare": "patch-package && vite build", "storybook": "storybook dev -p 6007", "build-storybook": "storybook build", "lint": "yarn lint:types && yarn lint:js", diff --git a/packages/shared-components/scripts/gatherTranslationKeys.ts b/packages/shared-components/scripts/gatherTranslationKeys.ts deleted file mode 100644 index 37812df33b..0000000000 --- a/packages/shared-components/scripts/gatherTranslationKeys.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2025 Element Creations Ltd. - -SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial -Please see LICENSE files in the repository root for full details. -*/ - -// Gathers all the translation keys from element-web's en_EN.json into a TypeScript type definition file -// that exports a type `TranslationKey` which is a union of all supported translation keys. -// This prevents having to import the json file and make typescript do the work as this results in vite-dts -// generating an import to the json file in the .d.ts which doesn't work at runtime: this way, the type -// gets put into the bundle. -// XXX: It should *not* be in the 'src' directory, being a generated file, but if it isn't then the type -// bundler won't bundle the types and will leave the file as a relative import, which will break. - -import * as fs from "fs"; -import * as path from "path"; -import { dirname } from "node:path"; -import { fileURLToPath } from "node:url"; - -const __dirname = dirname(fileURLToPath(import.meta.url)); -const i18nStringsPath = path.resolve(__dirname, "../../../src/i18n/strings/en_EN.json"); -const outPath = path.resolve(__dirname, "../src/i18nKeys.d.ts"); - -function gatherKeys(obj: any, prefix: string[] = []): string[] { - if (typeof obj !== "object" || obj === null) return []; - let keys: string[] = []; - for (const key of Object.keys(obj)) { - const value = obj[key]; - - // add the path (for both leaves and intermediates as then we include plurals) - keys.push([...prefix, key].join("|")); - if (typeof value === "object" && value !== null) { - // If the value is an object, recurse - keys = keys.concat(gatherKeys(value, [...prefix, key])); - } - } - return keys; -} - -function main() { - const json = JSON.parse(fs.readFileSync(i18nStringsPath, "utf8")); - const keys = gatherKeys(json); - const typeDef = - "/*\n" + - " * Copyright 2025 Element Creations Ltd.\n" + - " *\n" + - " * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\n" + - " * Please see LICENSE files in the repository root for full details.\n" + - " */\n" + - "\n" + - "// This file is auto-generated by gatherTranslationKeys.ts\n" + - "// Do not edit manually.\n\n" + - "export type TranslationKey =\n" + - keys.map((k) => ` | \"${k}\"`).join("\n") + - ";\n"; - fs.mkdirSync(path.dirname(outPath), { recursive: true }); - fs.writeFileSync(outPath, typeDef, "utf8"); - console.log(`Wrote ${keys.length} keys to ${outPath}`); -} - -if (import.meta.url.startsWith("file:")) { - const modulePath = fileURLToPath(import.meta.url); - if (process.argv[1] === modulePath) { - main(); - } -} diff --git a/packages/shared-components/src/@types/i18n.d.ts b/packages/shared-components/src/@types/i18n.d.ts new file mode 100644 index 0000000000..04531d8954 --- /dev/null +++ b/packages/shared-components/src/@types/i18n.d.ts @@ -0,0 +1,14 @@ +/* +Copyright 2025 Element Creations Ltd. + +SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial +Please see LICENSE files in the repository root for full details. +*/ + +import { type TranslationKey as _TranslationKey } from "matrix-web-i18n"; + +import type Translations from "../i18n/strings/en_EN.json"; + +declare global { + type TranslationKey = _TranslationKey; +} diff --git a/packages/shared-components/src/i18n/strings/cs.json b/packages/shared-components/src/i18n/strings/cs.json new file mode 100644 index 0000000000..0ab040edd5 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/cs.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Panel posunu zvuku" + }, + "action": { + "delete": "Smazat", + "dismiss": "Zavřít", + "explore_rooms": "Procházet místnosti", + "pause": "Pozastavit", + "play": "Přehrát", + "search": "Hledání" + }, + "encryption": { + "pinned_identity_changed": "Identita %(displayName)s (%(userId)s) se změnila. Další informace", + "withdraw_verification_action": "Zrušit ověření" + }, + "left_panel": { + "open_dial_pad": "Otevřít číselník" + }, + "time": { + "about_day_ago": "před jedním dnem", + "about_hour_ago": "asi před hodinou", + "about_minute_ago": "před minutou", + "few_seconds_ago": "před pár vteřinami", + "in_about_day": "asi za den", + "in_about_hour": "asi za hodinu", + "in_about_minute": "asi za minutu", + "in_few_seconds": "za pár vteřin", + "in_n_days": "za %(num)s dní", + "in_n_hours": "za %(num)s hodin", + "in_n_minutes": "za %(num)s minut", + "n_days_ago": "před %(num)s dny", + "n_hours_ago": "před %(num)s hodinami", + "n_minutes_ago": "před %(num)s minutami" + }, + "timeline": { + "m.audio": { + "audio_player": "Audio přehrávač", + "error_downloading_audio": "Chyba při stahování audia", + "unnamed_audio": "Nepojmenovaný audio soubor" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/cy.json b/packages/shared-components/src/i18n/strings/cy.json new file mode 100644 index 0000000000..5d490ec948 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/cy.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Bar chwilio sain" + }, + "action": { + "delete": "Dileu", + "dismiss": "Gwrthod", + "explore_rooms": "Archwilio Ystafelloedd", + "pause": "Oedi", + "play": "Chwarae", + "search": "Chwilio" + }, + "encryption": { + "pinned_identity_changed": "Cafodd hunaniaeth (%(userId)s) %(displayName)s ei ailosod. Dysgu rhagor", + "withdraw_verification_action": "Tynnu'r dilysiad yn ôl" + }, + "left_panel": { + "open_dial_pad": "Agor y pad deialu" + }, + "time": { + "about_day_ago": "tua diwrnod yn ôl", + "about_hour_ago": "tua awr yn ol", + "about_minute_ago": "tua munud yn ôl", + "few_seconds_ago": "ychydig eiliadau yn ôl", + "in_about_day": "tua diwrnod o nawr", + "in_about_hour": "tuag awr o hyn", + "in_about_minute": "tua munud o nawr", + "in_few_seconds": "ychydig eiliadau o nawr", + "in_n_days": "%(num)s diwrnod o nawr", + "in_n_hours": "%(num)s awr o nawr", + "in_n_minutes": "%(num)s munud o nawr", + "n_days_ago": "%(num)s diwrnod yn ôl", + "n_hours_ago": "%(num)s awr yn ôl", + "n_minutes_ago": "%(num)s munud yn ôl" + }, + "timeline": { + "m.audio": { + "audio_player": "Chwaraewr sain", + "error_downloading_audio": "Gwall wrth llwytho i lawrsain", + "unnamed_audio": "Sain dienw" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/da.json b/packages/shared-components/src/i18n/strings/da.json new file mode 100644 index 0000000000..39eb6ccfa8 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/da.json @@ -0,0 +1,35 @@ +{ + "a11y": { + "seek_bar_label": "Progressionsmarkør for lydafspiller" + }, + "action": { + "delete": "Slet", + "dismiss": "Afvis", + "explore_rooms": "Udforsk rum", + "pause": "Pausér", + "play": "Afspil", + "search": "Søg" + }, + "time": { + "about_day_ago": "omkring en dag siden", + "about_hour_ago": "for omkring en time siden", + "about_minute_ago": "for omkring et minut siden", + "few_seconds_ago": "for et par sekunder siden", + "in_about_day": "om cirka en dag fra nu", + "in_about_hour": "omkring en time fra nu", + "in_about_minute": "omkring et minut fra nu", + "in_few_seconds": "et par sekunder fra nu", + "in_n_days": "%(num)s dage fra nu", + "in_n_hours": "%(num)s timer fra nu", + "in_n_minutes": "%(num)s minutter fra nu", + "n_days_ago": "%(num)s dage siden", + "n_hours_ago": "%(num)s timer siden", + "n_minutes_ago": "%(num)s minutter siden" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Fejl ved download af lyd", + "unnamed_audio": "Unavngiven lyd" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/de_DE.json b/packages/shared-components/src/i18n/strings/de_DE.json new file mode 100644 index 0000000000..001c64d9bb --- /dev/null +++ b/packages/shared-components/src/i18n/strings/de_DE.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Audio-Suchleiste" + }, + "action": { + "delete": "Löschen", + "dismiss": "Ausblenden", + "explore_rooms": "Chats erkunden", + "pause": "Pausieren", + "play": "Abspielen", + "search": "Suchen" + }, + "encryption": { + "pinned_identity_changed": "%(displayName)s's (%(userId)s) Identität wurde zurückgesetzt. Mehr erfahren ", + "withdraw_verification_action": "Verifizierung zurückziehen" + }, + "left_panel": { + "open_dial_pad": "Wähltastatur öffnen" + }, + "time": { + "about_day_ago": "vor etwa einem Tag", + "about_hour_ago": "vor etwa einer Stunde", + "about_minute_ago": "vor etwa einer Minute", + "few_seconds_ago": "vor ein paar Sekunden", + "in_about_day": "in etwa einem Tag", + "in_about_hour": "in etwa einer Stunde", + "in_about_minute": "in etwa einer Minute", + "in_few_seconds": "in ein paar Sekunden", + "in_n_days": "in %(num)s Tagen", + "in_n_hours": "in %(num)s Stunden", + "in_n_minutes": "In etwa %(num)s Minuten", + "n_days_ago": "vor %(num)s Tagen", + "n_hours_ago": "vor %(num)s Stunden", + "n_minutes_ago": "vor %(num)s Minuten" + }, + "timeline": { + "m.audio": { + "audio_player": "Audio-Player", + "error_downloading_audio": "Fehler beim Herunterladen der Audiodatei", + "unnamed_audio": "Unbenannte Audiodatei" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/el.json b/packages/shared-components/src/i18n/strings/el.json new file mode 100644 index 0000000000..1a9693f88e --- /dev/null +++ b/packages/shared-components/src/i18n/strings/el.json @@ -0,0 +1,35 @@ +{ + "action": { + "delete": "Διαγραφή", + "dismiss": "Απόρριψη", + "explore_rooms": "Εξερευνήστε αίθουσες", + "pause": "Παύση", + "play": "Αναπαραγωγή", + "search": "Αναζήτηση" + }, + "left_panel": { + "open_dial_pad": "Άνοιγμα πληκτρολογίου κλήσης" + }, + "time": { + "about_day_ago": "σχεδόν μία μέρα πριν", + "about_hour_ago": "σχεδόν μία ώρα πριν", + "about_minute_ago": "σχεδόν ένα λεπτό πριν", + "few_seconds_ago": "λίγα δευτερόλεπτα πριν", + "in_about_day": "περίπου μια μέρα από τώρα", + "in_about_hour": "περίπου μία ώρα από τώρα", + "in_about_minute": "περίπου ένα λεπτό από τώρα", + "in_few_seconds": "λίγα δευτερόλεπτα από τώρα", + "in_n_days": "%(num)s μέρες από τώρα", + "in_n_hours": "%(num)s ώρες από τώρα", + "in_n_minutes": "%(num)s λεπτά από τώρα", + "n_days_ago": "%(num)s μέρες πριν", + "n_hours_ago": "%(num)s ώρες πριν", + "n_minutes_ago": "%(num)s λεπτά πριν" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Σφάλμα λήψης ήχου", + "unnamed_audio": "Ήχος χωρίς όνομα" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/en_EN.json b/packages/shared-components/src/i18n/strings/en_EN.json new file mode 100644 index 0000000000..d5521dfcf8 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/en_EN.json @@ -0,0 +1,44 @@ +{ + "a11y": { + "seek_bar_label": "Audio seek bar" + }, + "action": { + "delete": "Delete", + "dismiss": "Dismiss", + "explore_rooms": "Explore rooms", + "pause": "Pause", + "play": "Play", + "search": "Search" + }, + "left_panel": { + "open_dial_pad": "Open dial pad" + }, + "room": { + "status_bar": { + "history_visible": "This room has been configured so that new members can read history. Learn More" + } + }, + "time": { + "about_day_ago": "about a day ago", + "about_hour_ago": "about an hour ago", + "about_minute_ago": "about a minute ago", + "few_seconds_ago": "a few seconds ago", + "in_about_day": "about a day from now", + "in_about_hour": "about an hour from now", + "in_about_minute": "about a minute from now", + "in_few_seconds": "a few seconds from now", + "in_n_days": "%(num)s days from now", + "in_n_hours": "%(num)s hours from now", + "in_n_minutes": "%(num)s minutes from now", + "n_days_ago": "%(num)s days ago", + "n_hours_ago": "%(num)s hours ago", + "n_minutes_ago": "%(num)s minutes ago" + }, + "timeline": { + "m.audio": { + "audio_player": "Audio player", + "error_downloading_audio": "Error downloading audio", + "unnamed_audio": "Unnamed audio" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/eo.json b/packages/shared-components/src/i18n/strings/eo.json new file mode 100644 index 0000000000..83c7485327 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/eo.json @@ -0,0 +1,35 @@ +{ + "action": { + "delete": "Forigi", + "dismiss": "Rezigni", + "explore_rooms": "Esplori ĉambrojn", + "pause": "Paŭzigi", + "play": "Ludi", + "search": "Serĉi" + }, + "left_panel": { + "open_dial_pad": "Malfermi ciferplaton" + }, + "time": { + "about_day_ago": "antaŭ ĉirkaŭ tago", + "about_hour_ago": "antaŭ ĉirkaŭ horo", + "about_minute_ago": "antaŭ ĉirkaŭ minuto", + "few_seconds_ago": "antaŭ kelkaj sekundoj", + "in_about_day": "ĉirkaŭ tagon de nun", + "in_about_hour": "ĉirkaŭ horon de nun", + "in_about_minute": "ĉirkaŭ minuton de nun", + "in_few_seconds": "kelkajn sekundojn de nun", + "in_n_days": "%(num)s tagojn de nun", + "in_n_hours": "%(num)s horojn de nun", + "in_n_minutes": "%(num)s minutojn de nun", + "n_days_ago": "antaŭ %(num)s tagoj", + "n_hours_ago": "antaŭ %(num)s horoj", + "n_minutes_ago": "antaŭ %(num)s minutoj" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Eraris elŝuto de sondosiero", + "unnamed_audio": "Sennoma sondosiero" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/es.json b/packages/shared-components/src/i18n/strings/es.json new file mode 100644 index 0000000000..3efb5cdeea --- /dev/null +++ b/packages/shared-components/src/i18n/strings/es.json @@ -0,0 +1,39 @@ +{ + "a11y": { + "seek_bar_label": "Barra de búsqueda de audio" + }, + "action": { + "delete": "Borrar", + "dismiss": "Omitir", + "explore_rooms": "Explorar salas", + "pause": "Pausar", + "play": "Reproducir", + "search": "Buscar" + }, + "left_panel": { + "open_dial_pad": "Abrir teclado numérico" + }, + "time": { + "about_day_ago": "hace aprox. un día", + "about_hour_ago": "hace aprox. una hora", + "about_minute_ago": "hace aproximadamente un minuto", + "few_seconds_ago": "hace unos segundos", + "in_about_day": "dentro de un día", + "in_about_hour": "dentro de una hora", + "in_about_minute": "dentro de un minuto", + "in_few_seconds": "dentro de unos segundos", + "in_n_days": "dentro de %(num)s días", + "in_n_hours": "dentro de %(num)s horas", + "in_n_minutes": "dentro de %(num)s minutos", + "n_days_ago": "hace %(num)s días", + "n_hours_ago": "hace %(num)s horas", + "n_minutes_ago": "hace %(num)s minutos" + }, + "timeline": { + "m.audio": { + "audio_player": "Reproductor de audio", + "error_downloading_audio": "Error al descargar el audio", + "unnamed_audio": "Audio sin título" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/et.json b/packages/shared-components/src/i18n/strings/et.json new file mode 100644 index 0000000000..b9ad6f1d6d --- /dev/null +++ b/packages/shared-components/src/i18n/strings/et.json @@ -0,0 +1,48 @@ +{ + "a11y": { + "seek_bar_label": "Heli kerimisriba" + }, + "action": { + "delete": "Kustuta", + "dismiss": "Loobu", + "explore_rooms": "Tutvu jututubadega", + "pause": "Peata", + "play": "Esita", + "search": "Otsing" + }, + "encryption": { + "pinned_identity_changed": "Kasutaja %(displayName)s (%(userId)s) võrguidentiteet on lähtestatud. Lisateave", + "withdraw_verification_action": "Eemalda verifitseerimine" + }, + "left_panel": { + "open_dial_pad": "Ava numbriklahvistik" + }, + "room": { + "status_bar": { + "history_visible": "See jututuba on seadistatud sel viisil, et uued liikmed saavad lugeda varasemat ajalugu. Lisateave" + } + }, + "time": { + "about_day_ago": "umbes päev tagasi", + "about_hour_ago": "umbes tund aega tagasi", + "about_minute_ago": "umbes minut tagasi", + "few_seconds_ago": "mõni sekund tagasi", + "in_about_day": "umbes päeva pärast", + "in_about_hour": "umbes tunni pärast", + "in_about_minute": "umbes minuti pärast", + "in_few_seconds": "mõne sekundi pärast", + "in_n_days": "%(num)s päeva pärast", + "in_n_hours": "%(num)s tunni pärast", + "in_n_minutes": "%(num)s minuti pärast", + "n_days_ago": "%(num)s päeva tagasi", + "n_hours_ago": "%(num)s tundi tagasi", + "n_minutes_ago": "%(num)s minutit tagasi" + }, + "timeline": { + "m.audio": { + "audio_player": "Meediaesitaja", + "error_downloading_audio": "Helifaili allalaadimine ei õnnestunud", + "unnamed_audio": "Nimetu helifail" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/fa.json b/packages/shared-components/src/i18n/strings/fa.json new file mode 100644 index 0000000000..0871bcdc0b --- /dev/null +++ b/packages/shared-components/src/i18n/strings/fa.json @@ -0,0 +1,29 @@ +{ + "action": { + "delete": "پاک‌کردن", + "dismiss": "نادیده بگیر", + "explore_rooms": "جستجو در اتاق ها", + "pause": "متوقف‌کردن", + "play": "اجرا کردن", + "search": "جستجو" + }, + "left_panel": { + "open_dial_pad": "باز کردن صفحه شماره‌گیری" + }, + "time": { + "about_day_ago": "حدود یک روز قبل", + "about_hour_ago": "حدود یک ساعت قبل", + "about_minute_ago": "حدود یک دقیقه قبل", + "few_seconds_ago": "چند ثانیه قبل", + "in_about_day": "حدود یک روز دیگر", + "in_about_hour": "حدود یک ساعت دیگر", + "in_about_minute": "حدود یک دقیقه دیگر", + "in_few_seconds": "چند ثانیه دیگر", + "in_n_days": "%(num)s روز دیگر", + "in_n_hours": "%(num)s ساعت دیگر", + "in_n_minutes": "%(num)s دقیقه دیگر", + "n_days_ago": "%(num)s روز قبل", + "n_hours_ago": "%(num)s ساعت قبل", + "n_minutes_ago": "%(num)s دقیقه قبل" + } +} diff --git a/packages/shared-components/src/i18n/strings/fi.json b/packages/shared-components/src/i18n/strings/fi.json new file mode 100644 index 0000000000..d178b17307 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/fi.json @@ -0,0 +1,38 @@ +{ + "a11y": { + "seek_bar_label": "Äänen siirtymispalkki" + }, + "action": { + "delete": "Poista", + "dismiss": "Hylkää", + "explore_rooms": "Selaa huoneita", + "pause": "Keskeytä", + "play": "Toista", + "search": "Haku" + }, + "left_panel": { + "open_dial_pad": "Avaa näppäimistö" + }, + "time": { + "about_day_ago": "noin päivä sitten", + "about_hour_ago": "noin tunti sitten", + "about_minute_ago": "noin minuutti sitten", + "few_seconds_ago": "muutama sekunti sitten", + "in_about_day": "noin päivä sitten", + "in_about_hour": "noin tunti sitten", + "in_about_minute": "noin minuutti sitten", + "in_few_seconds": "muutama sekunti sitten", + "in_n_days": "%(num)s päivää sitten", + "in_n_hours": "%(num)s tuntia sitten", + "in_n_minutes": "%(num)s minuuttia sitten", + "n_days_ago": "%(num)s päivää sitten", + "n_hours_ago": "%(num)s tuntia sitten", + "n_minutes_ago": "%(num)s minuuttia sitten" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Virhe ääntä ladattaessa", + "unnamed_audio": "Nimetön ääni" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/fr.json b/packages/shared-components/src/i18n/strings/fr.json new file mode 100644 index 0000000000..ba6be68e4f --- /dev/null +++ b/packages/shared-components/src/i18n/strings/fr.json @@ -0,0 +1,48 @@ +{ + "a11y": { + "seek_bar_label": "Barre de recherche audio" + }, + "action": { + "delete": "Supprimer", + "dismiss": "Ignorer", + "explore_rooms": "Parcourir les salons", + "pause": "Pause", + "play": "Lecture", + "search": "Rechercher" + }, + "encryption": { + "pinned_identity_changed": "L'identité de %(displayName)s (%(userId)s) semble avoir changé. En savoir plus", + "withdraw_verification_action": "Révoquer la vérification" + }, + "left_panel": { + "open_dial_pad": "Ouvrir le pavé de numérotation" + }, + "room": { + "status_bar": { + "history_visible": "Ce salon a été configuré afin que les nouveaux membres puissent lire l'historique. En savori plus" + } + }, + "time": { + "about_day_ago": "il y a environ un jour", + "about_hour_ago": "il y a environ une heure", + "about_minute_ago": "il y a environ une minute", + "few_seconds_ago": "il y a quelques secondes", + "in_about_day": "dans un jour environ", + "in_about_hour": "dans une heure environ", + "in_about_minute": "dans une minute environ", + "in_few_seconds": "dans quelques secondes", + "in_n_days": "dans %(num)s jours", + "in_n_hours": "dans %(num)s heures", + "in_n_minutes": "dans %(num)s minutes", + "n_days_ago": "il y a %(num)s jours", + "n_hours_ago": "il y a %(num)s heures", + "n_minutes_ago": "il y a %(num)s minutes" + }, + "timeline": { + "m.audio": { + "audio_player": "Lecteur audio", + "error_downloading_audio": "Erreur lors du téléchargement de l’audio", + "unnamed_audio": "Audio sans nom" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/gl.json b/packages/shared-components/src/i18n/strings/gl.json new file mode 100644 index 0000000000..2acc9ba7ca --- /dev/null +++ b/packages/shared-components/src/i18n/strings/gl.json @@ -0,0 +1,35 @@ +{ + "action": { + "delete": "Eliminar", + "dismiss": "Rexeitar", + "explore_rooms": "Explorar salas", + "pause": "Deter", + "play": "Reproducir", + "search": "Busca" + }, + "left_panel": { + "open_dial_pad": "Abrir marcador" + }, + "time": { + "about_day_ago": "onte", + "about_hour_ago": "fai unha hora", + "about_minute_ago": "fai un minuto", + "few_seconds_ago": "fai uns segundos", + "in_about_day": "foi onte", + "in_about_hour": "fará unha hora", + "in_about_minute": "haberá un minuto", + "in_few_seconds": "hai só uns segundos", + "in_n_days": "fará %(num)s días", + "in_n_hours": "fará %(num)s horas", + "in_n_minutes": "fará %(num)s minutos", + "n_days_ago": "fai %(num)s días", + "n_hours_ago": "fai %(num)s horas", + "n_minutes_ago": "fai %(num)s minutos" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Erro ao descargar o audio", + "unnamed_audio": "Audio sen nome" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/he.json b/packages/shared-components/src/i18n/strings/he.json new file mode 100644 index 0000000000..8d19269362 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/he.json @@ -0,0 +1,27 @@ +{ + "action": { + "delete": "מחק", + "dismiss": "התעלם", + "explore_rooms": "גלה חדרים", + "search": "חפש" + }, + "left_panel": { + "open_dial_pad": "פתח לוח חיוג" + }, + "time": { + "about_day_ago": "בערך לפני יום", + "about_hour_ago": "בערך לפני כשעה", + "about_minute_ago": "לפני בערך דקה", + "few_seconds_ago": "לפני מספר שניות", + "in_about_day": "בערך בעוד יום מעכשיו", + "in_about_hour": "בערך בעוד כשעה", + "in_about_minute": "בערך עוד דקה אחת", + "in_few_seconds": "בעוד מספר שניות מעכשיו", + "in_n_days": "בעוד %(num)s ימים מעכשיו", + "in_n_hours": "בעוד %(num)s שעות", + "in_n_minutes": "בעוד %(num)s דקות", + "n_days_ago": "לפני %(num)s ימים", + "n_hours_ago": "לפני %(num)s שעות", + "n_minutes_ago": "לפני %(num)s דקות" + } +} diff --git a/packages/shared-components/src/i18n/strings/hu.json b/packages/shared-components/src/i18n/strings/hu.json new file mode 100644 index 0000000000..d973968a31 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/hu.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Hang keresősávja" + }, + "action": { + "delete": "Törlés", + "dismiss": "Eltüntetés", + "explore_rooms": "Szobák felderítése", + "pause": "Szünet", + "play": "Lejátszás", + "search": "Keresés" + }, + "encryption": { + "pinned_identity_changed": "Úgy tűnik, hogy %(displayName)s (%(userId)s) személyazonossága megváltozott. További információ", + "withdraw_verification_action": "Ellenőrzés visszavonása" + }, + "left_panel": { + "open_dial_pad": "Számlap megnyitása" + }, + "time": { + "about_day_ago": "egy napja", + "about_hour_ago": "egy órája", + "about_minute_ago": "egy perce", + "few_seconds_ago": "néhány másodperce", + "in_about_day": "egy nap múlva", + "in_about_hour": "egy óra múlva", + "in_about_minute": "egy perc múlva", + "in_few_seconds": "másodpercek múlva", + "in_n_days": "%(num)s nap múlva", + "in_n_hours": "%(num)s óra múlva", + "in_n_minutes": "%(num)s perc múlva", + "n_days_ago": "%(num)s nappal ezelőtt", + "n_hours_ago": "%(num)s órával ezelőtt", + "n_minutes_ago": "%(num)s perccel ezelőtt" + }, + "timeline": { + "m.audio": { + "audio_player": "Hanglejátszó", + "error_downloading_audio": "Hiba a hang letöltésekor", + "unnamed_audio": "Névtelen hang" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/hy.json b/packages/shared-components/src/i18n/strings/hy.json new file mode 100644 index 0000000000..e86dcc54e6 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/hy.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Աուդիո որոնման գոտի" + }, + "action": { + "delete": "Ջնջել", + "dismiss": "Հեռացնել", + "explore_rooms": "Փնտրել սենյակներ", + "pause": "Դադար", + "play": "Միացնել", + "search": "Որոնել" + }, + "encryption": { + "pinned_identity_changed": "%(displayName)s-ի (%(userId)s ) ինքնությունը վերակայվել է։ Իմանալ ավելին", + "withdraw_verification_action": "Հետ կանչել հաստատումը" + }, + "left_panel": { + "open_dial_pad": "Բացեք թվերի հավաքման վահանակը" + }, + "time": { + "about_day_ago": "մոտ մեկ օր առաջ", + "about_hour_ago": "մոտ մեկ ժամ առաջ", + "about_minute_ago": "մոտ մեկ րոպե առաջ", + "few_seconds_ago": "մի քանի վայրկյան առաջ", + "in_about_day": "մոտ մեկ օր անց", + "in_about_hour": "մոտ մեկ ժամ անց", + "in_about_minute": "մոտ մեկ րոպե անց", + "in_few_seconds": "մի քանի վայրկյան անց", + "in_n_days": "%(num)s օր անց", + "in_n_hours": "%(num)s ժամ անց", + "in_n_minutes": "%(num)s րոպեներ անց", + "n_days_ago": "%(num)s օր առաջ", + "n_hours_ago": "%(num)s ժամ առաջ", + "n_minutes_ago": "%(num)s րոպե առաջ" + }, + "timeline": { + "m.audio": { + "audio_player": "Աուդիո նվագարկիչ", + "error_downloading_audio": "Աուդիո ներբեռնման սխալ", + "unnamed_audio": "Անանուն աուդիո" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/id.json b/packages/shared-components/src/i18n/strings/id.json new file mode 100644 index 0000000000..0d7da0a39e --- /dev/null +++ b/packages/shared-components/src/i18n/strings/id.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Bilah pencarian audio" + }, + "action": { + "delete": "Hapus", + "dismiss": "Abaikan", + "explore_rooms": "Jelajahi ruangan", + "pause": "Jeda", + "play": "Mainkan", + "search": "Cari" + }, + "encryption": { + "pinned_identity_changed": "Identitas (%(userId)s) %(displayName)s tampaknya telah berubah. Pelajari lebih lanjut", + "withdraw_verification_action": "Tolak verifikasi" + }, + "left_panel": { + "open_dial_pad": "Buka tombol penyetel" + }, + "time": { + "about_day_ago": "1 hari yang lalu", + "about_hour_ago": "1 jam yang lalu", + "about_minute_ago": "1 menit yang lalu", + "few_seconds_ago": "beberapa detik yang lalu", + "in_about_day": "1 hari dari sekarang", + "in_about_hour": "1 jam dari sekarang", + "in_about_minute": "1 menit dari sekarang", + "in_few_seconds": "beberapa detik dari sekarang", + "in_n_days": "%(num)s hari dari sekarang", + "in_n_hours": "%(num)s jam dari sekarang", + "in_n_minutes": "%(num)s dari sekarang", + "n_days_ago": "%(num)s hari yang lalu", + "n_hours_ago": "%(num)s jam yang lalu", + "n_minutes_ago": "%(num)s menit yang lalu" + }, + "timeline": { + "m.audio": { + "audio_player": "Pemutar audio", + "error_downloading_audio": "Terjadi kesalahan mengunduh audio", + "unnamed_audio": "Audio tidak dinamai" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/is.json b/packages/shared-components/src/i18n/strings/is.json new file mode 100644 index 0000000000..284bb0df06 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/is.json @@ -0,0 +1,35 @@ +{ + "action": { + "delete": "Eyða", + "dismiss": "Hunsa", + "explore_rooms": "Kanna spjallrásir", + "pause": "Bið", + "play": "Spila", + "search": "Leita" + }, + "left_panel": { + "open_dial_pad": "Opna talnaborð" + }, + "time": { + "about_day_ago": "fyrir um degi síðan", + "about_hour_ago": "fyrir um klukkustund síðan", + "about_minute_ago": "fyrir um það bil mínútu síðan", + "few_seconds_ago": "fyrir örfáum sekúndum síðan", + "in_about_day": "eftir um það bil einn dag", + "in_about_hour": "eftir um það bil klukkustund", + "in_about_minute": "eftir um það bil mínútu", + "in_few_seconds": "eftir nokkrar sekúndur", + "in_n_days": "eftir %(num)s daga", + "in_n_hours": "eftir %(num)s klukkustundir", + "in_n_minutes": "eftir %(num)s mínútur", + "n_days_ago": "fyrir %(num)s dögum síðan", + "n_hours_ago": "fyrir %(num)s klukkustundum síðan", + "n_minutes_ago": "fyrir %(num)s mínútum síðan" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Villa við að sækja hljóð", + "unnamed_audio": "Nafnlaust hljóð" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/it.json b/packages/shared-components/src/i18n/strings/it.json new file mode 100644 index 0000000000..523d5798c1 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/it.json @@ -0,0 +1,38 @@ +{ + "a11y": { + "seek_bar_label": "Barra di ricerca audio" + }, + "action": { + "delete": "Elimina", + "dismiss": "Chiudi", + "explore_rooms": "Esplora stanze", + "pause": "Pausa", + "play": "Riproduci", + "search": "Cerca" + }, + "left_panel": { + "open_dial_pad": "Apri tastierino" + }, + "time": { + "about_day_ago": "circa un giorno fa", + "about_hour_ago": "circa un'ora fa", + "about_minute_ago": "circa un minuto fa", + "few_seconds_ago": "pochi secondi fa", + "in_about_day": "circa un giorno da adesso", + "in_about_hour": "circa un'ora da adesso", + "in_about_minute": "circa un minuto da adesso", + "in_few_seconds": "pochi secondi da adesso", + "in_n_days": "%(num)s giorni da adesso", + "in_n_hours": "%(num)s ore da adesso", + "in_n_minutes": "%(num)s minuti da adesso", + "n_days_ago": "%(num)s giorni fa", + "n_hours_ago": "%(num)s ore fa", + "n_minutes_ago": "%(num)s minuti fa" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Errore di scaricamento dell'audio", + "unnamed_audio": "Audio senza nome" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/ja.json b/packages/shared-components/src/i18n/strings/ja.json new file mode 100644 index 0000000000..e803863efe --- /dev/null +++ b/packages/shared-components/src/i18n/strings/ja.json @@ -0,0 +1,35 @@ +{ + "action": { + "delete": "削除", + "dismiss": "閉じる", + "explore_rooms": "ルームを探す", + "pause": "一時停止", + "play": "再生", + "search": "検索" + }, + "left_panel": { + "open_dial_pad": "ダイヤルパッドを開く" + }, + "time": { + "about_day_ago": "約1日前", + "about_hour_ago": "約1時間前", + "about_minute_ago": "約1分前", + "few_seconds_ago": "数秒前", + "in_about_day": "今から約1日前", + "in_about_hour": "今から約1時間前", + "in_about_minute": "今から約1分前", + "in_few_seconds": "今から数秒前", + "in_n_days": "今から%(num)s日前", + "in_n_hours": "今から%(num)s時間前", + "in_n_minutes": "今から%(num)s分前", + "n_days_ago": "%(num)s日前", + "n_hours_ago": "%(num)s時間前", + "n_minutes_ago": "%(num)s分前" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "音声をダウンロードする際にエラーが発生しました", + "unnamed_audio": "名前のない音声" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/ka.json b/packages/shared-components/src/i18n/strings/ka.json new file mode 100644 index 0000000000..5e7482c72a --- /dev/null +++ b/packages/shared-components/src/i18n/strings/ka.json @@ -0,0 +1,32 @@ +{ + "action": { + "delete": "წაშლა", + "dismiss": "დახურვა", + "explore_rooms": "ოთახების დათავლიერება", + "pause": "პაუზა", + "play": "დაკვრა", + "search": "ძიება" + }, + "time": { + "about_day_ago": "დაახლოებით ერთი დღის წინ", + "about_hour_ago": "დაახლოებით ერთი საათის წინ", + "about_minute_ago": "დაახლოებით ერთი წუთის წინ", + "few_seconds_ago": "რამდენიმე წამის წინ", + "in_about_day": "დაახლოებით ერთი დღის შემდეგ", + "in_about_hour": "დაახლოებით ერთი საათის შემდეგ", + "in_about_minute": "დაახლოებით ერთი წუთის შემდეგ", + "in_few_seconds": "რამდენიმე წამის შემდეგ", + "in_n_days": "%(num)sდღეებიდან", + "in_n_hours": "%(num)sსაათის შემდეგ", + "in_n_minutes": "%(num)sწუთის შემდეგ", + "n_days_ago": "%(num)sდღის წინ", + "n_hours_ago": "%(num)sსაათის წინ", + "n_minutes_ago": "%(num)sწუთის წინ" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "შეცდომა აუდიოს ჩამოტვირთვისას", + "unnamed_audio": "უსახელო აუდიო" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/ko.json b/packages/shared-components/src/i18n/strings/ko.json new file mode 100644 index 0000000000..bac4855636 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/ko.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "오디오 탐색 바" + }, + "action": { + "delete": "삭제", + "dismiss": "버리기", + "explore_rooms": "방 검색", + "pause": "일시중지", + "play": "재생", + "search": "찾기" + }, + "encryption": { + "pinned_identity_changed": "%(displayName)s (%(userId)s)의 신원이 재설정되었습니다. 자세히 알아보기", + "withdraw_verification_action": "인증 취소" + }, + "left_panel": { + "open_dial_pad": "다이얼 패드 열기" + }, + "time": { + "about_day_ago": "약 1일 전", + "about_hour_ago": "약 1 시간 전", + "about_minute_ago": "약 1분 전", + "few_seconds_ago": "몇 초 전", + "in_about_day": "하루 정도 후", + "in_about_hour": "지금부터 한 시간 정도 후에", + "in_about_minute": "지금부터 약 1분 후", + "in_few_seconds": "몇 초 후", + "in_n_days": "지금부터 %(num)s 일 후에", + "in_n_hours": "지금부터 %(num)s 시간 후", + "in_n_minutes": "지금부터 %(num)s분 후", + "n_days_ago": "%(num)s일 전", + "n_hours_ago": "%(num)s 시간 전", + "n_minutes_ago": "%(num)s분 전" + }, + "timeline": { + "m.audio": { + "audio_player": "오디오 플레이어", + "error_downloading_audio": "오디오 다운로드 중 오류 발생", + "unnamed_audio": "이름 없는 오디오" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/lo.json b/packages/shared-components/src/i18n/strings/lo.json new file mode 100644 index 0000000000..9889020efb --- /dev/null +++ b/packages/shared-components/src/i18n/strings/lo.json @@ -0,0 +1,35 @@ +{ + "action": { + "delete": "ລຶບ", + "dismiss": "ຍົກເລີກ", + "explore_rooms": "ການສຳຫຼວດຫ້ອງ", + "pause": "ຢຸດຊົ່ວຄາວ", + "play": "ຫຼິ້ນ", + "search": "ຊອກຫາ" + }, + "left_panel": { + "open_dial_pad": "ເປີດແຜ່ນປັດ" + }, + "time": { + "about_day_ago": "ປະມານຫນຶ່ງມື້ກ່ອນຫນ້ານີ້", + "about_hour_ago": "ປະມານຫນຶ່ງຊົ່ວໂມງກ່ອນຫນ້ານີ້", + "about_minute_ago": "ປະມານໜຶ່ງວິນາທີກ່ອນຫນ້ານີ້", + "few_seconds_ago": "ສອງສາມວິນາທີກ່ອນຫນ້ານີ້", + "in_about_day": "ປະມານນຶ່ງມື້ຈາກນີ້", + "in_about_hour": "ປະມານຫນຶ່ງຊົ່ວໂມງຈາກປະຈຸບັນນີ້", + "in_about_minute": "ປະມານໜຶ່ງນາທີຕໍ່ຈາກນີ້", + "in_few_seconds": "ສອງສາມວິນາທີຕໍ່ຈາກນີ້ໄປ", + "in_n_days": "%(num)s ມື້ຕໍ່ຈາກນີ້", + "in_n_hours": "%(num)s ຊົ່ວໂມງຈາກປະຈຸບັນນີ້", + "in_n_minutes": "%(num)s ນາທີຕໍ່ຈາກນີ້", + "n_days_ago": "%(num)sມື້ກ່ອນຫນ້ານີ້", + "n_hours_ago": "%(num)s ຊົ່ວໂມງກ່ອນ", + "n_minutes_ago": "%(num)s ນາທີກ່ອນ" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "ເກີດຄວາມຜິດພາດໃນການດາວໂຫຼດສຽງ", + "unnamed_audio": "ສຽງບໍ່ມີຊື່" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/lt.json b/packages/shared-components/src/i18n/strings/lt.json new file mode 100644 index 0000000000..de50724d9f --- /dev/null +++ b/packages/shared-components/src/i18n/strings/lt.json @@ -0,0 +1,24 @@ +{ + "action": { + "delete": "Ištrinti", + "dismiss": "Atmesti", + "explore_rooms": "Žvalgyti kambarius", + "search": "Ieškoti" + }, + "time": { + "about_day_ago": "maždaug prieš dieną", + "about_hour_ago": "maždaug prieš valandą", + "about_minute_ago": "maždaug prieš minutę", + "few_seconds_ago": "prieš kelias sekundes", + "in_about_day": "apie dieną nuo dabar", + "in_about_hour": "apie valandą nuo dabar", + "in_about_minute": "apie minutę nuo dabar", + "in_few_seconds": "keletą sekundžių nuo dabar", + "in_n_days": "%(num)s dienas(-ų) nuo dabar", + "in_n_hours": "%(num)s valandas(-ų) nuo dabar", + "in_n_minutes": "%(num)s minutes(-ų) nuo dabar", + "n_days_ago": "prieš %(num)s dienas(-ų)", + "n_hours_ago": "prieš %(num)s valandas(-ų)", + "n_minutes_ago": "prieš %(num)s minutes(-ų)" + } +} diff --git a/packages/shared-components/src/i18n/strings/lv.json b/packages/shared-components/src/i18n/strings/lv.json new file mode 100644 index 0000000000..5f2a3c04f1 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/lv.json @@ -0,0 +1,35 @@ +{ + "a11y": { + "seek_bar_label": "Audio meklēšanas josla" + }, + "action": { + "delete": "Izdzēst", + "dismiss": "Atmest", + "explore_rooms": "Pārlūkot istabas", + "pause": "Pauzēt", + "play": "Atskaņot", + "search": "Meklēt" + }, + "time": { + "about_day_ago": "aptuveni dienu iepriekš", + "about_hour_ago": "aptuveni stundu iepriekš", + "about_minute_ago": "aptuveni minūti iepriekš", + "few_seconds_ago": "pirms dažām sekundēm", + "in_about_day": "aptuveni dienu kopš šī brīža", + "in_about_hour": "aptuveni stundu kopš šī brīža", + "in_about_minute": "aptuveni minūti kopš šī brīža", + "in_few_seconds": "dažas sekundes kopš šī brīža", + "in_n_days": "%(num)s dienas kopš šī brīža", + "in_n_hours": "%(num)s stundas kopš šī brīža", + "in_n_minutes": "%(num)s minūtes kopš šī brīža", + "n_days_ago": "%(num)s dienas iepriekš", + "n_hours_ago": "%(num)s stundas iepriekš", + "n_minutes_ago": "%(num)s minūtes iepriekš" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Kļūda skaņas lejupielādēšanā", + "unnamed_audio": "Nenosaukts audio" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/mg_MG.json b/packages/shared-components/src/i18n/strings/mg_MG.json new file mode 100644 index 0000000000..7960042a96 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/mg_MG.json @@ -0,0 +1,38 @@ +{ + "a11y": { + "seek_bar_label": "Audio mitady bar" + }, + "action": { + "delete": "Esorina", + "dismiss": "Hanario", + "explore_rooms": "Tsidiho ny efitrano", + "pause": "Mihato", + "play": "Milalao", + "search": "Karohina" + }, + "left_panel": { + "open_dial_pad": "Sokafy ny dial pad" + }, + "time": { + "about_day_ago": "Tokony ho iray andro izay", + "about_hour_ago": "Manakaiky adin'iray Teo ho eo", + "about_minute_ago": "Misy iray minitra Teo izay", + "few_seconds_ago": "Segondra vitsy lasa", + "in_about_day": "Anatiny iray andro eo ho eo", + "in_about_hour": "Adiny iray eo ho eo", + "in_about_minute": "Afaka iray minitra eo ho eo", + "in_few_seconds": "Afaka segondra vitsy", + "in_n_days": "%(num) s andro manomboka izao", + "in_n_hours": "% (num) sAnatiny ora vitsivitsy", + "in_n_minutes": "% (Num) sAfaka minitra vitsy", + "n_days_ago": "%(num)s Andro vitsivitsy izay", + "n_hours_ago": "%(num)sOra maromaro", + "n_minutes_ago": "%(Num)s Minitra vitsivitsy izay" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Hadisoana tamin'ny fampidinana feo", + "unnamed_audio": "Audio tsy voatonona anarana" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/nb_NO.json b/packages/shared-components/src/i18n/strings/nb_NO.json new file mode 100644 index 0000000000..3fe3115ee4 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/nb_NO.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Søkelinje for lyd" + }, + "action": { + "delete": "Slett", + "dismiss": "Avvis", + "explore_rooms": "Se alle rom", + "pause": "Pause", + "play": "Spill av", + "search": "Søk" + }, + "encryption": { + "pinned_identity_changed": "%(displayName)ss (%(userId)s) identitet ser ut til å ha endret seg. Finn ut mer", + "withdraw_verification_action": "Trekk tilbake verifisering" + }, + "left_panel": { + "open_dial_pad": "Åpne nummerpanelet" + }, + "time": { + "about_day_ago": "cirka 1 dag siden", + "about_hour_ago": "cirka 1 time siden", + "about_minute_ago": "cirka 1 minutt siden", + "few_seconds_ago": "noen sekunder siden", + "in_about_day": "rundt en dag fra nå", + "in_about_hour": "rundt en time fra nå", + "in_about_minute": "rundt et minutt fra nå", + "in_few_seconds": "om noen sekunder fra nå", + "in_n_days": "%(num)s dager fra nå", + "in_n_hours": "%(num)s timer fra nå", + "in_n_minutes": "%(num)s minutter fra nå", + "n_days_ago": "%(num)s dager siden", + "n_hours_ago": "%(num)s timer siden", + "n_minutes_ago": "%(num)s minutter siden" + }, + "timeline": { + "m.audio": { + "audio_player": "Lydavspiller", + "error_downloading_audio": "Feil ved nedlasting av lyd", + "unnamed_audio": "Ikke navngitt lyd" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/nl.json b/packages/shared-components/src/i18n/strings/nl.json new file mode 100644 index 0000000000..26d4febbbc --- /dev/null +++ b/packages/shared-components/src/i18n/strings/nl.json @@ -0,0 +1,38 @@ +{ + "a11y": { + "seek_bar_label": "Audio zoekbalk" + }, + "action": { + "delete": "Verwijderen", + "dismiss": "Sluiten", + "explore_rooms": "Kamers ontdekken", + "pause": "Pauze", + "play": "Afspelen", + "search": "Zoeken" + }, + "left_panel": { + "open_dial_pad": "Kiestoetsen openen" + }, + "time": { + "about_day_ago": "ongeveer een dag geleden", + "about_hour_ago": "ongeveer een uur geleden", + "about_minute_ago": "ongeveer een minuut geleden", + "few_seconds_ago": "enige tellen geleden", + "in_about_day": "over een dag of zo", + "in_about_hour": "over ongeveer een uur", + "in_about_minute": "over ongeveer een minuut", + "in_few_seconds": "over een paar tellen", + "in_n_days": "over %(num)s dagen", + "in_n_hours": "over %(num)s uur", + "in_n_minutes": "over %(num)s minuten", + "n_days_ago": "%(num)s dagen geleden", + "n_hours_ago": "%(num)s uur geleden", + "n_minutes_ago": "%(num)s minuten geleden" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Fout bij downloaden van audio", + "unnamed_audio": "Naamloze audio" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/pl.json b/packages/shared-components/src/i18n/strings/pl.json new file mode 100644 index 0000000000..b347a1fe02 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/pl.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Pasek wyszukiwania audio" + }, + "action": { + "delete": "Usuń", + "dismiss": "Pomiń", + "explore_rooms": "Przeglądaj pokoje", + "pause": "Wstrzymaj", + "play": "Odtwórz", + "search": "Szukaj" + }, + "encryption": { + "pinned_identity_changed": "Tożsamość %(displayName)s (%(userId)s) została zresetowana. Dowiedz się więcej", + "withdraw_verification_action": "Wycofaj weryfikację" + }, + "left_panel": { + "open_dial_pad": "Otwórz klawiaturę numeryczną" + }, + "time": { + "about_day_ago": "około dzień temu", + "about_hour_ago": "około godziny temu", + "about_minute_ago": "około minuty temu", + "few_seconds_ago": "kilka sekund temu", + "in_about_day": "około dnia od teraz", + "in_about_hour": "około godziny od teraz", + "in_about_minute": "około minuty od teraz", + "in_few_seconds": "za kilka sekund", + "in_n_days": "za %(num)s dni", + "in_n_hours": "za %(num)s godzin", + "in_n_minutes": "za %(num)s minut", + "n_days_ago": "%(num)s dni temu", + "n_hours_ago": "%(num)s godzin temu", + "n_minutes_ago": "%(num)s minut temu" + }, + "timeline": { + "m.audio": { + "audio_player": "Odtwarzacz audio", + "error_downloading_audio": "Wystąpił błąd w trakcie pobierania audio", + "unnamed_audio": "Audio bez nazwy" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/pt.json b/packages/shared-components/src/i18n/strings/pt.json new file mode 100644 index 0000000000..a7b7156f68 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/pt.json @@ -0,0 +1,42 @@ +{ + "a11y": { + "seek_bar_label": "Barra de procura de áudio" + }, + "action": { + "delete": "Apagar", + "dismiss": "Descartar", + "explore_rooms": "Explorar rooms", + "pause": "Pausar", + "play": "Reproduzir", + "search": "Pesquisar" + }, + "encryption": { + "pinned_identity_changed": "A identidade de %(displayName)s (%(userId)s ) foi alterada. Saber mais", + "withdraw_verification_action": "Retirar verificação" + }, + "left_panel": { + "open_dial_pad": "Abre o teclado de marcação" + }, + "time": { + "about_day_ago": "há cerca de um dia", + "about_hour_ago": "há cerca de uma hora", + "about_minute_ago": "há cerca de um minuto", + "few_seconds_ago": "há alguns segundos atrás", + "in_about_day": "daqui a um dia", + "in_about_hour": "daqui a uma hora", + "in_about_minute": "daqui a um minuto", + "in_few_seconds": "daqui a alguns segundos", + "in_n_days": "daqui a %(num)s dias", + "in_n_hours": "daqui a %(num)s horas", + "in_n_minutes": "daqui a %(num)s minutos", + "n_days_ago": "%(num)s dias atrás", + "n_hours_ago": "%(num)s horas atrás", + "n_minutes_ago": "%(num)s minutos atrás" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Erro ao descarregar áudio", + "unnamed_audio": "Áudio sem nome" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/pt_BR.json b/packages/shared-components/src/i18n/strings/pt_BR.json new file mode 100644 index 0000000000..bc13ec499b --- /dev/null +++ b/packages/shared-components/src/i18n/strings/pt_BR.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Barra de busca de áudio" + }, + "action": { + "delete": "Excluir", + "dismiss": "Dispensar", + "explore_rooms": "Explorar salas", + "pause": "Pausar", + "play": "Reproduzir", + "search": "Buscar" + }, + "encryption": { + "pinned_identity_changed": "A identidade de %(displayName)s (%(userId)s) parece ter mudado. Saiba mais", + "withdraw_verification_action": "Retirar verificação" + }, + "left_panel": { + "open_dial_pad": "Abrir o teclado de discagem" + }, + "time": { + "about_day_ago": "há aproximadamente um dia", + "about_hour_ago": "há aproximadamente uma hora", + "about_minute_ago": "há aproximadamente um minuto", + "few_seconds_ago": "há alguns segundos", + "in_about_day": "dentro de aproximadamente um dia", + "in_about_hour": "dentro de aproximadamente uma hora", + "in_about_minute": "dentro de aproximadamente um minuto", + "in_few_seconds": "dentro de alguns segundos", + "in_n_days": "dentro de %(num)s dias", + "in_n_hours": "dentro de %(num)s horas", + "in_n_minutes": "dentro de %(num)s minutos", + "n_days_ago": "há %(num)s dias", + "n_hours_ago": "há %(num)s horas", + "n_minutes_ago": "há %(num)s minutos" + }, + "timeline": { + "m.audio": { + "audio_player": "Reprodutor de Áudio", + "error_downloading_audio": "Erro ao baixar o áudio", + "unnamed_audio": "Áudio sem nome" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/ru.json b/packages/shared-components/src/i18n/strings/ru.json new file mode 100644 index 0000000000..8a9ba1ce43 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/ru.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Панель поиска аудио" + }, + "action": { + "delete": "Удалить", + "dismiss": "Закрыть", + "explore_rooms": "Обзор комнат", + "pause": "Пауза", + "play": "Воспроизведение", + "search": "Поиск" + }, + "encryption": { + "pinned_identity_changed": "Идентичность %(displayName)s (%(userId)s), похоже, изменилась. Узнать больше", + "withdraw_verification_action": "Подтверждение верификации" + }, + "left_panel": { + "open_dial_pad": "Открыть панель набора номера" + }, + "time": { + "about_day_ago": "около суток назад", + "about_hour_ago": "около часа назад", + "about_minute_ago": "около минуты назад", + "few_seconds_ago": "несколько секунд назад", + "in_about_day": "примерно через день", + "in_about_hour": "примерно через час", + "in_about_minute": "примерно через минуту", + "in_few_seconds": "несколько секунд назад", + "in_n_days": "%(num)s дней спустя", + "in_n_hours": "%(num)s часов спустя", + "in_n_minutes": "%(num)s минут спустя", + "n_days_ago": "%(num)s дней назад", + "n_hours_ago": "%(num)s часов назад", + "n_minutes_ago": "%(num)s минут назад" + }, + "timeline": { + "m.audio": { + "audio_player": "Аудиоплеер", + "error_downloading_audio": "Ошибка загрузки аудио", + "unnamed_audio": "Безымянное аудио" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/sk.json b/packages/shared-components/src/i18n/strings/sk.json new file mode 100644 index 0000000000..176e2414c1 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/sk.json @@ -0,0 +1,48 @@ +{ + "a11y": { + "seek_bar_label": "Panel vyhľadávania zvuku" + }, + "action": { + "delete": "Vymazať", + "dismiss": "Zamietnuť", + "explore_rooms": "Preskúmať miestnosti", + "pause": "Pozastaviť", + "play": "Prehrať", + "search": "Hľadať" + }, + "encryption": { + "pinned_identity_changed": "Zdá sa, že identita (%(userId)s) používateľa %(displayName)s bola obnovená. Zistiť viac ", + "withdraw_verification_action": "Zrušiť overenie" + }, + "left_panel": { + "open_dial_pad": "Otvoriť číselník" + }, + "room": { + "status_bar": { + "history_visible": "Správy, ktoré odošlete, budú zdieľané s novými členmi pozvanými do tejto miestnosti. Zistiť viac" + } + }, + "time": { + "about_day_ago": "asi pred jedným dňom", + "about_hour_ago": "približne pred hodinou", + "about_minute_ago": "približne pred minútou", + "few_seconds_ago": "pred pár sekundami", + "in_about_day": "približne o deň", + "in_about_hour": "približne o hodinu", + "in_about_minute": "približne o minútu", + "in_few_seconds": "o pár sekúnd", + "in_n_days": "o %(num)s dní", + "in_n_hours": "o %(num)s hodín", + "in_n_minutes": "o %(num)s minút", + "n_days_ago": "pred %(num)s dňami", + "n_hours_ago": "pred %(num)s hodinami", + "n_minutes_ago": "pred %(num)s minútami" + }, + "timeline": { + "m.audio": { + "audio_player": "Prehrávač zvuku", + "error_downloading_audio": "Chyba pri sťahovaní zvuku", + "unnamed_audio": "Nepomenovaný zvukový záznam" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/sq.json b/packages/shared-components/src/i18n/strings/sq.json new file mode 100644 index 0000000000..64e80a6300 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/sq.json @@ -0,0 +1,35 @@ +{ + "action": { + "delete": "Fshije", + "dismiss": "Mos e merr parasysh", + "explore_rooms": "Eksploroni dhoma", + "pause": "Ndalesë", + "play": "Luaje", + "search": "Kërkoni" + }, + "left_panel": { + "open_dial_pad": "Hap butona numrash" + }, + "time": { + "about_day_ago": "rreth një ditë më parë", + "about_hour_ago": "rreth një orë më parë", + "about_minute_ago": "rreth një minutë më parë", + "few_seconds_ago": "pak sekonda më parë", + "in_about_day": "rreth një ditë nga tani", + "in_about_hour": "rreth një orë nga tani", + "in_about_minute": "rreth një minutë nga tani", + "in_few_seconds": "pak sekonda nga tani", + "in_n_days": "%(num)s ditë nga tani", + "in_n_hours": "%(num)s orë nga tani", + "in_n_minutes": "%(num)s minuta nga tani", + "n_days_ago": "%(num)s ditë më parë", + "n_hours_ago": "%(num)s orë më parë", + "n_minutes_ago": "%(num)s minuta më parë" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Gabim në shkarkim audioje", + "unnamed_audio": "Audio pa emër" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/sv.json b/packages/shared-components/src/i18n/strings/sv.json new file mode 100644 index 0000000000..628a16c747 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/sv.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Förloppsfält för ljud" + }, + "action": { + "delete": "Radera", + "dismiss": "Avvisa", + "explore_rooms": "Utforska rum", + "pause": "Pausa", + "play": "Spela", + "search": "Sök" + }, + "encryption": { + "pinned_identity_changed": "%(displayName)ss (%(userId)s ) identitet verkar ha ändrats. Läs mer", + "withdraw_verification_action": "Återkalla verifieringen" + }, + "left_panel": { + "open_dial_pad": "Öppna knappsats" + }, + "time": { + "about_day_ago": "cirka en dag sedan", + "about_hour_ago": "cirka en timme sedan", + "about_minute_ago": "cirka en minut sedan", + "few_seconds_ago": "några sekunder sedan", + "in_about_day": "om cirka en dag", + "in_about_hour": "om cirka en timme", + "in_about_minute": "om cirka en minut", + "in_few_seconds": "om några sekunder", + "in_n_days": "om %(num)s dagar", + "in_n_hours": "om %(num)s timmar", + "in_n_minutes": "om %(num)s minuter", + "n_days_ago": "%(num)s dagar sedan", + "n_hours_ago": "%(num)s timmar sedan", + "n_minutes_ago": "%(num)s minuter sedan" + }, + "timeline": { + "m.audio": { + "audio_player": "Ljudspelare", + "error_downloading_audio": "Fel vid nedladdning av ljud", + "unnamed_audio": "Namnlöst ljud" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/tr.json b/packages/shared-components/src/i18n/strings/tr.json new file mode 100644 index 0000000000..415182ba7e --- /dev/null +++ b/packages/shared-components/src/i18n/strings/tr.json @@ -0,0 +1,42 @@ +{ + "a11y": { + "seek_bar_label": "Ses arama çubuğu" + }, + "action": { + "delete": "Sil", + "dismiss": "Kapat", + "explore_rooms": "Odaları keşfet", + "pause": "Durdur", + "play": "Oynat", + "search": "Ara" + }, + "encryption": { + "pinned_identity_changed": "%(displayName)s'ın (%(userId)s) kimliği değişmiş gibi görünüyor. Daha fazla bilgi ", + "withdraw_verification_action": "Doğrulamayı iptal et" + }, + "left_panel": { + "open_dial_pad": "Arama tuşlarını aç" + }, + "time": { + "about_day_ago": "yaklaşık bir gün önce", + "about_hour_ago": "yaklaşık bir saat önce", + "about_minute_ago": "yaklaşık bir dakika önce", + "few_seconds_ago": "bir kaç saniye önce", + "in_about_day": "şu andan itibaren yaklaşık bir gün", + "in_about_hour": "şu andan itibaren yaklaşık bir saat", + "in_about_minute": "şu andan itibaren yaklaşık bir dakika", + "in_few_seconds": "şu andan itibaren bir kaç saniye", + "in_n_days": "şu andan itibaren %(num)s gün", + "in_n_hours": "şu andan itibaren %(num)s saat", + "in_n_minutes": "şu andan itibaren %(num)s dakika", + "n_days_ago": "%(num)s gün önce", + "n_hours_ago": "%(num)s saat önce", + "n_minutes_ago": "%(num)s dakika önce" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Ses dosyası indirilirken hata oluştu", + "unnamed_audio": "İsimsiz ses" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/uk.json b/packages/shared-components/src/i18n/strings/uk.json new file mode 100644 index 0000000000..8aa0eaf334 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/uk.json @@ -0,0 +1,43 @@ +{ + "a11y": { + "seek_bar_label": "Панель гортання аудіо" + }, + "action": { + "delete": "Видалити", + "dismiss": "Відхилити", + "explore_rooms": "Каталог кімнат", + "pause": "Призупинити", + "play": "Відтворити", + "search": "Пошук" + }, + "encryption": { + "pinned_identity_changed": "Ідентичність %(displayName)s (%(userId)s) скинуто. Докладніше", + "withdraw_verification_action": "Відкликати верифікацію" + }, + "left_panel": { + "open_dial_pad": "Відкрити номеронабирач" + }, + "time": { + "about_day_ago": "близько доби тому", + "about_hour_ago": "близько години тому", + "about_minute_ago": "близько хвилини тому", + "few_seconds_ago": "Декілька секунд тому", + "in_about_day": "приблизно через день", + "in_about_hour": "приблизно через годину", + "in_about_minute": "приблизно через хвилинку", + "in_few_seconds": "декілька секунд тому", + "in_n_days": "%(num)s днів по тому", + "in_n_hours": "%(num)s годин по тому", + "in_n_minutes": "%(num)s хвилин по тому", + "n_days_ago": "%(num)s днів тому", + "n_hours_ago": "%(num)s годин тому", + "n_minutes_ago": "%(num)s хвилин тому" + }, + "timeline": { + "m.audio": { + "audio_player": "Звуковий програвач", + "error_downloading_audio": "Помилка завантаження аудіо", + "unnamed_audio": "Аудіо без назви" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/vi.json b/packages/shared-components/src/i18n/strings/vi.json new file mode 100644 index 0000000000..edb065ffe8 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/vi.json @@ -0,0 +1,35 @@ +{ + "action": { + "delete": "Xoá", + "dismiss": "Bỏ qua", + "explore_rooms": "Khám phá các phòng", + "pause": "Tạm dừng", + "play": "Chạy", + "search": "Tìm kiếm" + }, + "left_panel": { + "open_dial_pad": "Mở bàn phím quay số" + }, + "time": { + "about_day_ago": "khoảng một ngày trước", + "about_hour_ago": "khoảng một giờ trước", + "about_minute_ago": "khoảng một phút trước", + "few_seconds_ago": "vài giây trước", + "in_about_day": "khoảng một ngày kể từ bây giờ", + "in_about_hour": "khoảng một giờ kể từ bây giờ", + "in_about_minute": "khoảng một phút kể từ bây giờ", + "in_few_seconds": "một vài giây kể từ bây giờ", + "in_n_days": "%(num)s ngày kể từ bây giờ", + "in_n_hours": "%(num)s giờ kể từ bây giờ", + "in_n_minutes": "%(num)s phút kể từ bây giờ", + "n_days_ago": "%(num)s ngày trước", + "n_hours_ago": "%(num)s giờ trước", + "n_minutes_ago": "%(num)s phút trước" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "Lỗi khi tải xuống âm thanh", + "unnamed_audio": "Âm thanh không tên" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/zh_Hans.json b/packages/shared-components/src/i18n/strings/zh_Hans.json new file mode 100644 index 0000000000..7377fbbf45 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/zh_Hans.json @@ -0,0 +1,35 @@ +{ + "action": { + "delete": "删除", + "dismiss": "忽略", + "explore_rooms": "查找房间", + "pause": "暂停", + "play": "播放", + "search": "搜索" + }, + "left_panel": { + "open_dial_pad": "打开拨号键盘" + }, + "time": { + "about_day_ago": "约一天前", + "about_hour_ago": "约一小时前", + "about_minute_ago": "约一分钟前", + "few_seconds_ago": "数秒前", + "in_about_day": "从现在开始约一天", + "in_about_hour": "从现在开始约一小时", + "in_about_minute": "从现在开始约一分钟", + "in_few_seconds": "从现在开始数秒", + "in_n_days": "从现在开始%(num)s天", + "in_n_hours": "从现在开始%(num)s小时", + "in_n_minutes": "从现在开始%(num)s分钟", + "n_days_ago": "%(num)s天前", + "n_hours_ago": "%(num)s小时前", + "n_minutes_ago": "%(num)s分钟前" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "下载音频时出错", + "unnamed_audio": "未命名的音频" + } + } +} diff --git a/packages/shared-components/src/i18n/strings/zh_Hant.json b/packages/shared-components/src/i18n/strings/zh_Hant.json new file mode 100644 index 0000000000..8f5e3ab9b3 --- /dev/null +++ b/packages/shared-components/src/i18n/strings/zh_Hant.json @@ -0,0 +1,35 @@ +{ + "action": { + "delete": "刪除", + "dismiss": "關閉", + "explore_rooms": "探索聊天室", + "pause": "暫停", + "play": "播放", + "search": "搜尋" + }, + "left_panel": { + "open_dial_pad": "開啟撥號鍵盤" + }, + "time": { + "about_day_ago": "大約一天前", + "about_hour_ago": "大約一小時前", + "about_minute_ago": "大約一分鐘前", + "few_seconds_ago": "數秒前", + "in_about_day": "從現在開始大約一天", + "in_about_hour": "從現在開始大約一小時", + "in_about_minute": "從現在開始大約一分鐘", + "in_few_seconds": "從現在開始數秒鐘", + "in_n_days": "從現在開始 %(num)s 天", + "in_n_hours": "從現在開始 %(num)s 小時", + "in_n_minutes": "從現在開始 %(num)s 分鐘", + "n_days_ago": "%(num)s 天前", + "n_hours_ago": "%(num)s 小時前", + "n_minutes_ago": "%(num)s 分鐘前" + }, + "timeline": { + "m.audio": { + "error_downloading_audio": "下載音訊時發生錯誤", + "unnamed_audio": "未命名的音訊" + } + } +} diff --git a/packages/shared-components/src/index.ts b/packages/shared-components/src/index.ts index 849634e9da..346f92ef35 100644 --- a/packages/shared-components/src/index.ts +++ b/packages/shared-components/src/index.ts @@ -36,7 +36,3 @@ export * from "./utils/I18nApi"; export * from "./viewmodel"; export * from "./useMockedViewModel"; export * from "./useViewModel"; - -// i18n (we must export this directly in order to not confuse the type bundler, it seems, -// otherwise it will leave it as a relative import rather than bundling it) -export type * from "./i18nKeys.d.ts"; diff --git a/packages/shared-components/src/test/setupTests.ts b/packages/shared-components/src/test/setupTests.ts index 43ffc0c071..516a5028bb 100644 --- a/packages/shared-components/src/test/setupTests.ts +++ b/packages/shared-components/src/test/setupTests.ts @@ -8,7 +8,7 @@ Please see LICENSE files in the repository root for full details. import fetchMock from "fetch-mock-jest"; import { setLanguage } from "../../src/utils/i18n"; -import en from "../../../../src/i18n/strings/en_EN.json"; +import en from "../i18n/strings/en_EN.json"; export function setupLanguageMock(): void { fetchMock diff --git a/packages/shared-components/src/utils/I18nApi.test.ts b/packages/shared-components/src/utils/I18nApi.test.ts index 2b3431f07c..75c31a7f7c 100644 --- a/packages/shared-components/src/utils/I18nApi.test.ts +++ b/packages/shared-components/src/utils/I18nApi.test.ts @@ -5,14 +5,13 @@ * Please see LICENSE files in the repository root for full details. */ -import { type TranslationKey } from "../i18nKeys"; import { I18nApi } from "./I18nApi"; describe("I18nApi", () => { it("can register a translation and use it", () => { const i18n = new I18nApi(); i18n.register({ - "hello.world": { + ["hello.world" as TranslationKey]: { en: "Hello, World!", }, }); diff --git a/packages/shared-components/src/utils/I18nApi.ts b/packages/shared-components/src/utils/I18nApi.ts index 20d641f5ce..df474e2775 100644 --- a/packages/shared-components/src/utils/I18nApi.ts +++ b/packages/shared-components/src/utils/I18nApi.ts @@ -9,7 +9,6 @@ import { type I18nApi as II18nApi, type Variables, type Translations } from "@el import { humanizeTime } from "./humanize"; import { _t, getLocale, registerTranslations } from "./i18n"; -import { type TranslationKey } from "../i18nKeys"; export class I18nApi implements II18nApi { /** @@ -24,10 +23,11 @@ export class I18nApi implements II18nApi { */ public register(translations: Partial): void { const langs: Record> = {}; + for (const key in translations) { - for (const lang in translations[key]) { + for (const lang in translations[key as keyof Translations]) { langs[lang] = langs[lang] || {}; - langs[lang][key] = translations[key][lang]; + langs[lang][key] = translations[key as keyof Translations]![lang]; } } diff --git a/packages/shared-components/src/utils/i18n.tsx b/packages/shared-components/src/utils/i18n.tsx index 2ce1f78005..d3cf396087 100644 --- a/packages/shared-components/src/utils/i18n.tsx +++ b/packages/shared-components/src/utils/i18n.tsx @@ -25,13 +25,11 @@ import React from "react"; import { KEY_SEPARATOR } from "matrix-web-i18n"; import counterpart from "counterpart"; -import type { TranslationKey } from "../index"; - -// @ts-ignore - $webapp is a webpack resolve alias pointing to the output directory, see webpack config -import webpackLangJsonUrl from "$webapp/i18n/languages.json"; - export { KEY_SEPARATOR, normalizeLanguageKey, getNormalizedLanguageKeys } from "matrix-web-i18n"; +// Path where we load language files from (the index plus translations for each language) +// The filename is appended to this, so a relative path here will result in a fetch for +// a relative URL. const i18nFolder = "i18n/"; // Control whether to also return original, untranslated strings @@ -421,13 +419,7 @@ async function getLanguage(langPath: string): Promise { } export async function getLangsJson(): Promise { - let url: string; - if (typeof webpackLangJsonUrl === "string") { - // in Jest this 'url' isn't a URL, so just fall through - url = webpackLangJsonUrl; - } else { - url = i18nFolder + "languages.json"; - } + const url = i18nFolder + "languages.json"; const res = await fetch(url, { method: "GET" }); diff --git a/packages/shared-components/yarn.lock b/packages/shared-components/yarn.lock index ef3e8702d3..6eb17d9052 100644 --- a/packages/shared-components/yarn.lock +++ b/packages/shared-components/yarn.lock @@ -353,273 +353,150 @@ dependencies: tslib "^2.4.0" -"@esbuild/aix-ppc64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c" - integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA== - "@esbuild/aix-ppc64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz#521cbd968dcf362094034947f76fa1b18d2d403c" integrity sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw== -"@esbuild/android-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752" - integrity sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg== - "@esbuild/android-arm64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz#61ea550962d8aa12a9b33194394e007657a6df57" integrity sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA== -"@esbuild/android-arm@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a" - integrity sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg== - "@esbuild/android-arm@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.2.tgz#554887821e009dd6d853f972fde6c5143f1de142" integrity sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA== -"@esbuild/android-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16" - integrity sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg== - "@esbuild/android-x64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.2.tgz#a7ce9d0721825fc578f9292a76d9e53334480ba2" integrity sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A== -"@esbuild/darwin-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz#79197898ec1ff745d21c071e1c7cc3c802f0c1fd" - integrity sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg== - "@esbuild/darwin-arm64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz#2cb7659bd5d109803c593cfc414450d5430c8256" integrity sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg== -"@esbuild/darwin-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e" - integrity sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA== - "@esbuild/darwin-x64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz#e741fa6b1abb0cd0364126ba34ca17fd5e7bf509" integrity sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA== -"@esbuild/freebsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe" - integrity sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg== - "@esbuild/freebsd-arm64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz#2b64e7116865ca172d4ce034114c21f3c93e397c" integrity sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g== -"@esbuild/freebsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3" - integrity sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ== - "@esbuild/freebsd-x64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz#e5252551e66f499e4934efb611812f3820e990bb" integrity sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA== -"@esbuild/linux-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977" - integrity sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ== - "@esbuild/linux-arm64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz#dc4acf235531cd6984f5d6c3b13dbfb7ddb303cb" integrity sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw== -"@esbuild/linux-arm@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9" - integrity sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw== - "@esbuild/linux-arm@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz#56a900e39240d7d5d1d273bc053daa295c92e322" integrity sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw== -"@esbuild/linux-ia32@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0" - integrity sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA== - "@esbuild/linux-ia32@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz#d4a36d473360f6870efcd19d52bbfff59a2ed1cc" integrity sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w== -"@esbuild/linux-loong64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0" - integrity sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng== - "@esbuild/linux-loong64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz#fcf0ab8c3eaaf45891d0195d4961cb18b579716a" integrity sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg== -"@esbuild/linux-mips64el@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd" - integrity sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw== - "@esbuild/linux-mips64el@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz#598b67d34048bb7ee1901cb12e2a0a434c381c10" integrity sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw== -"@esbuild/linux-ppc64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869" - integrity sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA== - "@esbuild/linux-ppc64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz#3846c5df6b2016dab9bc95dde26c40f11e43b4c0" integrity sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ== -"@esbuild/linux-riscv64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6" - integrity sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w== - "@esbuild/linux-riscv64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz#173d4475b37c8d2c3e1707e068c174bb3f53d07d" integrity sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA== -"@esbuild/linux-s390x@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663" - integrity sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg== - "@esbuild/linux-s390x@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz#f7a4790105edcab8a5a31df26fbfac1aa3dacfab" integrity sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w== -"@esbuild/linux-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306" - integrity sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw== - "@esbuild/linux-x64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz#2ecc1284b1904aeb41e54c9ddc7fcd349b18f650" integrity sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA== -"@esbuild/netbsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4" - integrity sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg== - "@esbuild/netbsd-arm64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz#e2863c2cd1501845995cb11adf26f7fe4be527b0" integrity sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw== -"@esbuild/netbsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076" - integrity sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ== - "@esbuild/netbsd-x64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz#93f7609e2885d1c0b5a1417885fba8d1fcc41272" integrity sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA== -"@esbuild/openbsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd" - integrity sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A== - "@esbuild/openbsd-arm64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz#a1985604a203cdc325fd47542e106fafd698f02e" integrity sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA== -"@esbuild/openbsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679" - integrity sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw== - "@esbuild/openbsd-x64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz#8209e46c42f1ffbe6e4ef77a32e1f47d404ad42a" integrity sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg== -"@esbuild/openharmony-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d" - integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg== - "@esbuild/openharmony-arm64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz#8fade4441893d9cc44cbd7dcf3776f508ab6fb2f" integrity sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag== -"@esbuild/sunos-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6" - integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w== - "@esbuild/sunos-x64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz#980d4b9703a16f0f07016632424fc6d9a789dfc2" integrity sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg== -"@esbuild/win32-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323" - integrity sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg== - "@esbuild/win32-arm64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz#1c09a3633c949ead3d808ba37276883e71f6111a" integrity sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg== -"@esbuild/win32-ia32@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267" - integrity sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ== - "@esbuild/win32-ia32@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz#1b1e3a63ad4bef82200fef4e369e0fff7009eee5" integrity sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ== -"@esbuild/win32-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5" - integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA== - "@esbuild/win32-x64@0.27.2": version "0.27.2" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz#9e585ab6086bef994c6e8a5b3a0481219ada862b" integrity sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ== -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.7.0": +"@eslint-community/eslint-utils@^4.2.0": version "4.9.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3" integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== dependencies: eslint-visitor-keys "^3.4.3" +"@eslint-community/eslint-utils@^4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" + integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== + dependencies: + eslint-visitor-keys "^3.4.3" + "@eslint-community/regexpp@^4.6.1": version "4.12.1" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" @@ -984,13 +861,12 @@ "@types/yargs" "^17.0.33" chalk "^4.1.2" -"@joshwooding/vite-plugin-react-docgen-typescript@0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.6.1.tgz#f630b93ed13d5d07483c0ead42db793053b364a9" - integrity sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw== +"@joshwooding/vite-plugin-react-docgen-typescript@^0.6.3": + version "0.6.3" + resolved "https://registry.yarnpkg.com/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.6.3.tgz#cc371b00b0c4f5a74e20da5c125a3529d379983b" + integrity sha512-9TGZuAX+liGkNKkwuo3FYJu7gHWT0vkBcf7GkOe7s7fmC19XwH/4u5u7sDIFrMooe558ORcmuBvBz7Ur5PlbHw== dependencies: - glob "^10.0.0" - magic-string "^0.30.0" + glob "^11.1.0" react-docgen-typescript "^2.2.2" "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": @@ -1212,115 +1088,130 @@ estree-walker "^2.0.2" picomatch "^4.0.2" -"@rollup/rollup-android-arm-eabi@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz#7e478b66180c5330429dd161bf84dad66b59c8eb" - integrity sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w== +"@rollup/rollup-android-arm-eabi@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz#76e0fef6533b3ce313f969879e61e8f21f0eeb28" + integrity sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg== -"@rollup/rollup-android-arm64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz#2b025510c53a5e3962d3edade91fba9368c9d71c" - integrity sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w== +"@rollup/rollup-android-arm64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz#d3cfc675a40bbdec97bda6d7fe3b3b05f0e1cd93" + integrity sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg== -"@rollup/rollup-darwin-arm64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz#3577c38af68ccf34c03e84f476bfd526abca10a0" - integrity sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA== +"@rollup/rollup-darwin-arm64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz#eb912b8f59dd47c77b3c50a78489013b1d6772b4" + integrity sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg== -"@rollup/rollup-darwin-x64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz#2bf5f2520a1f3b551723d274b9669ba5b75ed69c" - integrity sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ== +"@rollup/rollup-darwin-x64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz#e7d0839fdfd1276a1d34bc5ebbbd0dfd7d0b81a0" + integrity sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ== -"@rollup/rollup-freebsd-arm64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz#4bb9cc80252564c158efc0710153c71633f1927c" - integrity sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w== +"@rollup/rollup-freebsd-arm64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz#7ff8118760f7351e48fd0cd3717ff80543d6aac8" + integrity sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg== -"@rollup/rollup-freebsd-x64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz#2301289094d49415a380cf942219ae9d8b127440" - integrity sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q== +"@rollup/rollup-freebsd-x64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz#49d330dadbda1d4e9b86b4a3951b59928a9489a9" + integrity sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw== -"@rollup/rollup-linux-arm-gnueabihf@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz#1d03d776f2065e09fc141df7d143476e94acca88" - integrity sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw== +"@rollup/rollup-linux-arm-gnueabihf@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz#98c5f1f8b9776b4a36e466e2a1c9ed1ba52ef1b6" + integrity sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ== -"@rollup/rollup-linux-arm-musleabihf@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz#8623de0e040b2fd52a541c602688228f51f96701" - integrity sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg== +"@rollup/rollup-linux-arm-musleabihf@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz#b9acecd3672e742f70b0c8a94075c816a91ff040" + integrity sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg== -"@rollup/rollup-linux-arm64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz#ce2d1999bc166277935dde0301cde3dd0417fb6e" - integrity sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w== +"@rollup/rollup-linux-arm64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz#7a6ab06651bc29e18b09a50ed1a02bc972977c9b" + integrity sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ== -"@rollup/rollup-linux-arm64-musl@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz#88c2523778444da952651a2219026416564a4899" - integrity sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A== +"@rollup/rollup-linux-arm64-musl@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz#3c8c9072ba4a4d4ef1156b85ab9a2cbb57c1fad0" + integrity sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA== -"@rollup/rollup-linux-loong64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz#578ca2220a200ac4226c536c10c8cc6e4f276714" - integrity sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g== +"@rollup/rollup-linux-loong64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz#17a7af13530f4e4a7b12cd26276c54307a84a8b0" + integrity sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g== -"@rollup/rollup-linux-ppc64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz#aa338d3effd4168a20a5023834a74ba2c3081293" - integrity sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw== +"@rollup/rollup-linux-loong64-musl@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz#5cd7a900fd7b077ecd753e34a9b7ff1157fe70c1" + integrity sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw== -"@rollup/rollup-linux-riscv64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz#16ba582f9f6cff58119aa242782209b1557a1508" - integrity sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g== +"@rollup/rollup-linux-ppc64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz#03a097e70243ddf1c07b59d3c20f38e6f6800539" + integrity sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw== -"@rollup/rollup-linux-riscv64-musl@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz#e404a77ebd6378483888b8064c703adb011340ab" - integrity sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A== +"@rollup/rollup-linux-ppc64-musl@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz#a5389873039d4650f35b4fa060d286392eb21a94" + integrity sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw== -"@rollup/rollup-linux-s390x-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz#92ad52d306227c56bec43d96ad2164495437ffe6" - integrity sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg== +"@rollup/rollup-linux-riscv64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz#789e60e7d6e2b76132d001ffb24ba80007fb17d0" + integrity sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw== -"@rollup/rollup-linux-x64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz#fd0dea3bb9aa07e7083579f25e1c2285a46cb9fa" - integrity sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w== +"@rollup/rollup-linux-riscv64-musl@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz#3556fa88d139282e9a73c337c9a170f3c5fe7aa4" + integrity sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg== -"@rollup/rollup-linux-x64-musl@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz#37a3efb09f18d555f8afc490e1f0444885de8951" - integrity sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q== +"@rollup/rollup-linux-s390x-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz#c085995b10143c16747a67f1a5487512b2ff04b2" + integrity sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg== -"@rollup/rollup-openharmony-arm64@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz#c489bec9f4f8320d42c9b324cca220c90091c1f7" - integrity sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw== +"@rollup/rollup-linux-x64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz#9563a5419dd2604841bad31a39ccfdd2891690fb" + integrity sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg== -"@rollup/rollup-win32-arm64-msvc@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz#152832b5f79dc22d1606fac3db946283601b7080" - integrity sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw== +"@rollup/rollup-linux-x64-musl@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz#691bb06e6269a8959c13476b0cd2aa7458facb31" + integrity sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w== -"@rollup/rollup-win32-ia32-msvc@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz#54d91b2bb3bf3e9f30d32b72065a4e52b3a172a5" - integrity sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA== +"@rollup/rollup-openbsd-x64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz#223e71224746a59ce6d955bbc403577bb5a8be9d" + integrity sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg== -"@rollup/rollup-win32-x64-gnu@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz#df9df03e61a003873efec8decd2034e7f135c71e" - integrity sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg== +"@rollup/rollup-openharmony-arm64@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz#0817e5d8ecbfeb8b7939bf58f8ce3c9dd67fce77" + integrity sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw== -"@rollup/rollup-win32-x64-msvc@4.53.3": - version "4.53.3" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz#38ae84f4c04226c1d56a3b17296ef1e0460ecdfe" - integrity sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ== +"@rollup/rollup-win32-arm64-msvc@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz#de56d8f2013c84570ef5fb917aae034abda93e4a" + integrity sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g== + +"@rollup/rollup-win32-ia32-msvc@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz#659aff5244312475aeea2c9479a6c7d397b517bf" + integrity sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA== + +"@rollup/rollup-win32-x64-gnu@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz#2cb09549cbb66c1b979f9238db6dd454cac14a88" + integrity sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg== + +"@rollup/rollup-win32-x64-msvc@4.55.1": + version "4.55.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz#f79437939020b83057faf07e98365b1fa51c458b" + integrity sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw== "@rushstack/node-core-library@5.17.0": version "5.17.0" @@ -1405,46 +1296,46 @@ "@sinonjs/commons" "^3.0.1" "@storybook/addon-a11y@^10.0.7": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/addon-a11y/-/addon-a11y-10.1.5.tgz#9fc95df597243d0617a4d6f36d4534f949474988" - integrity sha512-dMUrkuQyvDfD6SdvV7F7cbjRrhHN0kqCNhRfg1i1IJuLuck6kiALpx8176KhWBcAkN/0J/1V75n7+F9YU/JlPA== + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/addon-a11y/-/addon-a11y-10.1.11.tgz#841c80aa9c9d913e07ffd8fd9622dc25757153ba" + integrity sha512-3sr6HmcDgW1+TQAV9QtWBE3HlGyfFXVZY3RECTNLNH6fRC+rYQCItisvQIVxQpyftLSQ8EAMN9JQzs495MjWNg== dependencies: "@storybook/global" "^5.0.0" axe-core "^4.2.0" "@storybook/addon-designs@^11.0.1": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@storybook/addon-designs/-/addon-designs-11.1.0.tgz#c5d363d43b386a4fd6d9c1745b13e95a89a08761" - integrity sha512-i9lnUJ9x+UwThUpIjgg7QWvadhwmQ1ZuqcrTFe12giqyyYJKM6hdrUEuxGgSOrz3pkmDV/Bypq3G5ehwIDdKiw== + version "11.1.1" + resolved "https://registry.yarnpkg.com/@storybook/addon-designs/-/addon-designs-11.1.1.tgz#54ab51526959f7f8c4cb832ee6e5fa8e418dedce" + integrity sha512-1KAmTzoW/qw4RfR8uft3pBgsdWHoQiMp9rt+nzhFLEBPd1Ru3YiTnVL/JBEiJkGXsQfQxMnAYRRwYgf+HTr4yw== dependencies: "@figspec/react" "^2.0.0" "@storybook/addon-docs@^10.0.7": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-10.1.5.tgz#52bce4eed90240fc2b133caec1131962697c865a" - integrity sha512-2FfqFrfEeaKv8OerZCWt1b+dm7N/nizv1G2CnTZfWJ0TKxbPDH6kffAqC9lMnT3xAZjDWiBLdnVx2oouKdmSvw== + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-10.1.11.tgz#8b8bb3e53a10577e1029a84e69034b79da426479" + integrity sha512-Jwm291Fhim2eVcZIVlkG1B2skb0ZI9oru6nqMbJxceQZlvZmcIa4oxvS1oaMTKw2DJnCv97gLm57P/YvRZ8eUg== dependencies: "@mdx-js/react" "^3.0.0" - "@storybook/csf-plugin" "10.1.5" + "@storybook/csf-plugin" "10.1.11" "@storybook/icons" "^2.0.0" - "@storybook/react-dom-shim" "10.1.5" + "@storybook/react-dom-shim" "10.1.11" react "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" react-dom "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" ts-dedent "^2.0.0" -"@storybook/builder-vite@10.1.5": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/builder-vite/-/builder-vite-10.1.5.tgz#27b11a0fb583e342cd041ea1eded7d012a0c278a" - integrity sha512-5alpNa+TQXK1zp9MeovUK/yIUkZqpIFUScUer6cYgidI96Boovn7OXt5oXQ8CqqpzuEtgCvz44TzCmgZoGv41g== +"@storybook/builder-vite@10.1.11": + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/builder-vite/-/builder-vite-10.1.11.tgz#877746967f9465e91ecf794f2bcec913321215e6" + integrity sha512-MMD09Ap7FyzDfWG961pkIMv/w684XXe1bBEi+wCEpHxvrgAd3j3A9w/Rqp9Am2uRDPCEdi1QgSzS3SGW3aGThQ== dependencies: - "@storybook/csf-plugin" "10.1.5" + "@storybook/csf-plugin" "10.1.11" "@vitest/mocker" "3.2.4" ts-dedent "^2.0.0" -"@storybook/csf-plugin@10.1.5": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-10.1.5.tgz#8d147fa82c19e348991bbad88c1af8ef56a9d2a3" - integrity sha512-v+D7PVRkNUHznfoQg8yqpLWZIIbPddqHDSi1oBGdegF0Kv/lVsGqTZGRLroApsMu7BLwLhpcMID6ofxlfftWKg== +"@storybook/csf-plugin@10.1.11": + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-10.1.11.tgz#27f3166f3fe1bb708b61ece4141ce400dc11ad1d" + integrity sha512-Ant0NhgqHKzQsseeVTSetZCuDHHs0W2HRkHt51Kg/sUl0T/sDtfVA+fWZT8nGzGZqYSFkxqYPWjauPmIhPtaRw== dependencies: unplugin "^2.3.5" @@ -1458,33 +1349,33 @@ resolved "https://registry.yarnpkg.com/@storybook/icons/-/icons-2.0.1.tgz#1bd351db1d33bfccbbafa7b64fb413168f1a6616" integrity sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg== -"@storybook/react-dom-shim@10.1.5": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-10.1.5.tgz#e39c169b093594de88dcb0c59b797ec23028ef0c" - integrity sha512-CsXcq26wINUgYP8KnfSuS60B10/Ag34YdcnWIEl9hM5UtTQ65WYJ9fVFqpzfnQrkpgRMd7iQjtmUhCe+4umnHg== +"@storybook/react-dom-shim@10.1.11": + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-10.1.11.tgz#8921d4fe0f579bd1f451d54ae4a9a9d71d1d5a3c" + integrity sha512-o8WPhRlZbORUWG9lAgDgJP0pi905VHJUFJr1Kp8980gHqtlemtnzjPxKy5vFwj6glNhAlK8SS8OOYzWP7hloTQ== "@storybook/react-vite@^10.0.7": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/react-vite/-/react-vite-10.1.5.tgz#9da7bbb0b860526da51fa3d50993934b593588b3" - integrity sha512-27RiCVw5QZ/f9fXS8sGaPHuWkbHSoS66ifeakxHgbkbIXjVI4M6pWB7NUj49MwU1YUMOpB0T8KasvyMZzv/UPA== + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/react-vite/-/react-vite-10.1.11.tgz#aff3728ca284f4ed3ae0fd2891b5da7897edb3a3" + integrity sha512-qh1BCD25nIoiDfqwha+qBkl7pcG4WuzM+c8tsE63YEm8AFIbNKg5K8lVUoclF+4CpFz7IwBpWe61YUTDfp+91w== dependencies: - "@joshwooding/vite-plugin-react-docgen-typescript" "0.6.1" + "@joshwooding/vite-plugin-react-docgen-typescript" "^0.6.3" "@rollup/pluginutils" "^5.0.2" - "@storybook/builder-vite" "10.1.5" - "@storybook/react" "10.1.5" + "@storybook/builder-vite" "10.1.11" + "@storybook/react" "10.1.11" empathic "^2.0.0" magic-string "^0.30.0" react-docgen "^8.0.0" resolve "^1.22.8" tsconfig-paths "^4.2.0" -"@storybook/react@10.1.5": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-10.1.5.tgz#0f6a1ec5c4338d3604d6e957d0f53f7ddf9a2e6a" - integrity sha512-M8fR7WVs79fPJHwRZxkz4XzIfzs/bN0heWdZX0D4iRjeIcY4nLM/tyalCcQDrGgrSJbgAAf4xd7KXaZzaZSAqA== +"@storybook/react@10.1.11": + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-10.1.11.tgz#365662c8db7822508dec5ae17b848dd8c9b1ab9c" + integrity sha512-rmMGmEwBaM2YpB8oDk2moM0MNjNMqtwyoPPZxjyruY9WVhYca8EDPGKEdRzUlb4qZJsTgLi7VU4eqg6LD/mL3Q== dependencies: "@storybook/global" "^5.0.0" - "@storybook/react-dom-shim" "10.1.5" + "@storybook/react-dom-shim" "10.1.11" react-docgen "^8.0.2" "@storybook/test-runner@^0.24.1": @@ -1638,9 +1529,9 @@ redent "^3.0.0" "@testing-library/react@^16.3.0": - version "16.3.0" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-16.3.0.tgz#3a85bb9bdebf180cd76dba16454e242564d598a6" - integrity sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw== + version "16.3.1" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-16.3.1.tgz#60a9f1f6a930399d9e41b506a8bf68dbf4831fe8" + integrity sha512-gr4KtAWqIOQoucWYD/f6ki+j5chXfcPc74Col/6poTyqTmn7zRmodWahWRCp8tYd+GMqBonw6hstNzqjbs6gjw== dependencies: "@babel/runtime" "^7.12.5" @@ -1869,64 +1760,64 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/project-service@8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.49.0.tgz#ce220525c88cb2d23792b391c07e14cb9697651a" - integrity sha512-/wJN0/DKkmRUMXjZUXYZpD1NEQzQAAn9QWfGwo+Ai8gnzqH7tvqS7oNVdTjKqOcPyVIdZdyCMoqN66Ia789e7g== +"@typescript-eslint/project-service@8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.52.0.tgz#5fb4c16af4eda6d74c70cbc62f5d3f77b96e4cbe" + integrity sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.49.0" - "@typescript-eslint/types" "^8.49.0" - debug "^4.3.4" + "@typescript-eslint/tsconfig-utils" "^8.52.0" + "@typescript-eslint/types" "^8.52.0" + debug "^4.4.3" -"@typescript-eslint/scope-manager@8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.49.0.tgz#a3496765b57fb48035d671174552e462e5bffa63" - integrity sha512-npgS3zi+/30KSOkXNs0LQXtsg9ekZ8OISAOLGWA/ZOEn0ZH74Ginfl7foziV8DT+D98WfQ5Kopwqb/PZOaIJGg== +"@typescript-eslint/scope-manager@8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz#9884ff690fad30380ccabfb08af1ac200af6b4e5" + integrity sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA== dependencies: - "@typescript-eslint/types" "8.49.0" - "@typescript-eslint/visitor-keys" "8.49.0" + "@typescript-eslint/types" "8.52.0" + "@typescript-eslint/visitor-keys" "8.52.0" -"@typescript-eslint/tsconfig-utils@8.49.0", "@typescript-eslint/tsconfig-utils@^8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.49.0.tgz#857777c8e35dd1e564505833d8043f544442fbf4" - integrity sha512-8prixNi1/6nawsRYxet4YOhnbW+W9FK/bQPxsGB1D3ZrDzbJ5FXw5XmzxZv82X3B+ZccuSxo/X8q9nQ+mFecWA== +"@typescript-eslint/tsconfig-utils@8.52.0", "@typescript-eslint/tsconfig-utils@^8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.52.0.tgz#0296751c22ed05c83787a6eaec65ae221bd8b8ed" + integrity sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg== -"@typescript-eslint/types@8.49.0", "@typescript-eslint/types@^8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.49.0.tgz#c1bd3ebf956d9e5216396349ca23c58d74f06aee" - integrity sha512-e9k/fneezorUo6WShlQpMxXh8/8wfyc+biu6tnAqA81oWrEic0k21RHzP9uqqpyBBeBKu4T+Bsjy9/b8u7obXQ== +"@typescript-eslint/types@8.52.0", "@typescript-eslint/types@^8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.52.0.tgz#1eb0a16b324824bc23b89d109a267c38c9213c4a" + integrity sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg== -"@typescript-eslint/typescript-estree@8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.49.0.tgz#99c5a53275197ccb4e849786dad68344e9924135" - integrity sha512-jrLdRuAbPfPIdYNppHJ/D0wN+wwNfJ32YTAm10eJVsFmrVpXQnDWBn8niCSMlWjvml8jsce5E/O+86IQtTbJWA== +"@typescript-eslint/typescript-estree@8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz#2ad7721c671be2127951286cb7f44c4ce55b0591" + integrity sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ== dependencies: - "@typescript-eslint/project-service" "8.49.0" - "@typescript-eslint/tsconfig-utils" "8.49.0" - "@typescript-eslint/types" "8.49.0" - "@typescript-eslint/visitor-keys" "8.49.0" - debug "^4.3.4" - minimatch "^9.0.4" - semver "^7.6.0" + "@typescript-eslint/project-service" "8.52.0" + "@typescript-eslint/tsconfig-utils" "8.52.0" + "@typescript-eslint/types" "8.52.0" + "@typescript-eslint/visitor-keys" "8.52.0" + debug "^4.4.3" + minimatch "^9.0.5" + semver "^7.7.3" tinyglobby "^0.2.15" - ts-api-utils "^2.1.0" + ts-api-utils "^2.4.0" "@typescript-eslint/utils@^8.8.1": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.49.0.tgz#43b3b91d30afd6f6114532cf0b228f1790f43aff" - integrity sha512-N3W7rJw7Rw+z1tRsHZbK395TWSYvufBXumYtEGzypgMUthlg0/hmCImeA8hgO2d2G4pd7ftpxxul2J8OdtdaFA== + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.52.0.tgz#b249be8264899b80d996fa353b4b84da4662f962" + integrity sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ== dependencies: - "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.49.0" - "@typescript-eslint/types" "8.49.0" - "@typescript-eslint/typescript-estree" "8.49.0" + "@eslint-community/eslint-utils" "^4.9.1" + "@typescript-eslint/scope-manager" "8.52.0" + "@typescript-eslint/types" "8.52.0" + "@typescript-eslint/typescript-estree" "8.52.0" -"@typescript-eslint/visitor-keys@8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.49.0.tgz#8e450cc502c0d285cad9e84d400cf349a85ced6c" - integrity sha512-LlKaciDe3GmZFphXIc79THF/YYBugZ7FS1pO581E/edlVVNbZKDy93evqmrfQ9/Y4uN0vVhX4iuchq26mK/iiA== +"@typescript-eslint/visitor-keys@8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz#50361c48a6302676230fe498f80f6decce4bf673" + integrity sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ== dependencies: - "@typescript-eslint/types" "8.49.0" + "@typescript-eslint/types" "8.52.0" eslint-visitor-keys "^4.2.1" "@ungap/structured-clone@^1.2.0", "@ungap/structured-clone@^1.3.0": @@ -2544,9 +2435,9 @@ base64-js@^1.3.1: integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== baseline-browser-mapping@^2.9.0: - version "2.9.5" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.5.tgz#47f9549e0be1a84cd16651ac4c3b7d87a71408e6" - integrity sha512-D5vIoztZOq1XM54LUdttJVc96ggEsIfju2JBvht06pSzpckp3C7HReun67Bghzrtdsq9XdMGbSSB3v3GhMNmAA== + version "2.9.11" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz#53724708c8db5f97206517ecfe362dbe5181deea" + integrity sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ== bcrypt-pbkdf@^1.0.2: version "1.0.2" @@ -2793,9 +2684,9 @@ camelcase@^6.3.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001759: - version "1.0.30001760" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz#bdd1960fafedf8d5f04ff16e81460506ff9b798f" - integrity sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw== + version "1.0.30001762" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz#e4dbfeda63d33258cdde93e53af2023a13ba27d4" + integrity sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw== chai@^5.2.0: version "5.3.3" @@ -2836,9 +2727,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== check-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" - integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== + version "2.1.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" + integrity sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA== chownr@^1.1.1: version "1.1.4" @@ -3144,7 +3035,7 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0, debug@^4.4.3: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.4.0, debug@^4.4.3: version "4.4.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== @@ -3461,7 +3352,7 @@ es6-error@^4.0.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -"esbuild@^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0": +"esbuild@^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0", esbuild@^0.27.0: version "0.27.2" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.2.tgz#d83ed2154d5813a5367376bb2292a9296fc83717" integrity sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw== @@ -3493,38 +3384,6 @@ es6-error@^4.0.1: "@esbuild/win32-ia32" "0.27.2" "@esbuild/win32-x64" "0.27.2" -esbuild@^0.25.0: - version "0.25.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.12.tgz#97a1d041f4ab00c2fce2f838d2b9969a2d2a97a5" - integrity sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg== - optionalDependencies: - "@esbuild/aix-ppc64" "0.25.12" - "@esbuild/android-arm" "0.25.12" - "@esbuild/android-arm64" "0.25.12" - "@esbuild/android-x64" "0.25.12" - "@esbuild/darwin-arm64" "0.25.12" - "@esbuild/darwin-x64" "0.25.12" - "@esbuild/freebsd-arm64" "0.25.12" - "@esbuild/freebsd-x64" "0.25.12" - "@esbuild/linux-arm" "0.25.12" - "@esbuild/linux-arm64" "0.25.12" - "@esbuild/linux-ia32" "0.25.12" - "@esbuild/linux-loong64" "0.25.12" - "@esbuild/linux-mips64el" "0.25.12" - "@esbuild/linux-ppc64" "0.25.12" - "@esbuild/linux-riscv64" "0.25.12" - "@esbuild/linux-s390x" "0.25.12" - "@esbuild/linux-x64" "0.25.12" - "@esbuild/netbsd-arm64" "0.25.12" - "@esbuild/netbsd-x64" "0.25.12" - "@esbuild/openbsd-arm64" "0.25.12" - "@esbuild/openbsd-x64" "0.25.12" - "@esbuild/openharmony-arm64" "0.25.12" - "@esbuild/sunos-x64" "0.25.12" - "@esbuild/win32-arm64" "0.25.12" - "@esbuild/win32-ia32" "0.25.12" - "@esbuild/win32-x64" "0.25.12" - escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" @@ -3551,9 +3410,9 @@ eslint-plugin-matrix-org@^3.0.0: integrity sha512-xOPMeyLxOgoB2SsPhJmIc+drorZmXozSBo3X9whk/62DvbVpJcnththOCGx8ljYScADLb+baNOeN+wKZqwkldw== eslint-plugin-storybook@^10.0.7: - version "10.1.10" - resolved "https://registry.yarnpkg.com/eslint-plugin-storybook/-/eslint-plugin-storybook-10.1.10.tgz#030a55e58a5e96a513cbf873434a840abdaf6a7d" - integrity sha512-ITr6Aq3buR/DuDATkq1BafUVJLybyo676fY+tj9Zjd1Ak+UXBAMQcQ++tiBVVHm1RqADwM3b1o6bnWHK2fPPKw== + version "10.1.11" + resolved "https://registry.yarnpkg.com/eslint-plugin-storybook/-/eslint-plugin-storybook-10.1.11.tgz#80ea073c30ff6948fe34f728ff1c05333eb8579f" + integrity sha512-mbq2r2kK5+AcLl0XDJ3to91JOgzCbHOqj+J3n+FRw6drk+M1boRqMShSoMMm0HdzXPLmlr7iur+qJ5ZuhH6ayQ== dependencies: "@typescript-eslint/utils" "^8.8.1" @@ -5379,7 +5238,7 @@ minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.3, minimatch@^9.0.4: +minimatch@^9.0.3, minimatch@^9.0.4, minimatch@^9.0.5: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== @@ -6089,9 +5948,9 @@ react-docgen@^8.0.0, react-docgen@^8.0.2: strip-indent "^4.0.0" "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0": - version "19.2.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.1.tgz#ce3527560bda4f997e47d10dab754825b3061f59" - integrity sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg== + version "19.2.3" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.3.tgz#f0b61d7e5c4a86773889fcc1853af3ed5f215b17" + integrity sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg== dependencies: scheduler "^0.27.0" @@ -6111,9 +5970,9 @@ react-merge-refs@^3.0.2: integrity sha512-MSZAfwFfdbEvwkKWP5EI5chuLYnNUxNS7vyS0i1Jp+wtd8J4Ga2ddzhaE68aMol2Z4vCnRM/oGOo1a3V75UPlw== "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0": - version "19.2.1" - resolved "https://registry.yarnpkg.com/react/-/react-19.2.1.tgz#8600fa205e58e2e807f6ef431c9f6492591a2700" - integrity sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw== + version "19.2.3" + resolved "https://registry.yarnpkg.com/react/-/react-19.2.3.tgz#d83e5e8e7a258cf6b4fe28640515f99b87cd19b8" + integrity sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA== readable-stream@^2.0.5, readable-stream@^2.3.8: version "2.3.8" @@ -6265,34 +6124,37 @@ ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.3: inherits "^2.0.4" rollup@^4.43.0: - version "4.53.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.53.3.tgz#dbc8cd8743b38710019fb8297e8d7a76e3faa406" - integrity sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA== + version "4.55.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.55.1.tgz#4ec182828be440648e7ee6520dc35e9f20e05144" + integrity sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A== dependencies: "@types/estree" "1.0.8" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.53.3" - "@rollup/rollup-android-arm64" "4.53.3" - "@rollup/rollup-darwin-arm64" "4.53.3" - "@rollup/rollup-darwin-x64" "4.53.3" - "@rollup/rollup-freebsd-arm64" "4.53.3" - "@rollup/rollup-freebsd-x64" "4.53.3" - "@rollup/rollup-linux-arm-gnueabihf" "4.53.3" - "@rollup/rollup-linux-arm-musleabihf" "4.53.3" - "@rollup/rollup-linux-arm64-gnu" "4.53.3" - "@rollup/rollup-linux-arm64-musl" "4.53.3" - "@rollup/rollup-linux-loong64-gnu" "4.53.3" - "@rollup/rollup-linux-ppc64-gnu" "4.53.3" - "@rollup/rollup-linux-riscv64-gnu" "4.53.3" - "@rollup/rollup-linux-riscv64-musl" "4.53.3" - "@rollup/rollup-linux-s390x-gnu" "4.53.3" - "@rollup/rollup-linux-x64-gnu" "4.53.3" - "@rollup/rollup-linux-x64-musl" "4.53.3" - "@rollup/rollup-openharmony-arm64" "4.53.3" - "@rollup/rollup-win32-arm64-msvc" "4.53.3" - "@rollup/rollup-win32-ia32-msvc" "4.53.3" - "@rollup/rollup-win32-x64-gnu" "4.53.3" - "@rollup/rollup-win32-x64-msvc" "4.53.3" + "@rollup/rollup-android-arm-eabi" "4.55.1" + "@rollup/rollup-android-arm64" "4.55.1" + "@rollup/rollup-darwin-arm64" "4.55.1" + "@rollup/rollup-darwin-x64" "4.55.1" + "@rollup/rollup-freebsd-arm64" "4.55.1" + "@rollup/rollup-freebsd-x64" "4.55.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.55.1" + "@rollup/rollup-linux-arm-musleabihf" "4.55.1" + "@rollup/rollup-linux-arm64-gnu" "4.55.1" + "@rollup/rollup-linux-arm64-musl" "4.55.1" + "@rollup/rollup-linux-loong64-gnu" "4.55.1" + "@rollup/rollup-linux-loong64-musl" "4.55.1" + "@rollup/rollup-linux-ppc64-gnu" "4.55.1" + "@rollup/rollup-linux-ppc64-musl" "4.55.1" + "@rollup/rollup-linux-riscv64-gnu" "4.55.1" + "@rollup/rollup-linux-riscv64-musl" "4.55.1" + "@rollup/rollup-linux-s390x-gnu" "4.55.1" + "@rollup/rollup-linux-x64-gnu" "4.55.1" + "@rollup/rollup-linux-x64-musl" "4.55.1" + "@rollup/rollup-openbsd-x64" "4.55.1" + "@rollup/rollup-openharmony-arm64" "4.55.1" + "@rollup/rollup-win32-arm64-msvc" "4.55.1" + "@rollup/rollup-win32-ia32-msvc" "4.55.1" + "@rollup/rollup-win32-x64-gnu" "4.55.1" + "@rollup/rollup-win32-x64-msvc" "4.55.1" fsevents "~2.3.2" run-applescript@^7.0.0: @@ -6348,7 +6210,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2, semver@^7.7.2: +semver@^7.5.3, semver@^7.5.4, semver@^7.6.2, semver@^7.7.2, semver@^7.7.3: version "7.7.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== @@ -6565,9 +6427,9 @@ stack-utils@^2.0.6: escape-string-regexp "^2.0.0" storybook@^10.0.7: - version "10.1.10" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-10.1.10.tgz#9023e063f97cb2c38b4520e03d49336bcbf6661f" - integrity sha512-oK0t0jEogiKKfv5Z1ao4Of99+xWw1TMUGuGRYDQS4kp2yyBsJQEgu7NI7OLYsCDI6gzt5p3RPtl1lqdeVLUi8A== + version "10.1.11" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-10.1.11.tgz#cdd75835eebad45edc93129f9468a32eb6c1f4bd" + integrity sha512-pKP5jXJYM4OjvNklGuHKO53wOCAwfx79KvZyOWHoi9zXUH5WVMFUe/ZfWyxXG/GTcj0maRgHGUjq/0I43r0dDQ== dependencies: "@storybook/global" "^5.0.0" "@storybook/icons" "^2.0.0" @@ -6912,10 +6774,10 @@ tree-kill@1.2.2, tree-kill@^1.2.2: resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== -ts-api-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" - integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== +ts-api-utils@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.4.0.tgz#2690579f96d2790253bdcf1ca35d569ad78f9ad8" + integrity sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA== ts-dedent@^2.0.0: version "2.2.0" @@ -7062,9 +6924,9 @@ unrs-resolver@^1.7.11: "@unrs/resolver-binding-win32-x64-msvc" "1.11.1" update-browserslist-db@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz#cfb4358afa08b3d5731a2ecd95eebf4ddef8033e" - integrity sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA== + version "1.2.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== dependencies: escalade "^3.2.0" picocolors "^1.1.1" @@ -7148,11 +7010,11 @@ vite-plugin-node-polyfills@^0.24.0: node-stdlib-browser "^1.2.0" vite@^7.1.9: - version "7.2.7" - resolved "https://registry.yarnpkg.com/vite/-/vite-7.2.7.tgz#0789a4c3206081699f34a9ecca2dda594a07478e" - integrity sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ== + version "7.3.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.0.tgz#066c7a835993a66e82004eac3e185d0d157fd658" + integrity sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg== dependencies: - esbuild "^0.25.0" + esbuild "^0.27.0" fdir "^6.5.0" picomatch "^4.0.3" postcss "^8.5.6" @@ -7307,9 +7169,9 @@ write-file-atomic@^5.0.1: signal-exit "^4.0.1" ws@^8.18.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== + version "8.19.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" + integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== wsl-utils@^0.1.0: version "0.1.0" diff --git a/playwright/e2e/voip/element-call.spec.ts b/playwright/e2e/voip/element-call.spec.ts index 7c2494d2ae..18bf0c33c0 100644 --- a/playwright/e2e/voip/element-call.spec.ts +++ b/playwright/e2e/voip/element-call.spec.ts @@ -647,6 +647,10 @@ test.describe("Element Call", () => { // For this test we want to display the chat area alongside the widget await page.getByRole("button", { name: "Chat" }).click(); + // Wait for the right panel to show the timeline. + await expect( + page.locator(".mx_RightPanel .mx_TimelineCard").getByText("Alice created and configured the room."), + ).toBeVisible(); await page .locator('iframe[title="Element Call"]') @@ -654,7 +658,12 @@ test.describe("Element Call", () => { .getByRole("button", { name: "Send Room Message" }) .click(); - const messageSent = await page.getByText("I sent this once!!").count(); + const timelineLocator = page.locator(".mx_RightPanel .mx_TimelineCard"); + // First wait for the message to appear in the timeline then + // check the count. This improves test stability as we know the message has been sent. + await expect(timelineLocator.getByText("I sent this once!!")).toBeVisible(); + + const messageSent = await timelineLocator.getByText("I sent this once!!").count(); expect(messageSent).toBe(1); }); diff --git a/playwright/snapshots/composer/CIDER.spec.ts/emoji-picker-linux.png b/playwright/snapshots/composer/CIDER.spec.ts/emoji-picker-linux.png index 27d91ca70f..939ab008e0 100644 Binary files a/playwright/snapshots/composer/CIDER.spec.ts/emoji-picker-linux.png and b/playwright/snapshots/composer/CIDER.spec.ts/emoji-picker-linux.png differ diff --git a/playwright/snapshots/composer/CIDER.spec.ts/emoji-picker-small-linux.png b/playwright/snapshots/composer/CIDER.spec.ts/emoji-picker-small-linux.png index d9238f36fb..75bb1b4172 100644 Binary files a/playwright/snapshots/composer/CIDER.spec.ts/emoji-picker-small-linux.png and b/playwright/snapshots/composer/CIDER.spec.ts/emoji-picker-small-linux.png differ diff --git a/playwright/testcontainers/mas.ts b/playwright/testcontainers/mas.ts index 61cc53bbc9..58528c7e90 100644 --- a/playwright/testcontainers/mas.ts +++ b/playwright/testcontainers/mas.ts @@ -10,7 +10,7 @@ import { type StartedPostgreSqlContainer, } from "@element-hq/element-web-playwright-common/lib/testcontainers"; -const TAG = "main@sha256:2c5966c2ff06458ac5cbae959f12e19d30e3ebb63c641d31ec1ae08abccb9c6d"; +const TAG = "main@sha256:48456909ce44ca9dae1a6c1abe1a2000cc2a021743d66d0b29f54077b38a09cf"; /** * MatrixAuthenticationServiceContainer which freezes the docker digest to diff --git a/playwright/testcontainers/synapse.ts b/playwright/testcontainers/synapse.ts index 1359cd0f69..6ec3036b7e 100644 --- a/playwright/testcontainers/synapse.ts +++ b/playwright/testcontainers/synapse.ts @@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details. import { SynapseContainer as BaseSynapseContainer } from "@element-hq/element-web-playwright-common/lib/testcontainers"; -const TAG = "develop@sha256:7c3dce1d2b44fdc4b1494c5b8f4792018733ad323f823b88aac30c883d09fb35"; +const TAG = "develop@sha256:106108a210f7194e0615a4d5df3502d34ee8962359b425f78d6d9d78d6b9599a"; /** * SynapseContainer which freezes the docker digest to stabilise tests, diff --git a/res/css/views/emojipicker/_EmojiPicker.pcss b/res/css/views/emojipicker/_EmojiPicker.pcss index babdb1d5e7..d1fb8d91d6 100644 --- a/res/css/views/emojipicker/_EmojiPicker.pcss +++ b/res/css/views/emojipicker/_EmojiPicker.pcss @@ -31,17 +31,25 @@ Please see LICENSE files in the repository root for full details. .mx_EmojiPicker_anchor { border: none; - padding: 8px 8px 6px; + padding: var(--cpd-space-1x) 0; + font-size: $font-20px; + line-height: 1; border-bottom: 2px solid transparent; background-color: transparent; border-radius: 4px 4px 0 0; width: 36px; - height: 38px; + height: 36px; + + color: $primary-content; + display: inline-block; &:not(:disabled) { cursor: pointer; } + &:disabled { + filter: opacity(0.3); + } &:not(:disabled):hover { background-color: $focus-bg-color; @@ -49,48 +57,6 @@ Please see LICENSE files in the repository root for full details. } } -.mx_EmojiPicker_anchor::before { - background-color: $primary-content; - content: ""; - display: inline-block; - mask-size: 100%; - mask-repeat: no-repeat; - width: 100%; - height: 100%; -} - -.mx_EmojiPicker_anchor:disabled::before { - background-color: $focus-bg-color; -} - -.mx_EmojiPicker_anchor_activity::before { - mask-image: url("$(res)/img/emojipicker/activity.svg"); -} -.mx_EmojiPicker_anchor_flags::before { - mask-image: url("$(res)/img/emojipicker/flags.svg"); -} -.mx_EmojiPicker_anchor_foods::before { - mask-image: url("$(res)/img/emojipicker/foods.svg"); -} -.mx_EmojiPicker_anchor_nature::before { - mask-image: url("$(res)/img/emojipicker/nature.svg"); -} -.mx_EmojiPicker_anchor_objects::before { - mask-image: url("$(res)/img/emojipicker/objects.svg"); -} -.mx_EmojiPicker_anchor_people::before { - mask-image: url("$(res)/img/emojipicker/people.svg"); -} -.mx_EmojiPicker_anchor_places::before { - mask-image: url("$(res)/img/emojipicker/places.svg"); -} -.mx_EmojiPicker_anchor_recent::before { - mask-image: url("$(res)/img/emojipicker/recent.svg"); -} -.mx_EmojiPicker_anchor_symbols::before { - mask-image: url("$(res)/img/emojipicker/symbols.svg"); -} - .mx_EmojiPicker_anchor_visible { border-bottom: 2px solid $accent; } diff --git a/res/img/emojipicker/activity.svg b/res/img/emojipicker/activity.svg deleted file mode 100644 index d921667e7a..0000000000 --- a/res/img/emojipicker/activity.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - diff --git a/res/img/emojipicker/flags.svg b/res/img/emojipicker/flags.svg deleted file mode 100644 index bd0a935265..0000000000 --- a/res/img/emojipicker/flags.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - diff --git a/res/img/emojipicker/foods.svg b/res/img/emojipicker/foods.svg deleted file mode 100644 index 57a15976d8..0000000000 --- a/res/img/emojipicker/foods.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - diff --git a/res/img/emojipicker/nature.svg b/res/img/emojipicker/nature.svg deleted file mode 100644 index a4778be927..0000000000 --- a/res/img/emojipicker/nature.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - diff --git a/res/img/emojipicker/objects.svg b/res/img/emojipicker/objects.svg deleted file mode 100644 index e0d39f985a..0000000000 --- a/res/img/emojipicker/objects.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - diff --git a/res/img/emojipicker/people.svg b/res/img/emojipicker/people.svg deleted file mode 100644 index c2fdb579f6..0000000000 --- a/res/img/emojipicker/people.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - diff --git a/res/img/emojipicker/places.svg b/res/img/emojipicker/places.svg deleted file mode 100644 index 0947baaf04..0000000000 --- a/res/img/emojipicker/places.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - diff --git a/res/img/emojipicker/recent.svg b/res/img/emojipicker/recent.svg deleted file mode 100644 index 2fdcc65cd2..0000000000 --- a/res/img/emojipicker/recent.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - diff --git a/res/img/emojipicker/symbols.svg b/res/img/emojipicker/symbols.svg deleted file mode 100644 index a2b86d9ec8..0000000000 --- a/res/img/emojipicker/symbols.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - diff --git a/scripts/copy-res.ts b/scripts/copy-res.ts index e74eb6fd2d..94e456700d 100755 --- a/scripts/copy-res.ts +++ b/scripts/copy-res.ts @@ -9,8 +9,10 @@ import _ from "lodash"; import webpack from "webpack"; import type { Translations } from "matrix-web-i18n"; -const I18N_BASE_PATH = "src/i18n/strings/"; -const INCLUDE_LANGS = [...new Set([...fs.readdirSync(I18N_BASE_PATH)])] +const EW_I18N_BASE_PATH = "src/i18n/strings/"; +const SC_I18N_BASE_PATH = "packages/shared-components/src/i18n/strings/"; + +const INCLUDE_LANGS = [...new Set([...fs.readdirSync(EW_I18N_BASE_PATH)])] .filter((fn) => fn.endsWith(".json")) .map((f) => f.slice(0, -5)); @@ -41,11 +43,17 @@ const logWatch = (path: string) => { } }; -function prepareLangFile(lang: string, dest: string): [filename: string, json: string] { - const path = I18N_BASE_PATH + lang + ".json"; +/* + * Make a JSON language file for the given language by merging all translations + * into a single file (ie. element-web and shared-components). + * Returns the filename (including hash) and JSON content. + */ +function prepareLangFile(lang: string): [filename: string, json: string] { + const ewTranslationsPath = EW_I18N_BASE_PATH + lang + ".json"; + const scTranslationsPath = SC_I18N_BASE_PATH + lang + ".json"; let translations: Translations = {}; - [path].forEach(function (f) { + [ewTranslationsPath, scTranslationsPath].forEach(function (f) { if (fs.existsSync(f)) { try { translations = _.merge(translations, JSON.parse(fs.readFileSync(f).toString())); @@ -99,7 +107,8 @@ function genLangList(langFileMap: Record): void { * and regenerating languages.json with the new filename */ function watchLanguage(lang: string, dest: string, langFileMap: Record): void { - const path = I18N_BASE_PATH + lang + ".json"; + const ewTranslationsPath = EW_I18N_BASE_PATH + lang + ".json"; + const scTranslationsPath = SC_I18N_BASE_PATH + lang + ".json"; // XXX: Use a debounce because for some reason if we read the language // file immediately after the FS event is received, the file contents @@ -110,14 +119,14 @@ function watchLanguage(lang: string, dest: string, langFileMap: Record { - const [filename, json] = prepareLangFile(lang, dest); + const [filename, json] = prepareLangFile(lang); genLangFile(dest, filename, json); langFileMap[lang] = filename; genLangList(langFileMap); }, 500); }; - [path].forEach(function (f) { + [ewTranslationsPath, scTranslationsPath].forEach(function (f) { chokidar .watch(f, { ignoreInitial: true }) .on("ready", () => { @@ -132,7 +141,7 @@ function watchLanguage(lang: string, dest: string, langFileMap: Record>((m, l) => { - const [filename, json] = prepareLangFile(l, I18N_DEST); + const [filename, json] = prepareLangFile(l); if (!watch) { genLangFile(I18N_DEST, filename, json); } diff --git a/src/@types/i18n.d.ts b/src/@types/i18n.d.ts new file mode 100644 index 0000000000..04531d8954 --- /dev/null +++ b/src/@types/i18n.d.ts @@ -0,0 +1,14 @@ +/* +Copyright 2025 Element Creations Ltd. + +SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial +Please see LICENSE files in the repository root for full details. +*/ + +import { type TranslationKey as _TranslationKey } from "matrix-web-i18n"; + +import type Translations from "../i18n/strings/en_EN.json"; + +declare global { + type TranslationKey = _TranslationKey; +} diff --git a/src/accessibility/KeyboardShortcuts.ts b/src/accessibility/KeyboardShortcuts.ts index 2872e1a1a2..9d4222d92f 100644 --- a/src/accessibility/KeyboardShortcuts.ts +++ b/src/accessibility/KeyboardShortcuts.ts @@ -9,7 +9,7 @@ Please see LICENSE files in the repository root for full details. */ // Import i18n.tsx instead of languageHandler to avoid circular deps -import { _td, type TranslationKey } from "@element-hq/web-shared-components"; +import { _td } from "@element-hq/web-shared-components"; import { IS_MAC, IS_ELECTRON, Key } from "../Keyboard"; import { type IBaseSetting } from "../settings/Settings"; diff --git a/src/components/structures/EmbeddedPage.tsx b/src/components/structures/EmbeddedPage.tsx index 53a5d7d537..8ea20d3cb3 100644 --- a/src/components/structures/EmbeddedPage.tsx +++ b/src/components/structures/EmbeddedPage.tsx @@ -12,7 +12,7 @@ import sanitizeHtml from "sanitize-html"; import classnames from "classnames"; import { logger } from "matrix-js-sdk/src/logger"; -import { _t, type TranslationKey } from "../../languageHandler"; +import { _t } from "../../languageHandler"; import dis from "../../dispatcher/dispatcher"; import { MatrixClientPeg } from "../../MatrixClientPeg"; import MatrixClientContext from "../../contexts/MatrixClientContext"; diff --git a/src/components/structures/TabbedView.tsx b/src/components/structures/TabbedView.tsx index 7b11b92e9c..1746c13652 100644 --- a/src/components/structures/TabbedView.tsx +++ b/src/components/structures/TabbedView.tsx @@ -11,7 +11,7 @@ Please see LICENSE files in the repository root for full details. import React, { type JSX } from "react"; import classNames from "classnames"; -import { _t, type TranslationKey } from "../../languageHandler"; +import { _t } from "../../languageHandler"; import AutoHideScrollbar from "./AutoHideScrollbar"; import { PosthogScreenTracker, type ScreenName } from "../../PosthogTrackers"; import { type NonEmptyArray } from "../../@types/common"; diff --git a/src/components/utils/ListView.tsx b/src/components/utils/ListView.tsx index e35f7e2e47..9df5b67e69 100644 --- a/src/components/utils/ListView.tsx +++ b/src/components/utils/ListView.tsx @@ -76,6 +76,13 @@ export interface IListViewProps extends Omit< onKeyDown?: (e: React.KeyboardEvent) => void; } +/** + * Utility type for the prop scrollIntoViewOnChange allowing it to be memoised by a caller without repeating types + */ +export type ScrollIntoViewOnChange = NonNullable< + VirtuosoProps>["scrollIntoViewOnChange"] +>; + /** * A generic virtualized list component built on top of react-virtuoso. * Provides keyboard navigation and virtualized rendering for performance with large lists. diff --git a/src/components/viewmodels/memberlist/tiles/MemberTileViewModel.tsx b/src/components/viewmodels/memberlist/tiles/MemberTileViewModel.tsx index d99c127d85..1cb29029ea 100644 --- a/src/components/viewmodels/memberlist/tiles/MemberTileViewModel.tsx +++ b/src/components/viewmodels/memberlist/tiles/MemberTileViewModel.tsx @@ -15,7 +15,7 @@ import { Action } from "../../../../dispatcher/actions"; import { asyncSome } from "../../../../utils/arrays"; import { getUserDeviceIds } from "../../../../utils/crypto/deviceInfo"; import { type RoomMember } from "../../../../models/rooms/RoomMember"; -import { _t, _td, type TranslationKey } from "../../../../languageHandler"; +import { _t, _td } from "../../../../languageHandler"; import { E2EStatus } from "../../../../utils/ShieldUtils"; interface MemberTileViewModelProps { diff --git a/src/components/viewmodels/roomlist/useFilteredRooms.tsx b/src/components/viewmodels/roomlist/useFilteredRooms.tsx index 4e311f39db..a0e36dc668 100644 --- a/src/components/viewmodels/roomlist/useFilteredRooms.tsx +++ b/src/components/viewmodels/roomlist/useFilteredRooms.tsx @@ -8,7 +8,7 @@ Please see LICENSE files in the repository root for full details. import { useCallback, useEffect, useMemo, useState } from "react"; import { FilterKey } from "../../../stores/room-list-v3/skip-list/filters"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; import RoomListStoreV3, { LISTS_LOADED_EVENT, LISTS_UPDATE_EVENT, diff --git a/src/components/views/auth/EmailField.tsx b/src/components/views/auth/EmailField.tsx index fb420ed459..a8388f7ad9 100644 --- a/src/components/views/auth/EmailField.tsx +++ b/src/components/views/auth/EmailField.tsx @@ -9,7 +9,7 @@ Please see LICENSE files in the repository root for full details. import React, { type ComponentProps, PureComponent, type Ref } from "react"; import Field, { type IInputProps } from "../elements/Field"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; import withValidation, { type IFieldState, type IValidationResult } from "../elements/Validation"; import * as Email from "../../../email"; diff --git a/src/components/views/auth/PassphraseConfirmField.tsx b/src/components/views/auth/PassphraseConfirmField.tsx index 4dc720e8af..0eb0ce79b0 100644 --- a/src/components/views/auth/PassphraseConfirmField.tsx +++ b/src/components/views/auth/PassphraseConfirmField.tsx @@ -10,7 +10,7 @@ import React, { type ComponentProps, PureComponent, type Ref } from "react"; import Field, { type IInputProps } from "../elements/Field"; import withValidation, { type IFieldState, type IValidationResult } from "../elements/Validation"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; interface IProps extends Omit { id?: string; diff --git a/src/components/views/auth/PassphraseField.tsx b/src/components/views/auth/PassphraseField.tsx index 938e559fd7..d5cd27e401 100644 --- a/src/components/views/auth/PassphraseField.tsx +++ b/src/components/views/auth/PassphraseField.tsx @@ -12,7 +12,7 @@ import classNames from "classnames"; import type { ZxcvbnResult } from "@zxcvbn-ts/core"; import SdkConfig from "../../../SdkConfig"; import withValidation, { type IFieldState, type IValidationResult } from "../elements/Validation"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; import Field, { type IInputProps } from "../elements/Field"; import { MatrixClientPeg } from "../../../MatrixClientPeg"; diff --git a/src/components/views/context_menus/DeviceContextMenu.tsx b/src/components/views/context_menus/DeviceContextMenu.tsx index 7560b4a7d5..e780449f12 100644 --- a/src/components/views/context_menus/DeviceContextMenu.tsx +++ b/src/components/views/context_menus/DeviceContextMenu.tsx @@ -11,7 +11,7 @@ import React, { useEffect, useState } from "react"; import MediaDeviceHandler, { MediaDeviceKindEnum } from "../../../MediaDeviceHandler"; import IconizedContextMenu, { IconizedContextMenuOptionList, IconizedContextMenuRadio } from "./IconizedContextMenu"; import { type IProps as IContextMenuProps } from "../../structures/ContextMenu"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; const SECTION_NAMES: Record = { [MediaDeviceKindEnum.AudioInput]: _td("voip|input_devices"), diff --git a/src/components/views/dialogs/AddExistingToSpaceDialog.tsx b/src/components/views/dialogs/AddExistingToSpaceDialog.tsx index c247c3aea9..4b6d031967 100644 --- a/src/components/views/dialogs/AddExistingToSpaceDialog.tsx +++ b/src/components/views/dialogs/AddExistingToSpaceDialog.tsx @@ -14,7 +14,7 @@ import { sleep } from "matrix-js-sdk/src/utils"; import { logger } from "matrix-js-sdk/src/logger"; import { ErrorIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; import BaseDialog from "./BaseDialog"; import Dropdown from "../elements/Dropdown"; import SearchBox from "../../structures/SearchBox"; diff --git a/src/components/views/dialogs/DevtoolsDialog.tsx b/src/components/views/dialogs/DevtoolsDialog.tsx index 5ac0478012..10986095ea 100644 --- a/src/components/views/dialogs/DevtoolsDialog.tsx +++ b/src/components/views/dialogs/DevtoolsDialog.tsx @@ -10,7 +10,7 @@ Please see LICENSE files in the repository root for full details. import React, { type JSX, useState } from "react"; import { Form } from "@vector-im/compound-web"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; import BaseDialog from "./BaseDialog"; import { TimelineEventEditor } from "./devtools/Event"; diff --git a/src/components/views/dialogs/TextInputDialog.tsx b/src/components/views/dialogs/TextInputDialog.tsx index 1a86a40d14..ed076bc472 100644 --- a/src/components/views/dialogs/TextInputDialog.tsx +++ b/src/components/views/dialogs/TextInputDialog.tsx @@ -9,7 +9,7 @@ Please see LICENSE files in the repository root for full details. import React, { type ChangeEvent, createRef } from "react"; import Field from "../elements/Field"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; import { type IFieldState, type IValidationResult } from "../elements/Validation"; import BaseDialog from "./BaseDialog"; import DialogButtons from "../elements/DialogButtons"; diff --git a/src/components/views/dialogs/devtools/AccountData.tsx b/src/components/views/dialogs/devtools/AccountData.tsx index d4dfe039fd..6900a7097e 100644 --- a/src/components/views/dialogs/devtools/AccountData.tsx +++ b/src/components/views/dialogs/devtools/AccountData.tsx @@ -14,7 +14,7 @@ import BaseTool, { DevtoolsContext, type IDevtoolsProps } from "./BaseTool"; import MatrixClientContext from "../../../../contexts/MatrixClientContext"; import { EventEditor, EventViewer, eventTypeField, type IEditorProps, stringify } from "./Event"; import FilteredList from "./FilteredList"; -import { _td, type TranslationKey } from "../../../../languageHandler"; +import { _td } from "../../../../languageHandler"; export const AccountDataEventEditor: React.FC = ({ mxEvent, onBack }) => { const cli = useContext(MatrixClientContext); diff --git a/src/components/views/dialogs/devtools/BaseTool.tsx b/src/components/views/dialogs/devtools/BaseTool.tsx index 8a923e2623..555d5b31ff 100644 --- a/src/components/views/dialogs/devtools/BaseTool.tsx +++ b/src/components/views/dialogs/devtools/BaseTool.tsx @@ -11,7 +11,7 @@ import React, { createContext, type ReactNode, useState } from "react"; import { type Room } from "matrix-js-sdk/src/matrix"; import classNames from "classnames"; -import { _t, type TranslationKey } from "../../../../languageHandler"; +import { _t } from "../../../../languageHandler"; import { type XOR } from "../../../../@types/common"; import { type Tool } from "../DevtoolsDialog"; diff --git a/src/components/views/dialogs/devtools/Event.tsx b/src/components/views/dialogs/devtools/Event.tsx index 00669cd614..63712b28d9 100644 --- a/src/components/views/dialogs/devtools/Event.tsx +++ b/src/components/views/dialogs/devtools/Event.tsx @@ -10,7 +10,7 @@ Please see LICENSE files in the repository root for full details. import React, { type ChangeEvent, type ReactNode, useContext, useMemo, useRef, useState } from "react"; import { type IContent, type MatrixEvent, type TimelineEvents } from "matrix-js-sdk/src/matrix"; -import { _t, _td, type TranslationKey } from "../../../../languageHandler"; +import { _t, _td } from "../../../../languageHandler"; import Field from "../../elements/Field"; import BaseTool, { DevtoolsContext, type IDevtoolsProps } from "./BaseTool"; import MatrixClientContext from "../../../../contexts/MatrixClientContext"; diff --git a/src/components/views/elements/DesktopCapturerSourcePicker.tsx b/src/components/views/elements/DesktopCapturerSourcePicker.tsx index 636e37ccd0..fd20db7ef6 100644 --- a/src/components/views/elements/DesktopCapturerSourcePicker.tsx +++ b/src/components/views/elements/DesktopCapturerSourcePicker.tsx @@ -9,7 +9,7 @@ Please see LICENSE files in the repository root for full details. import React from "react"; import classNames from "classnames"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; import BaseDialog from "..//dialogs/BaseDialog"; import DialogButtons from "./DialogButtons"; import AccessibleButton from "./AccessibleButton"; diff --git a/src/components/views/emojipicker/Category.tsx b/src/components/views/emojipicker/Category.tsx index 21e5c97c33..17f33d9346 100644 --- a/src/components/views/emojipicker/Category.tsx +++ b/src/components/views/emojipicker/Category.tsx @@ -22,6 +22,8 @@ export type CategoryKey = keyof typeof DATA_BY_CATEGORY | "recent"; export interface ICategory { id: CategoryKey; name: string; + // Emoji to show in the header for this category + emoji: string; enabled: boolean; // Whether the category is currently visible visible: boolean; diff --git a/src/components/views/emojipicker/EmojiPicker.tsx b/src/components/views/emojipicker/EmojiPicker.tsx index 9ba2445102..192a40b782 100644 --- a/src/components/views/emojipicker/EmojiPicker.tsx +++ b/src/components/views/emojipicker/EmojiPicker.tsx @@ -81,19 +81,16 @@ class EmojiPicker extends React.Component { const hasRecentlyUsed = this.recentlyUsed.length > 0; - const categoryConfig: Array<{ - id: CategoryKey; - name: string; - }> = [ - { id: "recent", name: _t("emoji|category_frequently_used") }, - { id: "people", name: _t("emoji|category_smileys_people") }, - { id: "nature", name: _t("emoji|category_animals_nature") }, - { id: "foods", name: _t("emoji|category_food_drink") }, - { id: "activity", name: _t("emoji|category_activities") }, - { id: "places", name: _t("emoji|category_travel_places") }, - { id: "objects", name: _t("emoji|category_objects") }, - { id: "symbols", name: _t("emoji|category_symbols") }, - { id: "flags", name: _t("emoji|category_flags") }, + const categoryConfig: Pick[] = [ + { id: "recent", name: _t("emoji|category_frequently_used"), emoji: "🕒" }, + { id: "people", name: _t("emoji|category_smileys_people"), emoji: "😀" }, + { id: "nature", name: _t("emoji|category_animals_nature"), emoji: "🐕" }, + { id: "foods", name: _t("emoji|category_food_drink"), emoji: "🍎" }, + { id: "activity", name: _t("emoji|category_activities"), emoji: "⚽️" }, + { id: "places", name: _t("emoji|category_travel_places"), emoji: "🚗" }, + { id: "objects", name: _t("emoji|category_objects"), emoji: "💡" }, + { id: "symbols", name: _t("emoji|category_symbols"), emoji: "⁉️" }, + { id: "flags", name: _t("emoji|category_flags"), emoji: "🏁" }, ]; this.categories = categoryConfig.map((config) => { @@ -109,8 +106,7 @@ class EmojiPicker extends React.Component { firstVisible = !hasRecentlyUsed; } return { - id: config.id, - name: config.name, + ...config, enabled: isEnabled, visible: isVisible, firstVisible: firstVisible, diff --git a/src/components/views/emojipicker/Header.tsx b/src/components/views/emojipicker/Header.tsx index ed2c6b9f21..5b57c065b5 100644 --- a/src/components/views/emojipicker/Header.tsx +++ b/src/components/views/emojipicker/Header.tsx @@ -84,7 +84,7 @@ class Header extends React.PureComponent { onKeyDown={this.onKeyDown} > {this.props.categories.map((category) => { - const classes = classNames(`mx_EmojiPicker_anchor mx_EmojiPicker_anchor_${category.id}`, { + const classes = classNames("mx_EmojiPicker_anchor", { mx_EmojiPicker_anchor_visible: category.visible, }); // Properties of this button are also modified by EmojiPicker's updateVisibility in DOM. @@ -100,7 +100,9 @@ class Header extends React.PureComponent { tabIndex={category.firstVisible ? 0 : -1} // roving aria-selected={category.visible} aria-controls={`mx_EmojiPicker_category_${category.id}`} - /> + > + {category.emoji} + ); })} diff --git a/src/components/views/rooms/E2EIcon.tsx b/src/components/views/rooms/E2EIcon.tsx index 2598584aaa..c9c7d8ec12 100644 --- a/src/components/views/rooms/E2EIcon.tsx +++ b/src/components/views/rooms/E2EIcon.tsx @@ -12,7 +12,7 @@ import classNames from "classnames"; import { Tooltip } from "@vector-im/compound-web"; import { ErrorSolidIcon, ShieldIcon, LockSolidIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; import AccessibleButton from "../elements/AccessibleButton"; import { E2EStatus } from "../../../utils/ShieldUtils"; diff --git a/src/components/views/rooms/LegacyRoomList.tsx b/src/components/views/rooms/LegacyRoomList.tsx index 50519cbfe8..aa5b1b2398 100644 --- a/src/components/views/rooms/LegacyRoomList.tsx +++ b/src/components/views/rooms/LegacyRoomList.tsx @@ -26,7 +26,7 @@ import { type ActionPayload } from "../../../dispatcher/payloads.ts"; import { type ViewRoomDeltaPayload } from "../../../dispatcher/payloads/ViewRoomDeltaPayload.ts"; import { type ViewRoomPayload } from "../../../dispatcher/payloads/ViewRoomPayload.ts"; import { useEventEmitterState } from "../../../hooks/useEventEmitter.ts"; -import { _t, _td, type TranslationKey } from "../../../languageHandler.tsx"; +import { _t, _td } from "../../../languageHandler.tsx"; import { MatrixClientPeg } from "../../../MatrixClientPeg.ts"; import PosthogTrackers from "../../../PosthogTrackers.ts"; import SettingsStore from "../../../settings/SettingsStore.ts"; diff --git a/src/components/views/rooms/NewRoomIntro.tsx b/src/components/views/rooms/NewRoomIntro.tsx index d41bb3ecc0..989f147697 100644 --- a/src/components/views/rooms/NewRoomIntro.tsx +++ b/src/components/views/rooms/NewRoomIntro.tsx @@ -13,7 +13,7 @@ import { ErrorSolidIcon } from "@vector-im/compound-design-tokens/assets/web/ico import MatrixClientContext from "../../../contexts/MatrixClientContext"; import DMRoomMap from "../../../utils/DMRoomMap"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; import AccessibleButton, { type ButtonEvent } from "../elements/AccessibleButton"; import MiniAvatarUploader, { AVATAR_SIZE } from "../elements/MiniAvatarUploader"; import RoomAvatar from "../avatars/RoomAvatar"; diff --git a/src/components/views/rooms/RoomListPanel/RoomList.tsx b/src/components/views/rooms/RoomListPanel/RoomList.tsx index c1c081ca9c..ee7b59c74e 100644 --- a/src/components/views/rooms/RoomListPanel/RoomList.tsx +++ b/src/components/views/rooms/RoomListPanel/RoomList.tsx @@ -7,13 +7,12 @@ import React, { useCallback, useRef, type JSX } from "react"; import { type Room } from "matrix-js-sdk/src/matrix"; -import { type ScrollIntoViewLocation } from "react-virtuoso"; import { isEqual } from "lodash"; import { type RoomListViewState } from "../../../viewmodels/roomlist/RoomListViewModel"; import { _t } from "../../../../languageHandler"; import { RoomListItemView } from "./RoomListItemView"; -import { type ListContext, ListView } from "../../../utils/ListView"; +import { type ListContext, ListView, type ScrollIntoViewOnChange } from "../../../utils/ListView"; import { type FilterKey } from "../../../../stores/room-list-v3/skip-list/filters"; import { getKeyBindingsManager } from "../../../../KeyBindingsManager"; import { KeyBindingAction } from "../../../../accessibility/KeyboardShortcuts"; @@ -25,6 +24,12 @@ interface RoomListProps { */ vm: RoomListViewState; } + +type Context = { + spaceId: string; + filterKeys: FilterKey[] | undefined; +}; + /** * Height of a single room list item */ @@ -48,10 +53,7 @@ export function RoomList({ vm: { roomsResult, activeIndex } }: RoomListProps): J ( index: number, item: Room, - context: ListContext<{ - spaceId: string; - filterKeys: FilterKey[] | undefined; - }>, + context: ListContext, onFocus: (item: Room, e: React.FocusEvent) => void, ): JSX.Element => { const itemKey = item.roomId; @@ -78,10 +80,8 @@ export function RoomList({ vm: { roomsResult, activeIndex } }: RoomListProps): J return item.roomId; }, []); - const scrollIntoViewOnChange = useCallback( - (params: { - context: ListContext<{ spaceId: string; filterKeys: FilterKey[] | undefined }>; - }): ScrollIntoViewLocation | null | undefined | false | void => { + const scrollIntoViewOnChange = useCallback>( + (params) => { const { spaceId, filterKeys } = params.context.context; const shouldScrollIndexIntoView = lastSpaceId.current !== spaceId || !isEqual(lastFilterKeys.current, filterKeys); diff --git a/src/components/views/rooms/Stickerpicker.tsx b/src/components/views/rooms/Stickerpicker.tsx index bbf3f49685..80d9422335 100644 --- a/src/components/views/rooms/Stickerpicker.tsx +++ b/src/components/views/rooms/Stickerpicker.tsx @@ -10,7 +10,7 @@ import { type Room, ClientEvent } from "matrix-js-sdk/src/matrix"; import { logger } from "matrix-js-sdk/src/logger"; import { type IWidget } from "matrix-widget-api"; -import { _t, _td, type TranslationKey } from "../../../languageHandler"; +import { _t, _td } from "../../../languageHandler"; import AppTile from "../elements/AppTile"; import { MatrixClientPeg } from "../../../MatrixClientPeg"; import dis from "../../../dispatcher/dispatcher"; diff --git a/src/components/views/settings/devices/DeviceTypeIcon.tsx b/src/components/views/settings/devices/DeviceTypeIcon.tsx index 8b716af1ee..35db504682 100644 --- a/src/components/views/settings/devices/DeviceTypeIcon.tsx +++ b/src/components/views/settings/devices/DeviceTypeIcon.tsx @@ -14,7 +14,7 @@ import { Icon as UnknownDeviceIcon } from "../../../../../res/img/element-icons/ import { Icon as DesktopIcon } from "../../../../../res/img/element-icons/settings/desktop.svg"; import { Icon as WebIcon } from "../../../../../res/img/element-icons/settings/web.svg"; import { Icon as MobileIcon } from "../../../../../res/img/element-icons/settings/mobile.svg"; -import { _t, _td, type TranslationKey } from "../../../../languageHandler"; +import { _t, _td } from "../../../../languageHandler"; import { type ExtendedDevice } from "./types"; import { DeviceType } from "../../../../utils/device/parseUserAgent"; diff --git a/src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx b/src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx index 4c720a2372..308918e1b3 100644 --- a/src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx +++ b/src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx @@ -12,7 +12,7 @@ import { logger } from "matrix-js-sdk/src/logger"; import { throttle, get, set } from "lodash"; import { KnownMembership, type RoomPowerLevelsEventContent } from "matrix-js-sdk/src/types"; -import { _t, _td, type TranslationKey } from "../../../../../languageHandler"; +import { _t, _td } from "../../../../../languageHandler"; import AccessibleButton from "../../../elements/AccessibleButton"; import Modal from "../../../../../Modal"; import ErrorDialog from "../../../dialogs/ErrorDialog"; diff --git a/src/effects/effect.ts b/src/effects/effect.ts index 571ce494ed..60f94b283f 100644 --- a/src/effects/effect.ts +++ b/src/effects/effect.ts @@ -7,8 +7,6 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com Please see LICENSE files in the repository root for full details. */ -import { type TranslationKey } from "../languageHandler"; - export type Effect = { /** * one or more emojis that will trigger this effect diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 19f2321f14..d548164231 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -103,9 +103,7 @@ "ok": "OK", "open": "Otevřít", "open_menu": "Otevřít nabídku", - "pause": "Pozastavit", "pin": "Připnout", - "play": "Přehrát", "proceed": "Pokračovat", "quote": "Citovat", "react": "Reagovat", @@ -3374,24 +3372,10 @@ "no_rooms_with_unread_threads": "Zatím nemáte místnosti s nepřečtenými vlákny." }, "time": { - "about_day_ago": "před jedním dnem", - "about_hour_ago": "asi před hodinou", - "about_minute_ago": "před minutou", "date_at_time": "%(date)s v %(time)s", - "few_seconds_ago": "před pár vteřinami", "hours_minutes_seconds_left": "zbývá %(hours)sh %(minutes)sm %(seconds)ss", - "in_about_day": "asi za den", - "in_about_hour": "asi za hodinu", - "in_about_minute": "asi za minutu", - "in_few_seconds": "za pár vteřin", - "in_n_days": "za %(num)s dní", - "in_n_hours": "za %(num)s hodin", - "in_n_minutes": "za %(num)s minut", "left": "%(timeRemaining)s zbývá", "minutes_seconds_left": "zbývá %(minutes)sm %(seconds)ss", - "n_days_ago": "před %(num)s dny", - "n_hours_ago": "před %(num)s hodinami", - "n_minutes_ago": "před %(num)s minutami", "seconds_left": "Zbývá %(seconds)ss", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)sh %(minutes)sm %(seconds)ss", @@ -3446,11 +3430,9 @@ "unable_to_find": "Pokusili jste se načíst bod na časové ose místnosti, ale nepodařilo se ho najít." }, "m.audio": { - "audio_player": "Audio přehrávač", "error_downloading_audio": "Chyba při stahování audia", "error_processing_audio": "Došlo k chybě při zpracovávání hlasové zprávy", - "error_processing_voice_message": "Chyba při zpracování hlasové zprávy", - "unnamed_audio": "Nepojmenovaný audio soubor" + "error_processing_voice_message": "Chyba při zpracování hlasové zprávy" }, "m.beacon_info": { "view_live_location": "Zobrazit polohu živě" diff --git a/src/i18n/strings/cy.json b/src/i18n/strings/cy.json index e1f8ea0e3e..b1b17c16cd 100644 --- a/src/i18n/strings/cy.json +++ b/src/i18n/strings/cy.json @@ -3,29 +3,9 @@ "emoji_picker": "Dewisydd Emoji", "jump_first_invite": "Symud i'r gwahoddiad cyntaf.", "message_composer": "Neges cyfansoddwr", - "n_unread_messages": { - "%(count)s neges heb eu darllen": "other", - "1 neges heb ei darllen": "one" - }, - "n_unread_messages_mentions": { - "%(count)s crybwylliadau heb eu darllen": "zero", - "1 crybwylliad heb ei ddarllen": "one", - "%(count)s grybwylliad heb eu darllen": "two", - "%(count)s crybwylliad heb eu darllen": "other" - }, "recent_rooms": "Ystafelloedd diweddar", "room_messsage_not_sent": "Agor ystafell %(roomName)s gyda neges heb ei gosod.", "room_n_unread_invite": "Agor gwahoddiad i ystafell %(roomName)s.", - "room_n_unread_messages": { - "Ystafell agored%(roomName)s gyda %(count)s negeseuon heb eu darllen.": "zero", - "Ystafell agored %(roomName)s gydag 1 neges heb ei darllen.": "one", - "Ystafell agored%(roomName)s gyda %(count)s neges heb eu darllen.": "other" - }, - "room_n_unread_messages_mentions": { - "Ystafell agored %(roomName)s gyda %(count)s negeseuon heb eu darllen gan gynnwys crybwylliadau.": "zero", - "Ystafell agored %(roomName)s gydag 1 crybwylliad heb ei ddarllen.": "one", - "Ystafell agored %(roomName)s gyda %(count)s neges heb eu darllen gan gynnwys crybwylliadau.": "other" - }, "room_name": "Ystafell %(matere)s", "room_status_bar": "Bar statws ystafell", "seek_bar_label": "Bar chwilio sain", @@ -104,9 +84,7 @@ "ok": "Iawn", "open": "Agor", "open_menu": "Agor dewislen", - "pause": "Oedi", "pin": "Pinio", - "play": "Chwarae", "proceed": "Parhau", "quote": "Dyfyniad", "react": "Ymateb", @@ -474,11 +452,6 @@ "advanced": "Uwch", "all_chats": "Pob Sgwrs", "analytics": "Dadansoddi Gwe", - "and_n_others": { - "a dim arall...": "zero", - "ac un arall...": "one", - "a %(count)s arall...": "other" - }, "appearance": "Gwedd", "application": "Rhaglen", "are_you_sure": "Ydych chi'n siŵr?", @@ -533,14 +506,6 @@ "moderation_and_safety": "Cymedroli a diogelwch", "modern": "Modern", "mute": "Tewi", - "n_members": { - "%(count)s aelodau": "zero", - "%(count)s aelod": "other" - }, - "n_rooms": { - "%(count)s ystafelloedd": "zero", - "%(count)s ystafell": "other" - }, "name": "Enw", "no_results": "Dim canlyniadau", "no_results_found": "Heb ganfod canlyniad", @@ -851,10 +816,6 @@ "room_notifications_total": "Cyfanswm: ", "room_notifications_type": "Math: ", "room_status": "Statws ystafell", - "room_unread_status_count": { - "Statws heb eu darllen yn yr ystafell:%(status)s , cyfrif:%(count)s": "other", - "Statws heb ei ddarllen yn yr ystafell:%(status)s , cyfrif:%(count)s": "one" - }, "save_setting_values": "Cadw gwerthoedd gosod", "see_history": "Gweld hanes", "send_custom_account_data_event": "Anfon digwyddiad data cyfrif personol", @@ -874,12 +835,6 @@ "settings_explorer": "Archwiliwr gosodiadau", "show_empty_content_events": "Dangos digwyddiadau gyda chynnwys gwag", "show_hidden_events": "Dangos digwyddiadau cudd yn y llinell amser", - "spaces": { - "<%(count) s gofodau>": "zero", - "": "one", - "<%(count) s ofod>": "two", - "<%(count) s gofod>": "other" - }, "state_key": "Allwedd Cyflwr", "thread_root_id": "ID Gwraidd Edefyn: %(threadRootId)s", "threads_timeline": "Llinell amser edafedd", @@ -1187,28 +1142,7 @@ "error_fetching_file": "Gwall wrth nôl ffeil", "export_info": "Dyma ddechrau allforio o. Wedi'i allforio gan yn %(exportDate)s.", "export_successful": "Allforio yn llwyddiannus!", - "exported_n_events_in_time": { - "Wedi nôl %(count)s digwyddiadau o fewn %(seconds)s e": "zero", - "Wedi allforio %(count)s digwyddiad o fewn %(seconds)s e": "one", - "Wedi nôl %(count)s ddigwyddiad o fewn %(seconds)s e": "two", - "Wedi nôl %(count)s digwyddiad o fewn %(seconds)s e": "other" - }, "exporting_your_data": "Allforio eich data", - "fetched_n_events": { - "Wedi nôl %(count)s digwyddiadau hyd yn hyn": "zero", - "Wedi nôl %(count)s digwyddiad hyd yn hyn": "other", - "Wedi nôl %(count)s ddigwyddiad hyd yn hyn": "two" - }, - "fetched_n_events_in_time": { - "Wedi nôl %(count)s digwyddiadau o fewn %(seconds)s e": "zero", - "Wedi nôl %(count)s digwyddiad o fewn %(seconds)s e": "other", - "Wedi nôl %(count)s ddigwyddiad o fewn %(seconds)s e": "two" - }, - "fetched_n_events_with_total": { - "Wedi nôl %(count)s digwyddiadau allan o %(total)s": "zero", - "Wedi nôl %(count)s digwyddiad allan o %(total)s": "other", - "Wedi nôl %(count)s ddigwyddiad allan o %(total)s": "two" - }, "fetching_events": "Wrthi'n nôl digwyddiadau…", "file_attached": "Ffeil wedi'i Atodi", "format": "Fformat", @@ -1297,11 +1231,6 @@ }, "in_space": "Yn %(spaceName)s.", "in_space1_and_space2": "Mewn gofodau %(space1Name)s a %(space2Name)s.", - "in_space_and_n_other_spaces": { - "Yn %(spaceName)s a %(count)s gofodau eraill.": "zero", - "Yn %(spaceName)s ac un gofod arall": "one", - "Yn %(spaceName)s a %(count)s gofod arall.": "other" - }, "incompatible_browser": { "continue": "Parhau beth bynnag", "description": "Mae %(brand)s yn defnyddio rhai nodweddion porwr nad ydyn nhw ar gael yn eich porwr presennol. %(detail)s", @@ -1395,15 +1324,6 @@ "unban_first_title": "Nid oes modd gwahodd defnyddiwr nes ei fod heb ei ddad-wahardd" }, "inviting_user1_and_user2": "Yn gwahodd %(user1)s a %(user2)s", - "inviting_user_and_n_others": { - "Yn gwahodd %(user)s ac un arall": "one", - "Yn gwahodd %(user)s a %(count)s arall": "other" - }, - "items_and_n_others": { - " a dim arall": "zero", - " ac un arall": "one", - " a %(count)s arall": "other" - }, "keyboard": { "activate_button": "Agor y botwm hwn", "alt": "Alt", @@ -1659,10 +1579,6 @@ "toggle_attribution": "Toglo priodoli" }, "member_list": { - "count": { - "%(count)s Aelodau": "zero", - "%(count)s Aelod": "other" - }, "filter_placeholder": "Hidlo aelodau'r ystafell", "invite_button_no_perms_tooltip": "Nid oes gennych ganiatâd i wahodd defnyddwyr", "invited_label": "Gwahoddwyd", @@ -1753,13 +1669,6 @@ "topic_label": "Cwestiwn neu bwnc", "topic_placeholder": "Ysgrifennu rhywbeth…", "total_decryption_errors": "Oherwydd gwallau dadgryptio, efallai na fydd rhai pleidleisiau'n cael eu cyfrif", - "total_n_votes": { - "%(count)s pleidlais wedi'u bwrw. Pleidleisiwch i weld y canlyniadau.": "other", - "%(count)s pleidlais wedi'i bwrw. Pleidleisiwch i weld y canlyniadau.": "one" - }, - "total_n_votes_voted": { - "Ar sail %(count)s pleidlais": "other" - }, "total_no_votes": "Dim pleidleisiau wedi'u bwrw", "total_not_ended": "Bydd y canlyniadau i'w gweld pan ddaw'r bleidlais i ben", "type_closed": "Arolwg wedi'i chau", @@ -1870,13 +1779,6 @@ "pinned_messages": { "empty_description": "Dewiswch neges a dewiswch “%(pinAction)s” i'w chynnwys yma.", "empty_title": "Pinio negeseuon pwysig fel y mae modd eu darganfod yn hawdd", - "header": { - "%(count)s Neges wedi'u pinio": "other", - "1 Neges wedi'i binio": "one" - }, - "limits": { - "Dim ond hyd at %(count)s teclyn y gallwch eu pinio": "other" - }, "menu": "Agor dewislen", "reply_thread": "Ymateb i a neges edefyn", "unpin_all": { @@ -1891,26 +1793,8 @@ "active_heading": "Arolygon gweithredol", "empty_active": "Nid oes unrhyw arolygon gweithredol yn yr ystafell hon", "empty_active_load_more": "Nid oes unrhyw arolygon gweithredol. Llwythwch fwy o arolygon barn y misoedd blaenorol", - "empty_active_load_more_n_days": { - "Does dim polau gweithredol ar gyfer y dyddiau diwethaf. Llwythwch ragor o bolau i weld polau'r misoedd blaenorol": "zero", - "Does dim polau gweithredol ar gyfer y diwrnod diwethaf. Llwythwch ragor o bolau i weld polau'r misoedd blaenorol": "one", - "Does dim polau gweithredol ar gyfer y %(count)s ddiwrnod diwethaf. Llwythwch ragor o bolau i weld polau'r misoedd blaenorol": "two", - "Does dim polau gweithredol ar gyfer y %(count)s diwrnod diwethaf. Llwythwch ragor o bolau i weld polau'r misoedd blaenorol": "other" - }, "empty_past": "Nid oes arolygon o'r gorffennol yn yr ystafell hon", "empty_past_load_more": "Nid oes unrhyw arolygon o'r gorffennol. Llwythwch fwy o arolygon barn ar gyfer y misoedd blaenorol", - "empty_past_load_more_n_days": { - "Does dim polau'r gorffennol ar gyfer y dyddiau diwethaf. Llwythwch ragor o bolau i weld polau'r misoedd blaenorol": "zero", - "Does dim polau'r gorffennol ar gyfer y diwrnod diwethaf. Llwythwch ragor o bolau i weld polau'r misoedd blaenorol": "one", - "Does dim polau'r gorffennol ar gyfer y %(count)s ddiwrnod diwethaf. Llwythwch ragor o bolau i weld polau'r misoedd blaenorol": "two", - "Does dim polau'r gorffennol ar gyfer y %(count)s diwrnod diwethaf. Llwythwch ragor o bolau i weld polau'r misoedd blaenorol": "other" - }, - "final_result": { - "Canlyniadau terfynol yn seiliedig ar %(count)s pleidleisiau": "zero", - "Canlyniadau terfynol yn seiliedig ar %(count)s pleidlais": "other", - "Canlyniadau terfynol yn seiliedig ar %(count)s bleidlais": "two", - "Canlyniadau terfynol yn seiliedig ar %(count)s phleidlais": "many" - }, "load_more": "Llwytho mwy o arolygon barn", "loading": "Wrthi'n llwytho arolygon", "past_heading": "Arolygon y gorffennol", @@ -1975,15 +1859,6 @@ "error_jump_to_date_not_found": "Nid oeddem yn gallu dod o hyd i ddigwyddiad yn edrych ymlaen o %(dateString)s. Ceisiwch ddewis dyddiad cynharach.", "error_jump_to_date_send_logs_prompt": "Cyflwynwch logiau dadfygio i'n helpu i ddod o hyd i'r broblem.", "error_jump_to_date_title": "Methu dod o hyd i ddigwyddiad ar y dyddiad hwnnw", - "face_pile_summary": { - "Y %(count)s personau rydych chi'n ei adnabod sydd eisoes wedi ymuno": "zero", - "Yr %(count)s person rydych chi'n ei adnabod sydd eisoes wedi ymuno": "one", - "Y %(count)s person rydych chi'n ei adnabod sydd eisoes wedi ymuno": "other" - }, - "face_pile_tooltip_label": { - "Gweld y cyfan o'r %(count)s aelod": "other", - "Gweld 1 aelod": "one" - }, "face_pile_tooltip_shortcut": "Gan gynnwys %(commaSeparatedMembers)s", "face_pile_tooltip_shortcut_joined": "Gan eich cynnwys chi, %(commaSeparatedMembers)s", "failed_determine_user": "Nid oes modd pennu pa ddefnyddiwr i'w anwybyddu gan fod y digwyddiad aelod wedi newid.", @@ -1991,11 +1866,6 @@ "forget_room": "Anghofiwch yr ystafell hon", "forget_space": "Anghofiwch y gofod hwn", "header": { - "n_people_asking_to_join": { - "%(count)s personau'n gofyn i ymuno": "zero", - "Yn gofyn i ymuno": "one", - "%(count)s person yn gofyn i ymuno": "other" - }, "room_is_public": "Mae'r ystafell hon yn gyhoeddus" }, "header_avatar_open_settings_label": "Agor gosodiadau ystafell", @@ -2085,10 +1955,6 @@ "search": { "all_rooms_button": "Chwiliwch bob ystafell", "placeholder": "Chwilio negeseuon…", - "summary": { - "%(count)s canlyniad wedi'u canfod ar gyfer “\"": "other", - "1 canlyniad wedi'i ganfod ar gyfer “\"": "one" - }, "this_room_button": "Chwiliwch yr ystafell hon" }, "status_bar": { @@ -2104,11 +1970,6 @@ "some_messages_not_sent": "Nid yw rhai o'ch negeseuon wedi'u hanfon" }, "unknown_status_code_for_timeline_jump": "cod statws anhysbys", - "unread_notifications_predecessor": { - "Does gennych %(count)s hysbysiad heb eu darllen mewn fersiwn flaenorol o'r ystafell hon": "zero", - "Mae gennych %(count)s hysbysiad heb ei ddarllen mewn fersiwn flaenorol o'r ystafell hon.": "one", - "Mae gennych %(count)s hysbysiad heb eu darllen mewn fersiwn flaenorol o'r ystafell hon": "other" - }, "upgrade_error_description": "Gwiriwch ddwywaith bod eich gweinydd yn cefnogi'r fersiwn ystafell a ddewiswyd a rhowch gynnig arall arni.", "upgrade_error_title": "Gwall wrth uwchraddio'r ystafell", "upgrade_warning_bar": "Bydd uwchraddio'r ystafell hon yn cau enghraifft bresennol yr ystafell ac yn creu ystafell wedi'i huwchraddio gyda'r un enw.", @@ -2116,9 +1977,6 @@ "upgrade_warning_bar_unstable": "Mae'r ystafell hon yn fersiwn ystafell redeg , y mae'r gweinydd cartref hwn wedi'i nodi'n ansefydlog.", "upgrade_warning_bar_upgraded": "Mae'r ystafell hon eisoes wedi'i huwchraddio.", "upload": { - "uploading_multiple_file": { - "Wrthi'n llwytho i fyny %(filename)s a %(count)s arall": "other" - }, "uploading_single_file": "Wrthi'n llwytho %(filematere)s" }, "video_room": "Mae'r ystafell hon yn ystafell fideo", @@ -2163,9 +2021,6 @@ }, "home_menu_label": "Dewisiadau cartref", "join_public_room_label": "Ymuno â'r ystafell gyhoeddus", - "joining_rooms_status": { - "Yn ymuno â %(count)s ystafell ar hyn o bryd": "other" - }, "list_title": "Rhestr ystafelloedd", "more_options": { "copy_link": "Copïo dolen ystafell", @@ -2187,9 +2042,6 @@ }, "room_options": "Dewisiadau Ystafelloedd", "show_less": "Dangos llai", - "show_n_more": { - "Dangos %(count)s yn rhagor": "other" - }, "show_previews": "Dangos rhagolwg o negeseuon", "sort": "Trefnu", "sort_by": "Trefnu yn ôl", @@ -2412,25 +2264,10 @@ "join_rule_restricted_dialog_heading_space": "Gofodau rydych yn eu hadnabod sy'n cynnwys y gofod hwn", "join_rule_restricted_dialog_heading_unknown": "Mae'r rhain yn debygol o fod yn rhai y mae gweinyddwyr ystafell eraill yn rhan ohonyn nhw.", "join_rule_restricted_dialog_title": "Dewiswch ofodau", - "join_rule_restricted_n_more": { - "a %(count)s yn rhagor": "other" - }, - "join_rule_restricted_summary": { - "Ar hyn o bryd, mae gan %(count)s gofod fynediad": "other", - "Ar hyn o bryd, mae gan ofod fynediad": "one" - }, "join_rule_restricted_upgrade_description": "Bydd yr uwchraddiad hwn yn caniatáu i aelodau o ofodau penodol gael mynediad i'r ystafell hon heb wahoddiad.", "join_rule_restricted_upgrade_warning": "Mae'r ystafell hon mewn rhai gofodau nad ydych chi'n weinyddwr iddynt. Yn y gofodau hynny, bydd yr hen ystafell yn dal i gael ei dangos, ond bydd pobl yn cael eu hannog i ymuno â'r un newydd.", "join_rule_upgrade_awaiting_room": "Wrthi'n llwytho ystafell newydd", "join_rule_upgrade_required": "Angen uwchraddio", - "join_rule_upgrade_sending_invites": { - "Yn anfon gwahoddiad... (%(progress)s o %(count)s)": "other", - "Yn anfon gwahoddiad...": "one" - }, - "join_rule_upgrade_updating_spaces": { - "Yn diweddaru gofod... (%(progress)s o %(count)s)": "other", - "Yn diweddaru gofod...": "one" - }, "join_rule_upgrade_upgrading_room": "Ystafell uwchraddio", "join_rule_world_readable_description": "Bydd newid pwy all ymuno â'r ystafell yn newid gwelededd negeseuon yn y dyfodol hefyd.", "public_without_alias_warning": "I gysylltu â'r ystafell hon, ychwanegwch gyfeiriad.", @@ -2891,9 +2728,6 @@ "key_backup_algorithm": "Algorithm:", "message_search_disable_warning": "Os yw wedi'i analluogi, ni fydd negeseuon o ystafelloedd wedi'u hamgryptio yn ymddangos yn y canlyniadau chwilio.", "message_search_disabled": "Cadwch negeseuon wedi'u hamgryptio'n ddiogel yn lleol er mwyn iddyn nhw ymddangos yn y canlyniadau chwilio.", - "message_search_enabled": { - "Cadw negeseuon wedi'u hamgryptio yn ddiogel yn y storfa leol er mwyn iddyn nhw ymddangos mewn canlyniadau chwilio, gan ddefnyddio %(size)s i storio negeseuon o %(rooms)s ystafell.": "other" - }, "message_search_failed": "Methwyd cychwyn chwiliad neges", "message_search_indexed_messages": "Negeseuon wedi'u mynegeio:", "message_search_indexed_rooms": "Ystafelloedd wedi'u mynegeio:", @@ -2916,22 +2750,6 @@ "sessions": { "best_security_note": "Er mwyn sicrhau'r diogelwch gorau, gwiriwch eich sesiynau ac allgofnodwch o unrhyw sesiwn nad ydych yn ei hadnabod nac yn ei defnyddio mwyach.", "browser": "Porwr", - "confirm_sign_out": { - "Cadarnhau allgofnodi o'r ddyfeisiau hyn": "other", - "Cadarnhau allgofnodi o'r ddyfais hon": "one" - }, - "confirm_sign_out_body": { - "Cliciwch y botwm isod i gadarnhau allgofnodi o'r dyfeisiau hyn.": "other", - "Cliciwch y botwm isod i gadarnhau allgofnodi o'r ddyfais hon.": "one" - }, - "confirm_sign_out_continue": { - "Allgofnodi o ddyfeisiau": "other", - "Allgofnodi o ddyfais": "one" - }, - "confirm_sign_out_sso": { - "Cadarnhau allgofnodi o'r ddyfeisiau hyn trwy ddefnyddio Mewngofnodi Sengl i brofi pwy ydych chi.": "other", - "Cadarnhau allgofnodi o'r ddyfais hon trwy ddefnyddio Mewngofnodi Sengl i brofi pwy ydych chi.": "one" - }, "current_session": "Y sesiwn gyfredol", "desktop_session": "Sesiwn bwrdd gwaith", "details_heading": "Manylion y sesiwn", @@ -2958,10 +2776,6 @@ "last_activity": "Gweithgaredd ddiwethaf", "manage": "Rheoli'r sesiwn hon", "mobile_session": "Sesiwn symudol", - "n_sessions_selected": { - "%(count)s sesiwn wedi'u dewis": "other", - "%(count)s sesiwn wedi'i ddewis": "one" - }, "no_inactive_sessions": "Heb ganfod unrhyw sesiynau anweithredol.", "no_sessions": "Heb ganfod sesiynau.", "no_unverified_sessions": "Heb ganfod unrhyw sesiynau heb eu gwirio.", @@ -2986,12 +2800,6 @@ "sign_in_with_qr_unsupported": "Nid yw'n cael ei gefnogi gan ddarparwr eich cyfrif", "sign_out": "Allgofnodwch o'r sesiwn hon", "sign_out_all_other_sessions": "Allgofnodi o bob sesiwn arall (%(otherSessionsCount)s)", - "sign_out_confirm_description": { - "Ydych chi'n siŵr eich bod chi eisiau allgofnodi o %(count)s sesiwn?": "other" - }, - "sign_out_n_sessions": { - "Allgofnodi o %(count)s sesiwn": "other" - }, "title": "Sesiynau", "unknown_session": "Math o sesiwn anhysbys", "unverified_session": "Sesiwn heb ei wirio", @@ -3175,10 +2983,6 @@ "create_prompt": "Creu ystafell newydd", "dm_heading": "Negeseuon Uniongyrchol", "error_heading": "Ni ychwanegwyd pob un a ddewiswyd", - "progress_text": { - "Yn ychwanegu ystafell...(%(progress)s o %(count)s)": "other", - "Yn ychwanegu ystafell...": "one" - }, "space_dropdown_label": "Dewis gofod", "space_dropdown_title": "Ychwanegu ystafelloedd presennol", "subspace_moved_note": "Mae ychwanegu gofodau wedi symud." @@ -3261,9 +3065,6 @@ "cant_find_person_helpful_hint": "Os na allwch weld pwy rydych yn chwilio amdano, anfonwch eich dolen wahoddiad atynt.", "cant_find_room_helpful_hint": "Os na allwch ddod o hyd i'r ystafell yr ydych yn chwilio amdani, gofynnwch am wahoddiad neu crëwch ystafell newydd.", "copy_link_text": "Copïo dolen y gwahoddiad", - "count_of_members": { - "%(count)s Aelod": "other" - }, "create_new_room_button": "Creu ystafell newydd", "failed_querying_public_rooms": "Wedi methu â holi ystafelloedd cyhoeddus", "failed_querying_public_spaces": "Wedi methu cwestiynu gofodau cyhoeddus", @@ -3314,9 +3115,6 @@ "threads": { "all_threads": "Pob edefyn", "all_threads_description": "Yn dangos pob edefyn o'r ystafell gyfredol", - "count_of_reply": { - "%(count)s ateb": "other" - }, "empty_description": "Defnyddio “%(replyInThread)s” wrth hofran dros neges.", "empty_title": "Mae edafedd yn helpu i gadw'ch sgyrsiau ar y pwnc ac yn hawdd eu holrhain.", "error_start_thread_existing_relation": "Methu â chreu edefyn o ddigwyddiad gyda pherthynas sy'n bodoli eisoes", @@ -3332,24 +3130,10 @@ "no_rooms_with_unread_threads": "Nid oes gennych chi ystafelloedd ag edafedd heb eu darllen eto." }, "time": { - "about_day_ago": "tua diwrnod yn ôl", - "about_hour_ago": "tua awr yn ol", - "about_minute_ago": "tua munud yn ôl", "date_at_time": "%(date)s am %(time)s", - "few_seconds_ago": "ychydig eiliadau yn ôl", "hours_minutes_seconds_left": "%(hours)sa %(minutes)sm %(seconds)s ar ôl", - "in_about_day": "tua diwrnod o nawr", - "in_about_hour": "tuag awr o hyn", - "in_about_minute": "tua munud o nawr", - "in_few_seconds": "ychydig eiliadau o nawr", - "in_n_days": "%(num)s diwrnod o nawr", - "in_n_hours": "%(num)s awr o nawr", - "in_n_minutes": "%(num)s munud o nawr", "left": "%(timeRemaining)s ar ôl", "minutes_seconds_left": "%(minutes)sm %(seconds)ss ar ôl", - "n_days_ago": "%(num)s diwrnod yn ôl", - "n_hours_ago": "%(num)s awr yn ôl", - "n_minutes_ago": "%(num)s munud yn ôl", "seconds_left": "Mae %(seconds)s ar ôl", "short_days": "%(value)sch", "short_days_hours_minutes_seconds": "%(days)sd %(hours)sa %(minutes)sm %(seconds)ss", @@ -3404,11 +3188,9 @@ "unable_to_find": "Wedi ceisio llwytho pwynt penodol yn llinell amser yr ystafell hon, ond ni lwyddodd i ddod o hyd iddo." }, "m.audio": { - "audio_player": "Chwaraewr sain", "error_downloading_audio": "Gwall wrth llwytho i lawrsain", "error_processing_audio": "Gwall wrth brosesu neges sain", - "error_processing_voice_message": "Gwall wrth brosesu neges llais", - "unnamed_audio": "Sain dienw" + "error_processing_voice_message": "Gwall wrth brosesu neges llais" }, "m.beacon_info": { "view_live_location": "Gweld lleoliad byw" @@ -3459,11 +3241,6 @@ "location": "Wedi rhannu lleoliad: ", "self_location": "Wedi rhannu eu lleoliad: " }, - "m.poll": { - "count_of_votes": { - "%(count)s pleidlais": "other" - } - }, "m.poll.end": { "sender_ended": "Mae %(senderName)s wedi dod ag arolwg i ben" }, @@ -3475,14 +3252,6 @@ "removed": "Mae %(senderDisplayName)s wedi tynnu afatar yr ystafell." }, "m.room.canonical_alias": { - "alt_added": { - "Mae %(senderName)s wedi ychwanegu cyfeiriadau eraill %(addresses)s ar gyfer yr ystafell hon.": "other", - "Mae %(senderName)s wedi ychwanegu cyfeiriad arall %(addresses)s ar gyfer yr ystafell hon.": "one" - }, - "alt_removed": { - "Mae %(senderName)s wedi tynnu cyfeiriadau eraill %(addresses)s ar gyfer yr ystafell hon.": "other", - "Mae %(senderName)s wedi tynnu cyfeiriad arall %(addresses)s ar gyfer yr ystafell hon.": "one" - }, "changed": "Newidiodd %(senderName)s y cyfeiriadau ar gyfer yr ystafell hon.", "changed_alternative": "Mae %(senderName)s wedi newid y cyfeiriadau amgen ar gyfer yr ystafell hon.", "changed_main_and_alternative": "Newidiodd %(senderName)s y prif gyfeiriadau a chyfeiriadau amgen ar gyfer yr ystafell hon.", @@ -3634,9 +3403,6 @@ "label": "Ymatebodd %(reactors)s gyda %(content)s", "tooltip_caption": "wedi ymateb gyda %(shortName)s" }, - "read_receipt_title": { - "Wedi'i weld gan %(count)s person": "other" - }, "read_receipts_label": "Derbynebau darllen", "redacted": { "tooltip": "Neges wedi'i dileu ar %(date)s" @@ -3657,173 +3423,18 @@ "send_state_sending": "Wrthi'n anfon eich neges…", "send_state_sent": "Anfonwyd eich neges", "summary": { - "banned": { - "wedi'u gwahardd": "zero", - "wedi'i wahardd": "one", - "wedi'u gwahardd %(count)s gwaith": "other" - }, - "banned_multiple": { - "wedi'u gwahardd": "zero", - "wedi'i wahardd": "one", - "wedi'u gwahardd %(count)s gwaith": "other" - }, - "changed_avatar": { - "Does %(count)s %(oneUser)s wedi newid eu llun proffil": "zero", - "Mae %(oneUser)s wedi newid eu llun proffil %(count)s gwaith": "other" - }, - "changed_avatar_multiple": { - "Does %(count)s o %(severalUsers)s wedi newid eu llun proffil": "zero", - "Mae %(severalUsers)s wedi newid ei lun proffil": "one", - "Mae %(severalUsers)s wedi newid eu llun proffil %(count)s gwaith": "other" - }, - "changed_name": { - "Mae %(oneUser)s wedi newid ei enw %(count)s gwaith": "other", - "Mae %(oneUser)s wedi newid ei enw": "one" - }, - "changed_name_multiple": { - "Mae %(severalUsers)s wedi newid eu henwau %(count)s gwaith": "other", - "Mae %(severalUsers)s wedi newid ei enw": "one" - }, - "format": "%(matereList)s %(transitionList)s", - "hidden_event": { - "Anfonodd %(oneUser)s %(count)s negeseuon cudd": "zero", - "Anfonodd %(oneUser)s neges gudd": "one", - "Anfonodd %(oneUser)s %(count)s neges gudd": "other" - }, - "hidden_event_multiple": { - "Anfonodd %(severalUsers)s %(count)s negeseuon cudd ": "zero", - "Anfonodd %(severalUsers)s neges gudd": "one", - "Anfonodd %(severalUsers)s %(count)s neges gudd": "other" - }, - "invite_withdrawn": { - "Mae %(oneUser)swedi cael eu gwahoddiadau wedi'i dynnu'n ôl": "zero", - "Mae %(oneUser)swedi cael ei gwahoddiad wedi'i dynnu'n ôl": "one", - "Mae %(oneUser)swedi cael eu gwahoddiad wedi'i dynnu'n ôl %(count)s gwaith": "other" - }, - "invite_withdrawn_multiple": { - "Cafodd %(severalUsers)s eu gwahoddiadau eu dileu": "one", - "Cafodd %(severalUsers)s eu gwahoddiadau eu dileu %(count)s gwaith": "other" - }, - "invited": { - "wedi'u gwahodd": "zero", - "wedi'i wahodd": "one", - "wedi'u gwahodd %(count)s gwaith": "other" - }, - "invited_multiple": { - "wedi'u gwahodd": "zero", - "wedi'i wahodd": "one", - "wedi'u gwahodd %(count)s gwaith": "other" - }, - "joined": { - "Ymunodd %(oneUser)s %(count)s gwaith": "other", - "Ymunodd %(oneUser)s": "one" - }, - "joined_and_left": { - "Ymunodd a gadawodd %(oneUser)s %(count)s gwaith": "other" - }, - "joined_and_left_multiple": { - "Ymunodd a gadawodd %(severalUsers)s": "one", - "Ymunodd a gadawodd %(severalUsers)s %(count)s gwaith": "other" - }, - "joined_multiple": { - "Ymunodd %(severalUsers)s": "zero", - "Ymunodd %(severalUsers)s %(count)s gwaith": "other" - }, - "kicked": { - "wedi'u tynnu %(count)s gwaith": "other", - "wedi'u tynnu": "one" - }, - "kicked_multiple": { - "wedi'u tynnu %(count)s gwaith": "other", - "wedi'u tynnu": "one" - }, - "left": { - "Gadawodd %(oneUser)s": "one", - "Gadawodd %(oneUser)s %(count)s gwaith": "other" - }, - "left_multiple": { - "Gadawodd %(severalUsers)s": "one", - "Gadawodd %(severalUsers)s %(count)s gwaith": "other" - }, - "no_change": { - "Dyw %(oneUser)s heb wneud unrhyw newidiadau %(count)s gwaith": "other", - "Dyw %(oneUser)s heb wneud unrhyw newidiadau": "one" - }, - "no_change_multiple": { - "Dyw %(severalUsers)s heb wneud unrhyw newidiadau %(count)s gwaith": "other", - "Dyw %(severalUsers)s heb wneud unrhyw newidiadau": "one" - }, - "pinned_events": { - "Newidiodd %(oneUser)s y negeseuon wedi'u pinio yr ystafell %(count)s gwaith": "other", - "Newidiodd %(oneUser)s y negeseuon wedi'u pinio yr ystafell": "one" - }, - "pinned_events_multiple": { - "Newidiodd %(severalUsers)s y negeseuon wedi'u pinio yr ystafell %(count)s gwaith": "other", - "Newidiodd %(severalUsers)s y negeseuon wedi'u pinio yr ystafell": "one" - }, - "redacted": { - "Tynnodd %(oneUser)s %(count)s neges": "other", - "Tynnodd %(oneUser)s neges": "one" - }, - "redacted_multiple": { - "Tynnodd %(severalUsers)s %(count)s neges": "other", - "Tynnodd %(severalUsers)s neges": "one" - }, - "rejected_invite": { - "Gwrthododd %(severalUsers)s eu gwahoddiadau": "zero", - "Gwrthododd %(oneUser)s ei wahoddiad": "one", - "Gwrthododd %(oneUser)s eu gwahoddiadau %(count)s gwaith": "other" - }, - "rejected_invite_multiple": { - "Gwrthododd %(severalUsers)s eu gwahoddiadau": "one", - "Gwrthododd %(severalUsers)s eu gwahoddiadau %(count)s gwaith": "other" - }, - "rejoined": { - "Ymunodd a gadawodd %(oneUser)s": "one", - "Ymunodd a gadawodd %(oneUser)s %(count)s gwaith": "other" - }, - "rejoined_multiple": { - "Ymunodd a gadawodd %(severalUsers)s": "one", - "Ymunodd a gadawodd %(severalUsers)s %(count)s gwaith": "other" - }, - "server_acls": { - "Mae %(oneUser)s wedi newid ACLs y gweinydd %(count)s gwaith": "other", - "Mae %(oneUser)s wedi newid ACLs y gweinydd": "one" - }, - "server_acls_multiple": { - "Mae %(severalUsers)s wedi newid ACLs y gweinydd %(count)s gwaith": "other", - "Mae %(severalUsers)s wedi newid ACLs y gweinydd": "one" - }, - "unbanned": { - "wedi'u dadwahardd %(count)s gwaith": "other", - "wedi'u dadwahardd": "one" - }, - "unbanned_multiple": { - "wedi'u dadwahardd %(count)s gwaith\n ": "zero", - "wedi'i ddadwahardd": "one", - "wedi'u dadwahardd %(count)s gwaith": "other" - } + "format": "%(matereList)s %(transitionList)s" }, "thread_info_basic": "O edefyn", "typing_indicator": { - "more_users": { - "Mae %(names)s ac mae %(count)s eraill yn teipio...": "other", - "Mae %(names)s ac mae un arall yn teipio...": "one" - }, "one_user": "Mae %(displayName)s yn teipio…", "two_users": "Mae %(materes)s a %(lastPerson)s yn teipio…" }, "undecryptable_tooltip": "Nid oedd modd dadgryptio'r neges hon", "url_preview": { - "close": "Cau rhagolwg", - "show_n_more": { - "Dangos %(count)s rhagolwg arall": "other" - } + "close": "Cau rhagolwg" } }, - "truncated_list_n_more": { - "A %(count)s yn rhagor...": "other" - }, "unsupported_browser": { "description": "Os byddwch yn parhau, efallai na fydd rhai nodweddion yn gweithio ac mae risg y gallech golli data yn y dyfodol. Diweddarwch eich porwr i barhau i ddefnyddio %(brand)s.", "title": "Nid yw %(brand)s yn cefnogi'r porwr hwn" @@ -3864,10 +3475,7 @@ "not_image": "Nid yw'r ffeil rydych chi wedi'i dewis yn ffeil delwedd ddilys.", "title": "Llwytho ffeiliau", "title_progress": "Llwytho ffeiliau (%(current)s o %(total)s)", - "upload_all_button": "Llwytho'r cyfan", - "upload_n_others_button": { - "Llwytho %(count)s ffeil arall": "other" - } + "upload_all_button": "Llwytho'r cyfan" }, "user_info": { "admin_tools_section": "Offer Gweinyddol", @@ -3905,13 +3513,6 @@ "kick_space_warning": "Byddan nhw'n dal i allu cael mynediad at beth bynnag nad ydych yn weinyddwr iddo.", "promote_warning": "Fyddwch chi ddim yn gallu dadwneud y newid hwn gan eich bod yn hyrwyddo'r defnyddiwr i gael yr un lefel pŵer â chi'ch hun.", "redact": { - "confirm_button": { - "Tynnu %(count)s neges": "other", - "Tynnu 1 neges": "one" - }, - "confirm_description_1": { - "Rydych chi ar fin tynnu %(count)s neges gan %(user)s. Bydd hyn yn eu tynnu'n barhaol i bawb yn y sgwrs. ​​Ydych chi am barhau?": "other" - }, "confirm_description_2": "Ar gyfer llawer iawn o negeseuon, gallai hyn gymryd peth amser. Peidiwch ag adnewyddu eich cleient yn y cyfamser.", "confirm_keep_state_explainer": "Dad-diciwch a ydych hefyd am ddileu negeseuon system ar y defnyddiwr hwn (e.e. newid aelodaeth, newid proffil…)", "confirm_keep_state_label": "Cadw negeseuon system", @@ -4002,10 +3603,6 @@ "msisdn_lookup_failed": "Methu chwilio am y rhif ffôn", "msisdn_lookup_failed_description": "Bu gwall wrth chwilio am y rhif ffôn", "msisdn_transfer_failed": "Methu trosglwyddo galwad", - "n_people_joined": { - "Does %(count)s person wedi ymuno": "zero", - "Mae %(count)s person wedi ymuno": "other" - }, "no_audio_input_description": "Heb ddod o hyd i feicroffon ar eich dyfais. Gwiriwch eich gosodiadau a cheisiwch eto.", "no_audio_input_title": "Heb ganfod meicroffon", "no_media_perms_description": "Mae'n bosibl y bydd angen i chi ganiatáu i %(brand)s gael mynediad i'ch meicroffon/gwegamera â llaw", diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json index 00bc5734a8..aa57c55bec 100644 --- a/src/i18n/strings/da.json +++ b/src/i18n/strings/da.json @@ -92,9 +92,7 @@ "ok": "OK", "open": "Åbn", "open_menu": "Åbn menu", - "pause": "Pausér", "pin": "Fastgør", - "play": "Afspil", "proceed": "Fortsæt", "quote": "Citat", "react": "Reager", @@ -1639,7 +1637,6 @@ "files_button": "Filer", "pinned_messages": { "limits": { - "one": "", "other": "Du kan kun fastgøre op til %(count)s widgets" } }, @@ -2886,24 +2883,10 @@ "show_thread_filter": "Vis:" }, "time": { - "about_day_ago": "omkring en dag siden", - "about_hour_ago": "for omkring en time siden", - "about_minute_ago": "for omkring et minut siden", "date_at_time": "%(date)s om %(time)s", - "few_seconds_ago": "for et par sekunder siden", "hours_minutes_seconds_left": "%(hours)st %(minutes)sm %(seconds)ss tilbage", - "in_about_day": "om cirka en dag fra nu", - "in_about_hour": "omkring en time fra nu", - "in_about_minute": "omkring et minut fra nu", - "in_few_seconds": "et par sekunder fra nu", - "in_n_days": "%(num)s dage fra nu", - "in_n_hours": "%(num)s timer fra nu", - "in_n_minutes": "%(num)s minutter fra nu", "left": "%(timeRemaining)s tilbage", "minutes_seconds_left": "%(minutes)sm %(seconds)ss tilbage", - "n_days_ago": "%(num)s dage siden", - "n_hours_ago": "%(num)s timer siden", - "n_minutes_ago": "%(num)s minutter siden", "seconds_left": "%(seconds)ss tilbage", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)st %(minutes)sm %(seconds)ss", @@ -2951,8 +2934,7 @@ "m.audio": { "error_downloading_audio": "Fejl ved download af lyd", "error_processing_audio": "Fejl ved behandling af lydbesked", - "error_processing_voice_message": "Fejl ved behandling af talebesked", - "unnamed_audio": "Unavngiven lyd" + "error_processing_voice_message": "Fejl ved behandling af talebesked" }, "m.beacon_info": { "view_live_location": "Se live lokation" @@ -3351,7 +3333,6 @@ } }, "truncated_list_n_more": { - "one": "", "other": "Og %(count)s mere..." }, "unsupported_server_description": "Denne server bruger en ældre version af Matrix. Opgrader til Matrix %(version)s for at kunne bruge %(brand)s uden fejl.", diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index ecdd47ccac..63bdb63092 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -100,9 +100,7 @@ "ok": "Ok", "open": "Öffnen", "open_menu": "Menu öffnen", - "pause": "Pausieren", "pin": "Anheften", - "play": "Abspielen", "proceed": "Fortfahren", "quote": "Zitieren", "react": "Reagieren", @@ -3364,24 +3362,10 @@ "no_rooms_with_unread_threads": "Es gibt keine Chats mit ungelesenen Threads." }, "time": { - "about_day_ago": "vor etwa einem Tag", - "about_hour_ago": "vor etwa einer Stunde", - "about_minute_ago": "vor etwa einer Minute", "date_at_time": "%(date)s um %(time)s", - "few_seconds_ago": "vor ein paar Sekunden", "hours_minutes_seconds_left": "%(hours)s h %(minutes)s m %(seconds)s s verbleibend", - "in_about_day": "in etwa einem Tag", - "in_about_hour": "in etwa einer Stunde", - "in_about_minute": "in etwa einer Minute", - "in_few_seconds": "in ein paar Sekunden", - "in_n_days": "in %(num)s Tagen", - "in_n_hours": "in %(num)s Stunden", - "in_n_minutes": "In etwa %(num)s Minuten", "left": "%(timeRemaining)s übrig", "minutes_seconds_left": "%(minutes)s m %(seconds)s s verbleibend", - "n_days_ago": "vor %(num)s Tagen", - "n_hours_ago": "vor %(num)s Stunden", - "n_minutes_ago": "vor %(num)s Minuten", "seconds_left": "%(seconds)s verbleibend", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)s d %(hours)s h %(minutes)s m %(seconds)s s", @@ -3436,11 +3420,9 @@ "unable_to_find": "Der Sprung an eine bestimmte Stelle im Nachrichtenverlauf dieses Chats ist gescheitert. Die Stelle konnte nicht gefunden werden." }, "m.audio": { - "audio_player": "Audio-Player", "error_downloading_audio": "Fehler beim Herunterladen der Audiodatei", "error_processing_audio": "Fehler beim Verarbeiten der Audionachricht", - "error_processing_voice_message": "Fehler beim Verarbeiten der Sprachnachricht", - "unnamed_audio": "Unbenannte Audiodatei" + "error_processing_voice_message": "Fehler beim Verarbeiten der Sprachnachricht" }, "m.beacon_info": { "view_live_location": "Echtzeit-Standort anzeigen" diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index 8289ac7347..1745aac7a8 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -82,9 +82,7 @@ "no": "Όχι", "ok": "Εντάξει", "open": "Άνοιγμα", - "pause": "Παύση", "pin": "Καρφίτσα", - "play": "Αναπαραγωγή", "proceed": "Συνέχεια", "quote": "Παράθεση", "react": "Αντίδραση", @@ -2618,24 +2616,10 @@ "show_thread_filter": "Εμφάνισε:" }, "time": { - "about_day_ago": "σχεδόν μία μέρα πριν", - "about_hour_ago": "σχεδόν μία ώρα πριν", - "about_minute_ago": "σχεδόν ένα λεπτό πριν", "date_at_time": "%(date)s στις %(time)s", - "few_seconds_ago": "λίγα δευτερόλεπτα πριν", "hours_minutes_seconds_left": "απομένουν %(hours)sώ %(minutes)sλ %(seconds)sδλ", - "in_about_day": "περίπου μια μέρα από τώρα", - "in_about_hour": "περίπου μία ώρα από τώρα", - "in_about_minute": "περίπου ένα λεπτό από τώρα", - "in_few_seconds": "λίγα δευτερόλεπτα από τώρα", - "in_n_days": "%(num)s μέρες από τώρα", - "in_n_hours": "%(num)s ώρες από τώρα", - "in_n_minutes": "%(num)s λεπτά από τώρα", "left": "%(timeRemaining)s απομένουν", "minutes_seconds_left": "απομένουν %(minutes)sλ %(seconds)sδλ", - "n_days_ago": "%(num)s μέρες πριν", - "n_hours_ago": "%(num)s ώρες πριν", - "n_minutes_ago": "%(num)s λεπτά πριν", "seconds_left": "%(seconds)ss απομένουν", "short_days": "%(value)sμέρες", "short_days_hours_minutes_seconds": "%(days)sη %(hours)sώ %(minutes)sλ %(seconds)sδλ", @@ -2676,8 +2660,7 @@ "m.audio": { "error_downloading_audio": "Σφάλμα λήψης ήχου", "error_processing_audio": "Σφάλμα επεξεργασίας του ηχητικού μηνύματος", - "error_processing_voice_message": "Σφάλμα επεξεργασίας του φωνητικού μηνύματος", - "unnamed_audio": "Ήχος χωρίς όνομα" + "error_processing_voice_message": "Σφάλμα επεξεργασίας του φωνητικού μηνύματος" }, "m.call": { "video_call_started": "Ξεκίνησε βιντεοκλήση στο %(roomName)s", diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 03936f61bc..8d1ae17ea2 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -101,9 +101,7 @@ "ok": "OK", "open": "Open", "open_menu": "Open menu", - "pause": "Pause", "pin": "Pin", - "play": "Play", "proceed": "Proceed", "quote": "Quote", "react": "React", @@ -2133,7 +2131,6 @@ "status_bar": { "delete_all": "Delete all", "exceeded_resource_limit": "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.", - "history_visible": "This room has been configured so that new members can read history. Learn More", "homeserver_blocked": "Your message wasn't sent because this homeserver has been blocked by its administrator. Please contact your service administrator to continue using the service.", "monthly_user_limit_reached": "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.", "requires_consent_agreement": "You can't send any messages until you review and agree to our terms and conditions.", @@ -3393,24 +3390,10 @@ "no_rooms_with_unread_threads": "You don't have rooms with unread threads yet." }, "time": { - "about_day_ago": "about a day ago", - "about_hour_ago": "about an hour ago", - "about_minute_ago": "about a minute ago", "date_at_time": "%(date)s at %(time)s", - "few_seconds_ago": "a few seconds ago", "hours_minutes_seconds_left": "%(hours)sh %(minutes)sm %(seconds)ss left", - "in_about_day": "about a day from now", - "in_about_hour": "about an hour from now", - "in_about_minute": "about a minute from now", - "in_few_seconds": "a few seconds from now", - "in_n_days": "%(num)s days from now", - "in_n_hours": "%(num)s hours from now", - "in_n_minutes": "%(num)s minutes from now", "left": "%(timeRemaining)s left", "minutes_seconds_left": "%(minutes)sm %(seconds)ss left", - "n_days_ago": "%(num)s days ago", - "n_hours_ago": "%(num)s hours ago", - "n_minutes_ago": "%(num)s minutes ago", "seconds_left": "%(seconds)ss left", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)sh %(minutes)sm %(seconds)ss", @@ -3465,11 +3448,9 @@ "unable_to_find": "Tried to load a specific point in this room's timeline, but was unable to find it." }, "m.audio": { - "audio_player": "Audio player", "error_downloading_audio": "Error downloading audio", "error_processing_audio": "Error processing audio message", - "error_processing_voice_message": "Error processing voice message", - "unnamed_audio": "Unnamed audio" + "error_processing_voice_message": "Error processing voice message" }, "m.beacon_info": { "view_live_location": "View live location" diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json index 3556411638..87717c2ffa 100644 --- a/src/i18n/strings/eo.json +++ b/src/i18n/strings/eo.json @@ -68,9 +68,7 @@ "no": "Ne", "ok": "Bone", "open": "Malfermi", - "pause": "Paŭzigi", "pin": "Pinglo", - "play": "Ludi", "quote": "Citaĵo", "react": "Reagi", "refresh": "Aktualigi", @@ -2035,23 +2033,9 @@ "light_high_contrast": "Malpeza alta kontrasto" }, "time": { - "about_day_ago": "antaŭ ĉirkaŭ tago", - "about_hour_ago": "antaŭ ĉirkaŭ horo", - "about_minute_ago": "antaŭ ĉirkaŭ minuto", "date_at_time": "%(date)s je %(time)s", - "few_seconds_ago": "antaŭ kelkaj sekundoj", "hours_minutes_seconds_left": "%(hours)sh. %(minutes)sm. %(seconds)ss. restas", - "in_about_day": "ĉirkaŭ tagon de nun", - "in_about_hour": "ĉirkaŭ horon de nun", - "in_about_minute": "ĉirkaŭ minuton de nun", - "in_few_seconds": "kelkajn sekundojn de nun", - "in_n_days": "%(num)s tagojn de nun", - "in_n_hours": "%(num)s horojn de nun", - "in_n_minutes": "%(num)s minutojn de nun", "minutes_seconds_left": "%(minutes)sm. %(seconds)ss. restas", - "n_days_ago": "antaŭ %(num)s tagoj", - "n_hours_ago": "antaŭ %(num)s horoj", - "n_minutes_ago": "antaŭ %(num)s minutoj", "seconds_left": "%(seconds)s sekundoj restas", "short_days": "%(value)st.", "short_days_hours_minutes_seconds": "%(days)st. %(hours)sh. %(minutes)sm. %(seconds)ss.", @@ -2089,8 +2073,7 @@ "m.audio": { "error_downloading_audio": "Eraris elŝuto de sondosiero", "error_processing_audio": "Eraris traktado de sonmesaĝo", - "error_processing_voice_message": "Eraris traktado de voĉmesaĝo", - "unnamed_audio": "Sennoma sondosiero" + "error_processing_voice_message": "Eraris traktado de voĉmesaĝo" }, "m.call": { "video_call_started": "Videovoko komenciĝis en %(roomName)s.", diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index c23bc8c5fa..4b2ea056a7 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -92,9 +92,7 @@ "ok": "Vale", "open": "Abrir", "open_menu": "Abrir menú", - "pause": "Pausar", "pin": "Fijar", - "play": "Reproducir", "proceed": "Continuar", "quote": "Citar", "react": "Reaccionar", @@ -2700,24 +2698,10 @@ "show_thread_filter": "Mostrar:" }, "time": { - "about_day_ago": "hace aprox. un día", - "about_hour_ago": "hace aprox. una hora", - "about_minute_ago": "hace aproximadamente un minuto", "date_at_time": "%(date)s a la(s) %(time)s", - "few_seconds_ago": "hace unos segundos", "hours_minutes_seconds_left": "queda(n) %(hours)sh %(minutes)sm %(seconds)ss", - "in_about_day": "dentro de un día", - "in_about_hour": "dentro de una hora", - "in_about_minute": "dentro de un minuto", - "in_few_seconds": "dentro de unos segundos", - "in_n_days": "dentro de %(num)s días", - "in_n_hours": "dentro de %(num)s horas", - "in_n_minutes": "dentro de %(num)s minutos", "left": "Queda %(timeRemaining)s", "minutes_seconds_left": "queda(n) %(minutes)sm %(seconds)ss", - "n_days_ago": "hace %(num)s días", - "n_hours_ago": "hace %(num)s horas", - "n_minutes_ago": "hace %(num)s minutos", "seconds_left": "%(seconds)ss restantes", "short_days": "%(value)s d", "short_days_hours_minutes_seconds": "%(days)sd %(hours)sh %(minutes)sm %(seconds)ss", @@ -2758,11 +2742,9 @@ "unable_to_find": "Se ha intentado cargar cierto punto en la cronología de esta sala, pero no se ha podido encontrarlo." }, "m.audio": { - "audio_player": "Reproductor de audio", "error_downloading_audio": "Error al descargar el audio", "error_processing_audio": "Error al procesar el mensaje de audio", - "error_processing_voice_message": "Ha ocurrido un error al procesar el mensaje de voz", - "unnamed_audio": "Audio sin título" + "error_processing_voice_message": "Ha ocurrido un error al procesar el mensaje de voz" }, "m.beacon_info": { "view_live_location": "Ver ubicación en tiempo real" diff --git a/src/i18n/strings/et.json b/src/i18n/strings/et.json index 54bc4576e4..c2a79a42b6 100644 --- a/src/i18n/strings/et.json +++ b/src/i18n/strings/et.json @@ -101,9 +101,7 @@ "ok": "Sobib", "open": "Ava", "open_menu": "Ava menüü", - "pause": "Peata", "pin": "Tõsta esile", - "play": "Esita", "proceed": "Jätka", "quote": "Tsiteeri", "react": "Reageeri", @@ -1914,7 +1912,6 @@ "other": "%(count)s esiletõstetud sõnumit" }, "limits": { - "one": "", "other": "Sa saad esile tõsta kuni %(count)s vidinat" }, "menu": "Ava menüü", @@ -2126,7 +2123,6 @@ "status_bar": { "delete_all": "Kustuta kõik", "exceeded_resource_limit": "Sinu sõnumit ei saadetud, kuna see koduserver on ületanud on ületanud ressursipiirangu. Teenuse kasutamiseks palun võta ühendust serveri haldajaga.", - "history_visible": "See jututuba on seadistatud sel viisil, et uued liikmed saavad lugeda varasemat ajalugu. Lisateave", "homeserver_blocked": "Sinu sõnumit ei saadetud, kuna see koduserver blokeeritud serveri haldaja poolt. Teenuse kasutamiseks palun võta ühendust serveri haldajaga.", "monthly_user_limit_reached": "Sinu sõnumit ei saadetud, kuna see koduserver on saavutanud igakuise aktiivsete kasutajate piiri. Teenuse kasutamiseks palun võta ühendust serveri haldajaga.", "requires_consent_agreement": "Sa ei saa saata ühtego sõnumit enne, kui oled läbi lugenud ja nõustunud meie kasutustingimustega.", @@ -3387,24 +3383,10 @@ "no_rooms_with_unread_threads": "Pole veel ühtegi lugemata jutulõngaga jututuba." }, "time": { - "about_day_ago": "umbes päev tagasi", - "about_hour_ago": "umbes tund aega tagasi", - "about_minute_ago": "umbes minut tagasi", "date_at_time": "%(date)s %(time)s", - "few_seconds_ago": "mõni sekund tagasi", "hours_minutes_seconds_left": "jäänud on %(hours)st %(minutes)sm %(seconds)ss", - "in_about_day": "umbes päeva pärast", - "in_about_hour": "umbes tunni pärast", - "in_about_minute": "umbes minuti pärast", - "in_few_seconds": "mõne sekundi pärast", - "in_n_days": "%(num)s päeva pärast", - "in_n_hours": "%(num)s tunni pärast", - "in_n_minutes": "%(num)s minuti pärast", "left": "jäänud %(timeRemaining)s", "minutes_seconds_left": "jäänud on %(minutes)sm %(seconds)ss", - "n_days_ago": "%(num)s päeva tagasi", - "n_hours_ago": "%(num)s tundi tagasi", - "n_minutes_ago": "%(num)s minutit tagasi", "seconds_left": "jäänud %(seconds)s sekundit", "short_days": "%(value)s p", "short_days_hours_minutes_seconds": "%(days)s pv %(hours)s t %(minutes)s m %(seconds)s s", @@ -3459,11 +3441,9 @@ "unable_to_find": "Üritasin laadida teatud hetke selle jututoa ajajoonelt, kuid ei suutnud seda leida." }, "m.audio": { - "audio_player": "Meediaesitaja", "error_downloading_audio": "Helifaili allalaadimine ei õnnestunud", "error_processing_audio": "Viga häälsõnumi töötlemisel", - "error_processing_voice_message": "Viga häälsõnumi töötlemisel", - "unnamed_audio": "Nimetu helifail" + "error_processing_voice_message": "Viga häälsõnumi töötlemisel" }, "m.beacon_info": { "view_live_location": "Vaata asukohta reaalajas" diff --git a/src/i18n/strings/fa.json b/src/i18n/strings/fa.json index 3738aa3b40..23f5ca64ec 100644 --- a/src/i18n/strings/fa.json +++ b/src/i18n/strings/fa.json @@ -66,9 +66,7 @@ "no": "خیر", "ok": "باشه", "open": "باز", - "pause": "متوقف‌کردن", "pin": "سنجاق", - "play": "اجرا کردن", "quote": "نقل قول", "react": "واکنش", "refresh": "رفرش", @@ -1776,21 +1774,7 @@ }, "thread_view_back_action_label": "بازگشت به موضوع", "time": { - "about_day_ago": "حدود یک روز قبل", - "about_hour_ago": "حدود یک ساعت قبل", - "about_minute_ago": "حدود یک دقیقه قبل", "date_at_time": "%(date)s ساعت %(time)s", - "few_seconds_ago": "چند ثانیه قبل", - "in_about_day": "حدود یک روز دیگر", - "in_about_hour": "حدود یک ساعت دیگر", - "in_about_minute": "حدود یک دقیقه دیگر", - "in_few_seconds": "چند ثانیه دیگر", - "in_n_days": "%(num)s روز دیگر", - "in_n_hours": "%(num)s ساعت دیگر", - "in_n_minutes": "%(num)s دقیقه دیگر", - "n_days_ago": "%(num)s روز قبل", - "n_hours_ago": "%(num)s ساعت قبل", - "n_minutes_ago": "%(num)s دقیقه قبل", "seconds_left": "%(seconds)s ثانیه باقی‌مانده", "short_minutes": "%(value)sم", "short_seconds": "%(value)sس" diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json index 32f609f683..362ac0db0d 100644 --- a/src/i18n/strings/fi.json +++ b/src/i18n/strings/fi.json @@ -89,9 +89,7 @@ "ok": "OK", "open": "Avaa", "open_menu": "Avaa valikko", - "pause": "Keskeytä", "pin": "Kiinnitä", - "play": "Toista", "proceed": "Jatka", "quote": "Lainaa", "react": "Reagoi", @@ -2816,24 +2814,10 @@ "show_thread_filter": "Näytä:" }, "time": { - "about_day_ago": "noin päivä sitten", - "about_hour_ago": "noin tunti sitten", - "about_minute_ago": "noin minuutti sitten", "date_at_time": "%(date)s klo %(time)s", - "few_seconds_ago": "muutama sekunti sitten", "hours_minutes_seconds_left": "%(hours)s h %(minutes)s m %(seconds)s s jäljellä", - "in_about_day": "noin päivä sitten", - "in_about_hour": "noin tunti sitten", - "in_about_minute": "noin minuutti sitten", - "in_few_seconds": "muutama sekunti sitten", - "in_n_days": "%(num)s päivää sitten", - "in_n_hours": "%(num)s tuntia sitten", - "in_n_minutes": "%(num)s minuuttia sitten", "left": "%(timeRemaining)s jäljellä", "minutes_seconds_left": "%(minutes)s min %(seconds)s s jäljellä", - "n_days_ago": "%(num)s päivää sitten", - "n_hours_ago": "%(num)s tuntia sitten", - "n_minutes_ago": "%(num)s minuuttia sitten", "seconds_left": "%(seconds)s s jäljellä", "short_days": "%(value)s vrk", "short_days_hours_minutes_seconds": "%(days)s pv %(hours)s t %(minutes)s min %(seconds)s s", @@ -2882,8 +2866,7 @@ "m.audio": { "error_downloading_audio": "Virhe ääntä ladattaessa", "error_processing_audio": "Virhe ääniviestiä käsiteltäessä", - "error_processing_voice_message": "Virhe ääniviestin käsittelyssä", - "unnamed_audio": "Nimetön ääni" + "error_processing_voice_message": "Virhe ääniviestin käsittelyssä" }, "m.call": { "video_call_ended": "Videopuhelu päättyi", diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 159f4f450a..88cd598dae 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -101,9 +101,7 @@ "ok": "OK", "open": "Ouvrir", "open_menu": "Ouvrir le menu", - "pause": "Pause", "pin": "Épingler", - "play": "Lecture", "proceed": "Appliquer", "quote": "Citer", "react": "Réagir", @@ -2122,7 +2120,6 @@ "status_bar": { "delete_all": "Tout supprimer", "exceeded_resource_limit": "Votre message n’a pas été envoyé car ce serveur d’accueil a dépassé une de ses limites de ressources. Veuillez contacter l’administrateur de votre service pour continuer à l’utiliser.", - "history_visible": "Ce salon a été configuré afin que les nouveaux membres puissent lire l'historique. En savori plus", "homeserver_blocked": "Votre message n’a pas été envoyé car ce serveur d’accueil a été bloqué par son administrateur. Veuillez contacter l’administrateur de votre service pour continuer à l’utiliser.", "monthly_user_limit_reached": "Votre message n’a pas été envoyé car le serveur d’accueil a atteint sa limite mensuelle d’utilisateurs. Veuillez contacter l’administrateur de votre service pour continuer à l’utiliser.", "requires_consent_agreement": "Vous ne pouvez voir aucun message tant que vous ne lisez et n’acceptez pas nos conditions générales.", @@ -3383,24 +3380,10 @@ "no_rooms_with_unread_threads": "Vous n'avez pas encore de salons contenant des fils de discussion non lus." }, "time": { - "about_day_ago": "il y a environ un jour", - "about_hour_ago": "il y a environ une heure", - "about_minute_ago": "il y a environ une minute", "date_at_time": "%(date)s à %(time)s", - "few_seconds_ago": "il y a quelques secondes", "hours_minutes_seconds_left": "%(hours)sh %(minutes)sm %(seconds)ss restantes", - "in_about_day": "dans un jour environ", - "in_about_hour": "dans une heure environ", - "in_about_minute": "dans une minute environ", - "in_few_seconds": "dans quelques secondes", - "in_n_days": "dans %(num)s jours", - "in_n_hours": "dans %(num)s heures", - "in_n_minutes": "dans %(num)s minutes", "left": "%(timeRemaining)s restant", "minutes_seconds_left": "%(minutes)sm %(seconds)ss restantes", - "n_days_ago": "il y a %(num)s jours", - "n_hours_ago": "il y a %(num)s heures", - "n_minutes_ago": "il y a %(num)s minutes", "seconds_left": "%(seconds)s secondes restantes", "short_days": "%(value)sj", "short_days_hours_minutes_seconds": "%(days)sj %(hours)sh %(minutes)sm %(seconds)ss", @@ -3455,11 +3438,9 @@ "unable_to_find": "Un instant donné du fil de discussion n’a pu être chargé car il n’a pas pu être trouvé." }, "m.audio": { - "audio_player": "Lecteur audio", "error_downloading_audio": "Erreur lors du téléchargement de l’audio", "error_processing_audio": "Erreur lors du traitement du message audio", - "error_processing_voice_message": "Erreur lors du traitement du message vocal", - "unnamed_audio": "Audio sans nom" + "error_processing_voice_message": "Erreur lors du traitement du message vocal" }, "m.beacon_info": { "view_live_location": "Voir la position en direct" diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index ea7522a155..eaa18a2897 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -77,8 +77,6 @@ "next": "Seguinte", "no": "Non", "open": "Abrir", - "pause": "Deter", - "play": "Reproducir", "quote": "Cita", "react": "Reacciona", "refresh": "Actualizar", @@ -2376,24 +2374,10 @@ "show_thread_filter": "Mostrar:" }, "time": { - "about_day_ago": "onte", - "about_hour_ago": "fai unha hora", - "about_minute_ago": "fai un minuto", "date_at_time": "%(date)s ás %(time)s", - "few_seconds_ago": "fai uns segundos", "hours_minutes_seconds_left": "%(hours)sh %(minutes)sm %(seconds)ss restantes", - "in_about_day": "foi onte", - "in_about_hour": "fará unha hora", - "in_about_minute": "haberá un minuto", - "in_few_seconds": "hai só uns segundos", - "in_n_days": "fará %(num)s días", - "in_n_hours": "fará %(num)s horas", - "in_n_minutes": "fará %(num)s minutos", "left": "%(timeRemaining)s restante", "minutes_seconds_left": "%(minutes)sm %(seconds)ss restantes", - "n_days_ago": "fai %(num)s días", - "n_hours_ago": "fai %(num)s horas", - "n_minutes_ago": "fai %(num)s minutos", "seconds_left": "%(seconds)ss restantes" }, "timeline": { @@ -2428,8 +2412,7 @@ "m.audio": { "error_downloading_audio": "Erro ao descargar o audio", "error_processing_audio": "Erro ao procesar a mensaxe de audio", - "error_processing_voice_message": "Erro ao procesar a mensaxe de voz", - "unnamed_audio": "Audio sen nome" + "error_processing_voice_message": "Erro ao procesar a mensaxe de voz" }, "m.beacon_info": { "view_live_location": "Ver localización en directo" diff --git a/src/i18n/strings/he.json b/src/i18n/strings/he.json index 0b7f1986de..ae1f752cd1 100644 --- a/src/i18n/strings/he.json +++ b/src/i18n/strings/he.json @@ -1938,23 +1938,9 @@ "show_thread_filter": "הצג:" }, "time": { - "about_day_ago": "בערך לפני יום", - "about_hour_ago": "בערך לפני כשעה", - "about_minute_ago": "לפני בערך דקה", "date_at_time": "%(date)s בשעה %(time)s", - "few_seconds_ago": "לפני מספר שניות", "hours_minutes_seconds_left": "נשארו %(hours)s שעות, %(minutes)s דקות ו-%(seconds)s שניות", - "in_about_day": "בערך בעוד יום מעכשיו", - "in_about_hour": "בערך בעוד כשעה", - "in_about_minute": "בערך עוד דקה אחת", - "in_few_seconds": "בעוד מספר שניות מעכשיו", - "in_n_days": "בעוד %(num)s ימים מעכשיו", - "in_n_hours": "בעוד %(num)s שעות", - "in_n_minutes": "בעוד %(num)s דקות", "minutes_seconds_left": "נשארו %(minutes)s דקות ו-%(seconds)s שניות", - "n_days_ago": "לפני %(num)s ימים", - "n_hours_ago": "לפני %(num)s שעות", - "n_minutes_ago": "לפני %(num)s דקות", "seconds_left": "נשארו %(seconds)s שניות", "short_days": "%(value)s ימים", "short_hours": "%(value)s שעות", diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 9c10c95a4e..fba37a87af 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -3,25 +3,9 @@ "emoji_picker": "Emodzsiválasztó", "jump_first_invite": "Ugrás az első meghívóhoz.", "message_composer": "Üzenetszerkesztő", - "n_unread_messages": { - "%(count)s olvasatlan üzenet.": "other", - "1 olvasatlan üzenet.": "one" - }, - "n_unread_messages_mentions": { - "%(count)s olvasatlan üzenet megemlítéssel.": "other", - "1 olvasatlan megemlítés.": "one" - }, "recent_rooms": "Legutóbbi szobák", "room_messsage_not_sent": "A(z) %(roomName)s szoba megnyitása nem beállított üzenettel.", "room_n_unread_invite": "A(z) %(roomName)s szoba meghívásának megnyitása.", - "room_n_unread_messages": { - "A(z) %(roomName)s szoba megnyitása 1 olvasatlan üzenettel.": "one", - "A(z) %(roomName)s szoba megnyitása %(count)s olvasatlan üzenettel.": "other" - }, - "room_n_unread_messages_mentions": { - "A(z) %(roomName)s szoba megnyitása 1 olvasatlan megemlítéssel.": "one", - "A(z) %(roomName)s szoba megnyitása %(count)s olvasatlan megemlítéssel.": "other" - }, "room_name": "Szoba: %(name)s", "room_status_bar": "Szoba állapotsora", "seek_bar_label": "Hang keresősávja", @@ -101,9 +85,7 @@ "ok": "Rendben", "open": "Megnyitás", "open_menu": "Menü megnyitása", - "pause": "Szünet", "pin": "Kitűzés", - "play": "Lejátszás", "proceed": "Folytatás", "quote": "Idézés", "react": "Reakció", @@ -471,10 +453,6 @@ "advanced": "Speciális", "all_chats": "Összes csevegés", "analytics": "Analitika", - "and_n_others": { - "és még: %(count)s ...": "other", - "és még egy...": "one" - }, "appearance": "Megjelenítés", "application": "Alkalmazás", "are_you_sure": "Biztos?", @@ -529,12 +507,6 @@ "moderation_and_safety": "Moderálás és biztonság", "modern": "Modern", "mute": "Némítás", - "n_members": { - "%(count)s tag": "other" - }, - "n_rooms": { - "%(count)s szoba": "other" - }, "name": "Név", "no_results": "Nincs találat", "no_results_found": "Nincs találat", @@ -855,9 +827,6 @@ "room_notifications_total": "Összesen: ", "room_notifications_type": "Típus: ", "room_status": "Szoba állapota", - "room_unread_status_count": { - "Szoba állapota: %(status)s, darabszám: %(count)s": "other" - }, "save_setting_values": "Beállított értékek mentése", "see_history": "Előzmények megtekintése", "send_custom_account_data_event": "Egyéni fiókadat-esemény küldése", @@ -877,10 +846,6 @@ "settings_explorer": "Beállításböngésző", "show_empty_content_events": "Üres tartalmú események megjelenítése", "show_hidden_events": "Rejtett események megjelenítése az idővonalon", - "spaces": { - "<%(count)s szóköz>": "other", - "": "one" - }, "state_key": "Állapotkulcs", "thread_root_id": "Üzenetszál gyökérazonosítója: %(threadRootId)s", "threads_timeline": "Üzenetszálak idővonala", @@ -1215,19 +1180,7 @@ "error_fetching_file": "Fájlletöltési hiba", "export_info": "Ez a(z) szoba exportálásának kezdete. Exportálta: , időpont: %(exportDate)s.", "export_successful": "Sikeres exportálás!", - "exported_n_events_in_time": { - "%(count)s esemény exportálva %(seconds)s másodperc alatt": "other" - }, "exporting_your_data": "Adatai exportálása", - "fetched_n_events": { - "Eddig %(count)s esemény lett lekérve": "other" - }, - "fetched_n_events_in_time": { - "%(count)s esemény lekérve %(seconds)s másodperc alatt": "other" - }, - "fetched_n_events_with_total": { - "%(count)s / %(total)s esemény lekérve": "other" - }, "fetching_events": "Események lekérése…", "file_attached": "Fájl mellékelve", "format": "Formátum", @@ -1316,9 +1269,6 @@ }, "in_space": "Ebben a térben: %(spaceName)s.", "in_space1_and_space2": "Ezekben a terekben: %(space1Name)s és %(space2Name)s.", - "in_space_and_n_other_spaces": { - "Itt: %(spaceName)s és %(count)s másik térben.": "other" - }, "incompatible_browser": { "continue": "Folytatás mégis", "description": "%(brand)s olyan böngészőfunkciókat használ, amelyek nem érhetők el az aktuális böngészőben. %(detail)s", @@ -1412,14 +1362,6 @@ "unban_first_title": "A felhasználó addig nem hívható meg, amíg fel nem oldják a kitiltását" }, "inviting_user1_and_user2": "%(user1)s és %(user2)s meghívása", - "inviting_user_and_n_others": { - "%(user)s és 1 további meghívása": "one", - "%(user)s és %(count)s további meghívása": "other" - }, - "items_and_n_others": { - " és még %(count)s másik": "other", - " és még egy másik": "one" - }, "keyboard": { "activate_button": "Kiválasztott gomb aktiválása", "alt": "Alt", @@ -1675,9 +1617,6 @@ "toggle_attribution": "Forrásmegjelölés be/ki" }, "member_list": { - "count": { - "%(count)s tag": "other" - }, "filter_placeholder": "Szoba tagság szűrése", "invite_button_no_perms_tooltip": "Nincs jogosultsága felhasználók meghívására", "invited_label": "Meghívott", @@ -1768,12 +1707,6 @@ "topic_label": "Kérdés vagy téma", "topic_placeholder": "Írjon valamit…", "total_decryption_errors": "Visszafejtési hibák miatt néhány szavazat nem kerül beszámításra", - "total_n_votes": { - "%(count)s leadott szavazat. Szavazzon az eredmény megtekintéséhez": "other" - }, - "total_n_votes_voted": { - "%(count)s szavazat alapján": "other" - }, "total_no_votes": "Nem adtak le szavazatot", "total_not_ended": "Az eredmény a szavazás végeztével válik láthatóvá", "type_closed": "Zárt szavazás", @@ -1889,7 +1822,6 @@ "other": "%(count)s kitűzött üzenet" }, "limits": { - "one": "", "other": "Legfeljebb %(count)s kisalkalmazást tűzhet ki" }, "menu": "Menü megnyitása", @@ -1906,19 +1838,8 @@ "active_heading": "Aktív szavazások", "empty_active": "Nincsenek aktív szavazások ebben a szobában", "empty_active_load_more": "Nincs aktív szavazás. További szavazások betöltése az előző havi szavazások megjelenítéséhez", - "empty_active_load_more_n_days": { - "%(count)s napja nincs aktív szavazás. További szavazások betöltése az előző havi szavazások megjelenítéséhez": "other", - "Nincs aktív szavazás az elmúlt napokból. További szavazások betöltése az előző havi szavazások megjelenítéséhez": "one" - }, "empty_past": "Nincsenek régebbi szavazások ebben a szobában", "empty_past_load_more": "Nincs régebbi szavazás. További szavazások betöltése az előző havi szavazások megjelenítéséhez", - "empty_past_load_more_n_days": { - "Nincs aktív szavazás az elmúlt napokból. További szavazások betöltése az előző havi szavazások megjelenítéséhez": "one", - "%(count)s napja nincs aktív szavazás. További szavazások betöltése az előző havi szavazások megjelenítéséhez": "other" - }, - "final_result": { - "Végeredmény %(count)s szavazat alapján": "other" - }, "load_more": "Még több szavazás betöltése", "loading": "Szavazások betöltése", "past_heading": "Régi szavazások", @@ -1983,13 +1904,6 @@ "error_jump_to_date_not_found": "Nem sikerült megtalálni az eseményt %(dateString)s után keresve. Próbáljon egy korábbi dátumot kiválasztani.", "error_jump_to_date_send_logs_prompt": "Küldjön be hibakeresési naplókat, hogy segítsen nekünk a hiba megtalálásában.", "error_jump_to_date_title": "Nem található esemény az adott dátumkor", - "face_pile_summary": { - "%(count)s ismerős már csatlakozott": "other" - }, - "face_pile_tooltip_label": { - "1 résztvevő megmutatása": "one", - "Az összes %(count)s résztvevő megmutatása": "other" - }, "face_pile_tooltip_shortcut": "Beleértve: %(commaSeparatedMembers)s", "face_pile_tooltip_shortcut_joined": "Önt is beleértve, %(commaSeparatedMembers)s", "failed_determine_user": "Nem lehet meghatározni, hogy melyik felhasználót kell figyelmen kívül hagyni, mivel az esemény megváltozott.", @@ -1997,10 +1911,6 @@ "forget_room": "Szoba elfelejtése", "forget_space": "Ennek a térnek az elfelejtése", "header": { - "n_people_asking_to_join": { - "Csatlakozást kér": "one", - "%(count)s csatlakozást kérő ember": "other" - }, "room_is_public": "Ez egy nyilvános szoba" }, "header_avatar_open_settings_label": "Szobabeállítások megnyitása", @@ -2090,10 +2000,6 @@ "search": { "all_rooms_button": "Keresés az összes szobában", "placeholder": "Üzenetek keresése...", - "summary": { - "1 találat ehhez: „”": "one", - "%(count)s találat ehhez: „”": "other" - }, "this_room_button": "Keresés ebben a szobában" }, "status_bar": { @@ -2109,9 +2015,6 @@ "some_messages_not_sent": "Néhány üzenete nem lett elküldve" }, "unknown_status_code_for_timeline_jump": "ismeretlen állapotkód", - "unread_notifications_predecessor": { - "%(count)s olvasatlan értesítésed van a régi verziójú szobában.": "one" - }, "upgrade_error_description": "Ellenőrizze még egyszer, hogy a kiszolgálója támogatja-e kiválasztott szobaverziót, és próbálja újra.", "upgrade_error_title": "Hiba a szoba verziófrissítésekor", "upgrade_warning_bar": "A szoba fejlesztése bezárja ezt a szobát és új, frissített verzióval ugyanezen a néven létrehoz egy újat.", @@ -2119,9 +2022,6 @@ "upgrade_warning_bar_unstable": "A szoba verziója: , amelyet a Matrix-kiszolgáló instabilnak tekint.", "upgrade_warning_bar_upgraded": "Ez a szoba már fejlesztve van.", "upload": { - "uploading_multiple_file": { - "%(filename)s és még %(count)s db másik feltöltése": "other" - }, "uploading_single_file": "%(filename)s feltöltése" }, "video_room": "Ez a szoba egy videószoba", @@ -2166,9 +2066,6 @@ }, "home_menu_label": "Kezdőlap beállítások", "join_public_room_label": "Belépés nyilvános szobába", - "joining_rooms_status": { - "%(count)s szobába lép be": "other" - }, "list_title": "Szobalista", "more_options": { "copy_link": "Szoba hivatkozásának másolása", @@ -2190,9 +2087,6 @@ }, "room_options": "Szobabeállítások", "show_less": "Kevesebb megjelenítése", - "show_n_more": { - "Még %(count)s megjelenítése": "one" - }, "show_previews": "Üzenet-előnézet megjelenítése", "sort": "Rendezés", "sort_by": "Rendezés", @@ -2415,25 +2309,10 @@ "join_rule_restricted_dialog_heading_space": "Terek melyről tudja, hogy ezt a teret tartalmazzák", "join_rule_restricted_dialog_heading_unknown": "Ezek valószínűleg olyanok, amelyeknek más szobaadminisztrátorok is tagjai.", "join_rule_restricted_dialog_title": "Terek kiválasztása", - "join_rule_restricted_n_more": { - "és még %(count)s": "one" - }, - "join_rule_restricted_summary": { - "Jelenleg %(count)s tér rendelkezik hozzáféréssel": "other", - "Jelenleg egy tér rendelkezik hozzáféréssel": "one" - }, "join_rule_restricted_upgrade_description": "Ez a fejlesztés lehetővé teszi, hogy a kiválasztott terek tagjai meghívó nélkül is elérjék ezt a szobát.", "join_rule_restricted_upgrade_warning": "Ez a szoba olyan terekben is benne van, amelynek nem Ön az adminisztrátora. Ezekben a terekben továbbra is a régi szoba jelenik meg, de az emberek jelzést kapnak, hogy lépjenek be az újba.", "join_rule_upgrade_awaiting_room": "Új szoba betöltése", "join_rule_upgrade_required": "Fejlesztés szükséges", - "join_rule_upgrade_sending_invites": { - "Meghívók küldése…": "one", - "Meghívók küldése… (%(progress)s / %(count)s)": "other" - }, - "join_rule_upgrade_updating_spaces": { - "Terek frissítése…": "one", - "Terek frissítése… (%(progress)s / %(count)s)": "other" - }, "join_rule_upgrade_upgrading_room": "Szoba fejlesztése", "join_rule_world_readable_description": "A szobába való belépés jogosultságának módosítása a jövőbeli üzenetek láthatóságát is megváltoztatja.", "public_without_alias_warning": "Hogy hivatkozhasson erre a szobára, adjon hozzá egy címet.", @@ -2896,9 +2775,6 @@ "key_backup_algorithm": "Algoritmus:", "message_search_disable_warning": "Ha nincs engedélyezve akkor a titkosított szobák üzenetei nem jelennek meg a keresések között.", "message_search_disabled": "A titkosított üzenetek biztonságos helyi gyorsítótárazása, hogy megjelenhessenek a keresési találatok között.", - "message_search_enabled": { - "A titkosított üzenetek biztonságos helyi gyorsítótárazása, hogy megjelenhessenek a keresési találatok között, ehhez %(size)s helyet használ %(rooms)s szoba üzeneteihez.": "other" - }, "message_search_failed": "Az üzenetkeresés előkészítése sikertelen", "message_search_indexed_messages": "Indexált üzenetek:", "message_search_indexed_rooms": "Indexált szobák:", @@ -2921,22 +2797,6 @@ "sessions": { "best_security_note": "A legjobb biztonság érdekében ellenőrizze munkameneteit, és jelentkezzen ki minden olyan munkamenetből, amelyet már nem ismer fel vagy használ.", "browser": "Böngésző", - "confirm_sign_out": { - "Megerősítés ebből az eszközből való kijelentkezéshez": "one", - "Megerősítés ezekből az eszközökből való kijelentkezéshez": "other" - }, - "confirm_sign_out_body": { - "Ezeknek a eszközöknek törlésének a megerősítéséhez kattintson a gombra lent.": "other", - "Az eszközből való kilépés megerősítéséhez kattintson a lenti gombra.": "one" - }, - "confirm_sign_out_continue": { - "Eszközből való kijelentkezés": "one", - "Eszközökből való kijelentkezés": "other" - }, - "confirm_sign_out_sso": { - "Az eszközből való kijelentkezéshez erősítse meg a személyazonosságát az egyszeri bejelentkezés használatával.": "one", - "Az eszközökből való kijelentkezéshez erősítse meg a személyazonosságát az egyszeri bejelentkezés használatával.": "other" - }, "current_session": "Jelenlegi munkamenet", "desktop_session": "Asztali munkamenet", "details_heading": "Munkamenet-információk", @@ -2963,9 +2823,6 @@ "last_activity": "Utolsó tevékenység", "manage": "Munkamenet kezelése", "mobile_session": "Mobil munkamenet", - "n_sessions_selected": { - "%(count)s munkamenet kiválasztva": "other" - }, "no_inactive_sessions": "Nincs inaktív munkamenet.", "no_sessions": "Nincs munkamenet.", "no_unverified_sessions": "Nincs ellenőrizetlen munkamenet.", @@ -2990,12 +2847,6 @@ "sign_in_with_qr_unsupported": "A fiókszolgáltató nem támogatja", "sign_out": "Kijelentkezés ebből a munkamenetből", "sign_out_all_other_sessions": "Kijelentkezés minden munkamenetből (%(otherSessionsCount)s)", - "sign_out_confirm_description": { - "Biztos, hogy ki szeretne lépni %(count)s munkamenetből?": "other" - }, - "sign_out_n_sessions": { - "Kijelentkezés %(count)s munkamenetből": "other" - }, "title": "Munkamenetek", "unknown_session": "Ismeretlen munkamenettípus", "unverified_session": "Ellenőrizetlen munkamenet", @@ -3185,10 +3036,6 @@ "create_prompt": "Új szoba készítése", "dm_heading": "Közvetlen Beszélgetések", "error_heading": "Nem az összes kijelölt lett hozzáadva", - "progress_text": { - "Szobák hozzáadása…": "one", - "Szobák hozzáadása… (%(progress)s ennyiből: %(count)s)": "other" - }, "space_dropdown_label": "Tér kiválasztása", "space_dropdown_title": "Létező szobák hozzáadása", "subspace_moved_note": "Terek hozzáadása elköltözött." @@ -3271,9 +3118,6 @@ "cant_find_person_helpful_hint": "Ha nem találja, akit keres, küldje el neki a meghívási hivatkozást.", "cant_find_room_helpful_hint": "Ha nem található az szoba, amelyet keresett, kérjen egy meghívót, vagy készítsen egy új szobát.", "copy_link_text": "Meghívó hivatkozás másolása", - "count_of_members": { - "%(count)s tag": "other" - }, "create_new_room_button": "Új szoba létrehozása", "failed_querying_public_rooms": "Nem sikerült lekérdezni nyilvános szobákat", "failed_querying_public_spaces": "Nem sikerült lekérdezni a nyilvános tereket", @@ -3324,9 +3168,6 @@ "threads": { "all_threads": "Minden üzenetszál", "all_threads_description": "A szobában lévő összes üzenetszál megjelenítése", - "count_of_reply": { - "%(count)s válasz": "other" - }, "empty_description": "Amikor az egérmutatót egy üzenet fölé viszi használja ezt: „%(replyInThread)s ”.", "empty_title": "Az üzenetszálak segítenek a különböző témájú beszélgetések figyelemmel kísérésében.", "error_start_thread_existing_relation": "Nem lehet üzenetszálat indítani olyan eseményről ami már rendelkezik kapcsolattal", @@ -3342,24 +3183,10 @@ "no_rooms_with_unread_threads": "Nincsenek még olvasatlan üzenetszálakkal rendelkező szobái." }, "time": { - "about_day_ago": "egy napja", - "about_hour_ago": "egy órája", - "about_minute_ago": "egy perce", "date_at_time": "%(date)s %(time)s", - "few_seconds_ago": "néhány másodperce", "hours_minutes_seconds_left": "%(hours)s ó %(minutes)s p %(seconds)s mp van hátra", - "in_about_day": "egy nap múlva", - "in_about_hour": "egy óra múlva", - "in_about_minute": "egy perc múlva", - "in_few_seconds": "másodpercek múlva", - "in_n_days": "%(num)s nap múlva", - "in_n_hours": "%(num)s óra múlva", - "in_n_minutes": "%(num)s perc múlva", "left": "Maradék idő: %(timeRemaining)s", "minutes_seconds_left": "%(minutes)s p %(seconds)s mp van hátra", - "n_days_ago": "%(num)s nappal ezelőtt", - "n_hours_ago": "%(num)s órával ezelőtt", - "n_minutes_ago": "%(num)s perccel ezelőtt", "seconds_left": "%(seconds)s mp van hátra", "short_days": "%(value)s n", "short_days_hours_minutes_seconds": "%(days)s n %(hours)s ó %(minutes)s p %(seconds)s mp", @@ -3414,11 +3241,9 @@ "unable_to_find": "Megpróbálta betölteni a szoba megadott időpontjának megfelelő adatait, de az nem található." }, "m.audio": { - "audio_player": "Hanglejátszó", "error_downloading_audio": "Hiba a hang letöltésekor", "error_processing_audio": "Hiba a hangüzenet feldolgozásánál", - "error_processing_voice_message": "Hiba a hangüzenet feldolgozásánál", - "unnamed_audio": "Névtelen hang" + "error_processing_voice_message": "Hiba a hangüzenet feldolgozásánál" }, "m.beacon_info": { "view_live_location": "Élő földrajzi helyzet megtekintése" @@ -3469,11 +3294,6 @@ "location": "Megosztott egy földrajzi helyzetet: ", "self_location": "Megosztották a földrajzi helyzetüket: " }, - "m.poll": { - "count_of_votes": { - "%(count)s szavazat": "other" - } - }, "m.poll.end": { "sender_ended": "%(senderName)s lezárta a szavazást" }, @@ -3485,14 +3305,6 @@ "removed": "%(senderDisplayName)s törölte a szoba profilképét." }, "m.room.canonical_alias": { - "alt_added": { - "%(senderName)s hozzáadta a szoba alternatív címeit: %(addresses)s.": "other", - "%(senderName)s alternatív címeket adott hozzá a szobához: %(addresses)s.": "one" - }, - "alt_removed": { - "%(senderName)s eltávolította az alternatív címeket a szobáról: %(addresses)s.": "other", - "%(senderName)s eltávolította az alternatív címet a szobáról: %(addresses)s.": "one" - }, "changed": "%(senderName)s megváltoztatta a szoba címeit.", "changed_alternative": "%(senderName)s megváltoztatta a szoba alternatív címeit.", "changed_main_and_alternative": "%(senderName)s megváltoztatta a szoba elsődleges és alternatív címeit.", @@ -3644,9 +3456,6 @@ "label": "%(reactors)s reagált: %(content)s", "tooltip_caption": "ezzel reagált: %(shortName)s" }, - "read_receipt_title": { - "%(count)s ember látta": "other" - }, "read_receipts_label": "Olvasási visszajelzés", "redacted": { "tooltip": "Az üzenetet ekkor törölték: %(date)s" @@ -3667,95 +3476,7 @@ "send_state_sending": "Üzenet küldése…", "send_state_sent": "Üzenet elküldve", "summary": { - "banned": { - "%(count)s alkalommal lett kitiltva": "other", - "ki lett tiltva": "one" - }, - "banned_multiple": { - "%(count)s alkalommal lett kitiltva": "other", - "lett kitiltva": "one" - }, - "changed_avatar": { - "%(oneUser)s megváltoztatta a profilképét": "one", - "%(oneUser)s %(count)s alkalommal megváltoztatta a profilképét": "other" - }, - "changed_avatar_multiple": { - "%(severalUsers)s megváltoztatta a profilképét": "one", - "%(severalUsers)s %(count)s alkalommal megváltoztatta a profilképét": "other" - }, - "changed_name": { - "%(oneUser)s %(count)s alkalommal megváltoztatta a nevét": "other", - "%(oneUser)s megváltoztatta a nevét": "one" - }, - "changed_name_multiple": { - "%(severalUsers)s %(count)s alkalommal megváltoztatta a nevét": "other", - "%(severalUsers)s megváltoztatta a nevét": "one" - }, "format": "%(nameList)s %(transitionList)s", - "hidden_event": { - "%(oneUser)s rejtett üzenetet küldött": "one", - "%(oneUser)s %(count)s rejtett üzenetet küldött": "other" - }, - "hidden_event_multiple": { - "%(severalUsers)s rejtett üzenetet küldött": "one", - "%(severalUsers)s %(count)s rejtett üzenetet küldött": "other" - }, - "invite_withdrawn": { - "%(oneUser)s meghívóit %(count)s alkalommal vonták vissza": "other", - "%(oneUser)s meghívóit visszavonták": "one" - }, - "invite_withdrawn_multiple": { - "%(severalUsers)s meghívóit %(count)s alkalommal visszavonták": "other", - "%(severalUsers)s visszavonták a meghívásukat": "one" - }, - "invited": { - "%(count)s alkalommal lett meghívva": "other", - "meg lett hívva": "one" - }, - "invited_multiple": { - "%(count)s alkalommal lett meghívva": "other", - "meg lett hívva": "one" - }, - "joined": { - "%(oneUser)s %(count)s alkalommal csatlakozott": "other", - "%(oneUser)s csatlakozott": "one" - }, - "joined_and_left": { - "%(oneUser)s %(count)s alkalommal csatlakozott és távozott": "other", - "%(oneUser)s csatlakozott és távozott": "one" - }, - "joined_and_left_multiple": { - "%(severalUsers)s %(count)s alkalommal csatlakozott és távozott": "other", - "%(severalUsers)s csatlakozott és távozott": "one" - }, - "joined_multiple": { - "%(severalUsers)s %(count)s alkalommal csatlakozott": "other", - "%(severalUsers)s csatlakozott": "one" - }, - "kicked": { - "eltávolítva": "one", - "%(count)s alkalommal lett eltávolítva": "other" - }, - "kicked_multiple": { - "eltávolítva": "one", - "%(count)s alkalommal lett eltávolítva": "other" - }, - "left": { - "%(oneUser)s %(count)s alkalommal távozott": "other", - "%(oneUser)s távozott": "one" - }, - "left_multiple": { - "%(severalUsers)s %(count)s alkalommal távozott": "other", - "%(severalUsers)s távozott": "one" - }, - "no_change": { - "%(oneUser)s %(count)s alkalommal nem változtatott semmit": "other", - "%(oneUser)snem változtatott semmit": "one" - }, - "no_change_multiple": { - "%(severalUsers)s %(count)s alkalommal nem változtattak semmit": "other", - "%(severalUsers)s nem változtattak semmit": "one" - }, "pinned_events": { "one": "%(oneUser)s megváltoztatta a szoba kitűzött üzeneteit", "other": "%(oneUser)s %(count)s alkalommal megváltoztatta a szoba kitűzött üzeneteit" @@ -3763,46 +3484,6 @@ "pinned_events_multiple": { "one": "%(severalUsers)s megváltoztatta a szoba kitűzött üzeneteit", "other": "%(severalUsers)s %(count)s alkalommal megváltoztatta a szoba kitűzött üzeneteit" - }, - "redacted": { - "%(oneUser)s üzenetet törölt": "one", - "%(oneUser)s %(count)s üzenetet törölt": "other" - }, - "redacted_multiple": { - "%(severalUsers)s üzenetet törölt": "one", - "%(severalUsers)s %(count)s üzenetet törölt": "other" - }, - "rejected_invite": { - "%(oneUser)s %(count)s alkalommal elutasította a meghívóit": "other", - "%(oneUser)s elutasította a meghívóit": "one" - }, - "rejected_invite_multiple": { - "%(severalUsers)s %(count)s alkalommal elutasította a meghívóit": "other", - "%(severalUsers)s elutasította a meghívóit": "one" - }, - "rejoined": { - "%(oneUser)s %(count)s alkalommal távozott és újra csatlakozott": "other", - "%(oneUser)s távozott és újra csatlakozott": "one" - }, - "rejoined_multiple": { - "%(severalUsers)s %(count)s alkalommal távozott és újra csatlakozott": "other", - "%(severalUsers)s távozott és újra csatlakozott": "one" - }, - "server_acls": { - "%(oneUser)s megváltoztatta a kiszolgáló ACL-jeit": "one", - "%(oneUser)s %(count)s alkalommal megváltoztatta a kiszolgáló ACL-jeit": "other" - }, - "server_acls_multiple": { - "%(severalUsers)s megváltoztatta a kiszolgáló ACL-jeit": "one", - "%(severalUsers)s %(count)s alkalommal megváltoztatta a kiszolgáló ACL-jeit": "other" - }, - "unbanned": { - "%(count)s alkalommal lett visszaengedve": "other", - "vissza lett engedve": "one" - }, - "unbanned_multiple": { - "%(count)s alkalommal lett visszaengedve": "other", - "vissza lett engedve": "one" } }, "thread_info_basic": "Az üzenetszálból", @@ -3816,15 +3497,9 @@ }, "undecryptable_tooltip": "Ezt az üzenetet nem lehet visszafejteni", "url_preview": { - "close": "Előnézet bezárása", - "show_n_more": { - "%(count)s további előnézet megjelenítése": "other" - } + "close": "Előnézet bezárása" } }, - "truncated_list_n_more": { - "És még %(count)s...": "other" - }, "unsupported_browser": { "description": "Ha folytatja, előfordulhat, hogy egyes funkciók nem működnek, és fennáll annak a kockázata, hogy a jövőben elveszítheti adatait. Frissítse böngészőjét ennek a használatához: %(brand)s.", "title": "%(brand)s nem támogatja ezt a böngészőt" @@ -3865,11 +3540,7 @@ "not_image": "A kiválasztott fájl nem érvényes képfájl.", "title": "Fájlok feltöltése", "title_progress": "Fájlok feltöltése (%(current)s / %(total)s)", - "upload_all_button": "Összes feltöltése", - "upload_n_others_button": { - "%(count)s másik fájlt feltöltése": "other", - "%(count)s másik fájl feltöltése": "one" - } + "upload_all_button": "Összes feltöltése" }, "user_info": { "admin_tools_section": "Adminisztrációs eszközök", @@ -3907,13 +3578,6 @@ "kick_space_warning": "Továbbra is hozzáférhetnek olyan helyekhez, ahol Ön nem adminisztrátor.", "promote_warning": "Nem fogja tudni visszavonni ezt a változtatást, mert a felhasználót a sajátjával azonos szintre emeli.", "redact": { - "confirm_button": { - "%(count)s db üzenet törlése": "other", - "1 üzenet törlése": "one" - }, - "confirm_description_1": { - "%(count)s üzenetet készül törölni az alábbi felhasználótól: %(user)s. A művelet mindenki számára visszavonhatatlanul eltávolítja ezeket a beszélgetésekből. Biztos, hogy folytatja?": "other" - }, "confirm_description_2": "Ez sok üzenet esetén eltarthat egy darabig. Közben ne frissítse a klienst.", "confirm_keep_state_explainer": "Törölje a kijelölést ha a rendszerüzeneteket is törölni szeretné ettől a felhasználótól (például tagságváltozás, profilváltozás…)", "confirm_keep_state_label": "Rendszerüzenetek megtartása", @@ -4004,9 +3668,6 @@ "msisdn_lookup_failed": "A telefonszámot nem sikerült megtalálni", "msisdn_lookup_failed_description": "Hiba történt a telefonszám megkeresése során", "msisdn_transfer_failed": "A hívás átadása nem lehetséges", - "n_people_joined": { - "%(count)s személy belépett": "other" - }, "no_audio_input_description": "Nem található mikrofon. Ellenőrizze a beállításokat és próbálja újra.", "no_audio_input_title": "Nem található mikrofon", "no_media_perms_description": "Lehet, hogy kézileg kell engedélyeznie a(z) %(brand)s számára, hogy hozzáférjen a mikrofonjához és webkamerájához", diff --git a/src/i18n/strings/hy.json b/src/i18n/strings/hy.json index 228adbdcf8..7750602ef6 100644 --- a/src/i18n/strings/hy.json +++ b/src/i18n/strings/hy.json @@ -100,9 +100,7 @@ "ok": "Լավ", "open": "Բաց(ել)", "open_menu": "Բացել ընտրացանկը", - "pause": "Դադար", "pin": "Քորոց", - "play": "Միացնել", "proceed": "Շարունակել", "quote": "Մեջբերում", "react": "Արձագանքել", @@ -1850,7 +1848,6 @@ "other": "%(count)s ամրացված հաղորդագրություններ" }, "limits": { - "one": "", "other": "Դուք կարող եք ամրացնել միայն մինչև%(count)s վիջեթներ" }, "menu": "Բացել մենյուն", @@ -3299,24 +3296,10 @@ "no_rooms_with_unread_threads": "Դուք դեռ չունեք սենյակներ, որտեղ կան չկարդացած թեմաներ։" }, "time": { - "about_day_ago": "մոտ մեկ օր առաջ", - "about_hour_ago": "մոտ մեկ ժամ առաջ", - "about_minute_ago": "մոտ մեկ րոպե առաջ", "date_at_time": "%(date)s ժամը %(time)s", - "few_seconds_ago": "մի քանի վայրկյան առաջ", "hours_minutes_seconds_left": "Մնաց %(hours)sժ %(minutes)sր %(seconds)sվ", - "in_about_day": "մոտ մեկ օր անց", - "in_about_hour": "մոտ մեկ ժամ անց", - "in_about_minute": "մոտ մեկ րոպե անց", - "in_few_seconds": "մի քանի վայրկյան անց", - "in_n_days": "%(num)s օր անց", - "in_n_hours": "%(num)s ժամ անց", - "in_n_minutes": "%(num)s րոպեներ անց", "left": "%(timeRemaining)s մնաց", "minutes_seconds_left": "Մնաց %(minutes)sր %(seconds)sվ", - "n_days_ago": "%(num)s օր առաջ", - "n_hours_ago": "%(num)s ժամ առաջ", - "n_minutes_ago": "%(num)s րոպե առաջ", "seconds_left": "Մնաց %(seconds)sվ", "short_days": "%(value)sօր", "short_days_hours_minutes_seconds": "%(days)sօր %(hours)sժ %(minutes)sր %(seconds)sվ", @@ -3371,11 +3354,9 @@ "unable_to_find": "Փորձեցինք բեռնել այս սենյակի ժամանակագրության որոշակի կետ, բայց չկարողացանք գտնել այն։" }, "m.audio": { - "audio_player": "Աուդիո նվագարկիչ", "error_downloading_audio": "Աուդիո ներբեռնման սխալ", "error_processing_audio": "Ձայնային հաղորդագրության մշակման սխալ", - "error_processing_voice_message": "Ձայնային հաղորդագրության մշակման սխալ", - "unnamed_audio": "Անանուն աուդիո" + "error_processing_voice_message": "Ձայնային հաղորդագրության մշակման սխալ" }, "m.beacon_info": { "view_live_location": "Դիտել կենդանի գտնվելու վայրը" @@ -3783,7 +3764,6 @@ } }, "truncated_list_n_more": { - "one": "", "other": "Եվ ևս %(հաշվարկ)s..." }, "unsupported_browser": { diff --git a/src/i18n/strings/id.json b/src/i18n/strings/id.json index 66ed598c41..648e81c770 100644 --- a/src/i18n/strings/id.json +++ b/src/i18n/strings/id.json @@ -99,9 +99,7 @@ "ok": "Oke", "open": "Buka", "open_menu": "Buka menu", - "pause": "Jeda", "pin": "Sematkan", - "play": "Mainkan", "proceed": "Lanjut", "quote": "Kutip", "react": "Bereaksi", @@ -3359,24 +3357,10 @@ "no_rooms_with_unread_threads": "Anda belum memiliki ruangan dengan utas yang belum dibaca." }, "time": { - "about_day_ago": "1 hari yang lalu", - "about_hour_ago": "1 jam yang lalu", - "about_minute_ago": "1 menit yang lalu", "date_at_time": "%(date)s pada %(time)s", - "few_seconds_ago": "beberapa detik yang lalu", "hours_minutes_seconds_left": "Sisa %(hours)sj %(minutes)sm %(seconds)sd", - "in_about_day": "1 hari dari sekarang", - "in_about_hour": "1 jam dari sekarang", - "in_about_minute": "1 menit dari sekarang", - "in_few_seconds": "beberapa detik dari sekarang", - "in_n_days": "%(num)s hari dari sekarang", - "in_n_hours": "%(num)s jam dari sekarang", - "in_n_minutes": "%(num)s dari sekarang", "left": "%(timeRemaining)sd lagi", "minutes_seconds_left": "Sisa %(minutes)sm %(seconds)sd", - "n_days_ago": "%(num)s hari yang lalu", - "n_hours_ago": "%(num)s jam yang lalu", - "n_minutes_ago": "%(num)s menit yang lalu", "seconds_left": "%(seconds)sd lagi", "short_days": "%(value)sh", "short_days_hours_minutes_seconds": "%(days)sh %(hours)sj %(minutes)sm %(seconds)sd", @@ -3431,11 +3415,9 @@ "unable_to_find": "Mencoba memuat titik spesifik di lini masa ruangan ini, tetapi tidak dapat menemukannya." }, "m.audio": { - "audio_player": "Pemutar audio", "error_downloading_audio": "Terjadi kesalahan mengunduh audio", "error_processing_audio": "Terjadi kesalahan mengolah pesan suara", - "error_processing_voice_message": "Terjadi kesalahan mengolah pesan suara", - "unnamed_audio": "Audio tidak dinamai" + "error_processing_voice_message": "Terjadi kesalahan mengolah pesan suara" }, "m.beacon_info": { "view_live_location": "Tampilkan lokasi langsung" diff --git a/src/i18n/strings/is.json b/src/i18n/strings/is.json index 0cd458dfc8..3da046eb09 100644 --- a/src/i18n/strings/is.json +++ b/src/i18n/strings/is.json @@ -79,9 +79,7 @@ "no": "Nei", "ok": "Í lagi", "open": "Opna", - "pause": "Bið", "pin": "Pinni", - "play": "Spila", "quote": "Tilvitnun", "react": "Bregðast við", "refresh": "Endurlesa", @@ -2301,24 +2299,10 @@ "show_thread_filter": "Sýna:" }, "time": { - "about_day_ago": "fyrir um degi síðan", - "about_hour_ago": "fyrir um klukkustund síðan", - "about_minute_ago": "fyrir um það bil mínútu síðan", "date_at_time": "%(date)s kl. %(time)s", - "few_seconds_ago": "fyrir örfáum sekúndum síðan", "hours_minutes_seconds_left": "%(hours)sk %(minutes)sm %(seconds)ss eftir", - "in_about_day": "eftir um það bil einn dag", - "in_about_hour": "eftir um það bil klukkustund", - "in_about_minute": "eftir um það bil mínútu", - "in_few_seconds": "eftir nokkrar sekúndur", - "in_n_days": "eftir %(num)s daga", - "in_n_hours": "eftir %(num)s klukkustundir", - "in_n_minutes": "eftir %(num)s mínútur", "left": "%(timeRemaining)s eftir", "minutes_seconds_left": "%(minutes)sm %(seconds)ss eftir", - "n_days_ago": "fyrir %(num)s dögum síðan", - "n_hours_ago": "fyrir %(num)s klukkustundum síðan", - "n_minutes_ago": "fyrir %(num)s mínútum síðan", "seconds_left": "%(seconds)ssek eftir", "short_days_hours_minutes_seconds": "%(days)sd %(hours)sk %(minutes)sm %(seconds)ss", "short_hours": "%(value)sklst", @@ -2357,8 +2341,7 @@ "m.audio": { "error_downloading_audio": "Villa við að sækja hljóð", "error_processing_audio": "Villa við meðhöndlun hljóðskilaboða", - "error_processing_voice_message": "Villa við meðhöndlun talskilaboða", - "unnamed_audio": "Nafnlaust hljóð" + "error_processing_voice_message": "Villa við meðhöndlun talskilaboða" }, "m.beacon_info": { "view_live_location": "Skoða staðsetningu í rauntíma" diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index affa7e5656..7f1faefc48 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -86,9 +86,7 @@ "no": "No", "ok": "OK", "open": "Apri", - "pause": "Pausa", "pin": "Spillo", - "play": "Riproduci", "proceed": "Procedi", "quote": "Cita", "react": "Reagisci", @@ -2837,24 +2835,10 @@ "header": "Attività delle conversazioni" }, "time": { - "about_day_ago": "circa un giorno fa", - "about_hour_ago": "circa un'ora fa", - "about_minute_ago": "circa un minuto fa", "date_at_time": "%(date)s alle %(time)s", - "few_seconds_ago": "pochi secondi fa", "hours_minutes_seconds_left": "%(hours)so %(minutes)sm %(seconds)ss rimasti", - "in_about_day": "circa un giorno da adesso", - "in_about_hour": "circa un'ora da adesso", - "in_about_minute": "circa un minuto da adesso", - "in_few_seconds": "pochi secondi da adesso", - "in_n_days": "%(num)s giorni da adesso", - "in_n_hours": "%(num)s ore da adesso", - "in_n_minutes": "%(num)s minuti da adesso", "left": "%(timeRemaining)s rimasti", "minutes_seconds_left": "%(minutes)sm %(seconds)ss rimasti", - "n_days_ago": "%(num)s giorni fa", - "n_hours_ago": "%(num)s ore fa", - "n_minutes_ago": "%(num)s minuti fa", "seconds_left": "%(seconds)ss rimanenti", "short_days": "%(value)sg", "short_days_hours_minutes_seconds": "%(days)sg %(hours)so %(minutes)sm %(seconds)ss", @@ -2899,8 +2883,7 @@ "m.audio": { "error_downloading_audio": "Errore di scaricamento dell'audio", "error_processing_audio": "Errore elaborazione messaggio audio", - "error_processing_voice_message": "Errore di elaborazione del vocale", - "unnamed_audio": "Audio senza nome" + "error_processing_voice_message": "Errore di elaborazione del vocale" }, "m.beacon_info": { "view_live_location": "Vedi posizione in tempo reale" diff --git a/src/i18n/strings/ja.json b/src/i18n/strings/ja.json index 0bdb4d18ff..051d3c5e1c 100644 --- a/src/i18n/strings/ja.json +++ b/src/i18n/strings/ja.json @@ -78,9 +78,7 @@ "next": "次へ", "no": "いいえ", "open": "開く", - "pause": "一時停止", "pin": "ピン", - "play": "再生", "quote": "引用", "react": "リアクション", "refresh": "再読み込み", @@ -2582,24 +2580,10 @@ "show_thread_filter": "表示:" }, "time": { - "about_day_ago": "約1日前", - "about_hour_ago": "約1時間前", - "about_minute_ago": "約1分前", "date_at_time": "%(date)s %(time)s", - "few_seconds_ago": "数秒前", "hours_minutes_seconds_left": "残り%(hours)s時間%(minutes)s分%(seconds)s秒", - "in_about_day": "今から約1日前", - "in_about_hour": "今から約1時間前", - "in_about_minute": "今から約1分前", - "in_few_seconds": "今から数秒前", - "in_n_days": "今から%(num)s日前", - "in_n_hours": "今から%(num)s時間前", - "in_n_minutes": "今から%(num)s分前", "left": "残り%(timeRemaining)s", "minutes_seconds_left": "残り%(minutes)s分%(seconds)s秒", - "n_days_ago": "%(num)s日前", - "n_hours_ago": "%(num)s時間前", - "n_minutes_ago": "%(num)s分前", "seconds_left": "残り%(seconds)s秒", "short_days": "%(value)s日", "short_days_hours_minutes_seconds": "%(days)s日%(hours)s時%(minutes)s分%(seconds)s秒", @@ -2643,8 +2627,7 @@ "m.audio": { "error_downloading_audio": "音声をダウンロードする際にエラーが発生しました", "error_processing_audio": "音声メッセージを処理する際にエラーが発生しました", - "error_processing_voice_message": "音声メッセージを処理する際にエラーが発生しました", - "unnamed_audio": "名前のない音声" + "error_processing_voice_message": "音声メッセージを処理する際にエラーが発生しました" }, "m.beacon_info": { "view_live_location": "位置情報(ライブ)を表示" diff --git a/src/i18n/strings/ka.json b/src/i18n/strings/ka.json index f7413dc821..cef91bf499 100644 --- a/src/i18n/strings/ka.json +++ b/src/i18n/strings/ka.json @@ -67,9 +67,7 @@ "next": "შემდეგი", "no": "არა", "ok": "OK", - "pause": "პაუზა", "pin": "$", - "play": "დაკვრა", "proceed": "განაგრძეთ", "quote": "ციტირება", "react": "რეაგირება", @@ -2194,24 +2192,10 @@ }, "thread_view_back_action_label": "თემაში დაბრუნება", "time": { - "about_day_ago": "დაახლოებით ერთი დღის წინ", - "about_hour_ago": "დაახლოებით ერთი საათის წინ", - "about_minute_ago": "დაახლოებით ერთი წუთის წინ", "date_at_time": "%(date)s ზე %(time)s", - "few_seconds_ago": "რამდენიმე წამის წინ", "hours_minutes_seconds_left": "%(hours)sს %(minutes)sწთ %(seconds)sწმ დარჩა", - "in_about_day": "დაახლოებით ერთი დღის შემდეგ", - "in_about_hour": "დაახლოებით ერთი საათის შემდეგ", - "in_about_minute": "დაახლოებით ერთი წუთის შემდეგ", - "in_few_seconds": "რამდენიმე წამის შემდეგ", - "in_n_days": "%(num)sდღეებიდან", - "in_n_hours": "%(num)sსაათის შემდეგ", - "in_n_minutes": "%(num)sწუთის შემდეგ", "left": "%(timeRemaining)sდატოვა", "minutes_seconds_left": "%(minutes)sწთ %(seconds)sწმ დარჩა", - "n_days_ago": "%(num)sდღის წინ", - "n_hours_ago": "%(num)sსაათის წინ", - "n_minutes_ago": "%(num)sწუთის წინ", "seconds_left": "%(seconds)sწმ დარჩა", "short_days": "%(value)sდ", "short_days_hours_minutes_seconds": "%(days)sდ%(hours)s თ%(minutes)s მ%(seconds)s ს", @@ -2255,8 +2239,7 @@ "m.audio": { "error_downloading_audio": "შეცდომა აუდიოს ჩამოტვირთვისას", "error_processing_audio": "შეცდომა აუდიო შეტყობინების დამუშავებისას", - "error_processing_voice_message": "შეცდომა ხმოვანი შეტყობინების დამუშავებისას", - "unnamed_audio": "უსახელო აუდიო" + "error_processing_voice_message": "შეცდომა ხმოვანი შეტყობინების დამუშავებისას" }, "m.beacon_info": { "view_live_location": "" diff --git a/src/i18n/strings/ko.json b/src/i18n/strings/ko.json index 7ff568c560..c1f7e5eb47 100644 --- a/src/i18n/strings/ko.json +++ b/src/i18n/strings/ko.json @@ -3,14 +3,6 @@ "emoji_picker": "이모지 선택", "jump_first_invite": "첫 초대로 건너뜁니다.", "message_composer": "메세지 작성자", - "n_unread_messages": { - "%(count)s개의 읽지 않은 메시지.": "other", - "1개의 읽지 않은 메시지.": "one" - }, - "n_unread_messages_mentions": { - "언급을 포함한 %(count)s개의 읽지 않은 메시지.": "other", - "1개의 읽지 않은 언급.": "one" - }, "recent_rooms": "최근 방", "room_messsage_not_sent": "%(roomName)s에 미발송 메시지가 있는 방을 엽니다.", "room_n_unread_invite": "공개 방 %(roomName)s에 초대 되었습니다.", @@ -98,9 +90,7 @@ "ok": "네", "open": "열기", "open_menu": "메뉴 열기", - "pause": "일시중지", "pin": "핀", - "play": "재생", "proceed": "진행", "quote": "인용", "react": "리액션", @@ -468,10 +458,6 @@ "advanced": "고급", "all_chats": "모든 채팅", "analytics": "정보 분석", - "and_n_others": { - "외 한 명...": "one", - "외 %(count)s명...": "other" - }, "appearance": "모습", "application": "애플리케이션", "are_you_sure": "확신합니까?", @@ -1417,10 +1403,6 @@ "inviting_user_and_n_others": { "other": "%(user)s 및 다른 %(count)s명 초대 중" }, - "items_and_n_others": { - "님 외 한 명": "one", - "님 외 %(count)s명": "other" - }, "keyboard": { "activate_button": "선택한 버튼 활성화", "alt": "Alt", @@ -2105,9 +2087,6 @@ "some_messages_not_sent": "일부 메시지가 전송되지 않았습니다" }, "unknown_status_code_for_timeline_jump": "알 수 없는 상태 코드", - "unread_notifications_predecessor": { - "이 방의 이전 버전에서 읽지 않은 %(count)s개의 알림이 있습니다.": "one" - }, "upgrade_error_description": "서버가 선택한 방 버전을 지원하는지 확인한 뒤에 다시 시도해주세요.", "upgrade_error_title": "방 업그레이드 오류", "upgrade_warning_bar": "이 방을 업그레이드하면 현재 방의 인스턴스는 문을 닫고 같은 이름의 업그레이드된 방을 만듭니다.", @@ -2115,9 +2094,6 @@ "upgrade_warning_bar_unstable": "이 방은 방 버전 에서 실행 중이고, 이 홈서버가 불안정으로 표시됩니다.", "upgrade_warning_bar_upgraded": "이 방은 이미 업그레이드됬습니다.", "upload": { - "uploading_multiple_file": { - "%(filename)s 외 %(count)s개를 올리는 중": "other" - }, "uploading_single_file": "%(filename)s을(를) 올리는 중" }, "video_room": "이 채팅방은 영상채팅방입니다", @@ -2186,9 +2162,6 @@ }, "room_options": "채팅방 옵션", "show_less": "간단히 표시", - "show_n_more": { - "%(count)s개 더 보기": "other" - }, "show_previews": "메시지 미리 보기 표시", "sort": "정렬", "sort_by": "정렬 기준", @@ -3330,24 +3303,10 @@ "no_rooms_with_unread_threads": "아직 읽지 않은 스레드가 있는 방이 없습니다." }, "time": { - "about_day_ago": "약 1일 전", - "about_hour_ago": "약 1 시간 전", - "about_minute_ago": "약 1분 전", "date_at_time": "%(date)s, %(time)s", - "few_seconds_ago": "몇 초 전", "hours_minutes_seconds_left": "남은 시간: %(hours)s시간 %(minutes)s분 %(seconds)s초", - "in_about_day": "하루 정도 후", - "in_about_hour": "지금부터 한 시간 정도 후에", - "in_about_minute": "지금부터 약 1분 후", - "in_few_seconds": "몇 초 후", - "in_n_days": "지금부터 %(num)s 일 후에", - "in_n_hours": "지금부터 %(num)s 시간 후", - "in_n_minutes": "지금부터 %(num)s분 후", "left": "%(timeRemaining)s 남음", "minutes_seconds_left": "남은 시간: %(minutes)s분 %(seconds)s초", - "n_days_ago": "%(num)s일 전", - "n_hours_ago": "%(num)s 시간 전", - "n_minutes_ago": "%(num)s분 전", "seconds_left": "남은 시간: %(seconds)s초", "short_days": "%(value)s일", "short_days_hours_minutes_seconds": "%(days)s일 %(hours)s시간 %(minutes)s분 %(seconds)s초", @@ -3402,11 +3361,9 @@ "unable_to_find": "이 방의 타임라인에서 특정 시점을 불러오려고 했지만, 찾을 수 없었습니다." }, "m.audio": { - "audio_player": "오디오 플레이어", "error_downloading_audio": "오디오 다운로드 중 오류 발생", "error_processing_audio": "오디오 메시지 처리 중 오류 발생", - "error_processing_voice_message": "음성 메시지 처리 중 오류 발생", - "unnamed_audio": "이름 없는 오디오" + "error_processing_voice_message": "음성 메시지 처리 중 오류 발생" }, "m.beacon_info": { "view_live_location": "실시간 위치 보기" @@ -3654,28 +3611,12 @@ "send_state_sending": "메시지를 보내는 중…", "send_state_sent": "귀하의 메시지가 전송되었습니다", "summary": { - "banned": { - "님이 %(count)s번 출입 금지 당했습니다": "other", - "님이 출입 금지 당했습니다": "one" - }, - "banned_multiple": { - "이 %(count)s번 출입 금지 당했습니다": "other", - "이 출입 금지 당했습니다": "one" - }, "changed_avatar": { "other": "%(oneUser)s님이 프로필 사진을 %(count)s회 변경했습니다" }, "changed_avatar_multiple": { "other": "%(severalUsers)s님이 프로필 사진을 %(count)s회 변경했습니다" }, - "changed_name": { - "%(oneUser)s님이 이름을 %(count)s번 바꿨습니다": "other", - "%(oneUser)s님이 이름을 바꿨습니다": "one" - }, - "changed_name_multiple": { - "%(severalUsers)s이 이름을 %(count)s번 바꿨습니다": "other", - "%(severalUsers)s이 이름을 바꿨습니다": "one" - }, "format": "%(nameList)s %(transitionList)s", "hidden_event": { "other": "%(oneUser)s님이 숨겨진 메시지 %(count)s개를 보냈습니다" @@ -3683,60 +3624,12 @@ "hidden_event_multiple": { "other": "%(severalUsers)s님이 숨겨진 메시지 %(count)s개를 보냈습니다" }, - "invite_withdrawn": { - "%(oneUser)s님이 초대를 %(count)s번 취소했습니다": "other", - "%(oneUser)s님이 초대를 취소했습니다": "one" - }, - "invite_withdrawn_multiple": { - "%(severalUsers)s이 초대를 %(count)s번 취소했습니다": "other", - "%(severalUsers)s이 초대를 취소했습니다": "one" - }, - "invited": { - "님이 초대받았습니다": "one", - "님이 %(count)s번 초대받았습니다": "other" - }, - "invited_multiple": { - "%(count)s번 초대했습니다": "other", - "초대했습니다": "one" - }, - "joined": { - "%(oneUser)s님이 %(count)s번 참여했습니다": "other", - "%(oneUser)s님이 참여했습니다": "one" - }, - "joined_and_left": { - "%(oneUser)s님이 %(count)s번 참여하고 떠났습니다": "other", - "%(oneUser)s님이 참여하고 떠났습니다": "one" - }, - "joined_and_left_multiple": { - "%(severalUsers)s님이 %(count)s번 참여하고 떠났습니다": "other", - "%(severalUsers)s님이 참여하고 떠났습니다": "one" - }, - "joined_multiple": { - "%(severalUsers)s님이 참여했습니다": "one", - "%(severalUsers)s이 %(count)s번 참여했습니다": "other" - }, "kicked": { "other": "%(count)s회 제거됨" }, "kicked_multiple": { "other": "%(count)s회 제거됨" }, - "left": { - "%(oneUser)s님이 %(count)s번 떠났습니다": "other", - "%(oneUser)s님이 떠났습니다": "one" - }, - "left_multiple": { - "%(severalUsers)s이 %(count)s번 떠났습니다": "other", - "%(severalUsers)s이 떠났습니다": "one" - }, - "no_change": { - "%(oneUser)s님이 %(count)s번 변경 사항을 되돌렸습니다": "other", - "%(oneUser)s님이 변경 사항을 되돌렸습니다": "one" - }, - "no_change_multiple": { - "%(severalUsers)s이 %(count)s번 변경 사항을 되돌렸습니다": "other", - "%(severalUsers)s이 변경 사항을 되돌렸습니다": "one" - }, "pinned_events": { "other": "%(oneUser)s님이 이 채팅방의 고정된 메시지를 %(count)s회 변경했습니다" }, @@ -3749,22 +3642,6 @@ "redacted_multiple": { "other": "%(severalUsers)s님이 메시지 %(count)s개를 삭제했습니다" }, - "rejected_invite": { - "%(oneUser)s님이 초대를 %(count)s번 거절했습니다": "other", - "%(oneUser)s님이 초대를 거절했습니다": "one" - }, - "rejected_invite_multiple": { - "%(severalUsers)s이 초대를 거절했습니다": "one", - "%(severalUsers)s이 초대를 %(count)s번 거절했습니다": "other" - }, - "rejoined": { - "%(oneUser)s님이 %(count)s번 떠나고 다시 참여했습니다": "other", - "%(oneUser)s님이 떠나고 다시 참여했습니다": "one" - }, - "rejoined_multiple": { - "%(severalUsers)s님이 떠나고 다시 참여했습니다": "one", - "%(severalUsers)s님이 %(count)s번 떠나고 다시 참여했습니다": "other" - }, "server_acls": { "other": "%(oneUser)s님이 서버 ACL을 %(count)s회 변경했습니다." }, @@ -3780,10 +3657,6 @@ }, "thread_info_basic": "한 스레드에서", "typing_indicator": { - "more_users": { - "%(names)s 외 %(count)s명이 적고 있습니다 …": "other", - "%(names)s 외 한 명이 적고 있습니다 …": "one" - }, "one_user": "%(displayName)s님이 적고 있습니다 …", "two_users": "%(names)s님과 %(lastPerson)s님이 적고 있습니다 …" }, @@ -3795,9 +3668,6 @@ } } }, - "truncated_list_n_more": { - "%(count)s개 더...": "other" - }, "unsupported_browser": { "description": "계속 진행할 경우 일부 기능이 작동하지 않을 수 있으며, 향후 데이터 손실 위험이 있습니다. %(brand)s 을 계속 사용하려면 브라우저를 업데이트하십시오.", "title": "%(brand)s 이 브라우저를 지원하지 않습니다" @@ -3838,10 +3708,7 @@ "not_image": "선택하신 파일은 유효한 이미지 파일이 아닙니다.", "title": "파일 업로드", "title_progress": "파일 업로드 (총 %(total)s개 중 %(current)s개)", - "upload_all_button": "전부 업로드", - "upload_n_others_button": { - "%(count)s개의 다른 파일 업로드": "one" - } + "upload_all_button": "전부 업로드" }, "user_info": { "admin_tools_section": "관리자 도구", @@ -3879,10 +3746,6 @@ "kick_space_warning": "관리자가 아닌 항목에는 여전히 접근할 수 있습니다.", "promote_warning": "사용자를 자신과 같은 권한 등급으로 올리는 것은 취소할 수 없습니다.", "redact": { - "confirm_button": { - "%(count)s개의 메시지 삭제": "other", - "1개의 메시지 삭제": "one" - }, "confirm_description_1": { "other": "%(user)s님이 작성한 %(count)s개의 메시지를 삭제하려고 합니다. 이 작업은 되돌릴 수 없으며, 대화에 참여한 모든 사용자에게서 해당 메시지가 영구적으로 삭제됩니다. 계속하시겠습니까?" }, diff --git a/src/i18n/strings/lo.json b/src/i18n/strings/lo.json index 14ed5f7f1f..db7ef6ba1e 100644 --- a/src/i18n/strings/lo.json +++ b/src/i18n/strings/lo.json @@ -75,9 +75,7 @@ "no": "ບໍ່", "ok": "ຕົກລົງ", "open": "ເປີດ", - "pause": "ຢຸດຊົ່ວຄາວ", "pin": "ປັກໝຸດ", - "play": "ຫຼິ້ນ", "quote": "ວົງຢືມ", "react": "ປະຕິກິລິຍາ", "refresh": "ໂຫຼດຫນ້າຈໍຄືນ", @@ -2287,21 +2285,7 @@ "show_thread_filter": "ສະແດງ:" }, "time": { - "about_day_ago": "ປະມານຫນຶ່ງມື້ກ່ອນຫນ້ານີ້", - "about_hour_ago": "ປະມານຫນຶ່ງຊົ່ວໂມງກ່ອນຫນ້ານີ້", - "about_minute_ago": "ປະມານໜຶ່ງວິນາທີກ່ອນຫນ້ານີ້", - "few_seconds_ago": "ສອງສາມວິນາທີກ່ອນຫນ້ານີ້", - "in_about_day": "ປະມານນຶ່ງມື້ຈາກນີ້", - "in_about_hour": "ປະມານຫນຶ່ງຊົ່ວໂມງຈາກປະຈຸບັນນີ້", - "in_about_minute": "ປະມານໜຶ່ງນາທີຕໍ່ຈາກນີ້", - "in_few_seconds": "ສອງສາມວິນາທີຕໍ່ຈາກນີ້ໄປ", - "in_n_days": "%(num)s ມື້ຕໍ່ຈາກນີ້", - "in_n_hours": "%(num)s ຊົ່ວໂມງຈາກປະຈຸບັນນີ້", - "in_n_minutes": "%(num)s ນາທີຕໍ່ຈາກນີ້", "left": "ຍັງເຫຼືອ %(timeRemaining)s", - "n_days_ago": "%(num)sມື້ກ່ອນຫນ້ານີ້", - "n_hours_ago": "%(num)s ຊົ່ວໂມງກ່ອນ", - "n_minutes_ago": "%(num)s ນາທີກ່ອນ", "seconds_left": "ຍັງເຫຼືອ %(seconds)s" }, "timeline": { @@ -2336,8 +2320,7 @@ "m.audio": { "error_downloading_audio": "ເກີດຄວາມຜິດພາດໃນການດາວໂຫຼດສຽງ", "error_processing_audio": "ການປະມວນຜົນຂໍ້ຄວາມສຽງຜິດພາດ", - "error_processing_voice_message": "ການປະມວນຜົນຂໍ້ຄວາມສຽງຜິດພາດ", - "unnamed_audio": "ສຽງບໍ່ມີຊື່" + "error_processing_voice_message": "ການປະມວນຜົນຂໍ້ຄວາມສຽງຜິດພາດ" }, "m.beacon_info": { "view_live_location": "ເບິ່ງສະຖານທີ່ປັດຈຸບັນ" diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json index 8f3add6d43..0c04e1090d 100644 --- a/src/i18n/strings/lt.json +++ b/src/i18n/strings/lt.json @@ -1782,21 +1782,7 @@ "open_thread": "Atidaryti temą" }, "time": { - "about_day_ago": "maždaug prieš dieną", - "about_hour_ago": "maždaug prieš valandą", - "about_minute_ago": "maždaug prieš minutę", "date_at_time": "%(date)s %(time)s", - "few_seconds_ago": "prieš kelias sekundes", - "in_about_day": "apie dieną nuo dabar", - "in_about_hour": "apie valandą nuo dabar", - "in_about_minute": "apie minutę nuo dabar", - "in_few_seconds": "keletą sekundžių nuo dabar", - "in_n_days": "%(num)s dienas(-ų) nuo dabar", - "in_n_hours": "%(num)s valandas(-ų) nuo dabar", - "in_n_minutes": "%(num)s minutes(-ų) nuo dabar", - "n_days_ago": "prieš %(num)s dienas(-ų)", - "n_hours_ago": "prieš %(num)s valandas(-ų)", - "n_minutes_ago": "prieš %(num)s minutes(-ų)", "seconds_left": "%(seconds)ss liko", "short_hours": "%(value)sval" }, diff --git a/src/i18n/strings/lv.json b/src/i18n/strings/lv.json index 951a5bae1e..47d25ced02 100644 --- a/src/i18n/strings/lv.json +++ b/src/i18n/strings/lv.json @@ -87,9 +87,7 @@ "no": "Nē", "ok": "Labi", "open": "Atvērt", - "pause": "Pauzēt", "pin": "Piespraust", - "play": "Atskaņot", "proceed": "Turpināt", "quote": "Citēt", "react": "Reaģēt", @@ -1552,8 +1550,6 @@ "files_button": "Datnes", "pinned_messages": { "limits": { - "zero": "", - "one": "", "other": "Varat piespraust ne vairāk kā %(count)s logrīkus" } }, @@ -2764,24 +2760,10 @@ "no_rooms_with_unread_threads": "Jums vēl nav istabu ar nelasītiem pavedieniem." }, "time": { - "about_day_ago": "aptuveni dienu iepriekš", - "about_hour_ago": "aptuveni stundu iepriekš", - "about_minute_ago": "aptuveni minūti iepriekš", "date_at_time": "%(date)s pulksten %(time)s", - "few_seconds_ago": "pirms dažām sekundēm", "hours_minutes_seconds_left": "%(hours)sh %(minutes)s m %(seconds)s s atlicis", - "in_about_day": "aptuveni dienu kopš šī brīža", - "in_about_hour": "aptuveni stundu kopš šī brīža", - "in_about_minute": "aptuveni minūti kopš šī brīža", - "in_few_seconds": "dažas sekundes kopš šī brīža", - "in_n_days": "%(num)s dienas kopš šī brīža", - "in_n_hours": "%(num)s stundas kopš šī brīža", - "in_n_minutes": "%(num)s minūtes kopš šī brīža", "left": "%(timeRemaining)s atlicis", "minutes_seconds_left": "%(minutes)sm %(seconds)s s atlicis", - "n_days_ago": "%(num)s dienas iepriekš", - "n_hours_ago": "%(num)s stundas iepriekš", - "n_minutes_ago": "%(num)s minūtes iepriekš", "seconds_left": "%(seconds)s sekundes atlikušas", "short_days": "%(value)s d.", "short_days_hours_minutes_seconds": "%(days)sd %(hours)sh %(minutes)sm %(seconds)ss", @@ -2828,8 +2810,7 @@ "m.audio": { "error_downloading_audio": "Kļūda skaņas lejupielādēšanā", "error_processing_audio": "Kļūda audio ziņas apstrādē", - "error_processing_voice_message": "Balss ziņas apstrādes kļūda", - "unnamed_audio": "Nenosaukts audio" + "error_processing_voice_message": "Balss ziņas apstrādes kļūda" }, "m.beacon_info": { "view_live_location": "Skatīties reāllaika atrašanās vietu" diff --git a/src/i18n/strings/mg_MG.json b/src/i18n/strings/mg_MG.json index d68e1454d6..ca70cf769f 100644 --- a/src/i18n/strings/mg_MG.json +++ b/src/i18n/strings/mg_MG.json @@ -84,9 +84,7 @@ "next": "Fanarahana", "no": "Tsya", "ok": "Eny", - "pause": "Mihato", "pin": "Hahantona", - "play": "Milalao", "proceed": "Izotra", "quote": "Notsongaina", "react": "Mamaly", @@ -1613,7 +1611,6 @@ "files_button": "Rakitra", "pinned_messages": { "limits": { - "one": "", "other": "Azonao atao ihany ny manoratra%(count)s gadget" } }, @@ -2820,24 +2817,10 @@ "header": "Hetsika kofehy" }, "time": { - "about_day_ago": "Tokony ho iray andro izay", - "about_hour_ago": "Manakaiky adin'iray Teo ho eo", - "about_minute_ago": "Misy iray minitra Teo izay", "date_at_time": "% (Mihaona amin'ny % (fotoana", - "few_seconds_ago": "Segondra vitsy lasa", "hours_minutes_seconds_left": "% (ora) s h%(minitra) s m%(segondra) s ny tavela", - "in_about_day": "Anatiny iray andro eo ho eo", - "in_about_hour": "Adiny iray eo ho eo", - "in_about_minute": "Afaka iray minitra eo ho eo", - "in_few_seconds": "Afaka segondra vitsy", - "in_n_days": "%(num) s andro manomboka izao", - "in_n_hours": "% (num) sAnatiny ora vitsivitsy", - "in_n_minutes": "% (Num) sAfaka minitra vitsy", "left": "%(timeRemaining) sAnkavia", "minutes_seconds_left": "% (minutes) sm% (segondra) s ny ambiny", - "n_days_ago": "%(num)s Andro vitsivitsy izay", - "n_hours_ago": "%(num)sOra maromaro", - "n_minutes_ago": "%(Num)s Minitra vitsivitsy izay", "seconds_left": "% (secondes) s ny ambiny", "short_days": "% (Sandales d", "short_days_hours_minutes_seconds": "%(andro) s d % (ora) sh% (minitra) s m % (segondra)s s", @@ -2882,8 +2865,7 @@ "m.audio": { "error_downloading_audio": "Hadisoana tamin'ny fampidinana feo", "error_processing_audio": "Hadisoana tamin'ny fanodinana hafatra audio", - "error_processing_voice_message": "Hadisoana tamin'ny fanodinana hafatra feo", - "unnamed_audio": "Audio tsy voatonona anarana" + "error_processing_voice_message": "Hadisoana tamin'ny fanodinana hafatra feo" }, "m.beacon_info": { "view_live_location": "Jereo ny toerana mivantana" @@ -3284,7 +3266,6 @@ } }, "truncated_list_n_more": { - "one": "", "other": "SY%(count)s Bebe kokoa..." }, "unsupported_server_description": "Ity mpizara ity dia mampiasa dikan-teny taloha any. Hiverina any amin'ny %(version)s mampiasa%(brand)s tsy misy hadisoana.", diff --git a/src/i18n/strings/nb_NO.json b/src/i18n/strings/nb_NO.json index 4a8e4d9aee..e57a3acd00 100644 --- a/src/i18n/strings/nb_NO.json +++ b/src/i18n/strings/nb_NO.json @@ -101,9 +101,7 @@ "ok": "OK", "open": "Åpne", "open_menu": "Åpne meny", - "pause": "Pause", "pin": "Fest", - "play": "Spill av", "proceed": "Fortsett", "quote": "Sitat", "react": "Reager", @@ -1911,7 +1909,6 @@ "other": "%(count)s festede meldinger" }, "limits": { - "one": "", "other": "Du kan bare feste opptil %(count)s widgets" }, "menu": "Åpne meny", @@ -2219,9 +2216,6 @@ }, "room_options": "Rominnstillinger", "show_less": "Vis mindre", - "show_n_more": { - "Vis %(count)s til": "Vis %(count)s mer" - }, "show_previews": "Vis forhåndsvisninger av meldinger", "sort": "Sorter", "sort_by": "Sorter etter", @@ -3383,24 +3377,10 @@ "no_rooms_with_unread_threads": "Du har ikke rom med uleste tråder ennå." }, "time": { - "about_day_ago": "cirka 1 dag siden", - "about_hour_ago": "cirka 1 time siden", - "about_minute_ago": "cirka 1 minutt siden", "date_at_time": "%(date)s klokken %(time)s", - "few_seconds_ago": "noen sekunder siden", "hours_minutes_seconds_left": "%(hours)st%(minutes)s m%(seconds)s s igjen", - "in_about_day": "rundt en dag fra nå", - "in_about_hour": "rundt en time fra nå", - "in_about_minute": "rundt et minutt fra nå", - "in_few_seconds": "om noen sekunder fra nå", - "in_n_days": "%(num)s dager fra nå", - "in_n_hours": "%(num)s timer fra nå", - "in_n_minutes": "%(num)s minutter fra nå", "left": "%(timeRemaining)s igjen", "minutes_seconds_left": "%(minutes)sm%(seconds)s s igjen", - "n_days_ago": "%(num)s dager siden", - "n_hours_ago": "%(num)s timer siden", - "n_minutes_ago": "%(num)s minutter siden", "seconds_left": "%(seconds)ser igjen", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)s t %(minutes)s m %(seconds)s er", @@ -3455,11 +3435,9 @@ "unable_to_find": "Prøvde å laste inn et bestemt punkt i dette rommets tidslinje, men klarte ikke å finne det." }, "m.audio": { - "audio_player": "Lydavspiller", "error_downloading_audio": "Feil ved nedlasting av lyd", "error_processing_audio": "Feil ved prosessering av lydmelding", - "error_processing_voice_message": "Feil ved prosessering av talemelding", - "unnamed_audio": "Ikke navngitt lyd" + "error_processing_voice_message": "Feil ved prosessering av talemelding" }, "m.beacon_info": { "view_live_location": "Se lokasjon i sanntid" @@ -3730,9 +3708,6 @@ "one": "%(oneUser)s endret navn", "other": "%(oneUser)s endret navn %(count)s ganger" }, - "changed_name_multiple": { - "%(severalUsers)s endret navnene sine": "one" - }, "format": "%(nameList)s%(transitionList)s", "hidden_event": { "one": "%(oneUser)ssendte en skjult melding", @@ -3746,9 +3721,6 @@ "one": "%(oneUser)sfikk invitasjonen trukket tilbake", "other": "%(oneUser)sfikk invitasjonen trukket tilbake %(count)s ganger" }, - "invite_withdrawn_multiple": { - "%(severalUsers)sfikk sine invitasjoner trukket tilbake": "one" - }, "invited": { "one": "ble invitert", "other": "ble invitert %(count)s ganger" @@ -3761,9 +3733,6 @@ "one": "%(oneUser)sble med", "other": "%(oneUser)sble med %(count)s ganger" }, - "joined_and_left": { - "%(oneUser)sble med og forlot igjen": "one" - }, "joined_and_left_multiple": { "one": "%(severalUsers)sble med og forlot", "other": "%(severalUsers)sble med og forlot %(count)s ganger" @@ -3863,9 +3832,6 @@ } } }, - "truncated_list_n_more": { - "Og %(count)s til...": "other" - }, "unsupported_browser": { "description": "Hvis du fortsetter, kan noen funksjoner slutte å fungere, og det er en risiko for at du kan miste data i fremtiden. Oppdater nettleseren din for å fortsette å bruke%(brand)s.", "title": "%(brand)s støtter ikke denne nettleseren" @@ -3906,11 +3872,7 @@ "not_image": "Filen du har valgt, er ikke en gyldig bildefil.", "title": "Last opp filer", "title_progress": "Last opp filer (%(current)s av %(total)s)", - "upload_all_button": "Last opp alle", - "upload_n_others_button": { - "Last opp %(count)s andre filer": "Last opp %(count)s andre filer", - "Last opp %(count)s annen fil": "Last opp %(count)s en annen fil" - } + "upload_all_button": "Last opp alle" }, "user_info": { "admin_tools_section": "Adminverktøy", @@ -3948,10 +3910,6 @@ "kick_space_warning": "De vil fortsatt kunne få tilgang til det du ikke er administrator av.", "promote_warning": "Du vil ikke kunne angre denne endringen ettersom du promoterer brukeren til å ha samme tilgangsnivå som deg selv.", "redact": { - "confirm_button": { - "Slett %(count)s meldinger": "Fjern 1 melding", - "Slett 1 melding": "Fjern %(count)s meldinger" - }, "confirm_description_1": { "one": "Du er i ferd med å fjerne %(count)s melding fra %(user)s. Dette vil fjerne dem permanent for alle i samtalen. Ønsker du å fortsette?", "other": "Du er i ferd med å fjerne %(count)s meldinger fra %(user)s. Dette vil fjerne dem permanent for alle i samtalen. Ønsker du å fortsette?" diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json index 723b8b3a6d..8526543614 100644 --- a/src/i18n/strings/nl.json +++ b/src/i18n/strings/nl.json @@ -86,9 +86,7 @@ "no": "Nee", "ok": "Oké", "open": "Openen", - "pause": "Pauze", "pin": "Vastmaken", - "play": "Afspelen", "proceed": "Doorgaan", "quote": "Citeren", "react": "Reageren", @@ -2420,24 +2418,10 @@ "show_thread_filter": "Toon:" }, "time": { - "about_day_ago": "ongeveer een dag geleden", - "about_hour_ago": "ongeveer een uur geleden", - "about_minute_ago": "ongeveer een minuut geleden", "date_at_time": "%(date)s om %(time)s", - "few_seconds_ago": "enige tellen geleden", "hours_minutes_seconds_left": "%(hours)su, %(minutes)sm %(seconds)ss over", - "in_about_day": "over een dag of zo", - "in_about_hour": "over ongeveer een uur", - "in_about_minute": "over ongeveer een minuut", - "in_few_seconds": "over een paar tellen", - "in_n_days": "over %(num)s dagen", - "in_n_hours": "over %(num)s uur", - "in_n_minutes": "over %(num)s minuten", "left": "%(timeRemaining)s over", "minutes_seconds_left": "%(minutes)sm %(seconds)ss over", - "n_days_ago": "%(num)s dagen geleden", - "n_hours_ago": "%(num)s uur geleden", - "n_minutes_ago": "%(num)s minuten geleden", "seconds_left": "%(seconds)s's over", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)su %(minutes)sm %(seconds)ss", @@ -2477,8 +2461,7 @@ "m.audio": { "error_downloading_audio": "Fout bij downloaden van audio", "error_processing_audio": "Fout bij verwerking audiobericht", - "error_processing_voice_message": "Fout bij verwerking spraakbericht", - "unnamed_audio": "Naamloze audio" + "error_processing_voice_message": "Fout bij verwerking spraakbericht" }, "m.beacon_info": { "view_live_location": "Bekijk live locatie" diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json index 53032886e3..f8360892fe 100644 --- a/src/i18n/strings/pl.json +++ b/src/i18n/strings/pl.json @@ -102,9 +102,7 @@ "ok": "OK", "open": "Otwórz", "open_menu": "Otwórz menu", - "pause": "Wstrzymaj", "pin": "Przypnij", - "play": "Odtwórz", "proceed": "Kontynuuj", "quote": "Cytuj", "react": "Dodaj reakcję", @@ -3356,24 +3354,10 @@ "no_rooms_with_unread_threads": "Nie masz jeszcze pokoi z nieprzeczytanymi wątkami." }, "time": { - "about_day_ago": "około dzień temu", - "about_hour_ago": "około godziny temu", - "about_minute_ago": "około minuty temu", "date_at_time": "%(date)s o %(time)s", - "few_seconds_ago": "kilka sekund temu", "hours_minutes_seconds_left": "pozostało %(hours)s godz. %(minutes)s min. %(seconds)ss", - "in_about_day": "około dnia od teraz", - "in_about_hour": "około godziny od teraz", - "in_about_minute": "około minuty od teraz", - "in_few_seconds": "za kilka sekund", - "in_n_days": "za %(num)s dni", - "in_n_hours": "za %(num)s godzin", - "in_n_minutes": "za %(num)s minut", "left": "%(timeRemaining)s pozostało", "minutes_seconds_left": "pozostało %(minutes)s min. %(seconds)ss", - "n_days_ago": "%(num)s dni temu", - "n_hours_ago": "%(num)s godzin temu", - "n_minutes_ago": "%(num)s minut temu", "seconds_left": "pozostało %(seconds)ss", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)s godz. %(minutes)s min. %(seconds)ss", @@ -3428,11 +3412,9 @@ "unable_to_find": "Próbowano załadować konkretny punkt na osi czasu w tym pokoju, ale nie można go znaleźć." }, "m.audio": { - "audio_player": "Odtwarzacz audio", "error_downloading_audio": "Wystąpił błąd w trakcie pobierania audio", "error_processing_audio": "Wystąpił błąd procesowania wiadomości audio", - "error_processing_voice_message": "Wystąpił błąd procesowania wiadomości głosowej", - "unnamed_audio": "Audio bez nazwy" + "error_processing_voice_message": "Wystąpił błąd procesowania wiadomości głosowej" }, "m.beacon_info": { "view_live_location": "Pokaż lokalizację na żywo" diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json index 2ed647b43e..7ff51fb9ca 100644 --- a/src/i18n/strings/pt.json +++ b/src/i18n/strings/pt.json @@ -88,9 +88,7 @@ "ok": "OK", "open": "Abrir", "open_menu": "Abrir menu", - "pause": "Pausar", "pin": "Fixar", - "play": "Reproduzir", "proceed": "Prosseguir", "quote": "Citar", "react": "Reagir", @@ -1781,7 +1779,6 @@ "other": "%(count)s Mensagens fixadas" }, "limits": { - "one": "", "other": "Só podes fixar até %(count)s widgets" }, "menu": "Abrir o menu", @@ -3182,24 +3179,10 @@ "no_rooms_with_unread_threads": "Ainda não tens salas com tópicos não lidos." }, "time": { - "about_day_ago": "há cerca de um dia", - "about_hour_ago": "há cerca de uma hora", - "about_minute_ago": "há cerca de um minuto", "date_at_time": "%(date)s às %(time)s", - "few_seconds_ago": "há alguns segundos atrás", "hours_minutes_seconds_left": "%(hours)sh %(minutes)sm %(seconds)ss restantes", - "in_about_day": "daqui a um dia", - "in_about_hour": "daqui a uma hora", - "in_about_minute": "daqui a um minuto", - "in_few_seconds": "daqui a alguns segundos", - "in_n_days": "daqui a %(num)s dias", - "in_n_hours": "daqui a %(num)s horas", - "in_n_minutes": "daqui a %(num)s minutos", "left": "%(timeRemaining)s ainda", "minutes_seconds_left": "%(minutes)sm %(seconds)ss restantes", - "n_days_ago": "%(num)s dias atrás", - "n_hours_ago": "%(num)s horas atrás", - "n_minutes_ago": "%(num)s minutos atrás", "seconds_left": "%(seconds)ss restantes", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)sh %(minutes)sm %(seconds)ss", @@ -3256,8 +3239,7 @@ "m.audio": { "error_downloading_audio": "Erro ao descarregar áudio", "error_processing_audio": "Erro no processamento da mensagem de áudio", - "error_processing_voice_message": "Erro no processamento da mensagem de voz", - "unnamed_audio": "Áudio sem nome" + "error_processing_voice_message": "Erro no processamento da mensagem de voz" }, "m.beacon_info": { "view_live_location": "Vê a localização ao vivo" @@ -3664,7 +3646,6 @@ } }, "truncated_list_n_more": { - "one": "", "other": "E %(count)s mais..." }, "unsupported_browser": { diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json index 9f2e9f5879..5c58fbc4e8 100644 --- a/src/i18n/strings/pt_BR.json +++ b/src/i18n/strings/pt_BR.json @@ -101,9 +101,7 @@ "ok": "Ok", "open": "Abrir", "open_menu": "Abrir menu", - "pause": "Pausar", "pin": "Alfinete", - "play": "Reproduzir", "proceed": "Prosseguir", "quote": "Citar", "react": "Adicionar reação", @@ -3366,24 +3364,10 @@ "no_rooms_with_unread_threads": "Você ainda não tem salas com tópicos não lidos." }, "time": { - "about_day_ago": "há aproximadamente um dia", - "about_hour_ago": "há aproximadamente uma hora", - "about_minute_ago": "há aproximadamente um minuto", "date_at_time": "%(date)s às %(time)s", - "few_seconds_ago": "há alguns segundos", "hours_minutes_seconds_left": "%(hours)sh %(minutes)sm %(seconds)ss restantes", - "in_about_day": "dentro de aproximadamente um dia", - "in_about_hour": "dentro de aproximadamente uma hora", - "in_about_minute": "dentro de aproximadamente um minuto", - "in_few_seconds": "dentro de alguns segundos", - "in_n_days": "dentro de %(num)s dias", - "in_n_hours": "dentro de %(num)s horas", - "in_n_minutes": "dentro de %(num)s minutos", "left": "%(timeRemaining)s restante(s)", "minutes_seconds_left": "%(minutes)sm %(seconds)ss restantes", - "n_days_ago": "há %(num)s dias", - "n_hours_ago": "há %(num)s horas", - "n_minutes_ago": "há %(num)s minutos", "seconds_left": "%(seconds)s restantes", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)s h %(minutes)s m %(seconds)s s", @@ -3438,11 +3422,9 @@ "unable_to_find": "Não foi possível carregar um trecho específico da conversa desta sala." }, "m.audio": { - "audio_player": "Reprodutor de Áudio", "error_downloading_audio": "Erro ao baixar o áudio", "error_processing_audio": "Erro ao processar a mensagem de áudio", - "error_processing_voice_message": "Erro ao processar a mensagem de voz", - "unnamed_audio": "Áudio sem nome" + "error_processing_voice_message": "Erro ao processar a mensagem de voz" }, "m.beacon_info": { "view_live_location": "Ver localização ao vivo" diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index a4d54eddeb..f92fc80ca1 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -103,9 +103,7 @@ "ok": "ОК", "open": "Открыть", "open_menu": "Открыть меню", - "pause": "Пауза", "pin": "Закрепить", - "play": "Воспроизведение", "proceed": "Продолжить", "quote": "Цитировать", "react": "Отреагировать", @@ -3388,24 +3386,10 @@ "no_rooms_with_unread_threads": "У вас пока нет комнат с непрочитанными обсуждениями." }, "time": { - "about_day_ago": "около суток назад", - "about_hour_ago": "около часа назад", - "about_minute_ago": "около минуты назад", "date_at_time": "%(date)s в %(time)s", - "few_seconds_ago": "несколько секунд назад", "hours_minutes_seconds_left": "Осталось %(hours)sч %(minutes)sм %(seconds)sс", - "in_about_day": "примерно через день", - "in_about_hour": "примерно через час", - "in_about_minute": "примерно через минуту", - "in_few_seconds": "несколько секунд назад", - "in_n_days": "%(num)s дней спустя", - "in_n_hours": "%(num)s часов спустя", - "in_n_minutes": "%(num)s минут спустя", "left": "Осталось %(timeRemaining)s", "minutes_seconds_left": "Осталось %(minutes)sм %(seconds)sс", - "n_days_ago": "%(num)s дней назад", - "n_hours_ago": "%(num)s часов назад", - "n_minutes_ago": "%(num)s минут назад", "seconds_left": "%(seconds)s осталось", "short_days": "%(value)sд", "short_days_hours_minutes_seconds": "%(days)s д %(hours)s ч %(minutes)s мин %(seconds)s с", @@ -3460,11 +3444,9 @@ "unable_to_find": "Попытка загрузить выбранный интервал истории чата этой комнаты не удалась, так как запрошенный элемент не найден." }, "m.audio": { - "audio_player": "Аудиоплеер", "error_downloading_audio": "Ошибка загрузки аудио", "error_processing_audio": "Ошибка обработки звукового сообщения", - "error_processing_voice_message": "Ошибка при обработке голосового сообщения", - "unnamed_audio": "Безымянное аудио" + "error_processing_voice_message": "Ошибка при обработке голосового сообщения" }, "m.beacon_info": { "view_live_location": "Посмотреть трансляцию местоположения" @@ -3873,11 +3855,6 @@ } } }, - "truncated_list_n_more": { - "one": "%(count)s...", - "few": "И еще %(count)s...", - "many": "И еще %(count)s..." - }, "unsupported_browser": { "description": "Если вы продолжите, некоторые функции могут перестать работать, и существует риск потери данных в будущем. Обновите браузер, чтобы продолжить использование %(brand)s.", "title": "%(brand)s не поддерживает этот браузер" diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 64a49eed52..d7cb36f515 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -105,9 +105,7 @@ "ok": "OK", "open": "Otvoriť", "open_menu": "Otvoriť ponuku", - "pause": "Pozastaviť", "pin": "Špendlík", - "play": "Prehrať", "proceed": "Pokračovať", "quote": "Citovať", "react": "Reagovať", @@ -1933,8 +1931,6 @@ "other": "%(count)s pripnutých správ" }, "limits": { - "one": "Môžete pripnúť iba %(count)s widget", - "few": "Môžete pripnúť iba %(count)s widgety", "other": "Môžete pripnúť iba %(count)s widgetov" }, "menu": "Otvoriť ponuku", @@ -2153,7 +2149,6 @@ "status_bar": { "delete_all": "Vymazať všetko", "exceeded_resource_limit": "Vaša správa nebola odoslaná, pretože bol prekročený limit prostriedkov tohoto domovského servera. Prosím, kontaktujte správcu služieb aby ste službu mohli naďalej používať.", - "history_visible": "Správy, ktoré odošlete, budú zdieľané s novými členmi pozvanými do tejto miestnosti. Zistiť viac", "homeserver_blocked": "Vaša správa nebola odoslaná, pretože tento domovský server bol zablokovaný jeho správcom. Prosím, kontaktujte správcu služieb, aby ste službu mohli naďalej používať.", "monthly_user_limit_reached": "Vaša správa nebola odoslaná, pretože bol dosiahnutý mesačný limit počtu aktívnych používateľov tohoto domovského servera. Prosím, kontaktujte správcu služieb aby ste službu mohli naďalej používať.", "requires_consent_agreement": "Nemôžete posielať žiadne správy, kým si neprečítate a neodsúhlasíte naše zmluvné podmienky.", @@ -3428,24 +3423,10 @@ "no_rooms_with_unread_threads": "Zatiaľ nemáte miestnosti s neprečítanými vláknami." }, "time": { - "about_day_ago": "asi pred jedným dňom", - "about_hour_ago": "približne pred hodinou", - "about_minute_ago": "približne pred minútou", "date_at_time": "%(date)s o %(time)s", - "few_seconds_ago": "pred pár sekundami", "hours_minutes_seconds_left": "ostáva %(hours)sh %(minutes)sm %(seconds)ss", - "in_about_day": "približne o deň", - "in_about_hour": "približne o hodinu", - "in_about_minute": "približne o minútu", - "in_few_seconds": "o pár sekúnd", - "in_n_days": "o %(num)s dní", - "in_n_hours": "o %(num)s hodín", - "in_n_minutes": "o %(num)s minút", "left": "zostáva %(timeRemaining)s", "minutes_seconds_left": "ostáva %(minutes)sm %(seconds)ss", - "n_days_ago": "pred %(num)s dňami", - "n_hours_ago": "pred %(num)s hodinami", - "n_minutes_ago": "pred %(num)s minútami", "seconds_left": "%(seconds)ss ostáva", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)sh %(minutes)sm %(seconds)ss", @@ -3500,11 +3481,9 @@ "unable_to_find": "Pokus o načítanie konkrétneho bodu na časovej osi tejto miestnosti, ale nepodarilo sa ho nájsť." }, "m.audio": { - "audio_player": "Prehrávač zvuku", "error_downloading_audio": "Chyba pri sťahovaní zvuku", "error_processing_audio": "Chyba pri spracovaní hlasovej správy", - "error_processing_voice_message": "Chyba pri spracovaní hlasovej správy", - "unnamed_audio": "Nepomenovaný zvukový záznam" + "error_processing_voice_message": "Chyba pri spracovaní hlasovej správy" }, "m.beacon_info": { "view_live_location": "Zobraziť polohu v reálnom čase" diff --git a/src/i18n/strings/sq.json b/src/i18n/strings/sq.json index 30200eeae9..a5248c2c51 100644 --- a/src/i18n/strings/sq.json +++ b/src/i18n/strings/sq.json @@ -78,9 +78,7 @@ "next": "Pasuesja", "no": "Jo", "open": "Hape", - "pause": "Ndalesë", "pin": "Fiksoje", - "play": "Luaje", "quote": "Citim", "react": "Reagoni", "refresh": "Rifreskoje", @@ -2651,24 +2649,10 @@ "show_thread_filter": "Shfaq:" }, "time": { - "about_day_ago": "rreth një ditë më parë", - "about_hour_ago": "rreth një orë më parë", - "about_minute_ago": "rreth një minutë më parë", "date_at_time": "%(date)s më %(time)s", - "few_seconds_ago": "pak sekonda më parë", "hours_minutes_seconds_left": "Edhe %(hours)sh %(minutes)sm %(seconds)ss", - "in_about_day": "rreth një ditë nga tani", - "in_about_hour": "rreth një orë nga tani", - "in_about_minute": "rreth një minutë nga tani", - "in_few_seconds": "pak sekonda nga tani", - "in_n_days": "%(num)s ditë nga tani", - "in_n_hours": "%(num)s orë nga tani", - "in_n_minutes": "%(num)s minuta nga tani", "left": "Edhe %(timeRemaining)s", "minutes_seconds_left": "Edhe %(minutes)sm %(seconds)ss", - "n_days_ago": "%(num)s ditë më parë", - "n_hours_ago": "%(num)s orë më parë", - "n_minutes_ago": "%(num)s minuta më parë", "seconds_left": "Edhe %(seconds)ss" }, "timeline": { @@ -2704,8 +2688,7 @@ "m.audio": { "error_downloading_audio": "Gabim në shkarkim audioje", "error_processing_audio": "Gabim në përpunim mesazhi audio", - "error_processing_voice_message": "Gabim në përpunimin e mesazhit zanor", - "unnamed_audio": "Audio pa emër" + "error_processing_voice_message": "Gabim në përpunimin e mesazhit zanor" }, "m.beacon_info": { "view_live_location": "Shihni vendndodhje aty për aty" diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index 3103398033..68ecf098f5 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -100,9 +100,7 @@ "ok": "OK", "open": "Öppna", "open_menu": "Öppna menyn", - "pause": "Pausa", "pin": "Häftstift", - "play": "Spela", "proceed": "Fortsätt", "quote": "Citera", "react": "Reagera", @@ -3297,24 +3295,10 @@ "no_rooms_with_unread_threads": "Du har inga rum med olästa trådar än." }, "time": { - "about_day_ago": "cirka en dag sedan", - "about_hour_ago": "cirka en timme sedan", - "about_minute_ago": "cirka en minut sedan", "date_at_time": "%(date)s vid %(time)s", - "few_seconds_ago": "några sekunder sedan", "hours_minutes_seconds_left": "%(hours)st %(minutes)sm %(seconds)ss kvar", - "in_about_day": "om cirka en dag", - "in_about_hour": "om cirka en timme", - "in_about_minute": "om cirka en minut", - "in_few_seconds": "om några sekunder", - "in_n_days": "om %(num)s dagar", - "in_n_hours": "om %(num)s timmar", - "in_n_minutes": "om %(num)s minuter", "left": "%(timeRemaining)s kvar", "minutes_seconds_left": "%(minutes)sm %(seconds)ss kvar", - "n_days_ago": "%(num)s dagar sedan", - "n_hours_ago": "%(num)s timmar sedan", - "n_minutes_ago": "%(num)s minuter sedan", "seconds_left": "%(seconds)ss kvar", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)st %(minutes)sm %(seconds)ss", @@ -3369,11 +3353,9 @@ "unable_to_find": "Försökte ladda en specifik punkt i det här rummets tidslinje, men kunde inte hitta den." }, "m.audio": { - "audio_player": "Ljudspelare", "error_downloading_audio": "Fel vid nedladdning av ljud", "error_processing_audio": "Fel vid hantering av ljudmeddelande", - "error_processing_voice_message": "Fel vid hantering av röstmeddelande", - "unnamed_audio": "Namnlöst ljud" + "error_processing_voice_message": "Fel vid hantering av röstmeddelande" }, "m.beacon_info": { "view_live_location": "Se realtidsposition" diff --git a/src/i18n/strings/tr.json b/src/i18n/strings/tr.json index ecd80897a2..a3d9bdddaa 100644 --- a/src/i18n/strings/tr.json +++ b/src/i18n/strings/tr.json @@ -87,9 +87,7 @@ "ok": "Tamam", "open": "Aç", "open_menu": "Menüyü aç", - "pause": "Durdur", "pin": "PIN Kodu", - "play": "Oynat", "proceed": "İlerle", "quote": "Alıntı", "react": "Tepki ver", @@ -1779,7 +1777,6 @@ "other": "%(count)s Sabitlenmiş mesaj" }, "limits": { - "one": "", "other": "En fazla %(count)s widget'ı sabitleyebilirsiniz" }, "menu": "Menüyü aç", @@ -3153,24 +3150,10 @@ "no_rooms_with_unread_threads": "Henüz okunmamış mesaj dizilerinin bulunduğu odalarınız yok." }, "time": { - "about_day_ago": "yaklaşık bir gün önce", - "about_hour_ago": "yaklaşık bir saat önce", - "about_minute_ago": "yaklaşık bir dakika önce", "date_at_time": "%(date)s e %(time)s", - "few_seconds_ago": "bir kaç saniye önce", "hours_minutes_seconds_left": "%(hours)sh %(minutes)sm %(seconds)ss kaldı", - "in_about_day": "şu andan itibaren yaklaşık bir gün", - "in_about_hour": "şu andan itibaren yaklaşık bir saat", - "in_about_minute": "şu andan itibaren yaklaşık bir dakika", - "in_few_seconds": "şu andan itibaren bir kaç saniye", - "in_n_days": "şu andan itibaren %(num)s gün", - "in_n_hours": "şu andan itibaren %(num)s saat", - "in_n_minutes": "şu andan itibaren %(num)s dakika", "left": "%(timeRemaining)s kaldı", "minutes_seconds_left": "%(minutes)sm %(seconds)ss kaldı", - "n_days_ago": "%(num)s gün önce", - "n_hours_ago": "%(num)s saat önce", - "n_minutes_ago": "%(num)s dakika önce", "seconds_left": "%(seconds)s saniye kaldı", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)sd %(hours)sh %(minutes)sm %(seconds)ss", @@ -3227,8 +3210,7 @@ "m.audio": { "error_downloading_audio": "Ses dosyası indirilirken hata oluştu", "error_processing_audio": "Sesli mesaj işlenirken hata oluştu", - "error_processing_voice_message": "Sesli mesaj işlenirken hata oluştu", - "unnamed_audio": "İsimsiz ses" + "error_processing_voice_message": "Sesli mesaj işlenirken hata oluştu" }, "m.beacon_info": { "view_live_location": "Canlı konumu görüntüle" diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json index 864d8b89b4..97cb516a11 100644 --- a/src/i18n/strings/uk.json +++ b/src/i18n/strings/uk.json @@ -103,9 +103,7 @@ "ok": "Гаразд", "open": "Відкрити", "open_menu": "Відкрити меню", - "pause": "Призупинити", "pin": "Кнопка", - "play": "Відтворити", "proceed": "Продовжити", "quote": "Цитувати", "react": "Відреагувати", @@ -3387,24 +3385,10 @@ "no_rooms_with_unread_threads": "У вас ще немає кімнат з непрочитаними гілками." }, "time": { - "about_day_ago": "близько доби тому", - "about_hour_ago": "близько години тому", - "about_minute_ago": "близько хвилини тому", "date_at_time": "%(date)s о %(time)s", - "few_seconds_ago": "Декілька секунд тому", "hours_minutes_seconds_left": "Залишилося %(hours)sгод %(minutes)sхв %(seconds)sс", - "in_about_day": "приблизно через день", - "in_about_hour": "приблизно через годину", - "in_about_minute": "приблизно через хвилинку", - "in_few_seconds": "декілька секунд тому", - "in_n_days": "%(num)s днів по тому", - "in_n_hours": "%(num)s годин по тому", - "in_n_minutes": "%(num)s хвилин по тому", "left": "Іще %(timeRemaining)s", "minutes_seconds_left": "Залишилося %(minutes)sхв %(seconds)sс", - "n_days_ago": "%(num)s днів тому", - "n_hours_ago": "%(num)s годин тому", - "n_minutes_ago": "%(num)s хвилин тому", "seconds_left": "Ще %(seconds)s с", "short_days": "%(value)sд", "short_days_hours_minutes_seconds": "%(days)sд %(hours)sгод %(minutes)sхв %(seconds)sс", @@ -3459,11 +3443,9 @@ "unable_to_find": "Не вдалося знайти вказаної позиції в стрічці цієї кімнати." }, "m.audio": { - "audio_player": "Звуковий програвач", "error_downloading_audio": "Помилка завантаження аудіо", "error_processing_audio": "Помилка обробки аудіоповідомлення", - "error_processing_voice_message": "Помилка обробки голосового повідомлення", - "unnamed_audio": "Аудіо без назви" + "error_processing_voice_message": "Помилка обробки голосового повідомлення" }, "m.beacon_info": { "view_live_location": "Показувати місцеперебування наживо" @@ -3879,11 +3861,6 @@ } } }, - "truncated_list_n_more": { - "one": "", - "few": "І ще %(count)s…", - "many": "І ще %(count)s…" - }, "unsupported_browser": { "description": "Якщо ви продовжите, деякі функції можуть перестати працювати, і існує ризик втрати даних у майбутньому. Оновіть браузер, щоб продовжити користуватись %(brand)s.", "title": "%(brand)s не підтримує цей браузер" diff --git a/src/i18n/strings/vi.json b/src/i18n/strings/vi.json index 2fedb71c84..c611f48cd4 100644 --- a/src/i18n/strings/vi.json +++ b/src/i18n/strings/vi.json @@ -83,9 +83,7 @@ "no": "Không", "ok": "Ok", "open": "Mở", - "pause": "Tạm dừng", "pin": "Ghim", - "play": "Chạy", "proceed": "Tiếp tục", "quote": "Trích", "react": "Phản ứng", @@ -2597,23 +2595,9 @@ "show_thread_filter": "Hiển thị:" }, "time": { - "about_day_ago": "khoảng một ngày trước", - "about_hour_ago": "khoảng một giờ trước", - "about_minute_ago": "khoảng một phút trước", "date_at_time": "%(date)s lúc %(time)s", - "few_seconds_ago": "vài giây trước", "hours_minutes_seconds_left": "Còn lại %(hours)s giờ %(minutes)s phút %(seconds)s giây", - "in_about_day": "khoảng một ngày kể từ bây giờ", - "in_about_hour": "khoảng một giờ kể từ bây giờ", - "in_about_minute": "khoảng một phút kể từ bây giờ", - "in_few_seconds": "một vài giây kể từ bây giờ", - "in_n_days": "%(num)s ngày kể từ bây giờ", - "in_n_hours": "%(num)s giờ kể từ bây giờ", - "in_n_minutes": "%(num)s phút kể từ bây giờ", "minutes_seconds_left": "Còn lại %(minutes)s phút %(seconds)s giây", - "n_days_ago": "%(num)s ngày trước", - "n_hours_ago": "%(num)s giờ trước", - "n_minutes_ago": "%(num)s phút trước", "seconds_left": "Còn %(seconds)s giây", "short_days": "%(value)sngày", "short_days_hours_minutes_seconds": "%(days)s ngày %(hours)s giờ %(minutes)s phút %(seconds)s giây", @@ -2656,8 +2640,7 @@ "m.audio": { "error_downloading_audio": "Lỗi khi tải xuống âm thanh", "error_processing_audio": "Lỗi khi xử lý tin nhắn âm thanh", - "error_processing_voice_message": "Lỗi khi xử lý tin nhắn thoại", - "unnamed_audio": "Âm thanh không tên" + "error_processing_voice_message": "Lỗi khi xử lý tin nhắn thoại" }, "m.call": { "video_call_ended": "Cuộc gọi truyền hình đã kết thúc", diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index 489e56ca53..9a399f3c1e 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -81,9 +81,7 @@ "no": "不", "ok": "确定", "open": "打开", - "pause": "暂停", "pin": "别针", - "play": "播放", "proceed": "继续", "quote": "引述", "react": "回应", @@ -2522,24 +2520,10 @@ "show_thread_filter": "显示:" }, "time": { - "about_day_ago": "约一天前", - "about_hour_ago": "约一小时前", - "about_minute_ago": "约一分钟前", "date_at_time": "%(date)s 的 %(time)s", - "few_seconds_ago": "数秒前", "hours_minutes_seconds_left": "剩余%(hours)s小时%(minutes)s分钟%(seconds)s秒", - "in_about_day": "从现在开始约一天", - "in_about_hour": "从现在开始约一小时", - "in_about_minute": "从现在开始约一分钟", - "in_few_seconds": "从现在开始数秒", - "in_n_days": "从现在开始%(num)s天", - "in_n_hours": "从现在开始%(num)s小时", - "in_n_minutes": "从现在开始%(num)s分钟", "left": "剩余%(timeRemaining)s", "minutes_seconds_left": "剩余%(minutes)s分钟%(seconds)s秒", - "n_days_ago": "%(num)s天前", - "n_hours_ago": "%(num)s小时前", - "n_minutes_ago": "%(num)s分钟前", "seconds_left": "剩余 %(seconds)s 秒", "short_days": "%(value)s 天", "short_days_hours_minutes_seconds": "%(days)s天%(hours)s小时%(minutes)s分钟%(seconds)s秒", @@ -2581,8 +2565,7 @@ "m.audio": { "error_downloading_audio": "下载音频时出错", "error_processing_audio": "处理音频消息时出错", - "error_processing_voice_message": "处理语音消息时发生错误", - "unnamed_audio": "未命名的音频" + "error_processing_voice_message": "处理语音消息时发生错误" }, "m.beacon_info": { "view_live_location": "查看实时位置" diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 5094d81d18..e0e7bb4ec1 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -85,9 +85,7 @@ "no": "否", "ok": "確定", "open": "開啟", - "pause": "暫停", "pin": "圖釘", - "play": "播放", "proceed": "繼續", "quote": "引用", "react": "反應", @@ -2835,24 +2833,10 @@ "show_thread_filter": "顯示:" }, "time": { - "about_day_ago": "大約一天前", - "about_hour_ago": "大約一小時前", - "about_minute_ago": "大約一分鐘前", "date_at_time": "%(date)s 於 %(time)s", - "few_seconds_ago": "數秒前", "hours_minutes_seconds_left": "剩餘 %(hours)s 小時 %(minutes)s 分鐘 %(seconds)s 秒", - "in_about_day": "從現在開始大約一天", - "in_about_hour": "從現在開始大約一小時", - "in_about_minute": "從現在開始大約一分鐘", - "in_few_seconds": "從現在開始數秒鐘", - "in_n_days": "從現在開始 %(num)s 天", - "in_n_hours": "從現在開始 %(num)s 小時", - "in_n_minutes": "從現在開始 %(num)s 分鐘", "left": "剩下 %(timeRemaining)s", "minutes_seconds_left": "剩餘 %(minutes)s 分鐘 %(seconds)s 秒", - "n_days_ago": "%(num)s 天前", - "n_hours_ago": "%(num)s 小時前", - "n_minutes_ago": "%(num)s 分鐘前", "seconds_left": "剩 %(seconds)s 秒", "short_days": "%(value)sd", "short_days_hours_minutes_seconds": "%(days)s 天 %(hours)s 小時 %(minutes)s 分鐘 %(seconds)s 秒", @@ -2895,8 +2879,7 @@ "m.audio": { "error_downloading_audio": "下載音訊時發生錯誤", "error_processing_audio": "處理音訊訊息時出現問題", - "error_processing_voice_message": "處理語音訊息時發生錯誤", - "unnamed_audio": "未命名的音訊" + "error_processing_voice_message": "處理語音訊息時發生錯誤" }, "m.beacon_info": { "view_live_location": "檢視即時位置" diff --git a/src/languageHandler.tsx b/src/languageHandler.tsx index abd26dda01..2effdb3856 100644 --- a/src/languageHandler.tsx +++ b/src/languageHandler.tsx @@ -12,7 +12,6 @@ import _ from "lodash"; import { _t, normalizeLanguageKey, - type TranslationKey, type IVariables, KEY_SEPARATOR, getLangsJson, @@ -33,7 +32,6 @@ export { _t, type IVariables, type Tags, - type TranslationKey, type TranslatedString, _td, _tDom, diff --git a/src/modules/ProxiedModuleApi.ts b/src/modules/ProxiedModuleApi.ts index f36b81dec2..9bccf9f71f 100644 --- a/src/modules/ProxiedModuleApi.ts +++ b/src/modules/ProxiedModuleApi.ts @@ -19,7 +19,7 @@ import { type ModuleUiDialogOptions } from "@matrix-org/react-sdk-module-api/lib import type React from "react"; import Modal from "../Modal"; -import { _t, type TranslationKey } from "../languageHandler"; +import { _t } from "../languageHandler"; import { ModuleUiDialog } from "../components/views/dialogs/ModuleUiDialog"; import SdkConfig from "../SdkConfig"; import PlatformPeg from "../PlatformPeg"; diff --git a/src/notifications/VectorPushRulesDefinitions.ts b/src/notifications/VectorPushRulesDefinitions.ts index 403efbc49b..d496119f1e 100644 --- a/src/notifications/VectorPushRulesDefinitions.ts +++ b/src/notifications/VectorPushRulesDefinitions.ts @@ -9,7 +9,7 @@ Please see LICENSE files in the repository root for full details. import { type IAnnotatedPushRule, type PushRuleAction, RuleId } from "matrix-js-sdk/src/matrix"; import { logger } from "matrix-js-sdk/src/logger"; -import { _td, type TranslationKey } from "../languageHandler"; +import { _td } from "../languageHandler"; import { StandardActions } from "./StandardActions"; import { PushRuleVectorState, VectorState } from "./PushRuleVectorState"; import { NotificationUtils } from "./NotificationUtils"; diff --git a/src/settings/Settings.tsx b/src/settings/Settings.tsx index 2fdc1a79a2..53fa9dff88 100644 --- a/src/settings/Settings.tsx +++ b/src/settings/Settings.tsx @@ -10,7 +10,7 @@ Please see LICENSE files in the repository root for full details. import React, { type ReactNode } from "react"; import { STABLE_MSC4133_EXTENDED_PROFILES, UNSTABLE_MSC4133_EXTENDED_PROFILES } from "matrix-js-sdk/src/matrix"; // Import these directly from shared-components to avoid circular deps -import { _t, _td, type TranslationKey } from "@element-hq/web-shared-components"; +import { _t, _td } from "@element-hq/web-shared-components"; import { type MediaPreviewConfig } from "../@types/media_preview.ts"; import DeviceIsolationModeController from "./controllers/DeviceIsolationModeController.ts"; diff --git a/src/settings/controllers/ServerSupportUnstableFeatureController.ts b/src/settings/controllers/ServerSupportUnstableFeatureController.ts index 058fdaae08..1b212da638 100644 --- a/src/settings/controllers/ServerSupportUnstableFeatureController.ts +++ b/src/settings/controllers/ServerSupportUnstableFeatureController.ts @@ -11,7 +11,7 @@ import MatrixClientBackedController from "./MatrixClientBackedController"; import { type WatchManager } from "../WatchManager"; import SettingsStore from "../SettingsStore"; import { type SettingKey } from "../Settings.tsx"; -import { _t, type TranslationKey } from "../../languageHandler.tsx"; +import { _t } from "../../languageHandler.tsx"; /** * Disables a given setting if the server unstable feature it requires is not supported diff --git a/src/slash-commands/command.ts b/src/slash-commands/command.ts index 9619c514dd..f541f5ae98 100644 --- a/src/slash-commands/command.ts +++ b/src/slash-commands/command.ts @@ -14,7 +14,7 @@ import { type SlashCommand as SlashCommandEvent } from "@matrix-org/analytics-ev import { TimelineRenderingType } from "../contexts/RoomContext"; import { reject } from "./utils"; -import { _t, type TranslationKey, UserFriendlyError } from "../languageHandler"; +import { _t, UserFriendlyError } from "../languageHandler"; import { PosthogAnalytics } from "../PosthogAnalytics"; import { CommandCategories, type RunResult } from "./interface"; diff --git a/src/utils/AutoDiscoveryUtils.tsx b/src/utils/AutoDiscoveryUtils.tsx index e5359c48f8..32bd92df7c 100644 --- a/src/utils/AutoDiscoveryUtils.tsx +++ b/src/utils/AutoDiscoveryUtils.tsx @@ -18,7 +18,7 @@ import { } from "matrix-js-sdk/src/matrix"; import { logger } from "matrix-js-sdk/src/logger"; -import { _t, _td, type TranslationKey, UserFriendlyError } from "../languageHandler"; +import { _t, _td, UserFriendlyError } from "../languageHandler"; import SdkConfig from "../SdkConfig"; import { type ValidatedServerConfig } from "./ValidatedServerConfig"; diff --git a/src/utils/ErrorUtils.tsx b/src/utils/ErrorUtils.tsx index 2772350a0c..de3d0bfdf3 100644 --- a/src/utils/ErrorUtils.tsx +++ b/src/utils/ErrorUtils.tsx @@ -10,7 +10,7 @@ import React, { type ReactNode } from "react"; import { MatrixError, ConnectionError } from "matrix-js-sdk/src/matrix"; import { logger } from "matrix-js-sdk/src/logger"; -import { _t, _td, lookupString, type Tags, type TranslatedString, type TranslationKey } from "../languageHandler"; +import { _t, _td, lookupString, type Tags, type TranslatedString } from "../languageHandler"; import SdkConfig from "../SdkConfig"; import { type ValidatedServerConfig } from "./ValidatedServerConfig"; import ExternalLink from "../components/views/elements/ExternalLink"; diff --git a/src/vector/index.ts b/src/vector/index.ts index e705014add..3dfcbe6cdf 100644 --- a/src/vector/index.ts +++ b/src/vector/index.ts @@ -11,7 +11,7 @@ Please see LICENSE files in the repository root for full details. */ import { logger } from "matrix-js-sdk/src/logger"; -import { shouldPolyfill as shouldPolyFillIntlSegmenter } from "@formatjs/intl-segmenter/should-polyfill"; +import { shouldPolyfill as shouldPolyFillIntlSegmenter } from "@formatjs/intl-segmenter/should-polyfill.js"; // These are things that can run before the skin loads - be careful not to reference the react-sdk though. import { parseQsFromFragment } from "./url_utils"; @@ -106,7 +106,7 @@ const supportedBrowser = checkBrowserFeatures(); // Load parallelism is based on research in https://github.com/element-hq/element-web/issues/12253 async function start(): Promise { if (shouldPolyFillIntlSegmenter()) { - await import(/* webpackChunkName: "intl-segmenter-polyfill" */ "@formatjs/intl-segmenter/polyfill-force"); + await import(/* webpackChunkName: "intl-segmenter-polyfill" */ "@formatjs/intl-segmenter/polyfill-force.js"); } // load init.ts async so that its code is not executed immediately and we can catch any exceptions diff --git a/src/widgets/CapabilityText.tsx b/src/widgets/CapabilityText.tsx index effaa0975b..c64e7ffa0f 100644 --- a/src/widgets/CapabilityText.tsx +++ b/src/widgets/CapabilityText.tsx @@ -21,7 +21,7 @@ import { import { EventType, MsgType } from "matrix-js-sdk/src/matrix"; import React from "react"; -import { _t, _td, type TranslatedString, type TranslationKey } from "../languageHandler"; +import { _t, _td, type TranslatedString } from "../languageHandler"; import { ElementWidgetCapabilities } from "../stores/widgets/ElementWidgetCapabilities"; import { MatrixClientPeg } from "../MatrixClientPeg"; import TextWithTooltip from "../components/views/elements/TextWithTooltip"; diff --git a/test/setup/setupLanguage.ts b/test/setup/setupLanguage.ts index 124ff7cbbd..848a4b2d22 100644 --- a/test/setup/setupLanguage.ts +++ b/test/setup/setupLanguage.ts @@ -8,10 +8,16 @@ Please see LICENSE files in the repository root for full details. import fetchMock from "fetch-mock-jest"; import { ModuleLoader } from "@element-hq/element-web-module-api"; +import { merge } from "lodash"; import * as languageHandler from "../../src/languageHandler"; -import en from "../../src/i18n/strings/en_EN.json"; -import de from "../../src/i18n/strings/de_DE.json"; +import enElementWeb from "../../src/i18n/strings/en_EN.json"; +import deElementWeb from "../../src/i18n/strings/de_DE.json"; +// Cheat and import relatively here as these aren't exported by the module (should they be?) +// eslint-disable-next-line no-restricted-imports +import enSharedComponents from "../../packages/shared-components/src/i18n/strings/en_EN.json"; +// eslint-disable-next-line no-restricted-imports +import deSharedComponents from "../../packages/shared-components/src/i18n/strings/de_DE.json"; import { ModuleApi } from "../../src/modules/Api"; const lv = { @@ -31,14 +37,21 @@ const lv = { // lv.json - mock version with few translations, used to test fallback translation export function setupLanguageMock() { + // Pull the translations from shared components too as they have + // the strings for things like `humanizeTime` which do appear in + // snapshots (needs 'merge' which does a deep-merge rather than just + // replacing top-level keys). + const enTranslations = merge(enElementWeb, enSharedComponents); + const deTranslations = merge(deElementWeb, deSharedComponents); + fetchMock .get("/i18n/languages.json", { en: "en_EN.json", de: "de_DE.json", lv: "lv.json", }) - .get("end:en_EN.json", en) - .get("end:de_DE.json", de) + .get("end:en_EN.json", enTranslations) + .get("end:de_DE.json", deTranslations) .get("end:lv.json", lv); } setupLanguageMock(); diff --git a/test/unit-tests/components/views/beta/BetaCard-test.tsx b/test/unit-tests/components/views/beta/BetaCard-test.tsx index 06ede990e6..47c9b29230 100644 --- a/test/unit-tests/components/views/beta/BetaCard-test.tsx +++ b/test/unit-tests/components/views/beta/BetaCard-test.tsx @@ -13,7 +13,6 @@ import { render, screen } from "jest-matrix-react"; import { shouldShowFeedback } from "../../../../../src/utils/Feedback"; import BetaCard from "../../../../../src/components/views/beta/BetaCard"; import SettingsStore from "../../../../../src/settings/SettingsStore"; -import { type TranslationKey } from "../../../../../src/languageHandler"; import { type FeatureSettingKey } from "../../../../../src/settings/Settings.tsx"; jest.mock("../../../../../src/utils/Feedback"); diff --git a/test/unit-tests/languageHandler-test.tsx b/test/unit-tests/languageHandler-test.tsx index de1a629608..d484696995 100644 --- a/test/unit-tests/languageHandler-test.tsx +++ b/test/unit-tests/languageHandler-test.tsx @@ -23,7 +23,6 @@ import { substitute, type TranslatedString, UserFriendlyError, - type TranslationKey, type IVariables, type Tags, getLanguagesFromBrowser, diff --git a/test/unit-tests/settings/controllers/ServerSupportUnstableFeatureController-test.ts b/test/unit-tests/settings/controllers/ServerSupportUnstableFeatureController-test.ts index cab82f8d32..1bd80e2535 100644 --- a/test/unit-tests/settings/controllers/ServerSupportUnstableFeatureController-test.ts +++ b/test/unit-tests/settings/controllers/ServerSupportUnstableFeatureController-test.ts @@ -14,7 +14,6 @@ import { type FeatureSettingKey, LabGroup, SETTINGS } from "../../../../src/sett import { stubClient } from "../../../test-utils"; import { WatchManager } from "../../../../src/settings/WatchManager"; import MatrixClientBackedController from "../../../../src/settings/controllers/MatrixClientBackedController"; -import { type TranslationKey } from "../../../../src/languageHandler"; describe("ServerSupportUnstableFeatureController", () => { const watchers = new WatchManager(); diff --git a/yarn.lock b/yarn.lock index a6e5e46b5b..28cda0ef51 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1754,13 +1754,20 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/eslint-utils@^4.4.0", "@eslint-community/eslint-utils@^4.7.0", "@eslint-community/eslint-utils@^4.9.0": +"@eslint-community/eslint-utils@^4.4.0", "@eslint-community/eslint-utils@^4.9.0": version "4.9.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3" integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== dependencies: eslint-visitor-keys "^3.4.3" +"@eslint-community/eslint-utils@^4.7.0", "@eslint-community/eslint-utils@^4.9.1": + version "4.9.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" + integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== + dependencies: + eslint-visitor-keys "^3.4.3" + "@eslint-community/regexpp@^4.10.0": version "4.12.2" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" @@ -1837,37 +1844,38 @@ resolved "https://registry.yarnpkg.com/@fontsource/inter/-/inter-5.2.8.tgz#10c95d877d972c7de5bd4592309d42fb6a5e1a5b" integrity sha512-P6r5WnJoKiNVV+zvW2xM13gNdFhAEpQ9dQJHt3naLvfg+LkF2ldgSLiF4T41lf1SQCM9QmkqPTn4TH568IRagg== -"@formatjs/ecma402-abstract@2.3.6": - version "2.3.6" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz#d6ca9d3579054fe1e1a0a0b5e872e0d64922e4e1" - integrity sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw== +"@formatjs/ecma402-abstract@3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-3.0.7.tgz#f5b211fd5fb075a96aefc195f641c7bf3e739698" + integrity sha512-U55Yulf37vBXN0C7gHm7hrxULVrcrhpQBcdLmIN2rpYpLfC5eIpa1JRX9efjU74gfzjK/MSmSG3Lxv3E4ZNZIw== dependencies: - "@formatjs/fast-memoize" "2.2.7" - "@formatjs/intl-localematcher" "0.6.2" + "@formatjs/fast-memoize" "3.0.2" + "@formatjs/intl-localematcher" "0.7.4" decimal.js "^10.4.3" tslib "^2.8.0" -"@formatjs/fast-memoize@2.2.7": - version "2.2.7" - resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz#707f9ddaeb522a32f6715bb7950b0831f4cc7b15" - integrity sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ== +"@formatjs/fast-memoize@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-3.0.2.tgz#0e1303b62fbf9dfc33fed52c60356bd5b2ed585c" + integrity sha512-YFApUDWFmjpPwAE7VcY7PYVjm6JaLZOAo0UfCQj1/OGi/1QtduG9kIBHmVC551M6AI01qvuP5kjbDebrZOT4Vg== dependencies: tslib "^2.8.0" -"@formatjs/intl-localematcher@0.6.2": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz#e9ebe0b4082d7d48e5b2d753579fb7ece4eaefea" - integrity sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA== +"@formatjs/intl-localematcher@0.7.4": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.7.4.tgz#5385b6b45ce1907fc4376c53fed0a79ab6531d98" + integrity sha512-AWsSZupIBMU/y04Nj24CjohyNVyfItMJPxSzX5OJwedDEIbGLOHkPxCjAeLeiLF2dw4xmQA8psktdi9MaebBQw== dependencies: + "@formatjs/fast-memoize" "3.0.2" tslib "^2.8.0" -"@formatjs/intl-segmenter@^11.5.7": - version "11.7.12" - resolved "https://registry.yarnpkg.com/@formatjs/intl-segmenter/-/intl-segmenter-11.7.12.tgz#eed3e2166a342495dd823b59781560d379d28d6c" - integrity sha512-3QefVKh5HvaKU80lAFmqUsWmKYWcpiDymsc0HwFvhuVl0dAnMhtbNmzMN50UiC7ZsnbybelNGrm9GZPp4kbbZA== +"@formatjs/intl-segmenter@^12.0.0": + version "12.0.7" + resolved "https://registry.yarnpkg.com/@formatjs/intl-segmenter/-/intl-segmenter-12.0.7.tgz#0602ea3aae1699849f70d821eee3d1c2524c0536" + integrity sha512-ac/N+lNi9CaQcYeqrrEmiWWFd2g3navcJQmUG346h4EMRNrEHQzhBrizO2G4qAohvszI9qzSmCXxAmpr0NHLfQ== dependencies: - "@formatjs/ecma402-abstract" "2.3.6" - "@formatjs/intl-localematcher" "0.6.2" + "@formatjs/ecma402-abstract" "3.0.7" + "@formatjs/intl-localematcher" "0.7.4" tslib "^2.8.0" "@grpc/grpc-js@^1.11.1": @@ -2190,13 +2198,12 @@ "@types/yargs" "^17.0.33" chalk "^4.1.2" -"@joshwooding/vite-plugin-react-docgen-typescript@0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.6.1.tgz#f630b93ed13d5d07483c0ead42db793053b364a9" - integrity sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw== +"@joshwooding/vite-plugin-react-docgen-typescript@^0.6.3": + version "0.6.3" + resolved "https://registry.yarnpkg.com/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.6.3.tgz#cc371b00b0c4f5a74e20da5c125a3529d379983b" + integrity sha512-9TGZuAX+liGkNKkwuo3FYJu7gHWT0vkBcf7GkOe7s7fmC19XwH/4u5u7sDIFrMooe558ORcmuBvBz7Ur5PlbHw== dependencies: - glob "^10.0.0" - magic-string "^0.30.0" + glob "^11.1.0" react-docgen-typescript "^2.2.2" "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": @@ -2594,10 +2601,10 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw== -"@posthog/core@1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@posthog/core/-/core-1.7.1.tgz#ec45a3b13acbe4fbf453625c83bcd38da21beeb7" - integrity sha512-kjK0eFMIpKo9GXIbts8VtAknsoZ18oZorANdtuTj1CbgS28t4ZVq//HAWhnxEuXRTrtkd+SUJ6Ux3j2Af8NCuA== +"@posthog/core@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@posthog/core/-/core-1.9.0.tgz#b0f3b2018e166dd47e8d5a38fbcf32c93ff384f7" + integrity sha512-j7KSWxJTUtNyKynLt/p0hfip/3I46dWU2dk+pt7dKRoz2l5CYueHuHK4EO7Wlgno5yo1HO4sc4s30MXMTICHJw== dependencies: cross-spawn "^7.0.6" @@ -3110,19 +3117,19 @@ dependencies: "@sinonjs/commons" "^3.0.1" -"@storybook/builder-vite@10.1.5": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/builder-vite/-/builder-vite-10.1.5.tgz#27b11a0fb583e342cd041ea1eded7d012a0c278a" - integrity sha512-5alpNa+TQXK1zp9MeovUK/yIUkZqpIFUScUer6cYgidI96Boovn7OXt5oXQ8CqqpzuEtgCvz44TzCmgZoGv41g== +"@storybook/builder-vite@10.1.11": + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/builder-vite/-/builder-vite-10.1.11.tgz#877746967f9465e91ecf794f2bcec913321215e6" + integrity sha512-MMD09Ap7FyzDfWG961pkIMv/w684XXe1bBEi+wCEpHxvrgAd3j3A9w/Rqp9Am2uRDPCEdi1QgSzS3SGW3aGThQ== dependencies: - "@storybook/csf-plugin" "10.1.5" + "@storybook/csf-plugin" "10.1.11" "@vitest/mocker" "3.2.4" ts-dedent "^2.0.0" -"@storybook/csf-plugin@10.1.5": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-10.1.5.tgz#8d147fa82c19e348991bbad88c1af8ef56a9d2a3" - integrity sha512-v+D7PVRkNUHznfoQg8yqpLWZIIbPddqHDSi1oBGdegF0Kv/lVsGqTZGRLroApsMu7BLwLhpcMID6ofxlfftWKg== +"@storybook/csf-plugin@10.1.11": + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-10.1.11.tgz#27f3166f3fe1bb708b61ece4141ce400dc11ad1d" + integrity sha512-Ant0NhgqHKzQsseeVTSetZCuDHHs0W2HRkHt51Kg/sUl0T/sDtfVA+fWZT8nGzGZqYSFkxqYPWjauPmIhPtaRw== dependencies: unplugin "^2.3.5" @@ -3136,33 +3143,33 @@ resolved "https://registry.yarnpkg.com/@storybook/icons/-/icons-2.0.1.tgz#1bd351db1d33bfccbbafa7b64fb413168f1a6616" integrity sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg== -"@storybook/react-dom-shim@10.1.5": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-10.1.5.tgz#e39c169b093594de88dcb0c59b797ec23028ef0c" - integrity sha512-CsXcq26wINUgYP8KnfSuS60B10/Ag34YdcnWIEl9hM5UtTQ65WYJ9fVFqpzfnQrkpgRMd7iQjtmUhCe+4umnHg== +"@storybook/react-dom-shim@10.1.11": + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-10.1.11.tgz#8921d4fe0f579bd1f451d54ae4a9a9d71d1d5a3c" + integrity sha512-o8WPhRlZbORUWG9lAgDgJP0pi905VHJUFJr1Kp8980gHqtlemtnzjPxKy5vFwj6glNhAlK8SS8OOYzWP7hloTQ== "@storybook/react-vite@^10.0.7": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/react-vite/-/react-vite-10.1.5.tgz#9da7bbb0b860526da51fa3d50993934b593588b3" - integrity sha512-27RiCVw5QZ/f9fXS8sGaPHuWkbHSoS66ifeakxHgbkbIXjVI4M6pWB7NUj49MwU1YUMOpB0T8KasvyMZzv/UPA== + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/react-vite/-/react-vite-10.1.11.tgz#aff3728ca284f4ed3ae0fd2891b5da7897edb3a3" + integrity sha512-qh1BCD25nIoiDfqwha+qBkl7pcG4WuzM+c8tsE63YEm8AFIbNKg5K8lVUoclF+4CpFz7IwBpWe61YUTDfp+91w== dependencies: - "@joshwooding/vite-plugin-react-docgen-typescript" "0.6.1" + "@joshwooding/vite-plugin-react-docgen-typescript" "^0.6.3" "@rollup/pluginutils" "^5.0.2" - "@storybook/builder-vite" "10.1.5" - "@storybook/react" "10.1.5" + "@storybook/builder-vite" "10.1.11" + "@storybook/react" "10.1.11" empathic "^2.0.0" magic-string "^0.30.0" react-docgen "^8.0.0" resolve "^1.22.8" tsconfig-paths "^4.2.0" -"@storybook/react@10.1.5": - version "10.1.5" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-10.1.5.tgz#0f6a1ec5c4338d3604d6e957d0f53f7ddf9a2e6a" - integrity sha512-M8fR7WVs79fPJHwRZxkz4XzIfzs/bN0heWdZX0D4iRjeIcY4nLM/tyalCcQDrGgrSJbgAAf4xd7KXaZzaZSAqA== +"@storybook/react@10.1.11": + version "10.1.11" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-10.1.11.tgz#365662c8db7822508dec5ae17b848dd8c9b1ab9c" + integrity sha512-rmMGmEwBaM2YpB8oDk2moM0MNjNMqtwyoPPZxjyruY9WVhYca8EDPGKEdRzUlb4qZJsTgLi7VU4eqg6LD/mL3Q== dependencies: "@storybook/global" "^5.0.0" - "@storybook/react-dom-shim" "10.1.5" + "@storybook/react-dom-shim" "10.1.11" react-docgen "^8.0.2" "@stylistic/eslint-plugin@^5.0.0": @@ -3949,15 +3956,6 @@ "@typescript-eslint/visitor-keys" "8.49.0" debug "^4.3.4" -"@typescript-eslint/project-service@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.48.0.tgz#c21f6f897fbc4e61c7b1e20906ea1d59594ccc2d" - integrity sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw== - dependencies: - "@typescript-eslint/tsconfig-utils" "^8.48.0" - "@typescript-eslint/types" "^8.48.0" - debug "^4.3.4" - "@typescript-eslint/project-service@8.49.0": version "8.49.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.49.0.tgz#ce220525c88cb2d23792b391c07e14cb9697651a" @@ -3967,13 +3965,14 @@ "@typescript-eslint/types" "^8.49.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz#8306afdf409364d4e434813f0df9a8557ddff751" - integrity sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ== +"@typescript-eslint/project-service@8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.52.0.tgz#5fb4c16af4eda6d74c70cbc62f5d3f77b96e4cbe" + integrity sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw== dependencies: - "@typescript-eslint/types" "8.48.0" - "@typescript-eslint/visitor-keys" "8.48.0" + "@typescript-eslint/tsconfig-utils" "^8.52.0" + "@typescript-eslint/types" "^8.52.0" + debug "^4.4.3" "@typescript-eslint/scope-manager@8.49.0": version "8.49.0" @@ -3983,16 +3982,24 @@ "@typescript-eslint/types" "8.49.0" "@typescript-eslint/visitor-keys" "8.49.0" -"@typescript-eslint/tsconfig-utils@8.48.0", "@typescript-eslint/tsconfig-utils@^8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz#05cf091cd9f24a8e047783ff979136df6cf1be04" - integrity sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w== +"@typescript-eslint/scope-manager@8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz#9884ff690fad30380ccabfb08af1ac200af6b4e5" + integrity sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA== + dependencies: + "@typescript-eslint/types" "8.52.0" + "@typescript-eslint/visitor-keys" "8.52.0" "@typescript-eslint/tsconfig-utils@8.49.0", "@typescript-eslint/tsconfig-utils@^8.49.0": version "8.49.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.49.0.tgz#857777c8e35dd1e564505833d8043f544442fbf4" integrity sha512-8prixNi1/6nawsRYxet4YOhnbW+W9FK/bQPxsGB1D3ZrDzbJ5FXw5XmzxZv82X3B+ZccuSxo/X8q9nQ+mFecWA== +"@typescript-eslint/tsconfig-utils@8.52.0", "@typescript-eslint/tsconfig-utils@^8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.52.0.tgz#0296751c22ed05c83787a6eaec65ae221bd8b8ed" + integrity sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg== + "@typescript-eslint/type-utils@8.49.0": version "8.49.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.49.0.tgz#d8118a0c1896a78a22f01d3c176e9945409b085b" @@ -4004,30 +4011,20 @@ debug "^4.3.4" ts-api-utils "^2.1.0" -"@typescript-eslint/types@8.48.0", "@typescript-eslint/types@^8.47.0", "@typescript-eslint/types@^8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.48.0.tgz#f0dc5cf27217346e9b0d90556911e01d90d0f2a5" - integrity sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA== - "@typescript-eslint/types@8.49.0", "@typescript-eslint/types@^8.49.0": version "8.49.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.49.0.tgz#c1bd3ebf956d9e5216396349ca23c58d74f06aee" integrity sha512-e9k/fneezorUo6WShlQpMxXh8/8wfyc+biu6tnAqA81oWrEic0k21RHzP9uqqpyBBeBKu4T+Bsjy9/b8u7obXQ== -"@typescript-eslint/typescript-estree@8.48.0": +"@typescript-eslint/types@8.52.0", "@typescript-eslint/types@^8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.52.0.tgz#1eb0a16b324824bc23b89d109a267c38c9213c4a" + integrity sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg== + +"@typescript-eslint/types@^8.47.0": version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz#38b340524ce34ce0e46ca541a86cf6cad8872e5b" - integrity sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ== - dependencies: - "@typescript-eslint/project-service" "8.48.0" - "@typescript-eslint/tsconfig-utils" "8.48.0" - "@typescript-eslint/types" "8.48.0" - "@typescript-eslint/visitor-keys" "8.48.0" - debug "^4.3.4" - minimatch "^9.0.4" - semver "^7.6.0" - tinyglobby "^0.2.15" - ts-api-utils "^2.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.48.0.tgz#f0dc5cf27217346e9b0d90556911e01d90d0f2a5" + integrity sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA== "@typescript-eslint/typescript-estree@8.49.0": version "8.49.0" @@ -4044,6 +4041,21 @@ tinyglobby "^0.2.15" ts-api-utils "^2.1.0" +"@typescript-eslint/typescript-estree@8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz#2ad7721c671be2127951286cb7f44c4ce55b0591" + integrity sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ== + dependencies: + "@typescript-eslint/project-service" "8.52.0" + "@typescript-eslint/tsconfig-utils" "8.52.0" + "@typescript-eslint/types" "8.52.0" + "@typescript-eslint/visitor-keys" "8.52.0" + debug "^4.4.3" + minimatch "^9.0.5" + semver "^7.7.3" + tinyglobby "^0.2.15" + ts-api-utils "^2.4.0" + "@typescript-eslint/utils@8.49.0": version "8.49.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.49.0.tgz#43b3b91d30afd6f6114532cf0b228f1790f43aff" @@ -4055,22 +4067,14 @@ "@typescript-eslint/typescript-estree" "8.49.0" "@typescript-eslint/utils@^8.0.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.48.0.tgz#c1196befb664f50be10692c781c7fc7624c1a5f9" - integrity sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ== + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.52.0.tgz#b249be8264899b80d996fa353b4b84da4662f962" + integrity sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ== dependencies: - "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.48.0" - "@typescript-eslint/types" "8.48.0" - "@typescript-eslint/typescript-estree" "8.48.0" - -"@typescript-eslint/visitor-keys@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz#6b07ef5661a85d08b01fbe4b8310a7311a6471af" - integrity sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg== - dependencies: - "@typescript-eslint/types" "8.48.0" - eslint-visitor-keys "^4.2.1" + "@eslint-community/eslint-utils" "^4.9.1" + "@typescript-eslint/scope-manager" "8.52.0" + "@typescript-eslint/types" "8.52.0" + "@typescript-eslint/typescript-estree" "8.52.0" "@typescript-eslint/visitor-keys@8.49.0": version "8.49.0" @@ -4080,6 +4084,14 @@ "@typescript-eslint/types" "8.49.0" eslint-visitor-keys "^4.2.1" +"@typescript-eslint/visitor-keys@8.52.0": + version "8.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz#50361c48a6302676230fe498f80f6decce4bf673" + integrity sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ== + dependencies: + "@typescript-eslint/types" "8.52.0" + eslint-visitor-keys "^4.2.1" + "@ungap/structured-clone@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" @@ -5037,9 +5049,9 @@ base64-js@^1.3.1: integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== baseline-browser-mapping@^2.9.0: - version "2.9.6" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.6.tgz#82de0f7ee5860df86d60daf0d9524ae7227eeee7" - integrity sha512-v9BVVpOTLB59C9E7aSnmIF8h7qRsFpx+A2nugVMTszEOMcfjlZMsXRm4LF23I3Z9AJxc8ANpIvzbzONoX9VJlg== + version "2.9.11" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz#53724708c8db5f97206517ecfe362dbe5181deea" + integrity sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ== batch@0.6.1: version "0.6.1" @@ -5352,9 +5364,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== check-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" - integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== + version "2.1.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.3.tgz#2427361117b70cca8dc89680ead32b157019caf5" + integrity sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA== chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" @@ -6789,9 +6801,9 @@ eslint-plugin-import@^2.25.4: tsconfig-paths "^3.15.0" eslint-plugin-jest@^29.0.0: - version "29.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-29.2.1.tgz#e56c5f79b6475dafa551ce8e762ac25d4bd21ea4" - integrity sha512-0WLIezrIxitUGbjMIGwznVzSIp0uFJV0PZ2fiSvpyVcxe+QMXKUt7MRhUpzdbctnnLwiOTOFkACplgB0wAglFw== + version "29.12.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-29.12.1.tgz#a0f78812f589796b09148a53a786866244185638" + integrity sha512-Rxo7r4jSANMBkXLICJKS0gjacgyopfNAsoS0e3R9AHnjoKuQOaaPfmsDJPi8UWwygI099OV/K/JhpYRVkxD4AA== dependencies: "@typescript-eslint/utils" "^8.0.0" @@ -9869,7 +9881,7 @@ minimatch@^5.0.1, minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.4: +minimatch@^9.0.4, minimatch@^9.0.5: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== @@ -11168,12 +11180,12 @@ postcss@^8.4.40, postcss@^8.5.6: picocolors "^1.1.1" source-map-js "^1.2.1" -posthog-js@1.302.2: - version "1.302.2" - resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.302.2.tgz#149ab7d511106541d7056bf239094c425fb4ef0a" - integrity sha512-4voih22zQe7yHA7DynlQ3B7kgzJOaKIjzV7K3jJ2Qf+UDXd1ZgO7xYmLWYVtuKEvD1OXHbKk/fPhUTZeHEWpBw== +posthog-js@1.313.0: + version "1.313.0" + resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.313.0.tgz#163c3a21bdde22cc6595b79604b83622731ce3b5" + integrity sha512-CL8RkC7m9BTZrix86w0fdnSCVqC/gxrfs6c4Wfkz/CldFD7f2912S2KqnWFmwRVDGIwm9IR82YhublQ88gdDKw== dependencies: - "@posthog/core" "1.7.1" + "@posthog/core" "1.9.0" core-js "^3.38.1" fflate "^0.4.8" preact "^10.19.3" @@ -11496,10 +11508,10 @@ react-focus-lock@^2.5.1: use-callback-ref "^1.3.3" use-sidecar "^1.1.3" -react-is@19.2.1, react-is@^17.0.1, react-is@^18.3.1: - version "19.2.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.2.1.tgz#712fa6ee30c8398dc34260017325dad92b9224c5" - integrity sha512-L7BnWgRbMwzMAubQcS7sXdPdNLmKlucPlopgAzx7FtYbksWZgEWiuYM5x9T6UqS2Ne0rsgQTq5kY2SGqpzUkYA== +react-is@19.2.3, react-is@^17.0.1, react-is@^18.3.1: + version "19.2.3" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.2.3.tgz#eec2feb69c7fb31f77d0b5c08c10ae1c88886b29" + integrity sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA== react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" @@ -12105,7 +12117,7 @@ semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2, semver@^7.6.3, semver@^7.7.2: +semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2, semver@^7.6.3, semver@^7.7.2, semver@^7.7.3: version "7.7.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== @@ -12517,9 +12529,9 @@ stop-iteration-iterator@^1.1.0: internal-slot "^1.1.0" storybook@^10.0.7: - version "10.1.10" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-10.1.10.tgz#9023e063f97cb2c38b4520e03d49336bcbf6661f" - integrity sha512-oK0t0jEogiKKfv5Z1ao4Of99+xWw1TMUGuGRYDQS4kp2yyBsJQEgu7NI7OLYsCDI6gzt5p3RPtl1lqdeVLUi8A== + version "10.1.11" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-10.1.11.tgz#cdd75835eebad45edc93129f9468a32eb6c1f4bd" + integrity sha512-pKP5jXJYM4OjvNklGuHKO53wOCAwfx79KvZyOWHoi9zXUH5WVMFUe/ZfWyxXG/GTcj0maRgHGUjq/0I43r0dDQ== dependencies: "@storybook/global" "^5.0.0" "@storybook/icons" "^2.0.0" @@ -13215,10 +13227,10 @@ truncate-utf8-bytes@^1.0.0: dependencies: utf8-byte-length "^1.0.1" -ts-api-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" - integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== +ts-api-utils@^2.1.0, ts-api-utils@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.4.0.tgz#2690579f96d2790253bdcf1ca35d569ad78f9ad8" + integrity sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA== ts-dedent@^2.0.0: version "2.2.0" @@ -13484,9 +13496,9 @@ unrs-resolver@^1.7.11: "@unrs/resolver-binding-win32-x64-msvc" "1.11.1" update-browserslist-db@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz#cfb4358afa08b3d5731a2ecd95eebf4ddef8033e" - integrity sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA== + version "1.2.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== dependencies: escalade "^3.2.0" picocolors "^1.1.1" @@ -14031,9 +14043,9 @@ ws@^7.3.1: integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== ws@^8.18.0: - version "8.18.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== + version "8.19.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" + integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== wsl-utils@^0.1.0: version "0.1.0"